mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-25 13:09:48 +00:00
2001-02-08 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_check_relocs): Reserve R_386_PC32 relocation entries for weak definitions when building DSO with -Bsymbolic.
This commit is contained in:
parent
c5bb12431c
commit
1f655a0986
@ -1,3 +1,9 @@
|
||||
2001-02-08 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* elf32-i386.c (elf_i386_check_relocs): Reserve R_386_PC32
|
||||
relocation entries for weak definitions when building DSO with
|
||||
-Bsymbolic.
|
||||
|
||||
2001-02-08 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Respect weakness
|
||||
|
@ -643,16 +643,19 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
|
||||
including in the link (i.e., DEF_REGULAR is set). At
|
||||
this point we have not seen all the input files, so it is
|
||||
possible that DEF_REGULAR is not set now but will be set
|
||||
later (it is never cleared). We account for that
|
||||
possibility below by storing information in the
|
||||
pcrel_relocs_copied field of the hash table entry.
|
||||
A similar situation occurs when creating shared libraries
|
||||
and symbol visibility changes render the symbol local. */
|
||||
later (it is never cleared). In case of a weak definition,
|
||||
DEF_REGULAR may be cleared later by a strong definition in
|
||||
a shared library. We account for that possibility below by
|
||||
storing information in the relocs_copied field of the hash
|
||||
table entry. A similar situation occurs when creating
|
||||
shared libraries and symbol visibility changes render the
|
||||
symbol local. */
|
||||
if (info->shared
|
||||
&& (sec->flags & SEC_ALLOC) != 0
|
||||
&& (ELF32_R_TYPE (rel->r_info) != R_386_PC32
|
||||
|| (h != NULL
|
||||
&& (! info->symbolic
|
||||
|| h->root.type == bfd_link_hash_defweak
|
||||
|| (h->elf_link_hash_flags
|
||||
& ELF_LINK_HASH_DEF_REGULAR) == 0))))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user