From: Thomas Weißschuh Date: Sun, 12 Apr 2026 06:03:43 +0000 (+0200) Subject: meson: (libfdisk, libsmartcols, libmount) handle linkers without version script support X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=4dc5bd00d06f5a760b11cc87b85ba5adf4cc0fb4;p=thirdparty%2Futil-linux.git meson: (libfdisk, libsmartcols, libmount) handle linkers without version script support 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 --- diff --git a/libfdisk/meson.build b/libfdisk/meson.build index 498102ad1..cfd63d3ec 100644 --- a/libfdisk/meson.build +++ b/libfdisk/meson.build @@ -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], diff --git a/libmount/meson.build b/libmount/meson.build index 558f30468..233e0ac65 100644 --- a/libmount/meson.build +++ b/libmount/meson.build @@ -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) diff --git a/libsmartcols/meson.build b/libsmartcols/meson.build index 81cac8aa1..628c098c2 100644 --- a/libsmartcols/meson.build +++ b/libsmartcols/meson.build @@ -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)