From: Bruce Richardson Date: Mon, 7 Jul 2014 23:36:56 +0000 (+0100) Subject: mk: fix detection of SSE4.2 on FreeBSD X-Git-Tag: spdx-start~10527 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=bda2ae11029f7e284923a3df02d25b4a3d3e63fc;p=dpdk.git mk: fix detection of SSE4.2 on FreeBSD Add a special case to the native target makefile, where we check if -march=native shows SSE4.2 support. If it does not, then not everything may build, so we check if the hardware supports SSE4.2, and use a corei7 target explicitly to get the SSE4.2 support. Then ACL library, which requires SSE4.2, can be re-enabled for FreeBSD. Signed-off-by: Bruce Richardson Tested-by: Zhaochen Zhan Acked-by: Thomas Monjalon --- diff --git a/config/defconfig_x86_64-native-bsdapp-gcc b/config/defconfig_x86_64-native-bsdapp-gcc index 223419359e..e91738b5db 100644 --- a/config/defconfig_x86_64-native-bsdapp-gcc +++ b/config/defconfig_x86_64-native-bsdapp-gcc @@ -69,8 +69,3 @@ CONFIG_RTE_ARCH_X86_64=y # CONFIG_RTE_TOOLCHAIN="gcc" CONFIG_RTE_TOOLCHAIN_GCC=y - -# -# GCC doesn't detect SSE4.x support correctly on BSD, so disable ACL lib -# -CONFIG_RTE_LIBRTE_ACL=n diff --git a/mk/machine/native/rte.vars.mk b/mk/machine/native/rte.vars.mk index da9aa7148e..6ce0c723bd 100644 --- a/mk/machine/native/rte.vars.mk +++ b/mk/machine/native/rte.vars.mk @@ -56,3 +56,15 @@ # CPU_ASFLAGS = MACHINE_CFLAGS = -march=native + +# On FreeBSD systems, sometimes the correct CPU type is not picked up. +# To get everything to compile, we need SSE4.2 support, so check if that is +# reported by compiler. If not, check if the CPU actually supports it, and if +# so, set the compilation target to be a corei7, minimum target with SSE4.2. +SSE42_SUPPORT=$(shell $(CC) -march=native -dM -E - /dev/null) + ifneq ($(CPU_SSE42_SUPPORT),) + MACHINE_CFLAGS = -march=corei7 + endif +endif