diff options
author | Matt Johnston <matt@ucc.asn.au> | 2018-02-17 19:29:51 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2018-02-17 19:29:51 +0800 |
commit | 7e8094d53a1c01ac671156ff2e67157b64d01a3a (patch) | |
tree | c88345f5bdd118eb9414dff5ab5c307bb1806c57 /configure.ac | |
parent | f7a664f127d3dfde0e7c7a9ca74b1d14f9a2f983 (diff) | |
parent | f042eb41ab0d31f8ba0c5ccc9c848ad01f08f986 (diff) |
merge from main
--HG--
branch : fuzz
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 114 |
1 files changed, 35 insertions, 79 deletions
diff --git a/configure.ac b/configure.ac index 9fce477..9f92328 100644 --- a/configure.ac +++ b/configure.ac @@ -9,29 +9,36 @@ AC_PREREQ(2.59) AC_INIT AC_CONFIG_SRCDIR(buffer.c) -OLDCFLAGS="$CFLAGS" # Checks for programs. AC_PROG_CC -AC_PROG_MAKE_SET if test -z "$LD" ; then LD=$CC fi AC_SUBST(LD) +AC_DEFUN(DB_TRYADDCFLAGS, +[{ + OLDFLAGS="$CFLAGS" + TESTFLAGS="$1" + CFLAGS="$CFLAGS $TESTFLAGS" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_NOTICE([Setting $TESTFLAGS])], + [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDFLAGS" ] + ) +}]) + # set compile flags prior to other tests if test -z "$OLDCFLAGS" && test "$GCC" = "yes"; then AC_MSG_NOTICE(No \$CFLAGS set... using "-Os -W -Wall" for GCC) - CFLAGS="-Os -W -Wall -Wno-pointer-sign" + CFLAGS="-Os -W -Wall" fi -AC_MSG_CHECKING([if compiler '$CC' supports -fno-strict-overflow]) -OLDCFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -fno-strict-overflow" -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], - [AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no); CFLAGS="$OLDCFLAGS" ] - ) +AC_MSG_NOTICE([Checking if compiler '$CC' supports -Wno-pointer-sign]) +DB_TRYADDCFLAGS([-Wno-pointer-sign]) + +AC_MSG_NOTICE([Checking if compiler '$CC' supports -fno-strict-overflow]) +DB_TRYADDCFLAGS([-fno-strict-overflow]) STATIC=0 AC_ARG_ENABLE(static, @@ -59,13 +66,8 @@ if test "$hardenbuild" -eq 1; then # relocation flags don't make sense for static builds if test "$STATIC" -ne 1; then # pie - OLDCFLAGS="$CFLAGS" - TESTFLAGS="-fPIE" - CFLAGS="$CFLAGS $TESTFLAGS" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], - [AC_MSG_NOTICE([Setting $TESTFLAGS])], - [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDCFLAGS" ] - ) + DB_TRYADDCFLAGS([-fPIE]) + OLDLDFLAGS="$LDFLAGS" TESTFLAGS="-Wl,-pie" LDFLAGS="$LDFLAGS $TESTFLAGS" @@ -107,13 +109,12 @@ if test "$hardenbuild" -eq 1; then ] ) # FORTIFY_SOURCE - OLDCFLAGS="$CFLAGS" - TESTFLAGS="-D_FORTIFY_SOURCE=2" - CFLAGS="$CFLAGS $TESTFLAGS" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], - [AC_MSG_NOTICE([Setting $TESTFLAGS])], - [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDCFLAGS" ] - ) + DB_TRYADDCFLAGS([-D_FORTIFY_SOURCE=2]) + + # Spectre v2 mitigations + DB_TRYADDCFLAGS([-mfunction-return=thunk]) + DB_TRYADDCFLAGS([-mindirect-branch=thunk]) + fi # large file support is useful for scp @@ -269,15 +270,20 @@ AC_ARG_ENABLE(openpty, AC_MSG_NOTICE(Not using openpty) else AC_MSG_NOTICE(Using openpty if available) - AC_SEARCH_LIBS(openpty, util, [AC_DEFINE(HAVE_OPENPTY,1,[Have openpty() function])]) + AC_SEARCH_LIBS(openpty, util, [dropbear_cv_func_have_openpty=yes]) fi ], [ AC_MSG_NOTICE(Using openpty if available) - AC_SEARCH_LIBS(openpty, util, [AC_DEFINE(HAVE_OPENPTY)]) + AC_SEARCH_LIBS(openpty, util, [dropbear_cv_func_have_openpty=yes]) ] ) - + +if test "x$dropbear_cv_func_have_openpty" = "xyes"; then + AC_DEFINE(HAVE_OPENPTY,,Have openpty() function) + no_ptc_check=yes + no_ptmx_check=yes +fi AC_ARG_ENABLE(syslog, [ --disable-syslog Don't include syslog support], @@ -809,61 +815,11 @@ fi AC_EXEEXT -# XXX there must be a nicer way to do this if test $BUNDLED_LIBTOM = 1 ; then -AS_MKDIR_P(libtomcrypt/src/ciphers/aes) -AS_MKDIR_P(libtomcrypt/src/ciphers/safer) -AS_MKDIR_P(libtomcrypt/src/ciphers/twofish) -AS_MKDIR_P(libtomcrypt/src/encauth/ccm) -AS_MKDIR_P(libtomcrypt/src/encauth/eax) -AS_MKDIR_P(libtomcrypt/src/encauth/gcm) -AS_MKDIR_P(libtomcrypt/src/encauth/ocb) -AS_MKDIR_P(libtomcrypt/src/hashes) -AS_MKDIR_P(libtomcrypt/src/hashes/chc) -AS_MKDIR_P(libtomcrypt/src/hashes/helper) -AS_MKDIR_P(libtomcrypt/src/hashes/sha2) -AS_MKDIR_P(libtomcrypt/src/hashes/whirl) -AS_MKDIR_P(libtomcrypt/src/mac/hmac) -AS_MKDIR_P(libtomcrypt/src/mac/omac) -AS_MKDIR_P(libtomcrypt/src/mac/pelican) -AS_MKDIR_P(libtomcrypt/src/mac/pmac) -AS_MKDIR_P(libtomcrypt/src/mac/f9) -AS_MKDIR_P(libtomcrypt/src/mac/xcbc) -AS_MKDIR_P(libtomcrypt/src/math/fp) -AS_MKDIR_P(libtomcrypt/src/misc/base64) -AS_MKDIR_P(libtomcrypt/src/misc/crypt) -AS_MKDIR_P(libtomcrypt/src/misc/mpi) -AS_MKDIR_P(libtomcrypt/src/misc/pkcs5) -AS_MKDIR_P(libtomcrypt/src/modes/cbc) -AS_MKDIR_P(libtomcrypt/src/modes/cfb) -AS_MKDIR_P(libtomcrypt/src/modes/ctr) -AS_MKDIR_P(libtomcrypt/src/modes/ecb) -AS_MKDIR_P(libtomcrypt/src/modes/ofb) -AS_MKDIR_P(libtomcrypt/src/modes/f8) -AS_MKDIR_P(libtomcrypt/src/modes/lrw) -AS_MKDIR_P(libtomcrypt/src/modes/xts) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/bit) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/boolean) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/choice) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/ia5) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/integer) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/object_identifier) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/octet) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/printable_string) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/sequence) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/set) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/short_integer) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/utctime) -AS_MKDIR_P(libtomcrypt/src/pk/asn1/der/utf8) -AS_MKDIR_P(libtomcrypt/src/pk/dh) -AS_MKDIR_P(libtomcrypt/src/pk/dsa) -AS_MKDIR_P(libtomcrypt/src/pk/ecc) -AS_MKDIR_P(libtomcrypt/src/pk/katja) -AS_MKDIR_P(libtomcrypt/src/pk/pkcs1) -AS_MKDIR_P(libtomcrypt/src/pk/rsa) -AS_MKDIR_P(libtomcrypt/src/prngs) +(cd $srcdir; find libtomcrypt -type d) | xargs mkdir -pv LIBTOM_FILES="libtomcrypt/Makefile libtommath/Makefile" fi + AC_CONFIG_HEADER(config.h) AC_CONFIG_FILES(Makefile $LIBTOM_FILES) AC_OUTPUT |