Ok, I tested back to 0.31-1.2 which is the version in lenny, and even that is broken. I'm not sure how, but even though that version compiles util-vserver such that uint64_t is 8 bytes, when compiling size.c it still says 4. I'm guessing it has something to do with the options being passed to GCC.

AFAICT, the difference between lenny and squeeze is that squeeze gcc defines __sparc_v9__ whereas lenny's does not. That causes endian.h to define __WORDSIZE 64 rather than 32, so then we get
typedef unsigned long uint64_t;
rather than
__extension__ typedef unsigned long long uint64_t;
in inttypes.h

I suppose one fix would be to remove defined(__sparc_v9__) from endian.h, but I'm not sure that's the right fix.

Perhaps __sparc_v9__ really should have been __sparcv9? http://gcc.gnu.org/ml/gcc/2002-12/msg00108.html would seem to imply that.

I suppose it makes sense that they enabled -mcpu=ultrasparc by default, since Debian only supports sparc64 kernels these days. Compiling with -mcpu=v8 makes it work so I guess that's the source of the problem. I still don't know why util-vserver works with one version but not the other...

Ivan



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to