mirror of
https://github.com/HeyPuter/gex.git
synced 2026-11-13 20:12:43 -10:00
Every signal a frame reported had si_code SI_KERNEL. Now: - kill() is SI_USER with the sender's pid and uid. The process table keeps which pending bits kill sent and who sent each, beside the bitmask a target collects; a ^C from the terminal and SIGCHLD stay the kernel's. Two new Remote calls carry that to the browser shim's global kernel (k_take_kill_signals, k_kill_sender). - tkill/tgkill (and so raise()) is SI_TKILL, and SIGPIPE is SI_USER from the writer, as Linux sends them. - sigtimedwait fills the same fields (it wrote si_code 0 for everything). - A synchronous fault still reports its own code and address. One siginfo writer now serves the aarch64, x86-64, i386 and ppc32 frames. Also: the plain (non-shared) browser shim exports a stub gex_nt_callback_done, which the glue calls since a758e65; without it the plain build failed its glue check and was not installed. tests/x86-programs/siginfo-sender.c checks it against native, x86-64 and i386: kill and tgkill of self, raise, a broken pipe, and a kill from a child read back through sigtimedwait. Same output natively, under gexc, and in the shared browser shim under Node (through the global kernel). Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01FD9dkkmiprztLDZmgKXS62