From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruce Richardson Subject: [PATCH 3/6] mk: Ensure correct detection of SSE4.2 on FreeBSD Date: Tue, 8 Jul 2014 00:36:56 +0100 Message-ID: <1404776219-6130-4-git-send-email-bruce.richardson@intel.com> References: <1404776219-6130-1-git-send-email-bruce.richardson@intel.com> To: dev-VfR2kkLFssw@public.gmane.org Return-path: In-Reply-To: <1404776219-6130-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 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. Signed-off-by: Bruce Richardson --- mk/machine/native/rte.vars.mk | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mk/machine/native/rte.vars.mk b/mk/machine/native/rte.vars.mk index da9aa71..f495973 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 cputype 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 | grep SSE4_2) +ifeq ($(SSE42_SUPPORT),) + CPU_SSE42_SUPPORT=$(shell if [ -f /var/run/dmesg.boot ] ; then grep SSE4\.2 /var/run/dmesg.boot ; fi) + ifneq ($(CPU_SSE42_SUPPORT),) + MACHINE_CFLAGS= -march=corei7 + endif +endif -- 1.9.3