From 68de35a6a01e2a1fe732e156b73f800bb672a421 Mon Sep 17 00:00:00 2001
From: "David M. Lee" <dlee@respoke.io>
Date: Tue, 6 Jun 2017 14:54:43 -0500
Subject: [PATCH] CFLAGS for BIND8 support

Some systems (like macOS) require BIND_8_COMPAT to be defined so that
the nameser libraries are, well, BIND8 compatible.

Change-Id: If79fc27a64f90de1835b5aa3aadfa9be22bd16b0
---
 Makefile     |  3 +++
 configure    | 28 ++++++++++++++++++++++++++++
 configure.ac | 12 ++++++++++++
 makeopts.in  |  2 ++
 4 files changed, 45 insertions(+)

diff --git a/Makefile b/Makefile
index 4f7ce71b1d..bb8de13224 100644
--- a/Makefile
+++ b/Makefile
@@ -124,6 +124,9 @@ _ASTLDFLAGS+=$(LDOPTS)
 # libxml2 cflags
 _ASTCFLAGS+=$(LIBXML2_INCLUDE)
 
+# BIND_8_COMPAT
+_ASTCFLAGS+=$(BIND8_CFLAGS)
+
 #Uncomment this to see all build commands instead of 'quiet' output
 #NOISY_BUILD=yes
 
diff --git a/configure b/configure
index c0d6a8f1d1..3f4f3e1aeb 100755
--- a/configure
+++ b/configure
@@ -697,6 +697,7 @@ PBX_IP_MTU_DISCOVER
 PBX_RTLD_NOLOAD
 PBX_GLOB_BRACE
 PBX_GLOB_NOMAGIC
+BIND8_CFLAGS
 AST_RPATH
 AST_NATIVE_ARCH
 AST_SHADOW_WARNINGS
@@ -19183,6 +19184,33 @@ fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BIND_8_COMPAT required" >&5
+$as_echo_n "checking for BIND_8_COMPAT required... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#undef BIND_8_COMPAT
+#include <arpa/nameser.h>
+
+int
+main ()
+{
+int x = NXDOMAIN
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+BIND8_CFLAGS=-DBIND_8_COMPAT
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
 
     if test "x${PBX_GLOB_NOMAGIC}" != "x1"; then
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_NOMAGIC in glob.h" >&5
diff --git a/configure.ac b/configure.ac
index e36f2de6d0..c18f12232d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1333,6 +1333,18 @@ AC_LINK_IFELSE(
 	AC_MSG_RESULT(no)
 )
 
+AC_MSG_CHECKING(for BIND_8_COMPAT required)
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+[[
+#undef BIND_8_COMPAT
+#include <arpa/nameser.h>
+]],
+[[int x = NXDOMAIN]])],
+AC_MSG_RESULT(no),
+AC_MSG_RESULT(yes)
+[BIND8_CFLAGS=-DBIND_8_COMPAT])
+AC_SUBST(BIND8_CFLAGS)
+
 AST_C_DEFINE_CHECK([GLOB_NOMAGIC], [GLOB_NOMAGIC], [glob.h])
 
 AST_C_DEFINE_CHECK([GLOB_BRACE], [GLOB_BRACE], [glob.h])
diff --git a/makeopts.in b/makeopts.in
index 56bf11ef78..8f83ed9718 100644
--- a/makeopts.in
+++ b/makeopts.in
@@ -62,6 +62,8 @@ HOST_OS=@HOST_OS@
 OSARCH=@OSARCH@
 OSREV=@PBX_OSREV@
 
+BIND8_CFLAGS=@BIND8_CFLAGS@
+
 PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
 PTHREAD_LIBS=@PTHREAD_LIBS@
 
-- 
GitLab