--- - branch: MAIN date: Mon Feb 19 13:34:48 UTC 2024 files: - new: '1.6' old: '1.5' path: src/tests/lib/libc/setjmp/t_sigstack.c pathrev: src/tests/lib/libc/setjmp/t_sigstack.c@1.6 type: modified id: 20240219T133448Z.b227f25a56e1550bc2ffe5846132328580bd1ade log: | longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 module: src subject: 'CVS commit: src/tests/lib/libc/setjmp' unixtime: '1708349688' user: riastradh