[answering to self...] > Why does this "hack" not work? It was precisely devised for this purpose.
Probably because you don't set fs->signal_frame in the fallback routine:
/* SIGILL, SIGFPE and SIGTRAP are delivered with psw_addr
after the faulting instruction rather than before it.
Don't set FS->signal_frame in that case. */
if (!signo || (*signo != 4 && *signo != 5 && *signo != 8))
fs->signal_frame = 1;
You might need to un-overload fs->signal_frame then.
--
Eric Botcazou
