On Fri, 2019-04-12 at 16:24 -0700, Yongseok Koh wrote: > If MLNX_OFED is installed, there's no .pc file installed for > libraries and > dependency() can't find libraries by pkg-config. By adding fallback > of > using cc.find_library(), libraries are properly located. > > Fixes: e30b4e566f47 ("build: improve dependency handling") > Cc: > bl...@debian.org > > Cc: > sta...@dpdk.org > > > Signed-off-by: Yongseok Koh < > ys...@mellanox.com > > > --- > drivers/net/mlx4/meson.build | 19 +++++++++++-------- > drivers/net/mlx5/meson.build | 19 +++++++++++-------- > 2 files changed, 22 insertions(+), 16 deletions(-) > > diff --git a/drivers/net/mlx4/meson.build > b/drivers/net/mlx4/meson.build > index de020701d1..9082f69f25 100644 > --- a/drivers/net/mlx4/meson.build > +++ b/drivers/net/mlx4/meson.build > @@ -13,21 +13,24 @@ if pmd_dlopen > '-DMLX4_GLUE_VERSION="@0@"'.format(LIB_GLUE_VERSION), > ] > endif > -libs = [ > - dependency('libmnl', required:false), > - dependency('libmlx4', required:false), > - dependency('libibverbs', required:false), > -] > +libs = [ 'libmnl', 'libmlx4', 'libibverbs' ] > +lib_deps = [] > build = true > foreach lib:libs > - if not lib.found() > + lib_dep = dependency(lib, required:false) > + if not lib_dep.found() > + lib_dep = cc.find_library(lib, required:false)
Doesn't this end up trying to link the test program to -llibmnl and thus failing? > + endif > + if lib_dep.found() > + lib_deps += [ lib_dep ] > + else > build = false > endif > endforeach > # Compile PMD > if build > allow_experimental_apis = true > - ext_deps += libs > + ext_deps += lib_deps > sources = files( > 'mlx4.c', > 'mlx4_ethdev.c', > @@ -103,7 +106,7 @@ if pmd_dlopen and build > dlopen_sources, > include_directories: global_inc, > c_args: cflags, > - dependencies: libs, > + dependencies: libs_deps, > link_args: [ > '-Wl,-export-dynamic', > '-Wl,-h,@0@'.format(LIB_GLUE), -- Kind regards, Luca Boccassi