mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-11 18:00:50 +02:00
We were using the glibc context structure layout which doesn't match what the kernel is doing. Switches over to allocating fpstate independentally of the ucontext_t, then pointing to it from uc_mcontext how we're supposed to. glibc uses the __fpregs_mem region for other purposes. This also fixes xmm state being stored on the 32-bit side, and also fixes SIGALRM and SIGVTALRM siginfo overwriting structure data. On 32-bit we can't just memcpy the siginfo_t over because the sizes don't match. Throw a message instead.