diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/xcofflink.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8dce930..c5960e6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2018-07-18 Maciej W. Rozycki <macro@mips.com> + + * xcofflink.c (xcoff_write_global_symbol): Fix symbol type + checks for defined weak symbols. + 2018-07-17 Maciej W. Rozycki <macro@mips.com> * elf32-nds32.c (nds32_elf_relax_loadstore): Use diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index b7a50de..9705d30 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -5589,7 +5589,7 @@ xcoff_write_global_symbol (struct bfd_hash_entry *bh, void * inf) BFD_ASSERT (bfd_is_abs_symbol (&h->root)); isym.n_value = h->root.u.def.value; isym.n_scnum = N_UNDEF; - if (h->root.type == bfd_link_hash_undefweak + if (h->root.type == bfd_link_hash_defweak && C_WEAKEXT == C_AIX_WEAKEXT) isym.n_sclass = C_WEAKEXT; else @@ -5655,7 +5655,7 @@ xcoff_write_global_symbol (struct bfd_hash_entry *bh, void * inf) /* We just output an SD symbol. Now output an LD symbol. */ h->indx += 2; - if (h->root.type == bfd_link_hash_undefweak + if (h->root.type == bfd_link_hash_defweak && C_WEAKEXT == C_AIX_WEAKEXT) isym.n_sclass = C_WEAKEXT; else |