> -----Original Message----- > From: Bruce Richardson <bruce.richard...@intel.com> > Sent: Monday, January 18, 2021 10:30 PM > To: dev@dpdk.org > Cc: ferruh.yi...@intel.com; Bruce Richardson <bruce.richard...@intel.com>; > sta...@dpdk.org; Matan Azrad <ma...@nvidia.com>; Shahaf Shuler > <shah...@nvidia.com>; Viacheslav Ovsiienko <viachesl...@nvidia.com>; > Liron Himi <lir...@marvell.com>; Fiona Trahe <fiona.tr...@intel.com>; > John Griffin <john.grif...@intel.com>; Deepak Kumar Jain > <deepak.k.j...@intel.com>; Lee Daly <lee.d...@intel.com>; Ashish Gupta > <ashish.gu...@marvell.com>; Sunila Sahu <ss...@marvell.com>; Ruifeng > Wang <ruifeng.w...@arm.com>; Somalapuram Amaranath > <asoma...@amd.com>; Michael Shamis <michae...@marvell.com>; Declan > Doherty <declan.dohe...@intel.com>; Ciara Loftus <ciara.lof...@intel.com>; > Qi Zhang <qi.z.zh...@intel.com>; Rasesh Mody <rm...@marvell.com>; > Shahed Shaikh <shsha...@marvell.com>; Zyta Szpak <z...@semihalf.com>; > Martin Spinler <spin...@cesnet.cz>; David Hunt <david.h...@intel.com>; > Konstantin Ananyev <konstantin.anan...@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: sta...@dpdk.org > > Signed-off-by: Bruce Richardson <bruce.richard...@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.w...@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