[ARM]Update for Tag_ABI_HardFP_use per EABI doc

Updated how we merge and display this attribute per the latest
EABI documents.

bfd/ChangeLog
	* elf32-arm.c (elf32_arm_merge_eabi_attributes): Update how we
	merge Tag_ABI_HardFP_use.

binutils/ChangeLog
	* readelf.c (arm_attr_tag_ABI_HardFP_use): Update how we
	display it.

ld/testsuite/ChangeLog
	* ld-arm/attr-merge-3.attr: Remove Tag_ABI_HardFP_use.
	* ld-arm/attr-merge-vfp-10.d: Likewise.
	* ld-arm/attr-merge-vfp-10r.d: Likewise.
	* ld-arm/attr-merge-vfp-12.d: Likewise.
	* ld-arm/attr-merge-vfp-12r.d: Likewise.
	* ld-arm/attr-merge-vfp-13.d: Likewise.
	* ld-arm/attr-merge-vfp-13r.d: Likewise.
	* ld-arm/attr-merge-vfp-14.d: Likewise.
	* ld-arm/attr-merge-vfp-14r.d: Likewise.
	* ld-arm/attr-merge-vfp-6.d: Likewise.
	* ld-arm/attr-merge-vfp-6r.d: Likewise.
	* ld-arm/attr-merge-vfp-7.d: Likewise.
	* ld-arm/attr-merge-vfp-7r.d: Likewise.
	* ld-arm/attr-merge-vfp-8.d: Likewise.
	* ld-arm/attr-merge-vfp-8r.d: Likewise.
This commit is contained in:
Terry Guo 2015-02-26 14:11:41 +08:00
parent a127494f2d
commit 99654aaf36
35 changed files with 190 additions and 20 deletions

View File

@ -1,3 +1,8 @@
2015-02-26 Terry Guo <terry.guo@arm.com>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Update how we
merge Tag_ABI_HardFP_use.
2015-02-26 Alan Modra <amodra@gmail.com>
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Heed -z nocopyreloc.

View File

@ -11972,7 +11972,7 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
/* Tag_ABI_HardFP_use is handled along with Tag_FP_arch since
the meaning of Tag_ABI_HardFP_use depends on Tag_FP_arch
when it's 0. It might mean absence of FP hardware if
Tag_FP_arch is zero, otherwise it is effectively SP + DP. */
Tag_FP_arch is zero. */
#define VFP_VERSION_COUNT 9
static const struct
@ -12014,7 +12014,7 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
}
/* Both the input and the output have nonzero Tag_FP_arch.
So Tag_ABI_HardFP_use is (SP & DP) when it's zero. */
So Tag_ABI_HardFP_use is implied by Tag_FP_arch when it's zero. */
/* If both the input and the output have zero Tag_ABI_HardFP_use,
do nothing. */
@ -12022,10 +12022,10 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
&& out_attr[Tag_ABI_HardFP_use].i == 0)
;
/* If the input and the output have different Tag_ABI_HardFP_use,
the combination of them is 3 (SP & DP). */
the combination of them is 0 (implied by Tag_FP_arch). */
else if (in_attr[Tag_ABI_HardFP_use].i
!= out_attr[Tag_ABI_HardFP_use].i)
out_attr[Tag_ABI_HardFP_use].i = 3;
out_attr[Tag_ABI_HardFP_use].i = 0;
/* Now we can handle Tag_FP_arch. */

View File

@ -1,3 +1,8 @@
2015-02-26 Terry Guo <terry.guo@arm.com>
* readelf.c (arm_attr_tag_ABI_HardFP_use): Update how we
display it.
2015-02-25 Andrew Burgess <andrew.burgess@embecosm.com>
* objcopy.c (init_section_add): New function.

View File

@ -12376,7 +12376,7 @@ static const char * arm_attr_tag_ABI_FP_number_model[] =
static const char * arm_attr_tag_ABI_enum_size[] =
{"Unused", "small", "int", "forced to int"};
static const char * arm_attr_tag_ABI_HardFP_use[] =
{"As Tag_FP_arch", "SP only", "DP only", "SP and DP"};
{"As Tag_FP_arch", "SP only", "Reserved", "Deprecated"};
static const char * arm_attr_tag_ABI_VFP_args[] =
{"AAPCS", "VFP registers", "custom", "compatible"};
static const char * arm_attr_tag_ABI_WMMX_args[] =

View File

@ -0,0 +1,14 @@
# name: EABI attribute Tag_ABI_HardFP_use with value 0
# source: attr-abi-hardfp-use-0.s
# as:
# readelf: -A
# This test is only valid on EABI based ports.
# target: *-*-*eabi* *-*-nacl*
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "Cortex-M7"
Tag_CPU_arch: v7E-M
Tag_CPU_arch_profile: Microcontroller
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: FPv5/FP-D16 for ARMv8

View File

@ -0,0 +1,3 @@
.cpu cortex-m7
.fpu fpv5-d16
.eabi_attribute 27, 0

View File

@ -0,0 +1,15 @@
# name: EABI attribute Tag_ABI_HardFP_use with value 1
# source: attr-abi-hardfp-use-1.s
# as:
# readelf: -A
# This test is only valid on EABI based ports.
# target: *-*-*eabi* *-*-nacl*
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "Cortex-M7"
Tag_CPU_arch: v7E-M
Tag_CPU_arch_profile: Microcontroller
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: FPv5/FP-D16 for ARMv8
Tag_ABI_HardFP_use: SP only

View File

@ -0,0 +1,3 @@
.cpu cortex-m7
.fpu fpv5-sp-d16
.eabi_attribute 27, 1

