diff options
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch')
-rw-r--r-- | meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch | 75 |
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 5b3edfbd03..0000000000 --- a/meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch +++ /dev/null | |||
@@ -1,75 +0,0 @@ | |||
1 | From d1ec1e40b5b457c92aaa23f7af40e026e4596a99 Mon Sep 17 00:00:00 2001 | ||
2 | From: H.J. Lu <hjl.tools@gmail.com> | ||
3 | Date: Tue, 14 Jan 2014 10:48:39 -0800 | ||
4 | Subject: [PATCH 1/1] Don't update reloc count if there are any non pc-relative relocs | ||
5 | |||
6 | PR ld/16428 | ||
7 | * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't update reloc | ||
8 | count if there are any non pc-relative relocs. | ||
9 | * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. | ||
10 | --- | ||
11 | bfd/ChangeLog | 7 +++++++ | ||
12 | bfd/elf32-i386.c | 9 +++++++-- | ||
13 | bfd/elf64-x86-64.c | 9 +++++++-- | ||
14 | 3 files changed, 21 insertions(+), 4 deletions(-) | ||
15 | |||
16 | Upstream-Status: Backport | ||
17 | |||
18 | #diff --git a/bfd/ChangeLog b/bfd/ChangeLog | ||
19 | #index a8f1f94..7a49fd1 100644 | ||
20 | #--- a/bfd/ChangeLog | ||
21 | #+++ b/bfd/ChangeLog | ||
22 | #@@ -1,3 +1,10 @@ | ||
23 | #+2014-01-14 H.J. Lu <hongjiu.lu@intel.com> | ||
24 | #+ | ||
25 | #+ PR ld/16428 | ||
26 | #+ * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't update reloc | ||
27 | #+ count if there are any non pc-relative relocs. | ||
28 | #+ * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. | ||
29 | #+ | ||
30 | # 2014-01-14 Michael Hudson-Doyle <michael.hudson@linaro.org> | ||
31 | # Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | ||
32 | # | ||
33 | diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c | ||
34 | index 4d391e1..d7f59e5 100644 | ||
35 | --- a/bfd/elf32-i386.c | ||
36 | +++ b/bfd/elf32-i386.c | ||
37 | @@ -2368,8 +2368,13 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) | ||
38 | |||
39 | for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) | ||
40 | { | ||
41 | - p->count -= p->pc_count; | ||
42 | - p->pc_count = 0; | ||
43 | + /* Don't update reloc count if there are any non | ||
44 | + pc-relative relocs. */ | ||
45 | + if (!h->pointer_equality_needed) | ||
46 | + { | ||
47 | + p->count -= p->pc_count; | ||
48 | + p->pc_count = 0; | ||
49 | + } | ||
50 | if (p->count == 0) | ||
51 | *pp = p->next; | ||
52 | else | ||
53 | diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c | ||
54 | index edee8ec..999011b 100644 | ||
55 | --- a/bfd/elf64-x86-64.c | ||
56 | +++ b/bfd/elf64-x86-64.c | ||
57 | @@ -2463,8 +2463,13 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) | ||
58 | |||
59 | for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) | ||
60 | { | ||
61 | - p->count -= p->pc_count; | ||
62 | - p->pc_count = 0; | ||
63 | + /* Don't update reloc count if there are any non | ||
64 | + pc-relative relocs. */ | ||
65 | + if (!h->pointer_equality_needed) | ||
66 | + { | ||
67 | + p->count -= p->pc_count; | ||
68 | + p->pc_count = 0; | ||
69 | + } | ||
70 | if (p->count == 0) | ||
71 | *pp = p->next; | ||
72 | else | ||
73 | -- | ||
74 | 1.7.1 | ||
75 | |||