* elflink.c (bfd_elf_record_link_assignment): Add comment about
	changing bfd_link_hash_undefined to bfd_link_hash_new.
	* ldexp.c (fold_name): Don't call bfd_link_add_undef if the symbol
	was already on the undefs list.
This commit is contained in:
Alan Modra 2004-08-18 02:45:43 +00:00
parent 4287095258
commit a010d60faf
4 changed files with 20 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2004-08-18 Alan Modra <amodra@bigpond.net.au>
PR 338
* elflink.c (bfd_elf_record_link_assignment): Add comment about
changing bfd_link_hash_undefined to bfd_link_hash_new.
2004-08-17 Jakub Jelinek <jakub@redhat.com> 2004-08-17 Jakub Jelinek <jakub@redhat.com>
* elfxx-target.h (bfd_elfNN_get_synthetic_symtab): Only define * elfxx-target.h (bfd_elfNN_get_synthetic_symtab): Only define

View File

@ -434,7 +434,12 @@ bfd_elf_record_link_assignment (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Since we're defining the symbol, don't let it seem to have not /* Since we're defining the symbol, don't let it seem to have not
been defined. record_dynamic_symbol and size_dynamic_sections been defined. record_dynamic_symbol and size_dynamic_sections
may depend on this. */ may depend on this.
??? Changing bfd_link_hash_undefined to bfd_link_hash_new (or
to bfd_link_hash_undefweak, see linker.c:link_action) runs the risk
of some later symbol manipulation setting the symbol back to
bfd_link_hash_undefined, and the linker trying to add the symbol to
the undefs list twice. */
if (h->root.type == bfd_link_hash_undefweak if (h->root.type == bfd_link_hash_undefweak
|| h->root.type == bfd_link_hash_undefined) || h->root.type == bfd_link_hash_undefined)
h->root.type = bfd_link_hash_new; h->root.type = bfd_link_hash_new;

View File

@ -1,3 +1,9 @@
2004-08-18 Alan Modra <amodra@bigpond.net.au>
PR 338
* ldexp.c (fold_name): Don't call bfd_link_add_undef if the symbol
was already on the undefs list.
2004-08-17 Alan Modra <amodra@bigpond.net.au> 2004-08-17 Alan Modra <amodra@bigpond.net.au>
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern): Dot * emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern): Dot

View File

@ -576,7 +576,8 @@ fold_name (etree_type *tree,
{ {
h->type = bfd_link_hash_undefined; h->type = bfd_link_hash_undefined;
h->u.undef.abfd = NULL; h->u.undef.abfd = NULL;
bfd_link_add_undef (link_info.hash, h); if (h->und_next == NULL)
bfd_link_add_undef (link_info.hash, h);
} }
} }
break; break;