* elflink.h (elf_merge_symbol): When overriding a weak symbol with

a defined symbol in a shared library, clear the DEF_DYNAMIC flag
	too.
This commit is contained in:
Ian Lance Taylor 1999-10-08 15:21:56 +00:00
parent f20a759a4d
commit 64df8d0bce
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,9 @@
1999-10-08 Ian Lance Taylor <ian@zembu.com>
* elflink.h (elf_merge_symbol): When overriding a weak symbol with
a defined symbol in a shared library, clear the DEF_DYNAMIC flag
too.
Fri Oct 8 13:03:45 1999 Geoffrey Keating <geoffk@cygnus.com>
* elf32-mips.c (mips_elf_calculate_relocation): R_MIPS_LITERAL

View File

@ -683,8 +683,12 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
/* To make this work we have to frob the flags so that the rest
of the code does not think we are using the regular
definition. */
h->elf_link_hash_flags &= ~ ELF_LINK_HASH_DEF_REGULAR;
h->elf_link_hash_flags |= ELF_LINK_HASH_REF_REGULAR;
if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)
h->elf_link_hash_flags |= ELF_LINK_HASH_REF_REGULAR;
else if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0)
h->elf_link_hash_flags |= ELF_LINK_HASH_REF_DYNAMIC;
h->elf_link_hash_flags &= ~ (ELF_LINK_HASH_DEF_REGULAR
| ELF_LINK_HASH_DEF_DYNAMIC);
/* If H is the target of an indirection, we want the caller to
use H rather than the indirect symbol. Otherwise if we are