From 387fb3ca464188a8df0dcfe98e78601a3f43b7f1 Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Tue, 8 Oct 2019 06:51:36 +0200 Subject: configure: Check for FreeBSD pre-11 to detect SOCK_RAW behavior Signed-off-by: Joachim Nilsson --- configure.ac | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index d1fc873..a63c176 100644 --- a/configure.ac +++ b/configure.ac @@ -190,13 +190,20 @@ AS_CASE([$target_os], ], [*freebsd*], [ - AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1, - [Define if libnet should byteswap data.]) - AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, - [Define if the sockaddr structure includes a sa_len member.]) - - PKG_CONFIG_DEFINES="-DLIBNET_BSD_BYTE_SWAP -DHAVE_SOCKADDR_SA_LEN" - ], + PKG_CONFIG_DEFINES="-DHAVE_SOCKADDR_SA_LEN" + AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [FreeBSD has sa_len in struct sockaddr.]) + + AC_MSG_CHECKING([FreeBSD version, is SOCK_RAW really raw?]) + AC_TRY_COMPILE([#include ], [ +#if (__FreeBSD_version >= 1100030) + return 0; +#else +#error FreeBSD pre-11, SOCK_RAW isn't really raw, see https://www.freebsd.org/cgi/man.cgi?ip(4)#end +#endif], + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no]) + AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1, [FreeBSD pre-11, libnet must byteswap raw ip_len, ip_off]) + PKG_CONFIG_DEFINES="${PKG_CONFIG_DEFINES} -DLIBNET_BSD_BYTE_SWAP")], [*netbsd*], [ AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1, -- cgit v1.2.1