Message ID | 20200424065053.119885-1-ruifeng.wang@arm.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D3B46A00C2; Fri, 24 Apr 2020 08:51:12 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2D6E51C1CA; Fri, 24 Apr 2020 08:51:12 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id EBE671C1C8 for <dev@dpdk.org>; Fri, 24 Apr 2020 08:51:10 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5F3EC31B; Thu, 23 Apr 2020 23:51:10 -0700 (PDT) Received: from net-arm-thunderx2-02.shanghai.arm.com (net-arm-thunderx2-02.shanghai.arm.com [10.169.41.165]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 582B73F68F; Thu, 23 Apr 2020 23:51:07 -0700 (PDT) From: Ruifeng Wang <ruifeng.wang@arm.com> To: wenzhuo.lu@intel.com, konstantin.ananyev@intel.com, jerinj@marvell.com, viktorin@rehivetech.com Cc: dev@dpdk.org, gavin.hu@arm.com, honnappa.nagarahalli@arm.com, juraj.linkes@pantheon.tech, nd@arm.com, Ruifeng Wang <ruifeng.wang@arm.com> Date: Fri, 24 Apr 2020 14:50:50 +0800 Message-Id: <20200424065053.119885-1-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH 0/3] aarch32 compilation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series | aarch32 compilation | |
Message
Ruifeng Wang
April 24, 2020, 6:50 a.m. UTC
Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] and ixgbe PMD [2]. This patch set is to fix these. When building with make, please refer to guide: http://patches.dpdk.org/patch/62820/ When building with meson, requires series: http://patches.dpdk.org/cover/68534/ [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html Ruifeng Wang (3): arch/arm: add vcopyq intrinsic for aarch32 net/ixgbe: add support for aarch32 net/ixgbe: fix include of vector header file drivers/net/ixgbe/ixgbe_rxtx.h | 4 ++-- drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 3 +-- lib/librte_eal/arm/include/rte_vect.h | 6 +++++- 3 files changed, 8 insertions(+), 5 deletions(-)
Comments
On 4/24/2020 7:50 AM, Ruifeng Wang wrote: > Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] > and ixgbe PMD [2]. This patch set is to fix these. > > When building with make, please refer to guide: > http://patches.dpdk.org/patch/62820/ > > When building with meson, requires series: > http://patches.dpdk.org/cover/68534/ > > [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html > [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html > > > Ruifeng Wang (3): > arch/arm: add vcopyq intrinsic for aarch32 > net/ixgbe: add support for aarch32 > net/ixgbe: fix include of vector header file > Not directly related to this patch but since you are fixing aarch32 compilation, I am getting following -Wcast-align warnings [1] while cross building with: arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0 [1] .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’: .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast increases required alignment of target type [-Wcast-align] 31 | struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param; | ^ .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast increases required alignment of target type [-Wcast-align] 33 | (const struct vfio_mp_param *)msg->param; | ^ .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’: .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases required alignment of target type [-Wcast-align] 269 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; | ^ .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases required alignment of target type [-Wcast-align] 316 | p = (struct vfio_mp_param *)mp_rep->param; | ^ CC eal_common_class.o .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_sync_default_container’: .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases required alignment of target type [-Wcast-align] 627 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; | ^ .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases required alignment of target type [-Wcast-align] 652 | p = (struct vfio_mp_param *)mp_rep->param; | ^ .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_get_default_container_fd’: .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases required alignment of target type [-Wcast-align] 1094 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; | ^ .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases required alignment of target type [-Wcast-align] 1116 | p = (struct vfio_mp_param *)mp_rep->param; | ^ CC eal_common_bus.o .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’: .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases required alignment of target type [-Wcast-align] 1202 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; | ^ .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases required alignment of target type [-Wcast-align] 1248 | p = (struct vfio_mp_param *)mp_rep->param; | ^
> -----Original Message----- > From: Ferruh Yigit <ferruh.yigit@intel.com> > Sent: Friday, May 1, 2020 11:07 PM > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; > konstantin.ananyev@intel.com; jerinj@marvell.com; > viktorin@rehivetech.com > Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli > <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd > <nd@arm.com> > Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation > > On 4/24/2020 7:50 AM, Ruifeng Wang wrote: > > Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] and > > ixgbe PMD [2]. This patch set is to fix these. > > > > When building with make, please refer to guide: > > http://patches.dpdk.org/patch/62820/ > > > > When building with meson, requires series: > > http://patches.dpdk.org/cover/68534/ > > > > [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html > > [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html > > > > > > Ruifeng Wang (3): > > arch/arm: add vcopyq intrinsic for aarch32 > > net/ixgbe: add support for aarch32 > > net/ixgbe: fix include of vector header file > > > > Not directly related to this patch but since you are fixing aarch32 compilation, > I am getting following -Wcast-align warnings [1] while cross building with: > arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0 > I got the same warnings with arm-linux-gnueabihf-gcc. The warnings spread in many different files. It is because armv7a/aarch32 puts strict align requirement. We can first make it compile. And clean up such warnings in next step? > > [1] > .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’: > .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast increases > required alignment of target type [-Wcast-align] > 31 | struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param; > | ^ > .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast increases > required alignment of target type [-Wcast-align] > 33 | (const struct vfio_mp_param *)msg->param; > | ^ > .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’: > .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases required > alignment of target type [-Wcast-align] > 269 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; > | ^ > .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases required > alignment of target type [-Wcast-align] > 316 | p = (struct vfio_mp_param *)mp_rep->param; > | ^ > CC eal_common_class.o > .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_sync_default_container’: > .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases required > alignment of target type [-Wcast-align] > 627 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; > | ^ > .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases required > alignment of target type [-Wcast-align] > 652 | p = (struct vfio_mp_param *)mp_rep->param; > | ^ > .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_get_default_container_fd’: > .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases required > alignment of target type [-Wcast-align] > 1094 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; > | ^ > .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases required > alignment of target type [-Wcast-align] > 1116 | p = (struct vfio_mp_param *)mp_rep->param; > | ^ > CC eal_common_bus.o > .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’: > .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases required > alignment of target type [-Wcast-align] > 1202 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; > | ^ > .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases required > alignment of target type [-Wcast-align] > 1248 | p = (struct vfio_mp_param *)mp_rep->param; > | ^
On 5/6/2020 9:09 AM, Ruifeng Wang wrote: > >> -----Original Message----- >> From: Ferruh Yigit <ferruh.yigit@intel.com> >> Sent: Friday, May 1, 2020 11:07 PM >> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; >> konstantin.ananyev@intel.com; jerinj@marvell.com; >> viktorin@rehivetech.com >> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli >> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd >> <nd@arm.com> >> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation >> >> On 4/24/2020 7:50 AM, Ruifeng Wang wrote: >>> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] and >>> ixgbe PMD [2]. This patch set is to fix these. >>> >>> When building with make, please refer to guide: >>> http://patches.dpdk.org/patch/62820/ >>> >>> When building with meson, requires series: >>> http://patches.dpdk.org/cover/68534/ >>> >>> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html >>> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html >>> >>> >>> Ruifeng Wang (3): >>> arch/arm: add vcopyq intrinsic for aarch32 >>> net/ixgbe: add support for aarch32 >>> net/ixgbe: fix include of vector header file >>> >> >> Not directly related to this patch but since you are fixing aarch32 compilation, >> I am getting following -Wcast-align warnings [1] while cross building with: >> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0 >> > I got the same warnings with arm-linux-gnueabihf-gcc. The warnings spread in many different files. > It is because armv7a/aarch32 puts strict align requirement. > We can first make it compile. And clean up such warnings in next step? Sure. I thought it would break the build, aren't we using -Werror for the target? > >> >> [1] >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’: >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast increases >> required alignment of target type [-Wcast-align] >> 31 | struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param; >> | ^ >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast increases >> required alignment of target type [-Wcast-align] >> 33 | (const struct vfio_mp_param *)msg->param; >> | ^ >> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’: >> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases required >> alignment of target type [-Wcast-align] >> 269 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; >> | ^ >> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases required >> alignment of target type [-Wcast-align] >> 316 | p = (struct vfio_mp_param *)mp_rep->param; >> | ^ >> CC eal_common_class.o >> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_sync_default_container’: >> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases required >> alignment of target type [-Wcast-align] >> 627 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; >> | ^ >> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases required >> alignment of target type [-Wcast-align] >> 652 | p = (struct vfio_mp_param *)mp_rep->param; >> | ^ >> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_get_default_container_fd’: >> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases required >> alignment of target type [-Wcast-align] >> 1094 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; >> | ^ >> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases required >> alignment of target type [-Wcast-align] >> 1116 | p = (struct vfio_mp_param *)mp_rep->param; >> | ^ >> CC eal_common_bus.o >> .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’: >> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases required >> alignment of target type [-Wcast-align] >> 1202 | struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param; >> | ^ >> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases required >> alignment of target type [-Wcast-align] >> 1248 | p = (struct vfio_mp_param *)mp_rep->param; >> | ^
> -----Original Message----- > From: Ferruh Yigit <ferruh.yigit@intel.com> > Sent: Wednesday, May 6, 2020 6:14 PM > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; > konstantin.ananyev@intel.com; jerinj@marvell.com; > viktorin@rehivetech.com > Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli > <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd > <nd@arm.com> > Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation > > On 5/6/2020 9:09 AM, Ruifeng Wang wrote: > > > >> -----Original Message----- > >> From: Ferruh Yigit <ferruh.yigit@intel.com> > >> Sent: Friday, May 1, 2020 11:07 PM > >> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; > >> konstantin.ananyev@intel.com; jerinj@marvell.com; > >> viktorin@rehivetech.com > >> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa > Nagarahalli > >> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd > >> <nd@arm.com> > >> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation > >> > >> On 4/24/2020 7:50 AM, Ruifeng Wang wrote: > >>> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] > >>> and ixgbe PMD [2]. This patch set is to fix these. > >>> > >>> When building with make, please refer to guide: > >>> http://patches.dpdk.org/patch/62820/ > >>> > >>> When building with meson, requires series: > >>> http://patches.dpdk.org/cover/68534/ > >>> > >>> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html > >>> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html > >>> > >>> > >>> Ruifeng Wang (3): > >>> arch/arm: add vcopyq intrinsic for aarch32 > >>> net/ixgbe: add support for aarch32 > >>> net/ixgbe: fix include of vector header file > >>> > >> > >> Not directly related to this patch but since you are fixing aarch32 > >> compilation, I am getting following -Wcast-align warnings [1] while cross > building with: > >> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0 > >> > > I got the same warnings with arm-linux-gnueabihf-gcc. The warnings > spread in many different files. > > It is because armv7a/aarch32 puts strict align requirement. > > We can first make it compile. And clean up such warnings in next step? > > Sure. > > I thought it would break the build, aren't we using -Werror for the target? Currently, "RTE_DEVEL_BUILD=n" is needed for armv7 build. http://patches.dpdk.org/patch/62820/ > > > > >> > >> [1] > >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’: > >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast > >> increases required alignment of target type [-Wcast-align] > >> 31 | struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param; > >> | ^ > >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast > >> increases required alignment of target type [-Wcast-align] > >> 33 | (const struct vfio_mp_param *)msg->param; > >> | ^ > >> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’: > >> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases > >> required alignment of target type [-Wcast-align] > >> 269 | struct vfio_mp_param *p = (struct vfio_mp_param > *)mp_req.param; > >> | ^ > >> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases > >> required alignment of target type [-Wcast-align] > >> 316 | p = (struct vfio_mp_param *)mp_rep->param; > >> | ^ > >> CC eal_common_class.o > >> .../lib/librte_eal/linux/eal_vfio.c: In function > ‘vfio_sync_default_container’: > >> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases > >> required alignment of target type [-Wcast-align] > >> 627 | struct vfio_mp_param *p = (struct vfio_mp_param > *)mp_req.param; > >> | ^ > >> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases > >> required alignment of target type [-Wcast-align] > >> 652 | p = (struct vfio_mp_param *)mp_rep->param; > >> | ^ > >> .../lib/librte_eal/linux/eal_vfio.c: In function > ‘vfio_get_default_container_fd’: > >> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases > >> required alignment of target type [-Wcast-align] > >> 1094 | struct vfio_mp_param *p = (struct vfio_mp_param > *)mp_req.param; > >> | ^ > >> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases > >> required alignment of target type [-Wcast-align] > >> 1116 | p = (struct vfio_mp_param *)mp_rep->param; > >> | ^ > >> CC eal_common_bus.o > >> .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’: > >> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases > >> required alignment of target type [-Wcast-align] > >> 1202 | struct vfio_mp_param *p = (struct vfio_mp_param > *)mp_req.param; > >> | ^ > >> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases > >> required alignment of target type [-Wcast-align] > >> 1248 | p = (struct vfio_mp_param *)mp_rep->param; > >> | ^
On 5/6/2020 2:54 PM, Ruifeng Wang wrote: > >> -----Original Message----- >> From: Ferruh Yigit <ferruh.yigit@intel.com> >> Sent: Wednesday, May 6, 2020 6:14 PM >> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; >> konstantin.ananyev@intel.com; jerinj@marvell.com; >> viktorin@rehivetech.com >> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli >> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd >> <nd@arm.com> >> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation >> >> On 5/6/2020 9:09 AM, Ruifeng Wang wrote: >>> >>>> -----Original Message----- >>>> From: Ferruh Yigit <ferruh.yigit@intel.com> >>>> Sent: Friday, May 1, 2020 11:07 PM >>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; >>>> konstantin.ananyev@intel.com; jerinj@marvell.com; >>>> viktorin@rehivetech.com >>>> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa >> Nagarahalli >>>> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd >>>> <nd@arm.com> >>>> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation >>>> >>>> On 4/24/2020 7:50 AM, Ruifeng Wang wrote: >>>>> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] >>>>> and ixgbe PMD [2]. This patch set is to fix these. >>>>> >>>>> When building with make, please refer to guide: >>>>> http://patches.dpdk.org/patch/62820/ >>>>> >>>>> When building with meson, requires series: >>>>> http://patches.dpdk.org/cover/68534/ >>>>> >>>>> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html >>>>> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html >>>>> >>>>> >>>>> Ruifeng Wang (3): >>>>> arch/arm: add vcopyq intrinsic for aarch32 >>>>> net/ixgbe: add support for aarch32 >>>>> net/ixgbe: fix include of vector header file >>>>> >>>> >>>> Not directly related to this patch but since you are fixing aarch32 >>>> compilation, I am getting following -Wcast-align warnings [1] while cross >> building with: >>>> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0 >>>> >>> I got the same warnings with arm-linux-gnueabihf-gcc. The warnings >> spread in many different files. >>> It is because armv7a/aarch32 puts strict align requirement. >>> We can first make it compile. And clean up such warnings in next step? >> >> Sure. >> >> I thought it would break the build, aren't we using -Werror for the target? > Currently, "RTE_DEVEL_BUILD=n" is needed for armv7 build. > http://patches.dpdk.org/patch/62820/ May be not. I did able to build without "RTE_DEVEL_BUILD=n", while checking how :), found that "CONFIG_RTE_ARCH_STRICT_ALIGN=y" set in the armv7a config (defconfig_arm-armv7a-linux-gcc), seems explicitly added for these '-Wcast-align' warnings. Overall to the point of the discussion, since this way or that, build is not broken with cast-align warnings, I am OK to fix them later gradually. A side note is, I wonder if these 'RTE_DEVEL_BUILD' or 'CONFIG_RTE_ARCH_STRICT_ALIGN' reflected to the meson build, taking into account that make build is going away on 20.11, will we able to keep these functionalities in meson. > >> >>> >>>> >>>> [1] >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’: >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast >>>> increases required alignment of target type [-Wcast-align] >>>> 31 | struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param; >>>> | ^ >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast >>>> increases required alignment of target type [-Wcast-align] >>>> 33 | (const struct vfio_mp_param *)msg->param; >>>> | ^ >>>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’: >>>> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases >>>> required alignment of target type [-Wcast-align] >>>> 269 | struct vfio_mp_param *p = (struct vfio_mp_param >> *)mp_req.param; >>>> | ^ >>>> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases >>>> required alignment of target type [-Wcast-align] >>>> 316 | p = (struct vfio_mp_param *)mp_rep->param; >>>> | ^ >>>> CC eal_common_class.o >>>> .../lib/librte_eal/linux/eal_vfio.c: In function >> ‘vfio_sync_default_container’: >>>> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases >>>> required alignment of target type [-Wcast-align] >>>> 627 | struct vfio_mp_param *p = (struct vfio_mp_param >> *)mp_req.param; >>>> | ^ >>>> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases >>>> required alignment of target type [-Wcast-align] >>>> 652 | p = (struct vfio_mp_param *)mp_rep->param; >>>> | ^ >>>> .../lib/librte_eal/linux/eal_vfio.c: In function >> ‘vfio_get_default_container_fd’: >>>> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases >>>> required alignment of target type [-Wcast-align] >>>> 1094 | struct vfio_mp_param *p = (struct vfio_mp_param >> *)mp_req.param; >>>> | ^ >>>> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases >>>> required alignment of target type [-Wcast-align] >>>> 1116 | p = (struct vfio_mp_param *)mp_rep->param; >>>> | ^ >>>> CC eal_common_bus.o >>>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’: >>>> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases >>>> required alignment of target type [-Wcast-align] >>>> 1202 | struct vfio_mp_param *p = (struct vfio_mp_param >> *)mp_req.param; >>>> | ^ >>>> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases >>>> required alignment of target type [-Wcast-align] >>>> 1248 | p = (struct vfio_mp_param *)mp_rep->param; >>>> | ^ >
> -----Original Message----- > From: Ferruh Yigit <ferruh.yigit@intel.com> > Sent: Wednesday, May 6, 2020 10:15 PM > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; > konstantin.ananyev@intel.com; jerinj@marvell.com; > viktorin@rehivetech.com > Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli > <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd > <nd@arm.com> > Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation > > On 5/6/2020 2:54 PM, Ruifeng Wang wrote: > > > >> -----Original Message----- > >> From: Ferruh Yigit <ferruh.yigit@intel.com> > >> Sent: Wednesday, May 6, 2020 6:14 PM > >> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; > >> konstantin.ananyev@intel.com; jerinj@marvell.com; > >> viktorin@rehivetech.com > >> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa > Nagarahalli > >> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd > >> <nd@arm.com> > >> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation > >> > >> On 5/6/2020 9:09 AM, Ruifeng Wang wrote: > >>> > >>>> -----Original Message----- > >>>> From: Ferruh Yigit <ferruh.yigit@intel.com> > >>>> Sent: Friday, May 1, 2020 11:07 PM > >>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com; > >>>> konstantin.ananyev@intel.com; jerinj@marvell.com; > >>>> viktorin@rehivetech.com > >>>> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa > >> Nagarahalli > >>>> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd > >>>> <nd@arm.com> > >>>> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation > >>>> > >>>> On 4/24/2020 7:50 AM, Ruifeng Wang wrote: > >>>>> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] > >>>>> and ixgbe PMD [2]. This patch set is to fix these. > >>>>> > >>>>> When building with make, please refer to guide: > >>>>> http://patches.dpdk.org/patch/62820/ > >>>>> > >>>>> When building with meson, requires series: > >>>>> http://patches.dpdk.org/cover/68534/ > >>>>> > >>>>> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html > >>>>> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html > >>>>> > >>>>> > >>>>> Ruifeng Wang (3): > >>>>> arch/arm: add vcopyq intrinsic for aarch32 > >>>>> net/ixgbe: add support for aarch32 > >>>>> net/ixgbe: fix include of vector header file > >>>>> > >>>> > >>>> Not directly related to this patch but since you are fixing aarch32 > >>>> compilation, I am getting following -Wcast-align warnings [1] while > >>>> cross > >> building with: > >>>> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0 > >>>> > >>> I got the same warnings with arm-linux-gnueabihf-gcc. The warnings > >> spread in many different files. > >>> It is because armv7a/aarch32 puts strict align requirement. > >>> We can first make it compile. And clean up such warnings in next step? > >> > >> Sure. > >> > >> I thought it would break the build, aren't we using -Werror for the target? > > Currently, "RTE_DEVEL_BUILD=n" is needed for armv7 build. > > http://patches.dpdk.org/patch/62820/ > > May be not. > > I did able to build without "RTE_DEVEL_BUILD=n", while checking how :), > found that "CONFIG_RTE_ARCH_STRICT_ALIGN=y" set in the armv7a config > (defconfig_arm-armv7a-linux-gcc), seems explicitly added for these '-Wcast- > align' warnings. > > Overall to the point of the discussion, since this way or that, build is not > broken with cast-align warnings, I am OK to fix them later gradually. > > A side note is, I wonder if these 'RTE_DEVEL_BUILD' or > 'CONFIG_RTE_ARCH_STRICT_ALIGN' reflected to the meson build, taking > into account that make build is going away on 20.11, will we able to keep > these functionalities in meson. > Yes. There is a patch to enable meson build for armv7, and 'CONFIG_RTE_ARCH_STRICT_ALIGN' is added. http://patches.dpdk.org/patch/69539/ Meson also provides option to set "werror". The functionalities can be kept. > > > >> > >>> > >>>> > >>>> [1] > >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function > ‘vfio_mp_primary’: > >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast > >>>> increases required alignment of target type [-Wcast-align] > >>>> 31 | struct vfio_mp_param *r = (struct vfio_mp_param > *)reply.param; > >>>> | ^ > >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast > >>>> increases required alignment of target type [-Wcast-align] > >>>> 33 | (const struct vfio_mp_param *)msg->param; > >>>> | ^ > >>>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’: > >>>> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases > >>>> required alignment of target type [-Wcast-align] > >>>> 269 | struct vfio_mp_param *p = (struct vfio_mp_param > >> *)mp_req.param; > >>>> | ^ > >>>> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases > >>>> required alignment of target type [-Wcast-align] > >>>> 316 | p = (struct vfio_mp_param *)mp_rep->param; > >>>> | ^ > >>>> CC eal_common_class.o > >>>> .../lib/librte_eal/linux/eal_vfio.c: In function > >> ‘vfio_sync_default_container’: > >>>> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases > >>>> required alignment of target type [-Wcast-align] > >>>> 627 | struct vfio_mp_param *p = (struct vfio_mp_param > >> *)mp_req.param; > >>>> | ^ > >>>> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases > >>>> required alignment of target type [-Wcast-align] > >>>> 652 | p = (struct vfio_mp_param *)mp_rep->param; > >>>> | ^ > >>>> .../lib/librte_eal/linux/eal_vfio.c: In function > >> ‘vfio_get_default_container_fd’: > >>>> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast > >>>> increases required alignment of target type [-Wcast-align] > >>>> 1094 | struct vfio_mp_param *p = (struct vfio_mp_param > >> *)mp_req.param; > >>>> | ^ > >>>> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases > >>>> required alignment of target type [-Wcast-align] > >>>> 1116 | p = (struct vfio_mp_param *)mp_rep->param; > >>>> | ^ > >>>> CC eal_common_bus.o > >>>> .../lib/librte_eal/linux/eal_vfio.c: In function > ‘rte_vfio_get_container_fd’: > >>>> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast > >>>> increases required alignment of target type [-Wcast-align] > >>>> 1202 | struct vfio_mp_param *p = (struct vfio_mp_param > >> *)mp_req.param; > >>>> | ^ > >>>> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases > >>>> required alignment of target type [-Wcast-align] > >>>> 1248 | p = (struct vfio_mp_param *)mp_rep->param; > >>>> | ^ > >