summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2014-06-24 14:18:19 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-06-25 13:51:45 +0100
commitad07178802d04ff475b3cac6a18f43523351da3e (patch)
treed0d6a26282a385878c5bac2907bd0ea1a73bbcb3 /meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch
parent7f6a92b1c51517b63cd15752ecac853de3d6245c (diff)
downloadast2050-yocto-poky-ad07178802d04ff475b3cac6a18f43523351da3e.zip
ast2050-yocto-poky-ad07178802d04ff475b3cac6a18f43523351da3e.tar.gz
binutils: Apply the proper fix for PR 16428
It is fixed by 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.) So replace the existing patches with this one. (From OE-Core rev: db37534c412ff3f1460687611060b3c4b3f95a04) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch')
-rw-r--r--meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch75
1 files changed, 0 insertions, 75 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch b/meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch
deleted file mode 100644
index 5b3edfb..0000000
--- a/meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From d1ec1e40b5b457c92aaa23f7af40e026e4596a99 Mon Sep 17 00:00:00 2001
-From: H.J. Lu <hjl.tools@gmail.com>
-Date: Tue, 14 Jan 2014 10:48:39 -0800
-Subject: [PATCH 1/1] Don't update reloc count if there are any non pc-relative relocs
-
- PR ld/16428
- * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't update reloc
- count if there are any non pc-relative relocs.
- * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
----
- bfd/ChangeLog | 7 +++++++
- bfd/elf32-i386.c | 9 +++++++--
- bfd/elf64-x86-64.c | 9 +++++++--
- 3 files changed, 21 insertions(+), 4 deletions(-)
-
-Upstream-Status: Backport
-
-#diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-#index a8f1f94..7a49fd1 100644
-#--- a/bfd/ChangeLog
-#+++ b/bfd/ChangeLog
-#@@ -1,3 +1,10 @@
-#+2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
-#+
-#+ PR ld/16428
-#+ * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't update reloc
-#+ count if there are any non pc-relative relocs.
-#+ * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
-#+
-# 2014-01-14 Michael Hudson-Doyle <michael.hudson@linaro.org>
-# Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
-#
-diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
-index 4d391e1..d7f59e5 100644
---- a/bfd/elf32-i386.c
-+++ b/bfd/elf32-i386.c
-@@ -2368,8 +2368,13 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
-
- for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
- {
-- p->count -= p->pc_count;
-- p->pc_count = 0;
-+ /* Don't update reloc count if there are any non
-+ pc-relative relocs. */
-+ if (!h->pointer_equality_needed)
-+ {
-+ p->count -= p->pc_count;
-+ p->pc_count = 0;
-+ }
- if (p->count == 0)
- *pp = p->next;
- else
-diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
-index edee8ec..999011b 100644
---- a/bfd/elf64-x86-64.c
-+++ b/bfd/elf64-x86-64.c
-@@ -2463,8 +2463,13 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf)
-
- for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
- {
-- p->count -= p->pc_count;
-- p->pc_count = 0;
-+ /* Don't update reloc count if there are any non
-+ pc-relative relocs. */
-+ if (!h->pointer_equality_needed)
-+ {
-+ p->count -= p->pc_count;
-+ p->pc_count = 0;
-+ }
- if (p->count == 0)
- *pp = p->next;
- else
---
-1.7.1
-
OpenPOWER on IntegriCloud