aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf-attrs.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ff4b979..22dd190 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2010-11-05 Joseph Myers <joseph@codesourcery.com>
+
+ * elf-attrs.c (_bfd_elf_merge_unknown_attribute_low,
+ _bfd_elf_merge_unknown_attribute_list): Correct test for matching
+ string attributes.
+
2010-11-05 Tristan Gingold <gingold@adacore.com>
* po/bfd.pot: Regenerate
diff --git a/bfd/elf-attrs.c b/bfd/elf-attrs.c
index e1893d3..569e846 100644
--- a/bfd/elf-attrs.c
+++ b/bfd/elf-attrs.c
@@ -613,7 +613,7 @@ _bfd_elf_merge_unknown_attribute_low (bfd *ibfd, bfd *obfd, int tag)
/* Only pass on attributes that match in both inputs. */
if (in_attr[tag].i != out_attr[tag].i
- || in_attr[tag].s != out_attr[tag].s
+ || (in_attr[tag].s == NULL) != (out_attr[tag].s == NULL)
|| (in_attr[tag].s != NULL && out_attr[tag].s != NULL
&& strcmp (in_attr[tag].s, out_attr[tag].s) != 0))
{
@@ -673,7 +673,7 @@ _bfd_elf_merge_unknown_attribute_list (bfd *ibfd, bfd *obfd)
/* Only pass on attributes that match in both inputs. */
if (in_list->attr.i != out_list->attr.i
- || in_list->attr.s != out_list->attr.s
+ || (in_list->attr.s == NULL) != (out_list->attr.s == NULL)
|| (in_list->attr.s && out_list->attr.s
&& strcmp (in_list->attr.s, out_list->attr.s) != 0))
{