From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 13217559C for ; Fri, 20 Nov 2015 17:01:06 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP; 20 Nov 2015 08:00:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,323,1444719600"; d="scan'208";a="690590382" Received: from dwdohert-dpdk.ir.intel.com ([163.33.213.167]) by orsmga003.jf.intel.com with ESMTP; 20 Nov 2015 08:00:37 -0800 To: Konstantin Ananyev , dev@dpdk.org References: <1448033930-22524-1-git-send-email-konstantin.ananyev@intel.com> From: Declan Doherty Message-ID: <564F436A.9010202@intel.com> Date: Fri, 20 Nov 2015 15:59:38 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1448033930-22524-1-git-send-email-konstantin.ananyev@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v2] ACL: fix build for native-icc target on haswell fails 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: Fri, 20 Nov 2015 16:01:07 -0000 On 20/11/15 15:38, Konstantin Ananyev wrote: > On HSW box with icc 16.0.0 build for x86_64-native-linuxapp-icc fails with: > icc: command line warning #10120: overriding '-march=native' with '-msse4.1' > ... > dpdk.org/x86_64-native-linuxapp-icc/include/rte_memcpy.h(96): error: identifier "__m256i" is undefined > > The reason is that icc treats "-march=native ... -msse4.1" > in a different way, then gcc and clang. > For icc it means override all flags enabled with > '-march=native' with '-msse4.1'. > Even when '-march=native' is a superset for '-msse4.1'. > To overcome the problem add a check is SSE4.1 compilation flag already enabled. > If yes, then no need to add '-msse4.1' > Similar change for avx2 compilation option. > > Fixes: 074f54ad03ee ("acl: fix build and runtime for default target") > > Reported-by: Declan Doherty > Reported-by: Sergio Gonzalez Monroy > Signed-off-by: Konstantin Ananyev > --- > lib/librte_acl/Makefile | 31 +++++++++++++++++++++---------- > 1 file changed, 21 insertions(+), 10 deletions(-) > > v2 changes: > - merged with latest mainline > > diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile > index 27f91d5..897237d 100644 > --- a/lib/librte_acl/Makefile > +++ b/lib/librte_acl/Makefile > @@ -48,31 +48,42 @@ SRCS-$(CONFIG_RTE_LIBRTE_ACL) += rte_acl.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_bld.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_gen.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_scalar.c > + > ifeq ($(CONFIG_RTE_ARCH_ARM64),y) > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_neon.c > +CFLAGS_acl_run_neon.o += -flax-vector-conversions -Wno-maybe-uninitialized > else > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_sse.c > +#check if flag for SSE4.1 is already on, if not set it up manually > + ifeq ($(findstring RTE_MACHINE_CPUFLAG_SSE4_1,$(CFLAGS)),) > + CFLAGS_acl_run_sse.o += -msse4.1 > + endif > endif > > -CFLAGS_acl_run_sse.o += -msse4.1 > -CFLAGS_acl_run_neon.o += -flax-vector-conversions -Wno-maybe-uninitialized > - > # > # If the compiler supports AVX2 instructions, > # then add support for AVX2 classify method. > # > > -CC_AVX2_SUPPORT=$(shell $(CC) -march=core-avx2 -dM -E - &1 | \ > -grep -q AVX2 && echo 1) > +#check if flag for AVX2 is already on, if not set it up manually > +ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2) > + CC_AVX2_SUPPORT=1 > +else > + CC_AVX2_SUPPORT=\ > + $(shell $(CC) -march=core-avx2 -dM -E - &1 | \ > + grep -q AVX2 && echo 1) > + ifeq ($(CC_AVX2_SUPPORT), 1) > + ifeq ($(CC), icc) > + CFLAGS_acl_run_avx2.o += -march=core-avx2 > + else > + CFLAGS_acl_run_avx2.o += -mavx2 > + endif > + endif > +endif > > ifeq ($(CC_AVX2_SUPPORT), 1) > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_avx2.c > CFLAGS_rte_acl.o += -DCC_AVX2_SUPPORT > - ifeq ($(CC), icc) > - CFLAGS_acl_run_avx2.o += -march=core-avx2 > - else > - CFLAGS_acl_run_avx2.o += -mavx2 > - endif > endif > > # install this header file Acked-by: Declan Doherty