[CRIU] [PATCH 00/15] Compatible C/R patches set, part 1

Dmitry Safonov dsafonov at virtuozzo.com
Mon Apr 11 05:19:14 PDT 2016


Here are first 15 patches from compatible patches set.
Mostly they are about Makefiles and visible change after
applying them is generation of two parasite blobs on x86.
After this patches, criu will still refuse to dump tasks in
compatibility mode.
This part was tested and used in previous version of
compatibility patches set:
https://github.com/0x7f454c46/criu/tree/compat-2
which successfully restores Glibc 32-bit applications.
Right now I'm working on Linux kernel API to change
application mode: native <-> compat. I had a patch
that does it for compat-2 branch, but now reworking
it the way which will satisfy community points on it.
This Linux kernel patch affects only one criu patch
from the second part, so this part will stay the same.

So, I'm sending this patches set in two parts for the
two reasons:
- it's simpler to review 15 patches than 30
- I'm still working on a patch from the second part,
  but a little tired of constantly rebasing makefile
  part, which doesn't change in my series.

Tested on Travis CI:
https://travis-ci.org/0x7f454c46/criu/builds/122225176

Dmitry Safonov (15):
  .gitignore: add compel/compel
  Dockerfile: add libc6-dev-i386 & gcc-multilib
  x86/build: generate syscalls-{64,32}.built-in.o
  cr-exec: add non-generated sys-exec-tbl for x86
  x86/pie: split parasite-head.S on {-32,-64} parts
  build/nmk: bring gen-rule-* back
  build/nmk: add -obj-uniq and -lib-uniq
  criu/pie: generate native.lib.a
  parasite-vdso: add casts from uint64_t
  pie.lib: generate compatible pie object files
  pie/vdso: add i386 trampoline
  parasite: refactor macros for compat/native usage
  pie: generate native and compat parasites
  core/x86: add compatible 32 register set
  x86/crtools: rework arch_task_compatible

 .gitignore                                |  15 +-
 criu/Makefile                             |  11 +-
 criu/arch/ppc64/Makefile.syscalls         |   3 +
 criu/arch/scripts/arm/gen-sys-exec-tbl.pl |   4 +
 criu/arch/x86/Makefile.syscalls           | 199 +++++++++++++++++++--------
 criu/arch/x86/crtools.c                   | 219 ++++++++++++++++++++++--------
 criu/arch/x86/include/asm/dump.h          |   3 +
 criu/arch/x86/include/asm/types.h         | 104 ++++++++++----
 criu/arch/x86/parasite-head-32.S          |  24 ++++
 criu/arch/x86/parasite-head-64.S          |  22 +++
 criu/arch/x86/parasite-head.S             |  40 ------
 criu/arch/x86/sys-exec-tbl.c              |  50 +++++++
 criu/arch/x86/syscalls/syscall32.c        |   2 +-
 criu/arch/x86/vdso-pie.c                  |  41 +++---
 criu/cr-exec.c                            |  10 +-
 criu/cr-restore.c                         |   4 +-
 criu/include/parasite.h                   |   5 +-
 criu/include/restorer.h                   |   3 +-
 criu/parasite-syscall.c                   |  17 ++-
 criu/pie/Makefile                         | 173 ++++++++++++++++-------
 criu/pie/Makefile.library                 |  50 ++++---
 criu/pie/parasite-blob.h                  |   6 +
 criu/pie/parasite-vdso.c                  |  12 +-
 criu/pie/pie-relocs.h                     |  18 ++-
 images/core-x86.proto                     |  61 +++++----
 scripts/build/Dockerfile.x86_64.hdr       |   4 +
 scripts/nmk/scripts/build.mk              |  58 +++++++-
 scripts/travis-tests                      |   4 +-
 28 files changed, 827 insertions(+), 335 deletions(-)
 create mode 100644 criu/arch/x86/parasite-head-32.S
 create mode 100644 criu/arch/x86/parasite-head-64.S
 delete mode 100644 criu/arch/x86/parasite-head.S
 create mode 100644 criu/arch/x86/sys-exec-tbl.c
 create mode 100644 criu/pie/parasite-blob.h

-- 
2.8.0



More information about the CRIU mailing list