]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix function overrides in unit tests on macOS
authorMichał Kępień <michal@isc.org>
Mon, 28 Sep 2020 07:09:21 +0000 (09:09 +0200)
committerMichał Kępień <michal@isc.org>
Mon, 28 Sep 2020 07:09:21 +0000 (09:09 +0200)
Since Mac OS X 10.1, Mach-O object files are by default built with a
so-called two-level namespace which prevents symbol lookups in BIND unit
tests that attempt to override the implementations of certain library
functions from working as intended.  This feature can be disabled by
passing the "-flat_namespace" flag to the linker.  Fix unit tests
affected by this issue on macOS by adding "-flat_namespace" to LDFLAGS
used for building all object files on that operating system (it is not
enough to only set that flag for the unit test executables).

Makefile.top
configure.ac
fuzz/Makefile.am
lib/bind9/Makefile.am
lib/dns/Makefile.am
lib/irs/Makefile.am
lib/isc/Makefile.am
lib/isccc/Makefile.am
lib/isccfg/Makefile.am
lib/ns/Makefile.am

index 727f08bf493d32f6e60176da4597bf0013ade065..66aaecf7bdace1e4869cff6f431d02e201a02c66 100644 (file)
@@ -11,6 +11,13 @@ AM_CPPFLAGS =                                        \
        -include $(top_builddir)/config.h       \
        -I$(srcdir)/include
 
+AM_LDFLAGS =
+
+if HOST_MACOS
+AM_LDFLAGS +=                                  \
+       -Wl,-flat_namespace
+endif HOST_MACOS
+
 if HAVE_GSSAPI
 AM_CPPFLAGS +=                                 \
        $(GSSAPI_CFLAGS)
index 441e150447110217f48cdc812c554f2079ff6bda..97286bcd98b2ba2aef3e439cdc16d02b368192ff 100644 (file)
@@ -150,6 +150,10 @@ AX_CHECK_COMPILE_FLAG([-Werror -fno-delete-null-pointer-checks],
 AX_CHECK_COMPILE_FLAG([-fdiagnostics-show-option],
                      [STD_CFLAGS="$STD_CFLAGS -fdiagnostics-show-option"])
 
+host_macos=no
+AS_CASE([$host],[*-darwin*],[host_macos=yes])
+AM_CONDITIONAL([HOST_MACOS], [test "$host_macos" = "yes"])
+
 #
 # Change defaults for developers if not explicity set.
 # Needs to be before the option is tested.
index 4ba24e40296d770222254528fd2ea5df37a3c6b4..bf5aa3eeb2ef5ab50e5ba235366b34d19ad4b74d 100644 (file)
@@ -5,7 +5,7 @@ AM_CPPFLAGS +=                          \
        $(LIBDNS_CFLAGS)                \
        -DFUZZDIR=\"$(abs_srcdir)\"
 
-AM_LDFLAGS                           \
+AM_LDFLAGS +=                          \
        $(FUZZ_LDFLAGS)
 
 LDADD =                                        \
index 3501cef49cd70826c1eaa60173f7199141c1c818..6b7edf8c9aba5414e2e03079b7f27f026e4e3831 100644 (file)
@@ -27,6 +27,7 @@ libbind9_la_LIBADD =          \
        $(LIBISCCFG_LIBS)
 
 libbind9_la_LDFLAGS =          \
+       $(AM_LDFLAGS)           \
        $(libbind9_VERSION_INFO)
 
 EXTRA_DIST = api
index 78a2752c90219954b78b96b29d2fd84175aa84e8..73e6bc2f7385fd82ab5da1389a06d04eca52129f 100644 (file)
@@ -287,6 +287,7 @@ libdns_la_CPPFLAGS =                \
        $(LIBLTDL_CFLAGS)
 
 libdns_la_LDFLAGS =            \
+       $(AM_LDFLAGS)           \
        $(libdns_VERSION_INFO)
 
 libdns_la_LIBADD =             \
index 75d514cbcb80d7b803c9f540962a60d0bae4bd16..f7b82b47bc53fb7501e0ed81e9b0cd493665c2c7 100644 (file)
@@ -23,6 +23,7 @@ libirs_la_LIBADD =            \
        $(LIBISCCFG_LIBS)
 
 libirs_la_LDFLAGS =            \
+       $(AM_LDFLAGS)           \
        $(libirs_VERSION_INFO)
 
 
index cde0947bdeb3af9c17536fe42d77e6b2fd95f08b..2c84285b166e85c86d103bbc7b24daed14bd761a 100644 (file)
@@ -227,6 +227,7 @@ libisc_la_CPPFLAGS =                \
        $(ZLIB_CFLAGS)
 
 libisc_la_LDFLAGS =            \
+       $(AM_LDFLAGS)           \
        $(libisc_VERSION_INFO)
 
 libisc_la_LIBADD =             \
index 477cc525fba04dff09614f753a730a40f2836f44..aca06f777fe635f181ec5cb07700ffda4b67dc8b 100644 (file)
@@ -35,6 +35,7 @@ libisccc_la_LIBADD =  \
        $(LIBISC_LIBS)
 
 libisccc_la_LDFLAGS =          \
+       $(AM_LDFLAGS)           \
        $(libisccc_VERSION_INFO)
 
 if HAVE_CMOCKA
index ef0cd16fc8c9534969b612102dd7e46e4f128907..eb4b7d53d9018e3fcac91e5f708ac6aab951f308 100644 (file)
@@ -32,6 +32,7 @@ libisccfg_la_LIBADD = \
        $(LIBDNS_LIBS)
 
 libisccfg_la_LDFLAGS =         \
+       $(AM_LDFLAGS)           \
        $(libisccfg_VERSION_INFO)
 
 if HAVE_CMOCKA
index b2f81ccf086638e85cababc87829a907a4c94796..7f79af429274e4ac24ce88a9e93382813d47f703 100644 (file)
@@ -51,6 +51,7 @@ libns_la_LIBADD =     \
        $(LIBDNS_LIBS)
 
 libns_la_LDFLAGS =             \
+       $(AM_LDFLAGS)           \
        $(libns_VERSION_INFO)
 
 if HAVE_CMOCKA