When building without AVX2 support using an older compiler e.g. gcc 4.8 on Centos/RHEL 7, we get build errors due to the use of AVX2 intrinsics. This is because the compiler does not support "__attribute__((target(AVX2)))" function attribute. Disable build of this driver such edge cases.
Generic builds using recent compilers, and all builds with a minimum baseline of AVX2 are unaffected by this change. Fixes: aa802b10237c ("dma/idxd: fix AVX2 in non-datapath functions") Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> --- drivers/dma/idxd/meson.build | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/dma/idxd/meson.build b/drivers/dma/idxd/meson.build index dcc0a297d7..c5403b431c 100644 --- a/drivers/dma/idxd/meson.build +++ b/drivers/dma/idxd/meson.build @@ -4,6 +4,17 @@ build = dpdk_conf.has('RTE_ARCH_X86') reason = 'only supported on x86' +test_avx2_code = ''' +#include <x86intrin.h> +__attribute__((target("avx2"))) +__m256i fn(void *x) { return _mm256_loadu_si256(x); } +''' +if build and not cc.compiles(test_avx2_code, args:machine_args) + build = false + reason = 'missing support for AVX2 function attribute' + subdir_done() +endif + deps += ['bus_pci'] sources = files( 'idxd_common.c', -- 2.34.1