From patchwork Fri Apr 26 16:50:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 53114 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5CC8A1B7C4; Fri, 26 Apr 2019 18:51:16 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id DA9821B767 for ; Fri, 26 Apr 2019 18:51:09 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Apr 2019 09:51:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,398,1549958400"; d="scan'208";a="165364536" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.222.236]) by fmsmga004.fm.intel.com with ESMTP; 26 Apr 2019 09:51:08 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: thomas@monjalon.net, bluca@debian.org, Bruce Richardson Date: Fri, 26 Apr 2019 17:50:42 +0100 Message-Id: <20190426165043.17268-6-bruce.richardson@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426165043.17268-1-bruce.richardson@intel.com> References: <20190423220644.54589-1-bruce.richardson@intel.com> <20190426165043.17268-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 5/6] build: add libbsd to pkg-config file if enabled 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" If libbsd is enabled in DPDK, the strlcpy and strlcat functions in rte_string_fns.h redirect to the varients in libbsd, only using the fallbacks if it is not enabled. Therefore, if libbsd is enabled, it needs to be called out as a DPDK dependency in the pkgconfig file. To ensure that we don't have undefined variables on non-Linux platforms, we can remove the linux condition around the libbsd check - no harm comes in looking for it on other OS, since it's an optional dependency. To verify this builds correctly, the cmdline sample app is added to the list of examples compiled by test-meson-builds. Without this change compilation fails if libbsd is present on the system Signed-off-by: Bruce Richardson Acked-by: Luca Boccassi --- config/meson.build | 10 ++++------ devtools/test-meson-builds.sh | 2 +- meson.build | 2 ++ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/config/meson.build b/config/meson.build index 3678348de..0d25646f5 100644 --- a/config/meson.build +++ b/config/meson.build @@ -132,12 +132,10 @@ if numa_dep.found() and cc.has_header('numaif.h') dpdk_extra_ldflags += '-lnuma' endif -# check for strlcpy -if is_linux - libbsd = dependency('libbsd', required: false) - if libbsd.found() - dpdk_conf.set('RTE_USE_LIBBSD', 1) - endif +# check for libbsd +libbsd = dependency('libbsd', required: false) +if libbsd.found() + dpdk_conf.set('RTE_USE_LIBBSD', 1) endif # add -include rte_config to cflags diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 73f993b98..a9fdce81f 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -110,7 +110,7 @@ PKG_CONFIG_PATH=$(dirname $pc_file) ; export PKG_CONFIG_PATH # rather than hacking our environment, just edit the .pc file prefix value sed -i -e "s|prefix=|prefix=$DESTDIR|" $pc_file -for example in helloworld l2fwd l3fwd skeleton timer; do +for example in cmdline helloworld l2fwd l3fwd skeleton timer; do echo "## Building $example" $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example done diff --git a/meson.build b/meson.build index d1e8e5239..46f9c5683 100644 --- a/meson.build +++ b/meson.build @@ -70,6 +70,8 @@ pkg.generate(name: meson.project_name(), libraries: dpdk_libraries, libraries_private: dpdk_drivers + dpdk_static_libraries + ['-Wl,-Bdynamic'] + dpdk_extra_ldflags, + requires: libbsd, # apps using rte_string_fns.h may need this if enabled + # if libbsd is not enabled, then this is blank description: '''The Data Plane Development Kit (DPDK). Note that CFLAGS might contain an -march flag higher than typical baseline. This is required for a number of static inline functions in the public headers.''',