From e02e119b278c3f404e97669e7180cac944134c91 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:41:04 +0000
Subject: [PATCH 09/13] Upstream-Status: Inappropriate [distribution:
 codesourcery]

Patch originally created by Mark Hatle, forward-ported to
binutils 2.21 by Scott Garman.

purpose:  warn for uses of system directories when cross linking

Code Merged from Sourcery G++ binutils 2.19 - 4.4-277

2008-07-02  Joseph Myers  <joseph@codesourcery.com>

    ld/
    * ld.h (args_type): Add error_poison_system_directories.
    * ld.texinfo (--error-poison-system-directories): Document.
    * ldfile.c (ldfile_add_library_path): Check
    command_line.error_poison_system_directories.
    * ldmain.c (main): Initialize
    command_line.error_poison_system_directories.
    * lexsup.c (enum option_values): Add
    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
    (ld_options): Add --error-poison-system-directories.
    (parse_args): Handle new option.

2007-06-13  Joseph Myers  <joseph@codesourcery.com>

    ld/
    * config.in: Regenerate.
    * ld.h (args_type): Add poison_system_directories.
    * ld.texinfo (--no-poison-system-directories): Document.
    * ldfile.c (ldfile_add_library_path): Check
    command_line.poison_system_directories.
    * ldmain.c (main): Initialize
    command_line.poison_system_directories.
    * lexsup.c (enum option_values): Add
    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
    (ld_options): Add --no-poison-system-directories.
    (parse_args): Handle new option.

2007-04-20  Joseph Myers  <joseph@codesourcery.com>

    Merge from Sourcery G++ binutils 2.17:

    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
    ld/
    * configure.in (--enable-poison-system-directories): New option.
    * configure, config.in: Regenerate.
    * ldfile.c (ldfile_add_library_path): If
    ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
    /usr/lib, /usr/local/lib or /usr/X11R6/lib.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ld/config.in    |  3 +++
 ld/configure    | 14 ++++++++++++++
 ld/configure.ac | 10 ++++++++++
 ld/ld.h         |  8 ++++++++
 ld/ld.texinfo   | 12 ++++++++++++
 ld/ldfile.c     | 17 +++++++++++++++++
 ld/ldlex.h      |  2 ++
 ld/ldmain.c     |  2 ++
 ld/lexsup.c     | 16 ++++++++++++++++
 9 files changed, 84 insertions(+)

diff --git a/ld/config.in b/ld/config.in
index 2ab4844..766d23c 100644
--- a/ld/config.in
+++ b/ld/config.in
@@ -11,6 +11,9 @@
    language is requested. */
 #undef ENABLE_NLS
 
+/* Define to warn for use of native system library directories */
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+
 /* Additional extension a shared object might have. */
 #undef EXTRA_SHLIB_EXTENSION
 
diff --git a/ld/configure b/ld/configure
index 2fbaebf..5726a08 100755
--- a/ld/configure
+++ b/ld/configure
@@ -787,6 +787,7 @@ with_lib_path
 enable_targets
 enable_64_bit_bfd
 with_sysroot
+enable_poison_system_directories
 enable_gold
 enable_got
 enable_werror
@@ -1443,6 +1444,8 @@ Optional Features:
   --disable-largefile     omit support for large files
   --enable-targets        alternative target configurations
   --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
+  --enable-poison-system-directories
+                          warn for use of native system library directories
   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
   --enable-got=<type>     GOT handling scheme (target, single, negative,
                           multigot)
@@ -16323,7 +16326,18 @@ else
 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
 
 # Check whether --enable-got was given.
 if test "${enable_got+set}" = set; then :
diff --git a/ld/configure.ac b/ld/configure.ac
index 1bddfc9..e9edb7f 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot)
 AC_SUBST(TARGET_SYSTEM_ROOT)
 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
 
