mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-18 23:03:29 +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.
48 lines
1.3 KiB
ArmAsm
48 lines
1.3 KiB
ArmAsm
.text
|
|
|
|
.variant_pcs f_spec_global_default_def
|
|
.variant_pcs f_spec_global_default_undef
|
|
.variant_pcs f_spec_global_hidden_def
|
|
.variant_pcs f_spec_local2
|
|
.variant_pcs f_spec_global_default_ifunc
|
|
.variant_pcs f_spec_global_hidden_ifunc
|
|
.variant_pcs f_spec_local2_ifunc
|
|
|
|
.global f_spec_global_default_def
|
|
.global f_spec_global_default_undef
|
|
.global f_spec_global_hidden_def
|
|
.global f_spec_global_default_ifunc
|
|
.global f_spec_global_hidden_ifunc
|
|
.global f_base_global_default_def
|
|
.global f_base_global_default_undef
|
|
.global f_base_global_hidden_def
|
|
.global f_base_global_default_ifunc
|
|
.global f_base_global_hidden_ifunc
|
|
|
|
.hidden f_spec_global_hidden_def
|
|
.hidden f_spec_global_hidden_ifunc
|
|
.hidden f_base_global_hidden_def
|
|
.hidden f_base_global_hidden_ifunc
|
|
|
|
.type f_spec_local2_ifunc, %gnu_indirect_function
|
|
.type f_base_local2_ifunc, %gnu_indirect_function
|
|
|
|
f_spec_local2:
|
|
f_base_local2:
|
|
f_spec_local2_ifunc:
|
|
f_base_local2_ifunc:
|
|
bl f_spec_global_default_def
|
|
bl f_spec_global_default_undef
|
|
bl f_spec_global_hidden_def
|
|
bl f_spec_local2
|
|
bl f_base_global_default_def
|
|
bl f_base_global_default_undef
|
|
bl f_base_global_hidden_def
|
|
bl f_base_local2
|
|
bl f_spec_global_default_ifunc
|
|
bl f_spec_global_hidden_ifunc
|
|
bl f_spec_local2_ifunc
|
|
bl f_base_global_default_ifunc
|
|
bl f_base_global_hidden_ifunc
|
|
bl f_base_local2_ifunc
|