[CRIU] [PATCH] make: fix "make criu" after arch-specific vdso broke it
Cyrill Gorcunov
gorcunov at gmail.com
Wed Jun 25 14:46:54 PDT 2014
On Wed, Jun 25, 2014 at 02:05:17PM -0700, Filipe Brandenburger wrote:
> Building criu with "make criu" on a clean tree was not working, failing on:
>
> make[1]: *** No rule to make target `arch/x86/vdso-pie.o'. Stop.
> make: *** [arch/x86/vdso-pie.o] Error 2
>
> git bisect traced the regression to commit c473461d24fd (vdso: Make it arch
> specific) which apparently dropped the rule to build $(ARCH_DIR)/vdso-pie.o
> using the pie rule. Restore the dependency for "make criu" to work again from
> a clean tree.
>
> Tested:
> $ git clean -fdx
> $ make criu
>
> Fixes: c473461d24fdfcd25542b427829a37fd2f0facb5
>
> Signed-off-by: Filipe Brandenburger <filbranden at google.com>
> ---
It's rather a strange fix. $(ARCH_DIR)/vdso-pie.o comes to
both -- pie code and a regular PROGRAM-BUILTINS, which in
run means we rather lack a rule
ifeq ($(VDSO),y)
pie: $(ARCH_DIR)/vdso-pie.o
endif
don't we? I suspect you were running make with -j because
on plain make it doesn't trigger even after git clean -fdx
> Makefile | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index f1c87841821a..a42261470d32 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -172,8 +172,11 @@ lib: $(VERSION_HEADER) config built-in.o
> $(Q) $(MAKE) $(build)=lib all
>
> ifeq ($(VDSO),y)
> +$(ARCH_DIR)/vdso-pie.o: pie
> + $(Q) $(MAKE) $(build)=pie $(ARCH_DIR)/vdso-pie.o
> PROGRAM-BUILTINS += $(ARCH_DIR)/vdso-pie.o
> endif
> +
> PROGRAM-BUILTINS += pie/util-fd.o
> PROGRAM-BUILTINS += pie/util.o
> PROGRAM-BUILTINS += protobuf/built-in.o
> --
> 1.9.3
>
Cyrill
More information about the CRIU
mailing list