Re: git: d957343f8713 - main - linux(4): Rework signal trampoline on Aarch64
- In reply to: Jessica Clarke : "Re: git: d957343f8713 - main - linux(4): Rework signal trampoline on Aarch64"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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.