aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils/binutils/fix-pr16428.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/fix-pr16428.patch')
-rw-r--r--meta/recipes-devtools/binutils/binutils/fix-pr16428.patch123
1 files changed, 0 insertions, 123 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/fix-pr16428.patch b/meta/recipes-devtools/binutils/binutils/fix-pr16428.patch
deleted file mode 100644
index 4584748bb2..0000000000
--- a/meta/recipes-devtools/binutils/binutils/fix-pr16428.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-commit 4199e3b8669d0a36448687850374fdc2ad7240b6
-Author: Alan Modra <amodra@gmail.com>
-Date: Wed Jan 15 21:50:55 2014 +1030
-
- non-PIC references to __ehdr_start in pie and shared
-
- Rather than hacking every backend to not discard dynamic relocations
- against an undefined hidden __ehdr_start, make it appear to be defined
- early. We want __ehdr_start hidden before size_dynamic_sections so
- that it isn't put in .dynsym, but we do need the dynamic relocations
- for a PIE or shared library with a non-PIC reference. Defining it
- early is wrong if we don't actually define the symbol later to its
- proper value. (In some cases we want to leave the symbol undefined,
- for example, when the ELF header isn't loaded, and we don't have this
- infomation available in before_allocation.)
-
- ld/
- * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Define
- __ehdr_start before size_dynamic_sections and restore afterwards.
- ld/testsuite/
- * ld-elf/ehdr_start-shared.d: New.
- * ld-elf/ehdr_start-userdef.d: xfail frv.
- * ld-elf/ehdr_start-weak.d: Likewise.
- * ld-elf/ehdr_start.d: Likewise.
-
-Upstream-Status: Backport
-
-diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
-index 9a2fe89..13f86f0 100644
---- a/ld/emultempl/elf32.em
-+++ b/ld/emultempl/elf32.em
-@@ -1480,6 +1480,8 @@ gld${EMULATION_NAME}_before_allocation (void)
- const char *rpath;
- asection *sinterp;
- bfd *abfd;
-+ struct elf_link_hash_entry *ehdr_start = NULL;
-+ struct bfd_link_hash_entry ehdr_start_save;
-
- if (is_elf_hash_table (link_info.hash))
- {
-@@ -1504,6 +1506,16 @@ gld${EMULATION_NAME}_before_allocation (void)
- _bfd_elf_link_hash_hide_symbol (&link_info, h, TRUE);
- if (ELF_ST_VISIBILITY (h->other) != STV_INTERNAL)
- h->other = (h->other & ~ELF_ST_VISIBILITY (-1)) | STV_HIDDEN;
-+ /* Don't leave the symbol undefined. Undefined hidden
-+ symbols typically won't have dynamic relocations, but
-+ we most likely will need dynamic relocations for
-+ __ehdr_start if we are building a PIE or shared
-+ library. */
-+ ehdr_start = h;
-+ ehdr_start_save = h->root;
-+ h->root.type = bfd_link_hash_defined;
-+ h->root.u.def.section = bfd_abs_section_ptr;
-+ h->root.u.def.value = 0;
- }
- }
-
-@@ -1620,6 +1632,14 @@ ${ELF_INTERPRETER_SET_DEFAULT}
-
- if (!bfd_elf_size_dynsym_hash_dynstr (link_info.output_bfd, &link_info))
- einfo ("%P%F: failed to set dynamic section sizes: %E\n");
-+
-+ if (ehdr_start != NULL)
-+ {
-+ /* If we twiddled __ehdr_start to defined earlier, put it back
-+ as it was. */
-+ ehdr_start->root.type = ehdr_start_save.type;
-+ ehdr_start->root.u = ehdr_start_save.u;
-+ }
- }
-
- EOF
-diff --git a/ld/testsuite/ld-elf/ehdr_start-shared.d b/ld/testsuite/ld-elf/ehdr_start-shared.d
-new file mode 100644
-index 0000000..c17516a
---- /dev/null
-+++ b/ld/testsuite/ld-elf/ehdr_start-shared.d
-@@ -0,0 +1,9 @@
-+#source: ehdr_start.s
-+#ld: -e _start -shared
-+#nm: -n
-+#target: *-*-linux* *-*-gnu* *-*-nacl*
-+#xfail: cris*-*-* frv-*-*
-+
-+#...
-+[0-9a-f]*000 [Adrt] __ehdr_start
-+#pass
-diff --git a/ld/testsuite/ld-elf/ehdr_start-userdef.d b/ld/testsuite/ld-elf/ehdr_start-userdef.d
-index 2a88e98..b58ae3f 100644
---- a/ld/testsuite/ld-elf/ehdr_start-userdef.d
-+++ b/ld/testsuite/ld-elf/ehdr_start-userdef.d
-@@ -2,6 +2,7 @@
- #ld: -e _start -T ehdr_start-userdef.t
- #readelf: -Ws
- #target: *-*-linux* *-*-gnu* *-*-nacl*
-+#xfail: frv-*-*
-
- #...
- Symbol table '\.symtab' contains [0-9]+ entries:
-diff --git a/ld/testsuite/ld-elf/ehdr_start-weak.d b/ld/testsuite/ld-elf/ehdr_start-weak.d
-index 8bd9035..24ae34c 100644
---- a/ld/testsuite/ld-elf/ehdr_start-weak.d
-+++ b/ld/testsuite/ld-elf/ehdr_start-weak.d
-@@ -2,6 +2,7 @@
- #ld: -e _start -T ehdr_start-missing.t
- #nm: -n
- #target: *-*-linux* *-*-gnu* *-*-nacl*
-+#xfail: frv-*-*
-
- #...
- \s+[wU] __ehdr_start
-diff --git a/ld/testsuite/ld-elf/ehdr_start.d b/ld/testsuite/ld-elf/ehdr_start.d
-index 52e5b54..d538b66 100644
---- a/ld/testsuite/ld-elf/ehdr_start.d
-+++ b/ld/testsuite/ld-elf/ehdr_start.d
-@@ -2,6 +2,7 @@
- #ld: -e _start
- #nm: -n
- #target: *-*-linux* *-*-gnu* *-*-nacl*
-+#xfail: frv-*-*
-
- #...
- [0-9a-f]*000 [Adrt] __ehdr_start