mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86emul: rework compiler probing in the test harness
Checking for what $(SIMD) contains was initially right, but already the addition of $(FMA) wasn't. Later categories (correctly) weren't added. Instead what is of interest is anything the main harness source file uses outside of suitable #if and without resorting to .byte, as that's the one file (containing actual tests) which has to succeed in building. The auxiliary binary blobs we utilize may fail to build; the resulting empty blobs are recognized and reported as "n/a" when the harness is run. Note that strictly speaking we'd need to probe the assembler. We assume that a compiler knowing of a certain ISA extension is backed by an equally capable assembler. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
1 parent
67fdffef92
commit
7c6fdc40a0
1 file changed
+4
-2
@@ -104,11 +104,13 @@ TARGET-y := $(TARGET)
|
||||
|
||||
ifeq ($(filter run%,$(MAKECMDGOALS)),)
|
||||
|
||||
define simd-check-cc
|
||||
define isa-check-cc
|
||||
TARGET-$(shell echo 'int i;' | $(CC) -x c -c -o /dev/null -m$(1) - || echo y) :=
|
||||
endef
|
||||
|
||||
$(foreach flavor,$(SIMD) $(FMA),$(eval $(call simd-check-cc,$(flavor))))
|
||||
ISA := bmi bmi2 tbm sse4.1 sse4.2 sse4a avx avx2 f16c
|
||||
ISA += $(addprefix avx512,f bw dq 4fmaps)
|
||||
$(foreach isa,$(ISA),$(eval $(call isa-check-cc,$(isa))))
|
||||
|
||||
# Also explicitly check for {evex} pseudo-prefix support, which got introduced
|
||||
# only after AVX512F and some of its extensions.
|
||||
|
||||