Skip to contentSkip to conversation

When RTE_LIBRTE_PCAP_PMD is enabled RTE_PORT_PCAP is not enabled for rte_port_source_sink.c

dpdk-dev Applied [email protected] 3 participants 5 messages Sep 24, 2019 – Oct 27, 2019

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=351

Bug ID: 351
Summary: When RTE_LIBRTE_PCAP_PMD is enabled RTE_PORT_PCAP is
not enabled for rte_port_source_sink.c
Product: DPDK
Version: 19.05
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: meson
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---

Created attachment 68
--> https://bugs.dpdk.org/attachment.cgi?id=68&action=edit
Patch for missing -lpcap link and RTE_PORT_PCAP option

On the old build system when enabling RTE_LIBRTE_PCAP_PMD an option is enabled for rte_port_source_sink (RTE_PORT_PCAP) and pcap is linked to librte_port.

On Meson build this doesn't happen. Please see attached patch for a possible fix.

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.
#1 lore raw

PATCH 1/1 port: fix missing pcap support with meson

The meson build was missing the define to enable pcap port support if libpcap (development) package was found on the build platform. Rather than duplicating the checks for libpcap found in the pcap net PMD build file, we can move the checks to the top-level config directory and reference the RTE_PCAP_PORT setting elsewhere in the build.

Bugzilla ID: 351

Fixes 5b9656b157d3 ("lib: build with meson")
---
 config/meson.build           | 13 +++++++++++++
 drivers/net/pcap/meson.build | 18 +++---------------
 lib/librte_port/meson.build  |  4 ++++
 3 files changed, 20 insertions(+), 15 deletions(-)
config/meson.build +13 -0
index 2bafea530..f9ae632cf 100644
@@ -138,6 +138,19 @@ if libbsd.found()
 	dpdk_conf.set('RTE_USE_LIBBSD', 1)
 endif
 
+# check for pcap
+pcap_dep = dependency('pcap', required: false)
+if pcap_dep.found()
+	# 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)
+endif
+if pcap_dep.found() and cc.has_header('pcap.h', dependencies: pcap_dep)
+	dpdk_conf.set('RTE_PORT_PCAP', 1)
+	dpdk_extra_ldflags += '-lpcap'
+endif
+
 # add -include rte_config to cflags
 add_project_arguments('-include', 'rte_config.h', language: 'c')
 
drivers/net/pcap/meson.build +3 -15
index 910dfab9b..b680710aa 100644
@@ -1,21 +1,9 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-pcap_dep = dependency('pcap', required: false)
-if pcap_dep.found()
-	build = true
-else
-	# 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
-		reason = 'missing dependency, "libpcap"'
-	endif
+if not dpdk_conf.has('RTE_PORT_PCAP')
+	build = false
+	reason = 'missing dependency, "libpcap"'
 endif
 sources = files('rte_eth_pcap.c')
 ext_deps += pcap_dep
lib/librte_port/meson.build +4 -0
index 0d11456f0..1b48127c1 100644
@@ -23,6 +23,10 @@ headers = files(
 	'rte_port_sym_crypto.h')
 deps += ['ethdev', 'sched', 'ip_frag', 'cryptodev']
 
+if dpdk_conf.has('RTE_PORT_PCAP')
+	ext_deps += pcap_dep # dependency provided in config/meson.build
+endif
+
 if dpdk_conf.has('RTE_LIBRTE_KNI')
 	sources += files('rte_port_kni.c')
 	headers += files('rte_port_kni.h')
Signature · 1 line
2.21.0
Tested-by Cristian Bidea on v1 1/1
#2 lore raw

Re: [dpdk-dev] [PATCH] port: fix missing pcap support with meson

Quoted 6 lines · Bruce Richardson

The meson build was missing the define to enable pcap port support if libpcap (development) package was found on the build platform. Rather than duplicating the checks for libpcap found in the pcap net PMD build file, we can move the checks to the top-level config directory and reference the RTE_PCAP_PORT setting elsewhere in the build.

Quoted 6 lines

Bugzilla ID: 351

Fixes 5b9656b157d3 ("lib: build with meson")

Based on response given in bugzilla
[https://bugs.dpdk.org/show_bug.cgi?id=351]

Just adding here so it shows up in patchwork.

/Bruce

#3 lore raw

Re: [dpdk-dev] [dpdk-stable] [PATCH] port: fix missing pcap support with meson

24/09/2019 17:19, Bruce Richardson:

Quoted 14 lines · Bruce Richardson
Quoted 6 lines

The meson build was missing the define to enable pcap port support if libpcap (development) package was found on the build platform. Rather than duplicating the checks for libpcap found in the pcap net PMD build file, we can move the checks to the top-level config directory and reference the RTE_PCAP_PORT setting elsewhere in the build.

Quoted 6 lines

Bugzilla ID: 351

Fixes 5b9656b157d3 ("lib: build with meson")
Quoted 6 lines

Based on response given in bugzilla
[https://bugs.dpdk.org/show_bug.cgi?id=351]

Just adding here so it shows up in patchwork.

Applied, thanks