]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
meson: fix dlopen support for cryptsetup
authorLuca Boccassi <bluca@debian.org>
Fri, 2 Jul 2021 18:44:59 +0000 (19:44 +0100)
committerLuca Boccassi <bluca@debian.org>
Fri, 2 Jul 2021 18:45:28 +0000 (19:45 +0100)
dlopen is treated as a dependency, but that's not quite right, it
should be an alternative way to link to libcryptsetup.
Search for it only if cryptsetup is not disabled, and if the cryptsetup-dlopen
is explicitly set to enabled. If it is, do not link to libcryptsetup.

Add cryptsetup support status to the meson summary.

libmount/meson.build
meson.build

index d913654ffbeded33c9960619895b05ee63fde08e..d25ec8d08c3a2eb4044fcec44c8632a10b8467d4 100644 (file)
@@ -81,7 +81,7 @@ lib_mount = library(
   link_with : [lib_common,
                lib_blkid],
   dependencies : [lib_selinux,
-                  lib_cryptsetup,
+                  get_option('cryptsetup-dlopen').enabled() ? lib_dl : lib_cryptsetup,
                   realtime_libs],
   install : build_libmount)
 
index 83e25a746ff4a5b12a3f5962797e54b6ad10d49a..b138af86bc44d15ef633eb6996d267436630fc89 100644 (file)
@@ -315,10 +315,19 @@ lib_cryptsetup = dependency(
   required : get_option('cryptsetup'))
 conf.set('HAVE_CRYPTSETUP', lib_cryptsetup.found() ? 1 : false)
 
-lib_cryptsetup_dl = dependency(
-  'dl',
-  required : get_option('cryptsetup-dlopen'))
-conf.set('CRYPTSETUP_VIA_DLOPEN', lib_cryptsetup_dl.found() ? 1 : false)
+if not get_option('cryptsetup').disabled() and get_option('cryptsetup-dlopen').enabled()
+  lib_dl = cc.find_library(
+    'libdl',
+    required : true)
+  conf.set('CRYPTSETUP_VIA_DLOPEN', 1)
+  summary('cryptsetup support (dlopen)',
+          'enabled',
+          section : 'components')
+else
+  summary('cryptsetup support',
+          lib_cryptsetup.found()  ? 'enabled' : 'disabled',
+          section : 'components')
+endif
 
 have = cc.has_function(
   'crypt_activate_by_signed_key',