Commit Diff


commit - 3914f55ef303013ce8757ada17174cb988228cf7
commit + 04db8b9ae0a360106143f40a94d4fc2a4e36b77b
blob - 37e1624ad90be4faf1ecf4153b07badb070e7982
blob + 3838b41fce094d1dd8ea8bac701fc4f4a1c6089c
--- configure.ac
+++ configure.ac
@@ -8,14 +8,35 @@ LT_INIT
 
 PKG_PROG_PKG_CONFIG
 
+need_libbsd=no
+AC_CHECK_FUNCS([recallocarray, strtonum],
+	, [need_libbsd=yes])
+AC_CHECK_HEADER(sys/tree.h, 
+	, [
+		need_libbsd=yes
+		CFLAGS="-DNO_TREE_H $CFLAGS"
+	])
+
+AS_IF([test "$need_libbsd" = "yes"], [
+	PKG_CHECK_MODULES([libbsd], [libbsd], [
+		CFLAGS="-DHAVE_LIBBSD $libbsd_CFLAGS $CFLAGS"
+		LIBS="libbsd_LIBS $LIBS"
+	], [AC_MSG_ERROR([requires libbsd])])
+], )
+
 case "$host_os" in
+*linux*)
+	CFLAGS="-D_DEFAULT_SOURCE -D_XOPEN_SOURCE $CFLAGS"
+	;;
+esac
+
+case "$host_os" in
 *openbsd*)
 	AC_SEARCH_LIBS([event_init], [event], [],
 		[AC_MSG_ERROR([requires libevent])])
 	;;
 *)
 	PKG_CHECK_MODULES([libevent2], [libevent_core >= 2], [
-		AC_DEFINE([HAVE_EVENT2], 1, [1 if using event2])
 		CFLAGS="$libevent2_CFLAGS $CFLAGS"
 		LIBS="$libevent2_LIBS $LIBS"
 	], [AC_MSG_ERROR([requires libevent])])
blob - 3803a9b49de7428460bf7ab04d27e950eb459ccd
blob + 53247db346db53374b13c862b595cd26530dd5fc
--- iobuf.c
+++ iobuf.c
@@ -15,9 +15,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE 1
-#define _BSD_SOURCE 1
-
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/uio.h>
@@ -35,6 +32,10 @@
 #include <openssl/ssl.h>
 #endif
 
+#ifdef HAVE_LIBBSD
+#include <bsd/bsd.h>
+#endif
+
 #include "iobuf.h"
 
 #define IOBUF_MAX	65536
blob - 349e5abf5f11ce0eafd01d9c591a4d1764486548
blob + 6d699ccd3764c5678db80bcc7103c1dbc0a4e1d5
--- ioev.c
+++ ioev.c
@@ -14,8 +14,6 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-#define _GNU_SOURCE 1
-#define _BSD_SOURCE 1
 
 #include <sys/types.h>
 #include <sys/queue.h>
blob - 13dfc078ac3943b3e013f4317db6f62aac2fb7c9
blob + bb292b4211350f0704976fcbe3783ad25dde46df
--- opensmtpd.c
+++ opensmtpd.c
@@ -13,10 +13,11 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-#define _GNU_SOURCE 1
 
 #include <sys/time.h>
+#ifndef NO_TREE_H
 #include <sys/tree.h>
+#endif
 #include <sys/socket.h>
 #include <sys/un.h>
 
@@ -35,6 +36,10 @@
 #include <syslog.h>
 #include <unistd.h>
 
+#ifdef HAVE_LIBBSD
+#include <bsd/bsd.h>
+#endif
+
 #include "opensmtpd.h"
 #include "ioev.h"