From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by dpdk.org (Postfix) with ESMTP id 6E6DC959 for ; Thu, 17 Jul 2014 23:46:51 +0200 (CEST) Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 17 Jul 2014 14:47:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.01,680,1400050800"; d="scan'208";a="458343662" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by azsmga001.ch.intel.com with ESMTP; 17 Jul 2014 14:47:46 -0700 Received: from sivswdev02.ir.intel.com (sivswdev02.ir.intel.com [10.237.217.46]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id s6HLljGQ028068; Thu, 17 Jul 2014 22:47:45 +0100 Received: from sivswdev02.ir.intel.com (localhost [127.0.0.1]) by sivswdev02.ir.intel.com with ESMTP id s6HLljqO008132; Thu, 17 Jul 2014 22:47:45 +0100 Received: (from bricha3@localhost) by sivswdev02.ir.intel.com with id s6HLljfD008128; Thu, 17 Jul 2014 22:47:45 +0100 From: Bruce Richardson To: dev@dpdk.org Date: Thu, 17 Jul 2014 22:47:45 +0100 Message-Id: <1405633665-7659-1-git-send-email-bruce.richardson@intel.com> X-Mailer: git-send-email 1.7.0.7 In-Reply-To: <1404776219-6130-4-git-send-email-bruce.richardson@intel.com> References: <1404776219-6130-4-git-send-email-bruce.richardson@intel.com> Subject: [dpdk-dev] [PATCH v2 3/6] mk: Ensure correct detection of SSE4.2 on FreeBSD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2014 21:46:52 -0000 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. New in V2: * Re-enable ACL library for FreeBSD using gcc, which requires SSE4.2 * Adjust SSE42 detection command based on feedback from Thomas Monjalon Signed-off-by: Bruce Richardson --- config/defconfig_x86_64-native-bsdapp-gcc | 5 ----- mk/machine/native/rte.vars.mk | 12 ++++++++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/config/defconfig_x86_64-native-bsdapp-gcc b/config/defconfig_x86_64-native-bsdapp-gcc index 2234193..e91738b 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 da9aa71..baabb39 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 grep SSE4\.2 /var/run/dmesg.boot 2>/dev/null) + ifneq ($(CPU_SSE42_SUPPORT),) + MACHINE_CFLAGS= -march=corei7 + endif +endif -- 2.0.0