[PATCH 3/6] [ARC] Make sure global symbol is not an indirect or warning.
cupertinomiranda@gmail.com
cupertinomiranda@gmail.com
Thu Sep 13 15:38:00 GMT 2018
More information about the Binutils mailing list
Thu Sep 13 15:38:00 GMT 2018
- Previous message (by thread): [PATCH 1/6] [ARC] Refactored location where GOT information is collected.
- Next message (by thread): [PATCH 3/6] [ARC] Make sure global symbol is not an indirect or warning.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
From: Cupertino Miranda <cmiranda@synopsys.com> 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. --- 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 3f60d09..4d36a41 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -1976,7 +1976,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.9.0
- Previous message (by thread): [PATCH 1/6] [ARC] Refactored location where GOT information is collected.
- Next message (by thread): [PATCH 3/6] [ARC] Make sure global symbol is not an indirect or warning.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list