[CRIU] [PATCH] crtools: use criu_main() instead of main()
Pavel Emelyanov
xemul at parallels.com
Wed Aug 14 15:52:38 EDT 2013
On 08/14/2013 10:09 PM, Yicheng Qin wrote:
> Replace main() with criu_main(), and put main() function under
> new 'main' directory.
>
> Include some standard header files in list.h and util.h to resolve
> lack of symbol.
>
> This is intended for a simple criu binary implementation.
I don't quite understand where the simplicity is. We have the same
binary after all, but require +26 lines.
Presumably this is some preparation patch, isn't it? Can you explain
what the final goal is?
> Signed-off-by: Yicheng Qin <yichengq at google.com>
> ---
> Makefile | 14 +++++++++++---
> crtools.c | 2 +-
> include/crtools.h | 2 ++
> include/list.h | 1 +
> include/util.h | 1 +
> main/Makefile | 1 +
> main/criu.c | 9 +++++++++
> 7 files changed, 26 insertions(+), 4 deletions(-)
> create mode 100644 main/Makefile
> create mode 100644 main/criu.c
>
> diff --git a/Makefile b/Makefile
> index fecc7f5..8e34770 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -120,7 +120,7 @@ build-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/$(ARCH) clean-built lib
> + docs help pie protobuf arch/$(ARCH) clean-built lib main
>
> ifeq ($(GCOV),1)
> %.o $(PROGRAM): override CFLAGS += --coverage
> @@ -132,7 +132,12 @@ all: config pie $(VERSION_HEADER) lib
> lib: $(VERSION_HEADER)
> $(Q) $(MAKE) -C lib all
>
> -protobuf/%::
> +main/%::
> + $(Q) $(MAKE) $(build)=main $@
> +main:
> + $(Q) $(MAKE) $(build)=main all
> +
> +protobuf/%:: main
> $(Q) $(MAKE) $(build)=protobuf $@
> protobuf:
> $(Q) $(MAKE) $(build)=protobuf all
> @@ -152,6 +157,8 @@ pie: arch/$(ARCH)
> built-in.o: $(VERSION_HEADER) pie
> $(Q) $(MAKE) $(build-crtools)=. $@
>
> +MAIN-BUILTINS += main/built-in.o
> +
> PROGRAM-BUILTINS += pie/util.o
> PROGRAM-BUILTINS += protobuf/built-in.o
> PROGRAM-BUILTINS += built-in.o
> @@ -160,7 +167,7 @@ $(ARCH_DIR)/vdso-pie.o: pie
> $(Q) $(MAKE) $(build)=pie $(ARCH_DIR)/vdso-pie.o
> PROGRAM-BUILTINS += $(ARCH_DIR)/vdso-pie.o
>
> -$(PROGRAM): $(SYSCALL-LIB) $(ARCH-LIB) $(PROGRAM-BUILTINS)
> +$(PROGRAM): $(SYSCALL-LIB) $(ARCH-LIB) $(PROGRAM-BUILTINS) $(MAIN-BUILTINS)
> $(E) " LINK " $@
> $(Q) $(CC) $(CFLAGS) $^ $(LIBS) $(LDFLAGS) -o $@
>
> @@ -173,6 +180,7 @@ test: zdtm
> clean-built:
> $(Q) $(RM) $(VERSION_HEADER)
> $(Q) $(MAKE) $(build)=arch/$(ARCH) clean
> + $(Q) $(MAKE) $(build)=main clean
> $(Q) $(MAKE) $(build)=protobuf clean
> $(Q) $(MAKE) $(build)=pie clean
> $(Q) $(MAKE) $(build-crtools)=. clean
> diff --git a/crtools.c b/crtools.c
> index c7bc8b4..e76b429 100644
> --- a/crtools.c
> +++ b/crtools.c
> @@ -60,7 +60,7 @@ bad_ns:
> return -1;
> }
>
> -int main(int argc, char *argv[])
> +int criu_main(int argc, char *argv[])
> {
> pid_t pid = 0, tree_id = 0;
> int ret = -1;
> diff --git a/include/crtools.h b/include/crtools.h
> index 65ed166..1cdc35f 100644
> --- a/include/crtools.h
> +++ b/include/crtools.h
> @@ -190,4 +190,6 @@ static inline int in_vma_area(struct vma_area *vma, unsigned long addr)
> addr < (unsigned long)vma->vma.end;
> }
>
> +int criu_main(int argc, char *argv[]);
> +
> #endif /* __CR_CRTOOLS_H__ */
> diff --git a/include/list.h b/include/list.h
> index 32d8edd..5af1093 100644
> --- a/include/list.h
> +++ b/include/list.h
> @@ -5,6 +5,7 @@
> * Double linked lists.
> */
>
> +#include <stdlib.h>
> #include "compiler.h"
>
> #define POISON_POINTER_DELTA 0
> diff --git a/include/util.h b/include/util.h
> index 3475700..ddeb716 100644
> --- a/include/util.h
> +++ b/include/util.h
> @@ -4,6 +4,7 @@
> /*
> * Some bits are stolen from perf and kvm tools
> */
> +#include <unistd.h>
> #include <signal.h>
> #include <stdio.h>
> #include <errno.h>
> diff --git a/main/Makefile b/main/Makefile
> new file mode 100644
> index 0000000..868d526
> --- /dev/null
> +++ b/main/Makefile
> @@ -0,0 +1 @@
> +obj-y += criu.o
> diff --git a/main/criu.c b/main/criu.c
> new file mode 100644
> index 0000000..398a59f
> --- /dev/null
> +++ b/main/criu.c
> @@ -0,0 +1,9 @@
> +#include "crtools.h"
> +
> +/*
> + * Entry point to criu_main
> + */
> +int main(int argc, char *argv[])
> +{
> + return criu_main(argc, argv);
> +}
>
More information about the CRIU
mailing list