This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
cross-compilers and include-fixed... how does this work?
- From: Paul Smith <paul at mad-scientist dot net>
- To: gcc-help at gcc dot gnu dot org
- Date: Mon, 9 May 2011 14:39:26 -0400
- Subject: cross-compilers and include-fixed... how does this work?
- Reply-to: paul at mad-scientist dot net
Hi all.
To try to restore my sanity after attempting to get a multiarch (i686 &
x86_64) version of GCC 4.2.4 to build, I've decided to go with 4.5.2
which compiles just fine for multiarch. But I have a problem that seems
like it would be common and I wonder how I'm intended to deal with it.
I'm using --sysroot to compile code for a different target, with a very
different set of headers and libraries than my build system.
However, the contents of the include-fixed directory in my GCC 4.5.2
installation are from the (very old) system that I built GCC on, while
I'm trying to compile for a target with a much newer set of headers and
libraries. This is causing my builds to fail because the fixed includes
are not matching up with the includes in the sysroot.
For example, I compiled GCC 4.5.2 on a system running Red Hat EL 4 (very
old!). The contents of the 4.5.2 include-fixed directory, for example
the features.h file, are thus ancient and don't have support for, for
example, the 2008 POSIX spec.
Now when I try to compile with a --sysroot for a newer target that does
have this support, I can't enable it because features.h is being used
from the old system, via include-fixed, not the sysroot.
Can anyone explain how the interaction between include-fixed and
cross-compiling is intended to work?
Thanks!