aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-11-08 17:47:14 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2017-11-08 17:47:14 -0500
commit0e9294a689726b9e35545a3e29292d53c80c798c (patch)
tree6adbaf5885f76c7855e26adf30518acadf5b2aee
parentd7f59347bc06cb26fe3eff283f9104ac1b26d177 (diff)
downloadpostgresql-0e9294a689726b9e35545a3e29292d53c80c798c.tar.gz
postgresql-0e9294a689726b9e35545a3e29292d53c80c798c.zip
Allow --with-bonjour to work with non-macOS implementations of Bonjour.
On macOS the relevant functions require no special library, but elsewhere we need to pull in libdns_sd. Back-patch to supported branches. No docs change since the docs do not suggest that this is a Mac-only feature. Luke Lonergan Discussion: https://postgr.es/m/2D8331C5-D64F-44C1-8717-63EDC6EAF7EB@brightforge.com
-rwxr-xr-xconfigure58
-rw-r--r--configure.in6
2 files changed, 62 insertions, 2 deletions
diff --git a/configure b/configure
index 897b69eab9a..d683cdc736b 100755
--- a/configure
+++ b/configure
@@ -9848,6 +9848,64 @@ else
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DNSServiceRefSockFD" >&5
+$as_echo_n "checking for library containing DNSServiceRefSockFD... " >&6; }
+if ${ac_cv_search_DNSServiceRefSockFD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char DNSServiceRefSockFD ();
+int
+main ()
+{
+return DNSServiceRefSockFD ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dns_sd; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_DNSServiceRefSockFD=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_DNSServiceRefSockFD+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_DNSServiceRefSockFD+:} false; then :
+
+else
+ ac_cv_search_DNSServiceRefSockFD=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DNSServiceRefSockFD" >&5
+$as_echo "$ac_cv_search_DNSServiceRefSockFD" >&6; }
+ac_res=$ac_cv_search_DNSServiceRefSockFD
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+else
+ as_fn_error $? "could not find function 'DNSServiceRefSockFD' required for Bonjour" "$LINENO" 5
+fi
+
fi
# for contrib/uuid-ossp
diff --git a/configure.in b/configure.in
index 72d8f7cd9c6..0714c5d2051 100644
--- a/configure.in
+++ b/configure.in
@@ -1031,8 +1031,8 @@ if test "$with_openssl" = yes ; then
AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
else
- AC_SEARCH_LIBS(CRYPTO_new_ex_data, eay32 crypto, [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])])
- AC_SEARCH_LIBS(SSL_new, ssleay32 ssl, [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])])
+ AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])])
+ AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])])
fi
AC_CHECK_FUNCS([SSL_get_current_compression])
# Functions introduced in OpenSSL 1.1.0. We used to check for
@@ -1203,6 +1203,8 @@ fi
if test "$with_bonjour" = yes ; then
AC_CHECK_HEADER(dns_sd.h, [], [AC_MSG_ERROR([header file <dns_sd.h> is required for Bonjour])])
+ AC_SEARCH_LIBS(DNSServiceRefSockFD, dns_sd, [],
+ [AC_MSG_ERROR([could not find function 'DNSServiceRefSockFD' required for Bonjour])])
fi
# for contrib/uuid-ossp