So we need to trow away just stdout, leaving stderr to be caught by the build tests infrastructure, so that we can see what went wrong when the tarpkg build test fails: $ make -C tools/perf build-test make: Entering directory '/home/acme/git/linux/tools/perf' - tarpkg: ./tests/perf-targz-src-pkg . tests/make:302: recipe for target 'tarpkg' failed make[1]: *** [tarpkg] Error 2 Makefile:102: recipe for target 'build-test' failed make: *** [build-test] Error 2 make: Leaving directory '/home/acme/git/linux/tools/perf' $ cat tools/perf/tarpkg ./tests/perf-targz-src-pkg . PERF_VERSION = 4.5.g05f5ec PERF_VERSION = 4.5.g05f5ec In file included from bench/mem-memcpy-x86-64-asm.S:9:0: bench/../../../arch/x86/lib/memcpy_64.S:5:29: fatal error: asm/cpufeatures.h: No such file or directory compilation terminated. mv: cannot stat ‘bench/.mem-memcpy-x86-64-asm.o.tmp’: No such file or directory make[5]: *** [bench/mem-memcpy-x86-64-asm.o] Error 1 make[5]: *** Waiting for unfinished jobs.... make[4]: *** [bench] Error 2 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [perf-in.o] Error 2 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [all] Error 2 $ So the test flow is: 1. Run: 'make -C tools/perf build-test' 2. One of its tests failed, in this case, the 'tarpkg' one 3. Look at what went wrong, by looking at the output of that test, in tools/perf/tarpkg Admittedly, this should be shortcircuited to showing what went wrong directly from the 'make build-test' step, but lets first fix this tarpkg one and the problem it spotted, which should be fixed by adding some extra file to the tools/perf/MANIFEST so that detached tarballs continue being self contained and build successfully. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Borislav Petkov <bp@suse.de> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-ynld6egoxolmftcddpnd7oh6@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
22 lines
700 B
Bash
Executable File
22 lines
700 B
Bash
Executable File
#!/bin/sh
|
|
# Test one of the main kernel Makefile targets to generate a perf sources tarball
|
|
# suitable for build outside the full kernel sources.
|
|
#
|
|
# This is to test that the tools/perf/MANIFEST file lists all the files needed to
|
|
# be in such tarball, which sometimes gets broken when we move files around,
|
|
# like when we made some files that were in tools/perf/ available to other tools/
|
|
# codebases by moving it to tools/include/, etc.
|
|
|
|
PERF=$1
|
|
cd ${PERF}/../..
|
|
make perf-targz-src-pkg > /dev/null
|
|
TARBALL=$(ls -rt perf-*.tar.gz)
|
|
TMP_DEST=$(mktemp -d)
|
|
tar xf ${TARBALL} -C $TMP_DEST
|
|
rm -f ${TARBALL}
|
|
cd - > /dev/null
|
|
make -C $TMP_DEST/perf*/tools/perf > /dev/null
|
|
RC=$?
|
|
rm -rf ${TMP_DEST}
|
|
exit $RC
|