tests/cpu-policy: Skip building on older versions of GCC

GCC 4.4 (as included in CentOS 6) is too old to handle designated initialisers
in anonymous unions.  As this is just a developer tool, skip the test in this
case, rather than sacraficing the legibility/expresibility of the test cases.

This fixes the Gitlab CI tests.

While adding this logic to cpu-polcy, adjust the equivelent logic from
x86_emulator on which this was based.  Printing:

  Test harness not built, use newer compiler than "gcc"

isn't helpful for anyone unexpectedly encountering the error.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Andrew Cooper committed 2019-05-24 17:50:57 +01:00
1 parent 188164069a
commit 6fdde9e308
2 files changed
+15 -2

No files matched your search

+14 -1
View File
@@ -1,8 +1,21 @@
XEN_ROOT = $(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
TARGET-y := test-cpu-policy
# For brevity, these tests make extensive use of designated initialisers in
# anonymous unions, but GCCs older than 4.6 can't cope. Ignore the test in
# this case.
ifneq ($(clang),y)
TARGET-$(call cc-ver,$(CC),lt,0x040600) :=
endif
ifeq ($(TARGET-y),)
$(warning Test harness not built, use newer compiler than "$(CC)" (version $(shell $(CC) -dumpversion)))
endif
.PHONY: all
all: test-cpu-policy
all: $(TARGET-y)
.PHONY: clean
clean:
+1 -1
View File
@@ -97,7 +97,7 @@ $(foreach flavor,$(SIMD) $(FMA),$(eval $(call simd-check-cc,$(flavor))))
TARGET-$(shell echo 'asm("{evex} vzeroall");' | $(CC) -x c -c -o /dev/null - || echo y) :=
ifeq ($(TARGET-y),)
$(warning Test harness not built, use newer compiler than "$(CC)")
$(warning Test harness not built, use newer compiler than "$(CC)" (version $(shell $(CC) -dumpversion)) and an "{evex}" capable assembler)
endif
all: $(TARGET-y)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.