mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
54ddd295b5
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.
59 lines
1.4 KiB
ArmAsm
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
|