+AC_ARG_ENABLE([poison-system-directories],
+         AS_HELP_STRING([--enable-poison-system-directories],
+                [warn for use of native system library 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 library directories])
+fi
+
 dnl Use --enable-gold to decide if this linker should be the default.
 dnl "install_as_default" is set to false if gold is the default linker.
 dnl "installed_linker" is the installed BFD linker name.
diff --git a/ld/ld.h b/ld/ld.h
index f773ce7..adba0f6 100644
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -161,6 +161,14 @@ typedef struct {
   /* If TRUE we'll just print the default output on stdout.  */
   bfd_boolean print_output_format;
 
+  /* If TRUE (the default) warn for uses of system directories when
+     cross linking.  */
+  bfd_boolean poison_system_directories;
+
+  /* If TRUE (default FALSE) give an error for uses of system
+     directories when cross linking instead of a warning.  */
+  bfd_boolean error_poison_system_directories;
+
   /* Big or little endian as set on command line.  */
   enum endian_enum endian;
 
diff --git a/ld/ld.texinfo b/ld/ld.texinfo
index 502582c..dae168a 100644
--- a/ld/ld.texinfo
+++ b/ld/ld.texinfo
@@ -2212,6 +2212,18 @@ string identifying the original linked file does not change.
 
 Passing @code{none} for @var{style} disables the setting from any
 @code{--build-id} options earlier on the command line.
+
+@kindex --no-poison-system-directories
+@item --no-poison-system-directories
+Do not warn for @option{-L} options using system directories such as
+@file{/usr/lib} when cross linking.  This option is intended for use
+in chroot environments when such directories contain the correct
+libraries for the target system rather than the host.
+
+@kindex --error-poison-system-directories
+@item --error-poison-system-directories
+Give an error instead of a warning for @option{-L} options using
+system directories when cross linking.
 @end table
 
 @c man end
diff --git a/ld/ldfile.c b/ld/ldfile.c
index 782ed7f..19a9ab4 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
     new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
   else
     new_dirs->name = xstrdup (name);
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+  if (command_line.poison_system_directories
+  && ((!strncmp (name, "/lib", 4))
+      || (!strncmp (name, "/usr/lib", 8))
+      || (!strncmp (name, "/usr/local/lib", 14))
+      || (!strncmp (name, "/usr/X11R6/lib", 14))))
+   {
+     if (command_line.error_poison_system_directories)
+       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
+            "cross-compilation\n"), name);
+     else
+       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
+            "cross-compilation\n"), name);
+   }
+#endif
+
 }
 
 /* Try to open a BFD for a lang_input_statement.  */
diff --git a/ld/ldlex.h b/ld/ldlex.h
index e3e9b24..29487a3 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
@@ -140,6 +140,8 @@ enum option_values
   OPTION_IGNORE_UNRESOLVED_SYMBOL,
   OPTION_PUSH_STATE,
   OPTION_POP_STATE,
+  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
+  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
 };
 
 /* The initial parser states.  */
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 818d108..54c49f2 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -266,6 +266,8 @@ main (int argc, char **argv)
   command_line.warn_mismatch = TRUE;
   command_line.warn_search_mismatch = TRUE;
   command_line.check_section_addresses = -1;
+  command_line.poison_system_directories = TRUE;
+  command_line.error_poison_system_directories = FALSE;
 
   /* We initialize DEMANGLING based on the environment variable
      COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 4812c97..21b49df 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -513,6 +513,14 @@ static const struct ld_option ld_options[] =
   { {"pop-state", no_argument, NULL, OPTION_POP_STATE},
     '\0', NULL, N_("Pop state of flags governing input file handling"),
     TWO_DASHES },
+  { {"no-poison-system-directories", no_argument, NULL,
+     OPTION_NO_POISON_SYSTEM_DIRECTORIES},
+    '\0', NULL, N_("Do not warn for -L options using system directories"),
+    TWO_DASHES },
+  { {"error-poison-system-directories", no_argument, NULL,
+    +     OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
+    '\0', NULL, N_("Give an error for -L options using system directories"),
+    TWO_DASHES },
 };
 
 #define OPTION_COUNT ARRAY_SIZE (ld_options)
@@ -1474,6 +1482,14 @@ parse_args (unsigned argc, char **argv)
 	      free (oldp);
 	    }
 	  break;
+
+	case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
+	  command_line.poison_system_directories = FALSE;
+	  break;
+
+	case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
+	  command_line.error_poison_system_directories = TRUE;
+	  break;
 	}
     }
 
-- 
2.1.4

