AVX512 was disabled for GCC because of Bugzilla issue 97 [1], the GCC defect submitted for the issue [2] highlighted that this is a known binutils version 2.30 issue.
Narrowed the scope of no-avx512 to the this specific binutils version. [1] https://bugs.dpdk.org/show_bug.cgi?id=97 [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88096 Fixes: 8d07c82b239f ("mk: disable gcc AVX512F support") Cc: sta...@dpdk.org Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> --- Cc: Tom Barbette <barbe...@kth.se> Cc: Thomas Monjalon <tho...@monjalon.net> Cc: Yongseok Koh <ys...@mellanox.com> Cc: Konstantin Ananyev <konstantin.anan...@intel.com> Cc: Bruce Richardson <bruce.richard...@intel.com> We need similar check for meson which is missing right now. --- mk/rte.cpuflags.mk | 2 ++ mk/toolchain/gcc/rte.toolchain-compat.mk | 2 ++ 2 files changed, 4 insertions(+) diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk index c3291b17a..5e52e580d 100644 --- a/mk/rte.cpuflags.mk +++ b/mk/rte.cpuflags.mk @@ -71,10 +71,12 @@ CPUFLAGS += AVX512F else # disable AVX512F support of gcc as a workaround for Bug 97 ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y) +ifneq ($(filter 2.30%,$(LD_VERSION)),) MACHINE_CFLAGS += -mno-avx512f endif endif endif +endif # IBM Power CPU flags ifneq ($(filter $(AUTO_CPUFLAGS),__PPC64__),) diff --git a/mk/toolchain/gcc/rte.toolchain-compat.mk b/mk/toolchain/gcc/rte.toolchain-compat.mk index 44904295c..2690aeb4d 100644 --- a/mk/toolchain/gcc/rte.toolchain-compat.mk +++ b/mk/toolchain/gcc/rte.toolchain-compat.mk @@ -20,6 +20,8 @@ HOST_GCC_MINOR = $(shell echo __GNUC_MINOR__ | $(HOSTCC) -E -x c - | tail -n 1) HOST_GCC_PATCHLEVEL = $(shell echo __GNUC_PATCHLEVEL__ | $(HOSTCC) -E -x c - | tail -n 1) HOST_GCC_VERSION = $(HOST_GCC_MAJOR)$(HOST_GCC_MINOR) +LD_VERSION = $(shell ld -v) + # if GCC is older than 4.x ifeq ($(shell test $(GCC_VERSION) -lt 40 && echo 1), 1) MACHINE_CFLAGS = -- 2.17.2