mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
The kernel patch "x86/signal: add SA_{X32,IA32}_ABI sa_flags" makes
signal's ABI the same as sigaction's syscall ABI instead of per-thread's
TIF_IA32 flag.
So for delivering signals with compatible ABI, we need to call
sigaction through raw int80 exception.
This patch restores signals with int80: cr-restore part and PIE restorer's
part lay in sigaction_compat.c, which compiled for criu binary and for
restorer PIE.
The PIE's part is needed strictly for setting SIGCHLD handler, other
signal handlers are set in cr-restore (as it was before).
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
11 lines
300 B
Protocol Buffer
11 lines
300 B
Protocol Buffer
syntax = "proto2";
|
|
|
|
import "opts.proto";
|
|
|
|
message sa_entry {
|
|
required uint64 sigaction = 1 [(criu).hex = true];
|
|
required uint64 flags = 2 [(criu).hex = true];
|
|
required uint64 restorer = 3 [(criu).hex = true];
|
|
required uint64 mask = 4 [(criu).hex = true];
|
|
optional bool compat_sigaction = 5;
|
|
}
|