<div dir="ltr">Sorry for the confusion.<div><br></div><div>I mean t<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.666666984558105px">his is intended for a simple criu library implementation.</span></div>
<div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.666666984558105px"><br></span></div><div><font color="#500050" face="arial, sans-serif"><span style="font-size:12.666666984558105px">The following patch will generate a static library for criu.</span></font></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 14, 2013 at 12:52 PM, Pavel Emelyanov <span dir="ltr">&lt;<a href="mailto:xemul@parallels.com" target="_blank">xemul@parallels.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 08/14/2013 10:09 PM, Yicheng Qin wrote:<br>
&gt; Replace main() with criu_main(), and put main() function under<br>
&gt; new &#39;main&#39; directory.<br>
&gt;<br>
&gt; Include some standard header files in list.h and util.h to resolve<br>
&gt; lack of symbol.<br>
&gt;<br>
&gt; This is intended for a simple criu binary implementation.<br>
<br>
</div>I don&#39;t quite understand where the simplicity is. We have the same<br>
binary after all, but require +26 lines.<br>
<br>
Presumably this is some preparation patch, isn&#39;t it? Can you explain<br>
what the final goal is?<br>
<div class="HOEnZb"><div class="h5"><br>
&gt; Signed-off-by: Yicheng Qin &lt;<a href="mailto:yichengq@google.com">yichengq@google.com</a>&gt;<br>
&gt; ---<br>
&gt;  Makefile          | 14 +++++++++++---<br>
&gt;  crtools.c         |  2 +-<br>
&gt;  include/crtools.h |  2 ++<br>
&gt;  include/list.h    |  1 +<br>
&gt;  include/util.h    |  1 +<br>
&gt;  main/Makefile     |  1 +<br>
&gt;  main/criu.c       |  9 +++++++++<br>
&gt;  7 files changed, 26 insertions(+), 4 deletions(-)<br>
&gt;  create mode 100644 main/Makefile<br>
&gt;  create mode 100644 main/criu.c<br>
&gt;<br>
&gt; diff --git a/Makefile b/Makefile<br>
&gt; index fecc7f5..8e34770 100644<br>
&gt; --- a/Makefile<br>
&gt; +++ b/Makefile<br>
&gt; @@ -120,7 +120,7 @@ build-crtools := -r -R -f scripts/Makefile.build makefile=Makefile.crtools obj<br>
&gt;  PROGRAM              := criu<br>
&gt;<br>
&gt;  .PHONY: all zdtm test rebuild clean distclean tags cscope    \<br>
&gt; -     docs help pie protobuf arch/$(ARCH) clean-built lib<br>
&gt; +     docs help pie protobuf arch/$(ARCH) clean-built lib main<br>
&gt;<br>
&gt;  ifeq ($(GCOV),1)<br>
&gt;  %.o $(PROGRAM): override CFLAGS += --coverage<br>
&gt; @@ -132,7 +132,12 @@ all: config pie $(VERSION_HEADER) lib<br>
&gt;  lib: $(VERSION_HEADER)<br>
&gt;       $(Q) $(MAKE) -C lib all<br>
&gt;<br>
&gt; -protobuf/%::<br>
&gt; +main/%::<br>
&gt; +     $(Q) $(MAKE) $(build)=main $@<br>
&gt; +main:<br>
&gt; +     $(Q) $(MAKE) $(build)=main all<br>
&gt; +<br>
&gt; +protobuf/%:: main<br>
&gt;       $(Q) $(MAKE) $(build)=protobuf $@<br>
&gt;  protobuf:<br>
&gt;       $(Q) $(MAKE) $(build)=protobuf all<br>
&gt; @@ -152,6 +157,8 @@ pie: arch/$(ARCH)<br>
&gt;  built-in.o: $(VERSION_HEADER) pie<br>
&gt;       $(Q) $(MAKE) $(build-crtools)=. $@<br>
&gt;<br>
&gt; +MAIN-BUILTINS                += main/built-in.o<br>
&gt; +<br>
&gt;  PROGRAM-BUILTINS     += pie/util.o<br>
&gt;  PROGRAM-BUILTINS     += protobuf/built-in.o<br>
&gt;  PROGRAM-BUILTINS     += built-in.o<br>
&gt; @@ -160,7 +167,7 @@ $(ARCH_DIR)/vdso-pie.o: pie<br>
&gt;       $(Q) $(MAKE) $(build)=pie $(ARCH_DIR)/vdso-pie.o<br>
&gt;  PROGRAM-BUILTINS     += $(ARCH_DIR)/vdso-pie.o<br>
&gt;<br>
&gt; -$(PROGRAM): $(SYSCALL-LIB) $(ARCH-LIB) $(PROGRAM-BUILTINS)<br>
&gt; +$(PROGRAM): $(SYSCALL-LIB) $(ARCH-LIB) $(PROGRAM-BUILTINS) $(MAIN-BUILTINS)<br>
&gt;       $(E) &quot;  LINK    &quot; $@<br>
&gt;       $(Q) $(CC) $(CFLAGS) $^ $(LIBS) $(LDFLAGS) -o $@<br>
&gt;<br>
&gt; @@ -173,6 +180,7 @@ test: zdtm<br>
&gt;  clean-built:<br>
&gt;       $(Q) $(RM) $(VERSION_HEADER)<br>
&gt;       $(Q) $(MAKE) $(build)=arch/$(ARCH) clean<br>
&gt; +     $(Q) $(MAKE) $(build)=main clean<br>
&gt;       $(Q) $(MAKE) $(build)=protobuf clean<br>
&gt;       $(Q) $(MAKE) $(build)=pie clean<br>
&gt;       $(Q) $(MAKE) $(build-crtools)=. clean<br>
&gt; diff --git a/crtools.c b/crtools.c<br>
&gt; index c7bc8b4..e76b429 100644<br>
&gt; --- a/crtools.c<br>
&gt; +++ b/crtools.c<br>
&gt; @@ -60,7 +60,7 @@ bad_ns:<br>
&gt;       return -1;<br>
&gt;  }<br>
&gt;<br>
&gt; -int main(int argc, char *argv[])<br>
&gt; +int criu_main(int argc, char *argv[])<br>
&gt;  {<br>
&gt;       pid_t pid = 0, tree_id = 0;<br>
&gt;       int ret = -1;<br>
&gt; diff --git a/include/crtools.h b/include/crtools.h<br>
&gt; index 65ed166..1cdc35f 100644<br>
&gt; --- a/include/crtools.h<br>
&gt; +++ b/include/crtools.h<br>
&gt; @@ -190,4 +190,6 @@ static inline int in_vma_area(struct vma_area *vma, unsigned long addr)<br>
&gt;               addr &lt; (unsigned long)vma-&gt;vma.end;<br>
&gt;  }<br>
&gt;<br>
&gt; +int criu_main(int argc, char *argv[]);<br>
&gt; +<br>
&gt;  #endif /* __CR_CRTOOLS_H__ */<br>
&gt; diff --git a/include/list.h b/include/list.h<br>
&gt; index 32d8edd..5af1093 100644<br>
&gt; --- a/include/list.h<br>
&gt; +++ b/include/list.h<br>
&gt; @@ -5,6 +5,7 @@<br>
&gt;   * Double linked lists.<br>
&gt;   */<br>
&gt;<br>
&gt; +#include &lt;stdlib.h&gt;<br>
&gt;  #include &quot;compiler.h&quot;<br>
&gt;<br>
&gt;  #define POISON_POINTER_DELTA 0<br>
&gt; diff --git a/include/util.h b/include/util.h<br>
&gt; index 3475700..ddeb716 100644<br>
&gt; --- a/include/util.h<br>
&gt; +++ b/include/util.h<br>
&gt; @@ -4,6 +4,7 @@<br>
&gt;  /*<br>
&gt;   * Some bits are stolen from perf and kvm tools<br>
&gt;   */<br>
&gt; +#include &lt;unistd.h&gt;<br>
&gt;  #include &lt;signal.h&gt;<br>
&gt;  #include &lt;stdio.h&gt;<br>
&gt;  #include &lt;errno.h&gt;<br>
&gt; diff --git a/main/Makefile b/main/Makefile<br>
&gt; new file mode 100644<br>
&gt; index 0000000..868d526<br>
&gt; --- /dev/null<br>
&gt; +++ b/main/Makefile<br>
&gt; @@ -0,0 +1 @@<br>
&gt; +obj-y                        += criu.o<br>
&gt; diff --git a/main/criu.c b/main/criu.c<br>
&gt; new file mode 100644<br>
&gt; index 0000000..398a59f<br>
&gt; --- /dev/null<br>
&gt; +++ b/main/criu.c<br>
&gt; @@ -0,0 +1,9 @@<br>
&gt; +#include &quot;crtools.h&quot;<br>
&gt; +<br>
&gt; +/*<br>
&gt; + * Entry point to criu_main<br>
&gt; + */<br>
&gt; +int main(int argc, char *argv[])<br>
&gt; +{<br>
&gt; +     return criu_main(argc, argv);<br>
&gt; +}<br>
&gt;<br>
<br>
<br>
</div></div></blockquote></div><br></div>