commit 04db8b9ae0a360106143f40a94d4fc2a4e36b77b from: Martijn van Duren date: Thu May 7 06:43:02 2026 UTC Make portable with libbsd 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 #include #include @@ -35,6 +32,10 @@ #include #endif +#ifdef HAVE_LIBBSD +#include +#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 #include 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 +#ifndef NO_TREE_H #include +#endif #include #include @@ -35,6 +36,10 @@ #include #include +#ifdef HAVE_LIBBSD +#include +#endif + #include "opensmtpd.h" #include "ioev.h"