From 04f9fac660d018d0b163dcafed2805909f576ee9 Mon Sep 17 00:00:00 2001 From: Dmitry Kozlyuk Date: Sat, 13 Nov 2021 00:48:24 +0300 Subject: [PATCH] config/x86: skip GNU binutils bug check for LLVM AVX512 was disabled when GNU binutils were missing or had a known bug, even if LLVM binutils were used for the build, because binutils-avx512-check.sh was invoked regardless and failed. In particular, this was the case for FreeBSD with clang (default). Run the check only when GNU binutils are used. Fixes: 68b1f1cda5b4 ("build: check AVX512 rather than binutils version") Cc: stable@dpdk.org Signed-off-by: Dmitry Kozlyuk Acked-by: Bruce Richardson --- config/x86/meson.build | 7 ++++--- lib/acl/meson.build | 2 +- lib/fib/meson.build | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/config/x86/meson.build b/config/x86/meson.build index 29f3dea181..603359e55a 100644 --- a/config/x86/meson.build +++ b/config/x86/meson.build @@ -2,9 +2,10 @@ # Copyright(c) 2017-2020 Intel Corporation # get binutils version for the workaround of Bug 97 -if not is_windows - binutils_ok = run_command(binutils_avx512_check) - if binutils_ok.returncode() != 0 and cc.has_argument('-mno-avx512f') +binutils_ok = true +if not is_windows and (is_linux or cc.get_id() == 'gcc') + binutils_ok = run_command(binutils_avx512_check).returncode() == 0 + if not binutils_ok and cc.has_argument('-mno-avx512f') machine_args += '-mno-avx512f' warning('Binutils error with AVX512 assembly, disabling AVX512 support') endif diff --git a/lib/acl/meson.build b/lib/acl/meson.build index f3dc513846..fbe17f9454 100644 --- a/lib/acl/meson.build +++ b/lib/acl/meson.build @@ -36,7 +36,7 @@ if dpdk_conf.has('RTE_ARCH_X86') # compile AVX512 version if: # we are building 64-bit binary AND binutils can generate proper code - if dpdk_conf.has('RTE_ARCH_X86_64') and binutils_ok.returncode() == 0 + if dpdk_conf.has('RTE_ARCH_X86_64') and binutils_ok # compile AVX512 version if either: # a. we have AVX512 supported in minimum instruction set diff --git a/lib/fib/meson.build b/lib/fib/meson.build index 593c8c47c8..9b848d0841 100644 --- a/lib/fib/meson.build +++ b/lib/fib/meson.build @@ -14,7 +14,7 @@ deps += ['rib'] # compile AVX512 version if: # we are building 64-bit binary AND binutils can generate proper code -if dpdk_conf.has('RTE_ARCH_X86_64') and binutils_ok.returncode() == 0 +if dpdk_conf.has('RTE_ARCH_X86_64') and binutils_ok # compile AVX512 version if either: # a. we have AVX512F supported in minimum instruction set baseline # b. it's not minimum instruction set, but supported by compiler -- 2.39.5