diff options
author | Mickael Guene <mickael.guene@st.com> | 2016-01-20 12:53:50 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-01-20 12:53:50 +0000 |
commit | 91f68a68f992e3f6c3da26c616b5257230bd1eec (patch) | |
tree | 9e549da0d8aaacafb6231069425241f003357a14 /gas/config/tc-arm.h | |
parent | be56871ee8f65c51b9eee611532ed036a71a72e0 (diff) | |
download | binutils-gdb-91f68a68f992e3f6c3da26c616b5257230bd1eec.tar.gz |
Add support for an ARM specific 'y' section attribute flag to mark the section as NOREAD.
bfd/ChangeLog:
* elf32-arm.c ((elf32_arm_special_sections): Remove catch of noread
section using '.text.noread' pattern.
gas/ChangeLog:
* config/obj-elf.c (obj_elf_change_section) : Allow arm section with
SHF_ARM_NOREAD section flag.
* config/tc-arm.h (md_elf_section_letter) : Implement this hook to
handle letter 'y'.
(arm_elf_section_letter) : Declare it.
* config/tc-arm.c (arm_elf_section_letter): Handle letter 'y' to set
SHF_ARM_NOREAD section flag.
* doc/c-arm.texi (ARM section attribute 'y'): Document it.
gas/testsuite/ChangeLog:
* gas/arm/section-execute-only.s: New test case.
* gas/arm/section-execute-only.d: Expected output.
ld/testsuite/ChangeLog:
* ld-arm/thumb1-noread-not-present-mixing-two-section.s: Add 'y'
attribute usage.
* ld-arm/thumb1-noread-present-one-section.s: Likewise.
* ld-arm/thumb1-noread-present-two-section.s: Likewise.
* ld-arm/thumb1-input-section-flag-match.s: Likewise.
binutils/ChangeLog:
* readelf.c (get_elf_section_flags): Display y letter for section
with SHF_ARM_NOREAD section flag in readelf section output.
(process_section_headers): Add y letter in readelf section output
key mapping for ARM architecture.
Diffstat (limited to 'gas/config/tc-arm.h')
-rw-r--r-- | gas/config/tc-arm.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index 319b2c2dfef..749629c15fe 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -114,6 +114,9 @@ extern bfd_boolean tc_start_label_without_colon (void); #define tc_frob_fake_label(S) arm_frob_label (S) #ifdef OBJ_ELF +#define md_elf_section_letter arm_elf_section_letter +extern bfd_vma arm_elf_section_letter (int, char **); + #define md_end arm_md_end extern void arm_md_end (void); bfd_boolean arm_is_eabi (void); |