This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch 6/6] ARM attributes: LD testsuite


This patch adds some tests into the ld testsuite. They cover many of the
features of setting and merging attributes.

OK?

Andrew

2009-01-12  Andrew Stubbs  <ams@codesourcery.com>

	ld/testsuite/
	* ld-arm/arm-elf.exp (armeabitests): Add EABI attribute merging 3,
	EABI attribute merging 4, and EABI attribute merging 5,
	EABI attribute arch merging 1, EABI attribute arch merging 1 reversed,
	EABI attribute arch merging 2, EABI attribute arch merging 2 reversed.
	Add attr-merge-unknown-1, attr-merge-unknown-2, attr-merge-unknown-2r,
	and attr-merge-unknown-3 dump tests.
	* ld-arm/arch-v6.s: New file.
	* ld-arm/arch-v6k.s: New file.
	* ld-arm/arch-v6t2.s: New file.
	* ld-arm/attr-merge-3.attr: New file.
	* ld-arm/attr-merge-3a.s: New file.
	* ld-arm/attr-merge-3b.s: New file.
	* ld-arm/attr-merge-4.attr: New file.
	* ld-arm/attr-merge-4a.s: New file.
	* ld-arm/attr-merge-4b.s: New file.
	* ld-arm/attr-merge-5.attr: New file.
	* ld-arm/attr-merge-5.s: New file.
	* ld-arm/attr-merge-arch-1.attr: New file.
	* ld-arm/attr-merge-arch-2.attr: New file.
	* ld-arm/attr-merge-unknown-1.d: New file.
	* ld-arm/attr-merge-unknown-1.s: New file.
	* ld-arm/attr-merge-unknown-2.d: New file.
	* ld-arm/attr-merge-unknown-2.s: New file.
	* ld-arm/attr-merge-unknown-2r.d: New file.
	* ld-arm/attr-merge-unknown-3.d: New file.
	* ld-arm/blank.s: New file.


---
 ld/testsuite/ld-arm/arch-v6.s               |    4 ++
 ld/testsuite/ld-arm/arch-v6k.s              |    4 ++
 ld/testsuite/ld-arm/arch-v6t2.s             |    4 ++
 ld/testsuite/ld-arm/arm-elf.exp             |   25 ++++++++++++++++++
 ld/testsuite/ld-arm/attr-merge-3.attr       |   31 ++++++++++++++++++++++
 ld/testsuite/ld-arm/attr-merge-3a.s         |   38 ++++++++++++++++++++++++++++
 ld/testsuite/ld-arm/attr-merge-3b.s         |   38 ++++++++++++++++++++++++++++
 ld/testsuite/ld-arm/attr-merge-4.attr       |    6 ++++
 ld/testsuite/ld-arm/attr-merge-4a.s         |    7 +++++
 ld/testsuite/ld-arm/attr-merge-4b.s         |    7 +++++
 ld/testsuite/ld-arm/attr-merge-5.attr       |    3 ++
 ld/testsuite/ld-arm/attr-merge-5.s          |    1 
 ld/testsuite/ld-arm/attr-merge-arch-1.attr  |    4 ++
 ld/testsuite/ld-arm/attr-merge-arch-2.attr  |    5 +++
 ld/testsuite/ld-arm/attr-merge-unknown-1.d  |    5 +++
 ld/testsuite/ld-arm/attr-merge-unknown-1.s  |    3 ++
 ld/testsuite/ld-arm/attr-merge-unknown-2.d  |   10 +++++++
 ld/testsuite/ld-arm/attr-merge-unknown-2.s  |    3 ++
 ld/testsuite/ld-arm/attr-merge-unknown-2r.d |   10 +++++++
 ld/testsuite/ld-arm/attr-merge-unknown-3.d  |   11 ++++++++
 ld/testsuite/ld-arm/blank.s                 |    1 
 21 files changed, 220 insertions(+)

