[PATCH] perf build: Fix syscall table dependency error

From: Wang Nan
Date: Fri Apr 08 2016 - 02:35:53 EST


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 <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