Xcode 15, which provides the compiler toolchain for building libvirt
on macOS has switched to a new linker that warns about duplicated
"-lblah" options on the ld commandline. In practice this is impossible
to prevent in a large project, and also harmless.
Fortunately the new ld command also has an option,
-no_warn_duplicate_libraries, that supresses this harmless/pointless
warning, meson has a simple way to check if that option is supported,
and libvirt's meson.build files already have examples of adding an
option to the ld commandline if it's available.
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
meson.build | 4 ++++
src/meson.build | 1 +
tests/meson.build | 1 +
tools/meson.build | 1 +
4 files changed, 7 insertions(+)
diff --git a/meson.build b/meson.build
index dc0969abcc..a39f942617 100644
--- a/meson.build
+++ b/meson.build
@@ -542,6 +542,10 @@ libvirt_no_indirect = cc.get_supported_link_arguments([
'-Wl,--no-copy-dt-needed-entries',
])
+libvirt_no_warn_duplicate_libraries = cc.get_supported_link_arguments([
+ '-Wl,-no_warn_duplicate_libraries',
+])
+
if host_machine.system() == 'windows'
version_script_flags = '-Wl,'
elif host_machine.system() == 'darwin'
diff --git a/src/meson.build b/src/meson.build
index 5fc4d03b4a..6538c43628 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -18,6 +18,7 @@ src_dep = declare_dependency(
link_args: (
libvirt_relro
+ libvirt_no_indirect
+ + libvirt_no_warn_duplicate_libraries
+ coverage_flags
+ driver_modules_flags
+ win32_link_flags
diff --git a/tests/meson.build b/tests/meson.build
index b235c5f4dd..e1cd57654a 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -28,6 +28,7 @@ tests_dep = declare_dependency(
],
link_args: (
libvirt_export_dynamic
+ + libvirt_no_warn_duplicate_libraries
+ libvirt_flat_namespace
+ coverage_flags
),
diff --git a/tools/meson.build b/tools/meson.build
index f2d58cfdcb..c72f760a1d 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -16,6 +16,7 @@ tools_dep = declare_dependency(
libvirt_relro
+ libvirt_no_indirect
+ libvirt_no_undefined
+ + libvirt_no_warn_duplicate_libraries
),
)
--
2.41.0