Comment 15 for bug 1300211

Revision history for this message
T Parys (tparys) wrote :

Perhaps the symlink at /usr/include/asm is better suited elsewhere?

The cpp include path for i386 (-m32 flag), is as follows:

foo ~ $ gcc -m32 -Wp,-v test.c
ignoring nonexistent directory "/usr/local/include/i386-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/i386-linux-gnu
 /usr/include
End of search list.

And for the armhf toolchain ...

foo ~ $ arm-linux-gnueabihf-gcc -Wp,-v test.c
ignoring nonexistent directory "/usr/local/include/arm-linux-gnueabihf"
ignoring nonexistent directory "/usr/include/arm-linux-gnueabihf"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/include
 /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/include-fixed
 /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/include
 /usr/include

Wouldn't it be better to allow gcc to find i386 specific asm defines in /usr/include/i386-linux-gnu/asm?

# rm -f /usr/include/asm
# ln -s x86_64-linux-gnu /usr/include/i386-linux-gnu
# ln -s x86_64-linux-gnu /usr/include/x86_64-linux-gnux32

There. Both -m32 and -mx32 flags will work fine. You can have cross compilers installed at the same time. And to boot, no potential for cross-contamination between platform specific macros.

Hopefully, we can agree that a symlink at /usr/include/asm is universally wrong? You can't have platform specific defines in a common include directory for all gcc targets? Maybe we can file a bug against gcc-multilib, and move on?