Version-Release number of selected component (if applicable): 2.3.3-39 While most header files protect differences between x86_64 and i386 by #if... __WORDSIZE == 64 (to preserver binary compatibility with i386 when compiled with gcc -m32), there are a few exceptions: bits/fenv.h: x86_64 has an added __mxcsr member in fenv_t bits/mathdef.h: x86_64 has float_t, double_t == float, double, should be long double for i386 bits/wchar.h: __WCHAR_MIN and WCHAR_MAX have type int even for 32-bit mode gnu/lib-names.h: several differences gnu/stubs.h: several differences sys/elf.h: completely missing on x86_64 sys/procfs.h: several differences sys/vm86.h: completely missing on x86_64
32 bit vm86() doesn't work in 64-bit mode, so not sure having sys/vm86.h there helps. :)
http://sources.redhat.com/ml/libc-hacker/2004-11/msg00000.html
Together with the recent changes for e.g. gnu/lib-names.h and gnu/stubs.h, I think all that is needed is fixed by now.