author | Titus von Boxberg <titus@v9g.de> |
Wed May 19 18:22:32 2010 +0200 (2010-05-19) | |
changeset 1956 | 79de82f5843d |
permissions | -rw-r--r-- |
1 Original patch from: ../crosstool-NG/ct-ng.trunk/patches/binutils/2.19/150-warn-textrel.patch
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
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.
12 -= END original header =-
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;
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;
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 = ':';
53 ldfile_add_arch ("");