From 80e9ccc2acfdf8acf25af155a117f68c2399aee7 Mon Sep 17 00:00:00 2001 From: Phil Yang Date: Wed, 7 Jul 2021 15:25:43 +0200 Subject: [PATCH] doc: add aarch32 build guidance Add cross-compiling guidance for 32-bit aarch32 DPDK on aarch64 host. Signed-off-by: Phil Yang Acked-by: Ruifeng Wang Acked-by: Aaron Conole --- .../linux_gsg/cross_build_dpdk_for_arm64.rst | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 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 2fa9702c1b..d59af58235 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,17 @@ .. SPDX-License-Identifier: BSD-3-Clause - Copyright(c) 2020 ARM Corporation. + Copyright(c) 2021 ARM Corporation. -Cross compiling DPDK for ARM64 -============================== -This chapter describes how to cross compile DPDK for ARM64 from x86 build hosts. +Cross compiling DPDK for aarch64 and aarch32 +============================================ + +This chapter describes how to cross compile DPDK for aarch64 on x86 build +machine and compile 32-bit aarch32 DPDK on aarch64 build machine. .. note:: - Whilst it is recommended to natively build DPDK on ARM64 (just - like with x86), it is also possible to cross compile DPDK for ARM64. - An ARM64 cross compiler GNU toolchain or an LLVM/clang toolchain + Whilst it is recommended to natively build DPDK on aarch64 (just + like with x86), it is also possible to cross compile DPDK for aarch64. + An aarch64 cross compiler GNU toolchain or an LLVM/clang toolchain may be used for cross-compilation. @@ -53,14 +55,18 @@ To install it in Ubuntu:: sudo apt install pkg-config-aarch64-linux-gnu +For aarch32, install ``pkg-config-arm-linux-gnueabihf``:: + + sudo apt install pkg-config-arm-linux-gnueabihf + GNU toolchain ------------- .. _obtain_GNU_toolchain: -Obtain the cross toolchain -~~~~~~~~~~~~~~~~~~~~~~~~~~ +Get the cross toolchain +~~~~~~~~~~~~~~~~~~~~~~~ The latest GNU cross compiler toolchain can be downloaded from: https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads. @@ -70,21 +76,22 @@ from the page and use it to generate better code. As of this writing 9.2-2019.12 is the newest, the following description is an example of this version. -.. code-block:: console +For aarch64:: wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz - -Unzip and add into the PATH -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: console - tar -xvf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz export PATH=$PATH:/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin +For aarch32:: + + wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz + tar -xvf gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz + export PATH=$PATH:/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin + .. note:: - For the host requirements and other info, refer to the release note section: https://releases.linaro.org/components/toolchain/binaries/ + For the host requirements and other info, refer to the release note section: + https://releases.linaro.org/components/toolchain/binaries/ .. _augment_the_gnu_toolchain_with_numa_support: @@ -118,6 +125,10 @@ command:: meson aarch64-build-gcc --cross-file config/arm/arm64_armv8_linux_gcc ninja -C aarch64-build-gcc +If the target machine is aarch32 we can use the following command:: + + meson aarch32-build --cross-file config/arm/arm32_armv8_linux_gcc + ninja -C aarch32-build LLVM/Clang toolchain -------------------- -- 2.20.1