Hi,



Thanks,
Yongseok

> On Apr 15, 2019, at 3:12 AM, Luca Boccassi <bl...@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: 
>> 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?

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

Reply via email to