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.
Signed-off-by: Wang Nan <[email protected]>
Cc: Adrian Hunter <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Namhyung Kim <[email protected]>
---
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
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 <[email protected]>
> Cc: Adrian Hunter <[email protected]>
> Cc: David Ahern <[email protected]>
> Cc: Jiri Olsa <[email protected]>
> Cc: Namhyung Kim <[email protected]>
> ---
> 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