Re: [PATCH] perf build: Fix syscall table dependency error

From: Arnaldo Carvalho de Melo
Date: Fri Apr 08 2016 - 08:55:25 EST


Em Fri, Apr 08, 2016 at 06:35:25AM +0000, Wang Nan escreveu:
> Commit 42abeef7e8df ("perf tools: Build syscall table .c header from
> kernel's syscall_64.tbl") introduces archheaders dependency. It is
> added to 'prepare', but not added directly to libperf-in.o, causes
> following error:
>
> $ make -C ./tools/perf/ O=/tmp/xxxxx/ /tmp/xxxxx/libperf-in.o JOBS=1
> make: Entering directory `/xx/xx/tools/perf'
> BUILD: Doing 'make -j1' parallel build
>
> Auto-detecting system features:
> ... dwarf: [ on ]
> ... dwarf_getlocations: [ on ]
> <SNIP>
> CC /tmp/xxxxx/util/map.o
> CC /tmp/xxxxx/util/pstack.o
> CC /tmp/xxxxx/util/session.o
> make[3]: *** No rule to make target `/tmp/xxxxx/arch/x86/include/generated/asm/syscalls_64.c', needed by `/tmp/xxxxx/util/syscalltbl.o'. Stop.
> make[2]: *** [util] Error 2
> make[1]: *** [/tmp/xxxxx/libperf-in.o] Error 2
> make: *** [/tmp/xxxxx/libperf-in.o] Error 2
> make: Leaving directory `/home/w00229757/kernel-hydrogen/tools/perf'
>
> In parallel building this missing dependency causes building error.
>
> Add 'prepare' to libperf-in's dependency.

Thanks, I'll try to merge this into the offending patch so that we don't
lose bisection, Ingo, if you hear me, please don't pull the latest tag.

- Arnaldo

> Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
> Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> Cc: David Ahern <dsahern@xxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/Makefile.perf | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index 1469aea..bde8cba 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -433,7 +433,7 @@ $(patsubst perf-%,%.o,$(PROGRAMS)): $(wildcard */*.h)
>
> LIBPERF_IN := $(OUTPUT)libperf-in.o
>
> -$(LIBPERF_IN): fixdep FORCE
> +$(LIBPERF_IN): prepare fixdep FORCE
> $(Q)$(MAKE) $(build)=libperf
>
> $(LIB_FILE): $(LIBPERF_IN)
> --
> 1.8.3.4