ac4c9b0459
include/elf * arm.h: Add arm SHF_ARM_NOREAD section flag. bfd * bfd-in2.h: Regenerate. * section.c: Add SEC_ELF_NOREAD. * elf32-arm.c (elf32_arm_post_process_headers): Only set PF_X attribute if a segment only contains section with SHF_ARM_NOREAD flag. (elf32_arm_fake_sections): Add SEC_ELF_NOREAD conversion. (elf32_arm_section_flags): New function to convert SHF_ARM_NOREAD to bfd flag. (elf32_arm_lookup_section_flags): New function to allow INPUT_SECTION_FLAGS directive with SHF_ARM_NOREAD flag. (elf32_arm_special_sections): Add special sections array to catch section prefix by '.text.noread' pattern. ld/testsuite * ld-arm/arm-elf.exp: New tests. * ld-arm/thumb1-input-section-flag-match.d: New * ld-arm/thumb1-input-section-flag-match.s: New * ld-arm/thumb1-noread-not-present-mixing-two-section.d: New * ld-arm/thumb1-noread-not-present-mixing-two-section.s: New * ld-arm/thumb1-noread-present-one-section.d: New * ld-arm/thumb1-noread-present-one-section.s: New * ld-arm/thumb1-noread-present-two-section.d: New * ld-arm/thumb1-noread-present-two-section.s: New binutils * readelf.c (get_elf_section_flags): Add support for ARM specific section flags.
32 lines
720 B
Text
32 lines
720 B
Text
/* Script for ld testsuite. */
|
|
OUTPUT_ARCH(arm)
|
|
ENTRY(_start)
|
|
MEMORY
|
|
{
|
|
read_memory (rx) : ORIGIN = 0x00008000, LENGTH = 4M
|
|
noread_memory (!rx) : ORIGIN = 0x00800000, LENGTH = 4M
|
|
}
|
|
SECTIONS
|
|
{
|
|
/* Read-only sections, merged into text segment: */
|
|
PROVIDE (__executable_start = 0x8000); . = 0x8000;
|
|
.text.noread :
|
|
{
|
|
INPUT_SECTION_FLAGS (SHF_ARM_NOREAD) *(.text*)
|
|
} > noread_memory
|
|
.text :
|
|
{
|
|
*(.before)
|
|
*(.text)
|
|
*(.after)
|
|
*(.ARM.extab*)
|
|
*(.glue_7)
|
|
*(.v4_bx)
|
|
} > read_memory
|
|
.ARM.exidx : { *(.ARM.exidx*) }
|
|
. = 0x9000;
|
|
.got : { *(.got) *(.got.plt)}
|
|
. = 0x12340000;
|
|
.far : { *(.far) }
|
|
.ARM.attribues 0 : { *(.ARM.atttributes) }
|
|
}
|