meson: extend libmpathpersist test for static linking

libmultipath has a dependency on libdevmapper, so
include it as well when static linking.  It seems that
the rabbit hole ends there.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
master
Paolo Bonzini 2020-09-17 12:25:09 +02:00
parent 6ec0e15d95
commit 43b43a4027
1 changed files with 19 additions and 8 deletions

View File

@ -302,14 +302,25 @@ if targetos == 'linux' and have_tools and not get_option('mpath').disabled()
mpath_lib_init(udev);
return 0;
}'''
libmultipath = cc.find_library('multipath',
required: get_option('mpath'),
static: enable_static)
libmpathpersist = cc.find_library('mpathpersist',
required: get_option('mpath'),
static: enable_static)
if libmultipath.found() and libmpathpersist.found() and libudev.found()
mpathlibs = [libmultipath, libmpathpersist, libudev]
mpathlibs = [libudev]
if enable_static
mpathlibs += cc.find_library('devmapper',
required: get_option('mpath'),
static: enable_static)
endif
mpathlibs += cc.find_library('multipath',
required: get_option('mpath'),
static: enable_static)
mpathlibs += cc.find_library('mpathpersist',
required: get_option('mpath'),
static: enable_static)
foreach lib: mpathlibs
if not lib.found()
mpathlibs = []
break
endif
endforeach
if mpathlibs.length() > 0
if cc.links(mpath_test_source_new, dependencies: mpathlibs)
mpathpersist = declare_dependency(dependencies: mpathlibs)
mpathpersist_new_api = true