binutils-gdb/ld/testsuite/ld-arm/cmse-implib.s
Thomas Preud'homme 54ddd295b5 2016-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
bfd/
	* bfd-in.h (bfd_elf32_arm_set_target_relocs): Add one parameter.
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (struct elf32_arm_link_hash_table): Declare new
	cmse_implib field.
	(bfd_elf32_arm_set_target_relocs): Add new parameter to initialize
	cmse_implib field in struct elf32_arm_link_hash_table.
	(elf32_arm_filter_cmse_symbols): New function.
	(elf32_arm_filter_implib_symbols): Likewise.
	(elf_backend_filter_implib_symbols): Define to
	elf32_arm_filter_implib_symbols.

ld/
	* emultempl/armelf.em (cmse_implib): Declare and define this new
	static variable.
	(arm_elf_create_output_section_statements): Add new cmse_implib
	parameter.
	(OPTION_CMSE_IMPLIB): Define macro.
	(PARSE_AND_LIST_LONGOPTS): Add entry for new --cmse-implib switch.
	(PARSE_AND_LIST_OPTIONS): Likewise.
	(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_CMSE_IMPLIB case.
	* ld.texinfo (--cmse-implib): Document new option.
	* testsuite/ld-arm/arm-elf.exp
	(Secure gateway import library generation): New test.
	(Secure gateway import library generation: errors): Likewise.
	* testsuite/ld-arm/cmse-implib.s: New file.
	* testsuite/ld-arm/cmse-implib-errors.out: Likewise.
	* testsuite/ld-arm/cmse-implib.rd: Likewise.
2016-08-04 15:54:57 +01:00

59 lines
1.4 KiB
ArmAsm

.syntax unified
.text
.macro entry name, vis, entry_fct
.align 2
.\vis \name
.\vis __acle_se_\name
.thumb
.thumb_func
.type \name, %function
.type __acle_se_\name, %function
\name:
.ifnb \entry_fct
\entry_fct
.endif
__acle_se_\name:
nop
.size \name, .-\name
.size __acle_se_\name, .-__acle_se_\name
.endm
@ Valid setups for veneer generation
entry exported_entry_veneer2, global
entry exported_entry_veneer3, global
@ Valid setup for entry function without veneer generation
entry exported_entry_fct1, global, sg
entry exported_entry_fct2, global, sg
@ Normal symbol not exported to SG import library
.align 2
.global not_exported_fct1
.type not_exported_fct1, %function
not_exported_fct1:
nop
.size not_exported_fct1, .-not_exported_fct1
.ifdef CHECK_ERRORS
@ Invalid setups for export to SG import library
.align 2
.global __acle_se_not_exported_fct2
.type __acle_se_not_exported_fct2, %function
__acle_se_not_exported_fct2:
nop
.size __acle_se_not_exported_fct2, .-__acle_se_not_exported_fct2
.align 2
.global __acle_se_not_exported_pseudoentry_var
.global not_exported_pseudoentry_var
.data
.type __acle_se_not_exported_pseudoentry_var, %object
.type not_exported_pseudoentry_var, %object
.size not_exported_pseudoentry_var, 4
.size __acle_se_not_exported_pseudoentry_var, 4
__acle_se_not_exported_pseudoentry_var:
not_exported_pseudoentry_var:
.word 42
.endif