From: luca.boccassi@gmail.com
To: dev@dpdk.org
Cc: bruce.richardson@intel.com, thomas@monjalon.net
Subject: [dpdk-dev] [PATCH v8 6/6] build: use dependency for pcap and fallback to find_library
Date: Tue, 26 Feb 2019 17:46:37 +0000 [thread overview]
Message-ID: <20190226174637.27452-6-luca.boccassi@gmail.com> (raw)
In-Reply-To: <20190226174637.27452-1-luca.boccassi@gmail.com>
From: Luca Boccassi <luca.boccassi@microsoft.com>
pcap has historically shipped a custom pcap-config binary tool which
does the job of pkg-config. It was never compatible with cross
compilation.
Meson uses it when using dependency(), which then means cross
compilation fails.
Set pcap-config to empty in the meson cross compilation files so
that Meson will not use it, and add a fallback in case
dependency() fails.
libpcap 1.9.0 finally ships a pkg-config file so everything will
work out of the box in the future.
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
v8: added back pcap change separately. Tested with bootlin
cross-compilation toolchain, everything seems to work.
config/arm/arm64_armv8_linuxapp_gcc | 1 +
config/arm/arm64_dpaa2_linuxapp_gcc | 1 +
config/arm/arm64_dpaa_linuxapp_gcc | 1 +
config/arm/arm64_thunderx_linuxapp_gcc | 1 +
drivers/net/pcap/meson.build | 16 ++++++++++++----
5 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/config/arm/arm64_armv8_linuxapp_gcc b/config/arm/arm64_armv8_linuxapp_gcc
index 987c02fbb..513760917 100644
--- a/config/arm/arm64_armv8_linuxapp_gcc
+++ b/config/arm/arm64_armv8_linuxapp_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
cpp = 'aarch64-linux-gnu-cpp'
ar = 'aarch64-linux-gnu-gcc-ar'
strip = 'aarch64-linux-gnu-strip'
+pcap-config = ''
[host_machine]
system = 'linux'
diff --git a/config/arm/arm64_dpaa2_linuxapp_gcc b/config/arm/arm64_dpaa2_linuxapp_gcc
index 7ec74ec4b..0df8c8f7d 100644
--- a/config/arm/arm64_dpaa2_linuxapp_gcc
+++ b/config/arm/arm64_dpaa2_linuxapp_gcc
@@ -4,6 +4,7 @@ cpp = 'aarch64-linux-gnu-cpp'
ar = 'aarch64-linux-gnu-ar'
as = 'aarch64-linux-gnu-as'
strip = 'aarch64-linux-gnu-strip'
+pcap-config = ''
[host_machine]
system = 'linux'
diff --git a/config/arm/arm64_dpaa_linuxapp_gcc b/config/arm/arm64_dpaa_linuxapp_gcc
index 73a8f0b81..f4b85a84b 100644
--- a/config/arm/arm64_dpaa_linuxapp_gcc
+++ b/config/arm/arm64_dpaa_linuxapp_gcc
@@ -4,6 +4,7 @@ cpp = 'aarch64-linux-gnu-cpp'
ar = 'aarch64-linux-gnu-ar'
as = 'aarch64-linux-gnu-as'
strip = 'aarch64-linux-gnu-strip'
+pcap-config = ''
[host_machine]
system = 'linux'
diff --git a/config/arm/arm64_thunderx_linuxapp_gcc b/config/arm/arm64_thunderx_linuxapp_gcc
index 967d9d46d..14b801998 100644
--- a/config/arm/arm64_thunderx_linuxapp_gcc
+++ b/config/arm/arm64_thunderx_linuxapp_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
cpp = 'aarch64-linux-gnu-cpp'
ar = 'aarch64-linux-gnu-gcc-ar'
strip = 'aarch64-linux-gnu-strip'
+pcap-config = ''
[host_machine]
system = 'linux'
diff --git a/drivers/net/pcap/meson.build b/drivers/net/pcap/meson.build
index 0c4e0201a..2c2fd11e4 100644
--- a/drivers/net/pcap/meson.build
+++ b/drivers/net/pcap/meson.build
@@ -1,12 +1,20 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
-pcap_dep = cc.find_library('pcap', required: false)
-if pcap_dep.found() and cc.has_header('pcap.h', dependencies: pcap_dep)
+pcap_dep = dependency('pcap', required: false)
+if pcap_dep.found()
build = true
else
- build = false
+ # pcap got a pkg-config file only in 1.9.0 and before that meson uses
+ # an internal pcap-config finder, which is not compatible with
+ # cross-compilation, so try to fallback to find_library
+ pcap_dep = cc.find_library('pcap', required: false)
+ if pcap_dep.found() and cc.has_header('pcap.h', dependencies: pcap_dep)
+ build = true
+ pkgconfig_extra_libs += '-lpcap'
+ else
+ build = false
+ endif
endif
sources = files('rte_eth_pcap.c')
ext_deps += pcap_dep
-pkgconfig_extra_libs += '-lpcap'
--
2.20.1
next prev parent reply other threads:[~2019-02-26 17:47 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-03 17:57 [dpdk-dev] [PATCH 1/2] build: use static deps of libs for pkg-config libs.private Luca Boccassi
2019-01-03 17:57 ` [dpdk-dev] [PATCH 2/2] build: use dependency() instead of find_library() Luca Boccassi
2019-01-07 14:28 ` Bruce Richardson
2019-01-07 16:39 ` [dpdk-dev] [dpdk-stable] " Luca Boccassi
2019-01-07 16:55 ` Bruce Richardson
2019-01-07 17:03 ` [dpdk-dev] [dpdk-techboard] " Thomas Monjalon
2019-01-07 17:45 ` [dpdk-dev] [dpdk-stable] [dpdk-techboard] " Thomas Monjalon
2019-01-07 21:09 ` Luca Boccassi
2019-01-07 22:03 ` Luca Boccassi
2019-01-11 11:10 ` [dpdk-dev] [dpdk-stable] " Luca Boccassi
2019-01-11 11:52 ` Bruce Richardson
2019-01-11 12:39 ` Luca Boccassi
2019-01-11 14:24 ` Bruce Richardson
2019-01-11 14:56 ` Luca Boccassi
2019-01-11 15:49 ` Bruce Richardson
2019-01-11 16:27 ` Luca Boccassi
2019-01-11 12:38 ` [dpdk-dev] [PATCH v2 1/3] build: use static deps of libs for pkg-config libs.private Luca Boccassi
2019-01-11 12:38 ` [dpdk-dev] [PATCH v2 2/3] build: use dependency() instead of find_library() Luca Boccassi
2019-01-11 12:38 ` [dpdk-dev] [PATCH v2 3/3] build: bump minimum Meson to 0.47.1 and use dependency() for libbsd Luca Boccassi
2019-01-11 14:27 ` Bruce Richardson
2019-01-11 14:30 ` Bruce Richardson
2019-01-11 15:04 ` Luca Boccassi
2019-01-11 15:50 ` Bruce Richardson
2019-01-11 16:14 ` Luca Boccassi
2019-01-11 16:26 ` [dpdk-dev] [PATCH v3 1/4] build: bump minimum Meson version to 0.47.1 Luca Boccassi
2019-01-11 16:26 ` [dpdk-dev] [PATCH v3 2/4] build: use dependency() instead of find_library() Luca Boccassi
2019-01-11 17:21 ` Bruce Richardson
2019-01-11 18:16 ` Luca Boccassi
2019-01-11 21:49 ` Bruce Richardson
2019-01-11 16:26 ` [dpdk-dev] [PATCH v3 3/4] build: reorder libraries and build eal before cmdline Luca Boccassi
2019-01-11 17:22 ` Bruce Richardson
2019-01-11 16:26 ` [dpdk-dev] [PATCH v3 4/4] build: use dependency() for libbsd instead of manual append to ldflags Luca Boccassi
2019-01-11 17:24 ` Bruce Richardson
2019-01-11 17:17 ` [dpdk-dev] [PATCH v3 1/4] build: bump minimum Meson version to 0.47.1 Bruce Richardson
2019-01-11 18:22 ` [dpdk-dev] [PATCH v4 " Luca Boccassi
2019-01-11 18:22 ` [dpdk-dev] [PATCH v4 2/4] build: use dependency() instead of find_library() Luca Boccassi
2019-01-11 18:22 ` [dpdk-dev] [PATCH v4 3/4] build: reorder libraries and build eal before cmdline Luca Boccassi
2019-01-11 18:22 ` [dpdk-dev] [PATCH v4 4/4] build: use dependency() for libbsd instead of manual append to ldflags Luca Boccassi
2019-01-22 13:10 ` [dpdk-dev] [PATCH v5 1/4] build: bump minimum Meson version to 0.47.1 Luca Boccassi
2019-01-22 13:10 ` [dpdk-dev] [PATCH v5 2/4] build: use dependency() instead of find_library() Luca Boccassi
2019-01-22 13:46 ` Bruce Richardson
2019-01-22 14:09 ` Luca Boccassi
2019-01-22 14:24 ` Bruce Richardson
2019-01-22 14:25 ` Bruce Richardson
2019-01-22 13:10 ` [dpdk-dev] [PATCH v5 3/4] build: reorder libraries and build eal before cmdline Luca Boccassi
2019-01-22 13:10 ` [dpdk-dev] [PATCH v5 4/4] build: use dependency() for libbsd instead of manual append to ldflags Luca Boccassi
2019-01-22 13:42 ` [dpdk-dev] [PATCH v5 1/4] build: bump minimum Meson version to 0.47.1 Bruce Richardson
2019-02-06 17:08 ` [dpdk-dev] [PATCH v6 1/5] " Luca Boccassi
2019-02-06 17:08 ` [dpdk-dev] [PATCH v6 2/5] build: use dependency() instead of find_library() Luca Boccassi
2019-02-12 11:15 ` Thomas Monjalon
2019-02-12 11:31 ` Bruce Richardson
2019-02-12 11:36 ` Thomas Monjalon
2019-02-12 11:43 ` Bruce Richardson
2019-02-12 14:47 ` Thomas Monjalon
2019-02-12 15:03 ` Bruce Richardson
2019-02-12 16:21 ` Thomas Monjalon
2019-02-13 10:49 ` Luca Boccassi
2019-02-13 11:10 ` Thomas Monjalon
2019-02-13 13:45 ` Luca Boccassi
2019-02-13 11:48 ` Luca Boccassi
2019-02-06 17:08 ` [dpdk-dev] [PATCH v6 3/5] build: reorder libraries and build eal before cmdline Luca Boccassi
2019-02-06 17:08 ` [dpdk-dev] [PATCH v6 4/5] build: use dependency() for libbsd instead of manual append to ldflags Luca Boccassi
2019-02-06 17:08 ` [dpdk-dev] [PATCH v6 5/5] build: use integers for numerical options Luca Boccassi
2019-02-08 14:44 ` Bruce Richardson
2019-02-13 11:54 ` [dpdk-dev] [PATCH v7 1/5] build: bump minimum Meson version to 0.47.1 Luca Boccassi
2019-02-13 11:54 ` [dpdk-dev] [PATCH v7 2/5] build: use dependency() instead of find_library() Luca Boccassi
2019-02-13 15:35 ` Bruce Richardson
2019-02-13 11:54 ` [dpdk-dev] [PATCH v7 3/5] build: reorder libraries and build eal before cmdline Luca Boccassi
2019-02-13 11:54 ` [dpdk-dev] [PATCH v7 4/5] build: use dependency() for libbsd instead of manual append to ldflags Luca Boccassi
2019-02-13 11:54 ` [dpdk-dev] [PATCH v7 5/5] build: use integers for numerical options Luca Boccassi
2019-02-26 17:46 ` [dpdk-dev] [PATCH v8 1/6] build: bump minimum Meson version to 0.47.1 luca.boccassi
2019-02-26 17:46 ` [dpdk-dev] [PATCH v8 2/6] build: use dependency() instead of find_library() luca.boccassi
2019-02-26 17:46 ` [dpdk-dev] [PATCH v8 3/6] build: reorder libraries and build eal before cmdline luca.boccassi
2019-02-26 17:46 ` [dpdk-dev] [PATCH v8 4/6] build: use dependency() for libbsd instead of manual append to ldflags luca.boccassi
2019-02-26 17:46 ` [dpdk-dev] [PATCH v8 5/6] build: use integers for numerical options luca.boccassi
2019-02-26 17:46 ` luca.boccassi [this message]
2019-02-26 17:49 ` [dpdk-dev] [PATCH v8 6/6] build: use dependency for pcap and fallback to find_library Luca Boccassi
2019-02-27 8:33 ` Thomas Monjalon
2019-02-27 9:47 ` Bruce Richardson
2019-02-27 10:50 ` Luca Boccassi
2019-02-27 10:56 ` Thomas Monjalon
2019-02-27 12:03 ` Luca Boccassi
2019-02-27 13:53 ` Bruce Richardson
2019-02-28 17:40 ` Bruce Richardson
2019-03-01 13:13 ` Thomas Monjalon
2019-03-01 15:13 ` Luca Boccassi
2019-03-01 13:22 ` Thomas Monjalon
2019-02-27 11:29 ` [dpdk-dev] [PATCH v8 1/6] build: bump minimum Meson version to 0.47.1 Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190226174637.27452-6-luca.boccassi@gmail.com \
--to=luca.boccassi@gmail.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).