Re: [PATCH v3 0/9] perf build: Make build-test faster

From: pi3orama
Date: Fri Jan 15 2016 - 09:55:13 EST




发自我的 iPhone

> 在 2016年1月15日,下午10:36,Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> 写道:
>
> Em Fri, Jan 15, 2016 at 11:20:05AM +0100, Jiri Olsa escreveu:
>> On Fri, Jan 15, 2016 at 04:00:12AM +0000, Wang Nan wrote:
>>> Utilise Jiri's feature-dump make target to avoid make build-test check
>>> features too many times.
>>>
>>> v2 -> v3: add $(O_OPT) to 'make clean' to ensure the correctness of
>>> config-clean.
>>>
>>> Jiri Olsa (2):
>>> perf build: Add feature-dump target
>>> perf build: Introduce FEATURES_DUMP make variable
>>>
>>> Wang Nan (7):
>>> perf build: Set parallel making options build-test
>>> perf build: Pass O option to Makefile.perf in build-test
>>> perf build: Test correct path of perf in build-test
>>> perf build: Pass O option to kernel makefile in build-test
>>> tools build: Allow subprojects select all feature checkers
>>> perf build: Select all feature checkers for feature-dump
>>> perf build: Use feature dump file for build-test
>>>
>>> tools/build/Makefile.feature | 21 ++++++++++-
>>> tools/perf/Makefile.perf | 34 +++++++++++++++++-
>>> tools/perf/config/Makefile | 4 +++
>>> tools/perf/tests/make | 86 ++++++++++++++++++++++++++++++++++++--------
>>> 4 files changed, 128 insertions(+), 17 deletions(-)
>>
>> got error on:
>>
>> [jolsa@krava perf]$ make -f tests/make
>> Testing Makefile
>> readlink: missing operand
>> Try 'readlink --help' for more information.
>> - /BUILD_TEST_FEATURE_DUMP: cd . && make FEATURE_DUMP_COPY=/BUILD_TEST_FEATURE_DUMP feature-dump
>> cd . && make FEATURE_DUMP_COPY=/BUILD_TEST_FEATURE_DUMP feature-dump
>> tests/make:329: recipe for target '/BUILD_TEST_FEATURE_DUMP' failed
>> make[1]: *** [/BUILD_TEST_FEATURE_DUMP] Error 2
>> tests/make:7: recipe for target 'all' failed
>> make: *** [all] Error 2
>
> You mean with all patches applied, right? I haven't got that far, first
> and second patches are ok by now, I'm failing at patch 3, checking if
> setting up the python stuff to honour O= is in a later patch...
>
> [acme@zoo linux]$ rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf ; make -C tools/perf O=/tmp/build/perf build-test
> make: Entering directory '/home/git/linux/tools/perf'
> Testing Makefile
> - make_no_ui: cd . && make -f Makefile DESTDIR=/tmp/tmp.RYVWn1yMBU NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
> - make_tags: cd . && make -f Makefile DESTDIR=/tmp/tmp.iNjVFs9Eje tags - make_python_perf_so: cd . && make -f Makefile DESTDIR=/tmp/tmp.mvHDSUV1pl python/perf.so
> cd . && make -f Makefile DESTDIR=/tmp/tmp.mvHDSUV1pl python/perf.so
> 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 ]
>
> make[4]: Nothing to be done for 'python/perf.so'.
> test: test -f /tmp/build/perf/python/perf.so
> tests/make:272: recipe for target 'make_python_perf_so' failed
> make[2]: *** [make_python_perf_so] Error 1
> tests/make:7: recipe for target 'all' failed
> make[1]: *** [all] Error 2
> Makefile:81: recipe for target 'build-test' failed
> make: *** [build-test] Error 2
> make: Leaving directory '/home/git/linux/tools/perf'
> [acme@zoo linux]$ find . -name "*.so"
> ./tools/perf/python_ext_build/lib/perf.so
> ./tools/perf/python/perf.so
> [acme@zoo linux]$
>
> I.e. the test -f follows O=, but the process to generate python/perf.so
> doesn't and ends up pollutting the source tree.
>

Is your source directory already polluted
before this test?

> - Arnaldo