View File

@ -0,0 +1,15 @@
# name: EABI attribute Tag_ABI_HardFP_use with value 2
# source: attr-abi-hardfp-use-2.s
# as:
# readelf: -A
# This test is only valid on EABI based ports.
# target: *-*-*eabi* *-*-nacl*
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "Cortex-M7"
Tag_CPU_arch: v7E-M
Tag_CPU_arch_profile: Microcontroller
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: FPv5/FP-D16 for ARMv8
Tag_ABI_HardFP_use: Reserved

View File

@ -0,0 +1,3 @@
.cpu cortex-m7
.fpu fpv5-d16
.eabi_attribute 27, 2

View File

@ -0,0 +1,15 @@
# name: EABI attribute Tag_ABI_HardFP_use with value 3
# source: attr-abi-hardfp-use-3.s
# as:
# readelf: -A
# This test is only valid on EABI based ports.
# target: *-*-*eabi* *-*-nacl*
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "Cortex-M7"
Tag_CPU_arch: v7E-M
Tag_CPU_arch_profile: Microcontroller
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: FPv5/FP-D16 for ARMv8
Tag_ABI_HardFP_use: Deprecated

View File

@ -0,0 +1,3 @@
.cpu cortex-m7
.fpu fpv5-d16
.eabi_attribute 27, 3

View File

@ -1,3 +1,21 @@
2015-02-26 Terry Guo <terry.guo@arm.com>
* ld-arm/attr-merge-3.attr: Remove Tag_ABI_HardFP_use.
* ld-arm/attr-merge-vfp-10.d: Likewise.
* ld-arm/attr-merge-vfp-10r.d: Likewise.
* ld-arm/attr-merge-vfp-12.d: Likewise.
* ld-arm/attr-merge-vfp-12r.d: Likewise.
* ld-arm/attr-merge-vfp-13.d: Likewise.
* ld-arm/attr-merge-vfp-13r.d: Likewise.
* ld-arm/attr-merge-vfp-14.d: Likewise.
* ld-arm/attr-merge-vfp-14r.d: Likewise.
* ld-arm/attr-merge-vfp-6.d: Likewise.
* ld-arm/attr-merge-vfp-6r.d: Likewise.
* ld-arm/attr-merge-vfp-7.d: Likewise.
* ld-arm/attr-merge-vfp-7r.d: Likewise.
* ld-arm/attr-merge-vfp-8.d: Likewise.
* ld-arm/attr-merge-vfp-8r.d: Likewise.
2015-02-25 Andrew Burgess <andrew.burgess@embecosm.com>
* ld-avr/avr-prop-1.d: New file.

View File

@ -896,6 +896,8 @@ run_dump_test "attr-merge-vfp-14r"
run_dump_test "attr-merge-incompatible"
run_dump_test "attr-merge-arch-2"
run_dump_test "attr-merge-nosection-1"
run_dump_test "attr-merge-hardfp-use-1"
run_dump_test "attr-merge-hardfp-use-2"
run_dump_test "unresolved-1"
if { ![istarget "arm*-*-nacl*"] } {
run_dump_test "unresolved-1-dyn"

View File

@ -22,7 +22,6 @@ File Attributes
Tag_ABI_align_needed: 8-byte
Tag_ABI_align_preserved: 8-byte, 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_FP_HP_extension: Allowed

View File

@ -0,0 +1,15 @@
#source: attr-merge-hardfp-use-1a.s
#source: attr-merge-hardfp-use-1b.s
#as:
#ld: -e main
#readelf: -A
# This test is only valid on ELF based ports.
# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "Cortex-M4"
Tag_CPU_arch: v7E-M
Tag_CPU_arch_profile: Microcontroller
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: FPv5/FP-D16 for ARMv8

View File

@ -0,0 +1,12 @@
.syntax unified
.cpu cortex-m4
.fpu fpv4-sp-d16
.thumb
.text
.align 2
.global foo
.thumb
.thumb_func
.type foo, %function
foo:
bx lr

View File

@ -0,0 +1,16 @@
.thumb
.syntax unified
.cpu cortex-m7
.fpu fpv5-d16
.eabi_attribute 27, 3
.text
.align 2
.global main
.thumb
.thumb_func
.type main, %function
main:
bl foo

View File

@ -0,0 +1,15 @@
#source: attr-merge-hardfp-use-2a.s
#source: attr-merge-hardfp-use-2b.s
#as:
#ld: -e main
#readelf: -A
# This test is only valid on ELF based ports.
# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "Cortex-M4"
Tag_CPU_arch: v7E-M
Tag_CPU_arch_profile: Microcontroller
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: FPv5/FP-D16 for ARMv8

View File

@ -0,0 +1,12 @@
.syntax unified
.cpu cortex-m4
.fpu fpv4-sp-d16
.thumb
.text
.align 2
.global foo
.thumb
.thumb_func
.type foo, %function
foo:
bx lr

View File

@ -0,0 +1,14 @@
.thumb
.syntax unified
.cpu cortex-m7
.fpu fpv5-d16
.eabi_attribute 27, 2
.text
.align 2
.global main
.thumb
.thumb_func
.type main, %function
main:
bl foo

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FPv5/FP-D16 for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FPv5/FP-D16 for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FP for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FP for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FP for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FP for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FP for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FP for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FP for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FP for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FPv5/FP-D16 for ARMv8
Tag_ABI_HardFP_use: SP and DP

View File

@ -11,4 +11,3 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: FPv5/FP-D16 for ARMv8
Tag_ABI_HardFP_use: SP and DP