From patchwork Fri Oct 16 15:09:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 81143 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: 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 3BE15A04DB; Fri, 16 Oct 2020 17:10:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 238881EE31; Fri, 16 Oct 2020 17:10:04 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 8E4E21EE30 for ; Fri, 16 Oct 2020 17:10:01 +0200 (CEST) IronPort-SDR: 2HKWpaEbi1/yAWeFZk+Za0/H3VIZAVlZ2uCf77nORZTB30u5y9Af5SsrpdCxc0go0s1O6ugFlh vNU8zDZubU2A== X-IronPort-AV: E=McAfee;i="6000,8403,9776"; a="184190622" X-IronPort-AV: E=Sophos;i="5.77,383,1596524400"; d="scan'208";a="184190622" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2020 08:10:00 -0700 IronPort-SDR: PjvtrombXA0UThK/kI1WHF65dOMoyHIiWiWNzLcWd82W4rqF9irfYaCwoBvOtybfsEj68K0CIt L//frMqTykrA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,383,1596524400"; d="scan'208";a="314914278" Received: from silpixa00399126.ir.intel.com ([10.237.222.4]) by orsmga003.jf.intel.com with ESMTP; 16 Oct 2020 08:09:58 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, bluca@debian.org, thomas@monjalon.net, Bruce Richardson Date: Fri, 16 Oct 2020 16:09:55 +0100 Message-Id: <20201016150955.2765-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH] doc: add instructions for building 32-bit DPDK X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" For users with 32-bit applications who wish to use DPDK we need to provide instructions on creating a 32-bit build of DPDK with meson. Therefore add a section with this information to the GSG. Signed-off-by: Bruce Richardson Acked-by: Luca Boccassi --- doc/guides/linux_gsg/build_dpdk.rst | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst index 1d867dedf..e76642efc 100644 --- a/doc/guides/linux_gsg/build_dpdk.rst +++ b/doc/guides/linux_gsg/build_dpdk.rst @@ -113,6 +113,31 @@ dependencies are met on the current system are built. When `-Dexamples=all` is set as a meson option, meson will check each example application to see if it can be built, and add all which can be built to the list of tasks in the ninja build configuration file. + +Building 32-bit DPDK on 64-bit Systems +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To build a 32-bit copy of DPDK on a 64-bit OS, +the ``-m32`` flag should be passed to the compiler and linker to force the generation of 32-bit objects and binaries. +This can be done either by setting ``CFLAGS`` and ``LDFLAGS`` in the environment, +or by passing the value to meson using ``-Dc_args=-m32`` and ``-Dc_link_args=-m32``. +For correctly identifying and using any dependency packages, +the ``pkg-config`` tool must also be configured to look in the appropriate directory for .pc files for 32-bit libraries. +This is done by setting ``PKG_CONFIG_LIBDIR`` to the appropriate path. + +The following meson command can be used on RHEL/Fedora systems to configure a 32-bit build, +assuming the relevant 32-bit development packages, such as a 32-bit libc, are installed:: + + PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig meson -Dc_args='-m32' -Dc_link_args='-m32' build + +For Debian/Ubuntu systems, the equivalent command is:: + + PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig meson -Dc_args='-m32' \ + -Dc_link_args='-m32' build + +Once the build directory has been configured, DPDK can be compiled using ``ninja`` as described above. + + .. _building_app_using_installed_dpdk: Building Applications Using Installed DPDK