patches/binutils/2.19.1/150-warn-textrel.patch
author Arnaud Lacombe <lacombar@gmail.com>
Tue Aug 03 06:17:51 2010 +0200 (2010-08-03)
changeset 2064 f5ebe8c429dc
permissions -rw-r--r--
libc/uClibc: add uClibc 0.9.30.3

This version has been released a couple of month ago, but it never reached
crosstool-ng tree. This may be linked to the fact that the current 0.9.30.2,
once patched, has nothing much different from 0.9.30.3, released.

I'm not including any patch with this upgrade, on purpose.

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