ec4ca0ddf9
>From the release note: This is a point release over the previous 2.31 version, which was necessary as a source file was accidentally omitted from that release. This release also contains a fix for PR gold/23409 where the gold linker could end up creating duplicate copies of some symbols. https://sourceware.org/ml/binutils/2018-07/msg00286.html Signed-off-by: Romain Naour <romain.naour@smile.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
44 lines
1.4 KiB
Diff
44 lines
1.4 KiB
Diff
From 9d09ce14b4eef2b56f24660fd69a44acd45128b2 Mon Sep 17 00:00:00 2001
|
|
From: Cupertino Miranda <cmiranda@synopsys.com>
|
|
Date: Fri, 2 Mar 2018 17:38:14 +0100
|
|
Subject: [PATCH] Make sure global symbol is not an indirect or warning.
|
|
|
|
Problem identified in the context of glibc with latest upstream binutils.
|
|
Dynamic symbol space was being reserved but, no actual information for the
|
|
symbol was being set. Data for the symbol was kept initialized with -1.
|
|
No easy test case was possible to be created.
|
|
|
|
bfd/
|
|
2018-03-01 Cupertino Miranda <cmiranda@synopsys.com>
|
|
|
|
* elf32-arc.c (elf_arc_check_relocs): Changed.
|
|
|
|
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|
[Romain: rebase on top of 2.31]
|
|
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
|
---
|
|
bfd/elf32-arc.c | 7 ++++++-
|
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
|
|
index 33fc72cff6e..9b72c5b4f4f 100644
|
|
--- a/bfd/elf32-arc.c
|
|
+++ b/bfd/elf32-arc.c
|
|
@@ -1960,7 +1960,12 @@ elf_arc_check_relocs (bfd * abfd,
|
|
if (r_symndx < symtab_hdr->sh_info) /* Is a local symbol. */
|
|
h = NULL;
|
|
else /* Global one. */
|
|
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
|
|
+ {
|
|
+ h = sym_hashes[r_symndx - symtab_hdr->sh_info];
|
|
+ while (h->root.type == bfd_link_hash_indirect
|
|
+ || h->root.type == bfd_link_hash_warning)
|
|
+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
|
+ }
|
|
|
|
|
|
switch (r_type)
|
|
--
|
|
2.14.4
|
|
|