Since 3687d532 we've been unconditionally adding qom-test to our qtests for every arch. However, some archs inherit their tests from Makefile variables for other archs, such as i386/x86_64, microblaze/microblazeel, and xtensa/xtensaeb. Since these are evaluated in a lazy manner, we ultimately end up adding qom-test twice.
In the case x86_64, where we have a large number of machine types that we rerun qom-test for, this has lead to a fairly noticeable increase in the overall run-time of `make check` (78s vs. 42s on my machine). Similar speed-ups are visible for other such archs, but not nearly as significant. Fix this by only adding qom-test to an arch's test list if it's not already present. Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Reviewed-by: Andreas Färber <afaer...@suse.de> Cc: qemu-sta...@nongnu.org Signed-off-by: Michael Tokarev <m...@tls.msk.ru> (cherry picked from commit 2b8419cb4911731db6c883fa7b0428ad4a355d9d) Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> --- tests/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Makefile b/tests/Makefile index 4b2e1bb..2ea54fc 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -187,7 +187,8 @@ check-qtest-xtensaeb-y = $(check-qtest-xtensa-y) # qom-test works for all sysemu architectures: $(foreach target,$(SYSEMU_TARGET_LIST), \ - $(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF))) + $(if $(findstring tests/qom-test$(EXESUF), $(check-qtest-$(target)-y)),, \ + $(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF)))) check-qapi-schema-y := $(addprefix tests/qapi-schema/, \ comments.json empty.json funny-char.json indented-expr.json \ -- 1.9.1