Index: ld/testsuite/ld-arm/arch-v6.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/arch-v6.s
@@ -0,0 +1,4 @@
+	.cpu arm1136jfs
+
+	@ Tag_CPU_raw_name
+	.eabi_attribute 4, "arch_v6"
Index: ld/testsuite/ld-arm/arch-v6k.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/arch-v6k.s
@@ -0,0 +1,4 @@
+	.cpu mpcore
+
+	@ Tag_CPU_raw_name
+	.eabi_attribute 4, "arch_v6k"
Index: ld/testsuite/ld-arm/arch-v6t2.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/arch-v6t2.s
@@ -0,0 +1,4 @@
+	.cpu arm1156t2f-s
+
+	@ Tag_CPU_raw_name
+	.eabi_attribute 4, "arch_v6t2"
Index: ld/testsuite/ld-arm/arm-elf.exp
===================================================================
--- ld/testsuite/ld-arm/arm-elf.exp.orig
+++ ld/testsuite/ld-arm/arm-elf.exp
@@ -205,6 +205,27 @@ set armeabitests {
      {"EABI attribute merging 2" "-r" "" {attr-merge-2a.s attr-merge-2b.s}
       {{readelf -A attr-merge-2.attr}}
       "attr-merge-2"}
+     {"EABI attribute merging 3" "-r" "" {attr-merge-3a.s attr-merge-3b.s}
+      {{readelf -A attr-merge-3.attr}}
+      "attr-merge-3"}
+     {"EABI attribute merging 4" "-r" "" {attr-merge-4a.s attr-merge-4b.s}
+      {{readelf -A attr-merge-4.attr}}
+      "attr-merge-4"}
+     {"EABI attribute merging 5" "-r" "" {attr-merge-5.s attr-merge-5.s}
+      {{readelf -A attr-merge-5.attr}}
+      "attr-merge-5"}
+     {"EABI attribute arch merging 1" "-r" "" {arch-v6k.s arch-v6t2.s}
+      {{readelf -A attr-merge-arch-1.attr}}
+      "attr-merge-arch-1"}
+     {"EABI attribute arch merging 1 reversed" "-r" "" {arch-v6t2.s arch-v6k.s}
+      {{readelf -A attr-merge-arch-1.attr}}
+      "attr-merge-arch-1r"}
+     {"EABI attribute arch merging 2" "-r" "" {arch-v6k.s arch-v6.s}
+      {{readelf -A attr-merge-arch-2.attr}}
+      "attr-merge-arch-2"}
+     {"EABI attribute arch merging 2 reversed" "-r" "" {arch-v6.s arch-v6k.s}
+      {{readelf -A attr-merge-arch-2.attr}}
+      "attr-merge-arch-2r"}
      {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" {thumb2-bl.s}
       {{objdump -dr thumb2-bl.d}}
       "thumb2-bl"}
@@ -310,3 +331,7 @@ run_dump_test "farcall-thumb-thumb-pic-v
 run_dump_test "farcall-thumb-thumb-m-pic-veneer"
 run_dump_test "farcall-thumb-arm-pic-veneer"
 run_dump_test "farcall-section"
+run_dump_test "attr-merge-unknown-1"
+run_dump_test "attr-merge-unknown-2"
+run_dump_test "attr-merge-unknown-2r"
+run_dump_test "attr-merge-unknown-3"
Index: ld/testsuite/ld-arm/attr-merge-3.attr
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-3.attr
@@ -0,0 +1,31 @@
+Attribute Section: aeabi
+File Attributes
+  Tag_nodefaults: True
+  Tag_CPU_name: "ARM9E"
+  Tag_CPU_arch: v5TE
+  Tag_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-2
+  Tag_VFP_arch: VFPv3
+  Tag_WMMX_arch: WMMXv2
+  Tag_Advanced_SIMD_arch: NEONv1
+  Tag_PCS_config: Linux application
+  Tag_ABI_PCS_R9_use: SB
+  Tag_ABI_PCS_RW_data: PC-relative
+  Tag_ABI_PCS_RO_data: PC-relative
+  Tag_ABI_PCS_GOT_use: direct
+  Tag_ABI_PCS_wchar_t: 4
+  Tag_ABI_FP_rounding: Needed
+  Tag_ABI_FP_denormal: Needed
+  Tag_ABI_FP_exceptions: Needed
+  Tag_ABI_FP_user_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_HardFP_use: SP and DP
+  Tag_ABI_VFP_args: VFP registers
+  Tag_CPU_unaligned_access: v6
+  Tag_VFP_HP_extension: Allowed
+  Tag_T2EE_use: Allowed
+  Tag_Virtualization_use: Allowed
+  Tag_MPextension_use: Allowed
Index: ld/testsuite/ld-arm/attr-merge-3a.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-3a.s
@@ -0,0 +1,38 @@
+	.cpu arm7tdmi
+	.fpu softvfp
+	.eabi_attribute Tag_CPU_arch, 2
+	@ .eabi_attribute Tag_CPU_arch_profile, 0x41
+	.eabi_attribute Tag_ARM_ISA_use, 0
+	.eabi_attribute Tag_THUMB_ISA_use, 1
+	.eabi_attribute Tag_VFP_arch, 3
+	.eabi_attribute Tag_WMMX_arch, 1
+	.eabi_attribute Tag_Advanced_SIMD_arch, 0
+	.eabi_attribute Tag_PCS_config, 0
+	.eabi_attribute Tag_ABI_PCS_R9_use, 1
+	.eabi_attribute Tag_ABI_PCS_RW_data, 1
+	.eabi_attribute Tag_ABI_PCS_RO_data, 1
+	.eabi_attribute Tag_ABI_PCS_GOT_use, 1
+	.eabi_attribute Tag_ABI_PCS_wchar_t, 4
+	.eabi_attribute Tag_ABI_FP_rounding, 0
+	.eabi_attribute Tag_ABI_FP_denormal, 1
+	.eabi_attribute Tag_ABI_FP_exceptions, 0
+	.eabi_attribute Tag_ABI_FP_user_exceptions, 0
+	.eabi_attribute Tag_ABI_FP_number_model, 0
+	.eabi_attribute Tag_ABI_align8_needed, 1
+	.eabi_attribute Tag_ABI_align8_preserved, 1
+	.eabi_attribute Tag_ABI_enum_size, 1
+	.eabi_attribute Tag_ABI_HardFP_use, 1
+	.eabi_attribute Tag_ABI_VFP_args, 0
+	@ .eabi_attribute Tag_ABI_WMMX_args, 0
+	@ .eabi_attribute Tag_ABI_optimization_goals, 0
+	@ .eabi_attribute Tag_ABI_FP_optimization_goals, 0
+	@ .eabi_attribute Tag_compatibility, 1, "gnu"
+	.eabi_attribute Tag_CPU_unaligned_access, 0
+	.eabi_attribute Tag_VFP_HP_extension, 0
+	@ .eabi_attribute Tag_ABI_FP_16bit_format, 0
+	.eabi_attribute Tag_nodefaults, 0
+	@ .eabi_attribute Tag_also_compatible_with,
+	.eabi_attribute Tag_T2EE_use, 0
+	.eabi_attribute Tag_conformance, "0"
+	.eabi_attribute Tag_Virtualization_use, 0
+	.eabi_attribute Tag_MPextension_use, 0
Index: ld/testsuite/ld-arm/attr-merge-3b.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-3b.s
@@ -0,0 +1,38 @@
+	.cpu arm9e
+	.fpu neon
+	.eabi_attribute Tag_CPU_arch, 3
+	@ .eabi_attribute Tag_CPU_arch_profile, 0x41
+	.eabi_attribute Tag_ARM_ISA_use, 1
+	.eabi_attribute Tag_THUMB_ISA_use, 2
+	.eabi_attribute Tag_VFP_arch, 4
+	.eabi_attribute Tag_WMMX_arch, 2
+	.eabi_attribute Tag_Advanced_SIMD_arch, 1
+	.eabi_attribute Tag_PCS_config, 2
+	.eabi_attribute Tag_ABI_PCS_R9_use, 3
+	.eabi_attribute Tag_ABI_PCS_RW_data, 3
+	.eabi_attribute Tag_ABI_PCS_RO_data, 2
+	.eabi_attribute Tag_ABI_PCS_GOT_use, 2
+	.eabi_attribute Tag_ABI_PCS_wchar_t, 0
+	.eabi_attribute Tag_ABI_FP_rounding, 1
+	.eabi_attribute Tag_ABI_FP_denormal, 2
+	.eabi_attribute Tag_ABI_FP_exceptions, 1
+	.eabi_attribute Tag_ABI_FP_user_exceptions, 1
+	.eabi_attribute Tag_ABI_FP_number_model, 3
+	.eabi_attribute Tag_ABI_align8_needed, 2
+	.eabi_attribute Tag_ABI_align8_preserved, 2
+	.eabi_attribute Tag_ABI_enum_size, 3
+	.eabi_attribute Tag_ABI_HardFP_use, 2
+	.eabi_attribute Tag_ABI_VFP_args, 1
+	@ .eabi_attribute Tag_ABI_WMMX_args, 0
+	@ .eabi_attribute Tag_ABI_optimization_goals, 0
+	@ .eabi_attribute Tag_ABI_FP_optimization_goals, 0
+	@ .eabi_attribute Tag_compatibility, 1, "gnu"
+	.eabi_attribute Tag_CPU_unaligned_access, 1
+	.eabi_attribute Tag_VFP_HP_extension, 1
+	@ .eabi_attribute Tag_ABI_FP_16bit_format, 0
+	.eabi_attribute Tag_nodefaults, 1
+	@ .eabi_attribute Tag_also_compatible_with,
+	.eabi_attribute Tag_T2EE_use, 1
+	.eabi_attribute Tag_conformance, "2.07"
+	.eabi_attribute Tag_Virtualization_use, 1
+	.eabi_attribute Tag_MPextension_use, 1
Index: ld/testsuite/ld-arm/attr-merge-4.attr
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-4.attr
@@ -0,0 +1,6 @@
+Attribute Section: aeabi
+File Attributes
+  Tag_CPU_name: "ARM7TDMI"
+  Tag_CPU_arch: v4T
+  Tag_CPU_arch_profile: Microcontroller
+  Tag_also_compatible_with: v6-M
Index: ld/testsuite/ld-arm/attr-merge-4a.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-4a.s
@@ -0,0 +1,7 @@
+	.cpu arm7tdmi
+
+	@ Tag_CPU_arch = v4T
+	.eabi_attribute Tag_CPU_arch, 2
+
+	@ Tag_also_compatible_with = v6-M
+	.eabi_attribute Tag_also_compatible_with, "\006\013"
Index: ld/testsuite/ld-arm/attr-merge-4b.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-4b.s
@@ -0,0 +1,7 @@
+	.cpu cortex-m1
+
+	@ Tag_CPU_arch = v6-M
+	.eabi_attribute Tag_CPU_arch, 11
+
+	@ Tag_also_compatible_with = v4T
+	.eabi_attribute Tag_also_compatible_with, "\006\002"
Index: ld/testsuite/ld-arm/attr-merge-5.attr
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-5.attr
@@ -0,0 +1,3 @@
+Attribute Section: aeabi
+File Attributes
+  Tag_compatibility: flag = 1, vendor = gnu
Index: ld/testsuite/ld-arm/attr-merge-5.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-5.s
@@ -0,0 +1 @@
+	.eabi_attribute Tag_compatibility, 1, "gnu"
Index: ld/testsuite/ld-arm/attr-merge-arch-1.attr
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-arch-1.attr
@@ -0,0 +1,4 @@
+Attribute Section: aeabi
+File Attributes
+  Tag_CPU_name: "ARM v7"
+  Tag_CPU_arch: v7
Index: ld/testsuite/ld-arm/attr-merge-arch-2.attr
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-arch-2.attr
@@ -0,0 +1,5 @@
+Attribute Section: aeabi
+File Attributes
+  Tag_CPU_raw_name: "arch_v6k"
+  Tag_CPU_name: "MPCORE"
+  Tag_CPU_arch: v6K
Index: ld/testsuite/ld-arm/attr-merge-unknown-1.d
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-unknown-1.d
@@ -0,0 +1,5 @@
+#source: attr-merge-unknown-1.s
+#source: blank.s
+#as:
+#ld:
+#error: Unknown mandatory EABI object attribute 42
Index: ld/testsuite/ld-arm/attr-merge-unknown-1.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-unknown-1.s
@@ -0,0 +1,3 @@
+	@ This attrubute is supposed to be unknown.
+	@ If this number should become known, change it.
+	.eabi_attribute  42, 1
Index: ld/testsuite/ld-arm/attr-merge-unknown-2.d
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-unknown-2.d
@@ -0,0 +1,10 @@
+#source: attr-merge-unknown-2.s
+#source: blank.s
+#as:
+#ld:
+#warning: Unknown EABI object attribute 82
+#readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+
Index: ld/testsuite/ld-arm/attr-merge-unknown-2.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-unknown-2.s
@@ -0,0 +1,3 @@
+	@ This attrubute is supposed to be unknown.
+	@ If this number should become known, change it.
+	.eabi_attribute  82, 1
Index: ld/testsuite/ld-arm/attr-merge-unknown-2r.d
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-unknown-2r.d
@@ -0,0 +1,10 @@
+#source: blank.s
+#source: attr-merge-unknown-2.s
+#as:
+#ld:
+#warning: Unknown EABI object attribute 82
+#readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+
Index: ld/testsuite/ld-arm/attr-merge-unknown-3.d
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/attr-merge-unknown-3.d
@@ -0,0 +1,11 @@
+#source: attr-merge-unknown-2.s
+#source: attr-merge-unknown-2.s
+#as:
+#ld:
+#warning: Unknown EABI object attribute 82
+#readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+  Tag_unknown_82: 1 \(0x1\)
+
Index: ld/testsuite/ld-arm/blank.s
===================================================================
--- /dev/null
+++ ld/testsuite/ld-arm/blank.s
@@ -0,0 +1 @@
+@ this file left intentionally blank



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]