mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
823710d585
Propagate STO_AARCH64_VARIANT_PCS st_other attribute to the output and add DT_AARCH64_VARIANT_PCS dynamic tag if necessary. Mismatching attributes are not diagnosed. bfd/ChangeLog: * elfnn-aarch64.c (elfNN_aarch64_merge_symbol_attribute): New function. (struct elf_aarch64_link_hash_table): Add variant_pcs member. (elfNN_aarch64_allocate_dynrelocs): Update variant_pcs. (elfNN_aarch64_size_dynamic_sections): Add DT_AARCH64_VARIANT_PCS. (elf_backend_merge_symbol_attribute): Define. ld/ChangeLog: * testsuite/ld-aarch64/aarch64-elf.exp: Add new tests. * testsuite/ld-aarch64/variant_pcs-1.s: New asm for tests. * testsuite/ld-aarch64/variant_pcs-2.s: New asm for tests. * testsuite/ld-aarch64/variant_pcs-now.d: New test. * testsuite/ld-aarch64/variant_pcs-r.d: New test. * testsuite/ld-aarch64/variant_pcs-shared.d: New test. * testsuite/ld-aarch64/variant_pcs.ld: New linker script for tests.
24 lines
535 B
Plaintext
24 lines
535 B
Plaintext
/* Script for .variant_pcs symbol tests. */
|
|
OUTPUT_ARCH(aarch64)
|
|
ENTRY(_start)
|
|
SECTIONS
|
|
{
|
|
/* Read-only sections, merged into text segment: */
|
|
PROVIDE (__executable_start = 0x8000); . = 0x8000;
|
|
.text :
|
|
{
|
|
*(.before)
|
|
*(.text)
|
|
*(.after)
|
|
} =0
|
|
. = 0x9000;
|
|
.got : { *(.got) *(.got.plt)}
|
|
. = 0x10000;
|
|
.rela.dyn : { *(.rela.ifunc) }
|
|
. = 0x11000;
|
|
.rela.plt : { *(.rela.plt) *(.rela.iplt) }
|
|
. = 0x12340000;
|
|
.far : { *(.far) }
|
|
.ARM.attributes 0 : { *(.ARM.atttributes) }
|
|
}
|