]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
meson: (libfdisk, libsmartcols, libmount) handle linkers without version script support
authorThomas Weißschuh <thomas@t-8ch.de>
Sun, 12 Apr 2026 06:03:43 +0000 (08:03 +0200)
committerThomas Weißschuh <thomas@t-8ch.de>
Tue, 28 Apr 2026 08:31:52 +0000 (10:31 +0200)
The linker may not support version scripts. Handle this for libfdisk,
libsmartcols and libmount the same way as libuuid and libblkid.

Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
libfdisk/meson.build
libmount/meson.build
libsmartcols/meson.build

index 498102ad17878f4a1eea7d8e07c0c0cfd483cc38..cfd63d3ecdb2c06a3de9e744e042965416abd44a 100644 (file)
@@ -56,12 +56,20 @@ lib__fdisk = static_library(
   include_directories : lib_fdisk_includes,
   dependencies : build_libfdisk ? [] : disabler())
 
+libfdisk_link_depends = []
+libfdisk_link_args = []
+
+if cc.has_link_argument('-Wl,--version-script=@0@'.format(libfdisk_sym_path))
+       libfdisk_link_depends += [libfdisk_sym]
+       libfdisk_link_args += ['-Wl,--version-script=@0@'.format(libfdisk_sym_path)]
+endif
+
 lib_fdisk = both_libraries(
   'fdisk',
   link_whole : lib__fdisk,
-  link_depends : libfdisk_sym,
+  link_depends : libfdisk_link_depends,
   version : libfdisk_version,
-  link_args : ['-Wl,--version-script=@0@'.format(libfdisk_sym_path)],
+  link_args : libfdisk_link_args,
   link_with : [lib_common,
                lib_uuid],
   dependencies : [blkid_dep],
index 558f30468aa25215ed2de3065aa3856516dcd3c7..233e0ac6525edd7303ececf85de91ae1fc4d2366 100644 (file)
@@ -103,14 +103,22 @@ if conf.get('USE_LIBMOUNT_UDEV_SUPPORT').to_string() == '1'
   lib__mount_deps += [lib_systemd]
 endif
 
+libmount_link_depends = []
+libmount_link_args = []
+
+if cc.has_link_argument('-Wl,--version-script=@0@'.format(libmount_sym_path))
+       libmount_link_depends += [libmount_sym]
+       libmount_link_args += ['-Wl,--version-script=@0@'.format(libmount_sym_path)]
+endif
+
 lib_mount = library(
   'mount',
   link_whole : lib__mount,
   include_directories : [dir_include,
                          dir_libmount],
-  link_depends : libmount_sym,
+  link_depends : libmount_link_depends,
   version : libmount_version,
-  link_args : ['-Wl,--version-script=@0@'.format(libmount_sym_path)],
+  link_args : libmount_link_args,
   link_with : [lib_common],
   dependencies : lib__mount_deps + blkid_dep,
   install : build_libmount)
index 81cac8aa1b39a20ecfce0be8614cd74ba746dfe0..628c098c23804da74052e12f87fe54eb49eb0d66 100644 (file)
@@ -42,14 +42,22 @@ lib_smartcols_sources = '''
 libsmartcols_sym = 'src/libsmartcols.sym'
 libsmartcols_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libsmartcols_sym)
 
+libsmartcols_link_depends = []
+libsmartcols_link_args = []
+
+if cc.has_link_argument('-Wl,--version-script=@0@'.format(libsmartcols_sym_path))
+       libsmartcols_link_depends += [libsmartcols_sym]
+       libsmartcols_link_args += ['-Wl,--version-script=@0@'.format(libsmartcols_sym_path)]
+endif
+
 lib_smartcols = both_libraries(
   'smartcols',
   list_h,
   lib_smartcols_sources,
   include_directories : [dir_include, dir_libsmartcols],
-  link_depends : libsmartcols_sym,
+  link_depends : libsmartcols_link_depends,
   version : libsmartcols_version,
-  link_args : ['-Wl,--version-script=@0@'.format(libsmartcols_sym_path)],
+  link_args : libsmartcols_link_args,
   link_with : lib_common,
   dependencies : build_libsmartcols ? [] : disabler(),
   install : build_libsmartcols)