From 160397ef3c3331099af028f1b8d3e085b07d88ad Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
Subject: [PATCH 16/35] gcc: poison-system-directories

Signed-off-by: Khem Raj <raj.khem@gmail.com>

Upstream-Status: Inappropriate [distribution: codesourcery]
---
 gcc/Makefile.in     |    2 +-
 gcc/common.opt      |    4 ++++
 gcc/config.in       |    6 ++++++
 gcc/configure       |   20 ++++++++++++++++++--
 gcc/configure.ac    |   10 ++++++++++
 gcc/doc/invoke.texi |    9 +++++++++
 gcc/gcc.c           |    2 ++
 gcc/incpath.c       |   19 +++++++++++++++++++
 8 files changed, 69 insertions(+), 3 deletions(-)

Index: gcc-4.8.4/gcc/Makefile.in
===================================================================
--- gcc-4.8.4.orig/gcc/Makefile.in
+++ gcc-4.8.4/gcc/Makefile.in
@@ -2019,7 +2019,7 @@ attribs.o : attribs.c $(CONFIG_H) $(SYST
 
 incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
 		intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
-		$(MACHMODE_H)
+		$(MACHMODE_H) $(FLAGS_H) toplev.h
 
 CFLAGS-prefix.o += -DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s)
 prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h prefix.h \
Index: gcc-4.8.4/gcc/common.opt
===================================================================
--- gcc-4.8.4.orig/gcc/common.opt
+++ gcc-4.8.4/gcc/common.opt
@@ -595,6 +595,10 @@ Wpedantic
 Common Var(pedantic) Warning
 Issue warnings needed for strict compliance to the standard
 
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
 Wshadow
 Common Var(warn_shadow) Warning
 Warn when one local variable shadows another
Index: gcc-4.8.4/gcc/config.in
===================================================================
--- gcc-4.8.4.orig/gcc/config.in
+++ gcc-4.8.4/gcc/config.in
@@ -138,6 +138,12 @@
 #endif
 
 
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+
+
 /* Define if you want all operations on RTL (the basic data structure of the
    optimizer and back end) to be checked for dynamic type safety at runtime.
    This is quite expensive. */
Index: gcc-4.8.4/gcc/configure
===================================================================
--- gcc-4.8.4.orig/gcc/configure
+++ gcc-4.8.4/gcc/configure
@@ -918,6 +918,7 @@ with_gc
 with_system_zlib
 enable_maintainer_mode
 enable_version_specific_runtime_libs
+enable_poison_system_directories
 enable_plugin
 enable_libquadmath_support
 with_linker_hash_style
@@ -1639,6 +1640,8 @@ Optional Features:
   --enable-version-specific-runtime-libs
                           specify that runtime libraries should be installed
                           in a compiler-specific directory
+  --enable-poison-system-directories
+                          warn for use of native system header directories
   --enable-plugin         enable plugin support
   --disable-libquadmath-support
                           disable libquadmath support for Fortran
@@ -17847,7 +17850,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 17850 "configure"
+#line 17853 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -17953,7 +17956,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 17956 "configure"
+#line 17959 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -27219,6 +27222,19 @@ if test "${enable_version_specific_runti
 fi
 
 
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+  enableval=$enable_poison_system_directories;
+else
+  enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" = "xyes"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+
+fi
+
 # Substitute configuration variables
 
 
Index: gcc-4.8.4/gcc/configure.ac
===================================================================
--- gcc-4.8.4.orig/gcc/configure.ac
+++ gcc-4.8.4/gcc/configure.ac
@@ -5120,6 +5120,16 @@ AC_ARG_ENABLE(version-specific-runtime-l
                 [specify that runtime libraries should be
                  installed in a compiler-specific directory])])
 
+AC_ARG_ENABLE([poison-system-directories],
+             AS_HELP_STRING([--enable-poison-system-directories],
+                            [warn for use of native system header directories]),,
+             [enable_poison_system_directories=no])
+if test "x${enable_poison_system_directories}" = "xyes"; then
+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+           [1],
+           [Define to warn for use of native system header directories])
+fi
+
 # Substitute configuration variables
 AC_SUBST(subdirs)
 AC_SUBST(srcdir)
Index: gcc-4.8.4/gcc/doc/invoke.texi
===================================================================
--- gcc-4.8.4.orig/gcc/doc/invoke.texi
+++ gcc-4.8.4/gcc/doc/invoke.texi
@@ -258,6 +258,7 @@ Objective-C and Objective-C++ Dialects}.
 -Woverlength-strings  -Wpacked  -Wpacked-bitfield-compat  -Wpadded @gol
 -Wparentheses  -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
 -Wpointer-arith  -Wno-pointer-to-int-cast @gol
+-Wno-poison-system-directories @gol
 -Wredundant-decls  -Wno-return-local-addr @gol
 -Wreturn-type  -Wsequence-point  -Wshadow @gol
 -Wsign-compare  -Wsign-conversion  -Wsizeof-pointer-memaccess @gol
@@ -4022,6 +4023,14 @@ headers---for that, @option{-Wunknown-pr
  for most targets, it is made up of code and thus requires the stack
  to be made executable in order for the program to work properly.
 
+@item -Wno-poison-system-directories
+@opindex Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling.  This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
 @item -Wfloat-equal
 @opindex Wfloat-equal
 @opindex Wno-float-equal
Index: gcc-4.8.4/gcc/gcc.c
===================================================================
--- gcc-4.8.4.orig/gcc/gcc.c
+++ gcc-4.8.4/gcc/gcc.c
@@ -741,6 +741,8 @@ proper position among the other output f
    "%{fuse-ld=*:-fuse-ld=%*}\
     %X %{o*} %{e*} %{N} %{n} %{r}\
     %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\
+    %{Wno-poison-system-directories:--no-poison-system-directories}\
+    %{Werror=poison-system-directories:--error-poison-system-directories}\
     %{static:} %{L*} %(mfwrap) %(link_libgcc) " SANITIZER_EARLY_SPEC " %o\
     %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
     %{fgnu-tm:%:include(libitm.spec)%(link_itm)}\
Index: gcc-4.8.4/gcc/incpath.c
===================================================================
--- gcc-4.8.4.orig/gcc/incpath.c
+++ gcc-4.8.4/gcc/incpath.c
@@ -28,6 +28,7 @@
 #include "intl.h"
 #include "incpath.h"
 #include "cppdefault.h"
+#include "diagnostic-core.h"
 
 /* Microsoft Windows does not natively support inodes.
    VMS has non-numeric inodes.  */
@@ -382,6 +383,24 @@ merge_include_chains (const char *sysroo
 	}
       fprintf (stderr, _("End of search list.\n"));
     }
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+  if (flag_poison_system_directories)
+    {
+       struct cpp_dir *p;
+
+       for (p = heads[QUOTE]; p; p = p->next)
+         {
+          if ((!strncmp (p->name, "/usr/include", 12))
+              || (!strncmp (p->name, "/usr/local/include", 18))
+              || (!strncmp (p->name, "/usr/X11R6/include", 18)))
+            warning (OPT_Wpoison_system_directories,
+                     "include location \"%s\" is unsafe for "
+                     "cross-compilation",
+                     p->name);
+         }
+    }
+#endif
 }
 
 /* Use given -I paths for #include "..." but not #include <...>, and
