From patchwork Tue Dec 7 11:05:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Juraj_Linke=C5=A1?= X-Patchwork-Id: 104987 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 558BBA0093; Tue, 7 Dec 2021 12:05:19 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C269F41C3D; Tue, 7 Dec 2021 12:05:14 +0100 (CET) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id 256484114F for ; Tue, 7 Dec 2021 12:05:13 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id BFD471342BB; Tue, 7 Dec 2021 12:05:11 +0100 (CET) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G1tr_ZwJrklL; Tue, 7 Dec 2021 12:05:10 +0100 (CET) Received: from service-node1.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id 376E91342B6; Tue, 7 Dec 2021 12:05:10 +0100 (CET) From: =?utf-8?q?Juraj_Linke=C5=A1?= To: thomas@monjalon.net, david.marchand@redhat.com, Honnappa.Nagarahalli@arm.com, Ruifeng.Wang@arm.com, ferruh.yigit@intel.com, jerinjacobk@gmail.com Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= Subject: [PATCH v2 1/4] doc: arm64 cross build CFLAGS/LDFLAGS alternatives Date: Tue, 7 Dec 2021 12:05:06 +0100 Message-Id: <1638875109-5544-2-git-send-email-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1638875109-5544-1-git-send-email-juraj.linkes@pantheon.tech> References: <1637229656-21612-1-git-send-email-juraj.linkes@pantheon.tech> <1638875109-5544-1-git-send-email-juraj.linkes@pantheon.tech> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Remove CFLAGS and LDFLAGS since Meson doesn't support them well enough. Add Meson alternatives: -Dc_args and -Dc_link_args on the command line and in cross files. Signed-off-by: Juraj Linkeš Acked-by: Ruifeng Wang --- .../linux_gsg/cross_build_dpdk_for_arm64.rst | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 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 d59af58235..51075bd4a9 100644 --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst @@ -98,10 +98,6 @@ For aarch32:: Augment the GNU toolchain with NUMA support ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. note:: - - This way is optional, an alternative is to use extra CFLAGS and LDFLAGS. - Copy the NUMA header files and lib to the cross compiler's directories: .. code-block:: console @@ -110,6 +106,27 @@ Copy the NUMA header files and lib to the cross compiler's directories: cp /lib/libnuma.a /gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/lib/gcc/aarch64-none-linux-gnu/9.2.1/ cp /lib/libnuma.so /gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/lib/gcc/aarch64-none-linux-gnu/9.2.1/ +.. note:: + + Using LDFLAGS and CFLAGS is not a viable alternative to copying the files. + The Meson docs say it is not recommended, as there are many caveats to their + use with Meson, especially when rebuilding the project. A viable alternative + would be to use the ``c_args`` and ``c_link_args`` options with Meson 0.51.0 + and higher: + +.. code-block:: console + + -Dc_args=-I/include -Dc_link_args=-L/lib + + For Meson versions lower than 0.51.0, the ``c_args`` and ``c_link_args`` + options don't apply to cross compilation. However, the compiler/linker flags + may be added to cross files under [properties]: + +.. code-block:: console + + c_args = ['-I/include'] + c_link_args = ['-L/lib'] + Cross Compiling DPDK with GNU toolchain using Meson ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From patchwork Tue Dec 7 11:05:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Juraj_Linke=C5=A1?= X-Patchwork-Id: 104988 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 992F6A0093; Tue, 7 Dec 2021 12:05:24 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A9A48426DD; Tue, 7 Dec 2021 12:05:15 +0100 (CET) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id 1910D411E6 for ; Tue, 7 Dec 2021 12:05:14 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id 49E0213428E; Tue, 7 Dec 2021 12:05:13 +0100 (CET) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CLmW8dep2hKY; Tue, 7 Dec 2021 12:05:12 +0100 (CET) Received: from service-node1.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id A27C11342B7; Tue, 7 Dec 2021 12:05:10 +0100 (CET) From: =?utf-8?q?Juraj_Linke=C5=A1?= To: thomas@monjalon.net, david.marchand@redhat.com, Honnappa.Nagarahalli@arm.com, Ruifeng.Wang@arm.com, ferruh.yigit@intel.com, jerinjacobk@gmail.com Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= Subject: [PATCH v2 2/4] doc: arm64 cross build binary names update Date: Tue, 7 Dec 2021 12:05:07 +0100 Message-Id: <1638875109-5544-3-git-send-email-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1638875109-5544-1-git-send-email-juraj.linkes@pantheon.tech> References: <1637229656-21612-1-git-send-email-juraj.linkes@pantheon.tech> <1638875109-5544-1-git-send-email-juraj.linkes@pantheon.tech> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The newer version have an extra -none- in the name. Signed-off-by: Juraj Linkeš Acked-by: Ruifeng Wang --- doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 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 51075bd4a9..af159bbf93 100644 --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst @@ -130,6 +130,12 @@ Copy the NUMA header files and lib to the cross compiler's directories: Cross Compiling DPDK with GNU toolchain using Meson ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. note:: + + The names of gcc binaries in cross files differ from the downloaded + ones, which have an extra "-none-" in their name. Please modify the cross + file binaries accordingly when using the downloaded cross compilers. + To cross-compile DPDK on a desired target machine we can use the following command:: @@ -137,12 +143,13 @@ command:: ninja -C cross-build For example if the target machine is aarch64 we can use the following -command:: +command, provided the cross file has been modified accordingly:: 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:: +If the target machine is aarch32 we can use the following command, provided +the cross file has been modified accordingly:: meson aarch32-build --cross-file config/arm/arm32_armv8_linux_gcc ninja -C aarch32-build From patchwork Tue Dec 7 11:05:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Juraj_Linke=C5=A1?= X-Patchwork-Id: 104989 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 133B4A0093; Tue, 7 Dec 2021 12:05:30 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AF41E426F6; Tue, 7 Dec 2021 12:05:16 +0100 (CET) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id D036A426D5 for ; Tue, 7 Dec 2021 12:05:14 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id 2A5761342B6; Tue, 7 Dec 2021 12:05:14 +0100 (CET) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dIGfOoqM8FUS; Tue, 7 Dec 2021 12:05:12 +0100 (CET) Received: from service-node1.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id 18A321342B9; Tue, 7 Dec 2021 12:05:11 +0100 (CET) From: =?utf-8?q?Juraj_Linke=C5=A1?= To: thomas@monjalon.net, david.marchand@redhat.com, Honnappa.Nagarahalli@arm.com, Ruifeng.Wang@arm.com, ferruh.yigit@intel.com, jerinjacobk@gmail.com Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= Subject: [PATCH v2 3/4] doc: arm64 cross build numactl compilers Date: Tue, 7 Dec 2021 12:05:08 +0100 Message-Id: <1638875109-5544-4-git-send-email-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1638875109-5544-1-git-send-email-juraj.linkes@pantheon.tech> References: <1637229656-21612-1-git-send-email-juraj.linkes@pantheon.tech> <1638875109-5544-1-git-send-email-juraj.linkes@pantheon.tech> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Numactl cross compilation doesn't work with clang, remove it and fix the gcc cross compiler executable name. Signed-off-by: Juraj Linkeš Acked-by: Ruifeng Wang --- doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 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 af159bbf93..6153bc5b77 100644 --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst @@ -35,13 +35,14 @@ NUMA is required by most modern machines, not needed for non-NUMA architectures. git checkout v2.0.13 -b v2.0.13 ./autogen.sh autoconf -i - ./configure --host=aarch64-linux-gnu CC= --prefix= + ./configure --host=aarch64-linux-gnu CC=aarch64-none-linux-gnu-gcc --prefix= make install .. note:: - The compiler above can be either aarch64-linux-gnu-gcc or clang. - See below for information on how to get specific compilers. + The compiler is aarch64-none-linux-gnu-gcc if you download gcc using the + below guide. If you're using a different compiler, make sure you're using + the proper executable name. The numa header files and lib file is generated in the include and lib folder respectively under ````. From patchwork Tue Dec 7 11:05:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Juraj_Linke=C5=A1?= X-Patchwork-Id: 104990 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 016ABA0093; Tue, 7 Dec 2021 12:05:38 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E77B942738; Tue, 7 Dec 2021 12:05:17 +0100 (CET) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id 5D3DE426D6 for ; Tue, 7 Dec 2021 12:05:15 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id A79FE1342B7; Tue, 7 Dec 2021 12:05:14 +0100 (CET) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YOY9_Mhcw0Sd; Tue, 7 Dec 2021 12:05:13 +0100 (CET) Received: from service-node1.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id E3E761342BC; Tue, 7 Dec 2021 12:05:11 +0100 (CET) From: =?utf-8?q?Juraj_Linke=C5=A1?= To: thomas@monjalon.net, david.marchand@redhat.com, Honnappa.Nagarahalli@arm.com, Ruifeng.Wang@arm.com, ferruh.yigit@intel.com, jerinjacobk@gmail.com Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= Subject: [PATCH v2 4/4] docs: add an example arm64 cross file Date: Tue, 7 Dec 2021 12:05:09 +0100 Message-Id: <1638875109-5544-5-git-send-email-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1638875109-5544-1-git-send-email-juraj.linkes@pantheon.tech> References: <1637229656-21612-1-git-send-email-juraj.linkes@pantheon.tech> <1638875109-5544-1-git-send-email-juraj.linkes@pantheon.tech> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The docs mention modifications and additions to the cross file, but there is no demonstration of how those should look like. Signed-off-by: Juraj Linkeš Acked-by: Ruifeng Wang --- .../linux_gsg/cross_build_dpdk_for_arm64.rst | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) 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 6153bc5b77..78bf19882e 100644 --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst @@ -137,6 +137,32 @@ Cross Compiling DPDK with GNU toolchain using Meson ones, which have an extra "-none-" in their name. Please modify the cross file binaries accordingly when using the downloaded cross compilers. + An example cross file with modified names and added numa paths would look + like this: + +.. code-block:: console + + [binaries] + c = 'aarch64-none-linux-gnu-gcc' + cpp = 'aarch64-none-linux-gnu-cpp' + ar = 'aarch64-none-linux-gnu-gcc-ar' + strip = 'aarch64-none-linux-gnu-strip' + pkgconfig = 'aarch64-linux-gnu-pkg-config' # the downloaded binaries + # don't contain a pkgconfig binary, so it's not modified + pcap-config = '' + + [host_machine] + system = 'linux' + cpu_family = 'aarch64' + cpu = 'armv8-a' + endian = 'little' + + [properties] + # Generate binaries that are portable across all Armv8 machines + platform = 'generic' + c_args = ['-I/include'] # replace + c_link_args = ['-L/lib'] # with your path + To cross-compile DPDK on a desired target machine we can use the following command::