[CRIU] [PATCH 08/12] build: Move everything criu related into criu directory
Cyrill Gorcunov
gorcunov at openvz.org
Mon Feb 15 04:26:55 PST 2016
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
.gitignore | 24 +-
Documentation/Makefile | 18 +-
Makefile | 408 +++++++--------------
Makefile.crtools | 94 -----
Makefile.inc | 18 -
Makefile.install | 31 ++
arch/aarch64/Makefile | 59 ---
arch/arm/Makefile | 59 ---
arch/ppc64/Makefile | 55 ---
arch/ppc64/syscalls-ppc64.sh | 57 ---
criu/Makefile | 173 +++++++++
Makefile.config => criu/Makefile.config | 43 ++-
criu/Makefile.crtools | 92 +++++
{scripts => criu}/Makefile.version | 23 +-
action-scripts.c => criu/action-scripts.c | 0
aio.c => criu/aio.c | 0
criu/arch/aarch64/Makefile | 7 +
criu/arch/aarch64/Makefile.syscalls | 50 +++
{arch/arm => criu/arch/aarch64}/cpu.c | 0
{arch => criu/arch}/aarch64/crtools.c | 0
{arch => criu/arch}/aarch64/include/asm/atomic.h | 0
.../arm => criu/arch/aarch64}/include/asm/bitops.h | 0
.../arch/aarch64}/include/asm/bitsperlong.h | 0
.../ppc64 => criu/arch/aarch64}/include/asm/cpu.h | 0
{arch => criu/arch}/aarch64/include/asm/dump.h | 0
.../ppc64 => criu/arch/aarch64}/include/asm/fpu.h | 0
{arch/x86 => criu/arch/aarch64}/include/asm/int.h | 0
.../arch/aarch64}/include/asm/linkage.h | 0
{arch => criu/arch}/aarch64/include/asm/page.h | 0
.../arch}/aarch64/include/asm/parasite-syscall.h | 0
{arch => criu/arch}/aarch64/include/asm/parasite.h | 0
.../arch/aarch64}/include/asm/processor-flags.h | 0
{arch => criu/arch}/aarch64/include/asm/restore.h | 0
{arch => criu/arch}/aarch64/include/asm/restorer.h | 0
.../arm => criu/arch/aarch64}/include/asm/string.h | 0
.../arch}/aarch64/include/asm/syscall-aux.S | 0
.../arch}/aarch64/include/asm/syscall-aux.h | 0
{arch => criu/arch}/aarch64/include/asm/types.h | 0
{arch => criu/arch}/aarch64/include/asm/vdso.h | 0
{arch => criu/arch}/aarch64/intraprocedure.S | 0
{arch => criu/arch}/aarch64/parasite-head.S | 0
{arch => criu/arch}/aarch64/restorer.c | 0
.../arch/aarch64/syscalls}/syscall-common.S | 0
criu/arch/aarch64/syscalls/syscall.def | 1 +
{arch => criu/arch}/aarch64/vdso-pie.c | 0
criu/arch/arm/Makefile | 6 +
criu/arch/arm/Makefile.syscalls | 50 +++
{arch/aarch64 => criu/arch/arm}/cpu.c | 0
{arch => criu/arch}/arm/crtools.c | 0
{arch => criu/arch}/arm/include/asm/atomic.h | 0
.../aarch64 => criu/arch/arm}/include/asm/bitops.h | 0
{arch => criu/arch}/arm/include/asm/bitsperlong.h | 0
{arch => criu/arch}/arm/include/asm/cpu.h | 0
{arch => criu/arch}/arm/include/asm/dump.h | 0
{arch => criu/arch}/arm/include/asm/fpu.h | 0
{arch/ppc64 => criu/arch/arm}/include/asm/int.h | 0
.../arch/arm}/include/asm/linkage.h | 0
{arch/x86 => criu/arch/arm}/include/asm/page.h | 0
.../arch}/arm/include/asm/parasite-syscall.h | 0
{arch => criu/arch}/arm/include/asm/parasite.h | 0
.../arch}/arm/include/asm/processor-flags.h | 0
{arch => criu/arch}/arm/include/asm/processor.h | 0
{arch => criu/arch}/arm/include/asm/restore.h | 0
{arch => criu/arch}/arm/include/asm/restorer.h | 0
.../aarch64 => criu/arch/arm}/include/asm/string.h | 0
{arch => criu/arch}/arm/include/asm/syscall-aux.S | 0
{arch => criu/arch}/arm/include/asm/syscall-aux.h | 0
{arch => criu/arch}/arm/include/asm/types.h | 0
{arch => criu/arch}/arm/parasite-head.S | 0
{arch => criu/arch}/arm/restorer.c | 0
.../arch/arm/syscalls}/syscall-common.S | 0
{arch/arm => criu/arch/arm/syscalls}/syscall.def | 0
{arch => criu/arch}/arm/uidiv.S | 0
criu/arch/ppc64/Makefile | 6 +
criu/arch/ppc64/Makefile.syscalls | 50 +++
{arch => criu/arch}/ppc64/cpu.c | 0
{arch => criu/arch}/ppc64/crtools.c | 0
{arch => criu/arch}/ppc64/include/asm/atomic.h | 0
{arch => criu/arch}/ppc64/include/asm/bitops.h | 0
.../arch/ppc64}/include/asm/bitsperlong.h | 0
{arch => criu/arch}/ppc64/include/asm/cmpxchg.h | 0
.../aarch64 => criu/arch/ppc64}/include/asm/cpu.h | 0
{arch/x86 => criu/arch/ppc64}/include/asm/dump.h | 0
.../aarch64 => criu/arch/ppc64}/include/asm/fpu.h | 0
{arch/arm => criu/arch/ppc64}/include/asm/int.h | 0
{arch => criu/arch}/ppc64/include/asm/linkage.h | 0
{arch => criu/arch}/ppc64/include/asm/page.h | 0
.../arch}/ppc64/include/asm/parasite-syscall.h | 0
{arch => criu/arch}/ppc64/include/asm/parasite.h | 0
.../x86 => criu/arch/ppc64}/include/asm/prlimit.h | 0
.../arch/ppc64}/include/asm/processor-flags.h | 0
{arch => criu/arch}/ppc64/include/asm/restore.h | 0
{arch => criu/arch}/ppc64/include/asm/restorer.h | 0
{arch => criu/arch}/ppc64/include/asm/string.h | 0
{arch => criu/arch}/ppc64/include/asm/types.h | 0
{arch => criu/arch}/ppc64/include/asm/vdso.h | 0
{arch => criu/arch}/ppc64/memcmp_64.S | 0
{arch => criu/arch}/ppc64/memcpy_power7.S | 0
{arch => criu/arch}/ppc64/misc.S | 0
{arch => criu/arch}/ppc64/parasite-head.S | 0
{arch => criu/arch}/ppc64/restorer.c | 0
.../arch/ppc64/syscalls}/syscall-common-ppc64.S | 0
.../arch/ppc64/syscalls/syscall-ppc64.tbl | 0
{arch => criu/arch}/ppc64/vdso-pie.c | 0
{arch => criu/arch}/ppc64/vdso-trampoline.S | 0
.../arch}/scripts/arm/gen-sys-exec-tbl.pl | 0
{arch => criu/arch}/scripts/arm/gen-syscalls.pl | 0
criu/arch/x86/Makefile | 7 +
.../Makefile => criu/arch/x86/Makefile.syscalls | 71 ++--
{arch => criu/arch}/x86/cpu.c | 0
{arch => criu/arch}/x86/crtools.c | 0
{arch => criu/arch}/x86/include/asm/atomic.h | 0
{arch => criu/arch}/x86/include/asm/bitops.h | 0
{arch => criu/arch}/x86/include/asm/bitsperlong.h | 0
{arch => criu/arch}/x86/include/asm/cmpxchg.h | 0
{arch => criu/arch}/x86/include/asm/cpu.h | 0
{arch/ppc64 => criu/arch/x86}/include/asm/dump.h | 0
{arch => criu/arch}/x86/include/asm/fpu.h | 0
{arch/aarch64 => criu/arch/x86}/include/asm/int.h | 0
{arch => criu/arch}/x86/include/asm/linkage.h | 0
{arch/arm => criu/arch/x86}/include/asm/page.h | 0
.../arch}/x86/include/asm/parasite-syscall.h | 0
{arch => criu/arch}/x86/include/asm/parasite.h | 0
.../ppc64 => criu/arch/x86}/include/asm/prlimit.h | 0
.../arch}/x86/include/asm/processor-flags.h | 0
{arch => criu/arch}/x86/include/asm/restore.h | 0
{arch => criu/arch}/x86/include/asm/restorer.h | 0
{arch => criu/arch}/x86/include/asm/string.h | 0
{arch => criu/arch}/x86/include/asm/syscall32.h | 0
{arch => criu/arch}/x86/include/asm/types.h | 0
{arch => criu/arch}/x86/include/asm/vdso.h | 0
{arch => criu/arch}/x86/parasite-head.S | 0
{arch => criu/arch}/x86/prlimit.c | 0
{arch => criu/arch}/x86/restorer.c | 0
.../arch}/x86/syscalls/syscall-common-x86-32.S | 0
.../arch}/x86/syscalls/syscall-common-x86-64.S | 0
{arch => criu/arch}/x86/syscalls/syscall32.c | 0
{arch => criu/arch}/x86/syscalls/syscall_32.tbl | 0
{arch => criu/arch}/x86/syscalls/syscall_64.tbl | 0
{arch => criu/arch}/x86/vdso-pie.c | 0
bfd.c => criu/bfd.c | 0
bitmap.c => criu/bitmap.c | 0
cgroup.c => criu/cgroup.c | 0
cr-check.c => criu/cr-check.c | 0
cr-dedup.c => criu/cr-dedup.c | 0
cr-dump.c => criu/cr-dump.c | 0
cr-errno.c => criu/cr-errno.c | 0
cr-exec.c => criu/cr-exec.c | 0
cr-restore.c => criu/cr-restore.c | 0
cr-service.c => criu/cr-service.c | 0
cr-show.c => criu/cr-show.c | 0
crtools.c => criu/crtools.c | 0
eventfd.c => criu/eventfd.c | 0
eventpoll.c => criu/eventpoll.c | 0
fault-injection.c => criu/fault-injection.c | 0
fifo.c => criu/fifo.c | 0
file-ids.c => criu/file-ids.c | 0
file-lock.c => criu/file-lock.c | 0
files-ext.c => criu/files-ext.c | 0
files-reg.c => criu/files-reg.c | 0
files.c => criu/files.c | 0
fsnotify.c => criu/fsnotify.c | 0
image-desc.c => criu/image-desc.c | 0
image.c => criu/image.c | 0
{include => criu/include}/action-scripts.h | 0
{include => criu/include}/aio.h | 0
{include => criu/include}/asm-generic/bitops.h | 0
{include => criu/include}/asm-generic/int.h | 0
{include => criu/include}/asm-generic/string.h | 0
{include => criu/include}/asm-generic/vdso.h | 0
{include => criu/include}/bfd.h | 0
{include => criu/include}/bitmap.h | 0
{include => criu/include}/bug.h | 0
{include => criu/include}/cgroup.h | 0
{include => criu/include}/compiler.h | 0
{include => criu/include}/config-base.h | 0
{include => criu/include}/cpu.h | 0
{include => criu/include}/cr-errno.h | 0
{include => criu/include}/cr-service-const.h | 0
{include => criu/include}/cr-service.h | 0
{include => criu/include}/cr-show.h | 0
{include => criu/include}/cr_options.h | 0
{include => criu/include}/criu-log.h | 0
{include => criu/include}/criu-plugin.h | 0
{include => criu/include}/crtools.h | 0
{include => criu/include}/err.h | 0
{include => criu/include}/errno.h | 0
{include => criu/include}/eventfd.h | 0
{include => criu/include}/eventpoll.h | 0
{include => criu/include}/fault-injection.h | 0
{include => criu/include}/fcntl.h | 0
{include => criu/include}/fifo.h | 0
{include => criu/include}/file-ids.h | 0
{include => criu/include}/file-lock.h | 0
{include => criu/include}/files-reg.h | 0
{include => criu/include}/files.h | 0
{include => criu/include}/fs-magic.h | 0
{include => criu/include}/fsnotify.h | 0
{include => criu/include}/image-desc.h | 0
{include => criu/include}/image.h | 0
{include => criu/include}/imgset.h | 0
{include => criu/include}/inet_diag.h | 0
{include => criu/include}/ipc_ns.h | 0
{include => criu/include}/irmap.h | 0
{include => criu/include}/kcmp-ids.h | 0
{include => criu/include}/kcmp.h | 0
{include => criu/include}/kerndat.h | 0
{include => criu/include}/libnetlink.h | 0
{include => criu/include}/list.h | 0
{include => criu/include}/lock.h | 0
{include => criu/include}/log.h | 0
{include => criu/include}/lsm.h | 0
{include => criu/include}/magic.h | 0
{include => criu/include}/mem.h | 0
{include => criu/include}/mman.h | 0
{include => criu/include}/mount.h | 0
{include => criu/include}/namespaces.h | 0
{include => criu/include}/net.h | 0
{include => criu/include}/netfilter.h | 0
{include => criu/include}/netlink_diag.h | 0
{include => criu/include}/packet_diag.h | 0
{include => criu/include}/page-pipe.h | 0
{include => criu/include}/page-read.h | 0
{include => criu/include}/page-xfer.h | 0
{include => criu/include}/pagemap-cache.h | 0
{include => criu/include}/parasite-syscall.h | 0
{include => criu/include}/parasite-vdso.h | 0
{include => criu/include}/parasite.h | 0
{include => criu/include}/pid.h | 0
{include => criu/include}/pipes.h | 0
{include => criu/include}/plugin.h | 0
{include => criu/include}/posix-timer.h | 0
{include => criu/include}/prctl.h | 0
{include => criu/include}/proc_parse.h | 0
{include => criu/include}/protobuf-desc.h | 0
{include => criu/include}/protobuf.h | 0
{include => criu/include}/pstree.h | 0
{include => criu/include}/ptrace.h | 0
{include => criu/include}/rbtree.h | 0
{include => criu/include}/restorer.h | 0
{include => criu/include}/rst-malloc.h | 0
{include => criu/include}/rst_info.h | 0
{include => criu/include}/seccomp.h | 0
{include => criu/include}/seize.h | 0
{include => criu/include}/servicefd.h | 0
{include => criu/include}/setproctitle.h | 0
{include => criu/include}/shmem.h | 0
{include => criu/include}/sigframe.h | 0
{include => criu/include}/signalfd.h | 0
{include => criu/include}/sk-inet.h | 0
{include => criu/include}/sk-packet.h | 0
{include => criu/include}/sk-queue.h | 0
{include => criu/include}/sockets.h | 0
{include => criu/include}/stats.h | 0
{include => criu/include}/string.h | 0
{include => criu/include}/syscall-types.h | 0
{include => criu/include}/sysctl.h | 0
{include => criu/include}/sysfs_parse.h | 0
{include => criu/include}/timerfd.h | 0
{include => criu/include}/tty.h | 0
{include => criu/include}/tun.h | 0
{include => criu/include}/unix_diag.h | 0
{include => criu/include}/util-pie.h | 0
{include => criu/include}/util-vdso.h | 0
{include => criu/include}/util.h | 0
{include => criu/include}/uts_ns.h | 0
{include => criu/include}/vdso.h | 0
{include => criu/include}/vma.h | 0
{include => criu/include}/xmalloc.h | 0
ipc_ns.c => criu/ipc_ns.c | 0
irmap.c => criu/irmap.c | 0
kcmp-ids.c => criu/kcmp-ids.c | 0
kerndat.c => criu/kerndat.c | 0
libnetlink.c => criu/libnetlink.c | 0
log.c => criu/log.c | 0
lsm.c => criu/lsm.c | 0
mem.c => criu/mem.c | 0
mount.c => criu/mount.c | 0
namespaces.c => criu/namespaces.c | 0
net.c => criu/net.c | 0
netfilter.c => criu/netfilter.c | 0
page-pipe.c => criu/page-pipe.c | 0
page-read.c => criu/page-read.c | 0
page-xfer.c => criu/page-xfer.c | 0
pagemap-cache.c => criu/pagemap-cache.c | 0
parasite-syscall.c => criu/parasite-syscall.c | 0
criu/pie-util-fd.c | 1 +
criu/pie-util-vdso.c | 1 +
criu/pie-util.c | 1 +
{pie => criu/pie}/Makefile | 91 ++---
criu/pie/Makefile.library | 43 +++
{pie => criu/pie}/log-simple.c | 0
{pie => criu/pie}/parasite-vdso.c | 0
{pie => criu/pie}/parasite.c | 0
{pie => criu/pie}/pie-reloc.lds.S.in | 0
{pie => criu/pie}/pie-relocs.c | 0
{pie => criu/pie}/pie-relocs.h | 0
{pie => criu/pie}/pie.lds.S.in | 0
{pie => criu/pie}/piegen/Makefile | 0
{pie => criu/pie}/piegen/elf-ppc64.c | 0
{pie => criu/pie}/piegen/elf-x86-32.c | 0
{pie => criu/pie}/piegen/elf-x86-64.c | 0
{pie => criu/pie}/piegen/elf.c | 0
{pie => criu/pie}/piegen/main.c | 0
{pie => criu/pie}/piegen/piegen.h | 0
{pie => criu/pie}/piegen/uapi/types.h | 0
{pie => criu/pie}/restorer.c | 0
{pie => criu/pie}/util-fd.c | 0
{pie => criu/pie}/util-vdso.c | 0
{pie => criu/pie}/util.c | 0
pipes.c => criu/pipes.c | 0
plugin.c => criu/plugin.c | 0
proc_parse.c => criu/proc_parse.c | 0
protobuf-desc.c => criu/protobuf-desc.c | 0
protobuf.c => criu/protobuf.c | 0
pstree.c => criu/pstree.c | 0
ptrace.c => criu/ptrace.c | 0
rbtree.c => criu/rbtree.c | 0
rst-malloc.c => criu/rst-malloc.c | 0
seccomp.c => criu/seccomp.c | 0
seize.c => criu/seize.c | 0
shmem.c => criu/shmem.c | 0
sigframe.c => criu/sigframe.c | 0
signalfd.c => criu/signalfd.c | 0
sk-inet.c => criu/sk-inet.c | 0
sk-netlink.c => criu/sk-netlink.c | 0
sk-packet.c => criu/sk-packet.c | 0
sk-queue.c => criu/sk-queue.c | 0
sk-tcp.c => criu/sk-tcp.c | 0
sk-unix.c => criu/sk-unix.c | 0
sockets.c => criu/sockets.c | 0
stats.c => criu/stats.c | 0
string.c => criu/string.c | 0
sysctl.c => criu/sysctl.c | 0
sysfs_parse.c => criu/sysfs_parse.c | 0
timerfd.c => criu/timerfd.c | 0
tty.c => criu/tty.c | 0
tun.c => criu/tun.c | 0
util.c => criu/util.c | 0
uts_ns.c => criu/uts_ns.c | 0
vdso.c => criu/vdso.c | 0
crtools | 1 -
images/Makefile | 5 +-
lib/Makefile | 6 +-
lib/c/Makefile | 10 +-
lib/py/Makefile | 2 +-
lib/py/images/Makefile | 19 +-
scripts/Makefile.build | 251 -------------
scripts/Makefile.rules | 52 ---
349 files changed, 761 insertions(+), 1124 deletions(-)
delete mode 100644 Makefile.crtools
delete mode 100644 Makefile.inc
create mode 100644 Makefile.install
delete mode 100644 arch/aarch64/Makefile
delete mode 100644 arch/arm/Makefile
delete mode 100644 arch/ppc64/Makefile
delete mode 100644 arch/ppc64/syscalls-ppc64.sh
create mode 100644 criu/Makefile
rename Makefile.config => criu/Makefile.config (50%)
create mode 100644 criu/Makefile.crtools
rename {scripts => criu}/Makefile.version (63%)
rename action-scripts.c => criu/action-scripts.c (100%)
rename aio.c => criu/aio.c (100%)
create mode 100644 criu/arch/aarch64/Makefile
create mode 100644 criu/arch/aarch64/Makefile.syscalls
rename {arch/arm => criu/arch/aarch64}/cpu.c (100%)
rename {arch => criu/arch}/aarch64/crtools.c (100%)
rename {arch => criu/arch}/aarch64/include/asm/atomic.h (100%)
rename {arch/arm => criu/arch/aarch64}/include/asm/bitops.h (100%)
rename {arch/ppc64 => criu/arch/aarch64}/include/asm/bitsperlong.h (100%)
rename {arch/ppc64 => criu/arch/aarch64}/include/asm/cpu.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/dump.h (100%)
rename {arch/ppc64 => criu/arch/aarch64}/include/asm/fpu.h (100%)
rename {arch/x86 => criu/arch/aarch64}/include/asm/int.h (100%)
rename {arch/arm => criu/arch/aarch64}/include/asm/linkage.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/page.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/parasite-syscall.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/parasite.h (100%)
rename {arch/ppc64 => criu/arch/aarch64}/include/asm/processor-flags.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/restore.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/restorer.h (100%)
rename {arch/arm => criu/arch/aarch64}/include/asm/string.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/syscall-aux.S (100%)
rename {arch => criu/arch}/aarch64/include/asm/syscall-aux.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/types.h (100%)
rename {arch => criu/arch}/aarch64/include/asm/vdso.h (100%)
rename {arch => criu/arch}/aarch64/intraprocedure.S (100%)
rename {arch => criu/arch}/aarch64/parasite-head.S (100%)
rename {arch => criu/arch}/aarch64/restorer.c (100%)
rename {arch/aarch64 => criu/arch/aarch64/syscalls}/syscall-common.S (100%)
create mode 120000 criu/arch/aarch64/syscalls/syscall.def
rename {arch => criu/arch}/aarch64/vdso-pie.c (100%)
create mode 100644 criu/arch/arm/Makefile
create mode 100644 criu/arch/arm/Makefile.syscalls
rename {arch/aarch64 => criu/arch/arm}/cpu.c (100%)
rename {arch => criu/arch}/arm/crtools.c (100%)
rename {arch => criu/arch}/arm/include/asm/atomic.h (100%)
rename {arch/aarch64 => criu/arch/arm}/include/asm/bitops.h (100%)
rename {arch => criu/arch}/arm/include/asm/bitsperlong.h (100%)
rename {arch => criu/arch}/arm/include/asm/cpu.h (100%)
rename {arch => criu/arch}/arm/include/asm/dump.h (100%)
rename {arch => criu/arch}/arm/include/asm/fpu.h (100%)
rename {arch/ppc64 => criu/arch/arm}/include/asm/int.h (100%)
rename {arch/aarch64 => criu/arch/arm}/include/asm/linkage.h (100%)
rename {arch/x86 => criu/arch/arm}/include/asm/page.h (100%)
rename {arch => criu/arch}/arm/include/asm/parasite-syscall.h (100%)
rename {arch => criu/arch}/arm/include/asm/parasite.h (100%)
rename {arch => criu/arch}/arm/include/asm/processor-flags.h (100%)
rename {arch => criu/arch}/arm/include/asm/processor.h (100%)
rename {arch => criu/arch}/arm/include/asm/restore.h (100%)
rename {arch => criu/arch}/arm/include/asm/restorer.h (100%)
rename {arch/aarch64 => criu/arch/arm}/include/asm/string.h (100%)
rename {arch => criu/arch}/arm/include/asm/syscall-aux.S (100%)
rename {arch => criu/arch}/arm/include/asm/syscall-aux.h (100%)
rename {arch => criu/arch}/arm/include/asm/types.h (100%)
rename {arch => criu/arch}/arm/parasite-head.S (100%)
rename {arch => criu/arch}/arm/restorer.c (100%)
rename {arch/arm => criu/arch/arm/syscalls}/syscall-common.S (100%)
rename {arch/arm => criu/arch/arm/syscalls}/syscall.def (100%)
rename {arch => criu/arch}/arm/uidiv.S (100%)
create mode 100644 criu/arch/ppc64/Makefile
create mode 100644 criu/arch/ppc64/Makefile.syscalls
rename {arch => criu/arch}/ppc64/cpu.c (100%)
rename {arch => criu/arch}/ppc64/crtools.c (100%)
rename {arch => criu/arch}/ppc64/include/asm/atomic.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/bitops.h (100%)
rename {arch/aarch64 => criu/arch/ppc64}/include/asm/bitsperlong.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/cmpxchg.h (100%)
rename {arch/aarch64 => criu/arch/ppc64}/include/asm/cpu.h (100%)
rename {arch/x86 => criu/arch/ppc64}/include/asm/dump.h (100%)
rename {arch/aarch64 => criu/arch/ppc64}/include/asm/fpu.h (100%)
rename {arch/arm => criu/arch/ppc64}/include/asm/int.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/linkage.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/page.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/parasite-syscall.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/parasite.h (100%)
rename {arch/x86 => criu/arch/ppc64}/include/asm/prlimit.h (100%)
rename {arch/aarch64 => criu/arch/ppc64}/include/asm/processor-flags.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/restore.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/restorer.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/string.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/types.h (100%)
rename {arch => criu/arch}/ppc64/include/asm/vdso.h (100%)
rename {arch => criu/arch}/ppc64/memcmp_64.S (100%)
rename {arch => criu/arch}/ppc64/memcpy_power7.S (100%)
rename {arch => criu/arch}/ppc64/misc.S (100%)
rename {arch => criu/arch}/ppc64/parasite-head.S (100%)
rename {arch => criu/arch}/ppc64/restorer.c (100%)
rename {arch/ppc64 => criu/arch/ppc64/syscalls}/syscall-common-ppc64.S (100%)
rename arch/ppc64/syscall-ppc64.def => criu/arch/ppc64/syscalls/syscall-ppc64.tbl (100%)
rename {arch => criu/arch}/ppc64/vdso-pie.c (100%)
rename {arch => criu/arch}/ppc64/vdso-trampoline.S (100%)
rename {arch => criu/arch}/scripts/arm/gen-sys-exec-tbl.pl (100%)
rename {arch => criu/arch}/scripts/arm/gen-syscalls.pl (100%)
create mode 100644 criu/arch/x86/Makefile
rename arch/x86/Makefile => criu/arch/x86/Makefile.syscalls (56%)
rename {arch => criu/arch}/x86/cpu.c (100%)
rename {arch => criu/arch}/x86/crtools.c (100%)
rename {arch => criu/arch}/x86/include/asm/atomic.h (100%)
rename {arch => criu/arch}/x86/include/asm/bitops.h (100%)
rename {arch => criu/arch}/x86/include/asm/bitsperlong.h (100%)
rename {arch => criu/arch}/x86/include/asm/cmpxchg.h (100%)
rename {arch => criu/arch}/x86/include/asm/cpu.h (100%)
rename {arch/ppc64 => criu/arch/x86}/include/asm/dump.h (100%)
rename {arch => criu/arch}/x86/include/asm/fpu.h (100%)
rename {arch/aarch64 => criu/arch/x86}/include/asm/int.h (100%)
rename {arch => criu/arch}/x86/include/asm/linkage.h (100%)
rename {arch/arm => criu/arch/x86}/include/asm/page.h (100%)
rename {arch => criu/arch}/x86/include/asm/parasite-syscall.h (100%)
rename {arch => criu/arch}/x86/include/asm/parasite.h (100%)
rename {arch/ppc64 => criu/arch/x86}/include/asm/prlimit.h (100%)
rename {arch => criu/arch}/x86/include/asm/processor-flags.h (100%)
rename {arch => criu/arch}/x86/include/asm/restore.h (100%)
rename {arch => criu/arch}/x86/include/asm/restorer.h (100%)
rename {arch => criu/arch}/x86/include/asm/string.h (100%)
rename {arch => criu/arch}/x86/include/asm/syscall32.h (100%)
rename {arch => criu/arch}/x86/include/asm/types.h (100%)
rename {arch => criu/arch}/x86/include/asm/vdso.h (100%)
rename {arch => criu/arch}/x86/parasite-head.S (100%)
rename {arch => criu/arch}/x86/prlimit.c (100%)
rename {arch => criu/arch}/x86/restorer.c (100%)
rename {arch => criu/arch}/x86/syscalls/syscall-common-x86-32.S (100%)
rename {arch => criu/arch}/x86/syscalls/syscall-common-x86-64.S (100%)
rename {arch => criu/arch}/x86/syscalls/syscall32.c (100%)
rename {arch => criu/arch}/x86/syscalls/syscall_32.tbl (100%)
rename {arch => criu/arch}/x86/syscalls/syscall_64.tbl (100%)
rename {arch => criu/arch}/x86/vdso-pie.c (100%)
rename bfd.c => criu/bfd.c (100%)
rename bitmap.c => criu/bitmap.c (100%)
rename cgroup.c => criu/cgroup.c (100%)
rename cr-check.c => criu/cr-check.c (100%)
rename cr-dedup.c => criu/cr-dedup.c (100%)
rename cr-dump.c => criu/cr-dump.c (100%)
rename cr-errno.c => criu/cr-errno.c (100%)
rename cr-exec.c => criu/cr-exec.c (100%)
rename cr-restore.c => criu/cr-restore.c (100%)
rename cr-service.c => criu/cr-service.c (100%)
rename cr-show.c => criu/cr-show.c (100%)
rename crtools.c => criu/crtools.c (100%)
rename eventfd.c => criu/eventfd.c (100%)
rename eventpoll.c => criu/eventpoll.c (100%)
rename fault-injection.c => criu/fault-injection.c (100%)
rename fifo.c => criu/fifo.c (100%)
rename file-ids.c => criu/file-ids.c (100%)
rename file-lock.c => criu/file-lock.c (100%)
rename files-ext.c => criu/files-ext.c (100%)
rename files-reg.c => criu/files-reg.c (100%)
rename files.c => criu/files.c (100%)
rename fsnotify.c => criu/fsnotify.c (100%)
rename image-desc.c => criu/image-desc.c (100%)
rename image.c => criu/image.c (100%)
rename {include => criu/include}/action-scripts.h (100%)
rename {include => criu/include}/aio.h (100%)
rename {include => criu/include}/asm-generic/bitops.h (100%)
rename {include => criu/include}/asm-generic/int.h (100%)
rename {include => criu/include}/asm-generic/string.h (100%)
rename {include => criu/include}/asm-generic/vdso.h (100%)
rename {include => criu/include}/bfd.h (100%)
rename {include => criu/include}/bitmap.h (100%)
rename {include => criu/include}/bug.h (100%)
rename {include => criu/include}/cgroup.h (100%)
rename {include => criu/include}/compiler.h (100%)
rename {include => criu/include}/config-base.h (100%)
rename {include => criu/include}/cpu.h (100%)
rename {include => criu/include}/cr-errno.h (100%)
rename {include => criu/include}/cr-service-const.h (100%)
rename {include => criu/include}/cr-service.h (100%)
rename {include => criu/include}/cr-show.h (100%)
rename {include => criu/include}/cr_options.h (100%)
rename {include => criu/include}/criu-log.h (100%)
rename {include => criu/include}/criu-plugin.h (100%)
rename {include => criu/include}/crtools.h (100%)
rename {include => criu/include}/err.h (100%)
rename {include => criu/include}/errno.h (100%)
rename {include => criu/include}/eventfd.h (100%)
rename {include => criu/include}/eventpoll.h (100%)
rename {include => criu/include}/fault-injection.h (100%)
rename {include => criu/include}/fcntl.h (100%)
rename {include => criu/include}/fifo.h (100%)
rename {include => criu/include}/file-ids.h (100%)
rename {include => criu/include}/file-lock.h (100%)
rename {include => criu/include}/files-reg.h (100%)
rename {include => criu/include}/files.h (100%)
rename {include => criu/include}/fs-magic.h (100%)
rename {include => criu/include}/fsnotify.h (100%)
rename {include => criu/include}/image-desc.h (100%)
rename {include => criu/include}/image.h (100%)
rename {include => criu/include}/imgset.h (100%)
rename {include => criu/include}/inet_diag.h (100%)
rename {include => criu/include}/ipc_ns.h (100%)
rename {include => criu/include}/irmap.h (100%)
rename {include => criu/include}/kcmp-ids.h (100%)
rename {include => criu/include}/kcmp.h (100%)
rename {include => criu/include}/kerndat.h (100%)
rename {include => criu/include}/libnetlink.h (100%)
rename {include => criu/include}/list.h (100%)
rename {include => criu/include}/lock.h (100%)
rename {include => criu/include}/log.h (100%)
rename {include => criu/include}/lsm.h (100%)
rename {include => criu/include}/magic.h (100%)
rename {include => criu/include}/mem.h (100%)
rename {include => criu/include}/mman.h (100%)
rename {include => criu/include}/mount.h (100%)
rename {include => criu/include}/namespaces.h (100%)
rename {include => criu/include}/net.h (100%)
rename {include => criu/include}/netfilter.h (100%)
rename {include => criu/include}/netlink_diag.h (100%)
rename {include => criu/include}/packet_diag.h (100%)
rename {include => criu/include}/page-pipe.h (100%)
rename {include => criu/include}/page-read.h (100%)
rename {include => criu/include}/page-xfer.h (100%)
rename {include => criu/include}/pagemap-cache.h (100%)
rename {include => criu/include}/parasite-syscall.h (100%)
rename {include => criu/include}/parasite-vdso.h (100%)
rename {include => criu/include}/parasite.h (100%)
rename {include => criu/include}/pid.h (100%)
rename {include => criu/include}/pipes.h (100%)
rename {include => criu/include}/plugin.h (100%)
rename {include => criu/include}/posix-timer.h (100%)
rename {include => criu/include}/prctl.h (100%)
rename {include => criu/include}/proc_parse.h (100%)
rename {include => criu/include}/protobuf-desc.h (100%)
rename {include => criu/include}/protobuf.h (100%)
rename {include => criu/include}/pstree.h (100%)
rename {include => criu/include}/ptrace.h (100%)
rename {include => criu/include}/rbtree.h (100%)
rename {include => criu/include}/restorer.h (100%)
rename {include => criu/include}/rst-malloc.h (100%)
rename {include => criu/include}/rst_info.h (100%)
rename {include => criu/include}/seccomp.h (100%)
rename {include => criu/include}/seize.h (100%)
rename {include => criu/include}/servicefd.h (100%)
rename {include => criu/include}/setproctitle.h (100%)
rename {include => criu/include}/shmem.h (100%)
rename {include => criu/include}/sigframe.h (100%)
rename {include => criu/include}/signalfd.h (100%)
rename {include => criu/include}/sk-inet.h (100%)
rename {include => criu/include}/sk-packet.h (100%)
rename {include => criu/include}/sk-queue.h (100%)
rename {include => criu/include}/sockets.h (100%)
rename {include => criu/include}/stats.h (100%)
rename {include => criu/include}/string.h (100%)
rename {include => criu/include}/syscall-types.h (100%)
rename {include => criu/include}/sysctl.h (100%)
rename {include => criu/include}/sysfs_parse.h (100%)
rename {include => criu/include}/timerfd.h (100%)
rename {include => criu/include}/tty.h (100%)
rename {include => criu/include}/tun.h (100%)
rename {include => criu/include}/unix_diag.h (100%)
rename {include => criu/include}/util-pie.h (100%)
rename {include => criu/include}/util-vdso.h (100%)
rename {include => criu/include}/util.h (100%)
rename {include => criu/include}/uts_ns.h (100%)
rename {include => criu/include}/vdso.h (100%)
rename {include => criu/include}/vma.h (100%)
rename {include => criu/include}/xmalloc.h (100%)
rename ipc_ns.c => criu/ipc_ns.c (100%)
rename irmap.c => criu/irmap.c (100%)
rename kcmp-ids.c => criu/kcmp-ids.c (100%)
rename kerndat.c => criu/kerndat.c (100%)
rename libnetlink.c => criu/libnetlink.c (100%)
rename log.c => criu/log.c (100%)
rename lsm.c => criu/lsm.c (100%)
rename mem.c => criu/mem.c (100%)
rename mount.c => criu/mount.c (100%)
rename namespaces.c => criu/namespaces.c (100%)
rename net.c => criu/net.c (100%)
rename netfilter.c => criu/netfilter.c (100%)
rename page-pipe.c => criu/page-pipe.c (100%)
rename page-read.c => criu/page-read.c (100%)
rename page-xfer.c => criu/page-xfer.c (100%)
rename pagemap-cache.c => criu/pagemap-cache.c (100%)
rename parasite-syscall.c => criu/parasite-syscall.c (100%)
create mode 120000 criu/pie-util-fd.c
create mode 120000 criu/pie-util-vdso.c
create mode 120000 criu/pie-util.c
rename {pie => criu/pie}/Makefile (50%)
create mode 100644 criu/pie/Makefile.library
rename {pie => criu/pie}/log-simple.c (100%)
rename {pie => criu/pie}/parasite-vdso.c (100%)
rename {pie => criu/pie}/parasite.c (100%)
rename {pie => criu/pie}/pie-reloc.lds.S.in (100%)
rename {pie => criu/pie}/pie-relocs.c (100%)
rename {pie => criu/pie}/pie-relocs.h (100%)
rename {pie => criu/pie}/pie.lds.S.in (100%)
rename {pie => criu/pie}/piegen/Makefile (100%)
rename {pie => criu/pie}/piegen/elf-ppc64.c (100%)
rename {pie => criu/pie}/piegen/elf-x86-32.c (100%)
rename {pie => criu/pie}/piegen/elf-x86-64.c (100%)
rename {pie => criu/pie}/piegen/elf.c (100%)
rename {pie => criu/pie}/piegen/main.c (100%)
rename {pie => criu/pie}/piegen/piegen.h (100%)
rename {pie => criu/pie}/piegen/uapi/types.h (100%)
rename {pie => criu/pie}/restorer.c (100%)
rename {pie => criu/pie}/util-fd.c (100%)
rename {pie => criu/pie}/util-vdso.c (100%)
rename {pie => criu/pie}/util.c (100%)
rename pipes.c => criu/pipes.c (100%)
rename plugin.c => criu/plugin.c (100%)
rename proc_parse.c => criu/proc_parse.c (100%)
rename protobuf-desc.c => criu/protobuf-desc.c (100%)
rename protobuf.c => criu/protobuf.c (100%)
rename pstree.c => criu/pstree.c (100%)
rename ptrace.c => criu/ptrace.c (100%)
rename rbtree.c => criu/rbtree.c (100%)
rename rst-malloc.c => criu/rst-malloc.c (100%)
rename seccomp.c => criu/seccomp.c (100%)
rename seize.c => criu/seize.c (100%)
rename shmem.c => criu/shmem.c (100%)
rename sigframe.c => criu/sigframe.c (100%)
rename signalfd.c => criu/signalfd.c (100%)
rename sk-inet.c => criu/sk-inet.c (100%)
rename sk-netlink.c => criu/sk-netlink.c (100%)
rename sk-packet.c => criu/sk-packet.c (100%)
rename sk-queue.c => criu/sk-queue.c (100%)
rename sk-tcp.c => criu/sk-tcp.c (100%)
rename sk-unix.c => criu/sk-unix.c (100%)
rename sockets.c => criu/sockets.c (100%)
rename stats.c => criu/stats.c (100%)
rename string.c => criu/string.c (100%)
rename sysctl.c => criu/sysctl.c (100%)
rename sysfs_parse.c => criu/sysfs_parse.c (100%)
rename timerfd.c => criu/timerfd.c (100%)
rename tty.c => criu/tty.c (100%)
rename tun.c => criu/tun.c (100%)
rename util.c => criu/util.c (100%)
rename uts_ns.c => criu/uts_ns.c (100%)
rename vdso.c => criu/vdso.c (100%)
delete mode 120000 crtools
delete mode 100644 scripts/Makefile.build
delete mode 100644 scripts/Makefile.rules
diff --git a/.gitignore b/.gitignore
index d1ee8415e8d4..c46bc5f75ad4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,31 +6,15 @@
*.out
*.swp
*.swo
-*-blob.h
*.so
.git-ignore
*.patch
*.pyc
-criu
cscope*
tags
TAGS
-Makefile.local
-syscall-x86-64.S
-include/syscall.h
-include/syscall-codes.h
-protobuf/*.c
-protobuf/*.h
-protobuf/google/protobuf/*.c
-protobuf/google/protobuf/*.h
-include/version.h
-arch/x86/sys-exec-tbl.c
-arch/x86/syscalls.S
-pie/pie.lds.S
-pie/piegen/piegen
-include/config.h
-protobuf-desc-gen.h
-criu.pc
-build
+images/*.c
+images/*.h
+images/google/protobuf/*.c
+images/google/protobuf/*.h
.gitid
-usr/
diff --git a/Documentation/Makefile b/Documentation/Makefile
index e236635e5b20..77e3a26bb3ad 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -1,4 +1,5 @@
--include ../Makefile.inc
+include $(__nmk_dir)/include.mk
+include $(__nmk_dir)/macro.mk
ASCIIDOC := asciidoc
A2X := a2x
@@ -9,10 +10,9 @@ XMLS := $(patsubst %.txt,%.xml,$(SRC))
MANS := $(patsubst %.txt,%.8,$(SRC))
MAN8DIR := $(MANDIR)/man8
-GROFF=groff
-PAPER=$(shell paperconf 2>/dev/null || echo letter)
-GROFF_OPTS := -Tps -t -dpaper=$(PAPER) -P-p$(PAPER) \
- -man -msafer -rC1 -rD1 -rS11
+GROFF :=groff
+PAPER :=$(shell paperconf 2>/dev/null || echo letter)
+GROFF_OPTS := -Tps -t -dpaper=$(PAPER) -P-p$(PAPER) -man -msafer -rC1 -rD1 -rS11
PSS := $(MANS:%.8=%.ps)
PDFS := $(MANS:%.8=%.pdf)
@@ -27,20 +27,20 @@ check:
done
%.8: %.txt
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) $(ASCIIDOC) -b docbook -d manpage -o $(patsubst %.8,%.xml,$@) $<
$(Q) $(XMLTO) man --skip-validation $(patsubst %.8,%.xml,$@) 2>/dev/null
%.ps: %.8
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) $(GROFF) $(GROFF_OPTS) $^ > $@
%.pdf: %.ps
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) ps2pdf $< $@
clean:
- $(E) " CLEAN "
+ $(call msg-clean, "Documentation")
$(Q) rm -f $(XMLS) $(MANS) $(PSS) $(PDFS)
install: $(MANS)
diff --git a/Makefile b/Makefile
index 18956b455596..9f113cccd4a4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,98 +1,52 @@
+#
# Import the build engine first
__nmk_dir=$(CURDIR)/scripts/nmk/scripts/
export __nmk_dir
include $(__nmk_dir)/include.mk
-
-VERSION_MAJOR := 1
-VERSION_MINOR := 8
-VERSION_SUBLEVEL :=
-VERSION_EXTRA :=
-VERSION_NAME :=
-VERSION_SO_MAJOR := 1
-VERSION_SO_MINOR := 0
-
-export VERSION_MAJOR VERSION_MINOR VERSION_SUBLEVEL VERSION_EXTRA VERSION_NAME
-export VERSION_SO_MAJOR VERSION_SO_MINOR
-
-#
-# FIXME zdtm building procedure requires implicit rules
-# so I can't use strict make file mode and drop completely
-# all of implicit rules, so I tuned only .SUFFIXES:
-#
-# In future zdtm makefiles need to be fixed and the line below
-# may be uncommented.
-#
-#MAKEFLAGS := -r -R
+include $(__nmk_dir)/macro.mk
#
-# Common definitions
-#
-
-FIND := find
-CSCOPE := cscope
-RM := rm -f
-LD := $(CROSS_COMPILE)ld
-CC := $(CROSS_COMPILE)gcc
-NM := $(CROSS_COMPILE)nm
-SH := bash
-MAKE := make
-OBJCOPY := $(CROSS_COMPILE)objcopy
+# To build host helpers.
HOSTCC ?= gcc
HOSTLD ?= ld
+export HOSTCC HOSTLD
CFLAGS += $(USERCFLAGS)
-HOSTCFLAGS ?= $(CFLAGS)
+export CFLAGS
-export HOSTCC
-export HOSTLD
+HOSTCFLAGS ?= $(CFLAGS)
export HOSTCFLAGS
+#
+# Where we live.
+SRC_DIR := $(CURDIR)
+export SRC_DIR
-ifeq ($(ARCH),x86_64)
- ARCH := x86
-endif
-
-ifeq ($(ARCH),x86)
- SRCARCH := x86
- DEFINES := -DCONFIG_X86_64
- LDARCH := i386:x86-64
- VDSO := y
-endif
-ifeq ($(ARCH),ia32)
- SRCARCH := x86
- DEFINES := -DCONFIG_X86_32
- LDARCH := i386
- ldflags-y += -m elf_i386
- VDSO := y
- USERCFLAGS += -m32
- PROTOUFIX := y
- export PROTOUFIX ldflags-y
-endif
+#
+# General architecture specific options.
+UNAME-M := $(shell uname -m)
+export UNAME-M
-ifeq ($(GCOV),1)
- LDFLAGS += -lgcov
- DEBUG := 1 # disable optimization if we want to measure code coverage
-%.o $(PROGRAM): override CFLAGS += --coverage -fno-exceptions -fno-inline
-endif
+ifeq ($(ARCH),arm)
+ ARMV := $(shell echo $(UNAME-M) | sed -nr 's/armv([[:digit:]]).*/\1/p; t; i7')
+ DEFINES := -DCONFIG_ARMV$(ARMV)
-ifeq ($(shell echo $(ARCH) | sed -e 's/arm.*/arm/'),arm)
- ARMV := $(shell echo $(ARCH) | sed -nr 's/armv([[:digit:]]).*/\1/p; t; i7')
- SRCARCH := arm
- DEFINES := -DCONFIG_ARMV$(ARMV)
+ USERCFLAGS += -Wa,-mimplicit-it=always
- USERCFLAGS += -Wa,-mimplicit-it=always
+ ifeq ($(ARMV),6)
+ USERCFLAGS += -march=armv6
+ endif
- ifeq ($(ARMV),6)
- USERCFLAGS += -march=armv6
- endif
+ ifeq ($(ARMV),7)
+ USERCFLAGS += -march=armv7-a
+ endif
- ifeq ($(ARMV),7)
- USERCFLAGS += -march=armv7-a
- endif
+ PROTOUFIX := y
+endif
- PROTOUFIX := y
- export PROTOUFIX
+ifeq ($(ARCH),x86)
+ DEFINES := -DCONFIG_X86_64
endif
ifeq ($(ARCH),aarch64)
@@ -103,239 +57,138 @@ endif
# The PowerPC 64 bits architecture could be big or little endian.
# They are handled in the same way.
#
-ifeq ($(shell echo $(ARCH) | sed -e 's/ppc64.*/ppc64/'),ppc64)
- ifeq ($(ARCH),ppc64)
- error := $(error ppc64 big endian not yet supported)
- endif
- SRCARCH := ppc64
- DEFINES := -DCONFIG_PPC64
- LDARCH := powerpc:common64
- VDSO := y
-endif
-
-LDARCH ?= $(SRCARCH)
+ifeq ($(ARCH),powerpc)
+ ifeq ($(UNAME-M),ppc64)
+ error := $(error ppc64 big endian not yet supported)
+ endif
-SRC_DIR ?= $(CURDIR)
-ARCH_DIR := arch/$(SRCARCH)
-
-$(if $(wildcard $(ARCH_DIR)),,$(error "The architecture $(ARCH) isn't supported"))
-
-#
-# piegen might be disabled by hands. Don't use it until
-# you know what you're doing.
-ifneq ($(filter ia32 x86 ppc64le, $(ARCH)),)
-ifneq ($(PIEGEN),no)
- piegen-y := y
- export piegen-y
-endif
+ DEFINES := -DCONFIG_PPC64
endif
-cflags-y += -iquote include -iquote pie -iquote . -I/usr/include/libnl3
-cflags-y += -iquote $(ARCH_DIR) -iquote $(ARCH_DIR)/include
-cflags-y += -fno-strict-aliasing
-export cflags-y
+export PROTOUFIX DEFINES USERCFLAGS
-LIBS := -lrt -lpthread -lprotobuf-c -ldl -lnl-3
+#
+# Independent options for all tools.
+DEFINES += -D_FILE_OFFSET_BITS=64
+DEFINES += -D_GNU_SOURCE
-DEFINES += -D_FILE_OFFSET_BITS=64
-DEFINES += -D_GNU_SOURCE
+CFLAGS += $(USERCFLAGS)
-WARNINGS := -Wall
+WARNINGS := -Wall
ifneq ($(WERROR),0)
- WARNINGS += -Werror
+ WARNINGS += -Werror
endif
ifeq ($(DEBUG),1)
- DEFINES += -DCR_DEBUG
- CFLAGS += -O0 -ggdb3
+ DEFINES += -DCR_DEBUG
+ CFLAGS += -O0 -ggdb3
else
- CFLAGS += -O2 -g
-endif
-
-ifeq ($(GMON),1)
- CFLAGS += -pg
- GMONLDOPT := -pg
-endif
-
-CFLAGS += $(WARNINGS) $(DEFINES)
-SYSCALL-LIB := $(ARCH_DIR)/syscalls.built-in.o
-ARCH-LIB := $(ARCH_DIR)/crtools.built-in.o
-CRIU-SO := libcriu
-CRIU-LIB := lib/c/$(CRIU-SO).so
-CRIU-INC := lib/criu.h include/criu-plugin.h include/criu-log.h protobuf/rpc.proto
-ifeq ($(piegen-y),y)
-piegen := pie/piegen/piegen
+ CFLAGS += -O2 -g
endif
-export CC MAKE CFLAGS LIBS SRCARCH DEFINES MAKEFLAGS CRIU-SO
-export SRC_DIR SYSCALL-LIB SH RM ARCH_DIR OBJCOPY LDARCH LD
-export USERCFLAGS
-export cflags-y
-export VDSO
-
-include Makefile.inc
-include Makefile.config
-include scripts/Makefile.version
-include scripts/Makefile.rules
-
-.SUFFIXES:
+CFLAGS += $(WARNINGS) $(DEFINES)
#
-# shorthand
-build-old := -r -R -f scripts/Makefile.build makefile=Makefile obj
-build-old-crtools := -r -R -f scripts/Makefile.build makefile=Makefile.crtools obj
-
-PROGRAM := criu
-
-.PHONY: all zdtm test rebuild clean distclean tags cscope \
- docs help pie protobuf $(ARCH_DIR) clean-built lib crit
-
-all: config pie $(VERSION_HEADER) $(CRIU-LIB)
- $(Q) $(MAKE) $(PROGRAM)
- $(Q) $(MAKE) crit
-
-protobuf/%::
- $(Q) $(MAKE) $(build-old)=protobuf $@
-protobuf:
- $(Q) $(MAKE) $(build-old)=protobuf all
-
-$(ARCH_DIR)/%:: protobuf config
- $(Q) $(MAKE) $(build-old)=$(ARCH_DIR) $@
-$(ARCH_DIR): protobuf config
- $(Q) $(MAKE) $(build-old)=$(ARCH_DIR) all
-
-ifeq ($(piegen-y),y)
-pie/piegen/%: config
- $(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS)" $(MAKE) $(build-old)=pie/piegen $@
-pie/piegen: config
- $(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS)" $(MAKE) $(build-old)=pie/piegen all
-$(piegen): pie/piegen/built-in.o
- $(E) " LINK " $@
- $(Q) $(HOSTCC) $(HOSTCFLAGS) $^ $(LDFLAGS) -o $@
-.PHONY: pie/piegen
-endif
+# Protobuf images first, they are not depending
+# on anything else.
+$(eval $(call gen-built-in,images))
+PHONY += images
-pie: $(ARCH_DIR) $(piegen)
- $(Q) $(MAKE) $(build-old)=pie all
-
-%.o %.i %.s %.d: $(VERSION_HEADER) pie
- $(Q) $(MAKE) $(build-old-crtools)=. $@
-built-in.o: $(VERSION_HEADER) pie
- $(Q) $(MAKE) $(build-old-crtools)=. $@
+#
+# CRIU building done in own directory
+# with slightly different rules so we
+# can't use nmk engine directly (we
+# build syscalls library and such).
+#
+# But note that we're already included
+# the nmk so we can reuse it there.
+criu/%: images/built-in.o
+ $(Q) $(MAKE) -C criu $@
+criu: images/built-in.o
+ $(Q) $(MAKE) -C criu all
+criu/criu: criu
+PHONY += criu
-lib/%:: $(VERSION_HEADER) config built-in.o
+#
+# Libraries next once criu it ready
+# (we might generate headers and such
+# when building criu itself).
+lib/%: criu
$(Q) $(MAKE) -C lib $@
-lib: $(VERSION_HEADER) config built-in.o
+lib: criu
$(Q) $(MAKE) -C lib all
+PHONY += lib
-$(CRIU-LIB): lib
- @true
-crit: lib
- @true
+all: criu lib
+PHONY += all
+clean-built:
+ $(Q) $(MAKE) $(build)=images clean
+ $(Q) $(MAKE) -C criu clean
+ $(Q) $(MAKE) -C lib clean
+PHONY += clean-built
-PROGRAM-BUILTINS += protobuf/built-in.o
-PROGRAM-BUILTINS += built-in.o
+clean: clean-built
+ $(call msg-clean, criu)
+PHONY += clean
-$(SYSCALL-LIB) $(ARCH-LIB) $(PROGRAM-BUILTINS): config
+#
+# Non-CRIU stuff.
+#
-$(PROGRAM): $(ARCH-LIB) $(PROGRAM-BUILTINS)
- $(E) " LINK " $@
- $(Q) $(CC) $(CFLAGS) $^ $(LIBS) $(LDFLAGS) $(GMONLDOPT) -rdynamic -o $@
+docs:
+ $(Q) $(MAKE) -s -C Documentation all
+PHONY += docs
zdtm: all
$(Q) $(MAKE) -C test/zdtm all
+PHONY += zdtm
test: zdtm
$(Q) $(MAKE) -C test
+PHONY += test
-clean-built:
- $(Q) $(RM) $(VERSION_HEADER)
- $(Q) $(MAKE) $(build-old)=$(ARCH_DIR) clean
- $(Q) $(MAKE) $(build-old)=protobuf clean
- $(Q) $(MAKE) $(build-old)=pie/piegen clean
- $(Q) $(MAKE) $(build-old)=pie clean
- $(Q) $(MAKE) -C lib clean
- $(Q) $(MAKE) $(build-old-crtools)=. clean
- $(Q) $(MAKE) -C Documentation clean
- $(Q) $(RM) ./include/config.h
- $(Q) $(RM) ./$(PROGRAM)
-
-rebuild: clean-built
- $(E) " FORCE-REBUILD"
- $(Q) $(MAKE)
-
-clean: clean-built
- $(E) " CLEAN"
- $(Q) $(RM) ./*.img
- $(Q) $(RM) ./*.out
- $(Q) $(RM) ./*.bin
- $(Q) $(RM) ./*.{gcda,gcno,gcov} ./test/`pwd`/*.{gcda,gcno,gcov}
- $(Q) $(RM) ./pie/*.{gcda,gcno,gcov} ./pie/piegen/*.{gcda,gcno,gcov}
- $(Q) $(RM) -r ./gcov
- $(Q) $(RM) protobuf-desc-gen.h
- $(Q) $(MAKE) -C test $@
- $(Q) $(RM) ./*.pyc
- $(Q) $(RM) -r build
- $(Q) $(RM) -r usr
-
-distclean: clean
- $(E) " DISTCLEAN"
- $(Q) $(RM) ./tags
- $(Q) $(RM) ./cscope*
+dist: tar
+tar: criu-$(CRTOOLSVERSION).tar.bz2
+criu-$(CRTOOLSVERSION).tar.bz2:
+ git archive --format tar --prefix 'criu-$(CRTOOLSVERSION)/' \
+ v$(CRTOOLSVERSION) | bzip2 > $@
+.PHONY: dist tar
tags:
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) $(RM) tags
$(Q) $(FIND) . -name '*.[hcS]' ! -path './.*' ! -path './test/*' -print | xargs ctags -a
+PHONY += tags
cscope:
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) $(FIND) . -name '*.[hcS]' ! -path './.*' ! -path './test/*' ! -type l -print > cscope.files
$(Q) $(CSCOPE) -bkqu
+PHONY += cscope
-docs:
- $(Q) $(MAKE) -s -C Documentation all
+gcov:
+ $(E) " GCOV"
+ $(Q) test -d gcov || mkdir gcov && \
+ cp *.{gcno,c} test/`pwd`/ && \
+ geninfo --output-filename gcov/crtools.h.info --no-recursion . && \
+ geninfo --output-filename gcov/crtools.ns.info --no-recursion test/`pwd`/ && \
+ sed -i 's#/test/`pwd`##' gcov/crtools.ns.info && \
+ cd gcov && \
+ lcov --rc lcov_branch_coverage=1 --add-tracefile crtools.h.info \
+ --add-tracefile crtools.ns.info --output-file criu.info && \
+ genhtml --rc lcov_branch_coverage=1 --output-directory html criu.info
+ @echo "Code coverage report is in `pwd`/gcov/html/ directory."
+PHONY += gcov
-dist: tar
-tar: criu-$(CRTOOLSVERSION).tar.bz2
-criu-$(CRTOOLSVERSION).tar.bz2:
- git archive --format tar --prefix 'criu-$(CRTOOLSVERSION)/' \
- v$(CRTOOLSVERSION) | bzip2 > $@
-.PHONY: dist tar
+docker-build:
+ docker build -t criu .
+PHONY += docker-build
-install: install-criu install-man
-
-install-criu: all $(CRIU-LIB) install-crit
- $(E) " INSTALL " $(PROGRAM)
- $(Q) mkdir -p $(DESTDIR)$(SBINDIR)
- $(Q) install -m 755 $(PROGRAM) $(DESTDIR)$(SBINDIR)
- $(Q) mkdir -p $(DESTDIR)$(LIBDIR)
- $(Q) install -m 755 $(CRIU-LIB) \
- $(DESTDIR)$(LIBDIR)/$(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR)
- $(Q) ln -fns $(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR) \
- $(DESTDIR)$(LIBDIR)/$(CRIU-SO).so.$(VERSION_SO_MAJOR)
- $(Q) ln -fns $(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR) \
- $(DESTDIR)$(LIBDIR)/$(CRIU-SO).so
- $(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)
- $(Q) install -m 644 $(CRIU-INC) $(DESTDIR)$(INCLUDEDIR)
- $(Q) mkdir -p $(DESTDIR)$(SYSTEMDUNITDIR)
- $(Q) sed -e 's, at version@,$(CRTOOLSVERSION),' \
- -e 's, at libdir@,$(LIBDIR),' \
- -e 's, at includedir@,$(dir $(INCLUDEDIR)),' \
- lib/criu.pc.in > criu.pc
- $(Q) mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
- $(Q) install -m 644 criu.pc $(DESTDIR)$(LIBDIR)/pkgconfig
-
-install-man:
- $(Q) $(MAKE) -C Documentation install
-
-install-crit: crit
- $(E) " INSTALL crit"
- $(Q) python scripts/crit-setup.py install --root=$(DESTDIR) --prefix=$(PREFIX)
-
-.PHONY: install install-man install-crit install-criu
+docker-test:
+ docker run --rm -it --privileged criu ./test/zdtm.sh -C -x tcp6 -x tcpbuf6 -x static/rtc -x cgroup -x mountpoint
+PHONY += docker-test
help:
@echo ' Targets:'
@@ -350,28 +203,15 @@ help:
@echo ' cscope - Generate cscope database'
@echo ' rebuild - Force-rebuild of [*] targets'
@echo ' test - Run zdtm test-suite'
- @echo ' gcov - Make code coverage report'
-
-gcov:
- $(E) " GCOV"
- $(Q) test -d gcov || mkdir gcov && \
- cp *.{gcno,c} test/`pwd`/ && \
- geninfo --output-filename gcov/crtools.h.info --no-recursion . && \
- geninfo --output-filename gcov/crtools.ns.info --no-recursion test/`pwd`/ && \
- sed -i 's#/test/`pwd`##' gcov/crtools.ns.info && \
- cd gcov && \
- lcov --rc lcov_branch_coverage=1 --add-tracefile crtools.h.info --add-tracefile crtools.ns.info --output-file criu.info && \
- genhtml --rc lcov_branch_coverage=1 --output-directory html criu.info
- @echo "Code coverage report is in `pwd`/gcov/html/ directory."
-.PHONY: gcov
+ @echo ' gcov - Make code coverage report'
+PHONY += help
-docker-build:
- docker build -t criu .
+include Makefile.install
-docker-test:
- docker run --rm -it --privileged criu ./test/zdtm.sh -C -x tcp6 -x tcpbuf6 -x static/rtc -x cgroup -x mountpoint
+.PHONY: $(PHONY)
-.DEFAULT_GOAL := all
+.DEFAULT_GOAL := all
-# include optional local rules
+#
+# Optional local include.
-include Makefile.local
diff --git a/Makefile.crtools b/Makefile.crtools
deleted file mode 100644
index 5788ef0304a4..000000000000
--- a/Makefile.crtools
+++ /dev/null
@@ -1,94 +0,0 @@
-obj-y += parasite-syscall.o
-obj-y += mem.o
-obj-y += rst-malloc.o
-obj-y += cr-restore.o
-obj-y += crtools.o
-obj-y += image.o
-obj-y += image-desc.o
-obj-y += net.o
-obj-y += tun.o
-obj-y += proc_parse.o
-obj-y += sysfs_parse.o
-obj-y += cr-dump.o
-obj-y += cr-show.o
-obj-y += cr-check.o
-obj-y += cr-dedup.o
-obj-y += util.o
-obj-y += bfd.o
-obj-y += action-scripts.o
-obj-y += sysctl.o
-obj-y += ptrace.o
-obj-y += kcmp-ids.o
-obj-y += rbtree.o
-obj-y += log.o
-obj-y += libnetlink.o
-obj-y += sockets.o
-obj-y += sk-inet.o
-obj-y += sk-tcp.o
-obj-y += sk-unix.o
-obj-y += sk-packet.o
-obj-y += sk-netlink.o
-obj-y += sk-queue.o
-obj-y += files.o
-obj-y += files-reg.o
-obj-y += files-ext.o
-obj-y += pipes.o
-obj-y += fifo.o
-obj-y += file-ids.o
-obj-y += namespaces.o
-obj-y += uts_ns.o
-obj-y += ipc_ns.o
-obj-y += netfilter.o
-obj-y += shmem.o
-obj-y += eventfd.o
-obj-y += eventpoll.o
-obj-y += mount.o
-obj-y += fsnotify.o
-obj-y += irmap.o
-obj-y += signalfd.o
-obj-y += pstree.o
-obj-y += bitmap.o
-obj-y += protobuf.o
-obj-y += protobuf-desc.o
-obj-y += tty.o
-obj-y += cr-exec.o
-obj-y += file-lock.o
-obj-y += page-pipe.o
-obj-y += page-xfer.o
-obj-y += page-read.o
-obj-y += pagemap-cache.o
-obj-y += kerndat.o
-obj-y += stats.o
-obj-y += cgroup.o
-obj-y += timerfd.o
-obj-y += aio.o
-obj-y += string.o
-obj-y += sigframe.o
-obj-y += lsm.o
-ifeq ($(VDSO),y)
-obj-y += vdso.o
-obj-y += pie/util-vdso.o
-endif
-obj-y += cr-service.o
-obj-y += plugin.o
-obj-y += cr-errno.o
-obj-y += pie/pie-relocs.o
-obj-y += seize.o
-obj-y += fault-injection.o
-obj-y += pie/util-fd.o
-obj-y += pie/util.o
-obj-y += seccomp.o
-
-ifneq ($(MAKECMDGOALS),clean)
-incdeps := y
-endif
-
-PROTOBUF_GEN := scripts/protobuf-gen.sh
-
-protobuf-desc.c: protobuf-desc-gen.h
-
-protobuf-desc-gen.h: $(PROTOBUF_GEN) include/protobuf-desc.h
- $(E) " GEN " $@
- $(Q) $(SH) $(obj)/$(PROTOBUF_GEN) > $@
-
-cleanup-y += protobuf-desc-gen.h
diff --git a/Makefile.inc b/Makefile.inc
deleted file mode 100644
index 4782ea23939d..000000000000
--- a/Makefile.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-# Installation paths
-PREFIX ?= /usr/local
-SBINDIR ?= $(PREFIX)/sbin
-MANDIR ?= $(PREFIX)/share/man
-SYSTEMDUNITDIR ?= $(PREFIX)/lib/systemd/system/
-LOGROTATEDIR ?= $(PREFIX)/etc/logrotate.d/
-LIBDIR ?= $(PREFIX)/lib
-# For recent Debian/Ubuntu with multiarch support
-DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture \
- -qDEB_HOST_MULTIARCH 2>/dev/null)
-ifneq "$(DEB_HOST_MULTIARCH)" ""
-LIBDIR ?= $(PREFIX)/lib/$(DEB_HOST_MULTIARCH)
-# For most other systems
-else ifeq "$(shell uname -m)" "x86_64"
-LIBDIR ?= $(PREFIX)/lib64
-endif
-
-INCLUDEDIR ?= $(PREFIX)/include/criu
diff --git a/Makefile.install b/Makefile.install
new file mode 100644
index 000000000000..4f3b57fb07d8
--- /dev/null
+++ b/Makefile.install
@@ -0,0 +1,31 @@
+install: install-criu install-man
+
+install-criu: all $(CRIU-LIB) install-crit
+ $(E) " INSTALL " $(PROGRAM)
+ $(Q) mkdir -p $(DESTDIR)$(SBINDIR)
+ $(Q) install -m 755 $(PROGRAM) $(DESTDIR)$(SBINDIR)
+ $(Q) mkdir -p $(DESTDIR)$(LIBDIR)
+ $(Q) install -m 755 $(CRIU-LIB) \
+ $(DESTDIR)$(LIBDIR)/$(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR)
+ $(Q) ln -fns $(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR) \
+ $(DESTDIR)$(LIBDIR)/$(CRIU-SO).so.$(VERSION_SO_MAJOR)
+ $(Q) ln -fns $(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR) \
+ $(DESTDIR)$(LIBDIR)/$(CRIU-SO).so
+ $(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)
+ $(Q) install -m 644 $(CRIU-INC) $(DESTDIR)$(INCLUDEDIR)
+ $(Q) mkdir -p $(DESTDIR)$(SYSTEMDUNITDIR)
+ $(Q) sed -e 's, at version@,$(CRTOOLSVERSION),' \
+ -e 's, at libdir@,$(LIBDIR),' \
+ -e 's, at includedir@,$(dir $(INCLUDEDIR)),' \
+ lib/criu.pc.in > criu.pc
+ $(Q) mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
+ $(Q) install -m 644 criu.pc $(DESTDIR)$(LIBDIR)/pkgconfig
+
+install-man:
+ $(Q) $(MAKE) -C Documentation install
+
+install-crit: crit
+ $(E) " INSTALL crit"
+ $(Q) python scripts/crit-setup.py install --root=$(DESTDIR) --prefix=$(PREFIX)
+
+.PHONY: install install-man install-crit install-criu
diff --git a/arch/aarch64/Makefile b/arch/aarch64/Makefile
deleted file mode 100644
index 200d37c726b9..000000000000
--- a/arch/aarch64/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-targets += syscalls
-targets += crtools
-
-SYS-ASM := syscalls.S
-
-syscalls-asm-y += $(SYS-ASM:.S=).o
-crtools-obj-y += crtools.o
-crtools-obj-y += cpu.o
-
-SYS-DEF := ../arm/syscall.def
-SYS-ASM-COMMON := syscall-common.S
-SYS-TYPES := include/syscall-types.h
-
-SYS-CODES := include/syscall-codes.h
-SYS-PROTO := include/syscall.h
-
-SYS-GEN := ../scripts/arm/gen-syscalls.pl
-SYS-GEN-TBL := ../scripts/arm/gen-sys-exec-tbl.pl
-
-SYS-EXEC-TBL := sys-exec-tbl.c
-
-syscalls-asm-y-asmflags += -fpie -Wstrict-prototypes -Wa,--noexecstack
-syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
-ASMFLAGS += -D__ASSEMBLY__
-
-ARCH_BITS := 64
-
-$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF) $(obj)/$(SYS-ASM-COMMON) $(SYS-TYPES)
- $(E) " GEN " $@
- $(Q) perl \
- $(obj)/$(SYS-GEN) \
- $(obj)/$(SYS-DEF) \
- $(SYS-CODES) \
- $(SYS-PROTO) \
- $(obj)/$(SYS-ASM) \
- $(SYS-ASM-COMMON) \
- $(SYS-TYPES) \
- $(ARCH_BITS)
-
-$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
-
-$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN-TBL) $(obj)/$(SYS-DEF)
- $(E) " GEN " $@
- $(Q) perl \
- $(obj)/$(SYS-GEN-TBL) \
- $(obj)/$(SYS-DEF) \
- $(obj)/$(SYS-EXEC-TBL) \
- $(ARCH_BITS)
-
-_all += $(obj)/$(SYS-EXEC-TBL)
-
-cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
-cleanup-y += $(SYS-CODES)
-cleanup-y += $(SYS-PROTO)
-
-ifneq ($(MAKECMDGOALS),clean)
-deps-after := $(obj)/$(SYS-ASM)
-incdeps := y
-endif
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
deleted file mode 100644
index 2359a2c0e7be..000000000000
--- a/arch/arm/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-targets += syscalls
-targets += crtools
-
-SYS-ASM := syscalls.S
-
-syscalls-asm-y += $(SYS-ASM:.S=).o
-crtools-obj-y += crtools.o
-crtools-obj-y += cpu.o
-
-SYS-DEF := syscall.def
-SYS-ASM-COMMON := syscall-common.S
-SYS-TYPES := include/syscall-types.h
-
-SYS-CODES := include/syscall-codes.h
-SYS-PROTO := include/syscall.h
-
-SYS-GEN := ../scripts/arm/gen-syscalls.pl
-SYS-GEN-TBL := ../scripts/arm/gen-sys-exec-tbl.pl
-
-SYS-EXEC-TBL := sys-exec-tbl.c
-
-syscalls-asm-y-asmflags += -fpie -Wstrict-prototypes -Wa,--noexecstack
-syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
-ASMFLAGS += -D__ASSEMBLY__
-
-ARCH_BITS := 32
-
-$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF) $(obj)/$(SYS-ASM-COMMON) $(SYS-TYPES)
- $(E) " GEN " $@
- $(Q) perl \
- $(obj)/$(SYS-GEN) \
- $(obj)/$(SYS-DEF) \
- $(SYS-CODES) \
- $(SYS-PROTO) \
- $(obj)/$(SYS-ASM) \
- $(SYS-ASM-COMMON) \
- $(SYS-TYPES) \
- $(ARCH_BITS)
-
-$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
-
-$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN-TBL) $(obj)/$(SYS-DEF)
- $(E) " GEN " $@
- $(Q) perl \
- $(obj)/$(SYS-GEN-TBL) \
- $(obj)/$(SYS-DEF) \
- $(obj)/$(SYS-EXEC-TBL) \
- $(ARCH_BITS)
-
-_all += $(obj)/$(SYS-EXEC-TBL)
-
-cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
-cleanup-y += $(SYS-CODES)
-cleanup-y += $(SYS-PROTO)
-
-ifneq ($(MAKECMDGOALS),clean)
-deps-after := $(obj)/$(SYS-ASM)
-incdeps := y
-endif
diff --git a/arch/ppc64/Makefile b/arch/ppc64/Makefile
deleted file mode 100644
index c5d332364aa2..000000000000
--- a/arch/ppc64/Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-targets += syscalls
-targets += crtools
-
-SYS-ASM := syscalls.S
-
-syscalls-asm-y += $(SYS-ASM:.S=).o
-crtools-obj-y += crtools.o
-crtools-obj-y += cpu.o
-
-SYS-DEF := syscall-ppc64.def
-SYS-ASM-COMMON := syscall-common-ppc64.S
-
-SYS-TYPES := include/syscall-types.h
-SYS-CODES := include/syscall-codes.h
-SYS-PROTO := include/syscall.h
-
-SYS-GEN := syscalls-ppc64.sh
-
-SYS-EXEC-TBL := sys-exec-tbl.c
-
-syscalls-asm-y-asmflags := -fpie -Wstrict-prototypes -Wa,--noexecstack
-syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
-
-ASMFLAGS += -D__ASSEMBLY__
-
-$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF) $(obj)/$(SYS-ASM-COMMON) $(SYS-TYPES)
- $(E) " GEN " $@
- $(Q) $(SH) \
- $(obj)/$(SYS-GEN) --asm \
- $(obj)/$(SYS-DEF) \
- $(SYS-CODES) \
- $(SYS-PROTO) \
- $(obj)/$(SYS-ASM) \
- $(SYS-ASM-COMMON) \
- $(SYS-TYPES)
-
-$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
-
-$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF)
- $(E) " GEN " $@
- $(Q) $(SH) \
- $(obj)/$(SYS-GEN) --exec \
- $(obj)/$(SYS-DEF) \
- $(obj)/$(SYS-EXEC-TBL)
-
-_all += $(obj)/$(SYS-EXEC-TBL)
-
-cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
-cleanup-y += $(SYS-CODES)
-cleanup-y += $(SYS-PROTO)
-
-ifneq ($(MAKECMDGOALS),clean)
-deps-after := $(obj)/$(SYS-ASM)
-incdeps := y
-endif
diff --git a/arch/ppc64/syscalls-ppc64.sh b/arch/ppc64/syscalls-ppc64.sh
deleted file mode 100644
index 871895efaf7a..000000000000
--- a/arch/ppc64/syscalls-ppc64.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-
-gen_asm() {
- in=$1
- codesout=$2
- codesinc=`echo $2 | sed -e 's/.*include\///g'`
- protosout=$3
- asmout=$4
- asmcommon=`echo $5 | sed -e 's/.*include\///g'`
- prototypes=`echo $6 | sed -e 's/.*include\///g'`
-
- codesdef=`echo $codesout | sed -e 's/.*include\///g' | tr "[[:space:]].-" _`
- protosdef=`echo $protosout | sed -e 's/.*include\///g' | tr "[[:space:]].-" _`
-
- echo "/* Autogenerated, don't edit */" > $codesout
- echo "#ifndef $codesdef" >> $codesout
- echo "#define $codesdef" >> $codesout
-
- echo "/* Autogenerated, don't edit */" > $protosout
- echo "#ifndef $protosdef" >> $protosout
- echo "#define $protosdef" >> $protosout
- echo "#ifndef CR_NOGLIBC" >> $protosout
- echo "#error This file should only be used in the parasite code" >> $protosout
- echo "#endif" >> $protosout
- echo "#include \"$prototypes\"" >> $protosout
- echo "#include \"$codesinc\"" >> $protosout
-
- echo "/* Autogenerated, don't edit */" > $asmout
- echo "#include \"$codesinc\"" >> $asmout
- echo "#include \"$asmcommon\"" >> $asmout
-
- cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "#define", $1, $2}' >> $codesout
- cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "extern long ", $3, $4, ";"}' >> $protosout
- cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", $3, ",", $2, ")"}' >> $asmout
-
- echo "#endif /* $codesdef */" >> $codesout
- echo "#endif /* $protosdef */" >> $protosout
-}
-
-gen_exec() {
- in=$1
- codecout=$2
-
- echo "/* Autogenerated, don't edit */" > $codecout
-
- cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", substr($3, 5), ",", $2, ")"}' >> $codecout
-}
-
-if [ "$1" = "--asm" ]; then
- shift
- gen_asm $@
-fi
-
-if [ "$1" = "--exec" ]; then
- shift
- gen_exec $@
-fi
diff --git a/criu/Makefile b/criu/Makefile
new file mode 100644
index 000000000000..e4e2afb15064
--- /dev/null
+++ b/criu/Makefile
@@ -0,0 +1,173 @@
+#
+# CRIU version.
+VERSION_MAJOR := 2
+VERSION_MINOR := 0
+VERSION_SUBLEVEL :=
+VERSION_EXTRA :=
+VERSION_NAME :=
+
+export VERSION_MAJOR VERSION_MINOR
+export VERSION_SUBLEVEL VERSION_EXTRA VERSION_NAME
+
+#
+# HOST part is needed to build helper
+# tools such as piegen.
+HOSTCC ?= gcc
+HOSTLD ?= ld
+HOSTCFLAGS ?= $(CFLAGS)
+CFLAGS += $(USERCFLAGS)
+
+export HOSTCC HOSTLD HOSTCFLAGS
+
+ifeq ($(ARCH),x86)
+ SRCARCH := x86
+ LDARCH := i386:x86-64
+ VDSO := y
+endif
+
+ifeq ($(ARCH),arm)
+ SRCARCH := arm
+endif
+
+ifeq ($(ARCH),arm64)
+ ARCH := aarch64
+ SRCARCH := aarch64
+ VDSO := y
+endif
+
+ifeq ($(ARCH),powerpc)
+ ARCH := ppc64
+ SRCARCH := ppc64
+ LDARCH := powerpc:common64
+ VDSO := y
+endif
+
+LDARCH ?= $(SRCARCH)
+
+export SRCARCH LDARCH VDSO
+
+SRCARCH ?= $(ARCH)
+LDARCH ?= $(SRCARCH)
+ARCH_DIR := arch/$(SRCARCH)
+
+export SRCARCH LDARCH ARCH_DIR VDSO
+
+$(if $(wildcard $(ARCH_DIR)),,$(error "The architecture $(ARCH) isn't supported"))
+
+#
+# General flags.
+ccflags-y += -fno-strict-aliasing
+ccflags-y += -iquote $(SRC_DIR)/criu/include
+ccflags-y += -iquote $(SRC_DIR)/images
+ccflags-y += -iquote $(SRC_DIR)/criu/pie
+ccflags-y += -iquote $(SRC_DIR)/criu/$(ARCH_DIR)
+ccflags-y += -iquote $(SRC_DIR)/criu/$(ARCH_DIR)/include
+ccflags-y += -iquote $(SRC_DIR)/
+ccflags-y += -I/usr/include/libnl3
+
+export ccflags-y
+
+LIBS := -lrt -lpthread -lprotobuf-c -ldl -lnl-3
+
+ifeq ($(GMON),1)
+ CFLAGS += -pg
+ GMONLDOPT := -pg
+endif
+
+#
+# piegen tool might be disabled by hands. Don't use it until
+# you know what you're doing.
+ifneq ($(filter ia32 x86 ppc64,$(ARCH)),)
+ ifneq ($(PIEGEN),no)
+ piegen-y := y
+ export piegen-y
+ endif
+endif
+
+#
+# Version header file.
+include Makefile.version
+
+#
+# Configure variables.
+include Makefile.config
+config: $(VERSION_HEADER)
+
+#
+# System calls library.
+SYSCALL-LIB := $(ARCH_DIR)/syscalls.built-in.o
+$(SYSCALL-LIB): config
+ $(Q) $(MAKE) $(call build-as,Makefile.syscalls,$(ARCH_DIR)) all
+PHONY += $(SYSCALL-LIB)
+
+#
+# Architecture dependant part.
+ARCH-LIB := $(ARCH_DIR)/crtools.built-in.o
+$(ARCH-LIB): config $(SYSCALL-LIB)
+ $(Q) $(MAKE) $(call build-as,Makefile,$(ARCH_DIR)) $@
+PHONY += $(ARCH-LIB)
+
+#
+# piegen tool needed for PIE code.
+ifeq ($(piegen-y),y)
+piegen := pie/piegen/piegen
+
+pie/piegen/%: config
+ $(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS) $(WARNINGS) $(DEFINES)" $(MAKE) $(build)=pie/piegen $@
+pie/piegen: config
+ $(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS) $(WARNINGS) $(DEFINES)" $(MAKE) $(build)=pie/piegen all
+$(piegen): pie/piegen/built-in.o
+ $(call msg-link, $@)
+ $(Q) $(HOSTCC) $(HOSTCFLAGS) $^ $(LDFLAGS) -o $@
+PHONY += pie/piegen
+endif
+
+#
+# PIE library code.
+pie/lib.a: $(ARCH-LIB)
+ $(Q) $(MAKE) $(call build-as,Makefile.library,pie) all
+
+#
+# PIE code blobs themseves.
+pie: $(ARCH_DIR) $(piegen) pie/lib.a
+ $(Q) $(MAKE) $(build)=pie all
+PHONY += pie
+
+#
+# CRIU executable
+PROGRAM-BUILTINS += ../images/built-in.o
+PROGRAM-BUILTINS += built-in.o
+PROGRAM-BUILTINS += pie/lib.a
+PROGRAM-BUILTINS += $(SYSCALL-LIB)
+
+LIBS += arch/$(ARCH)/crtools.built-in.o
+
+built-in.o: pie/lib.a
+ $(Q) $(MAKE) $(call build-as,Makefile.crtools,.) all
+
+criu: $(PROGRAM-BUILTINS) built-in.o
+ $(call msg-link, $@)
+ $(Q) $(CC) $(CFLAGS) $^ $(LIBS) $(LDFLAGS) $(GMONLDOPT) -rdynamic -o $@
+PHONY += criu
+
+#
+# Cleanup everything.
+clean:
+ $(Q) $(MAKE) $(call build-as,Makefile.syscalls,$(ARCH_DIR)) $@
+ $(Q) $(MAKE) $(call build-as,Makefile.library,pie) $@
+ $(Q) $(MAKE) $(call build-as,Makefile.crtools,.) $@
+ $(Q) $(MAKE) $(build)=pie/piegen $@
+ $(Q) $(MAKE) $(build)=pie $@
+ $(Q) $(RM) ./*.{gcda,gcno,gcov}
+ $(Q) $(RM) ./pie/*.{gcda,gcno,gcov}
+ $(Q) $(RM) ./pie/piegen/*.{gcda,gcno,gcov}
+ $(Q) $(RM) -r ./gcov
+ $(Q) $(RM) $(VERSION_HEADER)
+ $(Q) $(RM) $(CONFIG_HEADER)
+
+#
+# Final @all target.
+all: $(PHONY)
+ @true
+
+.PHONY: $(PHONY) clean
diff --git a/Makefile.config b/criu/Makefile.config
similarity index 50%
rename from Makefile.config
rename to criu/Makefile.config
index 26d581bfab43..a39f4cd911bd 100644
--- a/Makefile.config
+++ b/criu/Makefile.config
@@ -1,54 +1,61 @@
-include scripts/utilities.mak
-include scripts/feature-tests.mak
+include $(__nmk_dir)/utils.mk
+include ../scripts/feature-tests.mak
-CONFIG := include/config.h
+CONFIG_HEADER := include/config.h
ifeq ($(call try-cc,$(LIBBSD_DEV_TEST),-lbsd),y)
- LIBS += -lbsd
- DEFINES += -DCONFIG_HAS_LIBBSD
+ LIBS += -lbsd
+ DEFINES += -DCONFIG_HAS_LIBBSD
endif
ifeq ($(call pkg-config-check,libselinux),y)
- LIBS := -lselinux $(LIBS)
- DEFINES += -DCONFIG_HAS_SELINUX
+ LIBS += -lselinux $(LIBS)
+ DEFINES += -DCONFIG_HAS_SELINUX
endif
-$(CONFIG): scripts/utilities.mak scripts/feature-tests.mak include/config-base.h
- $(E) " GEN " $@
+$(CONFIG_HEADER): include/config-base.h
+ $(call msg-gen, $@)
$(Q) @echo '#ifndef __CR_CONFIG_H__' > $@
$(Q) @echo '#define __CR_CONFIG_H__' >> $@
$(Q) @echo '' >> $@
$(Q) @echo '#include "config-base.h"' >> $@
$(Q) @echo '' >> $@
-ifeq ($(call try-cc,$(TCP_REPAIR_TEST),),y)
+ifeq ($(call try-cc,$(TCP_REPAIR_TEST),,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_TCP_REPAIR' >> $@
+ $(Q) @echo '' >> $@
endif
-ifeq ($(call try-cc,$(PRLIMIT_TEST),),y)
+ifeq ($(call try-cc,$(PRLIMIT_TEST),,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_PRLIMIT' >> $@
+ $(Q) @echo '' >> $@
endif
-ifeq ($(call try-cc,$(STRLCPY_TEST),$(LIBS)),y)
+ifeq ($(call try-cc,$(STRLCPY_TEST),$(LIBS),$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_STRLCPY' >> $@
+ $(Q) @echo '' >> $@
endif
-ifeq ($(call try-cc,$(STRLCAT_TEST),$(LIBS)),y)
+ifeq ($(call try-cc,$(STRLCAT_TEST),$(LIBS),$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_STRLCAT' >> $@
+ $(Q) @echo '' >> $@
endif
-ifeq ($(call try-cc,$(PTRACE_PEEKSIGINFO_TEST),),y)
+ifeq ($(call try-cc,$(PTRACE_PEEKSIGINFO_TEST),,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_PEEKSIGINFO_ARGS' >> $@
+ $(Q) @echo '' >> $@
endif
ifeq ($(VDSO),y)
$(Q) @echo '#define CONFIG_VDSO' >> $@
+ $(Q) @echo '' >> $@
endif
-ifeq ($(call try-cc,$(SETPROCTITLE_INIT_TEST),-lbsd),y)
+ifeq ($(call try-cc,$(SETPROCTITLE_INIT_TEST),-lbsd,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_SETPROCTITLE_INIT' >> $@
+ $(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(MEMFD_TEST),),y)
$(Q) @echo '#define CONFIG_HAS_MEMFD' >> $@
endif
ifeq ($(piegen-y),y)
$(Q) @echo '#define CONFIG_PIEGEN' >> $@
+ $(Q) @echo '' >> $@
endif
$(Q) @echo '#endif /* __CR_CONFIG_H__ */' >> $@
-config: $(CONFIG)
-
-.PHONY: config
+config: $(CONFIG_HEADER)
+PHONY += config
diff --git a/criu/Makefile.crtools b/criu/Makefile.crtools
new file mode 100644
index 000000000000..5c3f65cad1a2
--- /dev/null
+++ b/criu/Makefile.crtools
@@ -0,0 +1,92 @@
+ccflags-y += -iquote $(ARCH)
+obj-y += action-scripts.o
+obj-y += aio.o
+obj-y += bfd.o
+obj-y += bitmap.o
+obj-y += cgroup.o
+obj-y += cr-check.o
+obj-y += cr-dedup.o
+obj-y += cr-dump.o
+obj-y += cr-errno.o
+obj-y += cr-exec.o
+obj-y += cr-restore.o
+obj-y += cr-service.o
+obj-y += cr-show.o
+obj-y += crtools.o
+obj-y += eventfd.o
+obj-y += eventpoll.o
+obj-y += fault-injection.o
+obj-y += fifo.o
+obj-y += file-ids.o
+obj-y += file-lock.o
+obj-y += files-ext.o
+obj-y += files.o
+obj-y += files-reg.o
+obj-y += fsnotify.o
+obj-y += image-desc.o
+obj-y += image.o
+obj-y += ipc_ns.o
+obj-y += irmap.o
+obj-y += kcmp-ids.o
+obj-y += kerndat.o
+obj-y += libnetlink.o
+obj-y += log.o
+obj-y += lsm.o
+obj-y += mem.o
+obj-y += mount.o
+obj-y += namespaces.o
+obj-y += netfilter.o
+obj-y += net.o
+obj-y += pagemap-cache.o
+obj-y += page-pipe.o
+obj-y += page-read.o
+obj-y += page-xfer.o
+obj-y += parasite-syscall.o
+obj-y += pie/pie-relocs.o
+obj-y += pie-util-fd.o
+obj-y += pie-util.o
+obj-y += pipes.o
+obj-y += plugin.o
+obj-y += proc_parse.o
+obj-y += protobuf-desc.o
+obj-y += protobuf.o
+obj-y += pstree.o
+obj-y += ptrace.o
+obj-y += rbtree.o
+obj-y += rst-malloc.o
+obj-y += seccomp.o
+obj-y += seize.o
+obj-y += shmem.o
+obj-y += sigframe.o
+obj-y += signalfd.o
+obj-y += sk-inet.o
+obj-y += sk-netlink.o
+obj-y += sk-packet.o
+obj-y += sk-queue.o
+obj-y += sk-tcp.o
+obj-y += sk-unix.o
+obj-y += sockets.o
+obj-y += stats.o
+obj-y += string.o
+obj-y += sysctl.o
+obj-y += sysfs_parse.o
+obj-y += timerfd.o
+obj-y += tty.o
+obj-y += tun.o
+obj-y += util.o
+obj-y += uts_ns.o
+
+ifeq ($(VDSO),y)
+obj-y += pie-util-vdso.o
+obj-y += vdso.o
+endif
+
+PROTOBUF_GEN := $(SRC_DIR)/scripts/protobuf-gen.sh
+
+protobuf-desc.c: protobuf-desc-gen.h
+
+protobuf-desc-gen.h: $(PROTOBUF_GEN) include/protobuf-desc.h
+ $(call msg-gen, $@)
+ $(Q) $(SH) $(PROTOBUF_GEN) > $@
+
+cleanup-y += protobuf-desc-gen.h
diff --git a/scripts/Makefile.version b/criu/Makefile.version
similarity index 63%
rename from scripts/Makefile.version
rename to criu/Makefile.version
index 8905bd9b63a9..44dad6c14266 100644
--- a/scripts/Makefile.version
+++ b/criu/Makefile.version
@@ -1,24 +1,23 @@
CRTOOLSVERSION := $(VERSION_MAJOR)$(if $(VERSION_MINOR),.$(VERSION_MINOR))$(if $(VERSION_SUBLEVEL),.$(VERSION_SUBLEVEL))
-
-VERSION_HEADER := include/version.h
-GITID_FILE := .gitid
-GITID := $(shell if [ -d ".git" ]; then git describe; fi)
+VERSION_HEADER := include/version.h
+GITID_FILE := ../.gitid
+GITID := $(shell if [ -d "../.git" ]; then cd .. && git describe; fi)
ifeq ($(GITID),)
- GITID := 0
+ GITID := 0
else
- GITID_FILE_VALUE := $(shell if [ -f '.gitid' ]; then if [ `cat .gitid` = $(GITID) ]; then echo y; fi; fi)
+ GITID_FILE_VALUE := $(shell if [ -f '$(GITID_FILE)' ]; then if [ `cat '$(GITID_FILE)'` = $(GITID) ]; then echo y; fi; fi)
ifneq ($(GITID_FILE_VALUE),y)
.PHONY: $(GITID_FILE)
endif
endif
$(GITID_FILE):
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) echo "$(GITID)" > $(GITID_FILE)
-$(VERSION_HEADER): Makefile scripts/Makefile.version $(GITID_FILE)
- $(E) " GEN " $@
+$(VERSION_HEADER): Makefile.version $(GITID_FILE)
+ $(call msg-gen, $@)
$(Q) echo "/* Autogenerated, do not edit */" > $(VERSION_HEADER)
$(Q) echo "#ifndef __CR_VERSION_H__" >> $(VERSION_HEADER)
$(Q) echo "#define __CR_VERSION_H__" >> $(VERSION_HEADER)
@@ -28,9 +27,5 @@ $(VERSION_HEADER): Makefile scripts/Makefile.version $(GITID_FILE)
$(Q) echo "#define CRIU_GITID \"$(GITID)\"" >> $(VERSION_HEADER)
$(Q) echo "#endif /* __CR_VERSION_H__ */" >> $(VERSION_HEADER)
-##
-## In case if someone add last resort rule
-## together with .SUFFIXES not cleaned, this
-## will slow down the build procedure
-scripts/Makefile.version::
+Makefile.version:
@true
diff --git a/action-scripts.c b/criu/action-scripts.c
similarity index 100%
rename from action-scripts.c
rename to criu/action-scripts.c
diff --git a/aio.c b/criu/aio.c
similarity index 100%
rename from aio.c
rename to criu/aio.c
diff --git a/criu/arch/aarch64/Makefile b/criu/arch/aarch64/Makefile
new file mode 100644
index 000000000000..652d4821bdfd
--- /dev/null
+++ b/criu/arch/aarch64/Makefile
@@ -0,0 +1,7 @@
+builtin-name := crtools.built-in.o
+
+ccflags-y += -iquote $(obj) -iquote $(SRC_DIR)
+ccflags-y += -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
+
+obj-y += cpu.o
+obj-y += crtools.o
diff --git a/criu/arch/aarch64/Makefile.syscalls b/criu/arch/aarch64/Makefile.syscalls
new file mode 100644
index 000000000000..9b3b5387bd41
--- /dev/null
+++ b/criu/arch/aarch64/Makefile.syscalls
@@ -0,0 +1,50 @@
+builtin-name := syscalls.built-in.o
+
+SYS-TYPES := ../../include/syscall-types.h
+SYS-CODES := ../../include/syscall-codes.h
+SYS-PROTO := ../../include/syscall.h
+
+SYS-DEF := syscall.def
+SYS-ASM-COMMON := syscall-common.S
+
+SYS-GEN := ../scripts/arm/gen-syscalls.pl
+SYS-GEN-TBL := ../scripts/arm/gen-sys-exec-tbl.pl
+
+asflags-y += -D__ASSEMBLY__ -nostdlib -fomit-frame-pointer
+asflags-y += -fpie -Wstrict-prototypes -Wa,--noexecstack
+asflags-y += -iquote $(obj) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
+
+SYS-ASM := syscalls.S
+obj-y += $(SYS-ASM:.S=).o
+
+ARCH_BITS := 64
+
+SYS-EXEC-TBL := sys-exec-tbl.c
+
+$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON)
+ $(E) " GEN " $@
+ $(Q) perl \
+ $(obj)/$(SYS-GEN) \
+ $(obj)/syscalls/$(SYS-DEF) \
+ $(obj)/$(SYS-CODES) \
+ $(obj)/$(SYS-PROTO) \
+ $(obj)/$(SYS-ASM) \
+ syscalls/$(SYS-ASM-COMMON) \
+ $(obj)/$(SYS-TYPES) \
+ $(ARCH_BITS)
+
+$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
+
+$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN-TBL) $(obj)/syscalls/$(SYS-DEF)
+ $(E) " GEN " $@
+ $(Q) perl \
+ $(obj)/$(SYS-GEN-TBL) \
+ $(obj)/syscalls/$(SYS-DEF) \
+ $(obj)/$(SYS-EXEC-TBL) \
+ $(ARCH_BITS)
+
+all-y += $(obj)/$(SYS-EXEC-TBL)
+
+cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
+cleanup-y += $(obj)/$(SYS-CODES)
+cleanup-y += $(obj)/$(SYS-PROTO)
diff --git a/arch/arm/cpu.c b/criu/arch/aarch64/cpu.c
similarity index 100%
rename from arch/arm/cpu.c
rename to criu/arch/aarch64/cpu.c
diff --git a/arch/aarch64/crtools.c b/criu/arch/aarch64/crtools.c
similarity index 100%
rename from arch/aarch64/crtools.c
rename to criu/arch/aarch64/crtools.c
diff --git a/arch/aarch64/include/asm/atomic.h b/criu/arch/aarch64/include/asm/atomic.h
similarity index 100%
rename from arch/aarch64/include/asm/atomic.h
rename to criu/arch/aarch64/include/asm/atomic.h
diff --git a/arch/arm/include/asm/bitops.h b/criu/arch/aarch64/include/asm/bitops.h
similarity index 100%
rename from arch/arm/include/asm/bitops.h
rename to criu/arch/aarch64/include/asm/bitops.h
diff --git a/arch/ppc64/include/asm/bitsperlong.h b/criu/arch/aarch64/include/asm/bitsperlong.h
similarity index 100%
rename from arch/ppc64/include/asm/bitsperlong.h
rename to criu/arch/aarch64/include/asm/bitsperlong.h
diff --git a/arch/ppc64/include/asm/cpu.h b/criu/arch/aarch64/include/asm/cpu.h
similarity index 100%
rename from arch/ppc64/include/asm/cpu.h
rename to criu/arch/aarch64/include/asm/cpu.h
diff --git a/arch/aarch64/include/asm/dump.h b/criu/arch/aarch64/include/asm/dump.h
similarity index 100%
rename from arch/aarch64/include/asm/dump.h
rename to criu/arch/aarch64/include/asm/dump.h
diff --git a/arch/ppc64/include/asm/fpu.h b/criu/arch/aarch64/include/asm/fpu.h
similarity index 100%
rename from arch/ppc64/include/asm/fpu.h
rename to criu/arch/aarch64/include/asm/fpu.h
diff --git a/arch/x86/include/asm/int.h b/criu/arch/aarch64/include/asm/int.h
similarity index 100%
rename from arch/x86/include/asm/int.h
rename to criu/arch/aarch64/include/asm/int.h
diff --git a/arch/arm/include/asm/linkage.h b/criu/arch/aarch64/include/asm/linkage.h
similarity index 100%
rename from arch/arm/include/asm/linkage.h
rename to criu/arch/aarch64/include/asm/linkage.h
diff --git a/arch/aarch64/include/asm/page.h b/criu/arch/aarch64/include/asm/page.h
similarity index 100%
rename from arch/aarch64/include/asm/page.h
rename to criu/arch/aarch64/include/asm/page.h
diff --git a/arch/aarch64/include/asm/parasite-syscall.h b/criu/arch/aarch64/include/asm/parasite-syscall.h
similarity index 100%
rename from arch/aarch64/include/asm/parasite-syscall.h
rename to criu/arch/aarch64/include/asm/parasite-syscall.h
diff --git a/arch/aarch64/include/asm/parasite.h b/criu/arch/aarch64/include/asm/parasite.h
similarity index 100%
rename from arch/aarch64/include/asm/parasite.h
rename to criu/arch/aarch64/include/asm/parasite.h
diff --git a/arch/ppc64/include/asm/processor-flags.h b/criu/arch/aarch64/include/asm/processor-flags.h
similarity index 100%
rename from arch/ppc64/include/asm/processor-flags.h
rename to criu/arch/aarch64/include/asm/processor-flags.h
diff --git a/arch/aarch64/include/asm/restore.h b/criu/arch/aarch64/include/asm/restore.h
similarity index 100%
rename from arch/aarch64/include/asm/restore.h
rename to criu/arch/aarch64/include/asm/restore.h
diff --git a/arch/aarch64/include/asm/restorer.h b/criu/arch/aarch64/include/asm/restorer.h
similarity index 100%
rename from arch/aarch64/include/asm/restorer.h
rename to criu/arch/aarch64/include/asm/restorer.h
diff --git a/arch/arm/include/asm/string.h b/criu/arch/aarch64/include/asm/string.h
similarity index 100%
rename from arch/arm/include/asm/string.h
rename to criu/arch/aarch64/include/asm/string.h
diff --git a/arch/aarch64/include/asm/syscall-aux.S b/criu/arch/aarch64/include/asm/syscall-aux.S
similarity index 100%
rename from arch/aarch64/include/asm/syscall-aux.S
rename to criu/arch/aarch64/include/asm/syscall-aux.S
diff --git a/arch/aarch64/include/asm/syscall-aux.h b/criu/arch/aarch64/include/asm/syscall-aux.h
similarity index 100%
rename from arch/aarch64/include/asm/syscall-aux.h
rename to criu/arch/aarch64/include/asm/syscall-aux.h
diff --git a/arch/aarch64/include/asm/types.h b/criu/arch/aarch64/include/asm/types.h
similarity index 100%
rename from arch/aarch64/include/asm/types.h
rename to criu/arch/aarch64/include/asm/types.h
diff --git a/arch/aarch64/include/asm/vdso.h b/criu/arch/aarch64/include/asm/vdso.h
similarity index 100%
rename from arch/aarch64/include/asm/vdso.h
rename to criu/arch/aarch64/include/asm/vdso.h
diff --git a/arch/aarch64/intraprocedure.S b/criu/arch/aarch64/intraprocedure.S
similarity index 100%
rename from arch/aarch64/intraprocedure.S
rename to criu/arch/aarch64/intraprocedure.S
diff --git a/arch/aarch64/parasite-head.S b/criu/arch/aarch64/parasite-head.S
similarity index 100%
rename from arch/aarch64/parasite-head.S
rename to criu/arch/aarch64/parasite-head.S
diff --git a/arch/aarch64/restorer.c b/criu/arch/aarch64/restorer.c
similarity index 100%
rename from arch/aarch64/restorer.c
rename to criu/arch/aarch64/restorer.c
diff --git a/arch/aarch64/syscall-common.S b/criu/arch/aarch64/syscalls/syscall-common.S
similarity index 100%
rename from arch/aarch64/syscall-common.S
rename to criu/arch/aarch64/syscalls/syscall-common.S
diff --git a/criu/arch/aarch64/syscalls/syscall.def b/criu/arch/aarch64/syscalls/syscall.def
new file mode 120000
index 000000000000..e9370a6e5485
--- /dev/null
+++ b/criu/arch/aarch64/syscalls/syscall.def
@@ -0,0 +1 @@
+../../arm/syscalls/syscall.def
\ No newline at end of file
diff --git a/arch/aarch64/vdso-pie.c b/criu/arch/aarch64/vdso-pie.c
similarity index 100%
rename from arch/aarch64/vdso-pie.c
rename to criu/arch/aarch64/vdso-pie.c
diff --git a/criu/arch/arm/Makefile b/criu/arch/arm/Makefile
new file mode 100644
index 000000000000..5db577340a7d
--- /dev/null
+++ b/criu/arch/arm/Makefile
@@ -0,0 +1,6 @@
+builtin-name := crtools.built-in.o
+
+ccflags-y += -iquote $(obj) -iquote $(SRC_DIR) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
+
+obj-y += cpu.o
+obj-y += crtools.o
diff --git a/criu/arch/arm/Makefile.syscalls b/criu/arch/arm/Makefile.syscalls
new file mode 100644
index 000000000000..527960602c79
--- /dev/null
+++ b/criu/arch/arm/Makefile.syscalls
@@ -0,0 +1,50 @@
+builtin-name := syscalls.built-in.o
+
+SYS-TYPES := ../../include/syscall-types.h
+SYS-CODES := ../../include/syscall-codes.h
+SYS-PROTO := ../../include/syscall.h
+
+SYS-DEF := syscall.def
+SYS-ASM-COMMON := syscall-common.S
+
+SYS-GEN := ../scripts/arm/gen-syscalls.pl
+SYS-GEN-TBL := ../scripts/arm/gen-sys-exec-tbl.pl
+
+asflags-y += -D__ASSEMBLY__ -nostdlib -fomit-frame-pointer
+asflags-y += -fpie -Wstrict-prototypes -Wa,--noexecstack
+asflags-y += -iquote $(obj) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
+
+SYS-ASM := syscalls.S
+obj-y += $(SYS-ASM:.S=).o
+
+ARCH_BITS := 32
+
+SYS-EXEC-TBL := sys-exec-tbl.c
+
+$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON)
+ $(E) " GEN " $@
+ $(Q) perl \
+ $(obj)/$(SYS-GEN) \
+ $(obj)/syscalls/$(SYS-DEF) \
+ $(obj)/$(SYS-CODES) \
+ $(obj)/$(SYS-PROTO) \
+ $(obj)/$(SYS-ASM) \
+ syscalls/$(SYS-ASM-COMMON) \
+ $(obj)/$(SYS-TYPES) \
+ $(ARCH_BITS)
+
+$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
+
+$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN-TBL) $(obj)/syscalls/$(SYS-DEF)
+ $(E) " GEN " $@
+ $(Q) perl \
+ $(obj)/$(SYS-GEN-TBL) \
+ $(obj)/syscalls/$(SYS-DEF) \
+ $(obj)/$(SYS-EXEC-TBL) \
+ $(ARCH_BITS)
+
+all-y += $(obj)/$(SYS-EXEC-TBL)
+
+cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
+cleanup-y += $(obj)/$(SYS-CODES)
+cleanup-y += $(obj)/$(SYS-PROTO)
diff --git a/arch/aarch64/cpu.c b/criu/arch/arm/cpu.c
similarity index 100%
rename from arch/aarch64/cpu.c
rename to criu/arch/arm/cpu.c
diff --git a/arch/arm/crtools.c b/criu/arch/arm/crtools.c
similarity index 100%
rename from arch/arm/crtools.c
rename to criu/arch/arm/crtools.c
diff --git a/arch/arm/include/asm/atomic.h b/criu/arch/arm/include/asm/atomic.h
similarity index 100%
rename from arch/arm/include/asm/atomic.h
rename to criu/arch/arm/include/asm/atomic.h
diff --git a/arch/aarch64/include/asm/bitops.h b/criu/arch/arm/include/asm/bitops.h
similarity index 100%
rename from arch/aarch64/include/asm/bitops.h
rename to criu/arch/arm/include/asm/bitops.h
diff --git a/arch/arm/include/asm/bitsperlong.h b/criu/arch/arm/include/asm/bitsperlong.h
similarity index 100%
rename from arch/arm/include/asm/bitsperlong.h
rename to criu/arch/arm/include/asm/bitsperlong.h
diff --git a/arch/arm/include/asm/cpu.h b/criu/arch/arm/include/asm/cpu.h
similarity index 100%
rename from arch/arm/include/asm/cpu.h
rename to criu/arch/arm/include/asm/cpu.h
diff --git a/arch/arm/include/asm/dump.h b/criu/arch/arm/include/asm/dump.h
similarity index 100%
rename from arch/arm/include/asm/dump.h
rename to criu/arch/arm/include/asm/dump.h
diff --git a/arch/arm/include/asm/fpu.h b/criu/arch/arm/include/asm/fpu.h
similarity index 100%
rename from arch/arm/include/asm/fpu.h
rename to criu/arch/arm/include/asm/fpu.h
diff --git a/arch/ppc64/include/asm/int.h b/criu/arch/arm/include/asm/int.h
similarity index 100%
rename from arch/ppc64/include/asm/int.h
rename to criu/arch/arm/include/asm/int.h
diff --git a/arch/aarch64/include/asm/linkage.h b/criu/arch/arm/include/asm/linkage.h
similarity index 100%
rename from arch/aarch64/include/asm/linkage.h
rename to criu/arch/arm/include/asm/linkage.h
diff --git a/arch/x86/include/asm/page.h b/criu/arch/arm/include/asm/page.h
similarity index 100%
rename from arch/x86/include/asm/page.h
rename to criu/arch/arm/include/asm/page.h
diff --git a/arch/arm/include/asm/parasite-syscall.h b/criu/arch/arm/include/asm/parasite-syscall.h
similarity index 100%
rename from arch/arm/include/asm/parasite-syscall.h
rename to criu/arch/arm/include/asm/parasite-syscall.h
diff --git a/arch/arm/include/asm/parasite.h b/criu/arch/arm/include/asm/parasite.h
similarity index 100%
rename from arch/arm/include/asm/parasite.h
rename to criu/arch/arm/include/asm/parasite.h
diff --git a/arch/arm/include/asm/processor-flags.h b/criu/arch/arm/include/asm/processor-flags.h
similarity index 100%
rename from arch/arm/include/asm/processor-flags.h
rename to criu/arch/arm/include/asm/processor-flags.h
diff --git a/arch/arm/include/asm/processor.h b/criu/arch/arm/include/asm/processor.h
similarity index 100%
rename from arch/arm/include/asm/processor.h
rename to criu/arch/arm/include/asm/processor.h
diff --git a/arch/arm/include/asm/restore.h b/criu/arch/arm/include/asm/restore.h
similarity index 100%
rename from arch/arm/include/asm/restore.h
rename to criu/arch/arm/include/asm/restore.h
diff --git a/arch/arm/include/asm/restorer.h b/criu/arch/arm/include/asm/restorer.h
similarity index 100%
rename from arch/arm/include/asm/restorer.h
rename to criu/arch/arm/include/asm/restorer.h
diff --git a/arch/aarch64/include/asm/string.h b/criu/arch/arm/include/asm/string.h
similarity index 100%
rename from arch/aarch64/include/asm/string.h
rename to criu/arch/arm/include/asm/string.h
diff --git a/arch/arm/include/asm/syscall-aux.S b/criu/arch/arm/include/asm/syscall-aux.S
similarity index 100%
rename from arch/arm/include/asm/syscall-aux.S
rename to criu/arch/arm/include/asm/syscall-aux.S
diff --git a/arch/arm/include/asm/syscall-aux.h b/criu/arch/arm/include/asm/syscall-aux.h
similarity index 100%
rename from arch/arm/include/asm/syscall-aux.h
rename to criu/arch/arm/include/asm/syscall-aux.h
diff --git a/arch/arm/include/asm/types.h b/criu/arch/arm/include/asm/types.h
similarity index 100%
rename from arch/arm/include/asm/types.h
rename to criu/arch/arm/include/asm/types.h
diff --git a/arch/arm/parasite-head.S b/criu/arch/arm/parasite-head.S
similarity index 100%
rename from arch/arm/parasite-head.S
rename to criu/arch/arm/parasite-head.S
diff --git a/arch/arm/restorer.c b/criu/arch/arm/restorer.c
similarity index 100%
rename from arch/arm/restorer.c
rename to criu/arch/arm/restorer.c
diff --git a/arch/arm/syscall-common.S b/criu/arch/arm/syscalls/syscall-common.S
similarity index 100%
rename from arch/arm/syscall-common.S
rename to criu/arch/arm/syscalls/syscall-common.S
diff --git a/arch/arm/syscall.def b/criu/arch/arm/syscalls/syscall.def
similarity index 100%
rename from arch/arm/syscall.def
rename to criu/arch/arm/syscalls/syscall.def
diff --git a/arch/arm/uidiv.S b/criu/arch/arm/uidiv.S
similarity index 100%
rename from arch/arm/uidiv.S
rename to criu/arch/arm/uidiv.S
diff --git a/criu/arch/ppc64/Makefile b/criu/arch/ppc64/Makefile
new file mode 100644
index 000000000000..5db577340a7d
--- /dev/null
+++ b/criu/arch/ppc64/Makefile
@@ -0,0 +1,6 @@
+builtin-name := crtools.built-in.o
+
+ccflags-y += -iquote $(obj) -iquote $(SRC_DIR) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
+
+obj-y += cpu.o
+obj-y += crtools.o
diff --git a/criu/arch/ppc64/Makefile.syscalls b/criu/arch/ppc64/Makefile.syscalls
new file mode 100644
index 000000000000..1b28ce7dc0df
--- /dev/null
+++ b/criu/arch/ppc64/Makefile.syscalls
@@ -0,0 +1,50 @@
+builtin-name := syscalls.built-in.o
+
+SYS-TYPES := ../../include/syscall-types.h
+SYS-CODES := ../../include/syscall-codes.h
+SYS-PROTO := ../../include/syscall.h
+SYS-DEF := syscall-ppc64.tbl
+SYS-ASM-COMMON := syscall-common-ppc64.S
+
+asflags-y += -D__ASSEMBLY__ -nostdlib -fomit-frame-pointer
+asflags-y += -fpie -Wstrict-prototypes -Wa,--noexecstack
+asflags-y += -iquote $(obj) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
+
+SYS-ASM := syscalls.S
+obj-y += $(SYS-ASM:.S=).o
+
+$(obj)/$(SYS-CODES): $(obj)/syscalls/$(SYS-DEF)
+ $(E) " GEN " $@
+ $(Q) echo "/* Autogenerated, don't edit */" > $@
+ $(Q) echo "#ifndef __ASM_CR_SYSCALL_CODES_H__" >> $@
+ $(Q) echo "#define __ASM_CR_SYSCALL_CODES_H__" >> $@
+ $(Q) cat $< | awk '/^__NR/{print "#define", $$1, $$2}' >> $@
+ $(Q) echo "#endif /* __ASM_CR_SYSCALL_CODES_H__ */" >> $@
+cleanup-y += $(obj)/$(SYS-CODES)
+
+$(obj)/$(SYS-PROTO): $(obj)/syscalls/$(SYS-DEF)
+ $(E) " GEN " $@
+ $(Q) echo "/* Autogenerated, don't edit */" > $@
+ $(Q) echo "#ifndef __ASM_CR_SYSCALL_PROTO_H__" >> $@
+ $(Q) echo "#define __ASM_CR_SYSCALL_PROTO_H__" >> $@
+ $(Q) echo "#include \"syscall-codes.h\"" >> $@
+ $(Q) echo "#include \"syscall-types.h\"" >> $@
+ $(Q) cat $< | awk '/^__NR/{print "extern long", $$3, substr($$0, index($$0,$$4)), ";"}' >> $@
+ $(Q) echo "#endif /* __ASM_CR_SYSCALL_PROTO_H__ */" >> $@
+cleanup-y += $(obj)/$(SYS-PROTO)
+
+$(obj)/$(SYS-ASM): $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON) $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
+ $(E) " GEN " $@
+ $(Q) echo "/* Autogenerated, don't edit */" > $@
+ $(Q) echo "#include \"syscall-codes.h\"" >> $@
+ $(Q) echo "#include \"syscalls/$(SYS-ASM-COMMON)\"" >> $@
+ $(Q) cat $< | awk '/^__NR/{print "SYSCALL(", $$3, ",", $$2, ")"}' >> $@
+cleanup-y += $(obj)/$(SYS-ASM)
+
+SYS-EXEC-TBL := sys-exec-tbl.c
+$(obj)/$(SYS-EXEC-TBL): $(obj)/syscalls/$(SYS-DEF) $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
+ $(E) " GEN " $@
+ $(Q) echo "/* Autogenerated, don't edit */" > $@
+ $(Q) cat $< | awk '/^__NR/{print "SYSCALL(", substr($$3, 5), ",", $$2, ")"}' >> $@
+cleanup-y += $(obj)/$(SYS-EXEC-TBL)
+all-y += $(obj)/$(SYS-EXEC-TBL)
diff --git a/arch/ppc64/cpu.c b/criu/arch/ppc64/cpu.c
similarity index 100%
rename from arch/ppc64/cpu.c
rename to criu/arch/ppc64/cpu.c
diff --git a/arch/ppc64/crtools.c b/criu/arch/ppc64/crtools.c
similarity index 100%
rename from arch/ppc64/crtools.c
rename to criu/arch/ppc64/crtools.c
diff --git a/arch/ppc64/include/asm/atomic.h b/criu/arch/ppc64/include/asm/atomic.h
similarity index 100%
rename from arch/ppc64/include/asm/atomic.h
rename to criu/arch/ppc64/include/asm/atomic.h
diff --git a/arch/ppc64/include/asm/bitops.h b/criu/arch/ppc64/include/asm/bitops.h
similarity index 100%
rename from arch/ppc64/include/asm/bitops.h
rename to criu/arch/ppc64/include/asm/bitops.h
diff --git a/arch/aarch64/include/asm/bitsperlong.h b/criu/arch/ppc64/include/asm/bitsperlong.h
similarity index 100%
rename from arch/aarch64/include/asm/bitsperlong.h
rename to criu/arch/ppc64/include/asm/bitsperlong.h
diff --git a/arch/ppc64/include/asm/cmpxchg.h b/criu/arch/ppc64/include/asm/cmpxchg.h
similarity index 100%
rename from arch/ppc64/include/asm/cmpxchg.h
rename to criu/arch/ppc64/include/asm/cmpxchg.h
diff --git a/arch/aarch64/include/asm/cpu.h b/criu/arch/ppc64/include/asm/cpu.h
similarity index 100%
rename from arch/aarch64/include/asm/cpu.h
rename to criu/arch/ppc64/include/asm/cpu.h
diff --git a/arch/x86/include/asm/dump.h b/criu/arch/ppc64/include/asm/dump.h
similarity index 100%
rename from arch/x86/include/asm/dump.h
rename to criu/arch/ppc64/include/asm/dump.h
diff --git a/arch/aarch64/include/asm/fpu.h b/criu/arch/ppc64/include/asm/fpu.h
similarity index 100%
rename from arch/aarch64/include/asm/fpu.h
rename to criu/arch/ppc64/include/asm/fpu.h
diff --git a/arch/arm/include/asm/int.h b/criu/arch/ppc64/include/asm/int.h
similarity index 100%
rename from arch/arm/include/asm/int.h
rename to criu/arch/ppc64/include/asm/int.h
diff --git a/arch/ppc64/include/asm/linkage.h b/criu/arch/ppc64/include/asm/linkage.h
similarity index 100%
rename from arch/ppc64/include/asm/linkage.h
rename to criu/arch/ppc64/include/asm/linkage.h
diff --git a/arch/ppc64/include/asm/page.h b/criu/arch/ppc64/include/asm/page.h
similarity index 100%
rename from arch/ppc64/include/asm/page.h
rename to criu/arch/ppc64/include/asm/page.h
diff --git a/arch/ppc64/include/asm/parasite-syscall.h b/criu/arch/ppc64/include/asm/parasite-syscall.h
similarity index 100%
rename from arch/ppc64/include/asm/parasite-syscall.h
rename to criu/arch/ppc64/include/asm/parasite-syscall.h
diff --git a/arch/ppc64/include/asm/parasite.h b/criu/arch/ppc64/include/asm/parasite.h
similarity index 100%
rename from arch/ppc64/include/asm/parasite.h
rename to criu/arch/ppc64/include/asm/parasite.h
diff --git a/arch/x86/include/asm/prlimit.h b/criu/arch/ppc64/include/asm/prlimit.h
similarity index 100%
rename from arch/x86/include/asm/prlimit.h
rename to criu/arch/ppc64/include/asm/prlimit.h
diff --git a/arch/aarch64/include/asm/processor-flags.h b/criu/arch/ppc64/include/asm/processor-flags.h
similarity index 100%
rename from arch/aarch64/include/asm/processor-flags.h
rename to criu/arch/ppc64/include/asm/processor-flags.h
diff --git a/arch/ppc64/include/asm/restore.h b/criu/arch/ppc64/include/asm/restore.h
similarity index 100%
rename from arch/ppc64/include/asm/restore.h
rename to criu/arch/ppc64/include/asm/restore.h
diff --git a/arch/ppc64/include/asm/restorer.h b/criu/arch/ppc64/include/asm/restorer.h
similarity index 100%
rename from arch/ppc64/include/asm/restorer.h
rename to criu/arch/ppc64/include/asm/restorer.h
diff --git a/arch/ppc64/include/asm/string.h b/criu/arch/ppc64/include/asm/string.h
similarity index 100%
rename from arch/ppc64/include/asm/string.h
rename to criu/arch/ppc64/include/asm/string.h
diff --git a/arch/ppc64/include/asm/types.h b/criu/arch/ppc64/include/asm/types.h
similarity index 100%
rename from arch/ppc64/include/asm/types.h
rename to criu/arch/ppc64/include/asm/types.h
diff --git a/arch/ppc64/include/asm/vdso.h b/criu/arch/ppc64/include/asm/vdso.h
similarity index 100%
rename from arch/ppc64/include/asm/vdso.h
rename to criu/arch/ppc64/include/asm/vdso.h
diff --git a/arch/ppc64/memcmp_64.S b/criu/arch/ppc64/memcmp_64.S
similarity index 100%
rename from arch/ppc64/memcmp_64.S
rename to criu/arch/ppc64/memcmp_64.S
diff --git a/arch/ppc64/memcpy_power7.S b/criu/arch/ppc64/memcpy_power7.S
similarity index 100%
rename from arch/ppc64/memcpy_power7.S
rename to criu/arch/ppc64/memcpy_power7.S
diff --git a/arch/ppc64/misc.S b/criu/arch/ppc64/misc.S
similarity index 100%
rename from arch/ppc64/misc.S
rename to criu/arch/ppc64/misc.S
diff --git a/arch/ppc64/parasite-head.S b/criu/arch/ppc64/parasite-head.S
similarity index 100%
rename from arch/ppc64/parasite-head.S
rename to criu/arch/ppc64/parasite-head.S
diff --git a/arch/ppc64/restorer.c b/criu/arch/ppc64/restorer.c
similarity index 100%
rename from arch/ppc64/restorer.c
rename to criu/arch/ppc64/restorer.c
diff --git a/arch/ppc64/syscall-common-ppc64.S b/criu/arch/ppc64/syscalls/syscall-common-ppc64.S
similarity index 100%
rename from arch/ppc64/syscall-common-ppc64.S
rename to criu/arch/ppc64/syscalls/syscall-common-ppc64.S
diff --git a/arch/ppc64/syscall-ppc64.def b/criu/arch/ppc64/syscalls/syscall-ppc64.tbl
similarity index 100%
rename from arch/ppc64/syscall-ppc64.def
rename to criu/arch/ppc64/syscalls/syscall-ppc64.tbl
diff --git a/arch/ppc64/vdso-pie.c b/criu/arch/ppc64/vdso-pie.c
similarity index 100%
rename from arch/ppc64/vdso-pie.c
rename to criu/arch/ppc64/vdso-pie.c
diff --git a/arch/ppc64/vdso-trampoline.S b/criu/arch/ppc64/vdso-trampoline.S
similarity index 100%
rename from arch/ppc64/vdso-trampoline.S
rename to criu/arch/ppc64/vdso-trampoline.S
diff --git a/arch/scripts/arm/gen-sys-exec-tbl.pl b/criu/arch/scripts/arm/gen-sys-exec-tbl.pl
similarity index 100%
rename from arch/scripts/arm/gen-sys-exec-tbl.pl
rename to criu/arch/scripts/arm/gen-sys-exec-tbl.pl
diff --git a/arch/scripts/arm/gen-syscalls.pl b/criu/arch/scripts/arm/gen-syscalls.pl
similarity index 100%
rename from arch/scripts/arm/gen-syscalls.pl
rename to criu/arch/scripts/arm/gen-syscalls.pl
diff --git a/criu/arch/x86/Makefile b/criu/arch/x86/Makefile
new file mode 100644
index 000000000000..369b41f28b6a
--- /dev/null
+++ b/criu/arch/x86/Makefile
@@ -0,0 +1,7 @@
+builtin-name := crtools.built-in.o
+
+ccflags-y += -iquote $(obj) -iquote $(SRC_DIR) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
+
+obj-y += cpu.o
+obj-y += crtools.o
+obj-y += prlimit.o
diff --git a/arch/x86/Makefile b/criu/arch/x86/Makefile.syscalls
similarity index 56%
rename from arch/x86/Makefile
rename to criu/arch/x86/Makefile.syscalls
index 2304915c7cc4..24841797bf5b 100644
--- a/arch/x86/Makefile
+++ b/criu/arch/x86/Makefile.syscalls
@@ -1,41 +1,27 @@
-targets += syscalls
-targets += crtools
+builtin-name := syscalls.built-in.o
-SYS-ASM := syscalls.S
-
-syscalls-asm-y += $(SYS-ASM:.S=).o
-crtools-obj-y += crtools.o
-crtools-obj-y += cpu.o
-crtools-obj-y += prlimit.o
-
-ifeq ($(ARCH),x86)
-SYS-DEF := syscall_64.tbl
-SYS-ASM-COMMON := syscall-common-x86-64.S
-else
-SYS-DEF := syscall_32.tbl
-SYS-ASM-COMMON := syscall-common-x86-32.S
-endif
-
-SYS-TYPES := ../../include/syscall-types.h
-SYS-CODES := ../../include/syscall-codes.h
-SYS-PROTO := ../../include/syscall.h
-
-SYS-EXEC-TBL := sys-exec-tbl.c
+SYS-TYPES := ../../include/syscall-types.h
+SYS-CODES := ../../include/syscall-codes.h
+SYS-PROTO := ../../include/syscall.h
ifeq ($(ARCH),x86)
-syscalls-asm-y-asmflags := -fpie -Wstrict-prototypes -Wa,--noexecstack
+ SYS-DEF := syscall_64.tbl
+ SYS-ASM-COMMON := syscall-common-x86-64.S
+ asflags-y += -fpie -Wstrict-prototypes -Wa,--noexecstack
else
-syscalls-asm-y-asmflags := -fno-pic -Wstrict-prototypes -Wa,--noexecstack
-endif
-syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
+ SYS-DEF := syscall_32.tbl
+ SYS-ASM-COMMON := syscall-common-x86-32.S
+ asflags-y += -fno-pic -Wstrict-prototypes -Wa,--noexecstack
+ obj-y += syscalls/syscall32.o
-ifneq ($(ARCH),x86)
-syscalls-obj-y += syscalls/syscall32.o
$(obj)/syscalls/syscall32.o: $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
endif
-cleanup-y += $(obj)/syscalls/*.o $(obj)/syscalls/*.d
-ASMFLAGS += -D__ASSEMBLY__
+asflags-y += -D__ASSEMBLY__ -nostdlib -fomit-frame-pointer
+asflags-y += -iquote $(obj) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
+
+SYS-ASM := syscalls.S
+obj-y += $(SYS-ASM:.S=).o
$(obj)/$(SYS-CODES): $(obj)/syscalls/$(SYS-DEF)
$(E) " GEN " $@
@@ -44,8 +30,7 @@ $(obj)/$(SYS-CODES): $(obj)/syscalls/$(SYS-DEF)
$(Q) echo "#define __ASM_CR_SYSCALL_CODES_H__" >> $@
$(Q) cat $< | awk '/^__NR/{print "#define", $$1, $$2}' >> $@
$(Q) echo "#endif /* __ASM_CR_SYSCALL_CODES_H__ */" >> $@
-_all += $(obj)/$(SYS-CODES)
-cleanup-y += $(obj)/$(SYS-CODES)
+cleanup-y += $(obj)/$(SYS-CODES)
$(obj)/$(SYS-PROTO): $(obj)/syscalls/$(SYS-DEF)
$(E) " GEN " $@
@@ -53,7 +38,7 @@ $(obj)/$(SYS-PROTO): $(obj)/syscalls/$(SYS-DEF)
$(Q) echo "#ifndef __ASM_CR_SYSCALL_PROTO_H__" >> $@
$(Q) echo "#define __ASM_CR_SYSCALL_PROTO_H__" >> $@
$(Q) echo "#ifndef CR_NOGLIBC" >> $@
- $(Q) echo "#error This file should only be used in the parasite code" >> $@
+ $(Q) echo "# error This file should only be used in the parasite code" >> $@
$(Q) echo "#endif" >> $@
$(Q) echo "#include \"syscall-codes.h\"" >> $@
$(Q) echo "#include \"syscall-types.h\"" >> $@
@@ -62,8 +47,7 @@ ifneq ($(ARCH),x86)
endif
$(Q) cat $< | awk '/^__NR/{print "extern long", $$3, substr($$0, index($$0,$$4)), ";"}' >> $@
$(Q) echo "#endif /* __ASM_CR_SYSCALL_PROTO_H__ */" >> $@
-_all += $(obj)/$(SYS-PROTO)
-cleanup-y += $(obj)/$(SYS-PROTO)
+cleanup-y += $(obj)/$(SYS-PROTO)
$(obj)/$(SYS-ASM): $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON) $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
$(E) " GEN " $@
@@ -71,21 +55,12 @@ $(obj)/$(SYS-ASM): $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON)
$(Q) echo "#include \"syscall-codes.h\"" >> $@
$(Q) echo "#include \"syscalls/$(SYS-ASM-COMMON)\"" >> $@
$(Q) cat $< | awk '/^__NR/{print "SYSCALL(", $$3, ",", $$2, ")"}' >> $@
-_all += $(obj)/$(SYS-ASM)
-cleanup-y += $(obj)/$(SYS-ASM)
-
-$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
+cleanup-y += $(obj)/$(SYS-ASM)
+SYS-EXEC-TBL := sys-exec-tbl.c
$(obj)/$(SYS-EXEC-TBL): $(obj)/syscalls/$(SYS-DEF) $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
$(E) " GEN " $@
$(Q) echo "/* Autogenerated, don't edit */" > $@
$(Q) cat $< | awk '/^__NR/{print "SYSCALL(", substr($$3, 5), ",", $$2, ")"}' >> $@
-_all += $(obj)/$(SYS-EXEC-TBL)
-cleanup-y += $(obj)/$(SYS-EXEC-TBL)
-
-$(obj)/crtools.built-in.o: | $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
-
-ifneq ($(MAKECMDGOALS),clean)
-deps-after := $(obj)/$(SYS-ASM)
-incdeps := y
-endif
+cleanup-y += $(obj)/$(SYS-EXEC-TBL)
+all-y += $(obj)/$(SYS-EXEC-TBL)
diff --git a/arch/x86/cpu.c b/criu/arch/x86/cpu.c
similarity index 100%
rename from arch/x86/cpu.c
rename to criu/arch/x86/cpu.c
diff --git a/arch/x86/crtools.c b/criu/arch/x86/crtools.c
similarity index 100%
rename from arch/x86/crtools.c
rename to criu/arch/x86/crtools.c
diff --git a/arch/x86/include/asm/atomic.h b/criu/arch/x86/include/asm/atomic.h
similarity index 100%
rename from arch/x86/include/asm/atomic.h
rename to criu/arch/x86/include/asm/atomic.h
diff --git a/arch/x86/include/asm/bitops.h b/criu/arch/x86/include/asm/bitops.h
similarity index 100%
rename from arch/x86/include/asm/bitops.h
rename to criu/arch/x86/include/asm/bitops.h
diff --git a/arch/x86/include/asm/bitsperlong.h b/criu/arch/x86/include/asm/bitsperlong.h
similarity index 100%
rename from arch/x86/include/asm/bitsperlong.h
rename to criu/arch/x86/include/asm/bitsperlong.h
diff --git a/arch/x86/include/asm/cmpxchg.h b/criu/arch/x86/include/asm/cmpxchg.h
similarity index 100%
rename from arch/x86/include/asm/cmpxchg.h
rename to criu/arch/x86/include/asm/cmpxchg.h
diff --git a/arch/x86/include/asm/cpu.h b/criu/arch/x86/include/asm/cpu.h
similarity index 100%
rename from arch/x86/include/asm/cpu.h
rename to criu/arch/x86/include/asm/cpu.h
diff --git a/arch/ppc64/include/asm/dump.h b/criu/arch/x86/include/asm/dump.h
similarity index 100%
rename from arch/ppc64/include/asm/dump.h
rename to criu/arch/x86/include/asm/dump.h
diff --git a/arch/x86/include/asm/fpu.h b/criu/arch/x86/include/asm/fpu.h
similarity index 100%
rename from arch/x86/include/asm/fpu.h
rename to criu/arch/x86/include/asm/fpu.h
diff --git a/arch/aarch64/include/asm/int.h b/criu/arch/x86/include/asm/int.h
similarity index 100%
rename from arch/aarch64/include/asm/int.h
rename to criu/arch/x86/include/asm/int.h
diff --git a/arch/x86/include/asm/linkage.h b/criu/arch/x86/include/asm/linkage.h
similarity index 100%
rename from arch/x86/include/asm/linkage.h
rename to criu/arch/x86/include/asm/linkage.h
diff --git a/arch/arm/include/asm/page.h b/criu/arch/x86/include/asm/page.h
similarity index 100%
rename from arch/arm/include/asm/page.h
rename to criu/arch/x86/include/asm/page.h
diff --git a/arch/x86/include/asm/parasite-syscall.h b/criu/arch/x86/include/asm/parasite-syscall.h
similarity index 100%
rename from arch/x86/include/asm/parasite-syscall.h
rename to criu/arch/x86/include/asm/parasite-syscall.h
diff --git a/arch/x86/include/asm/parasite.h b/criu/arch/x86/include/asm/parasite.h
similarity index 100%
rename from arch/x86/include/asm/parasite.h
rename to criu/arch/x86/include/asm/parasite.h
diff --git a/arch/ppc64/include/asm/prlimit.h b/criu/arch/x86/include/asm/prlimit.h
similarity index 100%
rename from arch/ppc64/include/asm/prlimit.h
rename to criu/arch/x86/include/asm/prlimit.h
diff --git a/arch/x86/include/asm/processor-flags.h b/criu/arch/x86/include/asm/processor-flags.h
similarity index 100%
rename from arch/x86/include/asm/processor-flags.h
rename to criu/arch/x86/include/asm/processor-flags.h
diff --git a/arch/x86/include/asm/restore.h b/criu/arch/x86/include/asm/restore.h
similarity index 100%
rename from arch/x86/include/asm/restore.h
rename to criu/arch/x86/include/asm/restore.h
diff --git a/arch/x86/include/asm/restorer.h b/criu/arch/x86/include/asm/restorer.h
similarity index 100%
rename from arch/x86/include/asm/restorer.h
rename to criu/arch/x86/include/asm/restorer.h
diff --git a/arch/x86/include/asm/string.h b/criu/arch/x86/include/asm/string.h
similarity index 100%
rename from arch/x86/include/asm/string.h
rename to criu/arch/x86/include/asm/string.h
diff --git a/arch/x86/include/asm/syscall32.h b/criu/arch/x86/include/asm/syscall32.h
similarity index 100%
rename from arch/x86/include/asm/syscall32.h
rename to criu/arch/x86/include/asm/syscall32.h
diff --git a/arch/x86/include/asm/types.h b/criu/arch/x86/include/asm/types.h
similarity index 100%
rename from arch/x86/include/asm/types.h
rename to criu/arch/x86/include/asm/types.h
diff --git a/arch/x86/include/asm/vdso.h b/criu/arch/x86/include/asm/vdso.h
similarity index 100%
rename from arch/x86/include/asm/vdso.h
rename to criu/arch/x86/include/asm/vdso.h
diff --git a/arch/x86/parasite-head.S b/criu/arch/x86/parasite-head.S
similarity index 100%
rename from arch/x86/parasite-head.S
rename to criu/arch/x86/parasite-head.S
diff --git a/arch/x86/prlimit.c b/criu/arch/x86/prlimit.c
similarity index 100%
rename from arch/x86/prlimit.c
rename to criu/arch/x86/prlimit.c
diff --git a/arch/x86/restorer.c b/criu/arch/x86/restorer.c
similarity index 100%
rename from arch/x86/restorer.c
rename to criu/arch/x86/restorer.c
diff --git a/arch/x86/syscalls/syscall-common-x86-32.S b/criu/arch/x86/syscalls/syscall-common-x86-32.S
similarity index 100%
rename from arch/x86/syscalls/syscall-common-x86-32.S
rename to criu/arch/x86/syscalls/syscall-common-x86-32.S
diff --git a/arch/x86/syscalls/syscall-common-x86-64.S b/criu/arch/x86/syscalls/syscall-common-x86-64.S
similarity index 100%
rename from arch/x86/syscalls/syscall-common-x86-64.S
rename to criu/arch/x86/syscalls/syscall-common-x86-64.S
diff --git a/arch/x86/syscalls/syscall32.c b/criu/arch/x86/syscalls/syscall32.c
similarity index 100%
rename from arch/x86/syscalls/syscall32.c
rename to criu/arch/x86/syscalls/syscall32.c
diff --git a/arch/x86/syscalls/syscall_32.tbl b/criu/arch/x86/syscalls/syscall_32.tbl
similarity index 100%
rename from arch/x86/syscalls/syscall_32.tbl
rename to criu/arch/x86/syscalls/syscall_32.tbl
diff --git a/arch/x86/syscalls/syscall_64.tbl b/criu/arch/x86/syscalls/syscall_64.tbl
similarity index 100%
rename from arch/x86/syscalls/syscall_64.tbl
rename to criu/arch/x86/syscalls/syscall_64.tbl
diff --git a/arch/x86/vdso-pie.c b/criu/arch/x86/vdso-pie.c
similarity index 100%
rename from arch/x86/vdso-pie.c
rename to criu/arch/x86/vdso-pie.c
diff --git a/bfd.c b/criu/bfd.c
similarity index 100%
rename from bfd.c
rename to criu/bfd.c
diff --git a/bitmap.c b/criu/bitmap.c
similarity index 100%
rename from bitmap.c
rename to criu/bitmap.c
diff --git a/cgroup.c b/criu/cgroup.c
similarity index 100%
rename from cgroup.c
rename to criu/cgroup.c
diff --git a/cr-check.c b/criu/cr-check.c
similarity index 100%
rename from cr-check.c
rename to criu/cr-check.c
diff --git a/cr-dedup.c b/criu/cr-dedup.c
similarity index 100%
rename from cr-dedup.c
rename to criu/cr-dedup.c
diff --git a/cr-dump.c b/criu/cr-dump.c
similarity index 100%
rename from cr-dump.c
rename to criu/cr-dump.c
diff --git a/cr-errno.c b/criu/cr-errno.c
similarity index 100%
rename from cr-errno.c
rename to criu/cr-errno.c
diff --git a/cr-exec.c b/criu/cr-exec.c
similarity index 100%
rename from cr-exec.c
rename to criu/cr-exec.c
diff --git a/cr-restore.c b/criu/cr-restore.c
similarity index 100%
rename from cr-restore.c
rename to criu/cr-restore.c
diff --git a/cr-service.c b/criu/cr-service.c
similarity index 100%
rename from cr-service.c
rename to criu/cr-service.c
diff --git a/cr-show.c b/criu/cr-show.c
similarity index 100%
rename from cr-show.c
rename to criu/cr-show.c
diff --git a/crtools.c b/criu/crtools.c
similarity index 100%
rename from crtools.c
rename to criu/crtools.c
diff --git a/eventfd.c b/criu/eventfd.c
similarity index 100%
rename from eventfd.c
rename to criu/eventfd.c
diff --git a/eventpoll.c b/criu/eventpoll.c
similarity index 100%
rename from eventpoll.c
rename to criu/eventpoll.c
diff --git a/fault-injection.c b/criu/fault-injection.c
similarity index 100%
rename from fault-injection.c
rename to criu/fault-injection.c
diff --git a/fifo.c b/criu/fifo.c
similarity index 100%
rename from fifo.c
rename to criu/fifo.c
diff --git a/file-ids.c b/criu/file-ids.c
similarity index 100%
rename from file-ids.c
rename to criu/file-ids.c
diff --git a/file-lock.c b/criu/file-lock.c
similarity index 100%
rename from file-lock.c
rename to criu/file-lock.c
diff --git a/files-ext.c b/criu/files-ext.c
similarity index 100%
rename from files-ext.c
rename to criu/files-ext.c
diff --git a/files-reg.c b/criu/files-reg.c
similarity index 100%
rename from files-reg.c
rename to criu/files-reg.c
diff --git a/files.c b/criu/files.c
similarity index 100%
rename from files.c
rename to criu/files.c
diff --git a/fsnotify.c b/criu/fsnotify.c
similarity index 100%
rename from fsnotify.c
rename to criu/fsnotify.c
diff --git a/image-desc.c b/criu/image-desc.c
similarity index 100%
rename from image-desc.c
rename to criu/image-desc.c
diff --git a/image.c b/criu/image.c
similarity index 100%
rename from image.c
rename to criu/image.c
diff --git a/include/action-scripts.h b/criu/include/action-scripts.h
similarity index 100%
rename from include/action-scripts.h
rename to criu/include/action-scripts.h
diff --git a/include/aio.h b/criu/include/aio.h
similarity index 100%
rename from include/aio.h
rename to criu/include/aio.h
diff --git a/include/asm-generic/bitops.h b/criu/include/asm-generic/bitops.h
similarity index 100%
rename from include/asm-generic/bitops.h
rename to criu/include/asm-generic/bitops.h
diff --git a/include/asm-generic/int.h b/criu/include/asm-generic/int.h
similarity index 100%
rename from include/asm-generic/int.h
rename to criu/include/asm-generic/int.h
diff --git a/include/asm-generic/string.h b/criu/include/asm-generic/string.h
similarity index 100%
rename from include/asm-generic/string.h
rename to criu/include/asm-generic/string.h
diff --git a/include/asm-generic/vdso.h b/criu/include/asm-generic/vdso.h
similarity index 100%
rename from include/asm-generic/vdso.h
rename to criu/include/asm-generic/vdso.h
diff --git a/include/bfd.h b/criu/include/bfd.h
similarity index 100%
rename from include/bfd.h
rename to criu/include/bfd.h
diff --git a/include/bitmap.h b/criu/include/bitmap.h
similarity index 100%
rename from include/bitmap.h
rename to criu/include/bitmap.h
diff --git a/include/bug.h b/criu/include/bug.h
similarity index 100%
rename from include/bug.h
rename to criu/include/bug.h
diff --git a/include/cgroup.h b/criu/include/cgroup.h
similarity index 100%
rename from include/cgroup.h
rename to criu/include/cgroup.h
diff --git a/include/compiler.h b/criu/include/compiler.h
similarity index 100%
rename from include/compiler.h
rename to criu/include/compiler.h
diff --git a/include/config-base.h b/criu/include/config-base.h
similarity index 100%
rename from include/config-base.h
rename to criu/include/config-base.h
diff --git a/include/cpu.h b/criu/include/cpu.h
similarity index 100%
rename from include/cpu.h
rename to criu/include/cpu.h
diff --git a/include/cr-errno.h b/criu/include/cr-errno.h
similarity index 100%
rename from include/cr-errno.h
rename to criu/include/cr-errno.h
diff --git a/include/cr-service-const.h b/criu/include/cr-service-const.h
similarity index 100%
rename from include/cr-service-const.h
rename to criu/include/cr-service-const.h
diff --git a/include/cr-service.h b/criu/include/cr-service.h
similarity index 100%
rename from include/cr-service.h
rename to criu/include/cr-service.h
diff --git a/include/cr-show.h b/criu/include/cr-show.h
similarity index 100%
rename from include/cr-show.h
rename to criu/include/cr-show.h
diff --git a/include/cr_options.h b/criu/include/cr_options.h
similarity index 100%
rename from include/cr_options.h
rename to criu/include/cr_options.h
diff --git a/include/criu-log.h b/criu/include/criu-log.h
similarity index 100%
rename from include/criu-log.h
rename to criu/include/criu-log.h
diff --git a/include/criu-plugin.h b/criu/include/criu-plugin.h
similarity index 100%
rename from include/criu-plugin.h
rename to criu/include/criu-plugin.h
diff --git a/include/crtools.h b/criu/include/crtools.h
similarity index 100%
rename from include/crtools.h
rename to criu/include/crtools.h
diff --git a/include/err.h b/criu/include/err.h
similarity index 100%
rename from include/err.h
rename to criu/include/err.h
diff --git a/include/errno.h b/criu/include/errno.h
similarity index 100%
rename from include/errno.h
rename to criu/include/errno.h
diff --git a/include/eventfd.h b/criu/include/eventfd.h
similarity index 100%
rename from include/eventfd.h
rename to criu/include/eventfd.h
diff --git a/include/eventpoll.h b/criu/include/eventpoll.h
similarity index 100%
rename from include/eventpoll.h
rename to criu/include/eventpoll.h
diff --git a/include/fault-injection.h b/criu/include/fault-injection.h
similarity index 100%
rename from include/fault-injection.h
rename to criu/include/fault-injection.h
diff --git a/include/fcntl.h b/criu/include/fcntl.h
similarity index 100%
rename from include/fcntl.h
rename to criu/include/fcntl.h
diff --git a/include/fifo.h b/criu/include/fifo.h
similarity index 100%
rename from include/fifo.h
rename to criu/include/fifo.h
diff --git a/include/file-ids.h b/criu/include/file-ids.h
similarity index 100%
rename from include/file-ids.h
rename to criu/include/file-ids.h
diff --git a/include/file-lock.h b/criu/include/file-lock.h
similarity index 100%
rename from include/file-lock.h
rename to criu/include/file-lock.h
diff --git a/include/files-reg.h b/criu/include/files-reg.h
similarity index 100%
rename from include/files-reg.h
rename to criu/include/files-reg.h
diff --git a/include/files.h b/criu/include/files.h
similarity index 100%
rename from include/files.h
rename to criu/include/files.h
diff --git a/include/fs-magic.h b/criu/include/fs-magic.h
similarity index 100%
rename from include/fs-magic.h
rename to criu/include/fs-magic.h
diff --git a/include/fsnotify.h b/criu/include/fsnotify.h
similarity index 100%
rename from include/fsnotify.h
rename to criu/include/fsnotify.h
diff --git a/include/image-desc.h b/criu/include/image-desc.h
similarity index 100%
rename from include/image-desc.h
rename to criu/include/image-desc.h
diff --git a/include/image.h b/criu/include/image.h
similarity index 100%
rename from include/image.h
rename to criu/include/image.h
diff --git a/include/imgset.h b/criu/include/imgset.h
similarity index 100%
rename from include/imgset.h
rename to criu/include/imgset.h
diff --git a/include/inet_diag.h b/criu/include/inet_diag.h
similarity index 100%
rename from include/inet_diag.h
rename to criu/include/inet_diag.h
diff --git a/include/ipc_ns.h b/criu/include/ipc_ns.h
similarity index 100%
rename from include/ipc_ns.h
rename to criu/include/ipc_ns.h
diff --git a/include/irmap.h b/criu/include/irmap.h
similarity index 100%
rename from include/irmap.h
rename to criu/include/irmap.h
diff --git a/include/kcmp-ids.h b/criu/include/kcmp-ids.h
similarity index 100%
rename from include/kcmp-ids.h
rename to criu/include/kcmp-ids.h
diff --git a/include/kcmp.h b/criu/include/kcmp.h
similarity index 100%
rename from include/kcmp.h
rename to criu/include/kcmp.h
diff --git a/include/kerndat.h b/criu/include/kerndat.h
similarity index 100%
rename from include/kerndat.h
rename to criu/include/kerndat.h
diff --git a/include/libnetlink.h b/criu/include/libnetlink.h
similarity index 100%
rename from include/libnetlink.h
rename to criu/include/libnetlink.h
diff --git a/include/list.h b/criu/include/list.h
similarity index 100%
rename from include/list.h
rename to criu/include/list.h
diff --git a/include/lock.h b/criu/include/lock.h
similarity index 100%
rename from include/lock.h
rename to criu/include/lock.h
diff --git a/include/log.h b/criu/include/log.h
similarity index 100%
rename from include/log.h
rename to criu/include/log.h
diff --git a/include/lsm.h b/criu/include/lsm.h
similarity index 100%
rename from include/lsm.h
rename to criu/include/lsm.h
diff --git a/include/magic.h b/criu/include/magic.h
similarity index 100%
rename from include/magic.h
rename to criu/include/magic.h
diff --git a/include/mem.h b/criu/include/mem.h
similarity index 100%
rename from include/mem.h
rename to criu/include/mem.h
diff --git a/include/mman.h b/criu/include/mman.h
similarity index 100%
rename from include/mman.h
rename to criu/include/mman.h
diff --git a/include/mount.h b/criu/include/mount.h
similarity index 100%
rename from include/mount.h
rename to criu/include/mount.h
diff --git a/include/namespaces.h b/criu/include/namespaces.h
similarity index 100%
rename from include/namespaces.h
rename to criu/include/namespaces.h
diff --git a/include/net.h b/criu/include/net.h
similarity index 100%
rename from include/net.h
rename to criu/include/net.h
diff --git a/include/netfilter.h b/criu/include/netfilter.h
similarity index 100%
rename from include/netfilter.h
rename to criu/include/netfilter.h
diff --git a/include/netlink_diag.h b/criu/include/netlink_diag.h
similarity index 100%
rename from include/netlink_diag.h
rename to criu/include/netlink_diag.h
diff --git a/include/packet_diag.h b/criu/include/packet_diag.h
similarity index 100%
rename from include/packet_diag.h
rename to criu/include/packet_diag.h
diff --git a/include/page-pipe.h b/criu/include/page-pipe.h
similarity index 100%
rename from include/page-pipe.h
rename to criu/include/page-pipe.h
diff --git a/include/page-read.h b/criu/include/page-read.h
similarity index 100%
rename from include/page-read.h
rename to criu/include/page-read.h
diff --git a/include/page-xfer.h b/criu/include/page-xfer.h
similarity index 100%
rename from include/page-xfer.h
rename to criu/include/page-xfer.h
diff --git a/include/pagemap-cache.h b/criu/include/pagemap-cache.h
similarity index 100%
rename from include/pagemap-cache.h
rename to criu/include/pagemap-cache.h
diff --git a/include/parasite-syscall.h b/criu/include/parasite-syscall.h
similarity index 100%
rename from include/parasite-syscall.h
rename to criu/include/parasite-syscall.h
diff --git a/include/parasite-vdso.h b/criu/include/parasite-vdso.h
similarity index 100%
rename from include/parasite-vdso.h
rename to criu/include/parasite-vdso.h
diff --git a/include/parasite.h b/criu/include/parasite.h
similarity index 100%
rename from include/parasite.h
rename to criu/include/parasite.h
diff --git a/include/pid.h b/criu/include/pid.h
similarity index 100%
rename from include/pid.h
rename to criu/include/pid.h
diff --git a/include/pipes.h b/criu/include/pipes.h
similarity index 100%
rename from include/pipes.h
rename to criu/include/pipes.h
diff --git a/include/plugin.h b/criu/include/plugin.h
similarity index 100%
rename from include/plugin.h
rename to criu/include/plugin.h
diff --git a/include/posix-timer.h b/criu/include/posix-timer.h
similarity index 100%
rename from include/posix-timer.h
rename to criu/include/posix-timer.h
diff --git a/include/prctl.h b/criu/include/prctl.h
similarity index 100%
rename from include/prctl.h
rename to criu/include/prctl.h
diff --git a/include/proc_parse.h b/criu/include/proc_parse.h
similarity index 100%
rename from include/proc_parse.h
rename to criu/include/proc_parse.h
diff --git a/include/protobuf-desc.h b/criu/include/protobuf-desc.h
similarity index 100%
rename from include/protobuf-desc.h
rename to criu/include/protobuf-desc.h
diff --git a/include/protobuf.h b/criu/include/protobuf.h
similarity index 100%
rename from include/protobuf.h
rename to criu/include/protobuf.h
diff --git a/include/pstree.h b/criu/include/pstree.h
similarity index 100%
rename from include/pstree.h
rename to criu/include/pstree.h
diff --git a/include/ptrace.h b/criu/include/ptrace.h
similarity index 100%
rename from include/ptrace.h
rename to criu/include/ptrace.h
diff --git a/include/rbtree.h b/criu/include/rbtree.h
similarity index 100%
rename from include/rbtree.h
rename to criu/include/rbtree.h
diff --git a/include/restorer.h b/criu/include/restorer.h
similarity index 100%
rename from include/restorer.h
rename to criu/include/restorer.h
diff --git a/include/rst-malloc.h b/criu/include/rst-malloc.h
similarity index 100%
rename from include/rst-malloc.h
rename to criu/include/rst-malloc.h
diff --git a/include/rst_info.h b/criu/include/rst_info.h
similarity index 100%
rename from include/rst_info.h
rename to criu/include/rst_info.h
diff --git a/include/seccomp.h b/criu/include/seccomp.h
similarity index 100%
rename from include/seccomp.h
rename to criu/include/seccomp.h
diff --git a/include/seize.h b/criu/include/seize.h
similarity index 100%
rename from include/seize.h
rename to criu/include/seize.h
diff --git a/include/servicefd.h b/criu/include/servicefd.h
similarity index 100%
rename from include/servicefd.h
rename to criu/include/servicefd.h
diff --git a/include/setproctitle.h b/criu/include/setproctitle.h
similarity index 100%
rename from include/setproctitle.h
rename to criu/include/setproctitle.h
diff --git a/include/shmem.h b/criu/include/shmem.h
similarity index 100%
rename from include/shmem.h
rename to criu/include/shmem.h
diff --git a/include/sigframe.h b/criu/include/sigframe.h
similarity index 100%
rename from include/sigframe.h
rename to criu/include/sigframe.h
diff --git a/include/signalfd.h b/criu/include/signalfd.h
similarity index 100%
rename from include/signalfd.h
rename to criu/include/signalfd.h
diff --git a/include/sk-inet.h b/criu/include/sk-inet.h
similarity index 100%
rename from include/sk-inet.h
rename to criu/include/sk-inet.h
diff --git a/include/sk-packet.h b/criu/include/sk-packet.h
similarity index 100%
rename from include/sk-packet.h
rename to criu/include/sk-packet.h
diff --git a/include/sk-queue.h b/criu/include/sk-queue.h
similarity index 100%
rename from include/sk-queue.h
rename to criu/include/sk-queue.h
diff --git a/include/sockets.h b/criu/include/sockets.h
similarity index 100%
rename from include/sockets.h
rename to criu/include/sockets.h
diff --git a/include/stats.h b/criu/include/stats.h
similarity index 100%
rename from include/stats.h
rename to criu/include/stats.h
diff --git a/include/string.h b/criu/include/string.h
similarity index 100%
rename from include/string.h
rename to criu/include/string.h
diff --git a/include/syscall-types.h b/criu/include/syscall-types.h
similarity index 100%
rename from include/syscall-types.h
rename to criu/include/syscall-types.h
diff --git a/include/sysctl.h b/criu/include/sysctl.h
similarity index 100%
rename from include/sysctl.h
rename to criu/include/sysctl.h
diff --git a/include/sysfs_parse.h b/criu/include/sysfs_parse.h
similarity index 100%
rename from include/sysfs_parse.h
rename to criu/include/sysfs_parse.h
diff --git a/include/timerfd.h b/criu/include/timerfd.h
similarity index 100%
rename from include/timerfd.h
rename to criu/include/timerfd.h
diff --git a/include/tty.h b/criu/include/tty.h
similarity index 100%
rename from include/tty.h
rename to criu/include/tty.h
diff --git a/include/tun.h b/criu/include/tun.h
similarity index 100%
rename from include/tun.h
rename to criu/include/tun.h
diff --git a/include/unix_diag.h b/criu/include/unix_diag.h
similarity index 100%
rename from include/unix_diag.h
rename to criu/include/unix_diag.h
diff --git a/include/util-pie.h b/criu/include/util-pie.h
similarity index 100%
rename from include/util-pie.h
rename to criu/include/util-pie.h
diff --git a/include/util-vdso.h b/criu/include/util-vdso.h
similarity index 100%
rename from include/util-vdso.h
rename to criu/include/util-vdso.h
diff --git a/include/util.h b/criu/include/util.h
similarity index 100%
rename from include/util.h
rename to criu/include/util.h
diff --git a/include/uts_ns.h b/criu/include/uts_ns.h
similarity index 100%
rename from include/uts_ns.h
rename to criu/include/uts_ns.h
diff --git a/include/vdso.h b/criu/include/vdso.h
similarity index 100%
rename from include/vdso.h
rename to criu/include/vdso.h
diff --git a/include/vma.h b/criu/include/vma.h
similarity index 100%
rename from include/vma.h
rename to criu/include/vma.h
diff --git a/include/xmalloc.h b/criu/include/xmalloc.h
similarity index 100%
rename from include/xmalloc.h
rename to criu/include/xmalloc.h
diff --git a/ipc_ns.c b/criu/ipc_ns.c
similarity index 100%
rename from ipc_ns.c
rename to criu/ipc_ns.c
diff --git a/irmap.c b/criu/irmap.c
similarity index 100%
rename from irmap.c
rename to criu/irmap.c
diff --git a/kcmp-ids.c b/criu/kcmp-ids.c
similarity index 100%
rename from kcmp-ids.c
rename to criu/kcmp-ids.c
diff --git a/kerndat.c b/criu/kerndat.c
similarity index 100%
rename from kerndat.c
rename to criu/kerndat.c
diff --git a/libnetlink.c b/criu/libnetlink.c
similarity index 100%
rename from libnetlink.c
rename to criu/libnetlink.c
diff --git a/log.c b/criu/log.c
similarity index 100%
rename from log.c
rename to criu/log.c
diff --git a/lsm.c b/criu/lsm.c
similarity index 100%
rename from lsm.c
rename to criu/lsm.c
diff --git a/mem.c b/criu/mem.c
similarity index 100%
rename from mem.c
rename to criu/mem.c
diff --git a/mount.c b/criu/mount.c
similarity index 100%
rename from mount.c
rename to criu/mount.c
diff --git a/namespaces.c b/criu/namespaces.c
similarity index 100%
rename from namespaces.c
rename to criu/namespaces.c
diff --git a/net.c b/criu/net.c
similarity index 100%
rename from net.c
rename to criu/net.c
diff --git a/netfilter.c b/criu/netfilter.c
similarity index 100%
rename from netfilter.c
rename to criu/netfilter.c
diff --git a/page-pipe.c b/criu/page-pipe.c
similarity index 100%
rename from page-pipe.c
rename to criu/page-pipe.c
diff --git a/page-read.c b/criu/page-read.c
similarity index 100%
rename from page-read.c
rename to criu/page-read.c
diff --git a/page-xfer.c b/criu/page-xfer.c
similarity index 100%
rename from page-xfer.c
rename to criu/page-xfer.c
diff --git a/pagemap-cache.c b/criu/pagemap-cache.c
similarity index 100%
rename from pagemap-cache.c
rename to criu/pagemap-cache.c
diff --git a/parasite-syscall.c b/criu/parasite-syscall.c
similarity index 100%
rename from parasite-syscall.c
rename to criu/parasite-syscall.c
diff --git a/criu/pie-util-fd.c b/criu/pie-util-fd.c
new file mode 120000
index 000000000000..4af261ede48c
--- /dev/null
+++ b/criu/pie-util-fd.c
@@ -0,0 +1 @@
+pie/util-fd.c
\ No newline at end of file
diff --git a/criu/pie-util-vdso.c b/criu/pie-util-vdso.c
new file mode 120000
index 000000000000..6e56238c237c
--- /dev/null
+++ b/criu/pie-util-vdso.c
@@ -0,0 +1 @@
+pie/util-vdso.c
\ No newline at end of file
diff --git a/criu/pie-util.c b/criu/pie-util.c
new file mode 120000
index 000000000000..238f297c82e7
--- /dev/null
+++ b/criu/pie-util.c
@@ -0,0 +1 @@
+pie/util.c
\ No newline at end of file
diff --git a/pie/Makefile b/criu/pie/Makefile
similarity index 50%
rename from pie/Makefile
rename to criu/pie/Makefile
index fd48da92ea43..5197e1b2d442 100644
--- a/pie/Makefile
+++ b/criu/pie/Makefile
@@ -1,38 +1,13 @@
-targets += parasite
-targets += restorer
-
-# used by obj-x to identify shared files built for parasite/restorer binaries
-xsuffix := -pie-build
-
-obj-y += log-simple.o
-obj-x += util.o
-obj-x += util-fd.o
-
-ifeq ($(VDSO),y)
-obj-x += util-vdso.o
-obj-y += parasite-vdso.o
-obj-e += $(ARCH_DIR)/vdso-pie.o
-ifeq ($(SRCARCH),aarch64)
-asm-e += $(ARCH_DIR)/intraprocedure.o
-endif
-ifeq ($(SRCARCH), ppc64)
-asm-e += $(ARCH_DIR)/vdso-trampoline.o
-endif
-endif
-
-ifeq ($(SRCARCH), ppc64)
-asm-e += $(ARCH_DIR)/memcpy_power7.o
-asm-e += $(ARCH_DIR)/memcmp_64.o
-asm-e += $(ARCH_DIR)/misc.o
-endif
+target += parasite
+target += restorer
parasite-obj-y += parasite.o
-parasite-asm-e += $(ARCH_DIR)/parasite-head.o
-parasite-libs-e += $(SYSCALL-LIB)
+parasite-obj-y += ./$(ARCH_DIR)/parasite-head.o
+parasite-obj-e += ./$(ARCH_DIR)/syscalls.built-in.o
restorer-obj-y += restorer.o
-restorer-obj-e += $(ARCH_DIR)/restorer.o
-restorer-libs-e += $(SYSCALL-LIB)
+restorer-obj-y += ./$(ARCH_DIR)/restorer.o
+restorer-obj-e += ./$(ARCH_DIR)/syscalls.built-in.o
#
# We can't provide proper mount implementation
@@ -40,20 +15,21 @@ restorer-libs-e += $(SYSCALL-LIB)
# applications, which is not the target of the
# project.
#
-CFLAGS := $(filter-out -pg,$(CFLAGS)) -iquote pie/piegen
+CFLAGS := $(filter-out -pg,$(CFLAGS)) -iquote pie/piegen -iquote arch/$(ARCH)/include -iquote $(SRC_DIR) -iquote $(SRC_DIR)/criu/include
-ifneq ($(filter-out i386 ia32, $(ARCH)),)
-cflags-y += -DCR_NOGLIBC -fpie -Wa,--noexecstack -fno-stack-protector
+ifneq ($(filter-out ia32,$(ARCH)),)
+ ccflags-y += -DCR_NOGLIBC -fpie -Wa,--noexecstack -fno-stack-protector
else
-cflags-y += -DCR_NOGLIBC -fno-pic -Wa,--noexecstack -fno-stack-protector
+ ccflags-y += -DCR_NOGLIBC -fno-pic -Wa,--noexecstack -fno-stack-protector
endif
-ifeq ($(SRCARCH), arm)
- cflags-y += -marm
+ifeq ($(SRCARCH),arm)
+ ccflags-y += -marm
endif
-ASMFLAGS += -D__ASSEMBLY__
-GEN-OFFSETS := ../scripts/gen-offsets.sh
+asflags-y += -D__ASSEMBLY__
+
+GEN-OFFSETS := $(obj)/../../scripts/gen-offsets.sh
BLOBS := $(obj)/parasite-blob.h $(obj)/restorer-blob.h
PIELDS := pie.lds.S
@@ -61,24 +37,23 @@ PIELDS := pie.lds.S
.SECONDARY:
ifeq ($(piegen-y),y)
-ldflags-y += -r
target-name = $(patsubst pie/%-blob.h,%,$(1))
ifeq ($(SRCARCH),ppc64)
$(obj)/$(PIELDS): $(obj)/pie-reloc.lds.S.in
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) echo "OUTPUT_ARCH($(LDARCH))" > $(obj)/$(PIELDS)
$(Q) cat $< >> $(obj)/$(PIELDS)
else
ifeq ($(ARCH),x86)
$(obj)/$(PIELDS): $(obj)/pie-reloc.lds.S.in
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) echo "OUTPUT_ARCH(i386:x86-64)" > $(obj)/$(PIELDS)
$(Q) echo "TARGET(elf64-x86-64)" >> $(obj)/$(PIELDS)
$(Q) cat $< >> $(obj)/$(PIELDS)
else # i386 ia32
$(obj)/$(PIELDS): $(obj)/pie-reloc.lds.S.in
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) echo "OUTPUT_ARCH(i386)" > $(obj)/$(PIELDS)
$(Q) echo "TARGET(elf32-i386)" >> $(obj)/$(PIELDS)
$(Q) cat $< >> $(obj)/$(PIELDS)
@@ -86,47 +61,43 @@ endif
endif
ifeq ($(strip $(V)),)
-piegen_stdout = >/dev/null
+ piegen_stdout := >/dev/null
endif
-$(obj)/%.built-in.bin.o: $(obj)/%.built-in.o $(obj)/$(PIELDS)
- $(E) " GEN " $@
- $(Q) $(LD) $(ldflags-y) -T $(obj)/$(PIELDS) -o $@ $<
+$(obj)/%.built-in.bin.o: $(obj)/%.built-in.o $(obj)/lib.a $(obj)/$(PIELDS)
+ $(call msg-gen, $@)
+ $(Q) $(LD) -r -T $(obj)/$(PIELDS) -o $@ $< $(obj)/lib.a
$(obj)/%-blob.h: $(obj)/%.built-in.bin.o $(obj)/$(PIELDS) pie/piegen
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) pie/piegen/piegen -f $< -v $(call target-name,$@)_relocs -p $(call target-name,$@)_blob_offset__ -s $(call target-name,$@)_blob -o $@ $(piegen_stdout)
else
$(obj)/$(PIELDS): $(obj)/$(PIELDS).in
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) $(SH) -c "echo 'OUTPUT_ARCH($(LDARCH))' > $(obj)/$(PIELDS)"
$(Q) $(SH) -c "cat $(obj)/$(PIELDS).in >> $(obj)/$(PIELDS)"
$(obj)/%.built-in.bin.o: $(obj)/%.built-in.o $(obj)/$(PIELDS)
- $(E) " GEN " $@
- $(Q) $(LD) $(ldflags-y) -T $(obj)/$(PIELDS) -o $@ $<
+ $(call msg-gen, $@)
+ $(Q) $(LD) -r -T $(obj)/$(PIELDS) -o $@ $<
$(obj)/%.built-in.bin: $(obj)/%.built-in.bin.o
- $(E) " GEN " $@
+ $(call msg-gen, $@)
$(Q) $(OBJCOPY) -O binary $^ $@
-$(obj)/%-blob.h: $(obj)/%.built-in.bin $(obj)/$(GEN-OFFSETS)
- $(E) " GEN " $@
- $(Q) $(SH) $(obj)/$(GEN-OFFSETS) $(@:-blob.h=) $(notdir $(@:-blob.h=)) $(CROSS_COMPILE) > $@
+$(obj)/%-blob.h: $(obj)/%.built-in.bin $(GEN-OFFSETS)
+ $(call msg-gen, $@)
+ $(Q) $(SH) $(GEN-OFFSETS) $(@:-blob.h=) $(notdir $(@:-blob.h=)) $(CROSS_COMPILE) > $@
endif
$(BLOBS): $(obj)/$(PIELDS)
-_all += $(BLOBS)
+all-y += $(BLOBS)
cleanup-y += $(obj)/$(PIELDS)
cleanup-y += $(obj)/*.bin
cleanup-y += $(BLOBS)
cleanup-y += $(obj)/*.built-in.bin.o
cleanup-y += $(obj)/*.built-in.bin
-
-ifneq ($(MAKECMDGOALS),clean)
-incdeps := y
-endif
diff --git a/criu/pie/Makefile.library b/criu/pie/Makefile.library
new file mode 100644
index 000000000000..b96d2f05b578
--- /dev/null
+++ b/criu/pie/Makefile.library
@@ -0,0 +1,43 @@
+lib-y += log-simple.o
+lib-y += util-fd.o
+lib-y += util.o
+
+ifeq ($(VDSO),y)
+ lib-y += util-vdso.o
+ lib-y += parasite-vdso.o
+ lib-y += ./$(ARCH_DIR)/vdso-pie.o
+
+ ifeq ($(SRCARCH),aarch64)
+ lib-y += ./$(ARCH_DIR)/intraprocedure.o
+ endif
+
+ ifeq ($(SRCARCH),ppc64)
+ lib-y += ./$(ARCH_DIR)/vdso-trampoline.o
+ endif
+endif
+
+ifeq ($(SRCARCH),ppc64)
+ lib-y += ./$(ARCH_DIR)/memcpy_power7.o
+ lib-y += ./$(ARCH_DIR)/memcmp_64.o
+ lib-y += ./$(ARCH_DIR)/misc.o
+endif
+
+#
+# We can't provide proper mount implementation
+# in parasite code -- it requires run-time rellocation
+# applications, which is not the target of the
+# project.
+#
+iquotes := -iquote pie/piegen -iquote arch/$(ARCH)/include -iquote $(SRC_DIR) -iquote $(SRC_DIR)/criu/include
+ccflags-y := $(filter-out -pg,$(CFLAGS)) $(iquotes)
+asflags-y := -D__ASSEMBLY__ $(iquotes)
+
+ifeq ($(SRCARCH),arm)
+ ccflags-y += -marm
+endif
+
+ifneq ($(filter-out ia32,$(ARCH)),)
+ ccflags-y += -DCR_NOGLIBC -fpie -Wa,--noexecstack -fno-stack-protector
+else
+ ccflags-y += -DCR_NOGLIBC -fno-pic -Wa,--noexecstack -fno-stack-protector
+endif
diff --git a/pie/log-simple.c b/criu/pie/log-simple.c
similarity index 100%
rename from pie/log-simple.c
rename to criu/pie/log-simple.c
diff --git a/pie/parasite-vdso.c b/criu/pie/parasite-vdso.c
similarity index 100%
rename from pie/parasite-vdso.c
rename to criu/pie/parasite-vdso.c
diff --git a/pie/parasite.c b/criu/pie/parasite.c
similarity index 100%
rename from pie/parasite.c
rename to criu/pie/parasite.c
diff --git a/pie/pie-reloc.lds.S.in b/criu/pie/pie-reloc.lds.S.in
similarity index 100%
rename from pie/pie-reloc.lds.S.in
rename to criu/pie/pie-reloc.lds.S.in
diff --git a/pie/pie-relocs.c b/criu/pie/pie-relocs.c
similarity index 100%
rename from pie/pie-relocs.c
rename to criu/pie/pie-relocs.c
diff --git a/pie/pie-relocs.h b/criu/pie/pie-relocs.h
similarity index 100%
rename from pie/pie-relocs.h
rename to criu/pie/pie-relocs.h
diff --git a/pie/pie.lds.S.in b/criu/pie/pie.lds.S.in
similarity index 100%
rename from pie/pie.lds.S.in
rename to criu/pie/pie.lds.S.in
diff --git a/pie/piegen/Makefile b/criu/pie/piegen/Makefile
similarity index 100%
rename from pie/piegen/Makefile
rename to criu/pie/piegen/Makefile
diff --git a/pie/piegen/elf-ppc64.c b/criu/pie/piegen/elf-ppc64.c
similarity index 100%
rename from pie/piegen/elf-ppc64.c
rename to criu/pie/piegen/elf-ppc64.c
diff --git a/pie/piegen/elf-x86-32.c b/criu/pie/piegen/elf-x86-32.c
similarity index 100%
rename from pie/piegen/elf-x86-32.c
rename to criu/pie/piegen/elf-x86-32.c
diff --git a/pie/piegen/elf-x86-64.c b/criu/pie/piegen/elf-x86-64.c
similarity index 100%
rename from pie/piegen/elf-x86-64.c
rename to criu/pie/piegen/elf-x86-64.c
diff --git a/pie/piegen/elf.c b/criu/pie/piegen/elf.c
similarity index 100%
rename from pie/piegen/elf.c
rename to criu/pie/piegen/elf.c
diff --git a/pie/piegen/main.c b/criu/pie/piegen/main.c
similarity index 100%
rename from pie/piegen/main.c
rename to criu/pie/piegen/main.c
diff --git a/pie/piegen/piegen.h b/criu/pie/piegen/piegen.h
similarity index 100%
rename from pie/piegen/piegen.h
rename to criu/pie/piegen/piegen.h
diff --git a/pie/piegen/uapi/types.h b/criu/pie/piegen/uapi/types.h
similarity index 100%
rename from pie/piegen/uapi/types.h
rename to criu/pie/piegen/uapi/types.h
diff --git a/pie/restorer.c b/criu/pie/restorer.c
similarity index 100%
rename from pie/restorer.c
rename to criu/pie/restorer.c
diff --git a/pie/util-fd.c b/criu/pie/util-fd.c
similarity index 100%
rename from pie/util-fd.c
rename to criu/pie/util-fd.c
diff --git a/pie/util-vdso.c b/criu/pie/util-vdso.c
similarity index 100%
rename from pie/util-vdso.c
rename to criu/pie/util-vdso.c
diff --git a/pie/util.c b/criu/pie/util.c
similarity index 100%
rename from pie/util.c
rename to criu/pie/util.c
diff --git a/pipes.c b/criu/pipes.c
similarity index 100%
rename from pipes.c
rename to criu/pipes.c
diff --git a/plugin.c b/criu/plugin.c
similarity index 100%
rename from plugin.c
rename to criu/plugin.c
diff --git a/proc_parse.c b/criu/proc_parse.c
similarity index 100%
rename from proc_parse.c
rename to criu/proc_parse.c
diff --git a/protobuf-desc.c b/criu/protobuf-desc.c
similarity index 100%
rename from protobuf-desc.c
rename to criu/protobuf-desc.c
diff --git a/protobuf.c b/criu/protobuf.c
similarity index 100%
rename from protobuf.c
rename to criu/protobuf.c
diff --git a/pstree.c b/criu/pstree.c
similarity index 100%
rename from pstree.c
rename to criu/pstree.c
diff --git a/ptrace.c b/criu/ptrace.c
similarity index 100%
rename from ptrace.c
rename to criu/ptrace.c
diff --git a/rbtree.c b/criu/rbtree.c
similarity index 100%
rename from rbtree.c
rename to criu/rbtree.c
diff --git a/rst-malloc.c b/criu/rst-malloc.c
similarity index 100%
rename from rst-malloc.c
rename to criu/rst-malloc.c
diff --git a/seccomp.c b/criu/seccomp.c
similarity index 100%
rename from seccomp.c
rename to criu/seccomp.c
diff --git a/seize.c b/criu/seize.c
similarity index 100%
rename from seize.c
rename to criu/seize.c
diff --git a/shmem.c b/criu/shmem.c
similarity index 100%
rename from shmem.c
rename to criu/shmem.c
diff --git a/sigframe.c b/criu/sigframe.c
similarity index 100%
rename from sigframe.c
rename to criu/sigframe.c
diff --git a/signalfd.c b/criu/signalfd.c
similarity index 100%
rename from signalfd.c
rename to criu/signalfd.c
diff --git a/sk-inet.c b/criu/sk-inet.c
similarity index 100%
rename from sk-inet.c
rename to criu/sk-inet.c
diff --git a/sk-netlink.c b/criu/sk-netlink.c
similarity index 100%
rename from sk-netlink.c
rename to criu/sk-netlink.c
diff --git a/sk-packet.c b/criu/sk-packet.c
similarity index 100%
rename from sk-packet.c
rename to criu/sk-packet.c
diff --git a/sk-queue.c b/criu/sk-queue.c
similarity index 100%
rename from sk-queue.c
rename to criu/sk-queue.c
diff --git a/sk-tcp.c b/criu/sk-tcp.c
similarity index 100%
rename from sk-tcp.c
rename to criu/sk-tcp.c
diff --git a/sk-unix.c b/criu/sk-unix.c
similarity index 100%
rename from sk-unix.c
rename to criu/sk-unix.c
diff --git a/sockets.c b/criu/sockets.c
similarity index 100%
rename from sockets.c
rename to criu/sockets.c
diff --git a/stats.c b/criu/stats.c
similarity index 100%
rename from stats.c
rename to criu/stats.c
diff --git a/string.c b/criu/string.c
similarity index 100%
rename from string.c
rename to criu/string.c
diff --git a/sysctl.c b/criu/sysctl.c
similarity index 100%
rename from sysctl.c
rename to criu/sysctl.c
diff --git a/sysfs_parse.c b/criu/sysfs_parse.c
similarity index 100%
rename from sysfs_parse.c
rename to criu/sysfs_parse.c
diff --git a/timerfd.c b/criu/timerfd.c
similarity index 100%
rename from timerfd.c
rename to criu/timerfd.c
diff --git a/tty.c b/criu/tty.c
similarity index 100%
rename from tty.c
rename to criu/tty.c
diff --git a/tun.c b/criu/tun.c
similarity index 100%
rename from tun.c
rename to criu/tun.c
diff --git a/util.c b/criu/util.c
similarity index 100%
rename from util.c
rename to criu/util.c
diff --git a/uts_ns.c b/criu/uts_ns.c
similarity index 100%
rename from uts_ns.c
rename to criu/uts_ns.c
diff --git a/vdso.c b/criu/vdso.c
similarity index 100%
rename from vdso.c
rename to criu/vdso.c
diff --git a/crtools b/crtools
deleted file mode 120000
index 33c504fed369..000000000000
--- a/crtools
+++ /dev/null
@@ -1 +0,0 @@
-criu
\ No newline at end of file
diff --git a/images/Makefile b/images/Makefile
index 12089a2192ab..16ecb6ab54ef 100644
--- a/images/Makefile
+++ b/images/Makefile
@@ -59,7 +59,7 @@ proto-obj-y += seccomp.o
proto-obj-y += binfmt-misc.o
proto-obj-y += time.o
-CFLAGS += -I$(obj)/
+CFLAGS += -iquote $(obj)/
#
# Generates a set of names from protobuf "import" directive.
@@ -101,8 +101,6 @@ $(obj)/built-in.o: $(addprefix $(obj)/,$(proto-obj-y))
$(E) " LINK " $@
$(Q) $(LD) $(ldflags-y) -r -o $@ $^
-_all += $(obj)/built-in.o
-
ifneq ($(MAKECMDGOALS),clean)
-include $(addprefix $(obj)/,$(proto-obj-y:.o=.pb-c.d))
endif
@@ -112,4 +110,3 @@ cleanup-y += $(obj)/google/protobuf/*.d
cleanup-y += $(obj)/google/protobuf/*.h
cleanup-y += $(obj)/google/protobuf/*.c
cleanup-y += $(obj)/google/protobuf/*.o
-cleanup-y += $(obj)/*.d $(obj)/*.i $(obj)/*.s $(obj)/*.o
diff --git a/lib/Makefile b/lib/Makefile
index f07e07b9051e..d1b0450599f8 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -15,11 +15,11 @@ c/built-in.o:
$(call msg-gen, $@)
$(Q) $(MAKE) $(build)=c all
-ccflags-so += $(CFLAGS) -rdynamic -Wl,-soname,$(lib-so).so.$(VERSION_SO_MAJOR)
+cflags-so += $(CFLAGS) -rdynamic -Wl,-soname,$(lib-so).so.$(VERSION_SO_MAJOR)
ldflags-so += -lprotobuf-c
c/$(CRIU_SO): c/built-in.o
$(call msg-link, $@)
- $(Q) $(CC) -shared $(ccflags-so) -o $@ $^ $(ldflags-so) $(LDFLAGS)
+ $(Q) $(CC) -shared $(cflags-so) -o $@ $^ $(ldflags-so) $(LDFLAGS)
lib-c: c/$(CRIU_SO)
PHONY += lib-c
@@ -40,3 +40,5 @@ clean:
all: $(PHONY)
@true
PHONY += all
+
+.PHONY: $(PHONY) clean
diff --git a/lib/c/Makefile b/lib/c/Makefile
index 16b4ef194004..21bf856142cd 100644
--- a/lib/c/Makefile
+++ b/lib/c/Makefile
@@ -1,13 +1,7 @@
obj-y += criu.o
obj-y += $(SRC_DIR)/images/rpc.pb-c.o
-ccflags-y += -iquote $(SRC_DIR)/crtools/$(ARCH_DIR)/include
-ccflags-y += -iquote $(SRC_DIR)/crtools/include -iquote $(obj)/..
+ccflags-y += -iquote $(SRC_DIR)/criu/$(ARCH_DIR)/include
+ccflags-y += -iquote $(SRC_DIR)/criu/include -iquote $(obj)/..
ccflags-y += -iquote $(SRC_DIR)/images
ccflags-y += -fPIC -Wa,--noexecstack -fno-stack-protector
-
-#
-# Remove once criu moved into proper place.
-ccflags-y += -iquote $(SRC_DIR)/$(ARCH_DIR)/include
-ccflags-y += -iquote $(SRC_DIR)/include -iquote $(obj)/..
-ccflags-y += -iquote $(SRC_DIR)/images
diff --git a/lib/py/Makefile b/lib/py/Makefile
index 135fe1c01600..582cc93dea84 100644
--- a/lib/py/Makefile
+++ b/lib/py/Makefile
@@ -8,7 +8,7 @@ images:
# rpc_pb2.py doesn't depend on any other file, so
# it is safe to rename it, dropping ugly _pb2 suffix.
rpc.py:
- $(Q) protoc -I=$(SRC_DIR)/protobuf/ --python_out=./ $(SRC_DIR)/protobuf/$(@:.py=.proto)
+ $(Q) protoc -I=$(SRC_DIR)/images/ --python_out=./ $(SRC_DIR)/images/$(@:.py=.proto)
$(Q) mv $(@:.py=_pb2.py) $@
clean:
diff --git a/lib/py/images/Makefile b/lib/py/images/Makefile
index 98a450065465..c8a748e5c02c 100644
--- a/lib/py/images/Makefile
+++ b/lib/py/images/Makefile
@@ -1,22 +1,21 @@
-all: pb.py protobuf magic.py
+all: pb.py images magic.py
-.PHONY: all protobuf clean pb.py
+.PHONY: all images clean pb.py
-proto := $(filter-out $(SRC_DIR)/protobuf/rpc.proto, $(sort $(wildcard $(SRC_DIR)/protobuf/*.proto)))
+proto := $(filter-out $(SRC_DIR)/images/rpc.proto, $(sort $(wildcard $(SRC_DIR)/images/*.proto)))
proto-py-modules := $(foreach m,$(proto),$(subst -,_,$(notdir $(m:.proto=_pb2))))
-# We don't need rpc_pb2.py here, as it is not related to the
-# images.
+# We don't need rpc_pb2.py here, as it is not related to the images.
# Unfortunately, we can't drop ugly _pb2 suffixes here, because
# some _pb2 files depend on others _pb2 files.
-protobuf:
- $(Q) protoc -I=$(SRC_DIR)/protobuf -I=/usr/include/ --python_out=./ $(proto)
+images:
+ $(Q) protoc -I=$(SRC_DIR)/images -I=/usr/include/ --python_out=./ $(proto)
-magic.py: $(SRC_DIR)/scripts/magic-gen.py $(SRC_DIR)/include/magic.h
- $(E) " GEN " $@
+magic.py: $(SRC_DIR)/scripts/magic-gen.py $(SRC_DIR)/criu/include/magic.h
+ $(call msg-gen, $@)
$(Q) python $^ $@
-pb.py: protobuf
+pb.py: images
$(Q) echo "# Autogenerated. Do not edit!" > $@
$(Q) for m in $(proto-py-modules); do \
echo "from $$m import *" >> $@ ;\
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
deleted file mode 100644
index ee0b800063e1..000000000000
--- a/scripts/Makefile.build
+++ /dev/null
@@ -1,251 +0,0 @@
-##
-## General helpers for simplified Makefiles.
-##
-MAKEFLAGS := -r -R --no-print-directory
-
-targets :=
-deps :=
-deps-after :=
-all-objs :=
-incdeps :=
-_all :=
-_cleanup-y :=
-
-include scripts/Makefile.rules
-include $(obj)/$(makefile)
-
-##
-## Append targets to be auto-cleanuped
-define add-cleanup-obj-c-by-name
-_cleanup-y+= $(1).o
-_cleanup-y+= $(1).i
-_cleanup-y+= $(1).d
-_cleanup-y+= $(1).s
-endef
-
-define add-cleanup-obj-S-by-name
-_cleanup-y+= $(1).o
-_cleanup-y+= $(1).d
-_cleanup-y+= $(1).i
-endef
-
-##
-##
-## Generate a bundle of rules for C files
-define gen-target-c-bundle
-$(eval $(call gen-rule-o-from-c-by-name,$(1),$(2),$(3)))
-$(eval $(call gen-rule-i-from-c-by-name,$(1),$(2),$(3)))
-$(eval $(call gen-rule-d-from-c-by-name,$(1),$(2),$(3)))
-$(eval $(call gen-rule-s-from-c-by-name,$(1),$(2),$(3)))
-$(eval $(call add-cleanup-obj-c-by-name,$(1)))
-endef
-
-##
-##
-## Generate a bundle of rules for S files
-define gen-target-S-bundle
-$(eval $(call gen-rule-o-from-S-by-name,$(1),$(2),$(3)))
-$(eval $(call gen-rule-d-from-S-by-name,$(1),$(2),$(3)))
-$(eval $(call gen-rule-i-from-S-by-name,$(1),$(2),$(3)))
-$(eval $(call add-cleanup-obj-S-by-name,$(1)))
-endef
-
-##
-##
-## Shared or standalone targets
-ifneq ($(obj-y),)
-obj-y := $(addprefix $(obj)/, $(obj-y))
-$(foreach file, \
- $(obj-y), \
- $(eval \
- $(call gen-target-c-bundle, \
- $(file:.o=),$(file:.o=))))
-all-objs += $(obj-y)
-deps += $(obj-y:.o=.d)
-endif
-
-ifneq ($(obj-x),)
-obj-x := $(addprefix $(obj)/, $(obj-x))
-obj-x := $(addsuffix $(xsuffix).o, $(obj-x:.o=))
-$(foreach file, \
- $(obj-x), \
- $(eval \
- $(call gen-target-c-bundle, \
- $(file:$(xsuffix).o=),$(file:.o=))))
-all-objs += $(obj-x)
-deps += $(obj-x:.o=.d)
-cleanup-y += $(obj-x) $(obj-x:.o=.d)
-endif
-
-ifneq ($(obj-e),)
-$(foreach file, \
- $(obj-e), \
- $(eval \
- $(call gen-target-c-bundle, \
- $(file:.o=),$(file:.o=))))
-all-objs += $(obj-e)
-deps += $(obj-e:.o=.d)
-endif
-
-ifneq ($(asm-y),)
-asm-y := $(addprefix $(obj)/, $(asm-y))
-$(foreach file, \
- $(asm-y), \
- $(eval \
- $(call gen-target-S-bundle, \
- $(file:.o=),$(file:.o=))))
-all-objs += $(asm-y)
-deps += $(asm-y:.o=.d)
-endif
-
-ifneq ($(asm-e),)
-$(foreach file, \
- $(asm-e), \
- $(eval \
- $(call gen-target-S-bundle, \
- $(file:.o=),$(file:.o=))))
-all-objs += $(asm-e)
-deps += $(asm-e:.o=.d)
-endif
-
-##
-##
-## Standalone files where sources are kept in external
-## directories. Usually needed when same source files
-## are compiled with different flags.
-ifneq ($(obj-ext-src-y),)
-__obj-ext-src-y := $(addprefix $(obj)/, $(notdir $(obj-ext-src-y)))
-$(foreach file, \
- $(obj-ext-src-y), \
- $(eval \
- $(call gen-target-c-bundle, \
- $(file:.o=), \
- $(addprefix $(obj)/,$(notdir $(file:.o=))))))
-all-objs += $(__obj-ext-src-y)
-deps += $(__obj-ext-src-y:.o=.d)
-cleanup-y += $(__obj-ext-src-y) $(__obj-ext-src-y:.o=.d)
-endif
-
-##
-##
-## Generate rules for a target
-define gen-target-rules
-
-$(1)-all-objs :=
-
-ifneq ($($(1)-obj-y),)
- $(foreach file, \
- $($(1)-obj-y), \
- $(eval \
- $(call gen-target-c-bundle, \
- $(obj)/$(file:.o=), \
- $(obj)/$(file:.o=), \
- $($(1)-obj-y-cflags))))
- $(1)-all-objs += $$(addprefix $(obj)/, $($(1)-obj-y))
- deps += $$(addprefix $(obj)/, $($(1)-obj-y:.o=.d))
-endif
-
-ifneq ($($(1)-obj-e),)
- $(foreach file, \
- $($(1)-obj-e), \
- $(eval \
- $(call gen-target-c-bundle, \
- $(file:.o=), \
- $(file:.o=), \
- $($(1)-obj-e-cflags))))
- $(1)-all-objs += $$($(1)-obj-e)
- deps += $$($(1)-obj-e:.o=.d)
-endif
-
-ifneq ($($(1)-asm-y),)
- $(foreach file, \
- $($(1)-asm-y), \
- $(eval \
- $(call gen-target-S-bundle, \
- $(obj)/$(file:.o=), \
- $(obj)/$(file:.o=), \
- $($(1)-asm-y-asmflags))))
- $(1)-all-objs += $$(addprefix $(obj)/, $($(1)-asm-y))
- deps += $$($(1)-asm-y:.o=.d)
-endif
-
-ifneq ($($(1)-asm-e),)
- $(foreach file, \
- $($(1)-asm-e), \
- $(eval \
- $(call gen-target-S-bundle, \
- $(file:.o=), \
- $(file:.o=), \
- $($(1)-asm-e-asmflags))))
- $(1)-all-objs += $$($(1)-asm-e)
- deps += $$($(1)-asm-e:.o=.d)
-endif
-
-$(1)-all-objs += $(all-objs)
-
-$$(obj)/$(1).built-in.o: $$($(1)-all-objs) $$($(1)-libs-e) $(libs-e)
- $$(E) " LINK " $$@
- $$(Q) $$(LD) $$(ldflags-y) -r -o $$@ $$^
-
-_all += $$(obj)/$(1).built-in.o
-cleanup-y += $$(obj)/$(1).built-in.o
-endef
-
-##
-##
-## Walk over all targets and generate rules they require
-$(foreach target, \
- $(targets), \
- $(eval \
- $(call gen-target-rules,$(target))))
-
-##
-##
-## No targets -- just builtin default one
-ifeq ($(targets),)
-ifneq ($(all-objs),)
-$(obj)/built-in.o: $(all-objs) $(libs-e)
- $(E) " LINK " $@
- $(Q) $(LD) $(ldflags-y) -r -o $@ $^
-
-_all += $(obj)/built-in.o
-cleanup-y += $(obj)/built-in.o
-endif
-endif
-
-##
-## A rule for building library.
-ifneq ($(lib-so),)
-$(obj)/$(lib-so).so: $(all-objs) $(libs-e)
- $(E) " LINK " $@
- $(Q) $(CC) -shared $(cflags-so) -o $@ $^ $(ldflags-so) $(LDFLAGS)
-
-_all += $(obj)/$(lib-so).so
-cleanup-y += $(obj)/$(lib-so).so
-endif
-
-##
-##
-## Include deps if requested
-ifneq ($(incdeps),)
-ifneq ($(deps-after),)
-$(deps): | $(deps-after)
-endif
--include $(deps)
-endif
-
-##
-##
-## Autocomplete cleanups
-cleanup-y += $(_cleanup-y)
-
-##
-## Predefined .PHONY targets
-.PHONY: all clean
-
-all: $(_all)
- @true
-
-clean:
- $(E) " CLEANUP " $(obj)
- $(Q) $(RM) $(cleanup-y)
diff --git a/scripts/Makefile.rules b/scripts/Makefile.rules
deleted file mode 100644
index 229131091e6f..000000000000
--- a/scripts/Makefile.rules
+++ /dev/null
@@ -1,52 +0,0 @@
-##
-##
-## These are per-file generators.
-##
-define gen-rule-o-from-c-by-name
-$(2).o: $(1).c
- $$(E) " CC " $$@
- $$(Q) $$(CC) -c $$(CFLAGS) $$(cflags-y) $(3) $$< -o $$@
-endef
-
-define gen-rule-i-from-c-by-name
-$(2).i: $(1).c
- $$(E) " CC " $$@
- $$(Q) $$(CC) -E $$(CFLAGS) $$(cflags-y) $(3) $$< -o $$@
-endef
-
-define gen-rule-s-from-c-by-name
-$(2).s: $(1).c
- $$(E) " CC " $$@
- $$(Q) $$(CC) -S $$(CFLAGS) $$(cflags-y) $(3) -fverbose-asm $$< -o $$@
-endef
-
-define gen-rule-o-from-S-by-name
-$(2).o: $(1).S
- $$(E) " CC " $$@
- $$(Q) $$(CC) -c $$(CFLAGS) $$(cflags-y) $(3) $$(ASMFLAGS) $(4) $$< -o $$@
-endef
-
-define gen-rule-d-from-c-by-name
-$(2).d: $(1).c
- $$(E) " DEP " $$@
- $$(Q) $$(CC) -M -MT $$@ -MT $$(patsubst %.d,%.o,$$@) $$(CFLAGS) $$(cflags-y) $(3) $$< -o $$@
-endef
-
-define gen-rule-d-from-S-by-name
-$(2).d: $(1).S
- $$(E) " DEP " $$@
- $$(Q) $$(CC) -M -MT $$@ -MT $$(patsubst %.d,%.o,$$@) $$(CFLAGS) $$(cflags-y) $(3) $$< -o $$@
-endef
-
-define gen-rule-i-from-S-by-name
-$(2).i: $(1).S
- $$(E) " CC " $$@
- $$(Q) $$(CC) -E $$(CFLAGS) $$(cflags-y) $(3) $$< -o $$@
-endef
-
-##
-## In case if someone add last resort rule
-## together with .SUFFIXES not cleaned, this
-## will slow down the build procedure
-scripts/Makefile.rules::
- @true
--
2.5.0
More information about the CRIU
mailing list