Re: git: d957343f8713 - main - linux(4): Rework signal trampoline on Aarch64

From: Dmitry Chagin <dchagin_at_freebsd.org>
Date: Mon, 15 May 2023 21:10:08 UTC
On Sun, May 14, 2023 at 10:57:55PM +0100, Jessica Clarke wrote:
> On 14 May 2023, at 22:31, Dmitry Chagin <dchagin@FreeBSD.org> wrote:
> > 
> > The branch main has been updated by dchagin:
> > 
> > URL: https://cgit.FreeBSD.org/src/commit/?id=d957343f8713a312442a0140b7a7752ed7b2d870
> > 
> > commit d957343f8713a312442a0140b7a7752ed7b2d870
> > Author:     Dmitry Chagin <dchagin@FreeBSD.org>
> > AuthorDate: 2023-05-14 21:27:31 +0000
> > Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
> > CommitDate: 2023-05-14 21:27:31 +0000
> > 
> >    linux(4): Rework signal trampoline on Aarch64
> > 
> >    To avoid clobbering of any registers by the trampoline code use Linux
> >    way to call signal handlers. I.e., we are out from the kernel right into
> >    the signal handler, put return address from the signal handler into the
> >    link register.
> >    The mysterious NOP is required for some unwinders (e.g. libc++) that
> >    unconditionally subtract one from the result of _Unwind_GetIP() in order
> >    to identify the calling function.
> > 
> >    MFC after:              1 week
> 
> So this is basically a revert of c56480a83235 "linux(4): Implement signal
> trampoline for arm64 in a FreeBSD-way”? Not a huge fan of this flip-flopping
> without much justification and with no review


partially yes, I prefer to not revert, however in taht case I'll revert
tommorow. I found a proper solution, ugh...

About review, do you know who is willing to review unwinder
related code? I know only one, but he is x86 guru))
AFAIK, clang libunwind and libunwind from ports do not support stack
unwinding throuth signal frame on FreeBSD aarch64, libunwind from ports
even broken.