From: Matthew Gretton-Dann Date: Tue, 2 Mar 2010 11:40:24 +0000 (+0000) Subject: * ld/testsuite/ld-arm/arm-merge-incompatible.d: New test. X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=5488d830ec018f8528fe806eeeaa39ce5ff7ffb1;p=deliverable%2Fbinutils-gdb.git * ld/testsuite/ld-arm/arm-merge-incompatible.d: New test. * ld/testsuite/ld-arm/arm-merge-incompatiblea.s: Likewise. * ld/testsuite/ld-arm/arm-merge-incompatibleb.s: Likewise. * ld/testsuite/ld-arm/arm-elf.exp: Run the new test. * bfd/elf32-arm.c (elf32_arm_merge_eabi_attributes): Add a check of the return value from the call to _bfd_elf_merge_object_attributes. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1c08054369..d1ce00c365 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-03-02 Matthew Gretton-Dann + + * 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 Alan Modra diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index fd4031568d..29fb29580f 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 165261115c..3ceacd48d0 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2010-03-02 Matthew Gretton-Dann + + * 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 Alan Modra diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 87ea187513..26552b9a05 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 0000000000..41711da8e0 --- /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 0000000000..03e0f7e95a --- /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 0000000000..583d2537c0 --- /dev/null +++ b/ld/testsuite/ld-arm/attr-merge-incompatibleb.s @@ -0,0 +1 @@ + .eabi_attribute Tag_compatibility, 1, "gnu"