kumquat-buildroot/package/binutils/2.30/0008-ARC-Make-sure-global-symbol-is-not-an-indirect-or-wa.patch
Alexey Brodkin 3ee1976ccc binutils: fix glibc building for ARC with stock binutils 2.30
There're known issues with building glibc for ARC with vanilla
Binutils 2.30. Adding a couple of not yet upstreamed patches that
solve it.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
[Thomas: remove numbering in patch titles, renumber patch file names.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-06-13 22:28:38 +02:00

43 lines
1.3 KiB
Diff

From b182c9f81daa08cf18cd78af3e7aca74640e8551 Mon Sep 17 00:00:00 2001
From: Cupertino Miranda <cmiranda@synopsys.com>
Date: Fri, 2 Mar 2018 17:38:14 +0100
Subject: [PATCH] [ARC] 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>
---
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 72b808b99127..6f6470f6f202 100644
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -1943,7 +1943,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.17.1