- Gap 1+2: add sigsetsize (4th param) validation to rt_sigaction/rt_sigprocmask, return EINVAL if != sizeof(sigset_t)=8 (musl hard requirement)
- Gap 3: register sigaltstack syscall (132) with full impl — SS_DISABLE, SS_ONSTACK, SS_AUTODISARM, MINSIGSTKSZ=2048, EPERM/ENOMEM/EINVAL checks
- Gap 4: SA_ONSTACK stack switching in call_user_signal_handler() — save/restore alt stack state, SS_AUTODISARM auto-disable on handler entry
- Gap 5: clone/fork inherit parent thread's signal_mask (POSIX compliance)
- Gap 6: exec only reset caught signals→SIG_DFL, keep SIG_IGN unchanged (POSIX), disable alt stack on exec
- Gap 7: sigreturn restore alt stack state (clear SS_ONSTACK, recover from signal_stack_saved), support SS_AUTODISARM recovery path
Added SS_AUTODISARM constant, signal_stack_saved field in TCB inner. Dual-arch (RISC-V + LoongArch) compiles clean.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com