Obtain the cross tool chain
---------------------------
The latest cross compile tool chain can be downloaded from:
-https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/.
+https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads.
-Following is the step to get the version 7.2.1, latest one at the time of this writing.
+Following is the step to get the version 8.2, latest one at the time of this writing.
.. code-block:: console
- wget https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
+ wget https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-2019.01/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu.tar.xz
Unzip and add into the PATH
---------------------------
.. code-block:: console
- tar -xvf gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
- export PATH=$PATH:<cross_install_dir>/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin
+ tar -xvf gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu.tar.xz
+ export PATH=$PATH:<cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/bin
.. note::
- For the host requirements and other info, refer to the release note section: https://releases.linaro.org/components/toolchain/binaries/latest/
+ For the host requirements and other info, refer to the release note section: https://releases.linaro.org/components/toolchain/binaries/
+
+.. _arm_cross_build_getting_the_prerequisite_library:
Getting the prerequisite library
--------------------------------
.. code-block:: console
- cp <numa_install_dir>/include/numa*.h <cross_install_dir>/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/../aarch64-linux-gnu/libc/usr/include/
- cp <numa_install_dir>/lib/libnuma.a <cross_install_dir>/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/7.2.1/
+ cp <numa_install_dir>/include/numa*.h <cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/bin/../aarch64-linux-gnu/libc/usr/include/
+ cp <numa_install_dir>/lib/libnuma.a <cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/8.2/
+ cp <numa_install_dir>/lib/libnuma.so <cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/8.2/
.. _configure_and_cross_compile_dpdk_build:
Configure and cross compile DPDK Build
--------------------------------------
-To configure a build, choose one of the target configurations, like arm64-dpaa2-linuxapp-gcc and arm64-thunderx-linuxapp-gcc.
+To configure a build, choose one of the target configurations, like arm64-dpaa2-linux-gcc and arm64-thunderx-linux-gcc.
.. code-block:: console
- make config T=arm64-armv8a-linuxapp-gcc
+ make config T=arm64-armv8a-linux-gcc
To cross-compile, without compiling the kernel modules, use the following command:
For example if the target machine is arm64 we can use the following
command::
- meson arm64-build --cross-file config/arm/arm64_armv8_linuxapp_gcc
+ meson arm64-build --cross-file config/arm/arm64_armv8_linux_gcc
ninja -C arm64-build