patches/binutils/2.19.1/150-warn-textrel.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 18 23:00:46 2011 +0200 (2011-05-18)
changeset 2467 200836977ce6
permissions -rw-r--r--
config: rename variables that are arrays

Make it explicit that a variable is an array bu the name of the variable.
It will be used later when .config gets munged to allow both multiple
arguments and arguments with spaces at the same time to be passed from the
configuration down to the build scripts.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 Original patch from: ../crosstool-NG/ct-ng.trunk/patches/binutils/2.19/150-warn-textrel.patch
     2 
     3 -= BEGIN original header =-
     4 Original patch from Gentoo:
     5 gentoo/src/patchsets/binutils/2.19/66_all_binutils-2.18.50.0.2-warn-textrel.patch
     6 
     7 textrels are bad for forcing copy-on-write (this affects everyone),
     8 and for security/runtime code generation, this affects security ppl.
     9 But in either case, it doesn't matter who needs textrels, it's
    10 the very fact that they're needed at all.
    11 
    12 -= END original header =-
    13 
    14 diff -durN binutils-2.19.1.orig/bfd/elflink.c binutils-2.19.1/bfd/elflink.c
    15 --- binutils-2.19.1.orig/bfd/elflink.c	2009-03-08 11:57:02.000000000 +0100
    16 +++ binutils-2.19.1/bfd/elflink.c	2009-03-08 11:57:02.000000000 +0100
    17 @@ -10820,14 +10820,12 @@
    18  	goto error_return;
    19  
    20        /* Check for DT_TEXTREL (late, in case the backend removes it).  */
    21 -      if (info->warn_shared_textrel && info->shared)
    22 +      o = bfd_get_section_by_name (dynobj, ".dynamic");
    23 +      if (info->warn_shared_textrel && o != NULL)
    24  	{
    25  	  bfd_byte *dyncon, *dynconend;
    26  
    27  	  /* Fix up .dynamic entries.  */
    28 -	  o = bfd_get_section_by_name (dynobj, ".dynamic");
    29 -	  BFD_ASSERT (o != NULL);
    30 -
    31  	  dyncon = o->contents;
    32  	  dynconend = o->contents + o->size;
    33  	  for (; dyncon < dynconend; dyncon += bed->s->sizeof_dyn)
    34 @@ -10839,7 +10837,7 @@
    35  	      if (dyn.d_tag == DT_TEXTREL)
    36  		{
    37  		 info->callbacks->einfo
    38 -		    (_("%P: warning: creating a DT_TEXTREL in a shared object.\n"));
    39 +		    (_("%P: warning: creating a DT_TEXTREL in object.\n"));
    40  		  break;
    41  		}
    42  	    }
    43 diff -durN binutils-2.19.1.orig/ld/ldmain.c binutils-2.19.1/ld/ldmain.c
    44 --- binutils-2.19.1.orig/ld/ldmain.c	2008-08-17 05:12:50.000000000 +0200
    45 +++ binutils-2.19.1/ld/ldmain.c	2009-03-08 11:57:02.000000000 +0100
    46 @@ -274,6 +274,7 @@
    47    link_info.relax_pass = 1;
    48    link_info.pei386_auto_import = -1;
    49    link_info.spare_dynamic_tags = 5;
    50 +  link_info.warn_shared_textrel = TRUE;
    51    link_info.path_separator = ':';
    52  
    53    ldfile_add_arch ("");