diff options
| author | Nitin A Kamble <nitin.a.kamble@intel.com> | 2010-09-03 10:41:09 -0700 | 
|---|---|---|
| committer | Saul Wold <Saul.Wold@intel.com> | 2010-09-08 16:36:52 -0700 | 
| commit | 75b90f1d6de833c9d0d5dcc7ebcb60fee2d26188 (patch) | |
| tree | 65cc1604544686de911fb7f712a8abe4a666610d | |
| parent | 3e7db72216472050366c3059219660dea057e80b (diff) | |
| download | openembedded-core-75b90f1d6de833c9d0d5dcc7ebcb60fee2d26188.tar.gz openembedded-core-75b90f1d6de833c9d0d5dcc7ebcb60fee2d26188.tar.bz2 openembedded-core-75b90f1d6de833c9d0d5dcc7ebcb60fee2d26188.zip | |
binutils: add binutils_poison.patch
and also correct the license field in the recipe
This fixes [BUGID #245]
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
5 files changed, 218 insertions, 4 deletions
| diff --git a/meta/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch b/meta/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch new file mode 100644 index 0000000000..aefd3c3727 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch @@ -0,0 +1,213 @@ +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 --git a/meta/recipes-devtools/binutils/binutils-cross-canadian_2.20.1.bb b/meta/recipes-devtools/binutils/binutils-cross-canadian_2.20.1.bb index f4a7a0e619..631be4fe7f 100644 --- a/meta/recipes-devtools/binutils/binutils-cross-canadian_2.20.1.bb +++ b/meta/recipes-devtools/binutils/binutils-cross-canadian_2.20.1.bb @@ -1,3 +1,3 @@  require binutils_${PV}.bb  require binutils-cross-canadian.inc -PR = "r4" +PR = "r5" diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.20.1.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.20.1.bb index f3bc5bfc22..88627f87be 100644 --- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.20.1.bb +++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.20.1.bb @@ -4,7 +4,7 @@ inherit crosssdk  PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk" -PR = "r3" +PR = "r4"  do_configure_prepend () {  	sed -i 's#/usr/local/lib /lib /usr/lib#${SDKPATHNATIVE}/lib ${SDKPATHNATIVE}/usr/lib /usr/local/lib /lib /usr/lib#' ${S}/ld/configure.tgt diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc index 7a352b5d3b..501c1be1ec 100644 --- a/meta/recipes-devtools/binutils/binutils.inc +++ b/meta/recipes-devtools/binutils/binutils.inc @@ -2,7 +2,7 @@ DESCRIPTION = "A GNU collection of binary utilities"  HOMEPAGE = "http://www.gnu.org/software/binutils/"  BUGTRACKER = "http://sourceware.org/bugzilla/"  SECTION = "devel" -LICENSE = "GPLv2" +LICENSE = "GPLv3"  DEPENDS = "flex-native bison-native" diff --git a/meta/recipes-devtools/binutils/binutils_2.20.1.bb b/meta/recipes-devtools/binutils/binutils_2.20.1.bb index d5cd985cca..2a1012852e 100644 --- a/meta/recipes-devtools/binutils/binutils_2.20.1.bb +++ b/meta/recipes-devtools/binutils/binutils_2.20.1.bb @@ -1,6 +1,6 @@  require binutils.inc -PR = "r2" +PR = "r3"  LIC_FILES_CHKSUM="\      file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\ @@ -27,6 +27,7 @@ SRC_URI = "\       file://binutils-mips-pie.patch \       file://binutils-libtool.patch \       file://libiberty_path_fix.patch \ +     file://binutils-poison.patch \       "  # powerpc patches | 
