Home | History | Annotate | Download | only in gen
History log of /src/lib/libc/arch/sparc/gen/longjmp.c
RevisionDateAuthorComments
 1.6  24-Apr-2025  riastradh sparc, sparc64 longjmp: Use _UC_SIGMASK to restore signal mask.

This way, restoring the signal mask and restoring the stack pointer
happen atomically with respect to signal handler calls, whereas using
sigprocmask would restore the signal mask _before_ the stack pointer,
breaking sigaltstack.

The motivation for using sigprocmask first and then setcontext later,
rather than _UC_SIGMASK in setcontext, was to get SA-based libpthead
sigprocmask interposition. But that's long gone and unlikely to come
back.

PR lib/57946: longjmp fails to restore stack first before restoring
signal mask on most architectures
 1.5  20-Feb-2024  uwe branches: 1.5.2;
fix typo in comment
 1.4  03-Sep-2023  mrg avoid array-bounds issues by using more complete types.

also, don't cast to a type that includes an extra, unused, member.

while here, replace the hard coded offsets in setjmp.S and some
asserts in longjmp.c with assym.h and shared structures for all
the movings parts, and asserts based upon those structures.

avoids GCC 12 warnings.
 1.3  30-Apr-2011  martin Save a few global registers during set/longjmp - at least the application
registers and the only currently used system register (%g7).
Sparc now passes the setjmp tests (and should be able to build perl again).
 1.2  28-Apr-2008  martin branches: 1.2.8;
Remove clause 3 and 4 from TNF licenses
 1.1  15-Oct-2005  uwe branches: 1.1.18;
Switch sparc to the new compat code layout.
 1.1.18.1  18-May-2008  yamt sync with head.
 1.2.8.2  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2.8.1  28-Apr-2008  martin file longjmp.c was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.5.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed