summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac135
1 files changed, 120 insertions, 15 deletions
diff --git a/configure.ac b/configure.ac
index 5a7f83bf9..991e0fef3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
1# $Id: configure.ac,v 1.383 2007/08/10 04:36:12 dtucker Exp $ 1# $Id: configure.ac,v 1.409 2008/07/09 11:07:19 djm Exp $
2# 2#
3# Copyright (c) 1999-2004 Damien Miller 3# Copyright (c) 1999-2004 Damien Miller
4# 4#
@@ -15,7 +15,7 @@
15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 16
17AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) 17AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org)
18AC_REVISION($Revision: 1.383 $) 18AC_REVISION($Revision: 1.409 $)
19AC_CONFIG_SRCDIR([ssh.c]) 19AC_CONFIG_SRCDIR([ssh.c])
20 20
21AC_CONFIG_HEADER(config.h) 21AC_CONFIG_HEADER(config.h)
@@ -90,6 +90,13 @@ AC_C_INLINE
90 90
91AC_CHECK_DECL(LLONG_MAX, have_llong_max=1, , [#include <limits.h>]) 91AC_CHECK_DECL(LLONG_MAX, have_llong_max=1, , [#include <limits.h>])
92 92
93use_stack_protector=1
94AC_ARG_WITH(stackprotect,
95 [ --without-stackprotect Don't use compiler's stack protection], [
96 if test "x$withval" = "xno"; then
97 use_stack_protector=0
98 fi ])
99
93if test "$GCC" = "yes" || test "$GCC" = "egcs"; then 100if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
94 CFLAGS="$CFLAGS -Wall -Wpointer-arith -Wuninitialized" 101 CFLAGS="$CFLAGS -Wall -Wpointer-arith -Wuninitialized"
95 GCC_VER=`$CC -v 2>&1 | $AWK '/gcc version /{print $3}'` 102 GCC_VER=`$CC -v 2>&1 | $AWK '/gcc version /{print $3}'`
@@ -100,11 +107,61 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
100 no_attrib_nonnull=1 107 no_attrib_nonnull=1
101 ;; 108 ;;
102 2.*) no_attrib_nonnull=1 ;; 109 2.*) no_attrib_nonnull=1 ;;
103 3.*) CFLAGS="$CFLAGS -Wsign-compare" ;; 110 3.*) CFLAGS="$CFLAGS -Wsign-compare -Wformat-security" ;;
104 4.*) CFLAGS="$CFLAGS -Wsign-compare -Wno-pointer-sign" ;; 111 4.*) CFLAGS="$CFLAGS -Wsign-compare -Wno-pointer-sign -Wformat-security" ;;
105 *) ;; 112 *) ;;
106 esac 113 esac
107 114
115 AC_MSG_CHECKING(if $CC accepts -fno-builtin-memset)
116 saved_CFLAGS="$CFLAGS"
117 CFLAGS="$CFLAGS -fno-builtin-memset"
118 AC_LINK_IFELSE( [AC_LANG_SOURCE([[
119#include <string.h>
120int main(void){char b[10]; memset(b, 0, sizeof(b));}
121 ]])],
122 [ AC_MSG_RESULT(yes) ],
123 [ AC_MSG_RESULT(no)
124 CFLAGS="$saved_CFLAGS" ]
125)
126
127 # -fstack-protector-all doesn't always work for some GCC versions
128 # and/or platforms, so we test if we can. If it's not supported
129 # on a give platform gcc will emit a warning so we use -Werror.
130 if test "x$use_stack_protector" = "x1"; then
131 for t in -fstack-protector-all -fstack-protector; do
132 AC_MSG_CHECKING(if $CC supports $t)
133 saved_CFLAGS="$CFLAGS"
134 saved_LDFLAGS="$LDFLAGS"
135 CFLAGS="$CFLAGS $t -Werror"
136 LDFLAGS="$LDFLAGS $t -Werror"
137 AC_LINK_IFELSE(
138 [AC_LANG_SOURCE([
139#include <stdlib.h>
140int main(void){return 0;}
141 ])],
142 [ AC_MSG_RESULT(yes)
143 CFLAGS="$saved_CFLAGS $t"
144 LDFLAGS="$saved_LDFLAGS $t"
145 AC_MSG_CHECKING(if $t works)
146 AC_RUN_IFELSE(
147 [AC_LANG_SOURCE([
148#include <stdlib.h>
149int main(void){exit(0);}
150 ])],
151 [ AC_MSG_RESULT(yes)
152 break ],
153 [ AC_MSG_RESULT(no) ],
154 [ AC_MSG_WARN([cross compiling: cannot test])
155 break ]
156 )
157 ],
158 [ AC_MSG_RESULT(no) ]
159 )
160 CFLAGS="$saved_CFLAGS"
161 LDFLAGS="$saved_LDFLAGS"
162 done
163 fi
164
108 if test -z "$have_llong_max"; then 165 if test -z "$have_llong_max"; then
109 # retry LLONG_MAX with -std=gnu99, needed on some Linuxes 166 # retry LLONG_MAX with -std=gnu99, needed on some Linuxes
110 unset ac_cv_have_decl_LLONG_MAX 167 unset ac_cv_have_decl_LLONG_MAX
@@ -222,7 +279,9 @@ AC_CHECK_HEADERS( \
222 sys/cdefs.h \ 279 sys/cdefs.h \
223 sys/dir.h \ 280 sys/dir.h \
224 sys/mman.h \ 281 sys/mman.h \
282 sys/mount.h \
225 sys/ndir.h \ 283 sys/ndir.h \
284 sys/poll.h \
226 sys/prctl.h \ 285 sys/prctl.h \
227 sys/pstat.h \ 286 sys/pstat.h \
228 sys/select.h \ 287 sys/select.h \
@@ -230,6 +289,7 @@ AC_CHECK_HEADERS( \
230 sys/stream.h \ 289 sys/stream.h \
231 sys/stropts.h \ 290 sys/stropts.h \
232 sys/strtio.h \ 291 sys/strtio.h \
292 sys/statvfs.h \
233 sys/sysmacros.h \ 293 sys/sysmacros.h \
234 sys/time.h \ 294 sys/time.h \
235 sys/timers.h \ 295 sys/timers.h \
@@ -343,7 +403,7 @@ int main(void) { exit(0); }
343 [], 403 [],
344 [#include <usersec.h>] 404 [#include <usersec.h>]
345 ) 405 )
346 AC_CHECK_FUNCS(setauthdb) 406 AC_CHECK_FUNCS(getgrset setauthdb)
347 AC_CHECK_DECL(F_CLOSEM, 407 AC_CHECK_DECL(F_CLOSEM,
348 AC_DEFINE(HAVE_FCNTL_CLOSEM, 1, [Use F_CLOSEM fcntl for closefrom]), 408 AC_DEFINE(HAVE_FCNTL_CLOSEM, 1, [Use F_CLOSEM fcntl for closefrom]),
349 [], 409 [],
@@ -405,6 +465,7 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
405 AC_DEFINE(SETEUID_BREAKS_SETUID) 465 AC_DEFINE(SETEUID_BREAKS_SETUID)
406 AC_DEFINE(BROKEN_SETREUID) 466 AC_DEFINE(BROKEN_SETREUID)
407 AC_DEFINE(BROKEN_SETREGID) 467 AC_DEFINE(BROKEN_SETREGID)
468 AC_DEFINE(BROKEN_GLOB, 1, [OS X glob does not do what we expect])
408 AC_DEFINE_UNQUOTED(BIND_8_COMPAT, 1, 469 AC_DEFINE_UNQUOTED(BIND_8_COMPAT, 1,
409 [Define if your resolver libs need this for getrrsetbyname]) 470 [Define if your resolver libs need this for getrrsetbyname])
410 AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way]) 471 AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way])
@@ -412,6 +473,11 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
412 [Use tunnel device compatibility to OpenBSD]) 473 [Use tunnel device compatibility to OpenBSD])
413 AC_DEFINE(SSH_TUN_PREPEND_AF, 1, 474 AC_DEFINE(SSH_TUN_PREPEND_AF, 1,
414 [Prepend the address family to IP tunnel traffic]) 475 [Prepend the address family to IP tunnel traffic])
476 m4_pattern_allow(AU_IPv)
477 AC_CHECK_DECL(AU_IPv4, [],
478 AC_DEFINE(AU_IPv4, 0, [System only supports IPv4 audit records])
479 [#include <bsm/audit.h>]
480 )
415 AC_MSG_CHECKING(if we have the Security Authorization Session API) 481 AC_MSG_CHECKING(if we have the Security Authorization Session API)
416 AC_TRY_COMPILE([#include <Security/AuthSession.h>], 482 AC_TRY_COMPILE([#include <Security/AuthSession.h>],
417 [SessionCreate(0, 0);], 483 [SessionCreate(0, 0);],
@@ -436,7 +502,7 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
436 fi], 502 fi],
437 [AC_MSG_RESULT(no)] 503 [AC_MSG_RESULT(no)]
438 ) 504 )
439 ;; 505 ;;
440*-*-dragonfly*) 506*-*-dragonfly*)
441 SSHDLIBS="$SSHDLIBS -lcrypt" 507 SSHDLIBS="$SSHDLIBS -lcrypt"
442 ;; 508 ;;
@@ -531,7 +597,6 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
531 no_dev_ptmx=1 597 no_dev_ptmx=1
532 check_for_libcrypt_later=1 598 check_for_libcrypt_later=1
533 check_for_openpty_ctty_bug=1 599 check_for_openpty_ctty_bug=1
534 AC_DEFINE(DONT_TRY_OTHER_AF, 1, [Workaround more Linux IPv6 quirks])
535 AC_DEFINE(PAM_TTY_KLUDGE, 1, 600 AC_DEFINE(PAM_TTY_KLUDGE, 1,
536 [Work around problematic Linux PAM modules handling of PAM_TTY]) 601 [Work around problematic Linux PAM modules handling of PAM_TTY])
537 AC_DEFINE(LOCKED_PASSWD_PREFIX, "!", 602 AC_DEFINE(LOCKED_PASSWD_PREFIX, "!",
@@ -582,6 +647,7 @@ mips-sony-bsd|mips-sony-newsos4)
582 AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way]) 647 AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way])
583 AC_CHECK_HEADER([net/if_tap.h], , 648 AC_CHECK_HEADER([net/if_tap.h], ,
584 AC_DEFINE(SSH_TUN_NO_L2, 1, [No layer 2 tunnel support])) 649 AC_DEFINE(SSH_TUN_NO_L2, 1, [No layer 2 tunnel support]))
650 AC_DEFINE(BROKEN_GLOB, 1, [FreeBSD glob does not do what we need])
585 ;; 651 ;;
586*-*-bsdi*) 652*-*-bsdi*)
587 AC_DEFINE(SETEUID_BREAKS_SETUID) 653 AC_DEFINE(SETEUID_BREAKS_SETUID)
@@ -808,6 +874,7 @@ mips-sony-bsd|mips-sony-newsos4)
808 AC_DEFINE(SETEUID_BREAKS_SETUID) 874 AC_DEFINE(SETEUID_BREAKS_SETUID)
809 AC_DEFINE(BROKEN_SETREUID) 875 AC_DEFINE(BROKEN_SETREUID)
810 AC_DEFINE(BROKEN_SETREGID) 876 AC_DEFINE(BROKEN_SETREGID)
877 AC_DEFINE(BROKEN_READV_COMPARISON, 1, [Can't do comparisons on readv])
811 ;; 878 ;;
812 879
813*-*-nto-qnx*) 880*-*-nto-qnx*)
@@ -818,6 +885,7 @@ mips-sony-bsd|mips-sony-newsos4)
818 AC_DEFINE(MISSING_FD_MASK, 1, [Define on *nto-qnx systems]) 885 AC_DEFINE(MISSING_FD_MASK, 1, [Define on *nto-qnx systems])
819 AC_DEFINE(DISABLE_LASTLOG) 886 AC_DEFINE(DISABLE_LASTLOG)
820 AC_DEFINE(SSHD_ACQUIRES_CTTY) 887 AC_DEFINE(SSHD_ACQUIRES_CTTY)
888 AC_DEFINE(BROKEN_SHADOW_EXPIRE, 1, [QNX shadow support is broken])
821 enable_etc_default_login=no # has incompatible /etc/default/login 889 enable_etc_default_login=no # has incompatible /etc/default/login
822 case "$host" in 890 case "$host" in
823 *-*-nto-qnx6*) 891 *-*-nto-qnx6*)
@@ -1013,7 +1081,7 @@ dnl Checks for libutil functions
1013AC_CHECK_HEADERS(libutil.h) 1081AC_CHECK_HEADERS(libutil.h)
1014AC_SEARCH_LIBS(login, util bsd, [AC_DEFINE(HAVE_LOGIN, 1, 1082AC_SEARCH_LIBS(login, util bsd, [AC_DEFINE(HAVE_LOGIN, 1,
1015 [Define if your libraries define login()])]) 1083 [Define if your libraries define login()])])
1016AC_CHECK_FUNCS(logout updwtmp logwtmp) 1084AC_CHECK_FUNCS(fmt_scaled logout updwtmp logwtmp)
1017 1085
1018AC_FUNC_STRFTIME 1086AC_FUNC_STRFTIME
1019 1087
@@ -1247,7 +1315,7 @@ AC_ARG_WITH(audit,
1247 AC_CHECK_FUNCS(getaudit, [], 1315 AC_CHECK_FUNCS(getaudit, [],
1248 [AC_MSG_ERROR(BSM enabled and required function not found)]) 1316 [AC_MSG_ERROR(BSM enabled and required function not found)])
1249 # These are optional 1317 # These are optional
1250 AC_CHECK_FUNCS(getaudit_addr) 1318 AC_CHECK_FUNCS(getaudit_addr aug_get_machine)
1251 AC_DEFINE(USE_BSM_AUDIT, 1, [Use BSM audit module]) 1319 AC_DEFINE(USE_BSM_AUDIT, 1, [Use BSM audit module])
1252 ;; 1320 ;;
1253 debug) 1321 debug)
@@ -1267,6 +1335,8 @@ AC_ARG_WITH(audit,
1267dnl Checks for library functions. Please keep in alphabetical order 1335dnl Checks for library functions. Please keep in alphabetical order
1268AC_CHECK_FUNCS( \ 1336AC_CHECK_FUNCS( \
1269 arc4random \ 1337 arc4random \
1338 arc4random_buf \
1339 arc4random_uniform \
1270 asprintf \ 1340 asprintf \
1271 b64_ntop \ 1341 b64_ntop \
1272 __b64_ntop \ 1342 __b64_ntop \
@@ -1280,6 +1350,7 @@ AC_CHECK_FUNCS( \
1280 fchmod \ 1350 fchmod \
1281 fchown \ 1351 fchown \
1282 freeaddrinfo \ 1352 freeaddrinfo \
1353 fstatvfs \
1283 futimes \ 1354 futimes \
1284 getaddrinfo \ 1355 getaddrinfo \
1285 getcwd \ 1356 getcwd \
@@ -1331,6 +1402,8 @@ AC_CHECK_FUNCS( \
1331 sigvec \ 1402 sigvec \
1332 snprintf \ 1403 snprintf \
1333 socketpair \ 1404 socketpair \
1405 statfs \
1406 statvfs \
1334 strdup \ 1407 strdup \
1335 strerror \ 1408 strerror \
1336 strlcat \ 1409 strlcat \
@@ -2037,7 +2110,10 @@ AC_CHECK_FUNCS(SHA256_Update EVP_sha256)
2037saved_LIBS="$LIBS" 2110saved_LIBS="$LIBS"
2038AC_CHECK_LIB(iaf, ia_openinfo, [ 2111AC_CHECK_LIB(iaf, ia_openinfo, [
2039 LIBS="$LIBS -liaf" 2112 LIBS="$LIBS -liaf"
2040 AC_CHECK_FUNCS(set_id, [SSHDLIBS="$SSHDLIBS -liaf"]) 2113 AC_CHECK_FUNCS(set_id, [SSHDLIBS="$SSHDLIBS -liaf"
2114 AC_DEFINE(HAVE_LIBIAF, 1,
2115 [Define if system has libiaf that supports set_id])
2116 ])
2041]) 2117])
2042LIBS="$saved_LIBS" 2118LIBS="$saved_LIBS"
2043 2119
@@ -2621,6 +2697,18 @@ fi
2621TYPE_SOCKLEN_T 2697TYPE_SOCKLEN_T
2622 2698
2623AC_CHECK_TYPES(sig_atomic_t,,,[#include <signal.h>]) 2699AC_CHECK_TYPES(sig_atomic_t,,,[#include <signal.h>])
2700AC_CHECK_TYPES([fsblkcnt_t, fsfilcnt_t],,,[
2701#include <sys/types.h>
2702#ifdef HAVE_SYS_BITYPES_H
2703#include <sys/bitypes.h>
2704#endif
2705#ifdef HAVE_SYS_STATFS_H
2706#include <sys/statfs.h>
2707#endif
2708#ifdef HAVE_SYS_STATVFS_H
2709#include <sys/statvfs.h>
2710#endif
2711])
2624 2712
2625AC_CHECK_TYPES(in_addr_t,,, 2713AC_CHECK_TYPES(in_addr_t,,,
2626[#include <sys/types.h> 2714[#include <sys/types.h>
@@ -2983,6 +3071,16 @@ if test "x$ac_cv_have_accrights_in_msghdr" = "xyes" ; then
2983 file descriptor passing]) 3071 file descriptor passing])
2984fi 3072fi
2985 3073
3074AC_MSG_CHECKING(if f_fsid has val members)
3075AC_TRY_COMPILE([
3076#include <sys/types.h>
3077#include <sys/statvfs.h>],
3078[struct fsid_t t; t.val[0] = 0;],
3079 [ AC_MSG_RESULT(yes)
3080 AC_DEFINE(FSID_HAS_VAL, 1, f_fsid has members) ],
3081 [ AC_MSG_RESULT(no) ]
3082)
3083
2986AC_CACHE_CHECK([for msg_control field in struct msghdr], 3084AC_CACHE_CHECK([for msg_control field in struct msghdr],
2987 ac_cv_have_control_in_msghdr, [ 3085 ac_cv_have_control_in_msghdr, [
2988 AC_COMPILE_IFELSE( 3086 AC_COMPILE_IFELSE(
@@ -3234,7 +3332,7 @@ int main() { return 0; }
3234SELINUX_MSG="no" 3332SELINUX_MSG="no"
3235LIBSELINUX="" 3333LIBSELINUX=""
3236AC_ARG_WITH(selinux, 3334AC_ARG_WITH(selinux,
3237 [ --with-selinux Enable SELinux support], 3335 [ --with-selinux Enable SELinux support],
3238 [ if test "x$withval" != "xno" ; then 3336 [ if test "x$withval" != "xno" ; then
3239 save_LIBS="$LIBS" 3337 save_LIBS="$LIBS"
3240 AC_DEFINE(WITH_SELINUX,1,[Define if you want SELinux support.]) 3338 AC_DEFINE(WITH_SELINUX,1,[Define if you want SELinux support.])
@@ -3314,12 +3412,12 @@ AC_ARG_WITH(kerberos5,
3314 ) 3412 )
3315 AC_SEARCH_LIBS(dn_expand, resolv) 3413 AC_SEARCH_LIBS(dn_expand, resolv)
3316 3414
3317 AC_CHECK_LIB(gssapi,gss_init_sec_context, 3415 AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context,
3318 [ AC_DEFINE(GSSAPI) 3416 [ AC_DEFINE(GSSAPI)
3319 K5LIBS="-lgssapi $K5LIBS" ], 3417 K5LIBS="-lgssapi_krb5 $K5LIBS" ],
3320 [ AC_CHECK_LIB(gssapi_krb5,gss_init_sec_context, 3418 [ AC_CHECK_LIB(gssapi, gss_init_sec_context,
3321 [ AC_DEFINE(GSSAPI) 3419 [ AC_DEFINE(GSSAPI)
3322 K5LIBS="-lgssapi_krb5 $K5LIBS" ], 3420 K5LIBS="-lgssapi $K5LIBS" ],
3323 AC_MSG_WARN([Cannot find any suitable gss-api library - build may fail]), 3421 AC_MSG_WARN([Cannot find any suitable gss-api library - build may fail]),
3324 $K5LIBS) 3422 $K5LIBS)
3325 ], 3423 ],
@@ -4018,6 +4116,13 @@ dnl Adding -Werror to CFLAGS early prevents configure tests from running.
4018dnl Add now. 4116dnl Add now.
4019CFLAGS="$CFLAGS $werror_flags" 4117CFLAGS="$CFLAGS $werror_flags"
4020 4118
4119if grep "#define BROKEN_GETADDRINFO 1" confdefs.h >/dev/null || \
4120 test "x$ac_cv_func_getaddrinfo" != "xyes" ; then
4121 AC_SUBST(TEST_SSH_IPV6, no)
4122else
4123 AC_SUBST(TEST_SSH_IPV6, yes)
4124fi
4125
4021AC_EXEEXT 4126AC_EXEEXT
4022AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \ 4127AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \
4023 openbsd-compat/Makefile openbsd-compat/regress/Makefile \ 4128 openbsd-compat/Makefile openbsd-compat/regress/Makefile \