binutils-gdb/ld/testsuite/ld-aarch64/variant_pcs-2.s
Szabolcs Nagy 823710d585 aarch64: handle STO_AARCH64_VARIANT_PCS in bfd
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.
2019-05-24 15:11:00 +01:00

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