mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 10:16:41 +00:00
1. For some reason, Marier distribution headers
not correctly define __GLIBC_HAVE_KERNEL_RSEQ
compile-time constant. It remains undefined,
but in fact header files provides corresponding
rseq types declaration which leads to conflict.
2. Another issue, is that they use uint*_t types
instead of __u* types as in original rseq.h.
This leads to compile time issues like this:
format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type 'uint64_t' {aka 'long unsigned int'}
and we can't even replace %llx to %PRIx64 because it will break
compilation on other distros (like Fedora) with analogical error:
error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘__u64’ {aka ‘long long unsigned int’}
Let's use our-own struct rseq copy fully equal to the kernel one,
it's safe because this structure is a part of Linux Kernel ABI.
Fixes #1934
Reported-by: Nikola Bojanic
Signed-off-by: Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com>
|
||
|---|---|---|
| .. | ||
| build | ||
| ci | ||
| nmk | ||
| crit-setup.py | ||
| criu-ns | ||
| fake-restore.sh | ||
| feature-tests.mak | ||
| fetch-clang-format.sh | ||
| flake8.cfg | ||
| install-criu-image-streamer.sh | ||
| install-debian-pkgs.sh | ||
| magic-gen.py | ||
| protobuf-gen.sh | ||
| systemd-autofs-restart.sh | ||
| tmp-files.sh | ||