From 91f68a68f992e3f6c3da26c616b5257230bd1eec Mon Sep 17 00:00:00 2001 From: Mickael Guene Date: Wed, 20 Jan 2016 12:53:50 +0000 Subject: 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. --- gas/config/tc-arm.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gas/config/tc-arm.c') diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 046abe5..4a16267 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -24091,6 +24091,15 @@ arm_fix_adjustable (fixS * fixP) #endif /* defined (OBJ_ELF) || defined (OBJ_COFF) */ #ifdef OBJ_ELF +bfd_vma +arm_elf_section_letter (int letter, char **ptrmsg) +{ + if (letter == 'y') + return SHF_ARM_NOREAD; + + *ptrmsg = _("unrecognized .section attribute: want a,e,w,x,y,M,S,G,T"); + return -1; +} const char * elf32_arm_target_format (void) -- cgit v1.1