aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2004-08-18 02:45:43 +0000
committerAlan Modra <amodra@gmail.com>2004-08-18 02:45:43 +0000
commita010d60faf972bb62f0470f70c4c68cce38752ac (patch)
tree895a45c80a65071f73cfced15a48504b104bca38 /bfd/elflink.c
parent428709525848950c510553141109fb63d0afa0ad (diff)
downloadgdb-a010d60faf972bb62f0470f70c4c68cce38752ac.zip
gdb-a010d60faf972bb62f0470f70c4c68cce38752ac.tar.gz
gdb-a010d60faf972bb62f0470f70c4c68cce38752ac.tar.bz2
PR 338
* 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.
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r--bfd/elflink.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 1e2f335..7793e82 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -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
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
|| h->root.type == bfd_link_hash_undefined)
h->root.type = bfd_link_hash_new;