aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/elf32-arm.c1
-rw-r--r--ld/testsuite/ChangeLog5
-rw-r--r--ld/testsuite/ld-arm/arm-elf.exp3
-rw-r--r--ld/testsuite/ld-arm/attr-merge.attr12
-rw-r--r--ld/testsuite/ld-arm/attr-merge.s11
6 files changed, 36 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6b396db..a18f205 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 6c85e52..bf4f49f 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -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);
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index e3e557e..42f00b0 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -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,
diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp
index af4921e..087225f 100644
--- a/ld/testsuite/ld-arm/arm-elf.exp
+++ b/ld/testsuite/ld-arm/arm-elf.exp
@@ -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
index 0000000..341e6d1
--- /dev/null
+++ b/ld/testsuite/ld-arm/attr-merge.attr
@@ -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
index 0000000..b56f6e3
--- /dev/null
+++ b/ld/testsuite/ld-arm/attr-merge.s
@@ -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"