mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-28 06:20:30 +00:00
* bfd/elflink.c (_bfd_elf_merge_symbol): Tighten up the test for early
exit due to merging the same weak symbol to test that the symbols are actually weak.
This commit is contained in:
parent
5558e7e691
commit
895fa45f39
@ -1,3 +1,9 @@
|
||||
2010-04-14 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||
|
||||
* elflink.c (_bfd_elf_merge_symbol): Tighten up the test for early
|
||||
exit due to merging the same weak symbol to test that the symbols are
|
||||
actually weak.
|
||||
|
||||
2010-04-13 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_relocate_section): Correct NOP location
|
||||
|
@ -1013,6 +1013,11 @@ _bfd_elf_merge_symbol (bfd *abfd,
|
||||
break;
|
||||
}
|
||||
|
||||
/* Differentiate strong and weak symbols. */
|
||||
newweak = bind == STB_WEAK;
|
||||
oldweak = (h->root.type == bfd_link_hash_defweak
|
||||
|| h->root.type == bfd_link_hash_undefweak);
|
||||
|
||||
/* In cases involving weak versioned symbols, we may wind up trying
|
||||
to merge a symbol with itself. Catch that here, to avoid the
|
||||
confusion that results if we try to override a symbol with
|
||||
@ -1020,6 +1025,7 @@ _bfd_elf_merge_symbol (bfd *abfd,
|
||||
_GLOBAL_OFFSET_TABLE_, which are regular symbols defined in a
|
||||
dynamic object, which we do want to handle here. */
|
||||
if (abfd == oldbfd
|
||||
&& (newweak || oldweak)
|
||||
&& ((abfd->flags & DYNAMIC) == 0
|
||||
|| !h->def_regular))
|
||||
return TRUE;
|
||||
@ -1241,11 +1247,6 @@ _bfd_elf_merge_symbol (bfd *abfd,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Differentiate strong and weak symbols. */
|
||||
newweak = bind == STB_WEAK;
|
||||
oldweak = (h->root.type == bfd_link_hash_defweak
|
||||
|| h->root.type == bfd_link_hash_undefweak);
|
||||
|
||||
if (bind == STB_GNU_UNIQUE)
|
||||
h->unique_global = 1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user