DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] build: force pkg-config for dependency detection
@ 2021-01-18 14:29 Bruce Richardson
  2021-01-19  5:31 ` Ruifeng Wang
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Bruce Richardson @ 2021-01-18 14:29 UTC (permalink / raw)
  To: dev
  Cc: ferruh.yigit, Bruce Richardson, stable, Matan Azrad,
	Shahaf Shuler, Viacheslav Ovsiienko, Liron Himi, Fiona Trahe,
	John Griffin, Deepak Kumar Jain, Lee Daly, Ashish Gupta,
	Sunila Sahu, Ruifeng Wang, Somalapuram Amaranath, Michael Shamis,
	Declan Doherty, Ciara Loftus, Qi Zhang, Rasesh Mody,
	Shahed Shaikh, Zyta Szpak, Martin Spinler, David Hunt,
	Konstantin Ananyev

Meson can use cmake as a fallback for detecting packages, and this can
lead to picking up 64-libs for 32-bit builds. To work around this, force
the use of pkg-config only for detecting libcrypto, zlib, jansson and
other package dependencies.

CC: stable@dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---

NOTE, as I do not have all packages for DPDK on my system I have not
verified that pkg-config files are present for all dependencies,
specifically:
* libAArch64crypto
* netcope-common (which in error message is reported as "libnfb"?)
* libsze2
Maintainers, please double check these work ok.

---
 app/test/meson.build                  | 2 +-
 config/meson.build                    | 2 +-
 drivers/common/mlx5/linux/meson.build | 3 ++-
 drivers/common/mvep/meson.build       | 2 +-
 drivers/common/qat/meson.build        | 2 +-
 drivers/compress/isal/meson.build     | 2 +-
 drivers/compress/zlib/meson.build     | 2 +-
 drivers/crypto/armv8/meson.build      | 2 +-
 drivers/crypto/ccp/meson.build        | 2 +-
 drivers/crypto/mvsam/meson.build      | 2 +-
 drivers/crypto/openssl/meson.build    | 2 +-
 drivers/crypto/qat/meson.build        | 2 +-
 drivers/net/af_xdp/meson.build        | 5 +++--
 drivers/net/bnx2x/meson.build         | 2 +-
 drivers/net/mlx4/meson.build          | 3 ++-
 drivers/net/mvneta/meson.build        | 2 +-
 drivers/net/mvpp2/meson.build         | 2 +-
 drivers/net/nfb/meson.build           | 2 +-
 drivers/net/szedata2/meson.build      | 2 +-
 examples/vm_power_manager/meson.build | 2 +-
 lib/librte_bpf/meson.build            | 2 +-
 lib/librte_metrics/meson.build        | 2 +-
 22 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/app/test/meson.build b/app/test/meson.build
index bb06a9243..d0d1d1998 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -407,7 +407,7 @@ cflags += ['-DALLOW_INTERNAL_API']

 test_dep_objs = []
 if dpdk_conf.has('RTE_LIB_COMPRESSDEV')
-	compress_test_dep = dependency('zlib', required: false)
+	compress_test_dep = dependency('zlib', required: false, method: 'pkg-config')
 	if compress_test_dep.found()
 		test_dep_objs += compress_test_dep
 		test_sources += 'test_compressdev.c'
diff --git a/config/meson.build b/config/meson.build
index a3154e29c..d699a8622 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -160,7 +160,7 @@ if fdt_dep.found() and cc.has_header('fdt.h')
 endif

 # check for libbsd
-libbsd = dependency('libbsd', required: false)
+libbsd = dependency('libbsd', required: false, method: 'pkg-config')
 if libbsd.found()
 	dpdk_conf.set('RTE_USE_LIBBSD', 1)
 endif
diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build
index 580419e6d..220de3542 100644
--- a/drivers/common/mlx5/linux/meson.build
+++ b/drivers/common/mlx5/linux/meson.build
@@ -19,7 +19,8 @@ endif
 libnames = [ 'mlx5', 'ibverbs' ]
 libs = []
 foreach libname:libnames
-	lib = dependency('lib' + libname, static:static_ibverbs, required:false)
+	lib = dependency('lib' + libname, static:static_ibverbs,
+			required:false, method: 'pkg-config')
 	if not lib.found() and not static_ibverbs
 		lib = cc.find_library(libname, required:false)
 	endif
diff --git a/drivers/common/mvep/meson.build b/drivers/common/mvep/meson.build
index 863a20ab9..7cd968b38 100644
--- a/drivers/common/mvep/meson.build
+++ b/drivers/common/mvep/meson.build
@@ -4,7 +4,7 @@
 # All rights reserved.
 #

-dep = dependency('libmusdk', required: false)
+dep = dependency('libmusdk', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libmusdk"'
diff --git a/drivers/common/qat/meson.build b/drivers/common/qat/meson.build
index 29e1299f2..b2915c91f 100644
--- a/drivers/common/qat/meson.build
+++ b/drivers/common/qat/meson.build
@@ -23,7 +23,7 @@ if disabled_drivers.contains(qat_compress_path)
 			'Explicitly disabled via build config')
 endif

-libcrypto = dependency('libcrypto', required: false)
+libcrypto = dependency('libcrypto', required: false, method: 'pkg-config')
 if qat_crypto and not libcrypto.found()
 	qat_crypto = false
 	dpdk_drvs_disabled += qat_crypto_path
diff --git a/drivers/compress/isal/meson.build b/drivers/compress/isal/meson.build
index 5ee17e28f..d847c2ea6 100644
--- a/drivers/compress/isal/meson.build
+++ b/drivers/compress/isal/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright 2018 Intel Corporation

-dep = dependency('libisal', required: false)
+dep = dependency('libisal', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libisal"'
diff --git a/drivers/compress/zlib/meson.build b/drivers/compress/zlib/meson.build
index b19a6d2b1..82cf0dddd 100644
--- a/drivers/compress/zlib/meson.build
+++ b/drivers/compress/zlib/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Cavium Networks

-dep = dependency('zlib', required: false)
+dep = dependency('zlib', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "zlib"'
diff --git a/drivers/crypto/armv8/meson.build b/drivers/crypto/armv8/meson.build
index 3289a2adc..027173bc1 100644
--- a/drivers/crypto/armv8/meson.build
+++ b/drivers/crypto/armv8/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Arm Limited

-dep = dependency('libAArch64crypto', required: false)
+dep = dependency('libAArch64crypto', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libAArch64crypto"'
diff --git a/drivers/crypto/ccp/meson.build b/drivers/crypto/ccp/meson.build
index a0e0b379e..ff66427ae 100644
--- a/drivers/crypto/ccp/meson.build
+++ b/drivers/crypto/ccp/meson.build
@@ -5,7 +5,7 @@ if not is_linux
 	build = false
 	reason = 'only supported on Linux'
 endif
-dep = dependency('libcrypto', required: false)
+dep = dependency('libcrypto', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libcrypto"'
diff --git a/drivers/crypto/mvsam/meson.build b/drivers/crypto/mvsam/meson.build
index 384eacff0..b4c55b5ff 100644
--- a/drivers/crypto/mvsam/meson.build
+++ b/drivers/crypto/mvsam/meson.build
@@ -3,7 +3,7 @@
 # Copyright(c) 2018 Semihalf.
 # All rights reserved.

-dep = dependency('libmusdk', required: false)
+dep = dependency('libmusdk', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libmusdk"'
diff --git a/drivers/crypto/openssl/meson.build b/drivers/crypto/openssl/meson.build
index d9ac69897..47fb2bb75 100644
--- a/drivers/crypto/openssl/meson.build
+++ b/drivers/crypto/openssl/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-dep = dependency('libcrypto', required: false)
+dep = dependency('libcrypto', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libcrypto"'
diff --git a/drivers/crypto/qat/meson.build b/drivers/crypto/qat/meson.build
index bc90ec44c..92e0ed656 100644
--- a/drivers/crypto/qat/meson.build
+++ b/drivers/crypto/qat/meson.build
@@ -5,7 +5,7 @@
 # driver which comes later. Here we just add our sources files to the list
 build = false
 reason = '' # sentinal value to suppress printout
-dep = dependency('libcrypto', required: false)
+dep = dependency('libcrypto', required: false, method: 'pkg-config')
 qat_includes += include_directories('.')
 qat_deps += 'cryptodev'
 qat_deps += 'net'
diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
index dce123036..60ccffabb 100644
--- a/drivers/net/af_xdp/meson.build
+++ b/drivers/net/af_xdp/meson.build
@@ -9,14 +9,15 @@ endif

 sources = files('rte_eth_af_xdp.c')

-bpf_dep = dependency('libbpf', required: false)
+bpf_dep = dependency('libbpf', required: false, method: 'pkg-config')
 if not bpf_dep.found()
 	bpf_dep = cc.find_library('bpf', required: false)
 endif

 if bpf_dep.found() and cc.has_header('bpf/xsk.h') and cc.has_header('linux/if_xdp.h')
 	ext_deps += bpf_dep
-	bpf_ver_dep = dependency('libbpf', version : '>=0.2.0', required: false)
+	bpf_ver_dep = dependency('libbpf', version : '>=0.2.0',
+			required: false, method: 'pkg-config')
 	if bpf_ver_dep.found()
 		dpdk_conf.set('RTE_LIBRTE_AF_XDP_PMD_SHARED_UMEM', 1)
 	endif
diff --git a/drivers/net/bnx2x/meson.build b/drivers/net/bnx2x/meson.build
index 8837ef424..e260b7592 100644
--- a/drivers/net/bnx2x/meson.build
+++ b/drivers/net/bnx2x/meson.build
@@ -7,7 +7,7 @@ if is_windows
 	subdir_done()
 endif

-dep = dependency('zlib', required: false)
+dep = dependency('zlib', required: false, method: 'pkg-config')
 build = dep.found()
 reason = 'missing dependency, "zlib"'
 ext_deps += dep
diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build
index 0cf9938a8..d7602b748 100644
--- a/drivers/net/mlx4/meson.build
+++ b/drivers/net/mlx4/meson.build
@@ -24,7 +24,8 @@ endif
 libnames = [ 'mlx4', 'ibverbs' ]
 libs = []
 foreach libname:libnames
-	lib = dependency('lib' + libname, static:static_ibverbs, required:false)
+	lib = dependency('lib' + libname, static:static_ibverbs,
+			required:false, method: 'pkg-config')
 	if not lib.found() and not static_ibverbs
 		lib = cc.find_library(libname, required:false)
 	endif
diff --git a/drivers/net/mvneta/meson.build b/drivers/net/mvneta/meson.build
index 4e073e0d2..0be7b3d8b 100644
--- a/drivers/net/mvneta/meson.build
+++ b/drivers/net/mvneta/meson.build
@@ -9,7 +9,7 @@ if is_windows
 	subdir_done()
 endif

-dep = dependency('libmusdk', required: false)
+dep = dependency('libmusdk', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libmusdk"'
diff --git a/drivers/net/mvpp2/meson.build b/drivers/net/mvpp2/meson.build
index c509d8916..bfda5439b 100644
--- a/drivers/net/mvpp2/meson.build
+++ b/drivers/net/mvpp2/meson.build
@@ -9,7 +9,7 @@ if is_windows
 	subdir_done()
 endif

-dep = dependency('libmusdk', required: false)
+dep = dependency('libmusdk', required: false, method: 'pkg-config')
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libmusdk"'
diff --git a/drivers/net/nfb/meson.build b/drivers/net/nfb/meson.build
index 42f7921dc..f4a89b87d 100644
--- a/drivers/net/nfb/meson.build
+++ b/drivers/net/nfb/meson.build
@@ -9,7 +9,7 @@ if is_windows
 	subdir_done()
 endif

-dep = dependency('netcope-common', required: false)
+dep = dependency('netcope-common', required: false, method: 'pkg-config')
 reason = 'missing dependency, "libnfb"'
 build = dep.found()
 ext_deps += dep
diff --git a/drivers/net/szedata2/meson.build b/drivers/net/szedata2/meson.build
index 4c02830b0..4f8f3325f 100644
--- a/drivers/net/szedata2/meson.build
+++ b/drivers/net/szedata2/meson.build
@@ -7,7 +7,7 @@ if is_windows
 	subdir_done()
 endif

-dep = dependency('libsze2', required: false)
+dep = dependency('libsze2', required: false, method: 'pkg-config')
 build = dep.found()
 reason = 'missing dependency, "libsze2"'
 ext_deps += dep
diff --git a/examples/vm_power_manager/meson.build b/examples/vm_power_manager/meson.build
index 1f813fbe8..637bd2323 100644
--- a/examples/vm_power_manager/meson.build
+++ b/examples/vm_power_manager/meson.build
@@ -41,7 +41,7 @@ opt_dep = cc.find_library('virt', required : false)
 build = opt_dep.found()
 ext_deps += opt_dep

-opt_dep = dependency('jansson', required : false)
+opt_dep = dependency('jansson', required : false, method: 'pkg-config')
 if opt_dep.found()
 	ext_deps += opt_dep
 	cflags += '-DUSE_JANSSON'
diff --git a/lib/librte_bpf/meson.build b/lib/librte_bpf/meson.build
index 48460e950..614277eff 100644
--- a/lib/librte_bpf/meson.build
+++ b/lib/librte_bpf/meson.build
@@ -19,7 +19,7 @@ headers = files('bpf_def.h',

 deps += ['mbuf', 'net', 'ethdev']

-dep = dependency('libelf', required: false)
+dep = dependency('libelf', required: false, method: 'pkg-config')
 if dep.found()
 	dpdk_conf.set('RTE_LIBRTE_BPF_ELF', 1)
 	sources += files('bpf_load_elf.c')
diff --git a/lib/librte_metrics/meson.build b/lib/librte_metrics/meson.build
index eed27b880..28a8cc115 100644
--- a/lib/librte_metrics/meson.build
+++ b/lib/librte_metrics/meson.build
@@ -4,7 +4,7 @@
 sources = files('rte_metrics.c')
 headers = files('rte_metrics.h')

-jansson = dependency('jansson', required: false)
+jansson = dependency('jansson', required: false, method: 'pkg-config')
 if jansson.found()
 	ext_deps += jansson
 	sources += files('rte_metrics_telemetry.c')
--
2.27.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-01-25 23:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-18 14:29 [dpdk-dev] [PATCH] build: force pkg-config for dependency detection Bruce Richardson
2021-01-19  5:31 ` Ruifeng Wang
2021-01-25 16:46   ` Martin Špinler
2021-01-19  9:19 ` [dpdk-dev] [EXT] " Liron Himi
2021-01-21 17:33 ` [dpdk-dev] " Daly, Lee
2021-01-22 12:54 ` Hemant Agrawal
2021-01-25 23:53 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon

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).