kumquat-buildroot/package/binutils/2.31.1/0008-Make-sure-global-symbol-is-not-an-indirect-or-warnin.patch
Romain Naour ec4ca0ddf9 package/binutils: bump to version 2.31.1
>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>
2018-07-18 22:45:33 +02:00

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