[v8,5/5] doc: add aarch32 build guidance
Checks
Commit Message
From: Phil Yang <phil.yang@arm.com>
Add cross-compiling guidance for 32-bit aarch32 DPDK on aarch64 host.
Signed-off-by: Phil Yang <phil.yang@arm.com>
---
.../linux_gsg/cross_build_dpdk_for_arm64.rst | 30 ++++++++++++++-----
1 file changed, 23 insertions(+), 7 deletions(-)
Comments
Juraj Linkeš <juraj.linkes@pantheon.tech> writes:
> From: Phil Yang <phil.yang@arm.com>
>
> Add cross-compiling guidance for 32-bit aarch32 DPDK on aarch64 host.
>
> Signed-off-by: Phil Yang <phil.yang@arm.com>
> ---
> .../linux_gsg/cross_build_dpdk_for_arm64.rst | 30 ++++++++++++++-----
> 1 file changed, 23 insertions(+), 7 deletions(-)
>
> diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> index c5875a6d5..07085e3ea 100644
> --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> @@ -1,15 +1,16 @@
> .. SPDX-License-Identifier: BSD-3-Clause
> Copyright(c) 2018 ARM Corporation.
>
> -Cross compile DPDK for ARM64
> -============================
> -This chapter describes how to cross compile DPDK for ARM64 from x86 build hosts.
> +Cross compile DPDK for aarch64 and aarch32
> +==========================================
> +This chapter describes how to cross compile DPDK for aarch64 from x86 build hosts and compile
> +32-bit aarch32 DPDK from aarch64 build hosts.
>
> .. note::
>
> - Whilst it is recommended to natively build DPDK on ARM64 (just
> - like with x86), it is also possible to cross-build DPDK for ARM64. An
> - ARM64 cross compile GNU toolchain is used for this.
> + Whilst it is recommended to natively build DPDK on aarch64 (just
> + like with x86), it is also possible to cross-build DPDK for aarch64.
> + An aarch64 cross compile GNU toolchain is used for this.
>
> Obtain the cross tool chain
> ---------------------------
> @@ -88,18 +89,33 @@ To install it in Ubuntu::
>
> sudo apt-get install pkg-config-aarch64-linux-gnu
>
> +.. note::
> +
> + Some aarch64 platforms support EL0 aarch32 mode, which means the 32-bit aarch32 applications
> + can run on aarch64. The armhf architecture toolchain ``gcc-arm-linux-gnueabihf`` is required
> + for aarch32 on aarch64. To install it in Ubuntu::
> +
> + sudo dpkg --add-architecture armhf
> + sudo apt-get update
> + sudo apt-get install -y gcc gcc-arm-linux-gnueabihf libc6:armhf make binutils
> +
Is 'make' still needed? I don't run Ubuntu, so I'm not sure.
> To cross-compile DPDK on a desired target machine we can use the following
> command::
>
> meson cross-build --cross-file <target_machine_configuration>
> ninja -C cross-build
>
> -For example if the target machine is arm64 we can use the following
> +For example if the target machine is aarch64 we can use the following
> command::
>
> meson arm64-build --cross-file config/arm/arm64_armv8_linux_gcc
> ninja -C arm64-build
>
> +If the target machine is aarch32 we can use the following command::
> +
> + meson arm32-build --cross-file config/arm/arm32_armv8a_linux_gcc
> + ninja -C arm32-build
> +
> Configure and Cross Compile DPDK using Make
> -------------------------------------------
> To configure a build, choose one of the target configurations, like arm64-dpaa-linux-gcc and arm64-thunderx-linux-gcc.
Aaron Conole <aconole@redhat.com> writes:
> Subject: Re: [PATCH v8 5/5] doc: add aarch32 build guidance
>
> Juraj Linkeš <juraj.linkes@pantheon.tech> writes:
>
> > From: Phil Yang <phil.yang@arm.com>
> >
> > Add cross-compiling guidance for 32-bit aarch32 DPDK on aarch64 host.
> >
> > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > ---
> > .../linux_gsg/cross_build_dpdk_for_arm64.rst | 30 ++++++++++++++-----
> > 1 file changed, 23 insertions(+), 7 deletions(-)
> >
> > diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > index c5875a6d5..07085e3ea 100644
> > --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > @@ -1,15 +1,16 @@
> > .. SPDX-License-Identifier: BSD-3-Clause
> > Copyright(c) 2018 ARM Corporation.
> >
> > -Cross compile DPDK for ARM64
> > -============================
> > -This chapter describes how to cross compile DPDK for ARM64 from x86
> build hosts.
> > +Cross compile DPDK for aarch64 and aarch32
> > +==========================================
> > +This chapter describes how to cross compile DPDK for aarch64 from x86
> build hosts and compile
> > +32-bit aarch32 DPDK from aarch64 build hosts.
> >
> > .. note::
> >
> > - Whilst it is recommended to natively build DPDK on ARM64 (just
> > - like with x86), it is also possible to cross-build DPDK for ARM64. An
> > - ARM64 cross compile GNU toolchain is used for this.
> > + Whilst it is recommended to natively build DPDK on aarch64 (just
> > + like with x86), it is also possible to cross-build DPDK for aarch64.
> > + An aarch64 cross compile GNU toolchain is used for this.
> >
> > Obtain the cross tool chain
> > ---------------------------
> > @@ -88,18 +89,33 @@ To install it in Ubuntu::
> >
> > sudo apt-get install pkg-config-aarch64-linux-gnu
> >
> > +.. note::
> > +
> > + Some aarch64 platforms support EL0 aarch32 mode, which means the
> 32-bit aarch32 applications
> > + can run on aarch64. The armhf architecture toolchain ``gcc-arm-linux-
> gnueabihf`` is required
> > + for aarch32 on aarch64. To install it in Ubuntu::
> > +
> > + sudo dpkg --add-architecture armhf
> > + sudo apt-get update
> > + sudo apt-get install -y gcc gcc-arm-linux-gnueabihf libc6:armhf make
> binutils
> > +
>
> Is 'make' still needed? I don't run Ubuntu, so I'm not sure.
No, both 'GCC' and 'make' are not mandatory in this case.
Will update it in the next version.
>
> > To cross-compile DPDK on a desired target machine we can use the
> following
> > command::
> >
> > meson cross-build --cross-file <target_machine_configuration>
> > ninja -C cross-build
> >
> > -For example if the target machine is arm64 we can use the following
^^^ Will use 'users' instead
> > +For example if the target machine is aarch64 we can use the following
^^^ Will use 'users' instead
> > command::
> >
> > meson arm64-build --cross-file config/arm/arm64_armv8_linux_gcc
> > ninja -C arm64-build
> >
> > +If the target machine is aarch32 we can use the following command::
^^^ Will use 'users' instead
> > +
> > + meson arm32-build --cross-file config/arm/arm32_armv8a_linux_gcc
> > + ninja -C arm32-build
> > +
> > Configure and Cross Compile DPDK using Make
> > -------------------------------------------
> > To configure a build, choose one of the target configurations, like arm64-
> dpaa-linux-gcc and arm64-thunderx-linux-gcc.
@@ -1,15 +1,16 @@
.. SPDX-License-Identifier: BSD-3-Clause
Copyright(c) 2018 ARM Corporation.
-Cross compile DPDK for ARM64
-============================
-This chapter describes how to cross compile DPDK for ARM64 from x86 build hosts.
+Cross compile DPDK for aarch64 and aarch32
+==========================================
+This chapter describes how to cross compile DPDK for aarch64 from x86 build hosts and compile
+32-bit aarch32 DPDK from aarch64 build hosts.
.. note::
- Whilst it is recommended to natively build DPDK on ARM64 (just
- like with x86), it is also possible to cross-build DPDK for ARM64. An
- ARM64 cross compile GNU toolchain is used for this.
+ Whilst it is recommended to natively build DPDK on aarch64 (just
+ like with x86), it is also possible to cross-build DPDK for aarch64.
+ An aarch64 cross compile GNU toolchain is used for this.
Obtain the cross tool chain
---------------------------
@@ -88,18 +89,33 @@ To install it in Ubuntu::
sudo apt-get install pkg-config-aarch64-linux-gnu
+.. note::
+
+ Some aarch64 platforms support EL0 aarch32 mode, which means the 32-bit aarch32 applications
+ can run on aarch64. The armhf architecture toolchain ``gcc-arm-linux-gnueabihf`` is required
+ for aarch32 on aarch64. To install it in Ubuntu::
+
+ sudo dpkg --add-architecture armhf
+ sudo apt-get update
+ sudo apt-get install -y gcc gcc-arm-linux-gnueabihf libc6:armhf make binutils
+
To cross-compile DPDK on a desired target machine we can use the following
command::
meson cross-build --cross-file <target_machine_configuration>
ninja -C cross-build
-For example if the target machine is arm64 we can use the following
+For example if the target machine is aarch64 we can use the following
command::
meson arm64-build --cross-file config/arm/arm64_armv8_linux_gcc
ninja -C arm64-build
+If the target machine is aarch32 we can use the following command::
+
+ meson arm32-build --cross-file config/arm/arm32_armv8a_linux_gcc
+ ninja -C arm32-build
+
Configure and Cross Compile DPDK using Make
-------------------------------------------
To configure a build, choose one of the target configurations, like arm64-dpaa-linux-gcc and arm64-thunderx-linux-gcc.