aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/xcofflink.c4
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