Re: [PATCH 9/9] perf build: Use feature dump file for build-test

Wangnan (F)
2016-01-14T10:25:48Z

On 2016/1/14 18:19, Jiri Olsa wrote:
> On Wed, Jan 13, 2016 at 12:17:22PM +0000, Wang Nan wrote:
>
> SNIP
>
>> +$(FEATURES_DUMP_FILE_STATIC):
>> + $(call clean)
>> + @cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) LDFLAGS='-static' feature-dump"; \
>> + echo "- $@: $$cmd" && echo $$cmd && \
>> + ( eval $$cmd ) 2>&1
>> +
>> +$(foreach t,$(run) $(run_O),$(eval \
>> + $(t): $(if $(findstring make_static,$(t)),\
>> + $(FEATURES_DUMP_FILE_STATIC),\
>> + $(FEATURES_DUMP_FILE))))
>> +
>> +$(foreach t,$(run),$(if $(findstring make_static,$(t)),\
>> + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE_STATIC)),\
>> + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE))))
>> +
> the BUILD_TEST_FEATURE_DUMP rebuild is not silent:
>
> [jolsa@krava perf]$ rm BUILD_TEST_FEATURE_DUMP
> [jolsa@krava perf]$ make -f tests/make
> Testing Makefile
> - /home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP: cd . && make FEATURE_DUMP_COPY=/home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump
> cd . && make FEATURE_DUMP_COPY=/home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump
> 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 ]
>
> ...
>
>
> also should 'make clean' remove BUILD_TEST_FEATURE_DUMP?

If a simple 'make clean' removes these two feature dump file then
they are unable to reused by multiple test cases. During build-test
'make clean' is called many times.

What about force removing these two files here:

ifeq ($(MAKECMDGOALS),)
# no target specified, trigger the whole suite
all:
@rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) <---
*HERE*
@echo "Testing Makefile"; $(MAKE) -sf tests/make MK=Makefile
@echo "Testing Makefile.perf"; $(MAKE) -sf tests/make
MK=Makefile.perf SET_PARALLEL=1 SET_O=1
else
# run only specific test over 'Makefile'
%:
@rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) <---
*and HERE*
@echo "Testing Makefile"; $(MAKE) -sf tests/make
MK=Makefile $@
endif

> thanks,
> jirka