2015-05-01 07:18:12 -05:00
|
|
|
AC_DEFUN([CHECK_OS_OPTIONS], [
|
|
|
|
|
2015-07-16 11:34:07 -05:00
|
|
|
CFLAGS="$CFLAGS -Wall -std=gnu99 -fno-strict-aliasing"
|
2016-02-15 13:39:06 -06:00
|
|
|
BUILD_NC=yes
|
2015-05-01 07:18:12 -05:00
|
|
|
|
|
|
|
case $host_os in
|
|
|
|
*aix*)
|
|
|
|
HOST_OS=aix
|
|
|
|
if test "`echo $CC | cut -d ' ' -f 1`" != "gcc" ; then
|
2015-07-16 11:34:07 -05:00
|
|
|
CFLAGS="-qnoansialias $USER_CFLAGS"
|
2015-05-01 07:18:12 -05:00
|
|
|
fi
|
2019-01-01 22:59:47 -06:00
|
|
|
AC_SUBST([PLATFORM_LDADD], ['-lperfstat'])
|
2015-05-01 07:18:12 -05:00
|
|
|
;;
|
|
|
|
*cygwin*)
|
|
|
|
HOST_OS=cygwin
|
2017-07-16 23:39:42 +09:00
|
|
|
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
|
2015-05-01 07:18:12 -05:00
|
|
|
;;
|
|
|
|
*darwin*)
|
|
|
|
HOST_OS=darwin
|
|
|
|
HOST_ABI=macosx
|
2016-12-10 20:58:04 +01:00
|
|
|
#
|
|
|
|
# Don't use arc4random on systems before 10.12 because of
|
2016-02-15 13:39:06 -06:00
|
|
|
# weak seed on failure to open /dev/random, based on latest
|
|
|
|
# public source:
|
|
|
|
# http://www.opensource.apple.com/source/Libc/Libc-997.90.3/gen/FreeBSD/arc4random.c
|
2016-12-10 20:58:04 +01:00
|
|
|
#
|
|
|
|
# We use the presence of getentropy() to detect 10.12. The
|
|
|
|
# following check take into account that:
|
|
|
|
#
|
|
|
|
# - iOS <= 10.1 fails because of missing getentropy and
|
|
|
|
# hence they miss sys/random.h
|
|
|
|
#
|
|
|
|
# - in macOS 10.12 getentropy is not tagged as introduced in
|
|
|
|
# 10.12 so we cannot use it for target < 10.12
|
|
|
|
#
|
2016-11-06 10:10:10 +01:00
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
2016-12-10 20:58:04 +01:00
|
|
|
#include <AvailabilityMacros.h>
|
2016-11-06 10:10:10 +01:00
|
|
|
#include <unistd.h>
|
2016-12-10 20:58:04 +01:00
|
|
|
#include <sys/random.h> /* Systems without getentropy() should die here */
|
|
|
|
|
|
|
|
/* Based on: https://gitweb.torproject.org/tor.git/commit/?id=16fcbd21 */
|
|
|
|
#ifndef MAC_OS_X_VERSION_10_12
|
|
|
|
# define MAC_OS_X_VERSION_10_12 101200
|
|
|
|
#endif
|
|
|
|
#if defined(MAC_OS_X_VERSION_MIN_REQUIRED)
|
|
|
|
# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12
|
|
|
|
# error "Running on Mac OSX 10.11 or earlier"
|
|
|
|
# endif
|
|
|
|
#endif
|
2016-11-06 10:10:10 +01:00
|
|
|
]], [[
|
|
|
|
char buf[1]; getentropy(buf, 1);
|
|
|
|
]])],
|
|
|
|
[ USE_BUILTIN_ARC4RANDOM=no ],
|
|
|
|
[ USE_BUILTIN_ARC4RANDOM=yes ]
|
|
|
|
)
|
2016-12-10 20:58:04 +01:00
|
|
|
AC_MSG_CHECKING([whether to use builtin arc4random])
|
|
|
|
AC_MSG_RESULT([$USE_BUILTIN_ARC4RANDOM])
|
2016-08-09 15:04:45 -07:00
|
|
|
# Not available on iOS
|
|
|
|
AC_CHECK_HEADER([arpa/telnet.h], [], [BUILD_NC=no])
|
2015-05-01 07:18:12 -05:00
|
|
|
;;
|
|
|
|
*freebsd*)
|
|
|
|
HOST_OS=freebsd
|
|
|
|
HOST_ABI=elf
|
2016-02-15 13:39:06 -06:00
|
|
|
# fork detection missing, weak seed on failure
|
|
|
|
# https://svnweb.freebsd.org/base/head/lib/libc/gen/arc4random.c?revision=268642&view=markup
|
|
|
|
USE_BUILTIN_ARC4RANDOM=yes
|
2015-05-01 07:18:12 -05:00
|
|
|
AC_SUBST([PROG_LDADD], ['-lthr'])
|
|
|
|
;;
|
|
|
|
*hpux*)
|
|
|
|
HOST_OS=hpux;
|
2021-11-23 13:27:17 +09:00
|
|
|
if test "`echo $host_os | cut -c 1-4`" = "ia64" ; then
|
|
|
|
if test "`echo $CC | cut -d ' ' -f 1`" = "gcc" ; then
|
|
|
|
CFLAGS="$CFLAGS -mlp64"
|
|
|
|
else
|
|
|
|
CFLAGS="+DD64"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if ! test "`echo $CC | cut -d ' ' -f 1`" = "gcc" ; then
|
|
|
|
CFLAGS="-g -O2 +Otype_safety=off $CFLAGS $USER_CFLAGS"
|
2015-05-01 07:18:12 -05:00
|
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D__STRICT_ALIGNMENT"
|
|
|
|
;;
|
|
|
|
*linux*)
|
|
|
|
HOST_OS=linux
|
|
|
|
HOST_ABI=elf
|
|
|
|
CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE"
|
|
|
|
;;
|
2019-10-20 20:22:22 +02:00
|
|
|
*midipix*)
|
|
|
|
HOST_OS=midipix
|
|
|
|
CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE"
|
|
|
|
;;
|
2015-05-01 07:18:12 -05:00
|
|
|
*netbsd*)
|
2016-02-15 13:39:06 -06:00
|
|
|
HOST_OS=netbsd
|
|
|
|
HOST_ABI=elf
|
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
2016-01-03 20:47:20 -06:00
|
|
|
#include <sys/param.h>
|
|
|
|
#if __NetBSD_Version__ < 700000001
|
|
|
|
undefined
|
|
|
|
#endif
|
|
|
|
]], [[]])],
|
|
|
|
[ USE_BUILTIN_ARC4RANDOM=no ],
|
|
|
|
[ USE_BUILTIN_ARC4RANDOM=yes ]
|
2016-02-15 13:39:06 -06:00
|
|
|
)
|
2015-05-01 07:18:12 -05:00
|
|
|
CPPFLAGS="$CPPFLAGS -D_OPENBSD_SOURCE"
|
|
|
|
;;
|
|
|
|
*openbsd* | *bitrig*)
|
2015-09-12 10:51:11 -05:00
|
|
|
HOST_OS=openbsd
|
2015-05-01 07:18:12 -05:00
|
|
|
HOST_ABI=elf
|
|
|
|
AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD gcc has bounded])
|
2019-02-09 09:03:13 -06:00
|
|
|
AC_DEFINE([HAVE_ATTRIBUTE__DEAD], [1], [OpenBSD gcc has __dead])
|
2015-05-01 07:18:12 -05:00
|
|
|
;;
|
|
|
|
*mingw*)
|
|
|
|
HOST_OS=win
|
2019-01-20 19:59:46 -06:00
|
|
|
HOST_ABI=mingw64
|
2016-02-15 13:39:06 -06:00
|
|
|
BUILD_NC=no
|
2015-05-01 07:18:12 -05:00
|
|
|
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_POSIX -D_POSIX_SOURCE -D__USE_MINGW_ANSI_STDIO"
|
|
|
|
CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS"
|
2018-03-14 07:29:04 -05:00
|
|
|
CPPFLAGS="$CPPFLAGS -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600"
|
2019-07-14 18:37:59 +09:00
|
|
|
CPPFLAGS="$CPPFLAGS"
|
2020-11-11 05:39:56 -06:00
|
|
|
AC_SUBST([PLATFORM_LDADD], ['-lws2_32 -lbcrypt'])
|
2015-05-01 07:18:12 -05:00
|
|
|
;;
|
|
|
|
*solaris*)
|
|
|
|
HOST_OS=solaris
|
|
|
|
HOST_ABI=elf
|
|
|
|
CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP"
|
2019-04-23 01:54:33 -05:00
|
|
|
AC_SUBST([PLATFORM_LDADD], ['-ldl -lnsl -lsocket'])
|
2015-05-01 07:18:12 -05:00
|
|
|
;;
|
|
|
|
*) ;;
|
|
|
|
esac
|
|
|
|
|
2021-04-05 02:32:35 -05:00
|
|
|
# Check if time_t is sized correctly
|
|
|
|
AC_CHECK_SIZEOF([time_t], [time.h])
|
|
|
|
AM_CONDITIONAL([SMALL_TIME_T], [test "$ac_cv_sizeof_time_t" = "4"])
|
|
|
|
if test "$ac_cv_sizeof_time_t" = "4"; then
|
|
|
|
AC_DEFINE([SMALL_TIME_T])
|
|
|
|
echo " ** Warning, this system is unable to represent times past 2038"
|
|
|
|
echo " ** It will behave incorrectly when handling valid RFC5280 dates"
|
|
|
|
|
|
|
|
if test "$host_os" = "mingw32" ; then
|
|
|
|
echo " **"
|
|
|
|
echo " ** You can solve this by adjusting the build flags in your"
|
|
|
|
echo " ** mingw-w64 toolchain. Refer to README.windows for details."
|
|
|
|
fi
|
|
|
|
fi
|
2015-12-07 08:24:41 -06:00
|
|
|
|
2015-05-01 07:18:12 -05:00
|
|
|
AM_CONDITIONAL([HOST_AIX], [test x$HOST_OS = xaix])
|
|
|
|
AM_CONDITIONAL([HOST_CYGWIN], [test x$HOST_OS = xcygwin])
|
|
|
|
AM_CONDITIONAL([HOST_DARWIN], [test x$HOST_OS = xdarwin])
|
|
|
|
AM_CONDITIONAL([HOST_FREEBSD], [test x$HOST_OS = xfreebsd])
|
|
|
|
AM_CONDITIONAL([HOST_HPUX], [test x$HOST_OS = xhpux])
|
|
|
|
AM_CONDITIONAL([HOST_LINUX], [test x$HOST_OS = xlinux])
|
2019-10-20 20:22:22 +02:00
|
|
|
AM_CONDITIONAL([HOST_MIDIPIX], [test x$HOST_OS = xmidipix])
|
2015-05-01 07:18:12 -05:00
|
|
|
AM_CONDITIONAL([HOST_NETBSD], [test x$HOST_OS = xnetbsd])
|
2015-09-12 10:51:11 -05:00
|
|
|
AM_CONDITIONAL([HOST_OPENBSD], [test x$HOST_OS = xopenbsd])
|
2015-05-01 07:18:12 -05:00
|
|
|
AM_CONDITIONAL([HOST_SOLARIS], [test x$HOST_OS = xsolaris])
|
|
|
|
AM_CONDITIONAL([HOST_WIN], [test x$HOST_OS = xwin])
|
|
|
|
])
|