* 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> Fri Oct 8 13:03:45 1999 Geoffrey Keating <geoffk@cygnus.com>
* elf32-mips.c (mips_elf_calculate_relocation): R_MIPS_LITERAL * 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 /* 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 of the code does not think we are using the regular
definition. */ definition. */
h->elf_link_hash_flags &= ~ ELF_LINK_HASH_DEF_REGULAR; if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)
h->elf_link_hash_flags |= ELF_LINK_HASH_REF_REGULAR; 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 /* If H is the target of an indirection, we want the caller to
use H rather than the indirect symbol. Otherwise if we are use H rather than the indirect symbol. Otherwise if we are