patches/binutils/2.19.1/150-warn-textrel.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun May 03 09:50:16 2009 +0000 (2009-05-03)
branchnewlib
changeset 1366 5e5d1e6f55d3
permissions -rw-r--r--
Update the newlib devel branch with stuff from /trunk@1498.

-------- diffstat follows --------
/devel/newlib/configure | 336 176 160 0 +++++++------
/devel/newlib/Makefile.in | 12 3 9 0 -
/devel/newlib/scripts/build/kernel/linux.sh | 2 1 1 0
/devel/newlib/scripts/build/internals.sh | 1 0 1 0 -
/devel/newlib/scripts/build/libc/eglibc.sh | 1 0 1 0 -
/devel/newlib/scripts/build/mpfr.sh | 2 1 1 0
/devel/newlib/scripts/functions | 111 5 106 0 ----
/devel/newlib/scripts/config.guess | 7 5 2 0 +
/devel/newlib/scripts/config.sub | 3 2 1 0 +
/devel/newlib/scripts/saveSample.sh.in | 4 2 2 0
/devel/newlib/docs/overview.txt | 8 6 2 0 +
/devel/newlib/samples/armeb-unknown-linux-uclibc/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/sh4-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/x86_64-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/arm-unknown-elf/crosstool.config | 12 3 9 0 -
/devel/newlib/samples/armeb-unknown-eabi/crosstool.config | 2 0 2 0 -
/devel/newlib/samples/arm-unknown-linux-gnueabi/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/ia64-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/x86_64-unknown-linux-uclibc/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/armeb-unknown-linux-gnueabi/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/powerpc-e500v2-linux-gnuspe/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/i686-nptl-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/arm-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/powerpc-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/mips-unknown-linux-uclibc/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/arm-iphone-linux-gnueabi/crosstool.config | 8 4 4 0
/devel/newlib/samples/armeb-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/i586-geode-linux-uclibc/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/arm-unknown-linux-uclibc/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/powerpc-unknown-linux-uclibc/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/mips-unknown-elf/crosstool.config | 2 0 2 0 -
/devel/newlib/samples/powerpc-405-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/arm-unknown-eabi/crosstool.config | 12 3 9 0 -
/devel/newlib/samples/mipsel-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/powerpc64-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/alphaev56-unknown-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/samples/powerpc-860-linux-gnu/crosstool.config | 14 5 9 0 -
/devel/newlib/config/kernel/linux.in | 108 2 106 0 ----
/devel/newlib/config/global/ct-behave.in | 22 13 9 0 +
/devel/newlib/config/global/download.in | 210 15 195 0 +-------
/devel/newlib/config/libc/glibc.in | 7 7 0 0 +
/devel/newlib/config/libc/glibc-eglibc.in-common | 15 14 1 0 +
45 files changed, 382 insertions(+), 839 deletions(-)
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 ("");