The modifications added by the series "M-profile PACBTI-enablement"
(see
9d6b00511e50a54d2472d11f75f7c0f2b4a98b24) have introduced a couple
of .cfi_* instructions.
Like for
e6459123e497409a9e3d845c39829a9602ba55a4, these instructions
create object files which contain .eh_frame sections. However, ARM uses
its own unwind info format, not .eh_frame, which is generated by
ARM-specific directives, not .cfi_*. The .eh_frame sections are useless,
but also not removed by strip and may be harmful with some linker
scripts.
Adding ".cfi_sections .debug_frame" (as in glibc) moves the generated
directives towards .debug_frame instead of .eh_frame. Making them easier
to handle.
* libc/machine/arm/aeabi_memmove-thumb2.S: Use .cfi_sections
.debug_frame.
* libc/machine/arm/aeabi_memset-thumb2.S: Likewise.
* libc/machine/arm/memchr.S: Likewise.
* libc/machine/arm/memcpy-armv7m.S: Likewise.
* libc/machine/arm/setjmp.S: Likewise.
* libc/machine/arm/strlen-armv7.S: Likewise.
* libc/machine/arm/strlen-thumb2-Os.S: Likewise.
ASM_ALIAS __aeabi_memmove8 __aeabi_memmove
__aeabi_memmove:
.fnstart
+ .cfi_sections .debug_frame
.cfi_startproc
prologue 4
cmp r0, r1
.global __aeabi_memset
.type __aeabi_memset, %function
.fnstart
+ .cfi_sections .debug_frame
.cfi_startproc
ASM_ALIAS __aeabi_memset4 __aeabi_memset
ASM_ALIAS __aeabi_memset8 __aeabi_memset
.global memchr
.type memchr,%function
.fnstart
+ .cfi_sections .debug_frame
.cfi_startproc
memchr:
@ r0 = start of memory to scan
.thumb
.thumb_func
.fnstart
+ .cfi_sections .debug_frame
.cfi_startproc
.type memcpy, %function
memcpy:
MODE
.globl SYM (\name)
.fnstart
+ .cfi_sections .debug_frame
.cfi_startproc
TYPE (\name)
SYM (\name):
def_fn strlen p2align=6
.fnstart
+ .cfi_sections .debug_frame
.cfi_startproc
prologue 4 5 push_ip=HAVE_PAC_LEAF
pld [srcin, #0]
def_fn strlen p2align=1
.fnstart
+ .cfi_sections .debug_frame
.cfi_startproc
prologue
mov r3, r0