Set FLAT_NAMESPACE_FLAGS to -Wl,-flat_namespace in configure only for
macOS and use it unconditionally in Makefiles.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
configure.ac | 13 +++++++++++++
src/Makefile.am | 10 +++-------
tests/Makefile.am | 7 +++----
3 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/configure.ac b/configure.ac
index e4c0bea94df..75695252898 100644
--- a/configure.ac
+++ b/configure.ac
@@ -189,6 +189,19 @@ esac
AC_MSG_RESULT([$VERSION_SCRIPT_FLAGS])
AC_SUBST([VERSION_SCRIPT_FLAGS])
+dnl macOS has two-level namespaces by default.
+dnl Override it to allow symbol replacement with DYLD_INSERT_LIBRARIES
+case "$host" in
+ *-*-darwin*)
+ FLAT_NAMESPACE_FLAGS=-Wl,-flat_namespace
+ ;;
+ * )
+ FLAT_NAMESPACE_FLAGS=""
+ ;;
+esac
+AC_MSG_RESULT([$FLAT_NAMESPACE_FLAGS])
+AC_SUBST([FLAT_NAMESPACE_FLAGS])
+
dnl Specify if we rely on ifconfig instead of iproute2 (e.g. in case
dnl we're working on BSD)
want_ifconfig=no
diff --git a/src/Makefile.am b/src/Makefile.am
index 447cff81659..b893f4179e8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -431,13 +431,9 @@ libvirt_la_LDFLAGS = \
-version-info $(LIBVIRT_VERSION_INFO) \
$(LIBVIRT_NODELETE) \
$(NO_UNDEFINED_LDFLAGS) \
- $(AM_LDFLAGS)
-if WITH_MACOS
-# macOS has two-level namespaces by default.
-# Override it to allow symbol replacement with DYLD_INSERT_LIBRARIES
-libvirt_la_LDFLAGS += -Wl,-flat_namespace
-endif WITH_MACOS
-libvirt_la_LDFLAGS += $(NULL)
+ $(FLAT_NAMESPACE_FLAGS) \
+ $(AM_LDFLAGS) \
+ $(NULL)
libvirt_la_LIBADD += \
$(DLOPEN_LIBS)
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 65d1ceeefdf..06d70ab559c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -55,10 +55,9 @@ MOCKLIBS_LDFLAGS = -avoid-version \
DRIVERLIB_LDFLAGS = \
-avoid-version \
-rpath /evil/libtool/hack/to/force/shared/lib/creation \
- $(MINGW_EXTRA_LDFLAGS)
-if WITH_MACOS
-DRIVERLIB_LDFLAGS += -Wl,-flat_namespace
-endif WITH_MACOS
+ $(MINGW_EXTRA_LDFLAGS) \
+ $(FLAT_NAMESPACE_FLAGS) \
+ $(NULL)
PROBES_O =
if WITH_DTRACE_PROBES
--
2.26.2