* libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Don't define.
* elfcode.h (elf_link_add_object_symbols): Don't clear or set ELF_LINK_HASH_DEFINED_WEAK. (elf_link_output_extsym): Don't check ELF_LINK_HASH_DEFINED_WEAK.
This commit is contained in:
parent
484a089694
commit
0bef7f7266
3 changed files with 8 additions and 18 deletions
|
@ -1,5 +1,10 @@
|
|||
Mon Feb 6 14:25:24 1995 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Don't define.
|
||||
* elfcode.h (elf_link_add_object_symbols): Don't clear or set
|
||||
ELF_LINK_HASH_DEFINED_WEAK.
|
||||
(elf_link_output_extsym): Don't check ELF_LINK_HASH_DEFINED_WEAK.
|
||||
|
||||
Distinguish a weak defined symbol from a regular defined symbol.
|
||||
* linker.c (enum link_action): Add DEFW.
|
||||
(link_action): Add bfd_link_hash_defweak column.
|
||||
|
|
|
@ -4435,19 +4435,7 @@ elf_link_add_object_symbols (abfd, info)
|
|||
with the new definition. */
|
||||
h->root.type = bfd_link_hash_undefined;
|
||||
h->root.u.undef.abfd = h->root.u.def.section->owner;
|
||||
h->elf_link_hash_flags &=~ ELF_LINK_HASH_DEFINED_WEAK;
|
||||
}
|
||||
|
||||
/* If this is a weak definition which we are going to use,
|
||||
and the symbol is currently undefined, record that the
|
||||
definition is weak. */
|
||||
if (definition
|
||||
&& (flags & BSF_WEAK) != 0
|
||||
&& ! bfd_is_und_section (sec)
|
||||
&& (h->root.type == bfd_link_hash_new
|
||||
|| h->root.type == bfd_link_hash_undefined
|
||||
|| h->root.type == bfd_link_hash_undefweak))
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEFINED_WEAK;
|
||||
}
|
||||
|
||||
if (! (_bfd_generic_link_add_one_symbol
|
||||
|
@ -6100,8 +6088,7 @@ elf_link_output_extsym (h, data)
|
|||
sym.st_size = h->size;
|
||||
sym.st_other = 0;
|
||||
if (h->root.type == bfd_link_hash_undefweak
|
||||
|| h->root.type == bfd_link_hash_defweak
|
||||
|| (h->elf_link_hash_flags & ELF_LINK_HASH_DEFINED_WEAK) != 0)
|
||||
|| h->root.type == bfd_link_hash_defweak)
|
||||
sym.st_info = ELF_ST_INFO (STB_WEAK, h->type);
|
||||
else
|
||||
sym.st_info = ELF_ST_INFO (STB_GLOBAL, h->type);
|
||||
|
|
|
@ -117,12 +117,10 @@ struct elf_link_hash_entry
|
|||
#define ELF_LINK_HASH_DEF_DYNAMIC 010
|
||||
/* Dynamic symbol has been adjustd. */
|
||||
#define ELF_LINK_HASH_DYNAMIC_ADJUSTED 020
|
||||
/* Symbol is defined as weak. */
|
||||
#define ELF_LINK_HASH_DEFINED_WEAK 040
|
||||
/* Symbol needs a copy reloc. */
|
||||
#define ELF_LINK_HASH_NEEDS_COPY 0100
|
||||
#define ELF_LINK_HASH_NEEDS_COPY 040
|
||||
/* Symbol needs a procedure linkage table entry. */
|
||||
#define ELF_LINK_HASH_NEEDS_PLT 0200
|
||||
#define ELF_LINK_HASH_NEEDS_PLT 0100
|
||||
};
|
||||
|
||||
/* ELF linker hash table. */
|
||||
|
|
Loading…
Reference in a new issue