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

* Re: [dpdk-dev] [PATCH] build: force pkg-config for dependency detection
  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
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 7+ messages in thread
From: Ruifeng Wang @ 2021-01-19  5:31 UTC (permalink / raw)
  To: Bruce Richardson, dev
  Cc: ferruh.yigit, stable, Matan Azrad, Shahaf Shuler,
	Viacheslav Ovsiienko, Liron Himi, Fiona Trahe, John Griffin,
	Deepak Kumar Jain, Lee Daly, Ashish Gupta, Sunila Sahu,
	Somalapuram Amaranath, Michael Shamis, Declan Doherty,
	Ciara Loftus, Qi Zhang, Rasesh Mody, Shahed Shaikh, Zyta Szpak,
	Martin Spinler, David Hunt, Konstantin Ananyev, nd


> -----Original Message-----
> From: Bruce Richardson <bruce.richardson@intel.com>
> Sent: Monday, January 18, 2021 10:30 PM
> To: dev@dpdk.org
> Cc: ferruh.yigit@intel.com; Bruce Richardson <bruce.richardson@intel.com>;
> stable@dpdk.org; Matan Azrad <matan@nvidia.com>; Shahaf Shuler
> <shahafs@nvidia.com>; Viacheslav Ovsiienko <viacheslavo@nvidia.com>;
> Liron Himi <lironh@marvell.com>; Fiona Trahe <fiona.trahe@intel.com>;
> John Griffin <john.griffin@intel.com>; Deepak Kumar Jain
> <deepak.k.jain@intel.com>; Lee Daly <lee.daly@intel.com>; Ashish Gupta
> <ashish.gupta@marvell.com>; Sunila Sahu <ssahu@marvell.com>; Ruifeng
> Wang <Ruifeng.Wang@arm.com>; Somalapuram Amaranath
> <asomalap@amd.com>; Michael Shamis <michaelsh@marvell.com>; Declan
> Doherty <declan.doherty@intel.com>; Ciara Loftus <ciara.loftus@intel.com>;
> Qi Zhang <qi.z.zhang@intel.com>; Rasesh Mody <rmody@marvell.com>;
> Shahed Shaikh <shshaikh@marvell.com>; Zyta Szpak <zr@semihalf.com>;
> Martin Spinler <spinler@cesnet.cz>; David Hunt <david.hunt@intel.com>;
> Konstantin Ananyev <konstantin.ananyev@intel.com>
> Subject: [PATCH] build: force pkg-config for dependency detection
> 
> 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

Checked the change works OK with libAArch64crypto package.
Tested-by: Ruifeng Wang <ruifeng.wang@arm.com>

> * 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

* Re: [dpdk-dev] [EXT] [PATCH] build: force pkg-config for dependency detection
  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-19  9:19 ` Liron Himi
  2021-01-21 17:33 ` [dpdk-dev] " Daly, Lee
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Liron Himi @ 2021-01-19  9:19 UTC (permalink / raw)
  To: Bruce Richardson, dev
  Cc: ferruh.yigit, stable, Matan Azrad, Shahaf Shuler,
	Viacheslav Ovsiienko, 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, Liron Himi

libmusdk works with this change.
Tested-by: Liron Himi <lironh@marvell.com>

-----Original Message-----
From: Bruce Richardson <bruce.richardson@intel.com> 
Sent: Monday, 18 January 2021 16:30
To: dev@dpdk.org
Cc: ferruh.yigit@intel.com; Bruce Richardson <bruce.richardson@intel.com>; stable@dpdk.org; Matan Azrad <matan@nvidia.com>; Shahaf Shuler <shahafs@nvidia.com>; Viacheslav Ovsiienko <viacheslavo@nvidia.com>; Liron Himi <lironh@marvell.com>; Fiona Trahe <fiona.trahe@intel.com>; John Griffin <john.griffin@intel.com>; Deepak Kumar Jain <deepak.k.jain@intel.com>; Lee Daly <lee.daly@intel.com>; Ashish Gupta <ashishg@marvell.com>; Sunila Sahu <ssahu@marvell.com>; Ruifeng Wang <ruifeng.wang@arm.com>; Somalapuram Amaranath <asomalap@amd.com>; Michael Shamis <michaelsh@marvell.com>; Declan Doherty <declan.doherty@intel.com>; Ciara Loftus <ciara.loftus@intel.com>; Qi Zhang <qi.z.zhang@intel.com>; Rasesh Mody <rmody@marvell.com>; Shahed Shaikh <shshaikh@marvell.com>; Zyta Szpak <zr@semihalf.com>; Martin Spinler <spinler@cesnet.cz>; David Hunt <david.hunt@intel.com>; Konstantin Ananyev <konstantin.ananyev@intel.com>
Subject: [EXT] [PATCH] build: force pkg-config for dependency detection

