From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Wang Nan <wangnan0@huawei.com>
Cc: jolsa@redhat.com, linux-kernel@vger.kernel.org, pi3orama@163.com,
lizefan@huawei.com, Jiri Olsa <jolsa@kernel.org>,
Namhyung Kim <namhyung@kernel.org>
Subject: Re: [PATCH v2 3/9] perf build: Test correct path of perf in build-test
Date: Thu, 14 Jan 2016 11:50:21 -0300 [thread overview]
Message-ID: <20160114145021.GT18367@kernel.org> (raw)
In-Reply-To: <1452777243-178927-4-git-send-email-wangnan0@huawei.com>
Em Thu, Jan 14, 2016 at 01:13:57PM +0000, Wang Nan escreveu:
> If an 'O' is passed to 'make build-test', many 'test -x' and 'test -f'
> will fail because perf resides in a different directory. Fix this by
> computing PERF_OUT according to 'O' and test correct output files.
> For make_kernelsrc and make_kernelsrc_tools, set KBUILD_OUTPUT_DIR
> instead because the path is different from others ($(O)/perf vs
> $(O)/tools/perf).
So, before this patch:
[acme@felicio linux]$ make -C tools/perf -f tests/make make_static
make: Entering directory `/home/acme/git/linux/tools/perf'
Testing Makefile
make[1]: Entering directory `/home/acme/git/linux/tools/perf'
- make_static: cd . && make -f Makefile DESTDIR=/tmp/tmp.aCtpIoMBDZ LDFLAGS=-static
make[1]: Leaving directory `/home/acme/git/linux/tools/perf'
make: Leaving directory `/home/acme/git/linux/tools/perf'
[acme@felicio linux]$
after I applied it it was failing, but now, running just the 'make_static'
target, it works, oops, trying to run it as plain 'build-test', i.e. randomly
picking the targets and running them all...
Also note that I'm not using O= at all, trying to check first if it works
without it, to avoid introducing a regression.
Ok, failed again, I was lucky and it was the second test to run, it seems some
cleanup is not being done wrt the python binding...
$ make -C tools/perf build-test
make: Entering directory `/home/acme/git/linux/tools/perf'
Testing Makefile
- make_no_demangle: cd . && make -f Makefile DESTDIR=/tmp/tmp.OO1OfcvkFQ NO_DEMANGLE=1
- make_static: cd . && make -f Makefile DESTDIR=/tmp/tmp.jSd2VoICTE LDFLAGS=-static
cd . && make -f Makefile DESTDIR=/tmp/tmp.jSd2VoICTE LDFLAGS=-static
BUILD: Doing 'make -j4' parallel build
Auto-detecting system features:
... dwarf: [ on ]
... glibc: [ on ]
... gtk2: [ on ]
... libaudit: [ on ]
... libbfd: [ on ]
... libelf: [ on ]
... libnuma: [ on ]
... numa_num_possible_cpus: [ on ]
... libperl: [ on ]
... libpython: [ on ]
... libslang: [ on ]
... libunwind: [ on ]
... libdw-dwarf-unwind: [ on ]
... zlib: [ on ]
... lzma: [ on ]
... get_cpuid: [ on ]
... bpf: [ on ]
GEN common-cmds.h
PERF_VERSION = 4.4.ge0a5e17c
CC plugin_hrtimer.o
CC plugin_jbd2.o
CC plugin_kmem.o
LD plugin_jbd2-in.o
<SNIP>
CC tests/llvm.o
AR libperf.a
CC tests/bpf.o
CC tests/topology.o
CC tests/cpumap.o
CC tests/stat.o
CC tests/event_update.o
CC tests/dwarf-unwind.o
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbeginT.o: relocation R_X86_64_32 against `__TMC_END__' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbeginT.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
CC tests/llvm-src-base.o
cp: cannot stat ‘python_ext_build/lib/perf.so’: No such file or directory
make[4]: *** [python/perf.so] Error 1
make[4]: *** Waiting for unfinished jobs....
CC tests/llvm-src-kbuild.o
CC tests/llvm-src-prologue.o
CC perf.o
LD tests/perf-in.o
LD perf-in.o
make[4]: *** wait: No child processes. Stop.
make[3]: *** [all] Error 2
test: test -x ./perf
make[2]: *** [make_static] Error 1
make[1]: *** [all] Error 2
make: *** [build-test] Error 2
make: Leaving directory `/home/acme/git/linux/tools/perf'
[acme@felicio linux]$
- Arnaldo
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> ---
> tools/perf/tests/make | 23 +++++++++++++++--------
> 1 file changed, 15 insertions(+), 8 deletions(-)
>
> diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> index 14d7b8d..e74c86b 100644
> --- a/tools/perf/tests/make
> +++ b/tools/perf/tests/make
> @@ -13,10 +13,12 @@ else
> endif
> else
> PERF := .
> +PERF_O := $(PERF)
> O_OPT :=
>
> ifneq ($(O),)
> FULL_O := $(shell readlink -f $(O) || echo $(O))
> + PERF_O := $(FULL_O)
> ifeq ($(SET_O),1)
> O_OPT := 'O=$(FULL_O)'
> endif
> @@ -173,11 +175,11 @@ test_make_doc := $(test_ok)
> test_make_help_O := $(test_ok)
> test_make_doc_O := $(test_ok)
>
> -test_make_python_perf_so := test -f $(PERF)/python/perf.so
> +test_make_python_perf_so := test -f $(PERF_O)/python/perf.so
>
> -test_make_perf_o := test -f $(PERF)/perf.o
> -test_make_util_map_o := test -f $(PERF)/util/map.o
> -test_make_util_pmu_bison_o := test -f $(PERF)/util/pmu-bison.o
> +test_make_perf_o := test -f $(PERF_O)/perf.o
> +test_make_util_map_o := test -f $(PERF_O)/util/map.o
> +test_make_util_pmu_bison_o := test -f $(PERF_O)/util/pmu-bison.o
>
> define test_dest_files
> for file in $(1); do \
> @@ -244,7 +246,7 @@ test_make_perf_o_O := test -f $$TMP_O/perf.o
> test_make_util_map_o_O := test -f $$TMP_O/util/map.o
> test_make_util_pmu_bison_o_O := test -f $$TMP_O/util/pmu-bison.o
>
> -test_default = test -x $(PERF)/perf
> +test_default = test -x $(PERF_O)/perf
> test = $(if $(test_$1),$(test_$1),$(test_default))
>
> test_default_O = test -x $$TMP_O/perf
> @@ -264,7 +266,7 @@ endif
>
> MAKEFLAGS := --no-print-directory
>
> -clean := @(cd $(PERF); make -s -f $(MK) clean >/dev/null)
> +clean := @(cd $(PERF); make -s -f $(MK) O=$(PERF_O) clean >/dev/null)
>
> $(run):
> $(call clean)
> @@ -293,17 +295,22 @@ tarpkg:
> ( eval $$cmd ) >> $@ 2>&1 && \
> rm -f $@
>
> +KERNEL_O := ../..
> +ifneq ($(O),)
> + KERNEL_O := $(O)
> +endif
> +
> make_kernelsrc:
> @echo "- make -C <kernelsrc> $(PARALLEL_OPT) tools/perf"
> $(call clean); \
> (make -C ../.. $(PARALLEL_OPT) tools/perf) > $@ 2>&1 && \
> - test -x perf && rm -f $@ || (cat $@ ; false)
> + test -x $(KERNEL_O)/tools/perf/perf && rm -f $@ || (cat $@ ; false)
>
> make_kernelsrc_tools:
> @echo "- make -C <kernelsrc>/tools $(PARALLEL_OPT) perf"
> $(call clean); \
> (make -C ../../tools $(PARALLEL_OPT) perf) > $@ 2>&1 && \
> - test -x perf && rm -f $@ || (cat $@ ; false)
> + test -x $(KERNEL_O)/tools/perf/perf && rm -f $@ || (cat $@ ; false)
>
> all: $(run) $(run_O) tarpkg make_kernelsrc make_kernelsrc_tools
> @echo OK
> --
> 1.8.3.4
next prev parent reply other threads:[~2016-01-14 14:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-14 13:13 [PATCH v2 0/9] perf build: Make build-test faster Wang Nan
2016-01-14 13:13 ` [PATCH v2 1/9] perf build: Set parallel making options build-test Wang Nan
2016-01-14 13:13 ` [PATCH v2 2/9] perf build: Pass O option to Makefile.perf in build-test Wang Nan
2016-01-14 13:13 ` [PATCH v2 3/9] perf build: Test correct path of perf " Wang Nan
2016-01-14 14:50 ` Arnaldo Carvalho de Melo [this message]
2016-01-14 14:58 ` Arnaldo Carvalho de Melo
2016-01-14 15:08 ` pi3orama
2016-01-14 15:44 ` Arnaldo Carvalho de Melo
2016-01-14 16:02 ` Arnaldo Carvalho de Melo
2016-01-14 17:32 ` Arnaldo Carvalho de Melo
2016-01-15 2:57 ` Wangnan (F)
2016-01-15 3:32 ` Wangnan (F)
2016-01-15 2:22 ` Wangnan (F)
2016-01-14 13:13 ` [PATCH v2 4/9] perf build: Pass O option to kernel makefile " Wang Nan
2016-01-14 13:13 ` [PATCH v2 5/9] perf build: Add feature-dump target Wang Nan
2016-01-14 13:14 ` [PATCH v2 6/9] perf build: Introduce FEATURES_DUMP make variable Wang Nan
2016-01-14 13:14 ` [PATCH v2 7/9] tools build: Allow subprojects select all feature checkers Wang Nan
2016-01-14 13:14 ` [PATCH v2 8/9] perf build: Select all feature checkers for feature-dump Wang Nan
2016-01-14 13:14 ` [PATCH v2 9/9] perf build: Use feature dump file for build-test Wang Nan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160114145021.GT18367@kernel.org \
--to=acme@kernel.org \
--cc=jolsa@kernel.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=namhyung@kernel.org \
--cc=pi3orama@163.com \
--cc=wangnan0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.