11/02/2020 12:32, Bruce Richardson: > On Tue, Feb 11, 2020 at 02:19:42AM +0100, Thomas Monjalon wrote: > > If ibverbs_link is dlopen, the PMD and application should not > > be linked with ibverbs, but the glue library is. > > Unfortunately the ibverbs dependency was exported in the > > variable ext_deps, so there were overlinking. > > > > It is fixed by not exporting the dependency in ext_deps, > > and recreating a limited dependency object for cflags only. > > > > Fixes: 1dd7c7e38c19 ("net/mlx4: support meson build") > > Fixes: 96d7c62a70c7 ("net/mlx5: support meson build") > > Cc: sta...@dpdk.org > > > > Signed-off-by: Thomas Monjalon <tho...@monjalon.net> > > --- > > drivers/common/mlx5/meson.build | 6 ++++-- > > drivers/net/mlx4/meson.build | 6 ++++-- > > 2 files changed, 8 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/common/mlx5/meson.build > > b/drivers/common/mlx5/meson.build > > index 2bb2a83c45..2956fc20e2 100644 > > --- a/drivers/common/mlx5/meson.build > > +++ b/drivers/common/mlx5/meson.build > > @@ -30,7 +30,7 @@ foreach libname:libnames > > endif > > if lib.found() > > libs += lib > > - if not static_ibverbs > > + if not static_ibverbs and not dlopen_ibverbs > > ext_deps += lib > > endif > > else > > @@ -38,10 +38,12 @@ foreach libname:libnames > > reason = 'missing dependency, "' + libname + '"' > > endif > > endforeach > > -if build and static_ibverbs > > +if build and (static_ibverbs or dlopen_ibverbs) > > # Build without adding shared libs to Requires.private > > ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() > > ext_deps += declare_dependency(compile_args: ibv_cflags.split()) > > +endif > > +if build and static_ibverbs > > # Add static deps ldflags to internal apps and Libs.private > > ibv_ldflags = run_command(ldflags_ibverbs_static, check:true).stdout() > > ext_deps += declare_dependency(link_args:ibv_ldflags.split()) > > One small suggestion: > Since out minimum version of meson is 0.47.1, we can use subdir_done() > function. Putting subdir_done() immediately after build=false will simplify > things as you won't need to continually check the build variable in each if > statement.
Great, thank you!