Add entry_symbol chain into non_ironly_hash.
2011-02-24 H.J. Lu <hongjiu.lu@intel.com> PR ld/12507 * plugin.c (get_symbols): Don't check entry symbol here. (init_non_ironly_hash): Add entry_symbol chain into non_ironly_hash.
This commit is contained in:
parent
b021a22166
commit
174b85fcf1
|
@ -1,3 +1,10 @@
|
||||||
|
2011-02-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR ld/12507
|
||||||
|
* plugin.c (get_symbols): Don't check entry symbol here.
|
||||||
|
(init_non_ironly_hash): Add entry_symbol chain into
|
||||||
|
non_ironly_hash.
|
||||||
|
|
||||||
2011-02-24 H.J. Lu <hongjiu.lu@intel.com>
|
2011-02-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/12507
|
PR ld/12507
|
||||||
|
|
11
ld/plugin.c
11
ld/plugin.c
|
@ -495,8 +495,7 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms)
|
||||||
symbol is externally visible. */
|
symbol is externally visible. */
|
||||||
ironly = (!is_visible_from_outside (&syms[n], owner_sec, blhe)
|
ironly = (!is_visible_from_outside (&syms[n], owner_sec, blhe)
|
||||||
&& !bfd_hash_lookup (non_ironly_hash, syms[n].name,
|
&& !bfd_hash_lookup (non_ironly_hash, syms[n].name,
|
||||||
FALSE, FALSE)
|
FALSE, FALSE));
|
||||||
&& strcmp (syms[n].name, entry_symbol.name) != 0);
|
|
||||||
|
|
||||||
/* If it was originally undefined or common, then it has been
|
/* If it was originally undefined or common, then it has been
|
||||||
resolved; determine how. */
|
resolved; determine how. */
|
||||||
|
@ -845,6 +844,8 @@ plugin_call_cleanup (void)
|
||||||
static void
|
static void
|
||||||
init_non_ironly_hash (void)
|
init_non_ironly_hash (void)
|
||||||
{
|
{
|
||||||
|
struct bfd_sym_chain *sym;
|
||||||
|
|
||||||
if (non_ironly_hash == NULL)
|
if (non_ironly_hash == NULL)
|
||||||
{
|
{
|
||||||
non_ironly_hash =
|
non_ironly_hash =
|
||||||
|
@ -854,6 +855,12 @@ init_non_ironly_hash (void)
|
||||||
sizeof (struct bfd_hash_entry),
|
sizeof (struct bfd_hash_entry),
|
||||||
61))
|
61))
|
||||||
einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
|
einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
|
||||||
|
|
||||||
|
for (sym = &entry_symbol; sym != NULL; sym = sym->next)
|
||||||
|
if (sym->name
|
||||||
|
&& !bfd_hash_lookup (non_ironly_hash, sym->name, TRUE, TRUE))
|
||||||
|
einfo (_("%P%X: hash table failure adding symbol %s\n"),
|
||||||
|
sym->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue