Build error 4.6.1 for x86_64
david.hagood@gmail.com
david.hagood@gmail.com
Mon Aug 8 17:13:00 GMT 2011
> uintptr_t by definition is large enough to hold any pointer value, so
> casting from any pointer to uintptr_t should never give that warning.
>
> Are you sure your not using a target libc built for 32-bit and trying
> to use it for targetting 64-bit? That would explain why your target
> libc headers define a uintptr_t that is too small to hold a pointer
> value.
Absolutely sure. I built the target libc for biarch, and have 32 and 64
bit versions in place in the sysroot directory.
Also: once again, this all works if the target is PowerPC64. It *ONLY*
fails for X86_64 target. But the difference is that PPC64 defines
sizeof(int)=64 bits, while X86_64 defines sizeof(int)=32 bits.
This looks like *somebody* is assuming that an int will always hold a
pointer - which is NOT guaranteed in the C standard (only a long is so
guaranteed).
More information about the Gcc-help
mailing list