I guess it is a long standing issue in the Cygnus toolchain. The problem is this change: --- gcc/configure.in Fri Dec 22 13:55:48 2000 +++ gcc/configure.in Thu Aug 17 12:02:45 2000 @@ -136,15 +136,17 @@ AC_ARG_WITH(elf, elf="$with_elf", elf=no) -# Specify the local prefix -local_prefix= -AC_ARG_WITH(local-prefix, -[ --with-local-prefix=DIR specifies directory to put local include.], -[case "${withval}" in -yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;; -no) ;; -*) local_prefix=$with_local_prefix ;; -esac]) +# CYGNUS LOCAL: local_prefix +#local_prefix= +#AC_ARG_WITH(local-prefix, +#[ --with-local-prefix=DIR specifies directory to put local include.], +#[case "${withval}" in +#yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;; +#no) ;; +#*) local_prefix=$with_local_prefix ;; +#esac]) +local_prefix='$(prefix)' +# END CYGNUS LOCAL # Default local prefix if it is empty if test x$local_prefix = x; then Bascallly, it sets local_prefix == prefix, which means $local_prefix/include == $prefix/include It is ok and desirable for a cross toolchain as long as you don't install it under /usr as a native compiler. Unfortunately, RedHat/ia64 does exactly that. That means $local_prefix/include == /usr/include. Now, gcc will search /usr/include before others. It is not very good for Linux. # touch l.c Reading specs from /usr/lib/gcc-lib/ia64-redhat-linux/2.96-ia64-000717/specs gcc version 2.96-ia64-000717 snap 001117 /usr/lib/gcc-lib/ia64-redhat-linux/2.96-ia64-000717/cpp ... GNU CPP version 2.96-ia64-000717 snap 001117 (cpplib) (IA-64) ignoring duplicate directory "/usr/include" #include "..." search starts here: #include <...> search starts here: /usr/include /usr/lib/gcc-lib/ia64-redhat-linux/2.96-ia64-000717/include /usr/ia64-redhat-linux/include End of search list. l.o: l.c
Bill, can you please revert this?
Created attachment 7103 [details] Here is a patch I am using.
Will be fixed in gnupro-1117-3.