2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-22 10:10:06 +00:00

Fix function overrides in unit tests on macOS

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).
This commit is contained in:
Michał Kępień 2020-09-28 09:09:21 +02:00
parent 8bdba2edeb
commit b60d7345ed
10 changed files with 19 additions and 1 deletions

View 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)

View 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.

View File

@ -5,7 +5,7 @@ AM_CPPFLAGS += \
$(LIBDNS_CFLAGS) \
-DFUZZDIR=\"$(abs_srcdir)\"
AM_LDFLAGS = \
AM_LDFLAGS += \
$(FUZZ_LDFLAGS)
LDADD = \

View File

@ -27,6 +27,7 @@ libbind9_la_LIBADD = \
$(LIBISCCFG_LIBS)
libbind9_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(libbind9_VERSION_INFO)
EXTRA_DIST = api

View File

@ -287,6 +287,7 @@ libdns_la_CPPFLAGS = \
$(LIBLTDL_CFLAGS)
libdns_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(libdns_VERSION_INFO)
libdns_la_LIBADD = \

View File

@ -23,6 +23,7 @@ libirs_la_LIBADD = \
$(LIBISCCFG_LIBS)
libirs_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(libirs_VERSION_INFO)

View File

@ -227,6 +227,7 @@ libisc_la_CPPFLAGS = \
$(ZLIB_CFLAGS)
libisc_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(libisc_VERSION_INFO)
libisc_la_LIBADD = \

View File

@ -35,6 +35,7 @@ libisccc_la_LIBADD = \
$(LIBISC_LIBS)
libisccc_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(libisccc_VERSION_INFO)
if HAVE_CMOCKA

View File

@ -32,6 +32,7 @@ libisccfg_la_LIBADD = \
$(LIBDNS_LIBS)
libisccfg_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(libisccfg_VERSION_INFO)
if HAVE_CMOCKA

View File

@ -51,6 +51,7 @@ libns_la_LIBADD = \
$(LIBDNS_LIBS)
libns_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(libns_VERSION_INFO)
if HAVE_CMOCKA