ignore common definitions of function symbols in unlinked archives
This commit is contained in:
parent
7340082dc8
commit
7da9d88fe4
|
@ -1,3 +1,10 @@
|
|||
2001-02-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elflink.h (is_global_symbol_definition): Rename to
|
||||
is_global_data_symbol_definition and have it reject function
|
||||
symbols.
|
||||
(elf_link_is_defined_archive_symbol): Use renamed function.
|
||||
|
||||
2001-02-07 Todd Vierling <tv@wasabisystems.com>
|
||||
|
||||
* libbfd-in.h (bfd_target_vector): Change extern array to pointer.
|
||||
|
|
|
@ -80,9 +80,9 @@ elf_bfd_link_add_symbols (abfd, info)
|
|||
}
|
||||
}
|
||||
|
||||
/* Return true iff this is a non-common definition of a symbol. */
|
||||
/* Return true iff this is a non-common, definition of a non-function symbol. */
|
||||
static boolean
|
||||
is_global_symbol_definition (abfd, sym)
|
||||
is_global_data_symbol_definition (abfd, sym)
|
||||
bfd * abfd ATTRIBUTE_UNUSED;
|
||||
Elf_Internal_Sym * sym;
|
||||
{
|
||||
|
@ -91,6 +91,10 @@ is_global_symbol_definition (abfd, sym)
|
|||
&& ELF_ST_BIND (sym->st_info) < STB_LOOS)
|
||||
return false;
|
||||
|
||||
/* Function symbols do not count. */
|
||||
if (ELF_ST_TYPE (sym->st_info) == STT_FUNC)
|
||||
return false;
|
||||
|
||||
/* If the section is undefined, then so is the symbol. */
|
||||
if (sym->st_shndx == SHN_UNDEF)
|
||||
return false;
|
||||
|
@ -116,7 +120,7 @@ is_global_symbol_definition (abfd, sym)
|
|||
}
|
||||
|
||||
/* Search the symbol table of the archive element of the archive ABFD
|
||||
whoes archove map contains a mention of SYMDEF, and determine if
|
||||
whoes archive map contains a mention of SYMDEF, and determine if
|
||||
the symbol is defined in this element. */
|
||||
static boolean
|
||||
elf_link_is_defined_archive_symbol (abfd, symdef)
|
||||
|
@ -201,7 +205,7 @@ elf_link_is_defined_archive_symbol (abfd, symdef)
|
|||
|
||||
if (strcmp (name, symdef->name) == 0)
|
||||
{
|
||||
result = is_global_symbol_definition (abfd, & sym);
|
||||
result = is_global_data_symbol_definition (abfd, & sym);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue