[CRIU] [PATCH] build: Move generated config.h into include/common/

Dmitry Safonov dsafonov at virtuozzo.com
Wed Jul 19 21:14:24 MSK 2017


config.h is a generated file with "build-features" defines.
We use it for several purposes:
o to check that compiler can do it's job
o to complement user-visible API between distributions
o to add compile-time options from .config global file

It's used in criu and soccr, but compel also needs such thing.

Previously, soccr has a link to config.h in criu includes,
but it would be much cleaner to move it to other headers,
that are shared between sub-projects into include/common.

Reported-by: Adrian Reber <areber at redhat.com>
Signed-off-by: Dmitry Safonov <dsafonov at virtuozzo.com>
---
 .gitignore                      |  3 +--
 Makefile                        | 10 +++-------
 criu/cgroup-props.c             |  2 +-
 criu/filesystems.c              |  2 +-
 criu/include/cr_options.h       |  2 +-
 criu/include/kerndat.h          |  2 +-
 criu/include/parasite-syscall.h |  2 +-
 criu/include/parasite-vdso.h    |  2 +-
 criu/include/ptrace-compat.h    |  2 +-
 criu/include/restorer.h         |  2 +-
 criu/include/string.h           |  2 +-
 criu/include/vdso.h             |  2 +-
 criu/kerndat.c                  |  2 +-
 criu/lsm.c                      |  2 +-
 criu/page-pipe.c                |  2 +-
 criu/parasite-syscall.c         |  2 +-
 criu/pie/parasite.c             |  2 +-
 criu/pie/pie-relocs.h           |  2 +-
 criu/pie/restorer.c             |  2 +-
 criu/seccomp.c                  |  2 +-
 criu/shmem.c                    |  2 +-
 criu/sk-tcp.c                   |  2 +-
 soccr/soccr.h                   |  2 +-
 23 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/.gitignore b/.gitignore
index d1725af2de60..0486689057e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,10 +28,8 @@ criu/arch/*/sys-exec-tbl*.c
 # x86 syscalls-table is not generated
 !criu/arch/x86/sys-exec-tbl.c
 criu/arch/*/syscalls*.S
-criu/include/config.h
 criu/include/syscall-codes*.h
 criu/include/syscall*.h
-soccr/config.h
 criu/include/version.h
 criu/pie/restorer-blob.h
 criu/pie/parasite-blob.h
@@ -42,3 +40,4 @@ scripts/build/qemu-user-static/*
 lib/.crit-setup.files
 compel/include/asm
 include/common/asm
+include/common/config.h
diff --git a/Makefile b/Makefile
index 848cf0fca920..cb5731a39c46 100644
--- a/Makefile
+++ b/Makefile
@@ -173,7 +173,7 @@ criu-deps	+= include/common/asm
 
 #
 # Configure variables.
-export CONFIG_HEADER := criu/include/config.h
+export CONFIG_HEADER := include/common/config.h
 ifeq ($(filter tags etags cscope clean mrproper,$(MAKECMDGOALS)),)
 include Makefile.config
 else
@@ -197,13 +197,10 @@ include Makefile.compel
 # Next the socket CR library
 #
 SOCCR_A := soccr/libsoccr.a
-SOCCR_CONFIG := soccr/config.h
-$(SOCCR_CONFIG): $(CONFIG_HEADER)
-	$(Q) test -f $@ || ln -s ../$(CONFIG_HEADER) $@
 soccr/Makefile: ;
-soccr/%: $(SOCCR_CONFIG) .FORCE
+soccr/%: $(CONFIG_HEADER) .FORCE
 	$(Q) $(MAKE) $(build)=soccr $@
-soccr/built-in.o: $(SOCCR_CONFIG) .FORCE
+soccr/built-in.o: $(CONFIG_HEADER) .FORCE
 	$(Q) $(MAKE) $(build)=soccr all
 $(SOCCR_A): |soccr/built-in.o
 criu-deps	+= $(SOCCR_A)
@@ -256,7 +253,6 @@ clean: clean-top
 
 mrproper-top: clean-top
 	$(Q) $(RM) $(CONFIG_HEADER)
-	$(Q) $(RM) $(SOCCR_CONFIG)
 	$(Q) $(RM) $(VERSION_HEADER)
 	$(Q) $(RM) $(COMPEL_VERSION_HEADER)
 	$(Q) $(RM) include/common/asm
diff --git a/criu/cgroup-props.c b/criu/cgroup-props.c
index 251c4631e7c7..f7032bd7e94d 100644
--- a/criu/cgroup-props.c
+++ b/criu/cgroup-props.c
@@ -9,10 +9,10 @@
 #include <sys/stat.h>
 
 #include "int.h"
+#include "common/config.h"
 #include "common/compiler.h"
 #include "cgroup-props.h"
 #include "cr_options.h"
-#include "config.h"
 #include "xmalloc.h"
 #include "string.h"
 #include "util.h"
diff --git a/criu/filesystems.c b/criu/filesystems.c
index 8211e396a9f3..5a88788d710d 100644
--- a/criu/filesystems.c
+++ b/criu/filesystems.c
@@ -4,7 +4,7 @@
 #include <fcntl.h>
 #include <sys/mount.h>
 
-#include "config.h"
+#include "common/config.h"
 #include "int.h"
 #include "common/compiler.h"
 #include "xmalloc.h"
diff --git a/criu/include/cr_options.h b/criu/include/cr_options.h
index 4e4a1d0a6b00..bc74b39a9b7c 100644
--- a/criu/include/cr_options.h
+++ b/criu/include/cr_options.h
@@ -2,7 +2,7 @@
 #define __CR_OPTIONS_H__
 
 #include <stdbool.h>
-#include "config.h"
+#include "common/config.h"
 #include "common/list.h"
 
 /*
diff --git a/criu/include/kerndat.h b/criu/include/kerndat.h
index ff10228c36a0..7ba545d2ae72 100644
--- a/criu/include/kerndat.h
+++ b/criu/include/kerndat.h
@@ -3,7 +3,7 @@
 
 #include <stdbool.h>
 #include "int.h"
-#include "config.h"
+#include "common/config.h"
 #ifdef CONFIG_VDSO
 #include "util-vdso.h"
 #endif
diff --git a/criu/include/parasite-syscall.h b/criu/include/parasite-syscall.h
index bbd3e34a6c08..d5fad184353c 100644
--- a/criu/include/parasite-syscall.h
+++ b/criu/include/parasite-syscall.h
@@ -3,7 +3,7 @@
 
 #include "pid.h"
 #include "common/list.h"
-#include "config.h"
+#include "common/config.h"
 #include "asm/parasite-syscall.h"
 
 struct parasite_dump_thread;
diff --git a/criu/include/parasite-vdso.h b/criu/include/parasite-vdso.h
index 2a7f10ed298c..31980565db83 100644
--- a/criu/include/parasite-vdso.h
+++ b/criu/include/parasite-vdso.h
@@ -1,7 +1,7 @@
 #ifndef __CR_PARASITE_VDSO_H__
 #define __CR_PARASITE_VDSO_H__
 
-#include "config.h"
+#include "common/config.h"
 
 #ifdef CONFIG_VDSO
 
diff --git a/criu/include/ptrace-compat.h b/criu/include/ptrace-compat.h
index b23df2dfde3b..476da3536b8c 100644
--- a/criu/include/ptrace-compat.h
+++ b/criu/include/ptrace-compat.h
@@ -3,7 +3,7 @@
 
 #include <compel/ptrace.h>
 #include <linux/types.h>
-#include "config.h"
+#include "common/config.h"
 
 #ifndef CONFIG_HAS_PTRACE_PEEKSIGINFO
 struct ptrace_peeksiginfo_args {
diff --git a/criu/include/restorer.h b/criu/include/restorer.h
index ac0b4e1f4d18..8cb90b6f1ff8 100644
--- a/criu/include/restorer.h
+++ b/criu/include/restorer.h
@@ -5,6 +5,7 @@
 #include <limits.h>
 #include <sys/resource.h>
 
+#include "common/config.h"
 #include "types.h"
 #include "int.h"
 #include "types.h"
@@ -13,7 +14,6 @@
 #include "common/lock.h"
 #include "util.h"
 #include "asm/restorer.h"
-#include "config.h"
 #include "posix-timer.h"
 #include "timerfd.h"
 #include "shmem.h"
diff --git a/criu/include/string.h b/criu/include/string.h
index f9b4a38289aa..bc5f9d21967a 100644
--- a/criu/include/string.h
+++ b/criu/include/string.h
@@ -7,7 +7,7 @@
 # include <bsd/string.h>
 #endif
 
-#include "config.h"
+#include "common/config.h"
 
 #ifndef CONFIG_HAS_STRLCPY
 extern size_t strlcpy(char *dest, const char *src, size_t size);
diff --git a/criu/include/vdso.h b/criu/include/vdso.h
index b6110e442e04..11038242d102 100644
--- a/criu/include/vdso.h
+++ b/criu/include/vdso.h
@@ -4,7 +4,7 @@
 #include <sys/mman.h>
 #include <stdbool.h>
 
-#include "config.h"
+#include "common/config.h"
 
 #ifdef CONFIG_VDSO
 
diff --git a/criu/kerndat.c b/criu/kerndat.c
index 85f4256547a5..93152a8044db 100644
--- a/criu/kerndat.c
+++ b/criu/kerndat.c
@@ -14,6 +14,7 @@
 #include <arpa/inet.h>  /* for sockaddr_in and inet_ntoa() */
 #include <sys/prctl.h>
 
+#include "common/config.h"
 #include "int.h"
 #include "log.h"
 #include "restorer.h"
@@ -26,7 +27,6 @@
 #include "util.h"
 #include "lsm.h"
 #include "proc_parse.h"
-#include "config.h"
 #include "sk-inet.h"
 #include "sockets.h"
 #include "net.h"
diff --git a/criu/lsm.c b/criu/lsm.c
index 2d77f62771d3..fd098581ffe7 100644
--- a/criu/lsm.c
+++ b/criu/lsm.c
@@ -5,8 +5,8 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#include "common/config.h"
 #include "kerndat.h"
-#include "config.h"
 #include "pstree.h"
 #include "util.h"
 #include "cr_options.h"
diff --git a/criu/page-pipe.c b/criu/page-pipe.c
index 63c5a8a75019..a47119b180f8 100644
--- a/criu/page-pipe.c
+++ b/criu/page-pipe.c
@@ -3,8 +3,8 @@
 #undef LOG_PREFIX
 #define LOG_PREFIX "page-pipe: "
 
+#include "common/config.h"
 #include "page.h"
-#include "config.h"
 #include "util.h"
 #include "criu-log.h"
 #include "page-pipe.h"
diff --git a/criu/parasite-syscall.c b/criu/parasite-syscall.c
index 69dba60dffe9..89ec06f532ee 100644
--- a/criu/parasite-syscall.c
+++ b/criu/parasite-syscall.c
@@ -5,6 +5,7 @@
 #include <sys/wait.h>
 #include <sys/mman.h>
 
+#include "common/config.h"
 #include "common/compiler.h"
 #include "types.h"
 #include "protobuf.h"
@@ -20,7 +21,6 @@
 #include "crtools.h"
 #include "namespaces.h"
 #include "kerndat.h"
-#include "config.h"
 #include "pstree.h"
 #include "posix-timer.h"
 #include "mem.h"
diff --git a/criu/pie/parasite.c b/criu/pie/parasite.c
index 78bbe9e3b66c..8e4c805f21e3 100644
--- a/criu/pie/parasite.c
+++ b/criu/pie/parasite.c
@@ -7,11 +7,11 @@
 #include <stdarg.h>
 #include <sys/ioctl.h>
 
+#include "common/config.h"
 #include "int.h"
 #include "types.h"
 #include <compel/plugins/std/syscall.h>
 #include "parasite.h"
-#include "config.h"
 #include "fcntl.h"
 #include "prctl.h"
 #include "common/lock.h"
diff --git a/criu/pie/pie-relocs.h b/criu/pie/pie-relocs.h
index 5a18d8c9dea9..6797486c2df0 100644
--- a/criu/pie/pie-relocs.h
+++ b/criu/pie/pie-relocs.h
@@ -3,8 +3,8 @@
 
 #include <compel/compel.h>
 
+#include "common/config.h"
 #include "common/compiler.h"
-#include "config.h"
 
 #define pie_size(__pie_name)	(round_up(sizeof(__pie_name##_blob) + \
 			__pie_name ## _nr_gotpcrel * sizeof(long), page_size()))
diff --git a/criu/pie/restorer.c b/criu/pie/restorer.c
index efcac8389e79..a6953412ca45 100644
--- a/criu/pie/restorer.c
+++ b/criu/pie/restorer.c
@@ -19,6 +19,7 @@
 
 #include "linux/userfaultfd.h"
 
+#include "common/config.h"
 #include "int.h"
 #include "types.h"
 #include "common/compiler.h"
@@ -26,7 +27,6 @@
 #include <compel/plugins/std/log.h>
 #include <compel/ksigset.h>
 #include "signal.h"
-#include "config.h"
 #include "prctl.h"
 #include "criu-log.h"
 #include "util.h"
diff --git a/criu/seccomp.c b/criu/seccomp.c
index c5e7a7d93813..6416e793c61f 100644
--- a/criu/seccomp.c
+++ b/criu/seccomp.c
@@ -3,7 +3,7 @@
 #include <sys/wait.h>
 #include <unistd.h>
 
-#include "config.h"
+#include "common/config.h"
 #include "imgset.h"
 #include "kcmp.h"
 #include "pstree.h"
diff --git a/criu/shmem.c b/criu/shmem.c
index 2de8cb422263..013811635708 100644
--- a/criu/shmem.c
+++ b/criu/shmem.c
@@ -4,6 +4,7 @@
 #include <fcntl.h>
 #include <stdbool.h>
 
+#include "common/config.h"
 #include "common/list.h"
 #include "pid.h"
 #include "shmem.h"
@@ -15,7 +16,6 @@
 #include "rst-malloc.h"
 #include "vma.h"
 #include "mem.h"
-#include "config.h"
 #include <compel/plugins/std/syscall-codes.h>
 #include "bitops.h"
 #include "log.h"
diff --git a/criu/sk-tcp.c b/criu/sk-tcp.c
index 13853bbe4d9e..3f934249576f 100644
--- a/criu/sk-tcp.c
+++ b/criu/sk-tcp.c
@@ -8,6 +8,7 @@
 
 #include "../soccr/soccr.h"
 
+#include "common/config.h"
 #include "cr_options.h"
 #include "util.h"
 #include "common/list.h"
@@ -19,7 +20,6 @@
 #include "image.h"
 #include "namespaces.h"
 #include "xmalloc.h"
-#include "config.h"
 #include "kerndat.h"
 #include "restorer.h"
 #include "rst-malloc.h"
diff --git a/soccr/soccr.h b/soccr/soccr.h
index c9d138bfc194..2c34e169b2e7 100644
--- a/soccr/soccr.h
+++ b/soccr/soccr.h
@@ -5,7 +5,7 @@
 #include <stdint.h>		/* uint32_t */
 #include <sys/socket.h>		/* sockaddr */
 
-#include "config.h"
+#include "common/config.h"
 
 /* All packets with this mark have not to be blocked. */
 #define SOCCR_MARK 0xC114
-- 
2.13.1



More information about the CRIU mailing list