diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 3 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/arm-elf.exp | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/attr-merge-incompatible.d | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/attr-merge-incompatiblea.s | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/attr-merge-incompatibleb.s | 1 |
7 files changed, 22 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1c08054..d1ce00c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-03-02 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> + + * elf32-arm.c (elf32_arm_merge_eabi_attributes): Add a check of the + return value from the call to _bfd_elf_merge_object_attributes. + 2010-03-02 Christophe Lyon <christophe.lyon@st.com> Alan Modra <amodra@gmail.com> diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index fd40315..29fb295 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -10340,7 +10340,8 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd) } /* Merge Tag_compatibility attributes and any common GNU ones. */ - _bfd_elf_merge_object_attributes (ibfd, obfd); + if (!_bfd_elf_merge_object_attributes (ibfd, obfd)) + return FALSE; /* Check for any attributes not known on ARM. */ in_list = elf_other_obj_attributes_proc (ibfd); diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 1652611..3ceacd4 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2010-03-02 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> + + * ld-arm/arm-merge-incompatible.d: New test. + * ld-arm/arm-merge-incompatiblea.s: Likewise. + * ld-arm/arm-merge-incompatibleb.s: Likewise. + * ld-arm/arm-elf.exp: Run the new test. + 2010-03-02 Christophe Lyon <christophe.lyon@st.com> Alan Modra <amodra@gmail.com> diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 87ea187..26552b9 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -510,3 +510,4 @@ run_dump_test "attr-merge-vfp-4" run_dump_test "attr-merge-vfp-4r" run_dump_test "attr-merge-vfp-5" run_dump_test "attr-merge-vfp-5r" +run_dump_test "attr-merge-incompatible" diff --git a/ld/testsuite/ld-arm/attr-merge-incompatible.d b/ld/testsuite/ld-arm/attr-merge-incompatible.d new file mode 100644 index 0000000..41711da --- /dev/null +++ b/ld/testsuite/ld-arm/attr-merge-incompatible.d @@ -0,0 +1,5 @@ +#source: attr-merge-incompatibleb.s +#source: attr-merge-incompatiblea.s +#as: +#ld: +#error: Object has vendor-specific contents that must be processed by the '.+' toolchain diff --git a/ld/testsuite/ld-arm/attr-merge-incompatiblea.s b/ld/testsuite/ld-arm/attr-merge-incompatiblea.s new file mode 100644 index 0000000..03e0f7e --- /dev/null +++ b/ld/testsuite/ld-arm/attr-merge-incompatiblea.s @@ -0,0 +1 @@ + .eabi_attribute Tag_compatibility, 1, "Random Toolchain Vendor" diff --git a/ld/testsuite/ld-arm/attr-merge-incompatibleb.s b/ld/testsuite/ld-arm/attr-merge-incompatibleb.s new file mode 100644 index 0000000..583d253 --- /dev/null +++ b/ld/testsuite/ld-arm/attr-merge-incompatibleb.s @@ -0,0 +1 @@ + .eabi_attribute Tag_compatibility, 1, "gnu" |