From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753133AbcAOCWk (ORCPT ); Thu, 14 Jan 2016 21:22:40 -0500 Received: from szxga02-in.huawei.com ([119.145.14.65]:35414 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751401AbcAOCWi (ORCPT ); Thu, 14 Jan 2016 21:22:38 -0500 Message-ID: <569857D3.3000705@huawei.com> Date: Fri, 15 Jan 2016 10:22:11 +0800 From: "Wangnan (F)" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Arnaldo Carvalho de Melo CC: , , , , Jiri Olsa , Namhyung Kim Subject: Re: [PATCH v2 3/9] perf build: Test correct path of perf in build-test References: <1452777243-178927-1-git-send-email-wangnan0@huawei.com> <1452777243-178927-4-git-send-email-wangnan0@huawei.com> <20160114145021.GT18367@kernel.org> <20160114145817.GU18367@kernel.org> In-Reply-To: <20160114145817.GU18367@kernel.org> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.111.66.109] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020202.569857DF.017E,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 331fa145d5e61404c53011a6ea8a47f5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016/1/14 22:58, Arnaldo Carvalho de Melo wrote: > Em Thu, Jan 14, 2016 at 11:50:21AM -0300, Arnaldo Carvalho de Melo escreveu: >> 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: > Also, while trying to get this to work, I found these places lacking the > O= prefixing, right? > > > diff --git a/tools/perf/tests/make b/tools/perf/tests/make > index e74c86b00c31..67842900482e 100644 > --- a/tools/perf/tests/make > +++ b/tools/perf/tests/make > @@ -59,7 +59,7 @@ has = $(shell which $1 2>/dev/null) > > # standard single make variable specified > make_clean_all := clean all > -make_python_perf_so := python/perf.so > +make_python_perf_so := $(PERF_O)/python/perf.so > make_debug := DEBUG=1 > make_no_libperl := NO_LIBPERL=1 > make_no_libpython := NO_LIBPYTHON=1 > @@ -82,9 +82,9 @@ make_tags := tags > make_cscope := cscope > make_help := help > make_doc := doc > -make_perf_o := perf.o > -make_util_map_o := util/map.o > -make_util_pmu_bison_o := util/pmu-bison.o > +make_perf_o := $(PERF_O)/perf.o > +make_util_map_o := $(PERF_O)/util/map.o > +make_util_pmu_bison_o := $(PERF_O)/util/pmu-bison.o > make_install := install > make_install_bin := install-bin > make_install_doc := install-doc Rechecked. As a make target we don't need this prefix: Don't allow writing at every directories: $ find -type d -exec chmod 555 {} \; $ touch ddd touch: cannot touch ‘ddd’: Permission denied $ make -C perf python/perf.so make: Entering directory `/home/wangnan/kernel-hydrogen/tools/perf' BUILD: Doing 'make -j24' parallel build /bin/sh: .config-detected: Permission denied ... config/Makefile:261: *** No gnu/libc-version.h found, please install glibc-dev[el]. Stop. make: *** [python/perf.so] Error 2 make: Leaving directory `/home/wangnan/kernel-hydrogen/tools/perf' Then use python/perf.so as make target: $ make -C perf python/perf.so O=/tmp/xxxxx make: Entering directory `/home/w00229757/kernel-hydrogen/tools/perf' BUILD: Doing 'make -j24' parallel build Auto-detecting system features: ... dwarf: [ on ] ... glibc: [ on ] ... gtk2: [ OFF ] ... libaudit: [ OFF ] ... libbfd: [ OFF ] ... libelf: [ on ] ... libnuma: [ OFF ] ... numa_num_possible_cpus: [ OFF ] ... libperl: [ on ] ... libpython: [ on ] ... libslang: [ OFF ] ... libunwind: [ OFF ] ... libdw-dwarf-unwind: [ on ] ... zlib: [ on ] ... lzma: [ on ] ... get_cpuid: [ on ] ... bpf: [ on ] ... LD /tmp/xxxxx/fd/libapi-in.o GEN /tmp/xxxxx/libtraceevent-dynamic-list LD /tmp/xxxxx/fs/libapi-in.o LD /tmp/xxxxx/libapi-in.o AR /tmp/xxxxx/libapi.a LD /tmp/xxxxx/libtraceevent-in.o LINK /tmp/xxxxx/libtraceevent.a GEN /tmp/xxxxx/python/perf.so make: Leaving directory `/home/wangnan/kernel-hydrogen/tools/perf' Adding the prefix also works it.