[CRIU] [PATCHv2 00/17] Compatible C/R patches set, part 1

Dmitry Safonov dsafonov at virtuozzo.com
Tue Apr 12 09:10:38 PDT 2016


v2 Changes:
- dropped build/nmk patches for building objects with different
  {CFLAGS,AFLAGS,LDFLAGS} and reworked Makefile patches to build
  compat object, according to their path. I choosed 'compat/name-compat.o'
  format, for the reason, described in the patch
  'pie.lib: generate compatible pie object files', which is quite
  questionable.
- as patches set size has reduced, I add additional 4 patches (the last 4)
  by the reason, that they are small and quite trivial. I think, there
  may be objections about 'x86: add user_regs_native macro (optional)'
  patch, which checks that we do not interpret uninitialized user register
  set as compatible set (is_native == false/0). I did it for further changes:
  now it's so, but may lead to problems, which will quite hard to debug
  if code changes.

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

v1 version patches set:
https://lists.openvz.org/pipermail/criu/2016-April/027237.html

Dmitry Safonov (17):
  .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
  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
  x86: add user_regs_native macro (optional)
  parasite-syscall: choose between native/compat blobs
  x86/crtools: add injected int 0x80 instruction code
  restorer: drop sigframe include

 .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/compat/vdso-pie-compat.c    |   1 +
 criu/arch/x86/crtools.c                   | 230 ++++++++++++++++++++++--------
 criu/arch/x86/include/asm/dump.h          |   3 +
 criu/arch/x86/include/asm/types.h         | 118 +++++++++++----
 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                   |   4 +-
 criu/parasite-syscall.c                   |  45 ++++--
 criu/pie/Makefile                         | 182 ++++++++++++++++-------
 criu/pie/Makefile.library                 |  53 ++++---
 criu/pie/compat/log-simple-compat.c       |   1 +
 criu/pie/compat/parasite-compat.c         |   1 +
 criu/pie/compat/parasite-vdso-compat.c    |   1 +
 criu/pie/compat/util-compat.c             |   1 +
 criu/pie/compat/util-fd-compat.c          |   1 +
 criu/pie/compat/util-vdso-compat.c        |   1 +
 criu/pie/parasite-blob.h                  |   5 +
 criu/pie/parasite-vdso.c                  |  12 +-
 criu/pie/pie-relocs.h                     |  17 +--
 images/core-x86.proto                     |  61 ++++----
 scripts/build/Dockerfile.x86_64.hdr       |   4 +
 scripts/travis-tests                      |   4 +-
 34 files changed, 835 insertions(+), 340 deletions(-)
 create mode 120000 criu/arch/x86/compat/vdso-pie-compat.c
 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 120000 criu/pie/compat/log-simple-compat.c
 create mode 120000 criu/pie/compat/parasite-compat.c
 create mode 120000 criu/pie/compat/parasite-vdso-compat.c
 create mode 120000 criu/pie/compat/util-compat.c
 create mode 120000 criu/pie/compat/util-fd-compat.c
 create mode 120000 criu/pie/compat/util-vdso-compat.c
 create mode 100644 criu/pie/parasite-blob.h

-- 
2.8.0



More information about the CRIU mailing list