bfd:
authorJoseph Myers <joseph@codesourcery.com>
Tue, 26 Jun 2007 13:55:04 +0000 (13:55 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 26 Jun 2007 13:55:04 +0000 (13:55 +0000)
* elf32-arm.c (copy_eabi_attributes): Copy type of attributes.

ld/testsuite:
* ld-arm/attr-merge.s, ld-arm/attr-merge.attr: New.
* ld-arm/arm-elf.exp (armelftests): Add new test.

bfd/ChangeLog
bfd/elf32-arm.c
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/attr-merge.attr [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge.s [new file with mode: 0644]

index 6b396db05f05d1cca7bd24be282c402e679479c1..a18f205bb9b42a4f1e03d987bacb4f8100ef46f2 100644 (file)
@@ -1,3 +1,7 @@
+2007-06-26  Joseph Myers  <joseph@codesourcery.com>
+
+       * elf32-arm.c (copy_eabi_attributes): Copy type of attributes.
+
 2007-06-25  Richard Sandiford  <richard@codesourcery.com>
 
        * elfxx-mips.c (mips_elf_calculate_relocation): Allow local stubs
index 6c85e526056be851c730fd6e02b112109b1be428..bf4f49f5f6ac7d819c3b5266bc3fde56238089d2 100644 (file)
@@ -6969,6 +6969,7 @@ copy_eabi_attributes (bfd *ibfd, bfd *obfd)
   out_attr = &elf32_arm_tdata (obfd)->known_eabi_attributes[4];
   for (i = 4; i < NUM_KNOWN_ATTRIBUTES; i++)
     {
+      out_attr->type = in_attr->type;
       out_attr->i = in_attr->i;
       if (in_attr->s && *in_attr->s)
        out_attr->s = attr_strdup (obfd, in_attr->s);
index e3e557e878c148817762642d013542c6ba066610..42f00b04db91ccb426e669f88abf2fc240dd28a1 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-26  Joseph Myers  <joseph@codesourcery.com>
+
+       * ld-arm/attr-merge.s, ld-arm/attr-merge.attr: New.
+       * ld-arm/arm-elf.exp (armelftests): Add new test.
+
 2007-06-25  Richard Sandiford  <richard@codesourcery.com>
 
        * ld-mips-elf/mips16-local-stubs-1.s,
index af4921e02d14e5aabf5f7bc7268355a940f3bd5e..087225f2e108faf9a1a3f5fe045d2f7f323caf64 100644 (file)
@@ -167,6 +167,9 @@ set armelftests {
      {"jump19" "-static -T arm.ld" "" {jump19.s}
       {{objdump -dr jump19.d}}
       "jump19"}
+     {"EABI attribute merging" "-r" "" {attr-merge.s attr-merge.s}
+      {{readelf -A attr-merge.attr}}
+      "attr-merge"}
 }
 
 run_ld_link_tests $armelftests
diff --git a/ld/testsuite/ld-arm/attr-merge.attr b/ld/testsuite/ld-arm/attr-merge.attr
new file mode 100644 (file)
index 0000000..341e6d1
--- /dev/null
@@ -0,0 +1,12 @@
+Attribute Section: aeabi
+File Attributes
+  Tag_CPU_name: "ARM7TDMI"
+  Tag_CPU_arch: v4T
+  Tag_ABI_PCS_wchar_t: 4
+  Tag_ABI_FP_denormal: Needed
+  Tag_ABI_FP_exceptions: Needed
+  Tag_ABI_FP_number_model: IEEE 754
+  Tag_ABI_align8_needed: Yes
+  Tag_ABI_align8_preserved: Yes, except leaf SP
+  Tag_ABI_enum_size: small
+  Tag_ABI_optimization_goals: Aggressive Debug
diff --git a/ld/testsuite/ld-arm/attr-merge.s b/ld/testsuite/ld-arm/attr-merge.s
new file mode 100644 (file)
index 0000000..b56f6e3
--- /dev/null
@@ -0,0 +1,11 @@
+       .cpu arm7tdmi
+       .fpu softvfp
+       .eabi_attribute 20, 1
+       .eabi_attribute 21, 1
+       .eabi_attribute 23, 3
+       .eabi_attribute 24, 1
+       .eabi_attribute 25, 1
+       .eabi_attribute 26, 1
+       .eabi_attribute 30, 6
+       .eabi_attribute 18, 4
+       .file   "attr-merge.s"