From 9231566146c0614d1339dd94cf98f82f1d1baee2 Mon Sep 17 00:00:00 2001 From: Laine Stump Date: Fri, 3 Nov 2023 13:07:19 -0400 Subject: [PATCH] build: suppress "ignoring duplicate libraries" warning on macOS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Daniel P. Berrangé Reviewed-by: Andrea Bolognani --- 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 755e9187e2..62481a008d 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 ), )