diff options
author | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2017-06-24 10:48:08 +0100 |
---|---|---|
committer | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2017-06-24 10:48:08 +0100 |
commit | bff0500d7abc215bbc6d4e9332047c023f4ce2cb (patch) | |
tree | 2baed8141bed5169ed6f67404de9001910ad0fc4 /ld/testsuite/ld-arm/attr-merge-12.attr | |
parent | ced40572e478927f43a849d5c39f794868da8d38 (diff) | |
download | gdb-bff0500d7abc215bbc6d4e9332047c023f4ce2cb.zip gdb-bff0500d7abc215bbc6d4e9332047c023f4ce2cb.tar.gz gdb-bff0500d7abc215bbc6d4e9332047c023f4ce2cb.tar.bz2 |
[ARM] Add linker support for ARMv8-R
=== Context ===
This patch is part of a patch series to add support for ARMv8-R
architecture. Its purpose is to add support for ARMv8-R in the linker.
=== Patch description ===
This patch is composed of 3 changes:
1) The main change is the addition of the logic for merging a file whose
Tag_CPU_arch build attribute is 15 (ARMv8-R). Namely, all pre-ARMv8 are
merged into ARMv8-R as well as ARMv8-R itself. ARMv8-A (14) merges into
ARMv8-A. ARMv8-M Baseline (16) and Mainline (17) are not allowed to
merge merge with ARMv8-R. Note that merging only occurs if the two
profiles are identical or one is S (Application or Realtime) and the
other is R.
2) using_thumb_only, using_thumb2_bl, using_thumb2 and arch_has_arm_nop
are updated according to capabilities of ARMv8-R and their BFD_ASSERT
updated to reflect that the logic is valid for ARMv8-R.
3) 2 build attribute merging tests are added to test the first change.
2017-06-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
bfd/
* elf32-arm.c (using_thumb_only): Update list of architectures in
BFD_ASSERT for which the logic is valid.
(using_thumb2_bl): Likewise.
(using_thumb2): Likewise and return true for ARMv8-R.
(arch_has_arm_nop): Likewise.
(tag_cpu_arch_combine): New v8r table for ARMv8-R Tag_CPU_arch
merging logic. Update commentis for value 15 of v8m_baseline,
v8m_mainline and v4t_plus_v6_m arrays. Use v8r array to decide
merging of value 15 of Tag_CPU_arch.
ld/
* testsuite/ld-arm/arm-elf.exp (EABI attribute merging 11): New test.
(EABI attribute merging 12): Likewise.
* testsuite/ld-arm/attr-merge-11a.s: New file.
* testsuite/ld-arm/attr-merge-11b.s: New file.
* testsuite/ld-arm/attr-merge-11.attr: New file.
* testsuite/ld-arm/attr-merge-12a.s: New file.
* testsuite/ld-arm/attr-merge-12b.s: New file.
* testsuite/ld-arm/attr-merge-12.attr: New file.
Diffstat (limited to 'ld/testsuite/ld-arm/attr-merge-12.attr')
-rw-r--r-- | ld/testsuite/ld-arm/attr-merge-12.attr | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ld/testsuite/ld-arm/attr-merge-12.attr b/ld/testsuite/ld-arm/attr-merge-12.attr new file mode 100644 index 0000000..77596ba --- /dev/null +++ b/ld/testsuite/ld-arm/attr-merge-12.attr @@ -0,0 +1,9 @@ +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "8-R" + Tag_CPU_arch: v8-R + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions |