From 5e37a69a04c61d5bdffb2acbcb05362794e72816 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 4 Nov 2016 21:28:03 +0000 Subject: Handle tests-unsupported if run-built-tests = no. The tests-unsupported variable lists tests that should neither be compiled nor run, because some support needed to compile them is missing. The implementation of this feature involves having a rule to create .out files for these tests that takes precedence over the default rule. This does not work in the run-built-tests = no case (cross compiling without use of a wrapper to run the tests on a separate system, in which cases most tests are compiled only) because in that case the tests target depends on $(tests) to ensure all tests get compiled. This patch changes that dependency to filter out $(tests-unsupported). Tested with cross-compilation to ARM with GCC 5, where libstdc++ is missing some C++11 support because of the bug I fixed in and so tests-unsupported is nonempty and the tests in question fail to compile. (When I originally observed the bug, it was with a native build / test simply using an x86_64 compiler that had been configured as a cross compiler to isolate it from the system headers / libraries, so the configuration issue applied to the compiler but run-built-tests was yes, so I don't observe the issue with tests-unsupported with that compiler.) * Rules [$(run-built-tests) = no] (tests): Do not depend on $(tests-unsupported). --- Rules | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Rules') diff --git a/Rules b/Rules index 342d659408..4b95997a06 100644 --- a/Rules +++ b/Rules @@ -114,7 +114,8 @@ else others: $(addprefix $(objpfx),$(extra-objs)) endif ifeq ($(run-built-tests),no) -tests: $(addprefix $(objpfx),$(tests) $(test-srcs)) $(tests-special) +tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported),$(tests)) \ + $(test-srcs)) $(tests-special) xtests: tests $(xtests-special) else tests: $(tests:%=$(objpfx)%.out) $(tests-special) -- cgit v1.2.3