External Email

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

* Re: [dpdk-dev] [PATCH] build: force pkg-config for dependency detection
  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-19  9:19 ` [dpdk-dev] [EXT] " Liron Himi
@ 2021-01-21 17:33 ` Daly, Lee
  2021-01-22 12:54 ` Hemant Agrawal
  2021-01-25 23:53 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
  4 siblings, 0 replies; 7+ messages in thread
From: Daly, Lee @ 2021-01-21 17:33 UTC (permalink / raw)
  To: Richardson, Bruce, dev
  Cc: Yigit, Ferruh, stable, Matan Azrad, Shahaf Shuler,
	Viacheslav Ovsiienko, Liron Himi, Trahe, Fiona, Griffin,  John,
	Jain, Deepak K, Ashish Gupta, Sunila Sahu, Ruifeng Wang,
	Somalapuram Amaranath, Michael Shamis, Doherty, Declan, Loftus,
	Ciara, Zhang,  Qi Z, Rasesh Mody, Shahed Shaikh, Zyta Szpak,
	Martin Spinler, Hunt, David, Ananyev, Konstantin



> -----Original Message-----
> From: Richardson, Bruce <bruce.richardson@intel.com>
> Sent: Monday, January 18, 2021 2:30 PM
> To: dev@dpdk.org
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; Richardson, Bruce
> <bruce.richardson@intel.com>; stable@dpdk.org; Matan Azrad
> <matan@nvidia.com>; Shahaf Shuler <shahafs@nvidia.com>; Viacheslav
> Ovsiienko <viacheslavo@nvidia.com>; Liron Himi <lironh@marvell.com>;
> Trahe, Fiona <fiona.trahe@intel.com>; Griffin, John
> <john.griffin@intel.com>; Jain, Deepak K <deepak.k.jain@intel.com>; Daly,
> Lee <lee.daly@intel.com>; Ashish Gupta <ashish.gupta@marvell.com>;
> Sunila Sahu <ssahu@marvell.com>; Ruifeng Wang
> <ruifeng.wang@arm.com>; Somalapuram Amaranath
> <asomalap@amd.com>; Michael Shamis <michaelsh@marvell.com>;
> Doherty, Declan <declan.doherty@intel.com>; Loftus, Ciara
> <ciara.loftus@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Rasesh Mody
> <rmody@marvell.com>; Shahed Shaikh <shshaikh@marvell.com>; Zyta
> Szpak <zr@semihalf.com>; Martin Spinler <spinler@cesnet.cz>; Hunt, David
> <david.hunt@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>
> Subject: [PATCH] build: force pkg-config for dependency detection
> 
> 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>
> ---
> 
Tested ISA-L driver change. Thanks.
Tested-by: Lee Daly <lee.daly@intel.com>

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

* Re: [dpdk-dev] [PATCH] build: force pkg-config for dependency detection
  2021-01-18 14:29 [dpdk-dev] [PATCH] build: force pkg-config for dependency detection Bruce Richardson
                   ` (2 preceding siblings ...)
  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
  4 siblings, 0 replies; 7+ messages in thread
From: Hemant Agrawal @ 2021-01-22 12:54 UTC (permalink / raw)
  To: Bruce Richardson, dev
  Cc: ferruh.yigit, 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

Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>



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

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

libnfb and libsze2 works OK.
The libnfb is provided by netcope-common package, so it is possible to
leave it like this.

Tested-by: Martin Spinler <spinler@cesnet.cz>



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

* Re: [dpdk-dev] [dpdk-stable] [PATCH] build: force pkg-config for dependency detection
  2021-01-18 14:29 [dpdk-dev] [PATCH] build: force pkg-config for dependency detection Bruce Richardson
                   ` (3 preceding siblings ...)
  2021-01-22 12:54 ` Hemant Agrawal
@ 2021-01-25 23:53 ` Thomas Monjalon
  4 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2021-01-25 23:53 UTC (permalink / raw)
  To: Bruce Richardson
  Cc: dev, stable, ferruh.yigit, 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

18/01/2021 15:29, Bruce Richardson:
> 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>

That's "fun" how doing a compilation "right" may be difficult.

Applied, thanks



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