diff options
-rw-r--r-- | ld/ChangeLog | 4 | ||||
-rw-r--r-- | ld/ldexp.c | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 1492b8d..43ce924 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,9 @@ 2014-12-23 Alan Modra <amodra@gmail.com> + * ldexp.c (update_definedness): Correct logic setting by_object. + +2014-12-23 Alan Modra <amodra@gmail.com> + * ldexp.c (struct definedness_hash_entry, definedness_table) (definedness_newfunc, symbol_defined, update_definedness): Move and rename from.. @@ -304,11 +304,11 @@ update_definedness (const char *name, struct bfd_link_hash_entry *h) einfo (_("%P%F: bfd_hash_lookup failed creating symbol %s\n"), name); /* If the symbol was already defined, and not by a script, then it - must be defined by an object file. */ + must be defined by an object file or by the linker target code. */ if (!defentry->by_script - && h->type != bfd_link_hash_undefined - && h->type != bfd_link_hash_common - && h->type != bfd_link_hash_new) + && (h->type == bfd_link_hash_defined + || h->type == bfd_link_hash_defweak + || h->type == bfd_link_hash_common)) defentry->by_object = 1; defentry->by_script = 1; |