diff options
author | Joachim Nilsson <troglobit@gmail.com> | 2019-10-08 06:51:36 +0200 |
---|---|---|
committer | Joachim Nilsson <troglobit@gmail.com> | 2019-10-08 06:51:36 +0200 |
commit | 387fb3ca464188a8df0dcfe98e78601a3f43b7f1 (patch) | |
tree | 32e7ff5d63824025be4100ebc0572adad02a3a8d | |
parent | 067fb397def8faa55c2a721a05c8884517240464 (diff) | |
download | libnet-387fb3ca464188a8df0dcfe98e78601a3f43b7f1.tar.gz |
configure: Check for FreeBSD pre-11 to detect SOCK_RAW behavior
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
-rw-r--r-- | configure.ac | 21 |
1 files 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 <sys/param.h>], [ +#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, |