+2009-01-19 Andrew Stubbs <ams@codesourcery.com>
+
+ * 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.
+
2009-01-16 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/textaddr1.d: New.
--- /dev/null
+ .cpu arm1136jfs
+
+ @ Tag_CPU_raw_name
+ .eabi_attribute 4, "arch_v6"
--- /dev/null
+ .cpu mpcore
+
+ @ Tag_CPU_raw_name
+ .eabi_attribute 4, "arch_v6k"
--- /dev/null
+ .cpu arm1156t2f-s
+
+ @ Tag_CPU_raw_name
+ .eabi_attribute 4, "arch_v6t2"
{"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"}
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"
--- /dev/null
+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
--- /dev/null
+ .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
--- /dev/null
+ .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
--- /dev/null
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "ARM7TDMI"
+ Tag_CPU_arch: v4T
+ Tag_CPU_arch_profile: Microcontroller
+ Tag_also_compatible_with: v6-M
--- /dev/null
+ .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"
--- /dev/null
+ .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"
--- /dev/null
+Attribute Section: aeabi
+File Attributes
+ Tag_compatibility: flag = 1, vendor = gnu
--- /dev/null
+ .eabi_attribute Tag_compatibility, 1, "gnu"
--- /dev/null
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "ARM v7"
+ Tag_CPU_arch: v7
--- /dev/null
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_raw_name: "arch_v6k"
+ Tag_CPU_name: "MPCORE"
+ Tag_CPU_arch: v6K
--- /dev/null
+#source: attr-merge-unknown-1.s
+#source: blank.s
+#as:
+#ld:
+#error: Unknown mandatory EABI object attribute 42
--- /dev/null
+ @ This attrubute is supposed to be unknown.
+ @ If this number should become known, change it.
+ .eabi_attribute 42, 1
--- /dev/null
+#source: attr-merge-unknown-2.s
+#source: blank.s
+#as:
+#ld:
+#warning: Unknown EABI object attribute 82
+#readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+
--- /dev/null
+ @ This attrubute is supposed to be unknown.
+ @ If this number should become known, change it.
+ .eabi_attribute 82, 1
--- /dev/null
+#source: blank.s
+#source: attr-merge-unknown-2.s
+#as:
+#ld:
+#warning: Unknown EABI object attribute 82
+#readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+
--- /dev/null
+#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\)
+
--- /dev/null
+@ this file left intentionally blank