[dpdk-dev] [PATCH 2/6] config: add clang support for armv8a linuxapp

Jerin Jacob jerin.jacob at caviumnetworks.com
Thu May 11 08:58:03 CEST 2017


-----Original Message-----
> Date: Thu, 11 May 2017 11:07:18 +0530
> From: "Sekhar, Ashwin" <Ashwin.Sekhar at cavium.com>
> To: "Jacob,  Jerin" <Jerin.JacobKollanukkaran at cavium.com>
> CC: "bruce.richardson at intel.com" <bruce.richardson at intel.com>,
>  "thomas at monjalon.net" <thomas at monjalon.net>,
>  "konstantin.ananyev at intel.com" <konstantin.ananyev at intel.com>,
>  "pablo.de.lara.guarch at intel.com" <pablo.de.lara.guarch at intel.com>,
>  "Czekaj, Maciej" <Maciej.Czekaj at cavium.com>, "viktorin at rehivetech.com"
>  <viktorin at rehivetech.com>, "dev at dpdk.org" <dev at dpdk.org>,
>  "jianbo.liu at linaro.org" <jianbo.liu at linaro.org>
> Subject: Re: [dpdk-dev] [PATCH 2/6] config: add clang support for armv8a
>  linuxapp
> 
> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
> <meta name="Generator" content="Microsoft Exchange Server">
> <!-- converted from text -->
> <style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style></head>
> <body>
> <font size="2"><span style="font-size:10pt;"><div class="PlainText">On Thu, 2017-05-11 at 10:54 +0530, Jerin Jacob wrote:<br>
> > -----Original Message-----<br>
> > > <br>
> > > Date: Wed, 10 May 2017 03:16:39 -0700<br>
> > > From: Ashwin Sekhar T K <ashwin.sekhar at caviumnetworks.com><br>
> > > To: thomas at monjalon.net, jerin.jacob at caviumnetworks.com,<br>
> > >  maciej.czekaj at caviumnetworks.com, viktorin at rehivetech.com,<br>
> > >  jianbo.liu at linaro.org, bruce.richardson at intel.com,<br>
> > >  pablo.de.lara.guarch at intel.com, konstantin.ananyev at intel.com<br>
> > > Cc: dev at dpdk.org, Ashwin Sekhar T K <ashwin.sekhar at caviumnetworks.c<br>
> > > om><br>
> > > Subject: [dpdk-dev] [PATCH 2/6] config: add clang support for<br>
> > > armv8a<br>
> > >  linuxapp<br>
> > > X-Mailer: git-send-email 2.13.0.rc1<br>
> > > <br>
> > > Added new config arm64-armv8a-linuxapp-clang<br>
> > > <br>
> > > Signed-off-by: Ashwin Sekhar T K <ashwin.sekhar at caviumnetworks.com><br>
> > > ---<br>
> > >  config/defconfig_arm64-armv8a-linuxapp-clang | 56<br>
> > > ++++++++++++++++++++++++++++<br>
> > >  1 file changed, 56 insertions(+)<br>
> > >  create mode 100644 config/defconfig_arm64-armv8a-linuxapp-clang<br>
> > > <br>
> > > diff --git a/config/defconfig_arm64-armv8a-linuxapp-clang<br>
> > > b/config/defconfig_arm64-armv8a-linuxapp-clang<br>
> > > +#include "common_linuxapp"<br>
> > > +<br>
> > > +CONFIG_RTE_MACHINE="armv8a"<br>
> > > +<br>
> > > +CONFIG_RTE_ARCH="arm64"<br>
> > > +CONFIG_RTE_ARCH_ARM64=y<br>
> > > +CONFIG_RTE_ARCH_64=y<br>
> > > +<br>
> > > +CONFIG_RTE_FORCE_INTRINSICS=y<br>
> > > +<br>
> > > +CONFIG_RTE_TOOLCHAIN="clang"<br>
> > > +CONFIG_RTE_TOOLCHAIN_CLANG=y<br>
> > > +<br>
> > > +# Maximum available cache line size in arm64 implementations.<br>
> > > +# Setting to maximum available cache line size in generic config<br>
> > > +# to address minimum DMA alignment across all arm64<br>
> > > implementations.<br>
> > > +CONFIG_RTE_CACHE_LINE_SIZE=128<br>
> > > +<br>
> > > +CONFIG_RTE_EAL_IGB_UIO=n<br>
> > > +<br>
> > > +CONFIG_RTE_LIBRTE_FM10K_PMD=n<br>
> > > +CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n<br>
> > > +CONFIG_RTE_LIBRTE_AVP_PMD=n<br>
> > > +<br>
> > > +CONFIG_RTE_SCHED_VECTOR=n<br>
> > IMO, It is better to create common_armv8 config and let gcc and clang<br>
> > use that to avoid duplicating the symbols.<br>
> > <br>
> For x86, this is the convention that is followed. There are separate<br>
> defconfigs for icc, gcc, clang with symbols duplicated. Do we need to<br>
> deviate from this convention for armv8a?<br>

x86 case it bit different as the delta between common_config and x86 is very minimal.

for arm64 case, Following configs needs to be duplicated in both clang and gcc.

CONFIG_RTE_CACHE_LINE_SIZE=128
CONFIG_RTE_EAL_IGB_UIO=n
CONFIG_RTE_LIBRTE_FM10K_PMD=n
CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
CONFIG_RTE_LIBRTE_AVP_PMD=n
CONFIG_RTE_SCHED_VECTOR=n

That creates mutability issue. Creating a common common_armv8_linuxapp will
fix that issue.



More information about the dev mailing list