On 8 August 2011 23:03, <david.hagood@xxxxxxxxx> wrote: >> Why don't you look in the libc headers and see how it defines >> uintptr_t. In my native x86_64 system I see: >> >> /* Types for `void *' pointers. */ >> #if __WORDSIZE == 64 >> ... >> typedef unsigned long int uintptr_t; >> #else >> ... >> typedef unsigned int uintptr_t; >> #endif >> >> If your headers look sensible, figure out what is wrong when you >> compile libmudflap such that the wrong definition is used. > > xgcc is pointing at my sysroot, and the libraries are there. This looks > like a problem when cross-compiling gcc for X86_64. > > >> Noone else >> has access to the files on your system so you're in the best position >> to investigate it. >> > That's easy to fix. I've attached the makefile I use to do this, and the > one patch file I created (incorporating Ian's suggestion about patching > mf-runtime.c). All the other files are either straight from the gnu.org > servers: > binutils-2.20.1.tar.bz2, gcc-4.6.1.tar.bz2, glibc-2.14.tar.bz2, > make-3.81.tar.bz2 > or straight from kernel.org: > linux-2.6.39.4.tar.bz2 > > Drop the patch and tarballs into ~/Downloads (or where-ever, and set > TARBALL_SOURCE to point there), and do a "make clean all" on an X86-64 > machine. No thanks, I'm busy :) Why don't you add some debugging to the files that are failing to compile, figure out which preprocessor macros are defined, add #warning or #error lines to your sysroot headers, see what's defined and if it seems correct. Check the typedefs are correct.