Re: [PATCH] libc/arm: add missing .cfi_sections

Clément Chigot <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAJ307EiaYLvtO4XoF6-fWqswOhRctNGS=WuZAwRdTCB=ff+kiA@mail.gmail.com>
On Tue, Jul 9, 2024 at 5:37 PM Richard Earnshaw (lists)
<[email protected]> wrote:
>
> I've pushed this.  Sorry for the delay: there were some things I needed to check and it then fell off my radar.

No worries ! Thanks a lot for the push.
Clément

> R.
>
> On 09/07/2024 11:49, Corinna Vinschen wrote:
> > @Richard, any input from arm.com?
> >
> >
> > Thanks,
> > Corinna
> >
> >
> > On Jul  4 13:44, Clément Chigot wrote:
> >> On Mon, Jun 10, 2024 at 2:38 PM Clément Chigot <[email protected]> wrote:
> >>>
> >>> 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.
> >>
> >> Gentle ping
> >>
> >>> ---
> >>>  newlib/libc/machine/arm/aeabi_memmove-thumb2.S | 1 +
> >>>  newlib/libc/machine/arm/aeabi_memset-thumb2.S  | 1 +
> >>>  newlib/libc/machine/arm/memchr.S               | 1 +
> >>>  newlib/libc/machine/arm/memcpy-armv7m.S        | 1 +
> >>>  newlib/libc/machine/arm/setjmp.S               | 1 +
> >>>  newlib/libc/machine/arm/strlen-armv7.S         | 1 +
> >>>  newlib/libc/machine/arm/strlen-thumb2-Os.S     | 1 +
> >>>  7 files changed, 7 insertions(+)
> >>>
> >>> diff --git a/newlib/libc/machine/arm/aeabi_memmove-thumb2.S b/newlib/libc/machine/arm/aeabi_memmove-thumb2.S
> >>> index 20ca993e5..3018e7412 100644
> >>> --- a/newlib/libc/machine/arm/aeabi_memmove-thumb2.S
> >>> +++ b/newlib/libc/machine/arm/aeabi_memmove-thumb2.S
> >>> @@ -36,6 +36,7 @@
> >>>         ASM_ALIAS __aeabi_memmove8 __aeabi_memmove
> >>>  __aeabi_memmove:
> >>>         .fnstart
> >>> +       .cfi_sections .debug_frame
> >>>         .cfi_startproc
> >>>         prologue 4
> >>>         cmp     r0, r1
> >>> diff --git a/newlib/libc/machine/arm/aeabi_memset-thumb2.S b/newlib/libc/machine/arm/aeabi_memset-thumb2.S
> >>> index 6b77d3820..a1b8f0532 100644
> >>> --- a/newlib/libc/machine/arm/aeabi_memset-thumb2.S
> >>> +++ b/newlib/libc/machine/arm/aeabi_memset-thumb2.S
> >>> @@ -33,6 +33,7 @@
> >>>         .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
> >>> diff --git a/newlib/libc/machine/arm/memchr.S b/newlib/libc/machine/arm/memchr.S
> >>> index d13ef8d65..f0b3650aa 100644
> >>> --- a/newlib/libc/machine/arm/memchr.S
> >>> +++ b/newlib/libc/machine/arm/memchr.S
> >>> @@ -293,6 +293,7 @@ memchr:
> >>>         .global memchr
> >>>         .type memchr,%function
> >>>         .fnstart
> >>> +       .cfi_sections .debug_frame
> >>>         .cfi_startproc
> >>>  memchr:
> >>>         @ r0 = start of memory to scan
> >>> diff --git a/newlib/libc/machine/arm/memcpy-armv7m.S b/newlib/libc/machine/arm/memcpy-armv7m.S
> >>> index ec1ad6485..13ffdb343 100644
> >>> --- a/newlib/libc/machine/arm/memcpy-armv7m.S
> >>> +++ b/newlib/libc/machine/arm/memcpy-armv7m.S
> >>> @@ -88,6 +88,7 @@
> >>>         .thumb
> >>>         .thumb_func
> >>>         .fnstart
> >>> +       .cfi_sections .debug_frame
> >>>         .cfi_startproc
> >>>         .type   memcpy, %function
> >>>  memcpy:
> >>> diff --git a/newlib/libc/machine/arm/setjmp.S b/newlib/libc/machine/arm/setjmp.S
> >>> index 5e5952296..0070f17cd 100644
> >>> --- a/newlib/libc/machine/arm/setjmp.S
> >>> +++ b/newlib/libc/machine/arm/setjmp.S
> >>> @@ -183,6 +183,7 @@ SYM (.arm_start_of.\name):
> >>>         MODE
> >>>         .globl SYM (\name)
> >>>         .fnstart
> >>> +       .cfi_sections .debug_frame
> >>>         .cfi_startproc
> >>>         TYPE (\name)
> >>>  SYM (\name):
> >>> diff --git a/newlib/libc/machine/arm/strlen-armv7.S b/newlib/libc/machine/arm/strlen-armv7.S
> >>> index 6aa122c07..1c2b5c532 100644
> >>> --- a/newlib/libc/machine/arm/strlen-armv7.S
> >>> +++ b/newlib/libc/machine/arm/strlen-armv7.S
> >>> @@ -106,6 +106,7 @@
> >>>
> >>>  def_fn strlen p2align=6
> >>>         .fnstart
> >>> +       .cfi_sections .debug_frame
> >>>         .cfi_startproc
> >>>         prologue 4 5 push_ip=HAVE_PAC_LEAF
> >>>         pld     [srcin, #0]
> >>> diff --git a/newlib/libc/machine/arm/strlen-thumb2-Os.S b/newlib/libc/machine/arm/strlen-thumb2-Os.S
> >>> index 4adbc61d2..b8a615a15 100644
> >>> --- a/newlib/libc/machine/arm/strlen-thumb2-Os.S
> >>> +++ b/newlib/libc/machine/arm/strlen-thumb2-Os.S
> >>> @@ -47,6 +47,7 @@
> >>>
> >>>  def_fn strlen p2align=1
> >>>         .fnstart
> >>> +       .cfi_sections .debug_frame
> >>>         .cfi_startproc
> >>>         prologue
> >>>         mov     r3, r0
> >>> --
> >>> 2.25.1
> >>>
> >
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.