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

From: Wangnan (F)
Date: Thu Jan 14 2016 - 05:25:53 EST




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