On Tue, 30 Nov 2010, Thorsten Glaser wrote:
Ivan Jager dixit:
Is there some reason why changing it to __sparcv9 is wrong?
Yes, v9 is 64 bit, sparc is 32 bit (sparc64 is 64 bit).
Yes, but even on sparc64 linux uses a 32 bit userland. (so far at least)
I guess I was more wondering if there were any technical reasons not to
make the change. Given that there is later code that checks for
__arch64__, it seems like it would work with gcc and with the Sun
compiler, although I don't know what other sparc compilers are out there
or what they do. How does *BSD handle it?
I guess if you are convinced it's a gcc bug feel free to file a bug
against gcc, but I am not sufficiently convinced to do it myself.
Out of curiosity, does manually specifying -m32 on the
command line “fix” your problem/testcase?
No, it makes no difference.
I did discover why util-vserver did work though. It is compiling with
"diet -Os gcc ..." which runs gcc with -Os -mcpu=supersparc.
I tested with versions from snapshot.d.o and -Os changes from
-mcpu=supersparc to -mcpu=v9 in 0.32-5. The patch in question is
debian/diff/0013-sparc-use-mcpu-v9-instead-of-mcpu-supersparc.diff
Hope that helps,
Ivan