In my earlier patch to add support for --with-native-system-header-dir,
I messed up the case of a cross-compiler when not using --with-sysroot.
In that case the compiler was incorrectly searching /usr/include.  This
patch restores the logic to what it used to be before my patch.  As the
patch is straightforward and simply restores the code to what it used to
be before my earlier patch, I plan to go ahead and commit this after
bootstrap and testing passes.  Please let me know if you object.

Ian


2011-10-26  Ian Lance Taylor  <i...@google.com>

        * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
        CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is
        not.
        (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
        defined.


Index: gcc/cppdefault.c
===================================================================
--- gcc/cppdefault.c	(revision 180530)
+++ gcc/cppdefault.c	(working copy)
@@ -32,6 +32,7 @@
 
 #if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
 # undef LOCAL_INCLUDE_DIR
+# undef NATIVE_SYSTEM_HEADER_DIR
 #else
 # undef CROSS_INCLUDE_DIR
 #endif
@@ -84,8 +85,10 @@ const struct default_include cpp_include
     /* Another place the target system's headers might be.  */
     { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
 #endif
+#ifdef NATIVE_SYSTEM_HEADER_DIR
     /* /usr/include comes dead last.  */
     { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
+#endif
     { 0, 0, 0, 0, 0, 0 }
   };
 #endif /* no INCLUDE_DEFAULTS */

Reply via email to