diff options
author | Ian Lance Taylor <ian@airs.com> | 1999-09-04 16:26:08 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1999-09-04 16:26:08 +0000 |
commit | 7843f00e2d20477ff4fe77054c7f2c5a90a20bca (patch) | |
tree | a3b1a31ff9e27a3f9e2745611d5bfd031647b44c /bfd/elflink.h | |
parent | 4fe53c9827dd950f6fac045494bb4821a40b2141 (diff) | |
download | gdb-7843f00e2d20477ff4fe77054c7f2c5a90a20bca.zip gdb-7843f00e2d20477ff4fe77054c7f2c5a90a20bca.tar.gz gdb-7843f00e2d20477ff4fe77054c7f2c5a90a20bca.tar.bz2 |
* elf-bfd.h (ELF_LINK_NON_GOT_REF): Define.
* elflink.h (elf_adjust_dynamic_symbol): Copy REF_REGULAR_NONWEAK
and NON_GOT_REF from weak defined symbol to real symbol.
* elf32-i386.c (elf_i386_check_relocs): Set NON_GOT_REF.
(elf_i386_adjust_dynamic_symbol): If NON_GOT_REF is not set, don't
create a COPY reloc.
* elf32-sparc.c (elf32_sparc_check_relocs): Set NON_GOT_REF.
(elf32_sparc_adjust_dynamic_symbol): If NON_GOT_REF is not set,
don't create a COPY reloc.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r-- | bfd/elflink.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h index e60beae..e9ba45a 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -3349,10 +3349,11 @@ elf_adjust_dynamic_symbol (h, data) { /* There is an implicit reference by a regular object file via the weak symbol. */ - weakdef->elf_link_hash_flags |= ELF_LINK_HASH_REF_REGULAR; - if (h->weakdef->elf_link_hash_flags - & ELF_LINK_HASH_REF_REGULAR_NONWEAK) - weakdef->elf_link_hash_flags |= ELF_LINK_HASH_REF_REGULAR_NONWEAK; + weakdef->elf_link_hash_flags |= + (ELF_LINK_HASH_REF_REGULAR + | (h->elf_link_hash_flags + & (ELF_LINK_HASH_REF_REGULAR_NONWEAK + | ELF_LINK_NON_GOT_REF))); if (! elf_adjust_dynamic_symbol (weakdef, (PTR) eif)) return false; } |