[dpdk-dev] [PATCH 3/6] net/mlx: fix library search in meson build

Yongseok Koh yskoh at mellanox.com
Mon Apr 15 21:48:23 CEST 2019


Hi,



Thanks,
Yongseok

> On Apr 15, 2019, at 3:12 AM, Luca Boccassi <bluca at debian.org> wrote:
> 
> 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: 
>> bluca at debian.org
>> 
>> Cc: 
>> stable at dpdk.org
>> 
>> 
>> Signed-off-by: Yongseok Koh <
>> yskoh at 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?

I also worried about that. But it works fine.
Looks meson is smart enough. :-)

>> +	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, at 0@'.format(LIB_GLUE),
> 
> -- 
> Kind regards,
> Luca Boccassi



More information about the dev mailing list