diff options
Diffstat (limited to 'toolchain-layer/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch')
-rw-r--r-- | toolchain-layer/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch | 253 |
1 files changed, 0 insertions, 253 deletions
diff --git a/toolchain-layer/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch b/toolchain-layer/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch deleted file mode 100644 index c2f19276f8..0000000000 --- a/toolchain-layer/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch +++ /dev/null @@ -1,253 +0,0 @@ -This patch is recived from Mark Hatle - -purpose: warn for uses of system directories when cross linking - -Signed-Off-By: Mark Hatle <mark.hatle@windriver.com> - -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. - -Index: binutils-2.20.1/ld/config.in -=================================================================== ---- binutils-2.20.1.orig/ld/config.in -+++ binutils-2.20.1/ld/config.in -@@ -4,6 +4,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 - -Index: binutils-2.20.1/ld/configure.in -=================================================================== ---- binutils-2.20.1.orig/ld/configure.in -+++ binutils-2.20.1/ld/configure.in -@@ -69,6 +69,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 -+ - AC_ARG_ENABLE([got], - AS_HELP_STRING([--enable-got=<type>], - [GOT handling scheme (target, single, negative, multigot)]), -Index: binutils-2.20.1/ld/ld.h -=================================================================== ---- binutils-2.20.1.orig/ld/ld.h -+++ binutils-2.20.1/ld/ld.h -@@ -176,6 +176,14 @@ typedef struct { - input files. */ - bfd_boolean accept_unknown_input_arch; - -+ /* 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; - -Index: binutils-2.20.1/ld/ld.texinfo -=================================================================== ---- binutils-2.20.1.orig/ld/ld.texinfo -+++ binutils-2.20.1/ld/ld.texinfo -@@ -2084,6 +2084,18 @@ string identifying the original linked f - - 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 -Index: binutils-2.20.1/ld/ldfile.c -=================================================================== ---- binutils-2.20.1.orig/ld/ldfile.c -+++ binutils-2.20.1/ld/ldfile.c -@@ -120,6 +120,23 @@ ldfile_add_library_path (const char *nam - { - new_dirs->name = xstrdup (name); - new_dirs->sysrooted = is_sysrooted_pathname (name, FALSE); -+ -+#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 -+ - } - } - -Index: binutils-2.20.1/ld/ldmain.c -=================================================================== ---- binutils-2.20.1.orig/ld/ldmain.c -+++ binutils-2.20.1/ld/ldmain.c -@@ -252,6 +252,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 -Index: binutils-2.20.1/ld/lexsup.c -=================================================================== ---- binutils-2.20.1.orig/ld/lexsup.c -+++ binutils-2.20.1/ld/lexsup.c -@@ -166,7 +166,9 @@ enum option_values - OPTION_WARN_SHARED_TEXTREL, - OPTION_WARN_ALTERNATE_EM, - OPTION_REDUCE_MEMORY_OVERHEADS, -- OPTION_DEFAULT_SCRIPT -+ OPTION_DEFAULT_SCRIPT, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES, -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES - }; - - /* The long options. This structure is used for both the option -@@ -575,6 +577,14 @@ static const struct ld_option ld_options - TWO_DASHES }, - { {"wrap", required_argument, NULL, OPTION_WRAP}, - '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), 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) -@@ -1480,6 +1490,14 @@ parse_args (unsigned argc, char **argv) - einfo (_("%P%X: --hash-size needs a numeric argument\n")); - } - 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; - } - } - -diff -ur binutils-2.20.1.orig/ld/configure binutils-2.20.1/ld/configure ---- binutils-2.20.1.orig/ld/configure 2010-03-03 08:06:22.000000000 -0600 -+++ binutils-2.20.1/ld/configure 2010-09-30 11:19:35.776990594 -0500 -@@ -901,6 +904,7 @@ - enable_targets - enable_64_bit_bfd - with_sysroot -+enable_poison_system_directories - enable_got - enable_werror - enable_build_warnings -@@ -1548,6 +1552,8 @@ - (and sometimes confusing) to the casual installer - --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-got=<type> GOT handling scheme (target, single, negative, - multigot) - --enable-werror treat compile warnings as errors -@@ -4302,6 +4334,19 @@ - - - -+# 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 : - enableval=$enable_got; case "${enableval}" in |