summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils/binutils/fix-pr16428b.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/fix-pr16428b.patch')
-rw-r--r--meta/recipes-devtools/binutils/binutils/fix-pr16428b.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/fix-pr16428b.patch b/meta/recipes-devtools/binutils/binutils/fix-pr16428b.patch
new file mode 100644
index 0000000000..35aa7b577d
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/fix-pr16428b.patch
@@ -0,0 +1,75 @@
1From 818d220a6fe3d0512a226188e9164245a02c9185 Mon Sep 17 00:00:00 2001
2From: H.J. Lu <hjl.tools@gmail.com>
3Date: Tue, 14 Jan 2014 16:42:35 -0800
4Subject: [PATCH] Don't discard relocs against __ehdr_start
5
6__ehdr_start will be defined by assign_file_positions_for_non_load_sections
7later.
8
9 PR ld/16428
10 * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't discard relocs
11 against __ehdr_start.
12 * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
13---
14 bfd/ChangeLog | 7 +++++++
15 bfd/elf32-i386.c | 7 +++++--
16 bfd/elf64-x86-64.c | 7 +++++--
17 3 files changed, 17 insertions(+), 4 deletions(-)
18
19Upstream-Status: Backport
20
21#diff --git a/bfd/ChangeLog b/bfd/ChangeLog
22#index 7d13a35..f4acda0 100644
23#--- a/bfd/ChangeLog
24#+++ b/bfd/ChangeLog
25#@@ -1,5 +1,12 @@
26# 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
27#
28#+ PR ld/16428
29#+ * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't discard relocs
30#+ against __ehdr_start.
31#+ * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
32#+
33#+2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
34#+
35# * elf32-i386.c (elf_i386_allocate_dynrelocs): Revert the last
36# change.
37# * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
38Index: binutils-2.24/bfd/elf32-i386.c
39===================================================================
40--- binutils-2.24.orig/bfd/elf32-i386.c 2014-03-25 10:26:54.818385608 +0000
41+++ binutils-2.24/bfd/elf32-i386.c 2014-03-25 10:26:54.814385607 +0000
42@@ -2395,9 +2395,12 @@
43 }
44
45 /* Also discard relocs on undefined weak syms with non-default
46- visibility. */
47+ visibility. Don't discard relocs against __ehdr_start which
48+ will be defined by assign_file_positions_for_non_load_sections
49+ later. */
50 if (eh->dyn_relocs != NULL
51- && h->root.type == bfd_link_hash_undefweak)
52+ && h->root.type == bfd_link_hash_undefweak
53+ && strcmp (h->root.root.string, "__ehdr_start") != 0)
54 {
55 if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
56 eh->dyn_relocs = NULL;
57Index: binutils-2.24/bfd/elf64-x86-64.c
58===================================================================
59--- binutils-2.24.orig/bfd/elf64-x86-64.c 2014-03-25 10:26:54.818385608 +0000
60+++ binutils-2.24/bfd/elf64-x86-64.c 2014-03-25 10:26:54.814385607 +0000
61@@ -2478,9 +2478,12 @@
62 }
63
64 /* Also discard relocs on undefined weak syms with non-default
65- visibility. */
66+ visibility. Don't discard relocs against __ehdr_start which
67+ will be defined by assign_file_positions_for_non_load_sections
68+ later. */
69 if (eh->dyn_relocs != NULL
70- && h->root.type == bfd_link_hash_undefweak)
71+ && h->root.type == bfd_link_hash_undefweak
72+ && strcmp (h->root.root.string, "__ehdr_start") != 0)
73 {
74 if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
75 eh->dyn_relocs = NULL;