summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2011-02-04 11:42:11 +1100
committerDamien Miller <djm@mindrot.org>2011-02-04 11:42:11 +1100
commit8ba5292c25655a1002ec790f5840a7b8420091bf (patch)
tree83bde87ca0908652b3a87ea86221dae1afaacf48
parentd4a5504cb19acf061bc6d68362b666416b21d9b3 (diff)
cherry-pick
20110125 - (djm) [configure.ac Makefile.in ssh.c openbsd-compat/port-linux.c openbsd-compat/port-linux.h] Move SELinux-specific code from ssh.c to port-linux.c to avoid compilation errors. Add -lselinux to ssh when building with SELinux support to avoid linking failure; report from amk AT spamfence.net; ok dtucker
-rw-r--r--ChangeLog14
-rw-r--r--Makefile.in2
-rw-r--r--configure.ac2501
-rw-r--r--openbsd-compat/port-linux.c16
-rw-r--r--openbsd-compat/port-linux.h2
5 files changed, 1317 insertions, 1218 deletions
diff --git a/ChangeLog b/ChangeLog
index a69ed9fde..6d2375a33 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,17 +1,3 @@
120110128
2 - (djm) [openbsd-compat/port-linux.c] Check whether SELinux is enabled
3 before attempting setfscreatecon(). Check whether matchpathcon()
4 succeeded before using its result. Patch from cjwatson AT debian.org;
5 bz#1851
6
720110127
8 - (tim) [config.guess config.sub] Sync with upstream.
9 - (tim) [configure.ac] Consistent M4 quoting throughout, updated obsolete
10 AC_TRY_COMPILE with AC_COMPILE_IFELSE, updated obsolete AC_TRY_LINK with
11 AC_LINK_IFELSE, updated obsolete AC_TRY_RUN with AC_RUN_IFELSE, misc white
12 space changes for consistency/readability. Makes autoconf 2.68 happy.
13 "Nice work" djm
14
1520110125 120110125
16 - (djm) [configure.ac Makefile.in ssh.c openbsd-compat/port-linux.c 2 - (djm) [configure.ac Makefile.in ssh.c openbsd-compat/port-linux.c
17 openbsd-compat/port-linux.h] Move SELinux-specific code from ssh.c to 3 openbsd-compat/port-linux.h] Move SELinux-specific code from ssh.c to
diff --git a/Makefile.in b/Makefile.in
index d0263779b..870a7f18d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
1# $Id: Makefile.in,v 1.321 2011/01/25 01:16:16 djm Exp $ 1# $Id: Makefile.in,v 1.320.4.1 2011/02/04 00:42:13 djm Exp $
2 2
3# uncomment if you run a non bourne compatable shell. Ie. csh 3# uncomment if you run a non bourne compatable shell. Ie. csh
4#SHELL = @SH@ 4#SHELL = @SH@
diff --git a/configure.ac b/configure.ac
index c8d90ea0d..f23784d9b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
1# $Id: configure.ac,v 1.471 2011/01/26 20:38:58 tim Exp $ 1# $Id: configure.ac,v 1.469.4.1 2011/02/04 00:42:14 djm Exp $
2# 2#
3# Copyright (c) 1999-2004 Damien Miller 3# Copyright (c) 1999-2004 Damien Miller
4# 4#
@@ -14,10 +14,9 @@
14# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
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.471 $) 18AC_REVISION($Revision: 1.469.4.1 $)
19AC_CONFIG_SRCDIR([ssh.c]) 19AC_CONFIG_SRCDIR([ssh.c])
20AC_LANG([C])
21 20
22# local macros 21# local macros
23AC_DEFUN([OPENSSH_CHECK_CFLAG_COMPILE], [{ 22AC_DEFUN([OPENSSH_CHECK_CFLAG_COMPILE], [{
@@ -25,13 +24,13 @@ AC_DEFUN([OPENSSH_CHECK_CFLAG_COMPILE], [{
25 saved_CFLAGS="$CFLAGS" 24 saved_CFLAGS="$CFLAGS"
26 CFLAGS="$CFLAGS $1" 25 CFLAGS="$CFLAGS $1"
27 AC_COMPILE_IFELSE([void main(void) { return 0; }], 26 AC_COMPILE_IFELSE([void main(void) { return 0; }],
28 [ AC_MSG_RESULT([yes]) ], 27 [ AC_MSG_RESULT(yes) ],
29 [ AC_MSG_RESULT([no]) 28 [ AC_MSG_RESULT(no)
30 CFLAGS="$saved_CFLAGS" ] 29 CFLAGS="$saved_CFLAGS" ]
31 ) 30 )
32}]) 31}])
33 32
34AC_CONFIG_HEADER([config.h]) 33AC_CONFIG_HEADER(config.h)
35AC_PROG_CC 34AC_PROG_CC
36AC_CANONICAL_HOST 35AC_CANONICAL_HOST
37AC_C_BIGENDIAN 36AC_C_BIGENDIAN
@@ -42,22 +41,22 @@ AC_PROG_CPP
42AC_PROG_RANLIB 41AC_PROG_RANLIB
43AC_PROG_INSTALL 42AC_PROG_INSTALL
44AC_PROG_EGREP 43AC_PROG_EGREP
45AC_PATH_PROG([AR], [ar]) 44AC_PATH_PROG(AR, ar)
46AC_PATH_PROG([CAT], [cat]) 45AC_PATH_PROG(CAT, cat)
47AC_PATH_PROG([KILL], [kill]) 46AC_PATH_PROG(KILL, kill)
48AC_PATH_PROGS([PERL], [perl5 perl]) 47AC_PATH_PROGS(PERL, perl5 perl)
49AC_PATH_PROG([SED], [sed]) 48AC_PATH_PROG(SED, sed)
50AC_SUBST([PERL]) 49AC_SUBST(PERL)
51AC_PATH_PROG([ENT], [ent]) 50AC_PATH_PROG(ENT, ent)
52AC_SUBST([ENT]) 51AC_SUBST(ENT)
53AC_PATH_PROG([TEST_MINUS_S_SH], [bash]) 52AC_PATH_PROG(TEST_MINUS_S_SH, bash)
54AC_PATH_PROG([TEST_MINUS_S_SH], [ksh]) 53AC_PATH_PROG(TEST_MINUS_S_SH, ksh)
55AC_PATH_PROG([TEST_MINUS_S_SH], [sh]) 54AC_PATH_PROG(TEST_MINUS_S_SH, sh)
56AC_PATH_PROG([SH], [sh]) 55AC_PATH_PROG(SH, sh)
57AC_PATH_PROG([GROFF], [groff]) 56AC_PATH_PROG(GROFF, groff)
58AC_PATH_PROG([NROFF], [nroff]) 57AC_PATH_PROG(NROFF, nroff)
59AC_PATH_PROG([MANDOC], [mandoc]) 58AC_PATH_PROG(MANDOC, mandoc)
60AC_SUBST([TEST_SHELL], [sh]) 59AC_SUBST(TEST_SHELL,sh)
61 60
62dnl select manpage formatter 61dnl select manpage formatter
63if test "x$MANDOC" != "x" ; then 62if test "x$MANDOC" != "x" ; then
@@ -70,18 +69,18 @@ else
70 AC_MSG_WARN([no manpage formatted found]) 69 AC_MSG_WARN([no manpage formatted found])
71 MANFMT="false" 70 MANFMT="false"
72fi 71fi
73AC_SUBST([MANFMT]) 72AC_SUBST(MANFMT)
74 73
75dnl for buildpkg.sh 74dnl for buildpkg.sh
76AC_PATH_PROG([PATH_GROUPADD_PROG], [groupadd], [groupadd], 75AC_PATH_PROG(PATH_GROUPADD_PROG, groupadd, groupadd,
77 [/usr/sbin${PATH_SEPARATOR}/etc]) 76 [/usr/sbin${PATH_SEPARATOR}/etc])
78AC_PATH_PROG([PATH_USERADD_PROG], [useradd], [useradd], 77AC_PATH_PROG(PATH_USERADD_PROG, useradd, useradd,
79 [/usr/sbin${PATH_SEPARATOR}/etc]) 78 [/usr/sbin${PATH_SEPARATOR}/etc])
80AC_CHECK_PROG([MAKE_PACKAGE_SUPPORTED], [pkgmk], [yes], [no]) 79AC_CHECK_PROG(MAKE_PACKAGE_SUPPORTED, pkgmk, yes, no)
81if test -x /sbin/sh; then 80if test -x /sbin/sh; then
82 AC_SUBST([STARTUP_SCRIPT_SHELL], [/sbin/sh]) 81 AC_SUBST(STARTUP_SCRIPT_SHELL,/sbin/sh)
83else 82else
84 AC_SUBST([STARTUP_SCRIPT_SHELL], [/bin/sh]) 83 AC_SUBST(STARTUP_SCRIPT_SHELL,/bin/sh)
85fi 84fi
86 85
87# System features 86# System features
@@ -93,34 +92,34 @@ fi
93 92
94# Use LOGIN_PROGRAM from environment if possible 93# Use LOGIN_PROGRAM from environment if possible
95if test ! -z "$LOGIN_PROGRAM" ; then 94if test ! -z "$LOGIN_PROGRAM" ; then
96 AC_DEFINE_UNQUOTED([LOGIN_PROGRAM_FALLBACK], ["$LOGIN_PROGRAM"], 95 AC_DEFINE_UNQUOTED(LOGIN_PROGRAM_FALLBACK, "$LOGIN_PROGRAM",
97 [If your header files don't define LOGIN_PROGRAM, 96 [If your header files don't define LOGIN_PROGRAM,
98 then use this (detected) from environment and PATH]) 97 then use this (detected) from environment and PATH])
99else 98else
100 # Search for login 99 # Search for login
101 AC_PATH_PROG([LOGIN_PROGRAM_FALLBACK], [login]) 100 AC_PATH_PROG(LOGIN_PROGRAM_FALLBACK, login)
102 if test ! -z "$LOGIN_PROGRAM_FALLBACK" ; then 101 if test ! -z "$LOGIN_PROGRAM_FALLBACK" ; then
103 AC_DEFINE_UNQUOTED([LOGIN_PROGRAM_FALLBACK], ["$LOGIN_PROGRAM_FALLBACK"]) 102 AC_DEFINE_UNQUOTED(LOGIN_PROGRAM_FALLBACK, "$LOGIN_PROGRAM_FALLBACK")
104 fi 103 fi
105fi 104fi
106 105
107AC_PATH_PROG([PATH_PASSWD_PROG], [passwd]) 106AC_PATH_PROG(PATH_PASSWD_PROG, passwd)
108if test ! -z "$PATH_PASSWD_PROG" ; then 107if test ! -z "$PATH_PASSWD_PROG" ; then
109 AC_DEFINE_UNQUOTED([_PATH_PASSWD_PROG], ["$PATH_PASSWD_PROG"], 108 AC_DEFINE_UNQUOTED(_PATH_PASSWD_PROG, "$PATH_PASSWD_PROG",
110 [Full path of your "passwd" program]) 109 [Full path of your "passwd" program])
111fi 110fi
112 111
113if test -z "$LD" ; then 112if test -z "$LD" ; then
114 LD=$CC 113 LD=$CC
115fi 114fi
116AC_SUBST([LD]) 115AC_SUBST(LD)
117 116
118AC_C_INLINE 117AC_C_INLINE
119 118
120AC_CHECK_DECL([LLONG_MAX], [have_llong_max=1], , [#include <limits.h>]) 119AC_CHECK_DECL(LLONG_MAX, have_llong_max=1, , [#include <limits.h>])
121 120
122use_stack_protector=1 121use_stack_protector=1
123AC_ARG_WITH([stackprotect], 122AC_ARG_WITH(stackprotect,
124 [ --without-stackprotect Don't use compiler's stack protection], [ 123 [ --without-stackprotect Don't use compiler's stack protection], [
125 if test "x$withval" = "xno"; then 124 if test "x$withval" = "xno"; then
126 use_stack_protector=0 125 use_stack_protector=0
@@ -136,7 +135,7 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
136 OPENSSH_CHECK_CFLAG_COMPILE([-Wno-pointer-sign]) 135 OPENSSH_CHECK_CFLAG_COMPILE([-Wno-pointer-sign])
137 OPENSSH_CHECK_CFLAG_COMPILE([-Wno-unused-result]) 136 OPENSSH_CHECK_CFLAG_COMPILE([-Wno-unused-result])
138 OPENSSH_CHECK_CFLAG_COMPILE([-fno-strict-aliasing]) 137 OPENSSH_CHECK_CFLAG_COMPILE([-fno-strict-aliasing])
139 AC_MSG_CHECKING([gcc version]) 138 AC_MSG_CHECKING(gcc version)
140 GCC_VER=`$CC -v 2>&1 | $AWK '/gcc version /{print $3}'` 139 GCC_VER=`$CC -v 2>&1 | $AWK '/gcc version /{print $3}'`
141 case $GCC_VER in 140 case $GCC_VER in
142 1.*) no_attrib_nonnull=1 ;; 141 1.*) no_attrib_nonnull=1 ;;
@@ -146,52 +145,52 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
146 2.*) no_attrib_nonnull=1 ;; 145 2.*) no_attrib_nonnull=1 ;;
147 *) ;; 146 *) ;;
148 esac 147 esac
149 AC_MSG_RESULT([$GCC_VER]) 148 AC_MSG_RESULT($GCC_VER)
150 149
151 AC_MSG_CHECKING([if $CC accepts -fno-builtin-memset]) 150 AC_MSG_CHECKING(if $CC accepts -fno-builtin-memset)
152 saved_CFLAGS="$CFLAGS" 151 saved_CFLAGS="$CFLAGS"
153 CFLAGS="$CFLAGS -fno-builtin-memset" 152 CFLAGS="$CFLAGS -fno-builtin-memset"
154 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include <string.h> ]], 153 AC_LINK_IFELSE( [AC_LANG_SOURCE([[
155 [[ char b[10]; memset(b, 0, sizeof(b)); ]])], 154#include <string.h>
156 [ AC_MSG_RESULT([yes]) ], 155int main(void){char b[10]; memset(b, 0, sizeof(b));}
157 [ AC_MSG_RESULT([no]) 156 ]])],
157 [ AC_MSG_RESULT(yes) ],
158 [ AC_MSG_RESULT(no)
158 CFLAGS="$saved_CFLAGS" ] 159 CFLAGS="$saved_CFLAGS" ]
159 ) 160)
160 161
161 # -fstack-protector-all doesn't always work for some GCC versions 162 # -fstack-protector-all doesn't always work for some GCC versions
162 # and/or platforms, so we test if we can. If it's not supported 163 # and/or platforms, so we test if we can. If it's not supported
163 # on a given platform gcc will emit a warning so we use -Werror. 164 # on a given platform gcc will emit a warning so we use -Werror.
164 if test "x$use_stack_protector" = "x1"; then 165 if test "x$use_stack_protector" = "x1"; then
165 for t in -fstack-protector-all -fstack-protector; do 166 for t in -fstack-protector-all -fstack-protector; do
166 AC_MSG_CHECKING([if $CC supports $t]) 167 AC_MSG_CHECKING(if $CC supports $t)
167 saved_CFLAGS="$CFLAGS" 168 saved_CFLAGS="$CFLAGS"
168 saved_LDFLAGS="$LDFLAGS" 169 saved_LDFLAGS="$LDFLAGS"
169 CFLAGS="$CFLAGS $t -Werror" 170 CFLAGS="$CFLAGS $t -Werror"
170 LDFLAGS="$LDFLAGS $t -Werror" 171 LDFLAGS="$LDFLAGS $t -Werror"
171 AC_LINK_IFELSE( 172 AC_LINK_IFELSE(
172 [AC_LANG_PROGRAM([[ #include <stdio.h> ]], 173 [AC_LANG_SOURCE([
173 [[ 174#include <stdio.h>
174 char x[256]; 175int main(void){char x[[256]]; snprintf(x, sizeof(x), "XXX"); return 0;}
175 snprintf(x, sizeof(x), "XXX"); 176 ])],
176 ]])], 177 [ AC_MSG_RESULT(yes)
177 [ AC_MSG_RESULT([yes])
178 CFLAGS="$saved_CFLAGS $t" 178 CFLAGS="$saved_CFLAGS $t"
179 LDFLAGS="$saved_LDFLAGS $t" 179 LDFLAGS="$saved_LDFLAGS $t"
180 AC_MSG_CHECKING([if $t works]) 180 AC_MSG_CHECKING(if $t works)
181 AC_RUN_IFELSE( 181 AC_RUN_IFELSE(
182 [AC_LANG_PROGRAM([[ #include <stdio.h> ]], 182 [AC_LANG_SOURCE([
183 [[ 183#include <stdio.h>
184 char x[256]; 184int main(void){char x[[256]]; snprintf(x, sizeof(x), "XXX"); return 0;}
185 snprintf(x, sizeof(x), "XXX"); 185 ])],
186 ]])], 186 [ AC_MSG_RESULT(yes)
187 [ AC_MSG_RESULT([yes])
188 break ], 187 break ],
189 [ AC_MSG_RESULT([no]) ], 188 [ AC_MSG_RESULT(no) ],
190 [ AC_MSG_WARN([cross compiling: cannot test]) 189 [ AC_MSG_WARN([cross compiling: cannot test])
191 break ] 190 break ]
192 ) 191 )
193 ], 192 ],
194 [ AC_MSG_RESULT([no]) ] 193 [ AC_MSG_RESULT(no) ]
195 ) 194 )
196 CFLAGS="$saved_CFLAGS" 195 CFLAGS="$saved_CFLAGS"
197 LDFLAGS="$saved_LDFLAGS" 196 LDFLAGS="$saved_LDFLAGS"
@@ -203,7 +202,7 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
203 unset ac_cv_have_decl_LLONG_MAX 202 unset ac_cv_have_decl_LLONG_MAX
204 saved_CFLAGS="$CFLAGS" 203 saved_CFLAGS="$CFLAGS"
205 CFLAGS="$CFLAGS -std=gnu99" 204 CFLAGS="$CFLAGS -std=gnu99"
206 AC_CHECK_DECL([LLONG_MAX], 205 AC_CHECK_DECL(LLONG_MAX,
207 [have_llong_max=1], 206 [have_llong_max=1],
208 [CFLAGS="$saved_CFLAGS"], 207 [CFLAGS="$saved_CFLAGS"],
209 [#include <limits.h>] 208 [#include <limits.h>]
@@ -212,10 +211,10 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
212fi 211fi
213 212
214if test "x$no_attrib_nonnull" != "x1" ; then 213if test "x$no_attrib_nonnull" != "x1" ; then
215 AC_DEFINE([HAVE_ATTRIBUTE__NONNULL__], [1], [Have attribute nonnull]) 214 AC_DEFINE(HAVE_ATTRIBUTE__NONNULL__, 1, [Have attribute nonnull])
216fi 215fi
217 216
218AC_ARG_WITH([rpath], 217AC_ARG_WITH(rpath,
219 [ --without-rpath Disable auto-added -R linker paths], 218 [ --without-rpath Disable auto-added -R linker paths],
220 [ 219 [
221 if test "x$withval" = "xno" ; then 220 if test "x$withval" = "xno" ; then
@@ -228,7 +227,7 @@ AC_ARG_WITH([rpath],
228) 227)
229 228
230# Allow user to specify flags 229# Allow user to specify flags
231AC_ARG_WITH([cflags], 230AC_ARG_WITH(cflags,
232 [ --with-cflags Specify additional flags to pass to compiler], 231 [ --with-cflags Specify additional flags to pass to compiler],
233 [ 232 [
234 if test -n "$withval" && test "x$withval" != "xno" && \ 233 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -237,7 +236,7 @@ AC_ARG_WITH([cflags],
237 fi 236 fi
238 ] 237 ]
239) 238)
240AC_ARG_WITH([cppflags], 239AC_ARG_WITH(cppflags,
241 [ --with-cppflags Specify additional flags to pass to preprocessor] , 240 [ --with-cppflags Specify additional flags to pass to preprocessor] ,
242 [ 241 [
243 if test -n "$withval" && test "x$withval" != "xno" && \ 242 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -246,7 +245,7 @@ AC_ARG_WITH([cppflags],
246 fi 245 fi
247 ] 246 ]
248) 247)
249AC_ARG_WITH([ldflags], 248AC_ARG_WITH(ldflags,
250 [ --with-ldflags Specify additional flags to pass to linker], 249 [ --with-ldflags Specify additional flags to pass to linker],
251 [ 250 [
252 if test -n "$withval" && test "x$withval" != "xno" && \ 251 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -255,7 +254,7 @@ AC_ARG_WITH([ldflags],
255 fi 254 fi
256 ] 255 ]
257) 256)
258AC_ARG_WITH([libs], 257AC_ARG_WITH(libs,
259 [ --with-libs Specify additional libraries to link with], 258 [ --with-libs Specify additional libraries to link with],
260 [ 259 [
261 if test -n "$withval" && test "x$withval" != "xno" && \ 260 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -264,7 +263,7 @@ AC_ARG_WITH([libs],
264 fi 263 fi
265 ] 264 ]
266) 265)
267AC_ARG_WITH([Werror], 266AC_ARG_WITH(Werror,
268 [ --with-Werror Build main code with -Werror], 267 [ --with-Werror Build main code with -Werror],
269 [ 268 [
270 if test -n "$withval" && test "x$withval" != "xno"; then 269 if test -n "$withval" && test "x$withval" != "xno"; then
@@ -276,7 +275,7 @@ AC_ARG_WITH([Werror],
276 ] 275 ]
277) 276)
278 277
279AC_CHECK_HEADERS([ \ 278AC_CHECK_HEADERS( \
280 bstring.h \ 279 bstring.h \
281 crypt.h \ 280 crypt.h \
282 crypto/sha2.h \ 281 crypto/sha2.h \
@@ -340,29 +339,29 @@ AC_CHECK_HEADERS([ \
340 utmp.h \ 339 utmp.h \
341 utmpx.h \ 340 utmpx.h \
342 vis.h \ 341 vis.h \
343]) 342)
344 343
345# lastlog.h requires sys/time.h to be included first on Solaris 344# lastlog.h requires sys/time.h to be included first on Solaris
346AC_CHECK_HEADERS([lastlog.h], [], [], [ 345AC_CHECK_HEADERS(lastlog.h, [], [], [
347#ifdef HAVE_SYS_TIME_H 346#ifdef HAVE_SYS_TIME_H
348# include <sys/time.h> 347# include <sys/time.h>
349#endif 348#endif
350]) 349])
351 350
352# sys/ptms.h requires sys/stream.h to be included first on Solaris 351# sys/ptms.h requires sys/stream.h to be included first on Solaris
353AC_CHECK_HEADERS([sys/ptms.h], [], [], [ 352AC_CHECK_HEADERS(sys/ptms.h, [], [], [
354#ifdef HAVE_SYS_STREAM_H 353#ifdef HAVE_SYS_STREAM_H
355# include <sys/stream.h> 354# include <sys/stream.h>
356#endif 355#endif
357]) 356])
358 357
359# login_cap.h requires sys/types.h on NetBSD 358# login_cap.h requires sys/types.h on NetBSD
360AC_CHECK_HEADERS([login_cap.h], [], [], [ 359AC_CHECK_HEADERS(login_cap.h, [], [], [
361#include <sys/types.h> 360#include <sys/types.h>
362]) 361])
363 362
364# older BSDs need sys/param.h before sys/mount.h 363# older BSDs need sys/param.h before sys/mount.h
365AC_CHECK_HEADERS([sys/mount.h], [], [], [ 364AC_CHECK_HEADERS(sys/mount.h, [], [], [
366#include <sys/param.h> 365#include <sys/param.h>
367]) 366])
368 367
@@ -379,14 +378,15 @@ case "$host" in
379 # particularly with older versions of vac or xlc. 378 # particularly with older versions of vac or xlc.
380 # It also throws errors about null macro argments, but these are 379 # It also throws errors about null macro argments, but these are
381 # not fatal. 380 # not fatal.
382 AC_MSG_CHECKING([if compiler allows macro redefinitions]) 381 AC_MSG_CHECKING(if compiler allows macro redefinitions)
383 AC_COMPILE_IFELSE( 382 AC_COMPILE_IFELSE(
384 [AC_LANG_PROGRAM([[ 383 [AC_LANG_SOURCE([[
385#define testmacro foo 384#define testmacro foo
386#define testmacro bar]], 385#define testmacro bar
387 [[ exit(0); ]])], 386int main(void) { exit(0); }
388 [ AC_MSG_RESULT([yes]) ], 387 ]])],
389 [ AC_MSG_RESULT([no]) 388 [ AC_MSG_RESULT(yes) ],
389 [ AC_MSG_RESULT(no)
390 CC="`echo $CC | sed 's/-qlanglvl\=ansi//g'`" 390 CC="`echo $CC | sed 's/-qlanglvl\=ansi//g'`"
391 LD="`echo $LD | sed 's/-qlanglvl\=ansi//g'`" 391 LD="`echo $LD | sed 's/-qlanglvl\=ansi//g'`"
392 CFLAGS="`echo $CFLAGS | sed 's/-qlanglvl\=ansi//g'`" 392 CFLAGS="`echo $CFLAGS | sed 's/-qlanglvl\=ansi//g'`"
@@ -407,22 +407,21 @@ case "$host" in
407 for tryflags in $flags ;do 407 for tryflags in $flags ;do
408 if (test -z "$blibflags"); then 408 if (test -z "$blibflags"); then
409 LDFLAGS="$saved_LDFLAGS $tryflags$blibpath" 409 LDFLAGS="$saved_LDFLAGS $tryflags$blibpath"
410 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], 410 AC_TRY_LINK([], [], [blibflags=$tryflags])
411 [blibflags=$tryflags], [])
412 fi 411 fi
413 done 412 done
414 if (test -z "$blibflags"); then 413 if (test -z "$blibflags"); then
415 AC_MSG_RESULT([not found]) 414 AC_MSG_RESULT(not found)
416 AC_MSG_ERROR([*** must be able to specify blibpath on AIX - check config.log]) 415 AC_MSG_ERROR([*** must be able to specify blibpath on AIX - check config.log])
417 else 416 else
418 AC_MSG_RESULT([$blibflags]) 417 AC_MSG_RESULT($blibflags)
419 fi 418 fi
420 LDFLAGS="$saved_LDFLAGS" 419 LDFLAGS="$saved_LDFLAGS"
421 dnl Check for authenticate. Might be in libs.a on older AIXes 420 dnl Check for authenticate. Might be in libs.a on older AIXes
422 AC_CHECK_FUNC([authenticate], [AC_DEFINE([WITH_AIXAUTHENTICATE], [1], 421 AC_CHECK_FUNC(authenticate, [AC_DEFINE(WITH_AIXAUTHENTICATE, 1,
423 [Define if you want to enable AIX4's authenticate function])], 422 [Define if you want to enable AIX4's authenticate function])],
424 [AC_CHECK_LIB([s], [authenticate], 423 [AC_CHECK_LIB(s,authenticate,
425 [ AC_DEFINE([WITH_AIXAUTHENTICATE]) 424 [ AC_DEFINE(WITH_AIXAUTHENTICATE)
426 LIBS="$LIBS -ls" 425 LIBS="$LIBS -ls"
427 ]) 426 ])
428 ]) 427 ])
@@ -430,98 +429,96 @@ case "$host" in
430 AC_CHECK_DECLS([authenticate, loginrestrictions, loginsuccess, 429 AC_CHECK_DECLS([authenticate, loginrestrictions, loginsuccess,
431 passwdexpired, setauthdb], , , [#include <usersec.h>]) 430 passwdexpired, setauthdb], , , [#include <usersec.h>])
432 dnl Check if loginfailed is declared and takes 4 arguments (AIX >= 5.2) 431 dnl Check if loginfailed is declared and takes 4 arguments (AIX >= 5.2)
433 AC_CHECK_DECLS([loginfailed], 432 AC_CHECK_DECLS(loginfailed,
434 [AC_MSG_CHECKING([if loginfailed takes 4 arguments]) 433 [AC_MSG_CHECKING(if loginfailed takes 4 arguments)
435 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <usersec.h> ]], 434 AC_TRY_COMPILE(
436 [[ (void)loginfailed("user","host","tty",0); ]])], 435 [#include <usersec.h>],
437 [AC_MSG_RESULT([yes]) 436 [(void)loginfailed("user","host","tty",0);],
438 AC_DEFINE([AIX_LOGINFAILED_4ARG], [1], 437 [AC_MSG_RESULT(yes)
439 [Define if your AIX loginfailed() function 438 AC_DEFINE(AIX_LOGINFAILED_4ARG, 1,
440 takes 4 arguments (AIX >= 5.2)])], [AC_MSG_RESULT([no]) 439 [Define if your AIX loginfailed() function
441 ])], 440 takes 4 arguments (AIX >= 5.2)])],
442 [], 441 [AC_MSG_RESULT(no)]
443 [#include <usersec.h>] 442 )],
443 [],
444 [#include <usersec.h>]
444 ) 445 )
445 AC_CHECK_FUNCS([getgrset setauthdb]) 446 AC_CHECK_FUNCS(getgrset setauthdb)
446 AC_CHECK_DECL([F_CLOSEM], 447 AC_CHECK_DECL(F_CLOSEM,
447 AC_DEFINE([HAVE_FCNTL_CLOSEM], [1], [Use F_CLOSEM fcntl for closefrom]), 448 AC_DEFINE(HAVE_FCNTL_CLOSEM, 1, [Use F_CLOSEM fcntl for closefrom]),
448 [], 449 [],
449 [ #include <limits.h> 450 [ #include <limits.h>
450 #include <fcntl.h> ] 451 #include <fcntl.h> ]
451 ) 452 )
452 check_for_aix_broken_getaddrinfo=1 453 check_for_aix_broken_getaddrinfo=1
453 AC_DEFINE([BROKEN_REALPATH], [1], [Define if you have a broken realpath.]) 454 AC_DEFINE(BROKEN_REALPATH, 1, [Define if you have a broken realpath.])
454 AC_DEFINE([SETEUID_BREAKS_SETUID], [1], 455 AC_DEFINE(SETEUID_BREAKS_SETUID, 1,
455 [Define if your platform breaks doing a seteuid before a setuid]) 456 [Define if your platform breaks doing a seteuid before a setuid])
456 AC_DEFINE([BROKEN_SETREUID], [1], [Define if your setreuid() is broken]) 457 AC_DEFINE(BROKEN_SETREUID, 1, [Define if your setreuid() is broken])
457 AC_DEFINE([BROKEN_SETREGID], [1], [Define if your setregid() is broken]) 458 AC_DEFINE(BROKEN_SETREGID, 1, [Define if your setregid() is broken])
458 dnl AIX handles lastlog as part of its login message 459 dnl AIX handles lastlog as part of its login message
459 AC_DEFINE([DISABLE_LASTLOG], [1], [Define if you don't want to use lastlog]) 460 AC_DEFINE(DISABLE_LASTLOG, 1, [Define if you don't want to use lastlog])
460 AC_DEFINE([LOGIN_NEEDS_UTMPX], [1], 461 AC_DEFINE(LOGIN_NEEDS_UTMPX, 1,
461 [Some systems need a utmpx entry for /bin/login to work]) 462 [Some systems need a utmpx entry for /bin/login to work])
462 AC_DEFINE([SPT_TYPE], [SPT_REUSEARGV], 463 AC_DEFINE(SPT_TYPE,SPT_REUSEARGV,
463 [Define to a Set Process Title type if your system is 464 [Define to a Set Process Title type if your system is
464 supported by bsd-setproctitle.c]) 465 supported by bsd-setproctitle.c])
465 AC_DEFINE([SSHPAM_CHAUTHTOK_NEEDS_RUID], [1], 466 AC_DEFINE(SSHPAM_CHAUTHTOK_NEEDS_RUID, 1,
466 [AIX 5.2 and 5.3 (and presumably newer) require this]) 467 [AIX 5.2 and 5.3 (and presumably newer) require this])
467 AC_DEFINE([PTY_ZEROREAD], [1], [read(1) can return 0 for a non-closed fd]) 468 AC_DEFINE(PTY_ZEROREAD, 1, [read(1) can return 0 for a non-closed fd])
468 ;; 469 ;;
469*-*-cygwin*) 470*-*-cygwin*)
470 check_for_libcrypt_later=1 471 check_for_libcrypt_later=1
471 LIBS="$LIBS /usr/lib/textreadmode.o" 472 LIBS="$LIBS /usr/lib/textreadmode.o"
472 AC_DEFINE([HAVE_CYGWIN], [1], [Define if you are on Cygwin]) 473 AC_DEFINE(HAVE_CYGWIN, 1, [Define if you are on Cygwin])
473 AC_DEFINE([USE_PIPES], [1], [Use PIPES instead of a socketpair()]) 474 AC_DEFINE(USE_PIPES, 1, [Use PIPES instead of a socketpair()])
474 AC_DEFINE([DISABLE_SHADOW], [1], 475 AC_DEFINE(DISABLE_SHADOW, 1,
475 [Define if you want to disable shadow passwords]) 476 [Define if you want to disable shadow passwords])
476 AC_DEFINE([NO_X11_UNIX_SOCKETS], [1], 477 AC_DEFINE(NO_X11_UNIX_SOCKETS, 1,
477 [Define if X11 doesn't support AF_UNIX sockets on that system]) 478 [Define if X11 doesn't support AF_UNIX sockets on that system])
478 AC_DEFINE([NO_IPPORT_RESERVED_CONCEPT], [1], 479 AC_DEFINE(NO_IPPORT_RESERVED_CONCEPT, 1,
479 [Define if the concept of ports only accessible to 480 [Define if the concept of ports only accessible to
480 superusers isn't known]) 481 superusers isn't known])
481 AC_DEFINE([DISABLE_FD_PASSING], [1], 482 AC_DEFINE(DISABLE_FD_PASSING, 1,
482 [Define if your platform needs to skip post auth 483 [Define if your platform needs to skip post auth
483 file descriptor passing]) 484 file descriptor passing])
484 AC_DEFINE([SSH_IOBUFSZ], [65535], [Windows is sensitive to read buffer size]) 485 AC_DEFINE(SSH_IOBUFSZ, 65535, [Windows is sensitive to read buffer size])
485 AC_DEFINE([FILESYSTEM_NO_BACKSLASH], [1], [File names may not contain backslash characters]) 486 AC_DEFINE(FILESYSTEM_NO_BACKSLASH, 1, [File names may not contain backslash characters])
486 ;; 487 ;;
487*-*-dgux*) 488*-*-dgux*)
488 AC_DEFINE([IP_TOS_IS_BROKEN], [1], 489 AC_DEFINE(IP_TOS_IS_BROKEN, 1,
489 [Define if your system choked on IP TOS setting]) 490 [Define if your system choked on IP TOS setting])
490 AC_DEFINE([SETEUID_BREAKS_SETUID]) 491 AC_DEFINE(SETEUID_BREAKS_SETUID)
491 AC_DEFINE([BROKEN_SETREUID]) 492 AC_DEFINE(BROKEN_SETREUID)
492 AC_DEFINE([BROKEN_SETREGID]) 493 AC_DEFINE(BROKEN_SETREGID)
493 ;; 494 ;;
494*-*-darwin*) 495*-*-darwin*)
495 AC_MSG_CHECKING([if we have working getaddrinfo]) 496 AC_MSG_CHECKING(if we have working getaddrinfo)
496 AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include <mach-o/dyld.h> 497 AC_TRY_RUN([#include <mach-o/dyld.h>
497main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) 498main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
498 exit(0); 499 exit(0);
499 else 500 else
500 exit(1); 501 exit(1);
501} 502}], [AC_MSG_RESULT(working)],
502 ]])], 503 [AC_MSG_RESULT(buggy)
503 [AC_MSG_RESULT([working])], 504 AC_DEFINE(BROKEN_GETADDRINFO, 1, [getaddrinfo is broken (if present)])],
504 [AC_MSG_RESULT([buggy]) 505 [AC_MSG_RESULT(assume it is working)])
505 AC_DEFINE([BROKEN_GETADDRINFO], [1], 506 AC_DEFINE(SETEUID_BREAKS_SETUID)
506 [getaddrinfo is broken (if present)]) 507 AC_DEFINE(BROKEN_SETREUID)
507 ], 508 AC_DEFINE(BROKEN_SETREGID)
508 [AC_MSG_RESULT([assume it is working])]) 509 AC_DEFINE(BROKEN_GLOB, 1, [OS X glob does not do what we expect])
509 AC_DEFINE([SETEUID_BREAKS_SETUID]) 510 AC_DEFINE_UNQUOTED(BIND_8_COMPAT, 1,
510 AC_DEFINE([BROKEN_SETREUID])
511 AC_DEFINE([BROKEN_SETREGID])
512 AC_DEFINE([BROKEN_GLOB], [1], [OS X glob does not do what we expect])
513 AC_DEFINE_UNQUOTED([BIND_8_COMPAT], [1],
514 [Define if your resolver libs need this for getrrsetbyname]) 511 [Define if your resolver libs need this for getrrsetbyname])
515 AC_DEFINE([SSH_TUN_FREEBSD], [1], [Open tunnel devices the FreeBSD way]) 512 AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way])
516 AC_DEFINE([SSH_TUN_COMPAT_AF], [1], 513 AC_DEFINE(SSH_TUN_COMPAT_AF, 1,
517 [Use tunnel device compatibility to OpenBSD]) 514 [Use tunnel device compatibility to OpenBSD])
518 AC_DEFINE([SSH_TUN_PREPEND_AF], [1], 515 AC_DEFINE(SSH_TUN_PREPEND_AF, 1,
519 [Prepend the address family to IP tunnel traffic]) 516 [Prepend the address family to IP tunnel traffic])
520 m4_pattern_allow([AU_IPv]) 517 m4_pattern_allow(AU_IPv)
521 AC_CHECK_DECL([AU_IPv4], [], 518 AC_CHECK_DECL(AU_IPv4, [],
522 AC_DEFINE([AU_IPv4], [0], [System only supports IPv4 audit records]) 519 AC_DEFINE(AU_IPv4, 0, [System only supports IPv4 audit records])
523 [#include <bsm/audit.h>] 520 [#include <bsm/audit.h>]
524 AC_DEFINE([LASTLOG_WRITE_PUTUTXLINE], [1], 521 AC_DEFINE(LASTLOG_WRITE_PUTUTXLINE, 1,
525 [Define if pututxline updates lastlog too]) 522 [Define if pututxline updates lastlog too])
526 ) 523 )
527 ;; 524 ;;
@@ -530,25 +527,25 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
530 ;; 527 ;;
531*-*-haiku*) 528*-*-haiku*)
532 LIBS="$LIBS -lbsd " 529 LIBS="$LIBS -lbsd "
533 AC_CHECK_LIB([network], [socket]) 530 AC_CHECK_LIB(network, socket)
534 AC_DEFINE([HAVE_U_INT64_T]) 531 AC_DEFINE(HAVE_U_INT64_T)
535 MANTYPE=man 532 MANTYPE=man
536 ;; 533 ;;
537*-*-hpux*) 534*-*-hpux*)
538 # first we define all of the options common to all HP-UX releases 535 # first we define all of the options common to all HP-UX releases
539 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1" 536 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
540 IPADDR_IN_DISPLAY=yes 537 IPADDR_IN_DISPLAY=yes
541 AC_DEFINE([USE_PIPES]) 538 AC_DEFINE(USE_PIPES)
542 AC_DEFINE([LOGIN_NO_ENDOPT], [1], 539 AC_DEFINE(LOGIN_NO_ENDOPT, 1,
543 [Define if your login program cannot handle end of options ("--")]) 540 [Define if your login program cannot handle end of options ("--")])
544 AC_DEFINE([LOGIN_NEEDS_UTMPX]) 541 AC_DEFINE(LOGIN_NEEDS_UTMPX)
545 AC_DEFINE([LOCKED_PASSWD_STRING], ["*"], 542 AC_DEFINE(LOCKED_PASSWD_STRING, "*",
546 [String used in /etc/passwd to denote locked account]) 543 [String used in /etc/passwd to denote locked account])
547 AC_DEFINE([SPT_TYPE], [SPT_PSTAT]) 544 AC_DEFINE(SPT_TYPE,SPT_PSTAT)
548 MAIL="/var/mail/username" 545 MAIL="/var/mail/username"
549 LIBS="$LIBS -lsec" 546 LIBS="$LIBS -lsec"
550 AC_CHECK_LIB([xnet], [t_error], , 547 AC_CHECK_LIB(xnet, t_error, ,
551 [AC_MSG_ERROR([*** -lxnet needed on HP-UX - check config.log ***])]) 548 AC_MSG_ERROR([*** -lxnet needed on HP-UX - check config.log ***]))
552 549
553 # next, we define all of the options specific to major releases 550 # next, we define all of the options specific to major releases
554 case "$host" in 551 case "$host" in
@@ -558,13 +555,13 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
558 fi 555 fi
559 ;; 556 ;;
560 *-*-hpux11*) 557 *-*-hpux11*)
561 AC_DEFINE([PAM_SUN_CODEBASE], [1], 558 AC_DEFINE(PAM_SUN_CODEBASE, 1,
562 [Define if you are using Solaris-derived PAM which 559 [Define if you are using Solaris-derived PAM which
563 passes pam_messages to the conversation function 560 passes pam_messages to the conversation function
564 with an extra level of indirection]) 561 with an extra level of indirection])
565 AC_DEFINE([DISABLE_UTMP], [1], 562 AC_DEFINE(DISABLE_UTMP, 1,
566 [Define if you don't want to use utmp]) 563 [Define if you don't want to use utmp])
567 AC_DEFINE([USE_BTMP], [1], [Use btmp to log bad logins]) 564 AC_DEFINE(USE_BTMP, 1, [Use btmp to log bad logins])
568 check_for_hpux_broken_getaddrinfo=1 565 check_for_hpux_broken_getaddrinfo=1
569 check_for_conflicting_getspnam=1 566 check_for_conflicting_getspnam=1
570 ;; 567 ;;
@@ -573,7 +570,7 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
573 # lastly, we define options specific to minor releases 570 # lastly, we define options specific to minor releases
574 case "$host" in 571 case "$host" in
575 *-*-hpux10.26) 572 *-*-hpux10.26)
576 AC_DEFINE([HAVE_SECUREWARE], [1], 573 AC_DEFINE(HAVE_SECUREWARE, 1,
577 [Define if you have SecureWare-based 574 [Define if you have SecureWare-based
578 protected password database]) 575 protected password database])
579 disable_ptmx_check=yes 576 disable_ptmx_check=yes
@@ -583,79 +580,79 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
583 ;; 580 ;;
584*-*-irix5*) 581*-*-irix5*)
585 PATH="$PATH:/usr/etc" 582 PATH="$PATH:/usr/etc"
586 AC_DEFINE([BROKEN_INET_NTOA], [1], 583 AC_DEFINE(BROKEN_INET_NTOA, 1,
587 [Define if you system's inet_ntoa is busted 584 [Define if you system's inet_ntoa is busted
588 (e.g. Irix gcc issue)]) 585 (e.g. Irix gcc issue)])
589 AC_DEFINE([SETEUID_BREAKS_SETUID]) 586 AC_DEFINE(SETEUID_BREAKS_SETUID)
590 AC_DEFINE([BROKEN_SETREUID]) 587 AC_DEFINE(BROKEN_SETREUID)
591 AC_DEFINE([BROKEN_SETREGID]) 588 AC_DEFINE(BROKEN_SETREGID)
592 AC_DEFINE([WITH_ABBREV_NO_TTY], [1], 589 AC_DEFINE(WITH_ABBREV_NO_TTY, 1,
593 [Define if you shouldn't strip 'tty' from your 590 [Define if you shouldn't strip 'tty' from your
594 ttyname in [uw]tmp]) 591 ttyname in [uw]tmp])
595 AC_DEFINE([LOCKED_PASSWD_STRING], ["*LK*"]) 592 AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*")
596 ;; 593 ;;
597*-*-irix6*) 594*-*-irix6*)
598 PATH="$PATH:/usr/etc" 595 PATH="$PATH:/usr/etc"
599 AC_DEFINE([WITH_IRIX_ARRAY], [1], 596 AC_DEFINE(WITH_IRIX_ARRAY, 1,
600 [Define if you have/want arrays 597 [Define if you have/want arrays
601 (cluster-wide session managment, not C arrays)]) 598 (cluster-wide session managment, not C arrays)])
602 AC_DEFINE([WITH_IRIX_PROJECT], [1], 599 AC_DEFINE(WITH_IRIX_PROJECT, 1,
603 [Define if you want IRIX project management]) 600 [Define if you want IRIX project management])
604 AC_DEFINE([WITH_IRIX_AUDIT], [1], 601 AC_DEFINE(WITH_IRIX_AUDIT, 1,
605 [Define if you want IRIX audit trails]) 602 [Define if you want IRIX audit trails])
606 AC_CHECK_FUNC([jlimit_startjob], [AC_DEFINE([WITH_IRIX_JOBS], [1], 603 AC_CHECK_FUNC(jlimit_startjob, [AC_DEFINE(WITH_IRIX_JOBS, 1,
607 [Define if you want IRIX kernel jobs])]) 604 [Define if you want IRIX kernel jobs])])
608 AC_DEFINE([BROKEN_INET_NTOA]) 605 AC_DEFINE(BROKEN_INET_NTOA)
609 AC_DEFINE([SETEUID_BREAKS_SETUID]) 606 AC_DEFINE(SETEUID_BREAKS_SETUID)
610 AC_DEFINE([BROKEN_SETREUID]) 607 AC_DEFINE(BROKEN_SETREUID)
611 AC_DEFINE([BROKEN_SETREGID]) 608 AC_DEFINE(BROKEN_SETREGID)
612 AC_DEFINE([BROKEN_UPDWTMPX], [1], [updwtmpx is broken (if present)]) 609 AC_DEFINE(BROKEN_UPDWTMPX, 1, [updwtmpx is broken (if present)])
613 AC_DEFINE([WITH_ABBREV_NO_TTY]) 610 AC_DEFINE(WITH_ABBREV_NO_TTY)
614 AC_DEFINE([LOCKED_PASSWD_STRING], ["*LK*"]) 611 AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*")
615 ;; 612 ;;
616*-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) 613*-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
617 check_for_libcrypt_later=1 614 check_for_libcrypt_later=1
618 AC_DEFINE([PAM_TTY_KLUDGE]) 615 AC_DEFINE(PAM_TTY_KLUDGE)
619 AC_DEFINE([LOCKED_PASSWD_PREFIX], ["!"]) 616 AC_DEFINE(LOCKED_PASSWD_PREFIX, "!")
620 AC_DEFINE([SPT_TYPE], [SPT_REUSEARGV]) 617 AC_DEFINE(SPT_TYPE,SPT_REUSEARGV)
621 AC_DEFINE([_PATH_BTMP], ["/var/log/btmp"], [log for bad login attempts]) 618 AC_DEFINE(_PATH_BTMP, "/var/log/btmp", [log for bad login attempts])
622 AC_DEFINE([USE_BTMP], [1], [Use btmp to log bad logins]) 619 AC_DEFINE(USE_BTMP, 1, [Use btmp to log bad logins])
623 ;; 620 ;;
624*-*-linux*) 621*-*-linux*)
625 no_dev_ptmx=1 622 no_dev_ptmx=1
626 check_for_libcrypt_later=1 623 check_for_libcrypt_later=1
627 check_for_openpty_ctty_bug=1 624 check_for_openpty_ctty_bug=1
628 AC_DEFINE([PAM_TTY_KLUDGE], [1], 625 AC_DEFINE(PAM_TTY_KLUDGE, 1,
629 [Work around problematic Linux PAM modules handling of PAM_TTY]) 626 [Work around problematic Linux PAM modules handling of PAM_TTY])
630 AC_DEFINE([LOCKED_PASSWD_PREFIX], ["!"], 627 AC_DEFINE(LOCKED_PASSWD_PREFIX, "!",
631 [String used in /etc/passwd to denote locked account]) 628 [String used in /etc/passwd to denote locked account])
632 AC_DEFINE([SPT_TYPE], [SPT_REUSEARGV]) 629 AC_DEFINE(SPT_TYPE,SPT_REUSEARGV)
633 AC_DEFINE([LINK_OPNOTSUPP_ERRNO], [EPERM], 630 AC_DEFINE(LINK_OPNOTSUPP_ERRNO, EPERM,
634 [Define to whatever link() returns for "not supported" 631 [Define to whatever link() returns for "not supported"
635 if it doesn't return EOPNOTSUPP.]) 632 if it doesn't return EOPNOTSUPP.])
636 AC_DEFINE([_PATH_BTMP], ["/var/log/btmp"], [log for bad login attempts]) 633 AC_DEFINE(_PATH_BTMP, "/var/log/btmp", [log for bad login attempts])
637 AC_DEFINE([USE_BTMP]) 634 AC_DEFINE(USE_BTMP)
638 AC_DEFINE([LINUX_OOM_ADJUST], [1], [Adjust Linux out-of-memory killer]) 635 AC_DEFINE(LINUX_OOM_ADJUST, 1, [Adjust Linux out-of-memory killer])
639 inet6_default_4in6=yes 636 inet6_default_4in6=yes
640 case `uname -r` in 637 case `uname -r` in
641 1.*|2.0.*) 638 1.*|2.0.*)
642 AC_DEFINE([BROKEN_CMSG_TYPE], [1], 639 AC_DEFINE(BROKEN_CMSG_TYPE, 1,
643 [Define if cmsg_type is not passed correctly]) 640 [Define if cmsg_type is not passed correctly])
644 ;; 641 ;;
645 esac 642 esac
646 # tun(4) forwarding compat code 643 # tun(4) forwarding compat code
647 AC_CHECK_HEADERS([linux/if_tun.h]) 644 AC_CHECK_HEADERS(linux/if_tun.h)
648 if test "x$ac_cv_header_linux_if_tun_h" = "xyes" ; then 645 if test "x$ac_cv_header_linux_if_tun_h" = "xyes" ; then
649 AC_DEFINE([SSH_TUN_LINUX], [1], 646 AC_DEFINE(SSH_TUN_LINUX, 1,
650 [Open tunnel devices the Linux tun/tap way]) 647 [Open tunnel devices the Linux tun/tap way])
651 AC_DEFINE([SSH_TUN_COMPAT_AF], [1], 648 AC_DEFINE(SSH_TUN_COMPAT_AF, 1,
652 [Use tunnel device compatibility to OpenBSD]) 649 [Use tunnel device compatibility to OpenBSD])
653 AC_DEFINE([SSH_TUN_PREPEND_AF], [1], 650 AC_DEFINE(SSH_TUN_PREPEND_AF, 1,
654 [Prepend the address family to IP tunnel traffic]) 651 [Prepend the address family to IP tunnel traffic])
655 fi 652 fi
656 ;; 653 ;;
657mips-sony-bsd|mips-sony-newsos4) 654mips-sony-bsd|mips-sony-newsos4)
658 AC_DEFINE([NEED_SETPGRP], [1], [Need setpgrp to acquire controlling tty]) 655 AC_DEFINE(NEED_SETPGRP, 1, [Need setpgrp to acquire controlling tty])
659 SONY=1 656 SONY=1
660 ;; 657 ;;
661*-*-netbsd*) 658*-*-netbsd*)
@@ -663,91 +660,91 @@ mips-sony-bsd|mips-sony-newsos4)
663 if test "x$withval" != "xno" ; then 660 if test "x$withval" != "xno" ; then
664 need_dash_r=1 661 need_dash_r=1
665 fi 662 fi
666 AC_DEFINE([SSH_TUN_FREEBSD], [1], [Open tunnel devices the FreeBSD way]) 663 AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way])
667 AC_CHECK_HEADER([net/if_tap.h], , 664 AC_CHECK_HEADER([net/if_tap.h], ,
668 AC_DEFINE([SSH_TUN_NO_L2], [1], [No layer 2 tunnel support])) 665 AC_DEFINE(SSH_TUN_NO_L2, 1, [No layer 2 tunnel support]))
669 AC_DEFINE([SSH_TUN_PREPEND_AF], [1], 666 AC_DEFINE(SSH_TUN_PREPEND_AF, 1,
670 [Prepend the address family to IP tunnel traffic]) 667 [Prepend the address family to IP tunnel traffic])
671 ;; 668 ;;
672*-*-freebsd*) 669*-*-freebsd*)
673 check_for_libcrypt_later=1 670 check_for_libcrypt_later=1
674 AC_DEFINE([LOCKED_PASSWD_PREFIX], ["*LOCKED*"], [Account locked with pw(1)]) 671 AC_DEFINE(LOCKED_PASSWD_PREFIX, "*LOCKED*", [Account locked with pw(1)])
675 AC_DEFINE([SSH_TUN_FREEBSD], [1], [Open tunnel devices the FreeBSD way]) 672 AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way])
676 AC_CHECK_HEADER([net/if_tap.h], , 673 AC_CHECK_HEADER([net/if_tap.h], ,
677 AC_DEFINE([SSH_TUN_NO_L2], [1], [No layer 2 tunnel support])) 674 AC_DEFINE(SSH_TUN_NO_L2, 1, [No layer 2 tunnel support]))
678 AC_DEFINE([BROKEN_GLOB], [1], [FreeBSD glob does not do what we need]) 675 AC_DEFINE(BROKEN_GLOB, 1, [FreeBSD glob does not do what we need])
679 ;; 676 ;;
680*-*-bsdi*) 677*-*-bsdi*)
681 AC_DEFINE([SETEUID_BREAKS_SETUID]) 678 AC_DEFINE(SETEUID_BREAKS_SETUID)
682 AC_DEFINE([BROKEN_SETREUID]) 679 AC_DEFINE(BROKEN_SETREUID)
683 AC_DEFINE([BROKEN_SETREGID]) 680 AC_DEFINE(BROKEN_SETREGID)
684 ;; 681 ;;
685*-next-*) 682*-next-*)
686 conf_lastlog_location="/usr/adm/lastlog" 683 conf_lastlog_location="/usr/adm/lastlog"
687 conf_utmp_location=/etc/utmp 684 conf_utmp_location=/etc/utmp
688 conf_wtmp_location=/usr/adm/wtmp 685 conf_wtmp_location=/usr/adm/wtmp
689 MAIL=/usr/spool/mail 686 MAIL=/usr/spool/mail
690 AC_DEFINE([HAVE_NEXT], [1], [Define if you are on NeXT]) 687 AC_DEFINE(HAVE_NEXT, 1, [Define if you are on NeXT])
691 AC_DEFINE([BROKEN_REALPATH]) 688 AC_DEFINE(BROKEN_REALPATH)
692 AC_DEFINE([USE_PIPES]) 689 AC_DEFINE(USE_PIPES)
693 AC_DEFINE([BROKEN_SAVED_UIDS], [1], [Needed for NeXT]) 690 AC_DEFINE(BROKEN_SAVED_UIDS, 1, [Needed for NeXT])
694 ;; 691 ;;
695*-*-openbsd*) 692*-*-openbsd*)
696 AC_DEFINE([HAVE_ATTRIBUTE__SENTINEL__], [1], [OpenBSD's gcc has sentinel]) 693 AC_DEFINE(HAVE_ATTRIBUTE__SENTINEL__, 1, [OpenBSD's gcc has sentinel])
697 AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD's gcc has bounded]) 694 AC_DEFINE(HAVE_ATTRIBUTE__BOUNDED__, 1, [OpenBSD's gcc has bounded])
698 AC_DEFINE([SSH_TUN_OPENBSD], [1], [Open tunnel devices the OpenBSD way]) 695 AC_DEFINE(SSH_TUN_OPENBSD, 1, [Open tunnel devices the OpenBSD way])
699 AC_DEFINE([SYSLOG_R_SAFE_IN_SIGHAND], [1], 696 AC_DEFINE(SYSLOG_R_SAFE_IN_SIGHAND, 1,
700 [syslog_r function is safe to use in in a signal handler]) 697 [syslog_r function is safe to use in in a signal handler])
701 ;; 698 ;;
702*-*-solaris*) 699*-*-solaris*)
703 if test "x$withval" != "xno" ; then 700 if test "x$withval" != "xno" ; then
704 need_dash_r=1 701 need_dash_r=1
705 fi 702 fi
706 AC_DEFINE([PAM_SUN_CODEBASE]) 703 AC_DEFINE(PAM_SUN_CODEBASE)
707 AC_DEFINE([LOGIN_NEEDS_UTMPX]) 704 AC_DEFINE(LOGIN_NEEDS_UTMPX)
708 AC_DEFINE([LOGIN_NEEDS_TERM], [1], 705 AC_DEFINE(LOGIN_NEEDS_TERM, 1,
709 [Some versions of /bin/login need the TERM supplied 706 [Some versions of /bin/login need the TERM supplied
710 on the commandline]) 707 on the commandline])
711 AC_DEFINE([PAM_TTY_KLUDGE]) 708 AC_DEFINE(PAM_TTY_KLUDGE)
712 AC_DEFINE([SSHPAM_CHAUTHTOK_NEEDS_RUID], [1], 709 AC_DEFINE(SSHPAM_CHAUTHTOK_NEEDS_RUID, 1,
713 [Define if pam_chauthtok wants real uid set 710 [Define if pam_chauthtok wants real uid set
714 to the unpriv'ed user]) 711 to the unpriv'ed user])
715 AC_DEFINE([LOCKED_PASSWD_STRING], ["*LK*"]) 712 AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*")
716 # Pushing STREAMS modules will cause sshd to acquire a controlling tty. 713 # Pushing STREAMS modules will cause sshd to acquire a controlling tty.
717 AC_DEFINE([SSHD_ACQUIRES_CTTY], [1], 714 AC_DEFINE(SSHD_ACQUIRES_CTTY, 1,
718 [Define if sshd somehow reacquires a controlling TTY 715 [Define if sshd somehow reacquires a controlling TTY
719 after setsid()]) 716 after setsid()])
720 AC_DEFINE([PASSWD_NEEDS_USERNAME], [1], [must supply username to passwd 717 AC_DEFINE(PASSWD_NEEDS_USERNAME, 1, [must supply username to passwd
721 in case the name is longer than 8 chars]) 718 in case the name is longer than 8 chars])
722 AC_DEFINE([BROKEN_TCGETATTR_ICANON], [1], [tcgetattr with ICANON may hang]) 719 AC_DEFINE(BROKEN_TCGETATTR_ICANON, 1, [tcgetattr with ICANON may hang])
723 external_path_file=/etc/default/login 720 external_path_file=/etc/default/login
724 # hardwire lastlog location (can't detect it on some versions) 721 # hardwire lastlog location (can't detect it on some versions)
725 conf_lastlog_location="/var/adm/lastlog" 722 conf_lastlog_location="/var/adm/lastlog"
726 AC_MSG_CHECKING([for obsolete utmp and wtmp in solaris2.x]) 723 AC_MSG_CHECKING(for obsolete utmp and wtmp in solaris2.x)
727 sol2ver=`echo "$host"| sed -e 's/.*[[0-9]]\.//'` 724 sol2ver=`echo "$host"| sed -e 's/.*[[0-9]]\.//'`
728 if test "$sol2ver" -ge 8; then 725 if test "$sol2ver" -ge 8; then
729 AC_MSG_RESULT([yes]) 726 AC_MSG_RESULT(yes)
730 AC_DEFINE([DISABLE_UTMP]) 727 AC_DEFINE(DISABLE_UTMP)
731 AC_DEFINE([DISABLE_WTMP], [1], 728 AC_DEFINE(DISABLE_WTMP, 1,
732 [Define if you don't want to use wtmp]) 729 [Define if you don't want to use wtmp])
733 else 730 else
734 AC_MSG_RESULT([no]) 731 AC_MSG_RESULT(no)
735 fi 732 fi
736 AC_ARG_WITH([solaris-contracts], 733 AC_ARG_WITH(solaris-contracts,
737 [ --with-solaris-contracts Enable Solaris process contracts (experimental)], 734 [ --with-solaris-contracts Enable Solaris process contracts (experimental)],
738 [ 735 [
739 AC_CHECK_LIB([contract], [ct_tmpl_activate], 736 AC_CHECK_LIB(contract, ct_tmpl_activate,
740 [ AC_DEFINE([USE_SOLARIS_PROCESS_CONTRACTS], [1], 737 [ AC_DEFINE(USE_SOLARIS_PROCESS_CONTRACTS, 1,
741 [Define if you have Solaris process contracts]) 738 [Define if you have Solaris process contracts])
742 SSHDLIBS="$SSHDLIBS -lcontract" 739 SSHDLIBS="$SSHDLIBS -lcontract"
743 SPC_MSG="yes" ], ) 740 SPC_MSG="yes" ], )
744 ], 741 ],
745 ) 742 )
746 AC_ARG_WITH([solaris-projects], 743 AC_ARG_WITH(solaris-projects,
747 [ --with-solaris-projects Enable Solaris projects (experimental)], 744 [ --with-solaris-projects Enable Solaris projects (experimental)],
748 [ 745 [
749 AC_CHECK_LIB([project], [setproject], 746 AC_CHECK_LIB(project, setproject,
750 [ AC_DEFINE([USE_SOLARIS_PROJECTS], [1], 747 [ AC_DEFINE(USE_SOLARIS_PROJECTS, 1,
751 [Define if you have Solaris projects]) 748 [Define if you have Solaris projects])
752 SSHDLIBS="$SSHDLIBS -lproject" 749 SSHDLIBS="$SSHDLIBS -lproject"
753 SP_MSG="yes" ], ) 750 SP_MSG="yes" ], )
@@ -756,33 +753,33 @@ mips-sony-bsd|mips-sony-newsos4)
756 ;; 753 ;;
757*-*-sunos4*) 754*-*-sunos4*)
758 CPPFLAGS="$CPPFLAGS -DSUNOS4" 755 CPPFLAGS="$CPPFLAGS -DSUNOS4"
759 AC_CHECK_FUNCS([getpwanam]) 756 AC_CHECK_FUNCS(getpwanam)
760 AC_DEFINE([PAM_SUN_CODEBASE]) 757 AC_DEFINE(PAM_SUN_CODEBASE)
761 conf_utmp_location=/etc/utmp 758 conf_utmp_location=/etc/utmp
762 conf_wtmp_location=/var/adm/wtmp 759 conf_wtmp_location=/var/adm/wtmp
763 conf_lastlog_location=/var/adm/lastlog 760 conf_lastlog_location=/var/adm/lastlog
764 AC_DEFINE([USE_PIPES]) 761 AC_DEFINE(USE_PIPES)
765 ;; 762 ;;
766*-ncr-sysv*) 763*-ncr-sysv*)
767 LIBS="$LIBS -lc89" 764 LIBS="$LIBS -lc89"
768 AC_DEFINE([USE_PIPES]) 765 AC_DEFINE(USE_PIPES)
769 AC_DEFINE([SSHD_ACQUIRES_CTTY]) 766 AC_DEFINE(SSHD_ACQUIRES_CTTY)
770 AC_DEFINE([SETEUID_BREAKS_SETUID]) 767 AC_DEFINE(SETEUID_BREAKS_SETUID)
771 AC_DEFINE([BROKEN_SETREUID]) 768 AC_DEFINE(BROKEN_SETREUID)
772 AC_DEFINE([BROKEN_SETREGID]) 769 AC_DEFINE(BROKEN_SETREGID)
773 ;; 770 ;;
774*-sni-sysv*) 771*-sni-sysv*)
775 # /usr/ucblib MUST NOT be searched on ReliantUNIX 772 # /usr/ucblib MUST NOT be searched on ReliantUNIX
776 AC_CHECK_LIB([dl], [dlsym], ,) 773 AC_CHECK_LIB(dl, dlsym, ,)
777 # -lresolv needs to be at the end of LIBS or DNS lookups break 774 # -lresolv needs to be at the end of LIBS or DNS lookups break
778 AC_CHECK_LIB([resolv], [res_query], [ LIBS="$LIBS -lresolv" ]) 775 AC_CHECK_LIB(resolv, res_query, [ LIBS="$LIBS -lresolv" ])
779 IPADDR_IN_DISPLAY=yes 776 IPADDR_IN_DISPLAY=yes
780 AC_DEFINE([USE_PIPES]) 777 AC_DEFINE(USE_PIPES)
781 AC_DEFINE([IP_TOS_IS_BROKEN]) 778 AC_DEFINE(IP_TOS_IS_BROKEN)
782 AC_DEFINE([SETEUID_BREAKS_SETUID]) 779 AC_DEFINE(SETEUID_BREAKS_SETUID)
783 AC_DEFINE([BROKEN_SETREUID]) 780 AC_DEFINE(BROKEN_SETREUID)
784 AC_DEFINE([BROKEN_SETREGID]) 781 AC_DEFINE(BROKEN_SETREGID)
785 AC_DEFINE([SSHD_ACQUIRES_CTTY]) 782 AC_DEFINE(SSHD_ACQUIRES_CTTY)
786 external_path_file=/etc/default/login 783 external_path_file=/etc/default/login
787 # /usr/ucblib/libucb.a no longer needed on ReliantUNIX 784 # /usr/ucblib/libucb.a no longer needed on ReliantUNIX
788 # Attention: always take care to bind libsocket and libnsl before libc, 785 # Attention: always take care to bind libsocket and libnsl before libc,
@@ -790,36 +787,36 @@ mips-sony-bsd|mips-sony-newsos4)
790 ;; 787 ;;
791# UnixWare 1.x, UnixWare 2.x, and others based on code from Univel. 788# UnixWare 1.x, UnixWare 2.x, and others based on code from Univel.
792*-*-sysv4.2*) 789*-*-sysv4.2*)
793 AC_DEFINE([USE_PIPES]) 790 AC_DEFINE(USE_PIPES)
794 AC_DEFINE([SETEUID_BREAKS_SETUID]) 791 AC_DEFINE(SETEUID_BREAKS_SETUID)
795 AC_DEFINE([BROKEN_SETREUID]) 792 AC_DEFINE(BROKEN_SETREUID)
796 AC_DEFINE([BROKEN_SETREGID]) 793 AC_DEFINE(BROKEN_SETREGID)
797 AC_DEFINE([PASSWD_NEEDS_USERNAME], [1], [must supply username to passwd]) 794 AC_DEFINE(PASSWD_NEEDS_USERNAME, 1, [must supply username to passwd])
798 AC_DEFINE([LOCKED_PASSWD_STRING], ["*LK*"]) 795 AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*")
799 ;; 796 ;;
800# UnixWare 7.x, OpenUNIX 8 797# UnixWare 7.x, OpenUNIX 8
801*-*-sysv5*) 798*-*-sysv5*)
802 CPPFLAGS="$CPPFLAGS -Dvsnprintf=_xvsnprintf -Dsnprintf=_xsnprintf" 799 CPPFLAGS="$CPPFLAGS -Dvsnprintf=_xvsnprintf -Dsnprintf=_xsnprintf"
803 AC_DEFINE([UNIXWARE_LONG_PASSWORDS], [1], [Support passwords > 8 chars]) 800 AC_DEFINE(UNIXWARE_LONG_PASSWORDS, 1, [Support passwords > 8 chars])
804 AC_DEFINE([USE_PIPES]) 801 AC_DEFINE(USE_PIPES)
805 AC_DEFINE([SETEUID_BREAKS_SETUID]) 802 AC_DEFINE(SETEUID_BREAKS_SETUID)
806 AC_DEFINE([BROKEN_GETADDRINFO]) 803 AC_DEFINE(BROKEN_GETADDRINFO)
807 AC_DEFINE([BROKEN_SETREUID]) 804 AC_DEFINE(BROKEN_SETREUID)
808 AC_DEFINE([BROKEN_SETREGID]) 805 AC_DEFINE(BROKEN_SETREGID)
809 AC_DEFINE([PASSWD_NEEDS_USERNAME]) 806 AC_DEFINE(PASSWD_NEEDS_USERNAME)
810 case "$host" in 807 case "$host" in
811 *-*-sysv5SCO_SV*) # SCO OpenServer 6.x 808 *-*-sysv5SCO_SV*) # SCO OpenServer 6.x
812 TEST_SHELL=/u95/bin/sh 809 TEST_SHELL=/u95/bin/sh
813 AC_DEFINE([BROKEN_LIBIAF], [1], 810 AC_DEFINE(BROKEN_LIBIAF, 1,
814 [ia_uinfo routines not supported by OS yet]) 811 [ia_uinfo routines not supported by OS yet])
815 AC_DEFINE([BROKEN_UPDWTMPX]) 812 AC_DEFINE(BROKEN_UPDWTMPX)
816 AC_CHECK_LIB([prot], [getluid], [ LIBS="$LIBS -lprot" 813 AC_CHECK_LIB(prot, getluid,[ LIBS="$LIBS -lprot"
817 AC_CHECK_FUNCS([getluid setluid], , , [-lprot]) 814 AC_CHECK_FUNCS(getluid setluid,,,-lprot)
818 AC_DEFINE([HAVE_SECUREWARE]) 815 AC_DEFINE(HAVE_SECUREWARE)
819 AC_DEFINE([DISABLE_SHADOW]) 816 AC_DEFINE(DISABLE_SHADOW)
820 ], , ) 817 ],,)
821 ;; 818 ;;
822 *) AC_DEFINE([LOCKED_PASSWD_STRING], ["*LK*"]) 819 *) AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*")
823 check_for_libcrypt_later=1 820 check_for_libcrypt_later=1
824 ;; 821 ;;
825 esac 822 esac
@@ -837,128 +834,132 @@ mips-sony-bsd|mips-sony-newsos4)
837 fi 834 fi
838 LIBS="$LIBS -lprot -lx -ltinfo -lm" 835 LIBS="$LIBS -lprot -lx -ltinfo -lm"
839 no_dev_ptmx=1 836 no_dev_ptmx=1
840 AC_DEFINE([USE_PIPES]) 837 AC_DEFINE(USE_PIPES)
841 AC_DEFINE([HAVE_SECUREWARE]) 838 AC_DEFINE(HAVE_SECUREWARE)
842 AC_DEFINE([DISABLE_SHADOW]) 839 AC_DEFINE(DISABLE_SHADOW)
843 AC_DEFINE([DISABLE_FD_PASSING]) 840 AC_DEFINE(DISABLE_FD_PASSING)
844 AC_DEFINE([SETEUID_BREAKS_SETUID]) 841 AC_DEFINE(SETEUID_BREAKS_SETUID)
845 AC_DEFINE([BROKEN_GETADDRINFO]) 842 AC_DEFINE(BROKEN_GETADDRINFO)
846 AC_DEFINE([BROKEN_SETREUID]) 843 AC_DEFINE(BROKEN_SETREUID)
847 AC_DEFINE([BROKEN_SETREGID]) 844 AC_DEFINE(BROKEN_SETREGID)
848 AC_DEFINE([WITH_ABBREV_NO_TTY]) 845 AC_DEFINE(WITH_ABBREV_NO_TTY)
849 AC_DEFINE([BROKEN_UPDWTMPX]) 846 AC_DEFINE(BROKEN_UPDWTMPX)
850 AC_DEFINE([PASSWD_NEEDS_USERNAME]) 847 AC_DEFINE(PASSWD_NEEDS_USERNAME)
851 AC_CHECK_FUNCS([getluid setluid]) 848 AC_CHECK_FUNCS(getluid setluid)
852 MANTYPE=man 849 MANTYPE=man
853 TEST_SHELL=ksh 850 TEST_SHELL=ksh
854 ;; 851 ;;
855*-*-unicosmk*) 852*-*-unicosmk*)
856 AC_DEFINE([NO_SSH_LASTLOG], [1], 853 AC_DEFINE(NO_SSH_LASTLOG, 1,
857 [Define if you don't want to use lastlog in session.c]) 854 [Define if you don't want to use lastlog in session.c])
858 AC_DEFINE([SETEUID_BREAKS_SETUID]) 855 AC_DEFINE(SETEUID_BREAKS_SETUID)
859 AC_DEFINE([BROKEN_SETREUID]) 856 AC_DEFINE(BROKEN_SETREUID)
860 AC_DEFINE([BROKEN_SETREGID]) 857 AC_DEFINE(BROKEN_SETREGID)
861 AC_DEFINE([USE_PIPES]) 858 AC_DEFINE(USE_PIPES)
862 AC_DEFINE([DISABLE_FD_PASSING]) 859 AC_DEFINE(DISABLE_FD_PASSING)
863 LDFLAGS="$LDFLAGS" 860 LDFLAGS="$LDFLAGS"
864 LIBS="$LIBS -lgen -lrsc -lshare -luex -lacm" 861 LIBS="$LIBS -lgen -lrsc -lshare -luex -lacm"
865 MANTYPE=cat 862 MANTYPE=cat
866 ;; 863 ;;
867*-*-unicosmp*) 864*-*-unicosmp*)
868 AC_DEFINE([SETEUID_BREAKS_SETUID]) 865 AC_DEFINE(SETEUID_BREAKS_SETUID)
869 AC_DEFINE([BROKEN_SETREUID]) 866 AC_DEFINE(BROKEN_SETREUID)
870 AC_DEFINE([BROKEN_SETREGID]) 867 AC_DEFINE(BROKEN_SETREGID)
871 AC_DEFINE([WITH_ABBREV_NO_TTY]) 868 AC_DEFINE(WITH_ABBREV_NO_TTY)
872 AC_DEFINE([USE_PIPES]) 869 AC_DEFINE(USE_PIPES)
873 AC_DEFINE([DISABLE_FD_PASSING]) 870 AC_DEFINE(DISABLE_FD_PASSING)
874 LDFLAGS="$LDFLAGS" 871 LDFLAGS="$LDFLAGS"
875 LIBS="$LIBS -lgen -lacid -ldb" 872 LIBS="$LIBS -lgen -lacid -ldb"
876 MANTYPE=cat 873 MANTYPE=cat
877 ;; 874 ;;
878*-*-unicos*) 875*-*-unicos*)
879 AC_DEFINE([SETEUID_BREAKS_SETUID]) 876 AC_DEFINE(SETEUID_BREAKS_SETUID)
880 AC_DEFINE([BROKEN_SETREUID]) 877 AC_DEFINE(BROKEN_SETREUID)
881 AC_DEFINE([BROKEN_SETREGID]) 878 AC_DEFINE(BROKEN_SETREGID)
882 AC_DEFINE([USE_PIPES]) 879 AC_DEFINE(USE_PIPES)
883 AC_DEFINE([DISABLE_FD_PASSING]) 880 AC_DEFINE(DISABLE_FD_PASSING)
884 AC_DEFINE([NO_SSH_LASTLOG]) 881 AC_DEFINE(NO_SSH_LASTLOG)
885 LDFLAGS="$LDFLAGS -Wl,-Dmsglevel=334:fatal" 882 LDFLAGS="$LDFLAGS -Wl,-Dmsglevel=334:fatal"
886 LIBS="$LIBS -lgen -lrsc -lshare -luex -lacm" 883 LIBS="$LIBS -lgen -lrsc -lshare -luex -lacm"
887 MANTYPE=cat 884 MANTYPE=cat
888 ;; 885 ;;
889*-dec-osf*) 886*-dec-osf*)
890 AC_MSG_CHECKING([for Digital Unix SIA]) 887 AC_MSG_CHECKING(for Digital Unix SIA)
891 no_osfsia="" 888 no_osfsia=""
892 AC_ARG_WITH([osfsia], 889 AC_ARG_WITH(osfsia,
893 [ --with-osfsia Enable Digital Unix SIA], 890 [ --with-osfsia Enable Digital Unix SIA],
894 [ 891 [
895 if test "x$withval" = "xno" ; then 892 if test "x$withval" = "xno" ; then
896 AC_MSG_RESULT([disabled]) 893 AC_MSG_RESULT(disabled)
897 no_osfsia=1 894 no_osfsia=1
898 fi 895 fi
899 ], 896 ],
900 ) 897 )
901 if test -z "$no_osfsia" ; then 898 if test -z "$no_osfsia" ; then
902 if test -f /etc/sia/matrix.conf; then 899 if test -f /etc/sia/matrix.conf; then
903 AC_MSG_RESULT([yes]) 900 AC_MSG_RESULT(yes)
904 AC_DEFINE([HAVE_OSF_SIA], [1], 901 AC_DEFINE(HAVE_OSF_SIA, 1,
905 [Define if you have Digital Unix Security 902 [Define if you have Digital Unix Security
906 Integration Architecture]) 903 Integration Architecture])
907 AC_DEFINE([DISABLE_LOGIN], [1], 904 AC_DEFINE(DISABLE_LOGIN, 1,
908 [Define if you don't want to use your 905 [Define if you don't want to use your
909 system's login() call]) 906 system's login() call])
910 AC_DEFINE([DISABLE_FD_PASSING]) 907 AC_DEFINE(DISABLE_FD_PASSING)
911 LIBS="$LIBS -lsecurity -ldb -lm -laud" 908 LIBS="$LIBS -lsecurity -ldb -lm -laud"
912 SIA_MSG="yes" 909 SIA_MSG="yes"
913 else 910 else
914 AC_MSG_RESULT([no]) 911 AC_MSG_RESULT(no)
915 AC_DEFINE([LOCKED_PASSWD_SUBSTR], ["Nologin"], 912 AC_DEFINE(LOCKED_PASSWD_SUBSTR, "Nologin",
916 [String used in /etc/passwd to denote locked account]) 913 [String used in /etc/passwd to denote locked account])
917 fi 914 fi
918 fi 915 fi
919 AC_DEFINE([BROKEN_GETADDRINFO]) 916 AC_DEFINE(BROKEN_GETADDRINFO)
920 AC_DEFINE([SETEUID_BREAKS_SETUID]) 917 AC_DEFINE(SETEUID_BREAKS_SETUID)
921 AC_DEFINE([BROKEN_SETREUID]) 918 AC_DEFINE(BROKEN_SETREUID)
922 AC_DEFINE([BROKEN_SETREGID]) 919 AC_DEFINE(BROKEN_SETREGID)
923 AC_DEFINE([BROKEN_READV_COMPARISON], [1], [Can't do comparisons on readv]) 920 AC_DEFINE(BROKEN_READV_COMPARISON, 1, [Can't do comparisons on readv])
924 ;; 921 ;;
925 922
926*-*-nto-qnx*) 923*-*-nto-qnx*)
927 AC_DEFINE([USE_PIPES]) 924 AC_DEFINE(USE_PIPES)
928 AC_DEFINE([NO_X11_UNIX_SOCKETS]) 925 AC_DEFINE(NO_X11_UNIX_SOCKETS)
929 AC_DEFINE([MISSING_NFDBITS], [1], [Define on *nto-qnx systems]) 926 AC_DEFINE(MISSING_NFDBITS, 1, [Define on *nto-qnx systems])
930 AC_DEFINE([MISSING_HOWMANY], [1], [Define on *nto-qnx systems]) 927 AC_DEFINE(MISSING_HOWMANY, 1, [Define on *nto-qnx systems])
931 AC_DEFINE([MISSING_FD_MASK], [1], [Define on *nto-qnx systems]) 928 AC_DEFINE(MISSING_FD_MASK, 1, [Define on *nto-qnx systems])
932 AC_DEFINE([DISABLE_LASTLOG]) 929 AC_DEFINE(DISABLE_LASTLOG)
933 AC_DEFINE([SSHD_ACQUIRES_CTTY]) 930 AC_DEFINE(SSHD_ACQUIRES_CTTY)
934 AC_DEFINE([BROKEN_SHADOW_EXPIRE], [1], [QNX shadow support is broken]) 931 AC_DEFINE(BROKEN_SHADOW_EXPIRE, 1, [QNX shadow support is broken])
935 enable_etc_default_login=no # has incompatible /etc/default/login 932 enable_etc_default_login=no # has incompatible /etc/default/login
936 case "$host" in 933 case "$host" in
937 *-*-nto-qnx6*) 934 *-*-nto-qnx6*)
938 AC_DEFINE([DISABLE_FD_PASSING]) 935 AC_DEFINE(DISABLE_FD_PASSING)
939 ;; 936 ;;
940 esac 937 esac
941 ;; 938 ;;
942 939
943*-*-ultrix*) 940*-*-ultrix*)
944 AC_DEFINE([BROKEN_GETGROUPS], [1], [getgroups(0,NULL) will return -1]) 941 AC_DEFINE(BROKEN_GETGROUPS, 1, [getgroups(0,NULL) will return -1])
945 AC_DEFINE([BROKEN_MMAP], [1], [Ultrix mmap can't map files]) 942 AC_DEFINE(BROKEN_MMAP, 1, [Ultrix mmap can't map files])
946 AC_DEFINE([NEED_SETPGRP]) 943 AC_DEFINE(NEED_SETPGRP)
947 AC_DEFINE([HAVE_SYS_SYSLOG_H], [1], [Force use of sys/syslog.h on Ultrix]) 944 AC_DEFINE(HAVE_SYS_SYSLOG_H, 1, [Force use of sys/syslog.h on Ultrix])
948 ;; 945 ;;
949 946
950*-*-lynxos) 947*-*-lynxos)
951 CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__" 948 CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"
952 AC_DEFINE([MISSING_HOWMANY]) 949 AC_DEFINE(MISSING_HOWMANY)
953 AC_DEFINE([BROKEN_SETVBUF], [1], [LynxOS has broken setvbuf() implementation]) 950 AC_DEFINE(BROKEN_SETVBUF, 1, [LynxOS has broken setvbuf() implementation])
954 ;; 951 ;;
955esac 952esac
956 953
957AC_MSG_CHECKING([compiler and flags for sanity]) 954AC_MSG_CHECKING(compiler and flags for sanity)
958AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <stdio.h> ]], [[ exit(0); ]])], 955AC_RUN_IFELSE(
959 [ AC_MSG_RESULT([yes]) ], 956 [AC_LANG_SOURCE([
957#include <stdio.h>
958int main(){exit(0);}
959 ])],
960 [ AC_MSG_RESULT(yes) ],
960 [ 961 [
961 AC_MSG_RESULT([no]) 962 AC_MSG_RESULT(no)
962 AC_MSG_ERROR([*** compiler cannot create working executables, check config.log ***]) 963 AC_MSG_ERROR([*** compiler cannot create working executables, check config.log ***])
963 ], 964 ],
964 [ AC_MSG_WARN([cross compiling: not checking compiler sanity]) ] 965 [ AC_MSG_WARN([cross compiling: not checking compiler sanity]) ]
@@ -966,12 +967,12 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <stdio.h> ]], [[ exit(0); ]])],
966 967
967dnl Checks for header files. 968dnl Checks for header files.
968# Checks for libraries. 969# Checks for libraries.
969AC_CHECK_FUNC([yp_match], , [AC_CHECK_LIB([nsl], [yp_match])]) 970AC_CHECK_FUNC(yp_match, , AC_CHECK_LIB(nsl, yp_match))
970AC_CHECK_FUNC([setsockopt], , [AC_CHECK_LIB([socket], [setsockopt])]) 971AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
971 972
972dnl IRIX and Solaris 2.5.1 have dirname() in libgen 973dnl IRIX and Solaris 2.5.1 have dirname() in libgen
973AC_CHECK_FUNCS([dirname], [AC_CHECK_HEADERS([libgen.h])] , [ 974AC_CHECK_FUNCS(dirname, [AC_CHECK_HEADERS(libgen.h)] ,[
974 AC_CHECK_LIB([gen], [dirname], [ 975 AC_CHECK_LIB(gen, dirname,[
975 AC_CACHE_CHECK([for broken dirname], 976 AC_CACHE_CHECK([for broken dirname],
976 ac_cv_have_broken_dirname, [ 977 ac_cv_have_broken_dirname, [
977 save_LIBS="$LIBS" 978 save_LIBS="$LIBS"
@@ -1001,19 +1002,19 @@ int main(int argc, char **argv) {
1001 ]) 1002 ])
1002 if test "x$ac_cv_have_broken_dirname" = "xno" ; then 1003 if test "x$ac_cv_have_broken_dirname" = "xno" ; then
1003 LIBS="$LIBS -lgen" 1004 LIBS="$LIBS -lgen"
1004 AC_DEFINE([HAVE_DIRNAME]) 1005 AC_DEFINE(HAVE_DIRNAME)
1005 AC_CHECK_HEADERS([libgen.h]) 1006 AC_CHECK_HEADERS(libgen.h)
1006 fi 1007 fi
1007 ]) 1008 ])
1008]) 1009])
1009 1010
1010AC_CHECK_FUNC([getspnam], , 1011AC_CHECK_FUNC(getspnam, ,
1011 [AC_CHECK_LIB([gen], [getspnam], [LIBS="$LIBS -lgen"])]) 1012 AC_CHECK_LIB(gen, getspnam, LIBS="$LIBS -lgen"))
1012AC_SEARCH_LIBS([basename], [gen], [AC_DEFINE([HAVE_BASENAME], [1], 1013AC_SEARCH_LIBS(basename, gen, AC_DEFINE(HAVE_BASENAME, 1,
1013 [Define if you have the basename function.])]) 1014 [Define if you have the basename function.]))
1014 1015
1015dnl zlib is required 1016dnl zlib is required
1016AC_ARG_WITH([zlib], 1017AC_ARG_WITH(zlib,
1017 [ --with-zlib=PATH Use zlib in PATH], 1018 [ --with-zlib=PATH Use zlib in PATH],
1018 [ if test "x$withval" = "xno" ; then 1019 [ if test "x$withval" = "xno" ; then
1019 AC_MSG_ERROR([*** zlib is required ***]) 1020 AC_MSG_ERROR([*** zlib is required ***])
@@ -1039,8 +1040,8 @@ AC_ARG_WITH([zlib],
1039 fi ] 1040 fi ]
1040) 1041)
1041 1042
1042AC_CHECK_HEADER([zlib.h], ,[AC_MSG_ERROR([*** zlib.h missing - please install first or check config.log ***])]) 1043AC_CHECK_HEADER([zlib.h], ,AC_MSG_ERROR([*** zlib.h missing - please install first or check config.log ***]))
1043AC_CHECK_LIB([z], [deflate], , 1044AC_CHECK_LIB(z, deflate, ,
1044 [ 1045 [
1045 saved_CPPFLAGS="$CPPFLAGS" 1046 saved_CPPFLAGS="$CPPFLAGS"
1046 saved_LDFLAGS="$LDFLAGS" 1047 saved_LDFLAGS="$LDFLAGS"
@@ -1053,7 +1054,7 @@ AC_CHECK_LIB([z], [deflate], ,
1053 fi 1054 fi
1054 CPPFLAGS="-I/usr/local/include ${saved_CPPFLAGS}" 1055 CPPFLAGS="-I/usr/local/include ${saved_CPPFLAGS}"
1055 LIBS="$LIBS -lz" 1056 LIBS="$LIBS -lz"
1056 AC_TRY_LINK_FUNC([deflate], [AC_DEFINE([HAVE_LIBZ])], 1057 AC_TRY_LINK_FUNC(deflate, AC_DEFINE(HAVE_LIBZ),
1057 [ 1058 [
1058 AC_MSG_ERROR([*** zlib missing - please install first or check config.log ***]) 1059 AC_MSG_ERROR([*** zlib missing - please install first or check config.log ***])
1059 ] 1060 ]
@@ -1061,7 +1062,7 @@ AC_CHECK_LIB([z], [deflate], ,
1061 ] 1062 ]
1062) 1063)
1063 1064
1064AC_ARG_WITH([zlib-version-check], 1065AC_ARG_WITH(zlib-version-check,
1065 [ --without-zlib-version-check Disable zlib version check], 1066 [ --without-zlib-version-check Disable zlib version check],
1066 [ if test "x$withval" = "xno" ; then 1067 [ if test "x$withval" = "xno" ; then
1067 zlib_check_nonfatal=1 1068 zlib_check_nonfatal=1
@@ -1069,12 +1070,12 @@ AC_ARG_WITH([zlib-version-check],
1069 ] 1070 ]
1070) 1071)
1071 1072
1072AC_MSG_CHECKING([for possibly buggy zlib]) 1073AC_MSG_CHECKING(for possibly buggy zlib)
1073AC_RUN_IFELSE([AC_LANG_PROGRAM([[ 1074AC_RUN_IFELSE([AC_LANG_SOURCE([[
1074#include <stdio.h> 1075#include <stdio.h>
1075#include <zlib.h> 1076#include <zlib.h>
1076 ]], 1077int main()
1077 [[ 1078{
1078 int a=0, b=0, c=0, d=0, n, v; 1079 int a=0, b=0, c=0, d=0, n, v;
1079 n = sscanf(ZLIB_VERSION, "%d.%d.%d.%d", &a, &b, &c, &d); 1080 n = sscanf(ZLIB_VERSION, "%d.%d.%d.%d", &a, &b, &c, &d);
1080 if (n != 3 && n != 4) 1081 if (n != 3 && n != 4)
@@ -1091,9 +1092,10 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1091 exit(0); 1092 exit(0);
1092 1093
1093 exit(2); 1094 exit(2);
1095}
1094 ]])], 1096 ]])],
1095 AC_MSG_RESULT([no]), 1097 AC_MSG_RESULT(no),
1096 [ AC_MSG_RESULT([yes]) 1098 [ AC_MSG_RESULT(yes)
1097 if test -z "$zlib_check_nonfatal" ; then 1099 if test -z "$zlib_check_nonfatal" ; then
1098 AC_MSG_ERROR([*** zlib too old - check config.log *** 1100 AC_MSG_ERROR([*** zlib too old - check config.log ***
1099Your reported zlib version has known security problems. It's possible your 1101Your reported zlib version has known security problems. It's possible your
@@ -1110,25 +1112,25 @@ See http://www.gzip.org/zlib/ for details.])
1110) 1112)
1111 1113
1112dnl UnixWare 2.x 1114dnl UnixWare 2.x
1113AC_CHECK_FUNC([strcasecmp], 1115AC_CHECK_FUNC(strcasecmp,
1114 [], [ AC_CHECK_LIB([resolv], [strcasecmp], [LIBS="$LIBS -lresolv"]) ] 1116 [], [ AC_CHECK_LIB(resolv, strcasecmp, LIBS="$LIBS -lresolv") ]
1115) 1117)
1116AC_CHECK_FUNCS([utimes], 1118AC_CHECK_FUNCS(utimes,
1117 [], [ AC_CHECK_LIB([c89], [utimes], [AC_DEFINE([HAVE_UTIMES]) 1119 [], [ AC_CHECK_LIB(c89, utimes, [AC_DEFINE(HAVE_UTIMES)
1118 LIBS="$LIBS -lc89"]) ] 1120 LIBS="$LIBS -lc89"]) ]
1119) 1121)
1120 1122
1121dnl Checks for libutil functions 1123dnl Checks for libutil functions
1122AC_CHECK_HEADERS([libutil.h]) 1124AC_CHECK_HEADERS(libutil.h)
1123AC_SEARCH_LIBS([login], [util bsd], [AC_DEFINE([HAVE_LOGIN], [1], 1125AC_SEARCH_LIBS(login, util bsd, [AC_DEFINE(HAVE_LOGIN, 1,
1124 [Define if your libraries define login()])]) 1126 [Define if your libraries define login()])])
1125AC_CHECK_FUNCS([fmt_scaled logout updwtmp logwtmp]) 1127AC_CHECK_FUNCS(fmt_scaled logout updwtmp logwtmp)
1126 1128
1127AC_FUNC_STRFTIME 1129AC_FUNC_STRFTIME
1128 1130
1129# Check for ALTDIRFUNC glob() extension 1131# Check for ALTDIRFUNC glob() extension
1130AC_MSG_CHECKING([for GLOB_ALTDIRFUNC support]) 1132AC_MSG_CHECKING(for GLOB_ALTDIRFUNC support)
1131AC_EGREP_CPP([FOUNDIT], 1133AC_EGREP_CPP(FOUNDIT,
1132 [ 1134 [
1133 #include <glob.h> 1135 #include <glob.h>
1134 #ifdef GLOB_ALTDIRFUNC 1136 #ifdef GLOB_ALTDIRFUNC
@@ -1136,83 +1138,87 @@ AC_EGREP_CPP([FOUNDIT],
1136 #endif 1138 #endif
1137 ], 1139 ],
1138 [ 1140 [
1139 AC_DEFINE([GLOB_HAS_ALTDIRFUNC], [1], 1141 AC_DEFINE(GLOB_HAS_ALTDIRFUNC, 1,
1140 [Define if your system glob() function has 1142 [Define if your system glob() function has
1141 the GLOB_ALTDIRFUNC extension]) 1143 the GLOB_ALTDIRFUNC extension])
1142 AC_MSG_RESULT([yes]) 1144 AC_MSG_RESULT(yes)
1143 ], 1145 ],
1144 [ 1146 [
1145 AC_MSG_RESULT([no]) 1147 AC_MSG_RESULT(no)
1146 ] 1148 ]
1147) 1149)
1148 1150
1149# Check for g.gl_matchc glob() extension 1151# Check for g.gl_matchc glob() extension
1150AC_MSG_CHECKING([for gl_matchc field in glob_t]) 1152AC_MSG_CHECKING(for gl_matchc field in glob_t)
1151AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <glob.h> ]], 1153AC_TRY_COMPILE(
1152 [[ glob_t g; g.gl_matchc = 1; ]])], 1154 [ #include <glob.h> ],
1155 [glob_t g; g.gl_matchc = 1;],
1153 [ 1156 [
1154 AC_DEFINE([GLOB_HAS_GL_MATCHC], [1], 1157 AC_DEFINE(GLOB_HAS_GL_MATCHC, 1,
1155 [Define if your system glob() function has 1158 [Define if your system glob() function has
1156 gl_matchc options in glob_t]) 1159 gl_matchc options in glob_t])
1157 AC_MSG_RESULT([yes]) 1160 AC_MSG_RESULT(yes)
1158 ], [ 1161 ],
1159 AC_MSG_RESULT([no]) 1162 [
1160]) 1163 AC_MSG_RESULT(no)
1164 ]
1165)
1161 1166
1162# Check for g.gl_statv glob() extension 1167# Check for g.gl_statv glob() extension
1163AC_MSG_CHECKING([for gl_statv and GLOB_KEEPSTAT extensions for glob]) 1168AC_MSG_CHECKING(for gl_statv and GLOB_KEEPSTAT extensions for glob)
1164AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <glob.h> ]], [[ 1169AC_TRY_COMPILE(
1170 [ #include <glob.h> ],
1171 [
1165#ifndef GLOB_KEEPSTAT 1172#ifndef GLOB_KEEPSTAT
1166#error "glob does not support GLOB_KEEPSTAT extension" 1173#error "glob does not support GLOB_KEEPSTAT extension"
1167#endif 1174#endif
1168glob_t g; 1175glob_t g;
1169g.gl_statv = NULL; 1176g.gl_statv = NULL;
1170]])], 1177],
1171 [ 1178 [
1172 AC_DEFINE([GLOB_HAS_GL_STATV], [1], 1179 AC_DEFINE(GLOB_HAS_GL_STATV, 1,
1173 [Define if your system glob() function has 1180 [Define if your system glob() function has
1174 gl_statv options in glob_t]) 1181 gl_statv options in glob_t])
1175 AC_MSG_RESULT([yes]) 1182 AC_MSG_RESULT(yes)
1176 ], [ 1183 ],
1177 AC_MSG_RESULT([no]) 1184 [
1178 1185 AC_MSG_RESULT(no)
1179]) 1186 ]
1187)
1180 1188
1181AC_CHECK_DECLS([GLOB_NOMATCH], , , [#include <glob.h>]) 1189AC_CHECK_DECLS(GLOB_NOMATCH, , , [#include <glob.h>])
1182 1190
1183AC_MSG_CHECKING([whether struct dirent allocates space for d_name]) 1191AC_MSG_CHECKING([whether struct dirent allocates space for d_name])
1184AC_RUN_IFELSE( 1192AC_RUN_IFELSE(
1185 [AC_LANG_PROGRAM([[ 1193 [AC_LANG_SOURCE([[
1186#include <sys/types.h> 1194#include <sys/types.h>
1187#include <dirent.h>]], 1195#include <dirent.h>
1188 [[ 1196int main(void){struct dirent d;exit(sizeof(d.d_name)<=sizeof(char));}
1189 struct dirent d;
1190 exit(sizeof(d.d_name)<=sizeof(char));
1191 ]])], 1197 ]])],
1192 [AC_MSG_RESULT([yes])], 1198 [AC_MSG_RESULT(yes)],
1193 [ 1199 [
1194 AC_MSG_RESULT([no]) 1200 AC_MSG_RESULT(no)
1195 AC_DEFINE([BROKEN_ONE_BYTE_DIRENT_D_NAME], [1], 1201 AC_DEFINE(BROKEN_ONE_BYTE_DIRENT_D_NAME, 1,
1196 [Define if your struct dirent expects you to 1202 [Define if your struct dirent expects you to
1197 allocate extra space for d_name]) 1203 allocate extra space for d_name])
1198 ], 1204 ],
1199 [ 1205 [
1200 AC_MSG_WARN([cross compiling: assuming BROKEN_ONE_BYTE_DIRENT_D_NAME]) 1206 AC_MSG_WARN([cross compiling: assuming BROKEN_ONE_BYTE_DIRENT_D_NAME])
1201 AC_DEFINE([BROKEN_ONE_BYTE_DIRENT_D_NAME]) 1207 AC_DEFINE(BROKEN_ONE_BYTE_DIRENT_D_NAME)
1202 ] 1208 ]
1203) 1209)
1204 1210
1205AC_MSG_CHECKING([for /proc/pid/fd directory]) 1211AC_MSG_CHECKING([for /proc/pid/fd directory])
1206if test -d "/proc/$$/fd" ; then 1212if test -d "/proc/$$/fd" ; then
1207 AC_DEFINE([HAVE_PROC_PID], [1], [Define if you have /proc/$pid/fd]) 1213 AC_DEFINE(HAVE_PROC_PID, 1, [Define if you have /proc/$pid/fd])
1208 AC_MSG_RESULT([yes]) 1214 AC_MSG_RESULT(yes)
1209else 1215else
1210 AC_MSG_RESULT([no]) 1216 AC_MSG_RESULT(no)
1211fi 1217fi
1212 1218
1213# Check whether user wants S/Key support 1219# Check whether user wants S/Key support
1214SKEY_MSG="no" 1220SKEY_MSG="no"
1215AC_ARG_WITH([skey], 1221AC_ARG_WITH(skey,
1216 [ --with-skey[[=PATH]] Enable S/Key support (optionally in PATH)], 1222 [ --with-skey[[=PATH]] Enable S/Key support (optionally in PATH)],
1217 [ 1223 [
1218 if test "x$withval" != "xno" ; then 1224 if test "x$withval" != "xno" ; then
@@ -1222,46 +1228,40 @@ AC_ARG_WITH([skey],
1222 LDFLAGS="$LDFLAGS -L${withval}/lib" 1228 LDFLAGS="$LDFLAGS -L${withval}/lib"
1223 fi 1229 fi
1224 1230
1225 AC_DEFINE([SKEY], [1], [Define if you want S/Key support]) 1231 AC_DEFINE(SKEY, 1, [Define if you want S/Key support])
1226 LIBS="-lskey $LIBS" 1232 LIBS="-lskey $LIBS"
1227 SKEY_MSG="yes" 1233 SKEY_MSG="yes"
1228 1234
1229 AC_MSG_CHECKING([for s/key support]) 1235 AC_MSG_CHECKING([for s/key support])
1230 AC_LINK_IFELSE( 1236 AC_LINK_IFELSE(
1231 [AC_LANG_PROGRAM([[ 1237 [AC_LANG_SOURCE([[
1232#include <stdio.h> 1238#include <stdio.h>
1233#include <skey.h> 1239#include <skey.h>
1234 ]], [[ 1240int main() { char *ff = skey_keyinfo(""); ff=""; exit(0); }
1235 char *ff = skey_keyinfo(""); ff="";
1236 exit(0);
1237 ]])], 1241 ]])],
1238 [AC_MSG_RESULT([yes])], 1242 [AC_MSG_RESULT(yes)],
1239 [ 1243 [
1240 AC_MSG_RESULT([no]) 1244 AC_MSG_RESULT(no)
1241 AC_MSG_ERROR([** Incomplete or missing s/key libraries.]) 1245 AC_MSG_ERROR([** Incomplete or missing s/key libraries.])
1242 ]) 1246 ])
1243 AC_MSG_CHECKING([if skeychallenge takes 4 arguments]) 1247 AC_MSG_CHECKING(if skeychallenge takes 4 arguments)
1244 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1248 AC_TRY_COMPILE(
1245#include <stdio.h> 1249 [#include <stdio.h>
1246#include <skey.h> 1250 #include <skey.h>],
1247 ]], [[ 1251 [(void)skeychallenge(NULL,"name","",0);],
1248 (void)skeychallenge(NULL,"name","",0); 1252 [AC_MSG_RESULT(yes)
1249 ]])], 1253 AC_DEFINE(SKEYCHALLENGE_4ARG, 1,
1250 [
1251 AC_MSG_RESULT([yes])
1252 AC_DEFINE([SKEYCHALLENGE_4ARG], [1],
1253 [Define if your skeychallenge() 1254 [Define if your skeychallenge()
1254 function takes 4 arguments (NetBSD)])], 1255 function takes 4 arguments (NetBSD)])],
1255 [ 1256 [AC_MSG_RESULT(no)]
1256 AC_MSG_RESULT([no]) 1257 )
1257 ])
1258 fi 1258 fi
1259 ] 1259 ]
1260) 1260)
1261 1261
1262# Check whether user wants TCP wrappers support 1262# Check whether user wants TCP wrappers support
1263TCPW_MSG="no" 1263TCPW_MSG="no"
1264AC_ARG_WITH([tcp-wrappers], 1264AC_ARG_WITH(tcp-wrappers,
1265 [ --with-tcp-wrappers[[=PATH]] Enable tcpwrappers support (optionally in PATH)], 1265 [ --with-tcp-wrappers[[=PATH]] Enable tcpwrappers support (optionally in PATH)],
1266 [ 1266 [
1267 if test "x$withval" != "xno" ; then 1267 if test "x$withval" != "xno" ; then
@@ -1290,26 +1290,28 @@ AC_ARG_WITH([tcp-wrappers],
1290 fi 1290 fi
1291 fi 1291 fi
1292 LIBS="-lwrap $LIBS" 1292 LIBS="-lwrap $LIBS"
1293 AC_MSG_CHECKING([for libwrap]) 1293 AC_MSG_CHECKING(for libwrap)
1294 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 1294 AC_TRY_LINK(
1295 [
1295#include <sys/types.h> 1296#include <sys/types.h>
1296#include <sys/socket.h> 1297#include <sys/socket.h>
1297#include <netinet/in.h> 1298#include <netinet/in.h>
1298#include <tcpd.h> 1299#include <tcpd.h>
1299int deny_severity = 0, allow_severity = 0; 1300 int deny_severity = 0, allow_severity = 0;
1300 ]], [[ 1301 ],
1301 hosts_access(0); 1302 [hosts_access(0);],
1302 ]])], [ 1303 [
1303 AC_MSG_RESULT([yes]) 1304 AC_MSG_RESULT(yes)
1304 AC_DEFINE([LIBWRAP], [1], 1305 AC_DEFINE(LIBWRAP, 1,
1305 [Define if you want 1306 [Define if you want
1306 TCP Wrappers support]) 1307 TCP Wrappers support])
1307 SSHDLIBS="$SSHDLIBS -lwrap" 1308 SSHDLIBS="$SSHDLIBS -lwrap"
1308 TCPW_MSG="yes" 1309 TCPW_MSG="yes"
1309 ], [ 1310 ],
1311 [
1310 AC_MSG_ERROR([*** libwrap missing]) 1312 AC_MSG_ERROR([*** libwrap missing])
1311 1313 ]
1312 ]) 1314 )
1313 LIBS="$saved_LIBS" 1315 LIBS="$saved_LIBS"
1314 fi 1316 fi
1315 ] 1317 ]
@@ -1317,18 +1319,18 @@ int deny_severity = 0, allow_severity = 0;
1317 1319
1318# Check whether user wants libedit support 1320# Check whether user wants libedit support
1319LIBEDIT_MSG="no" 1321LIBEDIT_MSG="no"
1320AC_ARG_WITH([libedit], 1322AC_ARG_WITH(libedit,
1321 [ --with-libedit[[=PATH]] Enable libedit support for sftp], 1323 [ --with-libedit[[=PATH]] Enable libedit support for sftp],
1322 [ if test "x$withval" != "xno" ; then 1324 [ if test "x$withval" != "xno" ; then
1323 if test "x$withval" = "xyes" ; then 1325 if test "x$withval" = "xyes" ; then
1324 AC_PATH_PROG([PKGCONFIG], [pkg-config], [no]) 1326 AC_PATH_PROG(PKGCONFIG, pkg-config, no)
1325 if test "x$PKGCONFIG" != "xno"; then 1327 if test "x$PKGCONFIG" != "xno"; then
1326 AC_MSG_CHECKING([if $PKGCONFIG knows about libedit]) 1328 AC_MSG_CHECKING(if $PKGCONFIG knows about libedit)
1327 if "$PKGCONFIG" libedit; then 1329 if "$PKGCONFIG" libedit; then
1328 AC_MSG_RESULT([yes]) 1330 AC_MSG_RESULT(yes)
1329 use_pkgconfig_for_libedit=yes 1331 use_pkgconfig_for_libedit=yes
1330 else 1332 else
1331 AC_MSG_RESULT([no]) 1333 AC_MSG_RESULT(no)
1332 fi 1334 fi
1333 fi 1335 fi
1334 else 1336 else
@@ -1346,70 +1348,73 @@ AC_ARG_WITH([libedit],
1346 LIBEDIT="-ledit -lcurses" 1348 LIBEDIT="-ledit -lcurses"
1347 fi 1349 fi
1348 OTHERLIBS=`echo $LIBEDIT | sed 's/-ledit//'` 1350 OTHERLIBS=`echo $LIBEDIT | sed 's/-ledit//'`
1349 AC_CHECK_LIB([edit], [el_init], 1351 AC_CHECK_LIB(edit, el_init,
1350 [ AC_DEFINE([USE_LIBEDIT], [1], [Use libedit for sftp]) 1352 [ AC_DEFINE(USE_LIBEDIT, 1, [Use libedit for sftp])
1351 LIBEDIT_MSG="yes" 1353 LIBEDIT_MSG="yes"
1352 AC_SUBST([LIBEDIT]) 1354 AC_SUBST(LIBEDIT)
1353 ], 1355 ],
1354 [ AC_MSG_ERROR([libedit not found]) ], 1356 [ AC_MSG_ERROR(libedit not found) ],
1355 [ $OTHERLIBS ] 1357 [ $OTHERLIBS ]
1356 ) 1358 )
1357 AC_MSG_CHECKING([if libedit version is compatible]) 1359 AC_MSG_CHECKING(if libedit version is compatible)
1358 AC_COMPILE_IFELSE( 1360 AC_COMPILE_IFELSE(
1359 [AC_LANG_PROGRAM([[ #include <histedit.h> ]], 1361 [AC_LANG_SOURCE([[
1360 [[ 1362#include <histedit.h>
1363int main(void)
1364{
1361 int i = H_SETSIZE; 1365 int i = H_SETSIZE;
1362 el_init("", NULL, NULL, NULL); 1366 el_init("", NULL, NULL, NULL);
1363 exit(0); 1367 exit(0);
1368}
1364 ]])], 1369 ]])],
1365 [ AC_MSG_RESULT([yes]) ], 1370 [ AC_MSG_RESULT(yes) ],
1366 [ AC_MSG_RESULT([no]) 1371 [ AC_MSG_RESULT(no)
1367 AC_MSG_ERROR([libedit version is not compatible]) ] 1372 AC_MSG_ERROR(libedit version is not compatible) ]
1368 ) 1373 )
1369 fi ] 1374 fi ]
1370) 1375)
1371 1376
1372AUDIT_MODULE=none 1377AUDIT_MODULE=none
1373AC_ARG_WITH([audit], 1378AC_ARG_WITH(audit,
1374 [ --with-audit=module Enable audit support (modules=debug,bsm,linux)], 1379 [ --with-audit=module Enable audit support (modules=debug,bsm,linux)],
1375 [ 1380 [
1376 AC_MSG_CHECKING([for supported audit module]) 1381 AC_MSG_CHECKING(for supported audit module)
1377 case "$withval" in 1382 case "$withval" in
1378 bsm) 1383 bsm)
1379 AC_MSG_RESULT([bsm]) 1384 AC_MSG_RESULT(bsm)
1380 AUDIT_MODULE=bsm 1385 AUDIT_MODULE=bsm
1381 dnl Checks for headers, libs and functions 1386 dnl Checks for headers, libs and functions
1382 AC_CHECK_HEADERS([bsm/audit.h], [], 1387 AC_CHECK_HEADERS(bsm/audit.h, [],
1383 [AC_MSG_ERROR([BSM enabled and bsm/audit.h not found])], 1388 [AC_MSG_ERROR(BSM enabled and bsm/audit.h not found)],
1384 [ 1389 [
1385#ifdef HAVE_TIME_H 1390#ifdef HAVE_TIME_H
1386# include <time.h> 1391# include <time.h>
1387#endif 1392#endif
1388 ] 1393 ]
1389) 1394)
1390 AC_CHECK_LIB([bsm], [getaudit], [], 1395 AC_CHECK_LIB(bsm, getaudit, [],
1391 [AC_MSG_ERROR([BSM enabled and required library not found])]) 1396 [AC_MSG_ERROR(BSM enabled and required library not found)])
1392 AC_CHECK_FUNCS([getaudit], [], 1397 AC_CHECK_FUNCS(getaudit, [],
1393 [AC_MSG_ERROR([BSM enabled and required function not found])]) 1398 [AC_MSG_ERROR(BSM enabled and required function not found)])
1394 # These are optional 1399 # These are optional
1395 AC_CHECK_FUNCS([getaudit_addr aug_get_machine]) 1400 AC_CHECK_FUNCS(getaudit_addr aug_get_machine)
1396 AC_DEFINE([USE_BSM_AUDIT], [1], [Use BSM audit module]) 1401 AC_DEFINE(USE_BSM_AUDIT, 1, [Use BSM audit module])
1397 ;; 1402 ;;
1398 linux) 1403 linux)
1399 AC_MSG_RESULT([linux]) 1404 AC_MSG_RESULT(linux)
1400 AUDIT_MODULE=linux 1405 AUDIT_MODULE=linux
1401 dnl Checks for headers, libs and functions 1406 dnl Checks for headers, libs and functions
1402 AC_CHECK_HEADERS([libaudit.h]) 1407 AC_CHECK_HEADERS(libaudit.h)
1403 SSHDLIBS="$SSHDLIBS -laudit" 1408 SSHDLIBS="$SSHDLIBS -laudit"
1404 AC_DEFINE([USE_LINUX_AUDIT], [1], [Use Linux audit module]) 1409 AC_DEFINE(USE_LINUX_AUDIT, 1, [Use Linux audit module])
1405 ;; 1410 ;;
1406 debug) 1411 debug)
1407 AUDIT_MODULE=debug 1412 AUDIT_MODULE=debug
1408 AC_MSG_RESULT([debug]) 1413 AC_MSG_RESULT(debug)
1409 AC_DEFINE([SSH_AUDIT_EVENTS], [1], [Use audit debugging module]) 1414 AC_DEFINE(SSH_AUDIT_EVENTS, 1, [Use audit debugging module])
1410 ;; 1415 ;;
1411 no) 1416 no)
1412 AC_MSG_RESULT([no]) 1417 AC_MSG_RESULT(no)
1413 ;; 1418 ;;
1414 *) 1419 *)
1415 AC_MSG_ERROR([Unknown audit module $withval]) 1420 AC_MSG_ERROR([Unknown audit module $withval])
@@ -1418,7 +1423,7 @@ AC_ARG_WITH([audit],
1418) 1423)
1419 1424
1420dnl Checks for library functions. Please keep in alphabetical order 1425dnl Checks for library functions. Please keep in alphabetical order
1421AC_CHECK_FUNCS([ \ 1426AC_CHECK_FUNCS( \
1422 arc4random \ 1427 arc4random \
1423 arc4random_buf \ 1428 arc4random_buf \
1424 arc4random_uniform \ 1429 arc4random_uniform \
@@ -1514,43 +1519,46 @@ AC_CHECK_FUNCS([ \
1514 vhangup \ 1519 vhangup \
1515 vsnprintf \ 1520 vsnprintf \
1516 waitpid \ 1521 waitpid \
1517]) 1522)
1518 1523
1519AC_LINK_IFELSE( 1524AC_LINK_IFELSE(
1520 [AC_LANG_PROGRAM( 1525[
1521 [[ #include <ctype.h> ]], 1526#include <ctype.h>
1522 [[ return (isblank('a')); ]])], 1527int main(void)
1523 [AC_DEFINE([HAVE_ISBLANK], [1], [Define if you have isblank(3C).]) 1528{
1529 return (isblank('a'));
1530}
1531],
1532 [AC_DEFINE(HAVE_ISBLANK, 1, [Define if you have isblank(3C).])
1524]) 1533])
1525 1534
1526# PKCS#11 support requires dlopen() and co 1535# PKCS#11 support requires dlopen() and co
1527AC_SEARCH_LIBS([dlopen], [dl], 1536AC_SEARCH_LIBS(dlopen, dl,
1528 [AC_DEFINE([ENABLE_PKCS11], [], [Enable for PKCS#11 support])] 1537 AC_DEFINE([ENABLE_PKCS11], [], [Enable for PKCS#11 support])
1529) 1538)
1530 1539
1531# IRIX has a const char return value for gai_strerror() 1540# IRIX has a const char return value for gai_strerror()
1532AC_CHECK_FUNCS([gai_strerror], [ 1541AC_CHECK_FUNCS(gai_strerror,[
1533 AC_DEFINE([HAVE_GAI_STRERROR]) 1542 AC_DEFINE(HAVE_GAI_STRERROR)
1534 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1543 AC_TRY_COMPILE([
1535#include <sys/types.h> 1544#include <sys/types.h>
1536#include <sys/socket.h> 1545#include <sys/socket.h>
1537#include <netdb.h> 1546#include <netdb.h>
1538 1547
1539const char *gai_strerror(int); 1548const char *gai_strerror(int);],[
1540 ]], [[ 1549char *str;
1541 char *str; 1550
1542 str = gai_strerror(0); 1551str = gai_strerror(0);],[
1543 ]])], [ 1552 AC_DEFINE(HAVE_CONST_GAI_STRERROR_PROTO, 1,
1544 AC_DEFINE([HAVE_CONST_GAI_STRERROR_PROTO], [1], 1553 [Define if gai_strerror() returns const char *])])])
1545 [Define if gai_strerror() returns const char *])], [])])
1546 1554
1547AC_SEARCH_LIBS([nanosleep], [rt posix4], [AC_DEFINE([HAVE_NANOSLEEP], [1], 1555AC_SEARCH_LIBS(nanosleep, rt posix4, AC_DEFINE(HAVE_NANOSLEEP, 1,
1548 [Some systems put nanosleep outside of libc])]) 1556 [Some systems put nanosleep outside of libc]))
1549 1557
1550dnl Make sure prototypes are defined for these before using them. 1558dnl Make sure prototypes are defined for these before using them.
1551AC_CHECK_DECL([getrusage], [AC_CHECK_FUNCS([getrusage])]) 1559AC_CHECK_DECL(getrusage, [AC_CHECK_FUNCS(getrusage)])
1552AC_CHECK_DECL([strsep], 1560AC_CHECK_DECL(strsep,
1553 [AC_CHECK_FUNCS([strsep])], 1561 [AC_CHECK_FUNCS(strsep)],
1554 [], 1562 [],
1555 [ 1563 [
1556#ifdef HAVE_STRING_H 1564#ifdef HAVE_STRING_H
@@ -1559,21 +1567,21 @@ AC_CHECK_DECL([strsep],
1559 ]) 1567 ])
1560 1568
1561dnl tcsendbreak might be a macro 1569dnl tcsendbreak might be a macro
1562AC_CHECK_DECL([tcsendbreak], 1570AC_CHECK_DECL(tcsendbreak,
1563 [AC_DEFINE([HAVE_TCSENDBREAK])], 1571 [AC_DEFINE(HAVE_TCSENDBREAK)],
1564 [AC_CHECK_FUNCS([tcsendbreak])], 1572 [AC_CHECK_FUNCS(tcsendbreak)],
1565 [#include <termios.h>] 1573 [#include <termios.h>]
1566) 1574)
1567 1575
1568AC_CHECK_DECLS([h_errno], , ,[#include <netdb.h>]) 1576AC_CHECK_DECLS(h_errno, , ,[#include <netdb.h>])
1569 1577
1570AC_CHECK_DECLS([SHUT_RD], , , 1578AC_CHECK_DECLS(SHUT_RD, , ,
1571 [ 1579 [
1572#include <sys/types.h> 1580#include <sys/types.h>
1573#include <sys/socket.h> 1581#include <sys/socket.h>
1574 ]) 1582 ])
1575 1583
1576AC_CHECK_DECLS([O_NONBLOCK], , , 1584AC_CHECK_DECLS(O_NONBLOCK, , ,
1577 [ 1585 [
1578#include <sys/types.h> 1586#include <sys/types.h>
1579#ifdef HAVE_SYS_STAT_H 1587#ifdef HAVE_SYS_STAT_H
@@ -1584,104 +1592,90 @@ AC_CHECK_DECLS([O_NONBLOCK], , ,
1584#endif 1592#endif
1585 ]) 1593 ])
1586 1594
1587AC_CHECK_DECLS([writev], , , [ 1595AC_CHECK_DECLS(writev, , , [
1588#include <sys/types.h> 1596#include <sys/types.h>
1589#include <sys/uio.h> 1597#include <sys/uio.h>
1590#include <unistd.h> 1598#include <unistd.h>
1591 ]) 1599 ])
1592 1600
1593AC_CHECK_DECLS([MAXSYMLINKS], , , [ 1601AC_CHECK_DECLS(MAXSYMLINKS, , , [
1594#include <sys/param.h> 1602#include <sys/param.h>
1595 ]) 1603 ])
1596 1604
1597AC_CHECK_DECLS([offsetof], , , [ 1605AC_CHECK_DECLS(offsetof, , , [
1598#include <stddef.h> 1606#include <stddef.h>
1599 ]) 1607 ])
1600 1608
1601AC_CHECK_FUNCS([setresuid], [ 1609AC_CHECK_FUNCS(setresuid, [
1602 dnl Some platorms have setresuid that isn't implemented, test for this 1610 dnl Some platorms have setresuid that isn't implemented, test for this
1603 AC_MSG_CHECKING([if setresuid seems to work]) 1611 AC_MSG_CHECKING(if setresuid seems to work)
1604 AC_RUN_IFELSE( 1612 AC_RUN_IFELSE(
1605 [AC_LANG_PROGRAM([[ 1613 [AC_LANG_SOURCE([[
1606#include <stdlib.h> 1614#include <stdlib.h>
1607#include <errno.h> 1615#include <errno.h>
1608 ]], [[ 1616int main(){errno=0; setresuid(0,0,0); if (errno==ENOSYS) exit(1); else exit(0);}
1609 errno=0;
1610 setresuid(0,0,0);
1611 if (errno==ENOSYS)
1612 exit(1);
1613 else
1614 exit(0);
1615 ]])], 1617 ]])],
1616 [AC_MSG_RESULT([yes])], 1618 [AC_MSG_RESULT(yes)],
1617 [AC_DEFINE([BROKEN_SETRESUID], [1], 1619 [AC_DEFINE(BROKEN_SETRESUID, 1,
1618 [Define if your setresuid() is broken]) 1620 [Define if your setresuid() is broken])
1619 AC_MSG_RESULT([not implemented])], 1621 AC_MSG_RESULT(not implemented)],
1620 [AC_MSG_WARN([cross compiling: not checking setresuid])] 1622 [AC_MSG_WARN([cross compiling: not checking setresuid])]
1621 ) 1623 )
1622]) 1624])
1623 1625
1624AC_CHECK_FUNCS([setresgid], [ 1626AC_CHECK_FUNCS(setresgid, [
1625 dnl Some platorms have setresgid that isn't implemented, test for this 1627 dnl Some platorms have setresgid that isn't implemented, test for this
1626 AC_MSG_CHECKING([if setresgid seems to work]) 1628 AC_MSG_CHECKING(if setresgid seems to work)
1627 AC_RUN_IFELSE( 1629 AC_RUN_IFELSE(
1628 [AC_LANG_PROGRAM([[ 1630 [AC_LANG_SOURCE([[
1629#include <stdlib.h> 1631#include <stdlib.h>
1630#include <errno.h> 1632#include <errno.h>
1631 ]], [[ 1633int main(){errno=0; setresgid(0,0,0); if (errno==ENOSYS) exit(1); else exit(0);}
1632 errno=0;
1633 setresgid(0,0,0);
1634 if (errno==ENOSYS)
1635 exit(1);
1636 else
1637 exit(0);
1638 ]])], 1634 ]])],
1639 [AC_MSG_RESULT([yes])], 1635 [AC_MSG_RESULT(yes)],
1640 [AC_DEFINE([BROKEN_SETRESGID], [1], 1636 [AC_DEFINE(BROKEN_SETRESGID, 1,
1641 [Define if your setresgid() is broken]) 1637 [Define if your setresgid() is broken])
1642 AC_MSG_RESULT([not implemented])], 1638 AC_MSG_RESULT(not implemented)],
1643 [AC_MSG_WARN([cross compiling: not checking setresuid])] 1639 [AC_MSG_WARN([cross compiling: not checking setresuid])]
1644 ) 1640 )
1645]) 1641])
1646 1642
1647dnl Checks for time functions 1643dnl Checks for time functions
1648AC_CHECK_FUNCS([gettimeofday time]) 1644AC_CHECK_FUNCS(gettimeofday time)
1649dnl Checks for utmp functions 1645dnl Checks for utmp functions
1650AC_CHECK_FUNCS([endutent getutent getutid getutline pututline setutent]) 1646AC_CHECK_FUNCS(endutent getutent getutid getutline pututline setutent)
1651AC_CHECK_FUNCS([utmpname]) 1647AC_CHECK_FUNCS(utmpname)
1652dnl Checks for utmpx functions 1648dnl Checks for utmpx functions
1653AC_CHECK_FUNCS([endutxent getutxent getutxid getutxline getutxuser pututxline]) 1649AC_CHECK_FUNCS(endutxent getutxent getutxid getutxline getutxuser pututxline)
1654AC_CHECK_FUNCS([setutxdb setutxent utmpxname]) 1650AC_CHECK_FUNCS(setutxdb setutxent utmpxname)
1655dnl Checks for lastlog functions 1651dnl Checks for lastlog functions
1656AC_CHECK_FUNCS([getlastlogxbyname]) 1652AC_CHECK_FUNCS(getlastlogxbyname)
1657 1653
1658AC_CHECK_FUNC([daemon], 1654AC_CHECK_FUNC(daemon,
1659 [AC_DEFINE([HAVE_DAEMON], [1], [Define if your libraries define daemon()])], 1655 [AC_DEFINE(HAVE_DAEMON, 1, [Define if your libraries define daemon()])],
1660 [AC_CHECK_LIB([bsd], [daemon], 1656 [AC_CHECK_LIB(bsd, daemon,
1661 [LIBS="$LIBS -lbsd"; AC_DEFINE([HAVE_DAEMON])])] 1657 [LIBS="$LIBS -lbsd"; AC_DEFINE(HAVE_DAEMON)])]
1662) 1658)
1663 1659
1664AC_CHECK_FUNC([getpagesize], 1660AC_CHECK_FUNC(getpagesize,
1665 [AC_DEFINE([HAVE_GETPAGESIZE], [1], 1661 [AC_DEFINE(HAVE_GETPAGESIZE, 1,
1666 [Define if your libraries define getpagesize()])], 1662 [Define if your libraries define getpagesize()])],
1667 [AC_CHECK_LIB([ucb], [getpagesize], 1663 [AC_CHECK_LIB(ucb, getpagesize,
1668 [LIBS="$LIBS -lucb"; AC_DEFINE([HAVE_GETPAGESIZE])])] 1664 [LIBS="$LIBS -lucb"; AC_DEFINE(HAVE_GETPAGESIZE)])]
1669) 1665)
1670 1666
1671# Check for broken snprintf 1667# Check for broken snprintf
1672if test "x$ac_cv_func_snprintf" = "xyes" ; then 1668if test "x$ac_cv_func_snprintf" = "xyes" ; then
1673 AC_MSG_CHECKING([whether snprintf correctly terminates long strings]) 1669 AC_MSG_CHECKING([whether snprintf correctly terminates long strings])
1674 AC_RUN_IFELSE( 1670 AC_RUN_IFELSE(
1675 [AC_LANG_PROGRAM([[ #include <stdio.h> ]], 1671 [AC_LANG_SOURCE([[
1676 [[ 1672#include <stdio.h>
1677 char b[5]; 1673int main(void){char b[5];snprintf(b,5,"123456789");exit(b[4]!='\0');}
1678 snprintf(b,5,"123456789");
1679 exit(b[4]!='\0');
1680 ]])], 1674 ]])],
1681 [AC_MSG_RESULT([yes])], 1675 [AC_MSG_RESULT(yes)],
1682 [ 1676 [
1683 AC_MSG_RESULT([no]) 1677 AC_MSG_RESULT(no)
1684 AC_DEFINE([BROKEN_SNPRINTF], [1], 1678 AC_DEFINE(BROKEN_SNPRINTF, 1,
1685 [Define if your snprintf is busted]) 1679 [Define if your snprintf is busted])
1686 AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor]) 1680 AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor])
1687 ], 1681 ],
@@ -1696,7 +1690,7 @@ if test "x$ac_cv_func_asprintf" != "xyes" && \
1696 test "x$ac_cv_func_vsnprintf" = "xyes" ; then 1690 test "x$ac_cv_func_vsnprintf" = "xyes" ; then
1697 AC_MSG_CHECKING([whether vsnprintf returns correct values on overflow]) 1691 AC_MSG_CHECKING([whether vsnprintf returns correct values on overflow])
1698 AC_RUN_IFELSE( 1692 AC_RUN_IFELSE(
1699 [AC_LANG_PROGRAM([[ 1693 [AC_LANG_SOURCE([[
1700#include <sys/types.h> 1694#include <sys/types.h>
1701#include <stdio.h> 1695#include <stdio.h>
1702#include <stdarg.h> 1696#include <stdarg.h>
@@ -1707,14 +1701,15 @@ int x_snprintf(char *str,size_t count,const char *fmt,...)
1707 va_start(ap, fmt); ret = vsnprintf(str, count, fmt, ap); va_end(ap); 1701 va_start(ap, fmt); ret = vsnprintf(str, count, fmt, ap); va_end(ap);
1708 return ret; 1702 return ret;
1709} 1703}
1710 ]], [[ 1704int main(void)
1705{
1711 char x[1]; 1706 char x[1];
1712 exit(x_snprintf(x, 1, "%s %d", "hello", 12345) == 11 ? 0 : 1); 1707 exit(x_snprintf(x, 1, "%s %d", "hello", 12345) == 11 ? 0 : 1);
1713 ]])], 1708} ]])],
1714 [AC_MSG_RESULT([yes])], 1709 [AC_MSG_RESULT(yes)],
1715 [ 1710 [
1716 AC_MSG_RESULT([no]) 1711 AC_MSG_RESULT(no)
1717 AC_DEFINE([BROKEN_SNPRINTF], [1], 1712 AC_DEFINE(BROKEN_SNPRINTF, 1,
1718 [Define if your snprintf is busted]) 1713 [Define if your snprintf is busted])
1719 AC_MSG_WARN([****** Your vsnprintf() function is broken, complain to your vendor]) 1714 AC_MSG_WARN([****** Your vsnprintf() function is broken, complain to your vendor])
1720 ], 1715 ],
@@ -1726,69 +1721,71 @@ fi
1726# check that the fmt argument is const char * or just char *. 1721# check that the fmt argument is const char * or just char *.
1727# This is only useful for when BROKEN_SNPRINTF 1722# This is only useful for when BROKEN_SNPRINTF
1728AC_MSG_CHECKING([whether snprintf can declare const char *fmt]) 1723AC_MSG_CHECKING([whether snprintf can declare const char *fmt])
1729AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1724AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
1730#include <stdio.h> 1725 int snprintf(char *a, size_t b, const char *c, ...) { return 0; }
1731int snprintf(char *a, size_t b, const char *c, ...) { return 0; } 1726 int main(void) { snprintf(0, 0, 0); }
1732 ]], [[ 1727 ]])],
1733 snprintf(0, 0, 0); 1728 [AC_MSG_RESULT(yes)
1734 ]])], 1729 AC_DEFINE(SNPRINTF_CONST, [const],
1735 [AC_MSG_RESULT([yes])
1736 AC_DEFINE([SNPRINTF_CONST], [const],
1737 [Define as const if snprintf() can declare const char *fmt])], 1730 [Define as const if snprintf() can declare const char *fmt])],
1738 [AC_MSG_RESULT([no]) 1731 [AC_MSG_RESULT(no)
1739 AC_DEFINE([SNPRINTF_CONST], [/* not const */])]) 1732 AC_DEFINE(SNPRINTF_CONST, [/* not const */])])
1740 1733
1741# Check for missing getpeereid (or equiv) support 1734# Check for missing getpeereid (or equiv) support
1742NO_PEERCHECK="" 1735NO_PEERCHECK=""
1743if test "x$ac_cv_func_getpeereid" != "xyes" -a "x$ac_cv_func_getpeerucred" != "xyes"; then 1736if test "x$ac_cv_func_getpeereid" != "xyes" -a "x$ac_cv_func_getpeerucred" != "xyes"; then
1744 AC_MSG_CHECKING([whether system supports SO_PEERCRED getsockopt]) 1737 AC_MSG_CHECKING([whether system supports SO_PEERCRED getsockopt])
1745 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1738 AC_TRY_COMPILE(
1746#include <sys/types.h> 1739 [#include <sys/types.h>
1747#include <sys/socket.h>]], [[int i = SO_PEERCRED;]])], 1740 #include <sys/socket.h>],
1748 [ AC_MSG_RESULT([yes]) 1741 [int i = SO_PEERCRED;],
1749 AC_DEFINE([HAVE_SO_PEERCRED], [1], [Have PEERCRED socket option]) 1742 [ AC_MSG_RESULT(yes)
1750 ], [AC_MSG_RESULT([no]) 1743 AC_DEFINE(HAVE_SO_PEERCRED, 1, [Have PEERCRED socket option])
1751 NO_PEERCHECK=1 1744 ],
1752 ]) 1745 [AC_MSG_RESULT(no)
1746 NO_PEERCHECK=1]
1747 )
1753fi 1748fi
1754 1749
1755dnl see whether mkstemp() requires XXXXXX 1750dnl see whether mkstemp() requires XXXXXX
1756if test "x$ac_cv_func_mkdtemp" = "xyes" ; then 1751if test "x$ac_cv_func_mkdtemp" = "xyes" ; then
1757AC_MSG_CHECKING([for (overly) strict mkstemp]) 1752AC_MSG_CHECKING([for (overly) strict mkstemp])
1758AC_RUN_IFELSE( 1753AC_RUN_IFELSE(
1759 [AC_LANG_PROGRAM([[ 1754 [AC_LANG_SOURCE([[
1760#include <stdlib.h> 1755#include <stdlib.h>
1761 ]], [[ 1756main() { char template[]="conftest.mkstemp-test";
1762 char template[]="conftest.mkstemp-test"; 1757if (mkstemp(template) == -1)
1763 if (mkstemp(template) == -1) 1758 exit(1);
1764 exit(1); 1759unlink(template); exit(0);
1765 unlink(template); 1760}
1766 exit(0);
1767 ]])], 1761 ]])],
1768 [ 1762 [
1769 AC_MSG_RESULT([no]) 1763 AC_MSG_RESULT(no)
1770 ], 1764 ],
1771 [ 1765 [
1772 AC_MSG_RESULT([yes]) 1766 AC_MSG_RESULT(yes)
1773 AC_DEFINE([HAVE_STRICT_MKSTEMP], [1], [Silly mkstemp()]) 1767 AC_DEFINE(HAVE_STRICT_MKSTEMP, 1, [Silly mkstemp()])
1774 ], 1768 ],
1775 [ 1769 [
1776 AC_MSG_RESULT([yes]) 1770 AC_MSG_RESULT(yes)
1777 AC_DEFINE([HAVE_STRICT_MKSTEMP]) 1771 AC_DEFINE(HAVE_STRICT_MKSTEMP)
1778 ] 1772 ]
1779) 1773)
1780fi 1774fi
1781 1775
1782dnl make sure that openpty does not reacquire controlling terminal 1776dnl make sure that openpty does not reacquire controlling terminal
1783if test ! -z "$check_for_openpty_ctty_bug"; then 1777if test ! -z "$check_for_openpty_ctty_bug"; then
1784 AC_MSG_CHECKING([if openpty correctly handles controlling tty]) 1778 AC_MSG_CHECKING(if openpty correctly handles controlling tty)
1785 AC_RUN_IFELSE( 1779 AC_RUN_IFELSE(
1786 [AC_LANG_PROGRAM([[ 1780 [AC_LANG_SOURCE([[
1787#include <stdio.h> 1781#include <stdio.h>
1788#include <sys/fcntl.h> 1782#include <sys/fcntl.h>
1789#include <sys/types.h> 1783#include <sys/types.h>
1790#include <sys/wait.h> 1784#include <sys/wait.h>
1791 ]], [[ 1785
1786int
1787main()
1788{
1792 pid_t pid; 1789 pid_t pid;
1793 int fd, ptyfd, ttyfd, status; 1790 int fd, ptyfd, ttyfd, status;
1794 1791
@@ -1811,25 +1808,26 @@ if test ! -z "$check_for_openpty_ctty_bug"; then
1811 else 1808 else
1812 exit(0); /* Did not acquire ctty: OK */ 1809 exit(0); /* Did not acquire ctty: OK */
1813 } 1810 }
1811}
1814 ]])], 1812 ]])],
1815 [ 1813 [
1816 AC_MSG_RESULT([yes]) 1814 AC_MSG_RESULT(yes)
1817 ], 1815 ],
1818 [ 1816 [
1819 AC_MSG_RESULT([no]) 1817 AC_MSG_RESULT(no)
1820 AC_DEFINE([SSHD_ACQUIRES_CTTY]) 1818 AC_DEFINE(SSHD_ACQUIRES_CTTY)
1821 ], 1819 ],
1822 [ 1820 [
1823 AC_MSG_RESULT([cross-compiling, assuming yes]) 1821 AC_MSG_RESULT(cross-compiling, assuming yes)
1824 ] 1822 ]
1825 ) 1823 )
1826fi 1824fi
1827 1825
1828if test "x$ac_cv_func_getaddrinfo" = "xyes" && \ 1826if test "x$ac_cv_func_getaddrinfo" = "xyes" && \
1829 test "x$check_for_hpux_broken_getaddrinfo" = "x1"; then 1827 test "x$check_for_hpux_broken_getaddrinfo" = "x1"; then
1830 AC_MSG_CHECKING([if getaddrinfo seems to work]) 1828 AC_MSG_CHECKING(if getaddrinfo seems to work)
1831 AC_RUN_IFELSE( 1829 AC_RUN_IFELSE(
1832 [AC_LANG_PROGRAM([[ 1830 [AC_LANG_SOURCE([[
1833#include <stdio.h> 1831#include <stdio.h>
1834#include <sys/socket.h> 1832#include <sys/socket.h>
1835#include <netdb.h> 1833#include <netdb.h>
@@ -1837,7 +1835,10 @@ if test "x$ac_cv_func_getaddrinfo" = "xyes" && \
1837#include <netinet/in.h> 1835#include <netinet/in.h>
1838 1836
1839#define TEST_PORT "2222" 1837#define TEST_PORT "2222"
1840 ]], [[ 1838
1839int
1840main(void)
1841{
1841 int err, sock; 1842 int err, sock;
1842 struct addrinfo *gai_ai, *ai, hints; 1843 struct addrinfo *gai_ai, *ai, hints;
1843 char ntop[NI_MAXHOST], strport[NI_MAXSERV], *name = NULL; 1844 char ntop[NI_MAXHOST], strport[NI_MAXSERV], *name = NULL;
@@ -1879,25 +1880,26 @@ if test "x$ac_cv_func_getaddrinfo" = "xyes" && \
1879 } 1880 }
1880 } 1881 }
1881 exit(0); 1882 exit(0);
1883}
1882 ]])], 1884 ]])],
1883 [ 1885 [
1884 AC_MSG_RESULT([yes]) 1886 AC_MSG_RESULT(yes)
1885 ], 1887 ],
1886 [ 1888 [
1887 AC_MSG_RESULT([no]) 1889 AC_MSG_RESULT(no)
1888 AC_DEFINE([BROKEN_GETADDRINFO]) 1890 AC_DEFINE(BROKEN_GETADDRINFO)
1889 ], 1891 ],
1890 [ 1892 [
1891 AC_MSG_RESULT([cross-compiling, assuming yes]) 1893 AC_MSG_RESULT(cross-compiling, assuming yes)
1892 ] 1894 ]
1893 ) 1895 )
1894fi 1896fi
1895 1897
1896if test "x$ac_cv_func_getaddrinfo" = "xyes" && \ 1898if test "x$ac_cv_func_getaddrinfo" = "xyes" && \
1897 test "x$check_for_aix_broken_getaddrinfo" = "x1"; then 1899 test "x$check_for_aix_broken_getaddrinfo" = "x1"; then
1898 AC_MSG_CHECKING([if getaddrinfo seems to work]) 1900 AC_MSG_CHECKING(if getaddrinfo seems to work)
1899 AC_RUN_IFELSE( 1901 AC_RUN_IFELSE(
1900 [AC_LANG_PROGRAM([[ 1902 [AC_LANG_SOURCE([[
1901#include <stdio.h> 1903#include <stdio.h>
1902#include <sys/socket.h> 1904#include <sys/socket.h>
1903#include <netdb.h> 1905#include <netdb.h>
@@ -1905,7 +1907,10 @@ if test "x$ac_cv_func_getaddrinfo" = "xyes" && \
1905#include <netinet/in.h> 1907#include <netinet/in.h>
1906 1908
1907#define TEST_PORT "2222" 1909#define TEST_PORT "2222"
1908 ]], [[ 1910
1911int
1912main(void)
1913{
1909 int err, sock; 1914 int err, sock;
1910 struct addrinfo *gai_ai, *ai, hints; 1915 struct addrinfo *gai_ai, *ai, hints;
1911 char ntop[NI_MAXHOST], strport[NI_MAXSERV], *name = NULL; 1916 char ntop[NI_MAXHOST], strport[NI_MAXSERV], *name = NULL;
@@ -1935,33 +1940,37 @@ if test "x$ac_cv_func_getaddrinfo" = "xyes" && \
1935 } 1940 }
1936 } 1941 }
1937 exit(0); 1942 exit(0);
1943}
1938 ]])], 1944 ]])],
1939 [ 1945 [
1940 AC_MSG_RESULT([yes]) 1946 AC_MSG_RESULT(yes)
1941 AC_DEFINE([AIX_GETNAMEINFO_HACK], [1], 1947 AC_DEFINE(AIX_GETNAMEINFO_HACK, 1,
1942 [Define if you have a getaddrinfo that fails 1948 [Define if you have a getaddrinfo that fails
1943 for the all-zeros IPv6 address]) 1949 for the all-zeros IPv6 address])
1944 ], 1950 ],
1945 [ 1951 [
1946 AC_MSG_RESULT([no]) 1952 AC_MSG_RESULT(no)
1947 AC_DEFINE([BROKEN_GETADDRINFO]) 1953 AC_DEFINE(BROKEN_GETADDRINFO)
1948 ], 1954 ],
1949 [ 1955 [
1950 AC_MSG_RESULT([cross-compiling, assuming no]) 1956 AC_MSG_RESULT(cross-compiling, assuming no)
1951 ] 1957 ]
1952 ) 1958 )
1953fi 1959fi
1954 1960
1955if test "x$check_for_conflicting_getspnam" = "x1"; then 1961if test "x$check_for_conflicting_getspnam" = "x1"; then
1956 AC_MSG_CHECKING([for conflicting getspnam in shadow.h]) 1962 AC_MSG_CHECKING(for conflicting getspnam in shadow.h)
1957 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <shadow.h> ]], 1963 AC_COMPILE_IFELSE(
1958 [[ exit(0); ]])],
1959 [ 1964 [
1960 AC_MSG_RESULT([no]) 1965#include <shadow.h>
1966int main(void) {exit(0);}
1961 ], 1967 ],
1962 [ 1968 [
1963 AC_MSG_RESULT([yes]) 1969 AC_MSG_RESULT(no)
1964 AC_DEFINE([GETSPNAM_CONFLICTING_DEFS], [1], 1970 ],
1971 [
1972 AC_MSG_RESULT(yes)
1973 AC_DEFINE(GETSPNAM_CONFLICTING_DEFS, 1,
1965 [Conflicting defs for getspnam]) 1974 [Conflicting defs for getspnam])
1966 ] 1975 ]
1967 ) 1976 )
@@ -1972,7 +1981,7 @@ AC_FUNC_GETPGRP
1972# Search for OpenSSL 1981# Search for OpenSSL
1973saved_CPPFLAGS="$CPPFLAGS" 1982saved_CPPFLAGS="$CPPFLAGS"
1974saved_LDFLAGS="$LDFLAGS" 1983saved_LDFLAGS="$LDFLAGS"
1975AC_ARG_WITH([ssl-dir], 1984AC_ARG_WITH(ssl-dir,
1976 [ --with-ssl-dir=PATH Specify path to OpenSSL installation ], 1985 [ --with-ssl-dir=PATH Specify path to OpenSSL installation ],
1977 [ 1986 [
1978 if test "x$withval" != "xno" ; then 1987 if test "x$withval" != "xno" ; then
@@ -2008,9 +2017,9 @@ AC_ARG_WITH([ssl-dir],
2008 ] 2017 ]
2009) 2018)
2010LIBS="-lcrypto $LIBS" 2019LIBS="-lcrypto $LIBS"
2011AC_TRY_LINK_FUNC([RAND_add], [AC_DEFINE([HAVE_OPENSSL], [1], 2020AC_TRY_LINK_FUNC(RAND_add, AC_DEFINE(HAVE_OPENSSL, 1,
2012 [Define if your ssl headers are included 2021 [Define if your ssl headers are included
2013 with #include <openssl/header.h>])], 2022 with #include <openssl/header.h>]),
2014 [ 2023 [
2015 dnl Check default openssl install dir 2024 dnl Check default openssl install dir
2016 if test -n "${need_dash_r}"; then 2025 if test -n "${need_dash_r}"; then
@@ -2020,8 +2029,8 @@ AC_TRY_LINK_FUNC([RAND_add], [AC_DEFINE([HAVE_OPENSSL], [1],
2020 fi 2029 fi
2021 CPPFLAGS="-I/usr/local/ssl/include ${saved_CPPFLAGS}" 2030 CPPFLAGS="-I/usr/local/ssl/include ${saved_CPPFLAGS}"
2022 AC_CHECK_HEADER([openssl/opensslv.h], , 2031 AC_CHECK_HEADER([openssl/opensslv.h], ,
2023 [AC_MSG_ERROR([*** OpenSSL headers missing - please install first or check config.log ***])]) 2032 AC_MSG_ERROR([*** OpenSSL headers missing - please install first or check config.log ***]))
2024 AC_TRY_LINK_FUNC([RAND_add], [AC_DEFINE([HAVE_OPENSSL])], 2033 AC_TRY_LINK_FUNC(RAND_add, AC_DEFINE(HAVE_OPENSSL),
2025 [ 2034 [
2026 AC_MSG_ERROR([*** Can't find recent OpenSSL libcrypto (see config.log for details) ***]) 2035 AC_MSG_ERROR([*** Can't find recent OpenSSL libcrypto (see config.log for details) ***])
2027 ] 2036 ]
@@ -2032,12 +2041,12 @@ AC_TRY_LINK_FUNC([RAND_add], [AC_DEFINE([HAVE_OPENSSL], [1],
2032# Determine OpenSSL header version 2041# Determine OpenSSL header version
2033AC_MSG_CHECKING([OpenSSL header version]) 2042AC_MSG_CHECKING([OpenSSL header version])
2034AC_RUN_IFELSE( 2043AC_RUN_IFELSE(
2035 [AC_LANG_PROGRAM([[ 2044 [AC_LANG_SOURCE([[
2036#include <stdio.h> 2045#include <stdio.h>
2037#include <string.h> 2046#include <string.h>
2038#include <openssl/opensslv.h> 2047#include <openssl/opensslv.h>
2039#define DATA "conftest.sslincver" 2048#define DATA "conftest.sslincver"
2040 ]], [[ 2049int main(void) {
2041 FILE *fd; 2050 FILE *fd;
2042 int rc; 2051 int rc;
2043 2052
@@ -2049,14 +2058,15 @@ AC_RUN_IFELSE(
2049 exit(1); 2058 exit(1);
2050 2059
2051 exit(0); 2060 exit(0);
2061}
2052 ]])], 2062 ]])],
2053 [ 2063 [
2054 ssl_header_ver=`cat conftest.sslincver` 2064 ssl_header_ver=`cat conftest.sslincver`
2055 AC_MSG_RESULT([$ssl_header_ver]) 2065 AC_MSG_RESULT($ssl_header_ver)
2056 ], 2066 ],
2057 [ 2067 [
2058 AC_MSG_RESULT([not found]) 2068 AC_MSG_RESULT(not found)
2059 AC_MSG_ERROR([OpenSSL version header not found.]) 2069 AC_MSG_ERROR(OpenSSL version header not found.)
2060 ], 2070 ],
2061 [ 2071 [
2062 AC_MSG_WARN([cross compiling: not checking]) 2072 AC_MSG_WARN([cross compiling: not checking])
@@ -2066,13 +2076,13 @@ AC_RUN_IFELSE(
2066# Determine OpenSSL library version 2076# Determine OpenSSL library version
2067AC_MSG_CHECKING([OpenSSL library version]) 2077AC_MSG_CHECKING([OpenSSL library version])
2068AC_RUN_IFELSE( 2078AC_RUN_IFELSE(
2069 [AC_LANG_PROGRAM([[ 2079 [AC_LANG_SOURCE([[
2070#include <stdio.h> 2080#include <stdio.h>
2071#include <string.h> 2081#include <string.h>
2072#include <openssl/opensslv.h> 2082#include <openssl/opensslv.h>
2073#include <openssl/crypto.h> 2083#include <openssl/crypto.h>
2074#define DATA "conftest.ssllibver" 2084#define DATA "conftest.ssllibver"
2075 ]], [[ 2085int main(void) {
2076 FILE *fd; 2086 FILE *fd;
2077 int rc; 2087 int rc;
2078 2088
@@ -2084,21 +2094,22 @@ AC_RUN_IFELSE(
2084 exit(1); 2094 exit(1);
2085 2095
2086 exit(0); 2096 exit(0);
2097}
2087 ]])], 2098 ]])],
2088 [ 2099 [
2089 ssl_library_ver=`cat conftest.ssllibver` 2100 ssl_library_ver=`cat conftest.ssllibver`
2090 AC_MSG_RESULT([$ssl_library_ver]) 2101 AC_MSG_RESULT($ssl_library_ver)
2091 ], 2102 ],
2092 [ 2103 [
2093 AC_MSG_RESULT([not found]) 2104 AC_MSG_RESULT(not found)
2094 AC_MSG_ERROR([OpenSSL library not found.]) 2105 AC_MSG_ERROR(OpenSSL library not found.)
2095 ], 2106 ],
2096 [ 2107 [
2097 AC_MSG_WARN([cross compiling: not checking]) 2108 AC_MSG_WARN([cross compiling: not checking])
2098 ] 2109 ]
2099) 2110)
2100 2111
2101AC_ARG_WITH([openssl-header-check], 2112AC_ARG_WITH(openssl-header-check,
2102 [ --without-openssl-header-check Disable OpenSSL version consistency check], 2113 [ --without-openssl-header-check Disable OpenSSL version consistency check],
2103 [ if test "x$withval" = "xno" ; then 2114 [ if test "x$withval" = "xno" ; then
2104 openssl_check_nonfatal=1 2115 openssl_check_nonfatal=1
@@ -2109,17 +2120,16 @@ AC_ARG_WITH([openssl-header-check],
2109# Sanity check OpenSSL headers 2120# Sanity check OpenSSL headers
2110AC_MSG_CHECKING([whether OpenSSL's headers match the library]) 2121AC_MSG_CHECKING([whether OpenSSL's headers match the library])
2111AC_RUN_IFELSE( 2122AC_RUN_IFELSE(
2112 [AC_LANG_PROGRAM([[ 2123 [AC_LANG_SOURCE([[
2113#include <string.h> 2124#include <string.h>
2114#include <openssl/opensslv.h> 2125#include <openssl/opensslv.h>
2115 ]], [[ 2126int main(void) { exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); }
2116 exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1);
2117 ]])], 2127 ]])],
2118 [ 2128 [
2119 AC_MSG_RESULT([yes]) 2129 AC_MSG_RESULT(yes)
2120 ], 2130 ],
2121 [ 2131 [
2122 AC_MSG_RESULT([no]) 2132 AC_MSG_RESULT(no)
2123 if test "x$openssl_check_nonfatal" = "x"; then 2133 if test "x$openssl_check_nonfatal" = "x"; then
2124 AC_MSG_ERROR([Your OpenSSL headers do not match your 2134 AC_MSG_ERROR([Your OpenSSL headers do not match your
2125library. Check config.log for details. 2135library. Check config.log for details.
@@ -2140,84 +2150,85 @@ Also see contrib/findssl.sh for help identifying header/library mismatches.])
2140 2150
2141AC_MSG_CHECKING([if programs using OpenSSL functions will link]) 2151AC_MSG_CHECKING([if programs using OpenSSL functions will link])
2142AC_LINK_IFELSE( 2152AC_LINK_IFELSE(
2143 [AC_LANG_PROGRAM([[ #include <openssl/evp.h> ]], 2153 [AC_LANG_SOURCE([[
2144 [[ SSLeay_add_all_algorithms(); ]])], 2154#include <openssl/evp.h>
2155int main(void) { SSLeay_add_all_algorithms(); }
2156 ]])],
2145 [ 2157 [
2146 AC_MSG_RESULT([yes]) 2158 AC_MSG_RESULT(yes)
2147 ], 2159 ],
2148 [ 2160 [
2149 AC_MSG_RESULT([no]) 2161 AC_MSG_RESULT(no)
2150 saved_LIBS="$LIBS" 2162 saved_LIBS="$LIBS"
2151 LIBS="$LIBS -ldl" 2163 LIBS="$LIBS -ldl"
2152 AC_MSG_CHECKING([if programs using OpenSSL need -ldl]) 2164 AC_MSG_CHECKING([if programs using OpenSSL need -ldl])
2153 AC_LINK_IFELSE( 2165 AC_LINK_IFELSE(
2154 [AC_LANG_PROGRAM([[ #include <openssl/evp.h> ]], 2166 [AC_LANG_SOURCE([[
2155 [[ SSLeay_add_all_algorithms(); ]])], 2167#include <openssl/evp.h>
2168int main(void) { SSLeay_add_all_algorithms(); }
2169 ]])],
2156 [ 2170 [
2157 AC_MSG_RESULT([yes]) 2171 AC_MSG_RESULT(yes)
2158 ], 2172 ],
2159 [ 2173 [
2160 AC_MSG_RESULT([no]) 2174 AC_MSG_RESULT(no)
2161 LIBS="$saved_LIBS" 2175 LIBS="$saved_LIBS"
2162 ] 2176 ]
2163 ) 2177 )
2164 ] 2178 ]
2165) 2179)
2166 2180
2167AC_CHECK_FUNCS([RSA_generate_key_ex DSA_generate_parameters_ex BN_is_prime_ex RSA_get_default_method]) 2181AC_CHECK_FUNCS(RSA_generate_key_ex DSA_generate_parameters_ex BN_is_prime_ex RSA_get_default_method)
2168 2182
2169AC_ARG_WITH([ssl-engine], 2183AC_ARG_WITH(ssl-engine,
2170 [ --with-ssl-engine Enable OpenSSL (hardware) ENGINE support ], 2184 [ --with-ssl-engine Enable OpenSSL (hardware) ENGINE support ],
2171 [ if test "x$withval" != "xno" ; then 2185 [ if test "x$withval" != "xno" ; then
2172 AC_MSG_CHECKING([for OpenSSL ENGINE support]) 2186 AC_MSG_CHECKING(for OpenSSL ENGINE support)
2173 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2187 AC_TRY_COMPILE(
2174#include <openssl/engine.h> 2188 [ #include <openssl/engine.h>],
2175 ]], [[ 2189 [
2176 ENGINE_load_builtin_engines(); 2190ENGINE_load_builtin_engines();ENGINE_register_all_complete();
2177 ENGINE_register_all_complete(); 2191 ],
2178 ]])], 2192 [ AC_MSG_RESULT(yes)
2179 [ AC_MSG_RESULT([yes]) 2193 AC_DEFINE(USE_OPENSSL_ENGINE, 1,
2180 AC_DEFINE([USE_OPENSSL_ENGINE], [1],
2181 [Enable OpenSSL engine support]) 2194 [Enable OpenSSL engine support])
2182 ], [ AC_MSG_ERROR([OpenSSL ENGINE support not found]) 2195 ],
2183 ]) 2196 [ AC_MSG_ERROR(OpenSSL ENGINE support not found)]
2197 )
2184 fi ] 2198 fi ]
2185) 2199)
2186 2200
2187# Check for OpenSSL without EVP_aes_{192,256}_cbc 2201# Check for OpenSSL without EVP_aes_{192,256}_cbc
2188AC_MSG_CHECKING([whether OpenSSL has crippled AES support]) 2202AC_MSG_CHECKING([whether OpenSSL has crippled AES support])
2189AC_LINK_IFELSE( 2203AC_LINK_IFELSE(
2190 [AC_LANG_PROGRAM([[ 2204 [AC_LANG_SOURCE([[
2191#include <string.h> 2205#include <string.h>
2192#include <openssl/evp.h> 2206#include <openssl/evp.h>
2193 ]], [[ 2207int main(void) { exit(EVP_aes_192_cbc() == NULL || EVP_aes_256_cbc() == NULL);}
2194 exit(EVP_aes_192_cbc() == NULL || EVP_aes_256_cbc() == NULL);
2195 ]])], 2208 ]])],
2196 [ 2209 [
2197 AC_MSG_RESULT([no]) 2210 AC_MSG_RESULT(no)
2198 ], 2211 ],
2199 [ 2212 [
2200 AC_MSG_RESULT([yes]) 2213 AC_MSG_RESULT(yes)
2201 AC_DEFINE([OPENSSL_LOBOTOMISED_AES], [1], 2214 AC_DEFINE(OPENSSL_LOBOTOMISED_AES, 1,
2202 [libcrypto is missing AES 192 and 256 bit functions]) 2215 [libcrypto is missing AES 192 and 256 bit functions])
2203 ] 2216 ]
2204) 2217)
2205 2218
2206AC_MSG_CHECKING([if EVP_DigestUpdate returns an int]) 2219AC_MSG_CHECKING([if EVP_DigestUpdate returns an int])
2207AC_LINK_IFELSE( 2220AC_LINK_IFELSE(
2208 [AC_LANG_PROGRAM([[ 2221 [AC_LANG_SOURCE([[
2209#include <string.h> 2222#include <string.h>
2210#include <openssl/evp.h> 2223#include <openssl/evp.h>
2211 ]], [[ 2224int main(void) { if(EVP_DigestUpdate(NULL, NULL,0)) exit(0); }
2212 if(EVP_DigestUpdate(NULL, NULL,0))
2213 exit(0);
2214 ]])], 2225 ]])],
2215 [ 2226 [
2216 AC_MSG_RESULT([yes]) 2227 AC_MSG_RESULT(yes)
2217 ], 2228 ],
2218 [ 2229 [
2219 AC_MSG_RESULT([no]) 2230 AC_MSG_RESULT(no)
2220 AC_DEFINE([OPENSSL_EVP_DIGESTUPDATE_VOID], [1], 2231 AC_DEFINE(OPENSSL_EVP_DIGESTUPDATE_VOID, 1,
2221 [Define if EVP_DigestUpdate returns void]) 2232 [Define if EVP_DigestUpdate returns void])
2222 ] 2233 ]
2223) 2234)
@@ -2225,24 +2236,24 @@ AC_LINK_IFELSE(
2225# Some systems want crypt() from libcrypt, *not* the version in OpenSSL, 2236# Some systems want crypt() from libcrypt, *not* the version in OpenSSL,
2226# because the system crypt() is more featureful. 2237# because the system crypt() is more featureful.
2227if test "x$check_for_libcrypt_before" = "x1"; then 2238if test "x$check_for_libcrypt_before" = "x1"; then
2228 AC_CHECK_LIB([crypt], [crypt]) 2239 AC_CHECK_LIB(crypt, crypt)
2229fi 2240fi
2230 2241
2231# Some Linux systems (Slackware) need crypt() from libcrypt, *not* the 2242# Some Linux systems (Slackware) need crypt() from libcrypt, *not* the
2232# version in OpenSSL. 2243# version in OpenSSL.
2233if test "x$check_for_libcrypt_later" = "x1"; then 2244if test "x$check_for_libcrypt_later" = "x1"; then
2234 AC_CHECK_LIB([crypt], [crypt], [LIBS="$LIBS -lcrypt"]) 2245 AC_CHECK_LIB(crypt, crypt, LIBS="$LIBS -lcrypt")
2235fi 2246fi
2236 2247
2237# Search for SHA256 support in libc and/or OpenSSL 2248# Search for SHA256 support in libc and/or OpenSSL
2238AC_CHECK_FUNCS([SHA256_Update EVP_sha256], [TEST_SSH_SHA256=yes], 2249AC_CHECK_FUNCS(SHA256_Update EVP_sha256, [TEST_SSH_SHA256=yes],
2239 [TEST_SSH_SHA256=no]) 2250 [TEST_SSH_SHA256=no])
2240AC_SUBST([TEST_SSH_SHA256]) 2251AC_SUBST(TEST_SSH_SHA256)
2241 2252
2242# Check complete ECC support in OpenSSL 2253# Check complete ECC support in OpenSSL
2243AC_MSG_CHECKING([whether OpenSSL has complete ECC support]) 2254AC_MSG_CHECKING([whether OpenSSL has complete ECC support])
2244AC_LINK_IFELSE( 2255AC_LINK_IFELSE(
2245 [AC_LANG_PROGRAM([[ 2256 [AC_LANG_SOURCE([[
2246#include <openssl/ec.h> 2257#include <openssl/ec.h>
2247#include <openssl/ecdh.h> 2258#include <openssl/ecdh.h>
2248#include <openssl/ecdsa.h> 2259#include <openssl/ecdsa.h>
@@ -2252,31 +2263,32 @@ AC_LINK_IFELSE(
2252#if OPENSSL_VERSION_NUMBER < 0x0090807f /* 0.9.8g */ 2263#if OPENSSL_VERSION_NUMBER < 0x0090807f /* 0.9.8g */
2253# error "OpenSSL < 0.9.8g has unreliable ECC code" 2264# error "OpenSSL < 0.9.8g has unreliable ECC code"
2254#endif 2265#endif
2255 ]], [[ 2266int main(void) {
2256 EC_KEY *e = EC_KEY_new_by_curve_name(NID_secp521r1); 2267 EC_KEY *e = EC_KEY_new_by_curve_name(NID_secp521r1);
2257 const EVP_MD *m = EVP_sha512(); /* We need this too */ 2268 const EVP_MD *m = EVP_sha512(); /* We need this too */
2269}
2258 ]])], 2270 ]])],
2259 [ 2271 [
2260 AC_MSG_RESULT([yes]) 2272 AC_MSG_RESULT(yes)
2261 AC_DEFINE([OPENSSL_HAS_ECC], [1], 2273 AC_DEFINE(OPENSSL_HAS_ECC, 1,
2262 [libcrypto includes complete ECC support]) 2274 [libcrypto includes complete ECC support])
2263 TEST_SSH_ECC=yes 2275 TEST_SSH_ECC=yes
2264 COMMENT_OUT_ECC="" 2276 COMMENT_OUT_ECC=""
2265 ], 2277 ],
2266 [ 2278 [
2267 AC_MSG_RESULT([no]) 2279 AC_MSG_RESULT(no)
2268 TEST_SSH_ECC=no 2280 TEST_SSH_ECC=no
2269 COMMENT_OUT_ECC="#no ecc#" 2281 COMMENT_OUT_ECC="#no ecc#"
2270 ] 2282 ]
2271) 2283)
2272AC_SUBST([TEST_SSH_ECC]) 2284AC_SUBST(TEST_SSH_ECC)
2273AC_SUBST([COMMENT_OUT_ECC]) 2285AC_SUBST(COMMENT_OUT_ECC)
2274 2286
2275saved_LIBS="$LIBS" 2287saved_LIBS="$LIBS"
2276AC_CHECK_LIB([iaf], [ia_openinfo], [ 2288AC_CHECK_LIB(iaf, ia_openinfo, [
2277 LIBS="$LIBS -liaf" 2289 LIBS="$LIBS -liaf"
2278 AC_CHECK_FUNCS([set_id], [SSHDLIBS="$SSHDLIBS -liaf" 2290 AC_CHECK_FUNCS(set_id, [SSHDLIBS="$SSHDLIBS -liaf"
2279 AC_DEFINE([HAVE_LIBIAF], [1], 2291 AC_DEFINE(HAVE_LIBIAF, 1,
2280 [Define if system has libiaf that supports set_id]) 2292 [Define if system has libiaf that supports set_id])
2281 ]) 2293 ])
2282]) 2294])
@@ -2287,18 +2299,17 @@ LIBS="$saved_LIBS"
2287# Check wheter OpenSSL seeds itself 2299# Check wheter OpenSSL seeds itself
2288AC_MSG_CHECKING([whether OpenSSL's PRNG is internally seeded]) 2300AC_MSG_CHECKING([whether OpenSSL's PRNG is internally seeded])
2289AC_RUN_IFELSE( 2301AC_RUN_IFELSE(
2290 [AC_LANG_PROGRAM([[ 2302 [AC_LANG_SOURCE([[
2291#include <string.h> 2303#include <string.h>
2292#include <openssl/rand.h> 2304#include <openssl/rand.h>
2293 ]], [[ 2305int main(void) { exit(RAND_status() == 1 ? 0 : 1); }
2294 exit(RAND_status() == 1 ? 0 : 1);
2295 ]])], 2306 ]])],
2296 [ 2307 [
2297 OPENSSL_SEEDS_ITSELF=yes 2308 OPENSSL_SEEDS_ITSELF=yes
2298 AC_MSG_RESULT([yes]) 2309 AC_MSG_RESULT(yes)
2299 ], 2310 ],
2300 [ 2311 [
2301 AC_MSG_RESULT([no]) 2312 AC_MSG_RESULT(no)
2302 # Default to use of the rand helper if OpenSSL doesn't 2313 # Default to use of the rand helper if OpenSSL doesn't
2303 # seed itself 2314 # seed itself
2304 USE_RAND_HELPER=yes 2315 USE_RAND_HELPER=yes
@@ -2313,7 +2324,7 @@ AC_RUN_IFELSE(
2313 2324
2314# Check for PAM libs 2325# Check for PAM libs
2315PAM_MSG="no" 2326PAM_MSG="no"
2316AC_ARG_WITH([pam], 2327AC_ARG_WITH(pam,
2317 [ --with-pam Enable PAM support ], 2328 [ --with-pam Enable PAM support ],
2318 [ 2329 [
2319 if test "x$withval" != "xno" ; then 2330 if test "x$withval" != "xno" ; then
@@ -2323,16 +2334,16 @@ AC_ARG_WITH([pam],
2323 fi 2334 fi
2324 2335
2325 saved_LIBS="$LIBS" 2336 saved_LIBS="$LIBS"
2326 AC_CHECK_LIB([dl], [dlopen], , ) 2337 AC_CHECK_LIB(dl, dlopen, , )
2327 AC_CHECK_LIB([pam], [pam_set_item], , [AC_MSG_ERROR([*** libpam missing])]) 2338 AC_CHECK_LIB(pam, pam_set_item, , AC_MSG_ERROR([*** libpam missing]))
2328 AC_CHECK_FUNCS([pam_getenvlist]) 2339 AC_CHECK_FUNCS(pam_getenvlist)
2329 AC_CHECK_FUNCS([pam_putenv]) 2340 AC_CHECK_FUNCS(pam_putenv)
2330 LIBS="$saved_LIBS" 2341 LIBS="$saved_LIBS"
2331 2342
2332 PAM_MSG="yes" 2343 PAM_MSG="yes"
2333 2344
2334 SSHDLIBS="$SSHDLIBS -lpam" 2345 SSHDLIBS="$SSHDLIBS -lpam"
2335 AC_DEFINE([USE_PAM], [1], 2346 AC_DEFINE(USE_PAM, 1,
2336 [Define if you want to enable PAM support]) 2347 [Define if you want to enable PAM support])
2337 2348
2338 if test $ac_cv_lib_dl_dlopen = yes; then 2349 if test $ac_cv_lib_dl_dlopen = yes; then
@@ -2353,27 +2364,29 @@ AC_ARG_WITH([pam],
2353if test "x$PAM_MSG" = "xyes" ; then 2364if test "x$PAM_MSG" = "xyes" ; then
2354 # Check PAM strerror arguments (old PAM) 2365 # Check PAM strerror arguments (old PAM)
2355 AC_MSG_CHECKING([whether pam_strerror takes only one argument]) 2366 AC_MSG_CHECKING([whether pam_strerror takes only one argument])
2356 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2367 AC_TRY_COMPILE(
2368 [
2357#include <stdlib.h> 2369#include <stdlib.h>
2358#if defined(HAVE_SECURITY_PAM_APPL_H) 2370#if defined(HAVE_SECURITY_PAM_APPL_H)
2359#include <security/pam_appl.h> 2371#include <security/pam_appl.h>
2360#elif defined (HAVE_PAM_PAM_APPL_H) 2372#elif defined (HAVE_PAM_PAM_APPL_H)
2361#include <pam/pam_appl.h> 2373#include <pam/pam_appl.h>
2362#endif 2374#endif
2363 ]], [[ 2375 ],
2364(void)pam_strerror((pam_handle_t *)NULL, -1); 2376 [(void)pam_strerror((pam_handle_t *)NULL, -1);],
2365 ]])], [AC_MSG_RESULT([no])], [ 2377 [AC_MSG_RESULT(no)],
2366 AC_DEFINE([HAVE_OLD_PAM], [1], 2378 [
2379 AC_DEFINE(HAVE_OLD_PAM, 1,
2367 [Define if you have an old version of PAM 2380 [Define if you have an old version of PAM
2368 which takes only one argument to pam_strerror]) 2381 which takes only one argument to pam_strerror])
2369 AC_MSG_RESULT([yes]) 2382 AC_MSG_RESULT(yes)
2370 PAM_MSG="yes (old library)" 2383 PAM_MSG="yes (old library)"
2371 2384 ]
2372 ]) 2385 )
2373fi 2386fi
2374 2387
2375# Do we want to force the use of the rand helper? 2388# Do we want to force the use of the rand helper?
2376AC_ARG_WITH([rand-helper], 2389AC_ARG_WITH(rand-helper,
2377 [ --with-rand-helper Use subprocess to gather strong randomness ], 2390 [ --with-rand-helper Use subprocess to gather strong randomness ],
2378 [ 2391 [
2379 if test "x$withval" = "xno" ; then 2392 if test "x$withval" = "xno" ; then
@@ -2393,7 +2406,7 @@ AC_ARG_WITH([rand-helper],
2393# Which randomness source do we use? 2406# Which randomness source do we use?
2394if test ! -z "$OPENSSL_SEEDS_ITSELF" && test -z "$USE_RAND_HELPER" ; then 2407if test ! -z "$OPENSSL_SEEDS_ITSELF" && test -z "$USE_RAND_HELPER" ; then
2395 # OpenSSL only 2408 # OpenSSL only
2396 AC_DEFINE([OPENSSL_PRNG_ONLY], [1], 2409 AC_DEFINE(OPENSSL_PRNG_ONLY, 1,
2397 [Define if you want OpenSSL's internally seeded PRNG only]) 2410 [Define if you want OpenSSL's internally seeded PRNG only])
2398 RAND_MSG="OpenSSL internal ONLY" 2411 RAND_MSG="OpenSSL internal ONLY"
2399 INSTALL_SSH_RAND_HELPER="" 2412 INSTALL_SSH_RAND_HELPER=""
@@ -2402,12 +2415,12 @@ elif test ! -z "$USE_RAND_HELPER" ; then
2402 RAND_MSG="ssh-rand-helper" 2415 RAND_MSG="ssh-rand-helper"
2403 INSTALL_SSH_RAND_HELPER="yes" 2416 INSTALL_SSH_RAND_HELPER="yes"
2404fi 2417fi
2405AC_SUBST([INSTALL_SSH_RAND_HELPER]) 2418AC_SUBST(INSTALL_SSH_RAND_HELPER)
2406 2419
2407### Configuration of ssh-rand-helper 2420### Configuration of ssh-rand-helper
2408 2421
2409# PRNGD TCP socket 2422# PRNGD TCP socket
2410AC_ARG_WITH([prngd-port], 2423AC_ARG_WITH(prngd-port,
2411 [ --with-prngd-port=PORT read entropy from PRNGD/EGD TCP localhost:PORT], 2424 [ --with-prngd-port=PORT read entropy from PRNGD/EGD TCP localhost:PORT],
2412 [ 2425 [
2413 case "$withval" in 2426 case "$withval" in
@@ -2417,19 +2430,19 @@ AC_ARG_WITH([prngd-port],
2417 [[0-9]]*) 2430 [[0-9]]*)
2418 ;; 2431 ;;
2419 *) 2432 *)
2420 AC_MSG_ERROR([You must specify a numeric port number for --with-prngd-port]) 2433 AC_MSG_ERROR(You must specify a numeric port number for --with-prngd-port)
2421 ;; 2434 ;;
2422 esac 2435 esac
2423 if test ! -z "$withval" ; then 2436 if test ! -z "$withval" ; then
2424 PRNGD_PORT="$withval" 2437 PRNGD_PORT="$withval"
2425 AC_DEFINE_UNQUOTED([PRNGD_PORT], [$PRNGD_PORT], 2438 AC_DEFINE_UNQUOTED(PRNGD_PORT, $PRNGD_PORT,
2426 [Port number of PRNGD/EGD random number socket]) 2439 [Port number of PRNGD/EGD random number socket])
2427 fi 2440 fi
2428 ] 2441 ]
2429) 2442)
2430 2443
2431# PRNGD Unix domain socket 2444# PRNGD Unix domain socket
2432AC_ARG_WITH([prngd-socket], 2445AC_ARG_WITH(prngd-socket,
2433 [ --with-prngd-socket=FILE read entropy from PRNGD/EGD socket FILE (default=/var/run/egd-pool)], 2446 [ --with-prngd-socket=FILE read entropy from PRNGD/EGD socket FILE (default=/var/run/egd-pool)],
2434 [ 2447 [
2435 case "$withval" in 2448 case "$withval" in
@@ -2442,38 +2455,38 @@ AC_ARG_WITH([prngd-socket],
2442 /*) 2455 /*)
2443 ;; 2456 ;;
2444 *) 2457 *)
2445 AC_MSG_ERROR([You must specify an absolute path to the entropy socket]) 2458 AC_MSG_ERROR(You must specify an absolute path to the entropy socket)
2446 ;; 2459 ;;
2447 esac 2460 esac
2448 2461
2449 if test ! -z "$withval" ; then 2462 if test ! -z "$withval" ; then
2450 if test ! -z "$PRNGD_PORT" ; then 2463 if test ! -z "$PRNGD_PORT" ; then
2451 AC_MSG_ERROR([You may not specify both a PRNGD/EGD port and socket]) 2464 AC_MSG_ERROR(You may not specify both a PRNGD/EGD port and socket)
2452 fi 2465 fi
2453 if test ! -r "$withval" ; then 2466 if test ! -r "$withval" ; then
2454 AC_MSG_WARN([Entropy socket is not readable]) 2467 AC_MSG_WARN(Entropy socket is not readable)
2455 fi 2468 fi
2456 PRNGD_SOCKET="$withval" 2469 PRNGD_SOCKET="$withval"
2457 AC_DEFINE_UNQUOTED([PRNGD_SOCKET], ["$PRNGD_SOCKET"], 2470 AC_DEFINE_UNQUOTED(PRNGD_SOCKET, "$PRNGD_SOCKET",
2458 [Location of PRNGD/EGD random number socket]) 2471 [Location of PRNGD/EGD random number socket])
2459 fi 2472 fi
2460 ], 2473 ],
2461 [ 2474 [
2462 # Check for existing socket only if we don't have a random device already 2475 # Check for existing socket only if we don't have a random device already
2463 if test "$USE_RAND_HELPER" = yes ; then 2476 if test "$USE_RAND_HELPER" = yes ; then
2464 AC_MSG_CHECKING([for PRNGD/EGD socket]) 2477 AC_MSG_CHECKING(for PRNGD/EGD socket)
2465 # Insert other locations here 2478 # Insert other locations here
2466 for sock in /var/run/egd-pool /dev/egd-pool /etc/entropy; do 2479 for sock in /var/run/egd-pool /dev/egd-pool /etc/entropy; do
2467 if test -r $sock && $TEST_MINUS_S_SH -c "test -S $sock -o -p $sock" ; then 2480 if test -r $sock && $TEST_MINUS_S_SH -c "test -S $sock -o -p $sock" ; then
2468 PRNGD_SOCKET="$sock" 2481 PRNGD_SOCKET="$sock"
2469 AC_DEFINE_UNQUOTED([PRNGD_SOCKET], ["$PRNGD_SOCKET"]) 2482 AC_DEFINE_UNQUOTED(PRNGD_SOCKET, "$PRNGD_SOCKET")
2470 break; 2483 break;
2471 fi 2484 fi
2472 done 2485 done
2473 if test ! -z "$PRNGD_SOCKET" ; then 2486 if test ! -z "$PRNGD_SOCKET" ; then
2474 AC_MSG_RESULT([$PRNGD_SOCKET]) 2487 AC_MSG_RESULT($PRNGD_SOCKET)
2475 else 2488 else
2476 AC_MSG_RESULT([not found]) 2489 AC_MSG_RESULT(not found)
2477 fi 2490 fi
2478 fi 2491 fi
2479 ] 2492 ]
@@ -2481,7 +2494,7 @@ AC_ARG_WITH([prngd-socket],
2481 2494
2482# Change default command timeout for hashing entropy source 2495# Change default command timeout for hashing entropy source
2483entropy_timeout=200 2496entropy_timeout=200
2484AC_ARG_WITH([entropy-timeout], 2497AC_ARG_WITH(entropy-timeout,
2485 [ --with-entropy-timeout Specify entropy gathering command timeout (msec)], 2498 [ --with-entropy-timeout Specify entropy gathering command timeout (msec)],
2486 [ 2499 [
2487 if test -n "$withval" && test "x$withval" != "xno" && \ 2500 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -2490,11 +2503,11 @@ AC_ARG_WITH([entropy-timeout],
2490 fi 2503 fi
2491 ] 2504 ]
2492) 2505)
2493AC_DEFINE_UNQUOTED([ENTROPY_TIMEOUT_MSEC], [$entropy_timeout], 2506AC_DEFINE_UNQUOTED(ENTROPY_TIMEOUT_MSEC, $entropy_timeout,
2494 [Builtin PRNG command timeout]) 2507 [Builtin PRNG command timeout])
2495 2508
2496SSH_PRIVSEP_USER=sshd 2509SSH_PRIVSEP_USER=sshd
2497AC_ARG_WITH([privsep-user], 2510AC_ARG_WITH(privsep-user,
2498 [ --with-privsep-user=user Specify non-privileged user for privilege separation], 2511 [ --with-privsep-user=user Specify non-privileged user for privilege separation],
2499 [ 2512 [
2500 if test -n "$withval" && test "x$withval" != "xno" && \ 2513 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -2503,9 +2516,9 @@ AC_ARG_WITH([privsep-user],
2503 fi 2516 fi
2504 ] 2517 ]
2505) 2518)
2506AC_DEFINE_UNQUOTED([SSH_PRIVSEP_USER], ["$SSH_PRIVSEP_USER"], 2519AC_DEFINE_UNQUOTED(SSH_PRIVSEP_USER, "$SSH_PRIVSEP_USER",
2507 [non-privileged user for privilege separation]) 2520 [non-privileged user for privilege separation])
2508AC_SUBST([SSH_PRIVSEP_USER]) 2521AC_SUBST(SSH_PRIVSEP_USER)
2509 2522
2510# We do this little dance with the search path to insure 2523# We do this little dance with the search path to insure
2511# that programs that we select for use by installed programs 2524# that programs that we select for use by installed programs
@@ -2522,22 +2535,22 @@ test -d /usr/sbin && PATH=$PATH:/usr/sbin
2522PATH=$PATH:/etc:$OPATH 2535PATH=$PATH:/etc:$OPATH
2523 2536
2524# These programs are used by the command hashing source to gather entropy 2537# These programs are used by the command hashing source to gather entropy
2525OSSH_PATH_ENTROPY_PROG([PROG_LS], [ls]) 2538OSSH_PATH_ENTROPY_PROG(PROG_LS, ls)
2526OSSH_PATH_ENTROPY_PROG([PROG_NETSTAT], [netstat]) 2539OSSH_PATH_ENTROPY_PROG(PROG_NETSTAT, netstat)
2527OSSH_PATH_ENTROPY_PROG([PROG_ARP], [arp]) 2540OSSH_PATH_ENTROPY_PROG(PROG_ARP, arp)
2528OSSH_PATH_ENTROPY_PROG([PROG_IFCONFIG], [ifconfig]) 2541OSSH_PATH_ENTROPY_PROG(PROG_IFCONFIG, ifconfig)
2529OSSH_PATH_ENTROPY_PROG([PROG_JSTAT], [jstat]) 2542OSSH_PATH_ENTROPY_PROG(PROG_JSTAT, jstat)
2530OSSH_PATH_ENTROPY_PROG([PROG_PS], [ps]) 2543OSSH_PATH_ENTROPY_PROG(PROG_PS, ps)
2531OSSH_PATH_ENTROPY_PROG([PROG_SAR], [sar]) 2544OSSH_PATH_ENTROPY_PROG(PROG_SAR, sar)
2532OSSH_PATH_ENTROPY_PROG([PROG_W], [w]) 2545OSSH_PATH_ENTROPY_PROG(PROG_W, w)
2533OSSH_PATH_ENTROPY_PROG([PROG_WHO], [who]) 2546OSSH_PATH_ENTROPY_PROG(PROG_WHO, who)
2534OSSH_PATH_ENTROPY_PROG([PROG_LAST], [last]) 2547OSSH_PATH_ENTROPY_PROG(PROG_LAST, last)
2535OSSH_PATH_ENTROPY_PROG([PROG_LASTLOG], [lastlog]) 2548OSSH_PATH_ENTROPY_PROG(PROG_LASTLOG, lastlog)
2536OSSH_PATH_ENTROPY_PROG([PROG_DF], [df]) 2549OSSH_PATH_ENTROPY_PROG(PROG_DF, df)
2537OSSH_PATH_ENTROPY_PROG([PROG_VMSTAT], [vmstat]) 2550OSSH_PATH_ENTROPY_PROG(PROG_VMSTAT, vmstat)
2538OSSH_PATH_ENTROPY_PROG([PROG_UPTIME], [uptime]) 2551OSSH_PATH_ENTROPY_PROG(PROG_UPTIME, uptime)
2539OSSH_PATH_ENTROPY_PROG([PROG_IPCS], [ipcs]) 2552OSSH_PATH_ENTROPY_PROG(PROG_IPCS, ipcs)
2540OSSH_PATH_ENTROPY_PROG([PROG_TAIL], [tail]) 2553OSSH_PATH_ENTROPY_PROG(PROG_TAIL, tail)
2541# restore PATH 2554# restore PATH
2542PATH=$OPATH 2555PATH=$OPATH
2543 2556
@@ -2554,7 +2567,7 @@ if test ! -z "$INSTALL_SSH_RAND_HELPER" ; then
2554 INSTALL_SSH_PRNG_CMDS="yes" 2567 INSTALL_SSH_PRNG_CMDS="yes"
2555 fi 2568 fi
2556fi 2569fi
2557AC_SUBST([INSTALL_SSH_PRNG_CMDS]) 2570AC_SUBST(INSTALL_SSH_PRNG_CMDS)
2558 2571
2559 2572
2560# Cheap hack to ensure NEWS-OS libraries are arranged right. 2573# Cheap hack to ensure NEWS-OS libraries are arranged right.
@@ -2566,11 +2579,11 @@ fi
2566AC_CHECK_TYPES([long long, unsigned long long, long double]) 2579AC_CHECK_TYPES([long long, unsigned long long, long double])
2567 2580
2568# Check datatype sizes 2581# Check datatype sizes
2569AC_CHECK_SIZEOF([char], [1]) 2582AC_CHECK_SIZEOF(char, 1)
2570AC_CHECK_SIZEOF([short int], [2]) 2583AC_CHECK_SIZEOF(short int, 2)
2571AC_CHECK_SIZEOF([int], [4]) 2584AC_CHECK_SIZEOF(int, 4)
2572AC_CHECK_SIZEOF([long int], [4]) 2585AC_CHECK_SIZEOF(long int, 4)
2573AC_CHECK_SIZEOF([long long int], [8]) 2586AC_CHECK_SIZEOF(long long int, 8)
2574 2587
2575# Sanity check long long for some platforms (AIX) 2588# Sanity check long long for some platforms (AIX)
2576if test "x$ac_cv_sizeof_long_long_int" = "x4" ; then 2589if test "x$ac_cv_sizeof_long_long_int" = "x4" ; then
@@ -2581,7 +2594,7 @@ fi
2581if test -z "$have_llong_max"; then 2594if test -z "$have_llong_max"; then
2582 AC_MSG_CHECKING([for max value of long long]) 2595 AC_MSG_CHECKING([for max value of long long])
2583 AC_RUN_IFELSE( 2596 AC_RUN_IFELSE(
2584 [AC_LANG_PROGRAM([[ 2597 [AC_LANG_SOURCE([[
2585#include <stdio.h> 2598#include <stdio.h>
2586/* Why is this so damn hard? */ 2599/* Why is this so damn hard? */
2587#ifdef __GNUC__ 2600#ifdef __GNUC__
@@ -2617,7 +2630,8 @@ fprint_ll(FILE *f, long long n)
2617 return -1; 2630 return -1;
2618 return 0; 2631 return 0;
2619} 2632}
2620 ]], [[ 2633
2634int main(void) {
2621 FILE *f; 2635 FILE *f;
2622 long long i, llmin, llmax = 0; 2636 long long i, llmin, llmax = 0;
2623 2637
@@ -2651,21 +2665,22 @@ fprint_ll(FILE *f, long long n)
2651 if (fclose(f) < 0) 2665 if (fclose(f) < 0)
2652 exit(5); 2666 exit(5);
2653 exit(0); 2667 exit(0);
2668}
2654 ]])], 2669 ]])],
2655 [ 2670 [
2656 llong_min=`$AWK '{print $1}' conftest.llminmax` 2671 llong_min=`$AWK '{print $1}' conftest.llminmax`
2657 llong_max=`$AWK '{print $2}' conftest.llminmax` 2672 llong_max=`$AWK '{print $2}' conftest.llminmax`
2658 2673
2659 AC_MSG_RESULT([$llong_max]) 2674 AC_MSG_RESULT($llong_max)
2660 AC_DEFINE_UNQUOTED([LLONG_MAX], [${llong_max}LL], 2675 AC_DEFINE_UNQUOTED(LLONG_MAX, [${llong_max}LL],
2661 [max value of long long calculated by configure]) 2676 [max value of long long calculated by configure])
2662 AC_MSG_CHECKING([for min value of long long]) 2677 AC_MSG_CHECKING([for min value of long long])
2663 AC_MSG_RESULT([$llong_min]) 2678 AC_MSG_RESULT($llong_min)
2664 AC_DEFINE_UNQUOTED([LLONG_MIN], [${llong_min}LL], 2679 AC_DEFINE_UNQUOTED(LLONG_MIN, [${llong_min}LL],
2665 [min value of long long calculated by configure]) 2680 [min value of long long calculated by configure])
2666 ], 2681 ],
2667 [ 2682 [
2668 AC_MSG_RESULT([not found]) 2683 AC_MSG_RESULT(not found)
2669 ], 2684 ],
2670 [ 2685 [
2671 AC_MSG_WARN([cross compiling: not checking]) 2686 AC_MSG_WARN([cross compiling: not checking])
@@ -2676,24 +2691,28 @@ fi
2676 2691
2677# More checks for data types 2692# More checks for data types
2678AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int, [ 2693AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int, [
2679 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2694 AC_TRY_COMPILE(
2680 [[ u_int a; a = 1;]])], 2695 [ #include <sys/types.h> ],
2681 [ ac_cv_have_u_int="yes" ], [ ac_cv_have_u_int="no" 2696 [ u_int a; a = 1;],
2682 ]) 2697 [ ac_cv_have_u_int="yes" ],
2698 [ ac_cv_have_u_int="no" ]
2699 )
2683]) 2700])
2684if test "x$ac_cv_have_u_int" = "xyes" ; then 2701if test "x$ac_cv_have_u_int" = "xyes" ; then
2685 AC_DEFINE([HAVE_U_INT], [1], [define if you have u_int data type]) 2702 AC_DEFINE(HAVE_U_INT, 1, [define if you have u_int data type])
2686 have_u_int=1 2703 have_u_int=1
2687fi 2704fi
2688 2705
2689AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t, [ 2706AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t, [
2690 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2707 AC_TRY_COMPILE(
2691 [[ int8_t a; int16_t b; int32_t c; a = b = c = 1;]])], 2708 [ #include <sys/types.h> ],
2692 [ ac_cv_have_intxx_t="yes" ], [ ac_cv_have_intxx_t="no" 2709 [ int8_t a; int16_t b; int32_t c; a = b = c = 1;],
2693 ]) 2710 [ ac_cv_have_intxx_t="yes" ],
2711 [ ac_cv_have_intxx_t="no" ]
2712 )
2694]) 2713])
2695if test "x$ac_cv_have_intxx_t" = "xyes" ; then 2714if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2696 AC_DEFINE([HAVE_INTXX_T], [1], [define if you have intxx_t data type]) 2715 AC_DEFINE(HAVE_INTXX_T, 1, [define if you have intxx_t data type])
2697 have_intxx_t=1 2716 have_intxx_t=1
2698fi 2717fi
2699 2718
@@ -2701,17 +2720,20 @@ if (test -z "$have_intxx_t" && \
2701 test "x$ac_cv_header_stdint_h" = "xyes") 2720 test "x$ac_cv_header_stdint_h" = "xyes")
2702then 2721then
2703 AC_MSG_CHECKING([for intXX_t types in stdint.h]) 2722 AC_MSG_CHECKING([for intXX_t types in stdint.h])
2704 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <stdint.h> ]], 2723 AC_TRY_COMPILE(
2705 [[ int8_t a; int16_t b; int32_t c; a = b = c = 1;]])], 2724 [ #include <stdint.h> ],
2725 [ int8_t a; int16_t b; int32_t c; a = b = c = 1;],
2706 [ 2726 [
2707 AC_DEFINE([HAVE_INTXX_T]) 2727 AC_DEFINE(HAVE_INTXX_T)
2708 AC_MSG_RESULT([yes]) 2728 AC_MSG_RESULT(yes)
2709 ], [ AC_MSG_RESULT([no]) 2729 ],
2710 ]) 2730 [ AC_MSG_RESULT(no) ]
2731 )
2711fi 2732fi
2712 2733
2713AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t, [ 2734AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t, [
2714 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2735 AC_TRY_COMPILE(
2736 [
2715#include <sys/types.h> 2737#include <sys/types.h>
2716#ifdef HAVE_STDINT_H 2738#ifdef HAVE_STDINT_H
2717# include <stdint.h> 2739# include <stdint.h>
@@ -2720,124 +2742,139 @@ AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t, [
2720#ifdef HAVE_SYS_BITYPES_H 2742#ifdef HAVE_SYS_BITYPES_H
2721# include <sys/bitypes.h> 2743# include <sys/bitypes.h>
2722#endif 2744#endif
2723 ]], [[ 2745 ],
2724int64_t a; a = 1; 2746 [ int64_t a; a = 1;],
2725 ]])], 2747 [ ac_cv_have_int64_t="yes" ],
2726 [ ac_cv_have_int64_t="yes" ], [ ac_cv_have_int64_t="no" 2748 [ ac_cv_have_int64_t="no" ]
2727 ]) 2749 )
2728]) 2750])
2729if test "x$ac_cv_have_int64_t" = "xyes" ; then 2751if test "x$ac_cv_have_int64_t" = "xyes" ; then
2730 AC_DEFINE([HAVE_INT64_T], [1], [define if you have int64_t data type]) 2752 AC_DEFINE(HAVE_INT64_T, 1, [define if you have int64_t data type])
2731fi 2753fi
2732 2754
2733AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t, [ 2755AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t, [
2734 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2756 AC_TRY_COMPILE(
2735 [[ u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;]])], 2757 [ #include <sys/types.h> ],
2736 [ ac_cv_have_u_intxx_t="yes" ], [ ac_cv_have_u_intxx_t="no" 2758 [ u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;],
2737 ]) 2759 [ ac_cv_have_u_intxx_t="yes" ],
2760 [ ac_cv_have_u_intxx_t="no" ]
2761 )
2738]) 2762])
2739if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then 2763if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2740 AC_DEFINE([HAVE_U_INTXX_T], [1], [define if you have u_intxx_t data type]) 2764 AC_DEFINE(HAVE_U_INTXX_T, 1, [define if you have u_intxx_t data type])
2741 have_u_intxx_t=1 2765 have_u_intxx_t=1
2742fi 2766fi
2743 2767
2744if test -z "$have_u_intxx_t" ; then 2768if test -z "$have_u_intxx_t" ; then
2745 AC_MSG_CHECKING([for u_intXX_t types in sys/socket.h]) 2769 AC_MSG_CHECKING([for u_intXX_t types in sys/socket.h])
2746 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/socket.h> ]], 2770 AC_TRY_COMPILE(
2747 [[ u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;]])], 2771 [ #include <sys/socket.h> ],
2772 [ u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;],
2748 [ 2773 [
2749 AC_DEFINE([HAVE_U_INTXX_T]) 2774 AC_DEFINE(HAVE_U_INTXX_T)
2750 AC_MSG_RESULT([yes]) 2775 AC_MSG_RESULT(yes)
2751 ], [ AC_MSG_RESULT([no]) 2776 ],
2752 ]) 2777 [ AC_MSG_RESULT(no) ]
2778 )
2753fi 2779fi
2754 2780
2755AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t, [ 2781AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t, [
2756 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2782 AC_TRY_COMPILE(
2757 [[ u_int64_t a; a = 1;]])], 2783 [ #include <sys/types.h> ],
2758 [ ac_cv_have_u_int64_t="yes" ], [ ac_cv_have_u_int64_t="no" 2784 [ u_int64_t a; a = 1;],
2759 ]) 2785 [ ac_cv_have_u_int64_t="yes" ],
2786 [ ac_cv_have_u_int64_t="no" ]
2787 )
2760]) 2788])
2761if test "x$ac_cv_have_u_int64_t" = "xyes" ; then 2789if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2762 AC_DEFINE([HAVE_U_INT64_T], [1], [define if you have u_int64_t data type]) 2790 AC_DEFINE(HAVE_U_INT64_T, 1, [define if you have u_int64_t data type])
2763 have_u_int64_t=1 2791 have_u_int64_t=1
2764fi 2792fi
2765 2793
2766if test -z "$have_u_int64_t" ; then 2794if test -z "$have_u_int64_t" ; then
2767 AC_MSG_CHECKING([for u_int64_t type in sys/bitypes.h]) 2795 AC_MSG_CHECKING([for u_int64_t type in sys/bitypes.h])
2768 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/bitypes.h> ]], 2796 AC_TRY_COMPILE(
2769 [[ u_int64_t a; a = 1]])], 2797 [ #include <sys/bitypes.h> ],
2798 [ u_int64_t a; a = 1],
2770 [ 2799 [
2771 AC_DEFINE([HAVE_U_INT64_T]) 2800 AC_DEFINE(HAVE_U_INT64_T)
2772 AC_MSG_RESULT([yes]) 2801 AC_MSG_RESULT(yes)
2773 ], [ AC_MSG_RESULT([no]) 2802 ],
2774 ]) 2803 [ AC_MSG_RESULT(no) ]
2804 )
2775fi 2805fi
2776 2806
2777if test -z "$have_u_intxx_t" ; then 2807if test -z "$have_u_intxx_t" ; then
2778 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t, [ 2808 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t, [
2779 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2809 AC_TRY_COMPILE(
2810 [
2780#include <sys/types.h> 2811#include <sys/types.h>
2781 ]], [[ 2812 ],
2782 uint8_t a; 2813 [ uint8_t a; uint16_t b; uint32_t c; a = b = c = 1; ],
2783 uint16_t b; 2814 [ ac_cv_have_uintxx_t="yes" ],
2784 uint32_t c; 2815 [ ac_cv_have_uintxx_t="no" ]
2785 a = b = c = 1; 2816 )
2786 ]])],
2787 [ ac_cv_have_uintxx_t="yes" ], [ ac_cv_have_uintxx_t="no"
2788 ])
2789 ]) 2817 ])
2790 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then 2818 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2791 AC_DEFINE([HAVE_UINTXX_T], [1], 2819 AC_DEFINE(HAVE_UINTXX_T, 1,
2792 [define if you have uintxx_t data type]) 2820 [define if you have uintxx_t data type])
2793 fi 2821 fi
2794fi 2822fi
2795 2823
2796if test -z "$have_uintxx_t" ; then 2824if test -z "$have_uintxx_t" ; then
2797 AC_MSG_CHECKING([for uintXX_t types in stdint.h]) 2825 AC_MSG_CHECKING([for uintXX_t types in stdint.h])
2798 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <stdint.h> ]], 2826 AC_TRY_COMPILE(
2799 [[ uint8_t a; uint16_t b; uint32_t c; a = b = c = 1;]])], 2827 [ #include <stdint.h> ],
2828 [ uint8_t a; uint16_t b; uint32_t c; a = b = c = 1;],
2800 [ 2829 [
2801 AC_DEFINE([HAVE_UINTXX_T]) 2830 AC_DEFINE(HAVE_UINTXX_T)
2802 AC_MSG_RESULT([yes]) 2831 AC_MSG_RESULT(yes)
2803 ], [ AC_MSG_RESULT([no]) 2832 ],
2804 ]) 2833 [ AC_MSG_RESULT(no) ]
2834 )
2805fi 2835fi
2806 2836
2807if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \ 2837if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2808 test "x$ac_cv_header_sys_bitypes_h" = "xyes") 2838 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2809then 2839then
2810 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h]) 2840 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2811 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2841 AC_TRY_COMPILE(
2842 [
2812#include <sys/bitypes.h> 2843#include <sys/bitypes.h>
2813 ]], [[ 2844 ],
2845 [
2814 int8_t a; int16_t b; int32_t c; 2846 int8_t a; int16_t b; int32_t c;
2815 u_int8_t e; u_int16_t f; u_int32_t g; 2847 u_int8_t e; u_int16_t f; u_int32_t g;
2816 a = b = c = e = f = g = 1; 2848 a = b = c = e = f = g = 1;
2817 ]])], 2849 ],
2818 [ 2850 [
2819 AC_DEFINE([HAVE_U_INTXX_T]) 2851 AC_DEFINE(HAVE_U_INTXX_T)
2820 AC_DEFINE([HAVE_INTXX_T]) 2852 AC_DEFINE(HAVE_INTXX_T)
2821 AC_MSG_RESULT([yes]) 2853 AC_MSG_RESULT(yes)
2822 ], [AC_MSG_RESULT([no]) 2854 ],
2823 ]) 2855 [AC_MSG_RESULT(no)]
2856 )
2824fi 2857fi
2825 2858
2826 2859
2827AC_CACHE_CHECK([for u_char], ac_cv_have_u_char, [ 2860AC_CACHE_CHECK([for u_char], ac_cv_have_u_char, [
2828 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2861 AC_TRY_COMPILE(
2829 [[ u_char foo; foo = 125; ]])], 2862 [
2830 [ ac_cv_have_u_char="yes" ], [ ac_cv_have_u_char="no" 2863#include <sys/types.h>
2831 ]) 2864 ],
2865 [ u_char foo; foo = 125; ],
2866 [ ac_cv_have_u_char="yes" ],
2867 [ ac_cv_have_u_char="no" ]
2868 )
2832]) 2869])
2833if test "x$ac_cv_have_u_char" = "xyes" ; then 2870if test "x$ac_cv_have_u_char" = "xyes" ; then
2834 AC_DEFINE([HAVE_U_CHAR], [1], [define if you have u_char data type]) 2871 AC_DEFINE(HAVE_U_CHAR, 1, [define if you have u_char data type])
2835fi 2872fi
2836 2873
2837TYPE_SOCKLEN_T 2874TYPE_SOCKLEN_T
2838 2875
2839AC_CHECK_TYPES([sig_atomic_t], , , [#include <signal.h>]) 2876AC_CHECK_TYPES(sig_atomic_t,,,[#include <signal.h>])
2840AC_CHECK_TYPES([fsblkcnt_t, fsfilcnt_t], , , [ 2877AC_CHECK_TYPES([fsblkcnt_t, fsfilcnt_t],,,[
2841#include <sys/types.h> 2878#include <sys/types.h>
2842#ifdef HAVE_SYS_BITYPES_H 2879#ifdef HAVE_SYS_BITYPES_H
2843#include <sys/bitypes.h> 2880#include <sys/bitypes.h>
@@ -2850,125 +2887,156 @@ AC_CHECK_TYPES([fsblkcnt_t, fsfilcnt_t], , , [
2850#endif 2887#endif
2851]) 2888])
2852 2889
2853AC_CHECK_TYPES([in_addr_t, in_port_t], , , 2890AC_CHECK_TYPES([in_addr_t, in_port_t],,,
2854[#include <sys/types.h> 2891[#include <sys/types.h>
2855#include <netinet/in.h>]) 2892#include <netinet/in.h>])
2856 2893
2857AC_CACHE_CHECK([for size_t], ac_cv_have_size_t, [ 2894AC_CACHE_CHECK([for size_t], ac_cv_have_size_t, [
2858 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2895 AC_TRY_COMPILE(
2859 [[ size_t foo; foo = 1235; ]])], 2896 [
2860 [ ac_cv_have_size_t="yes" ], [ ac_cv_have_size_t="no" 2897#include <sys/types.h>
2861 ]) 2898 ],
2899 [ size_t foo; foo = 1235; ],
2900 [ ac_cv_have_size_t="yes" ],
2901 [ ac_cv_have_size_t="no" ]
2902 )
2862]) 2903])
2863if test "x$ac_cv_have_size_t" = "xyes" ; then 2904if test "x$ac_cv_have_size_t" = "xyes" ; then
2864 AC_DEFINE([HAVE_SIZE_T], [1], [define if you have size_t data type]) 2905 AC_DEFINE(HAVE_SIZE_T, 1, [define if you have size_t data type])
2865fi 2906fi
2866 2907
2867AC_CACHE_CHECK([for ssize_t], ac_cv_have_ssize_t, [ 2908AC_CACHE_CHECK([for ssize_t], ac_cv_have_ssize_t, [
2868 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2909 AC_TRY_COMPILE(
2869 [[ ssize_t foo; foo = 1235; ]])], 2910 [
2870 [ ac_cv_have_ssize_t="yes" ], [ ac_cv_have_ssize_t="no" 2911#include <sys/types.h>
2871 ]) 2912 ],
2913 [ ssize_t foo; foo = 1235; ],
2914 [ ac_cv_have_ssize_t="yes" ],
2915 [ ac_cv_have_ssize_t="no" ]
2916 )
2872]) 2917])
2873if test "x$ac_cv_have_ssize_t" = "xyes" ; then 2918if test "x$ac_cv_have_ssize_t" = "xyes" ; then
2874 AC_DEFINE([HAVE_SSIZE_T], [1], [define if you have ssize_t data type]) 2919 AC_DEFINE(HAVE_SSIZE_T, 1, [define if you have ssize_t data type])
2875fi 2920fi
2876 2921
2877AC_CACHE_CHECK([for clock_t], ac_cv_have_clock_t, [ 2922AC_CACHE_CHECK([for clock_t], ac_cv_have_clock_t, [
2878 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <time.h> ]], 2923 AC_TRY_COMPILE(
2879 [[ clock_t foo; foo = 1235; ]])], 2924 [
2880 [ ac_cv_have_clock_t="yes" ], [ ac_cv_have_clock_t="no" 2925#include <time.h>
2881 ]) 2926 ],
2927 [ clock_t foo; foo = 1235; ],
2928 [ ac_cv_have_clock_t="yes" ],
2929 [ ac_cv_have_clock_t="no" ]
2930 )
2882]) 2931])
2883if test "x$ac_cv_have_clock_t" = "xyes" ; then 2932if test "x$ac_cv_have_clock_t" = "xyes" ; then
2884 AC_DEFINE([HAVE_CLOCK_T], [1], [define if you have clock_t data type]) 2933 AC_DEFINE(HAVE_CLOCK_T, 1, [define if you have clock_t data type])
2885fi 2934fi
2886 2935
2887AC_CACHE_CHECK([for sa_family_t], ac_cv_have_sa_family_t, [ 2936AC_CACHE_CHECK([for sa_family_t], ac_cv_have_sa_family_t, [
2888 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2937 AC_TRY_COMPILE(
2938 [
2889#include <sys/types.h> 2939#include <sys/types.h>
2890#include <sys/socket.h> 2940#include <sys/socket.h>
2891 ]], [[ sa_family_t foo; foo = 1235; ]])], 2941 ],
2892 [ ac_cv_have_sa_family_t="yes" ], 2942 [ sa_family_t foo; foo = 1235; ],
2893 [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2943 [ ac_cv_have_sa_family_t="yes" ],
2944 [ AC_TRY_COMPILE(
2945 [
2894#include <sys/types.h> 2946#include <sys/types.h>
2895#include <sys/socket.h> 2947#include <sys/socket.h>
2896#include <netinet/in.h> 2948#include <netinet/in.h>
2897 ]], [[ sa_family_t foo; foo = 1235; ]])], 2949 ],
2950 [ sa_family_t foo; foo = 1235; ],
2898 [ ac_cv_have_sa_family_t="yes" ], 2951 [ ac_cv_have_sa_family_t="yes" ],
2952
2899 [ ac_cv_have_sa_family_t="no" ] 2953 [ ac_cv_have_sa_family_t="no" ]
2954 )]
2900 ) 2955 )
2901 ])
2902]) 2956])
2903if test "x$ac_cv_have_sa_family_t" = "xyes" ; then 2957if test "x$ac_cv_have_sa_family_t" = "xyes" ; then
2904 AC_DEFINE([HAVE_SA_FAMILY_T], [1], 2958 AC_DEFINE(HAVE_SA_FAMILY_T, 1,
2905 [define if you have sa_family_t data type]) 2959 [define if you have sa_family_t data type])
2906fi 2960fi
2907 2961
2908AC_CACHE_CHECK([for pid_t], ac_cv_have_pid_t, [ 2962AC_CACHE_CHECK([for pid_t], ac_cv_have_pid_t, [
2909 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2963 AC_TRY_COMPILE(
2910 [[ pid_t foo; foo = 1235; ]])], 2964 [
2911 [ ac_cv_have_pid_t="yes" ], [ ac_cv_have_pid_t="no" 2965#include <sys/types.h>
2912 ]) 2966 ],
2967 [ pid_t foo; foo = 1235; ],
2968 [ ac_cv_have_pid_t="yes" ],
2969 [ ac_cv_have_pid_t="no" ]
2970 )
2913]) 2971])
2914if test "x$ac_cv_have_pid_t" = "xyes" ; then 2972if test "x$ac_cv_have_pid_t" = "xyes" ; then
2915 AC_DEFINE([HAVE_PID_T], [1], [define if you have pid_t data type]) 2973 AC_DEFINE(HAVE_PID_T, 1, [define if you have pid_t data type])
2916fi 2974fi
2917 2975
2918AC_CACHE_CHECK([for mode_t], ac_cv_have_mode_t, [ 2976AC_CACHE_CHECK([for mode_t], ac_cv_have_mode_t, [
2919 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> ]], 2977 AC_TRY_COMPILE(
2920 [[ mode_t foo; foo = 1235; ]])], 2978 [
2921 [ ac_cv_have_mode_t="yes" ], [ ac_cv_have_mode_t="no" 2979#include <sys/types.h>
2922 ]) 2980 ],
2981 [ mode_t foo; foo = 1235; ],
2982 [ ac_cv_have_mode_t="yes" ],
2983 [ ac_cv_have_mode_t="no" ]
2984 )
2923]) 2985])
2924if test "x$ac_cv_have_mode_t" = "xyes" ; then 2986if test "x$ac_cv_have_mode_t" = "xyes" ; then
2925 AC_DEFINE([HAVE_MODE_T], [1], [define if you have mode_t data type]) 2987 AC_DEFINE(HAVE_MODE_T, 1, [define if you have mode_t data type])
2926fi 2988fi
2927 2989
2928 2990
2929AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_have_struct_sockaddr_storage, [ 2991AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_have_struct_sockaddr_storage, [
2930 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2992 AC_TRY_COMPILE(
2993 [
2931#include <sys/types.h> 2994#include <sys/types.h>
2932#include <sys/socket.h> 2995#include <sys/socket.h>
2933 ]], [[ struct sockaddr_storage s; ]])], 2996 ],
2934 [ ac_cv_have_struct_sockaddr_storage="yes" ], 2997 [ struct sockaddr_storage s; ],
2935 [ ac_cv_have_struct_sockaddr_storage="no" 2998 [ ac_cv_have_struct_sockaddr_storage="yes" ],
2936 ]) 2999 [ ac_cv_have_struct_sockaddr_storage="no" ]
3000 )
2937]) 3001])
2938if test "x$ac_cv_have_struct_sockaddr_storage" = "xyes" ; then 3002if test "x$ac_cv_have_struct_sockaddr_storage" = "xyes" ; then
2939 AC_DEFINE([HAVE_STRUCT_SOCKADDR_STORAGE], [1], 3003 AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1,
2940 [define if you have struct sockaddr_storage data type]) 3004 [define if you have struct sockaddr_storage data type])
2941fi 3005fi
2942 3006
2943AC_CACHE_CHECK([for struct sockaddr_in6], ac_cv_have_struct_sockaddr_in6, [ 3007AC_CACHE_CHECK([for struct sockaddr_in6], ac_cv_have_struct_sockaddr_in6, [
2944 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3008 AC_TRY_COMPILE(
3009 [
2945#include <sys/types.h> 3010#include <sys/types.h>
2946#include <netinet/in.h> 3011#include <netinet/in.h>
2947 ]], [[ struct sockaddr_in6 s; s.sin6_family = 0; ]])], 3012 ],
2948 [ ac_cv_have_struct_sockaddr_in6="yes" ], 3013 [ struct sockaddr_in6 s; s.sin6_family = 0; ],
2949 [ ac_cv_have_struct_sockaddr_in6="no" 3014 [ ac_cv_have_struct_sockaddr_in6="yes" ],
2950 ]) 3015 [ ac_cv_have_struct_sockaddr_in6="no" ]
3016 )
2951]) 3017])
2952if test "x$ac_cv_have_struct_sockaddr_in6" = "xyes" ; then 3018if test "x$ac_cv_have_struct_sockaddr_in6" = "xyes" ; then
2953 AC_DEFINE([HAVE_STRUCT_SOCKADDR_IN6], [1], 3019 AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1,
2954 [define if you have struct sockaddr_in6 data type]) 3020 [define if you have struct sockaddr_in6 data type])
2955fi 3021fi
2956 3022
2957AC_CACHE_CHECK([for struct in6_addr], ac_cv_have_struct_in6_addr, [ 3023AC_CACHE_CHECK([for struct in6_addr], ac_cv_have_struct_in6_addr, [
2958 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3024 AC_TRY_COMPILE(
3025 [
2959#include <sys/types.h> 3026#include <sys/types.h>
2960#include <netinet/in.h> 3027#include <netinet/in.h>
2961 ]], [[ struct in6_addr s; s.s6_addr[0] = 0; ]])], 3028 ],
2962 [ ac_cv_have_struct_in6_addr="yes" ], 3029 [ struct in6_addr s; s.s6_addr[0] = 0; ],
2963 [ ac_cv_have_struct_in6_addr="no" 3030 [ ac_cv_have_struct_in6_addr="yes" ],
2964 ]) 3031 [ ac_cv_have_struct_in6_addr="no" ]
3032 )
2965]) 3033])
2966if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then 3034if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then
2967 AC_DEFINE([HAVE_STRUCT_IN6_ADDR], [1], 3035 AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1,
2968 [define if you have struct in6_addr data type]) 3036 [define if you have struct in6_addr data type])
2969 3037
2970dnl Now check for sin6_scope_id 3038dnl Now check for sin6_scope_id
2971 AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id], , , 3039 AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,
2972 [ 3040 [
2973#ifdef HAVE_SYS_TYPES_H 3041#ifdef HAVE_SYS_TYPES_H
2974#include <sys/types.h> 3042#include <sys/types.h>
@@ -2978,33 +3046,36 @@ dnl Now check for sin6_scope_id
2978fi 3046fi
2979 3047
2980AC_CACHE_CHECK([for struct addrinfo], ac_cv_have_struct_addrinfo, [ 3048AC_CACHE_CHECK([for struct addrinfo], ac_cv_have_struct_addrinfo, [
2981 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3049 AC_TRY_COMPILE(
3050 [
2982#include <sys/types.h> 3051#include <sys/types.h>
2983#include <sys/socket.h> 3052#include <sys/socket.h>
2984#include <netdb.h> 3053#include <netdb.h>
2985 ]], [[ struct addrinfo s; s.ai_flags = AI_PASSIVE; ]])], 3054 ],
2986 [ ac_cv_have_struct_addrinfo="yes" ], 3055 [ struct addrinfo s; s.ai_flags = AI_PASSIVE; ],
2987 [ ac_cv_have_struct_addrinfo="no" 3056 [ ac_cv_have_struct_addrinfo="yes" ],
2988 ]) 3057 [ ac_cv_have_struct_addrinfo="no" ]
3058 )
2989]) 3059])
2990if test "x$ac_cv_have_struct_addrinfo" = "xyes" ; then 3060if test "x$ac_cv_have_struct_addrinfo" = "xyes" ; then
2991 AC_DEFINE([HAVE_STRUCT_ADDRINFO], [1], 3061 AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1,
2992 [define if you have struct addrinfo data type]) 3062 [define if you have struct addrinfo data type])
2993fi 3063fi
2994 3064
2995AC_CACHE_CHECK([for struct timeval], ac_cv_have_struct_timeval, [ 3065AC_CACHE_CHECK([for struct timeval], ac_cv_have_struct_timeval, [
2996 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/time.h> ]], 3066 AC_TRY_COMPILE(
2997 [[ struct timeval tv; tv.tv_sec = 1;]])], 3067 [ #include <sys/time.h> ],
2998 [ ac_cv_have_struct_timeval="yes" ], 3068 [ struct timeval tv; tv.tv_sec = 1;],
2999 [ ac_cv_have_struct_timeval="no" 3069 [ ac_cv_have_struct_timeval="yes" ],
3000 ]) 3070 [ ac_cv_have_struct_timeval="no" ]
3071 )
3001]) 3072])
3002if test "x$ac_cv_have_struct_timeval" = "xyes" ; then 3073if test "x$ac_cv_have_struct_timeval" = "xyes" ; then
3003 AC_DEFINE([HAVE_STRUCT_TIMEVAL], [1], [define if you have struct timeval]) 3074 AC_DEFINE(HAVE_STRUCT_TIMEVAL, 1, [define if you have struct timeval])
3004 have_struct_timeval=1 3075 have_struct_timeval=1
3005fi 3076fi
3006 3077
3007AC_CHECK_TYPES([struct timespec]) 3078AC_CHECK_TYPES(struct timespec)
3008 3079
3009# We need int64_t or else certian parts of the compile will fail. 3080# We need int64_t or else certian parts of the compile will fail.
3010if test "x$ac_cv_have_int64_t" = "xno" && \ 3081if test "x$ac_cv_have_int64_t" = "xno" && \
@@ -3040,32 +3111,32 @@ main()
3040#else 3111#else
3041main() { exit(0); } 3112main() { exit(0); }
3042#endif 3113#endif
3043 ]])], [ true ], [ AC_DEFINE([BROKEN_SNPRINTF]) ], 3114 ]])], [ true ], [ AC_DEFINE(BROKEN_SNPRINTF) ],
3044 AC_MSG_WARN([cross compiling: Assuming working snprintf()]) 3115 AC_MSG_WARN([cross compiling: Assuming working snprintf()])
3045 ) 3116 )
3046fi 3117fi
3047 3118
3048dnl Checks for structure members 3119dnl Checks for structure members
3049OSSH_CHECK_HEADER_FOR_FIELD([ut_host], [utmp.h], [HAVE_HOST_IN_UTMP]) 3120OSSH_CHECK_HEADER_FOR_FIELD(ut_host, utmp.h, HAVE_HOST_IN_UTMP)
3050OSSH_CHECK_HEADER_FOR_FIELD([ut_host], [utmpx.h], [HAVE_HOST_IN_UTMPX]) 3121OSSH_CHECK_HEADER_FOR_FIELD(ut_host, utmpx.h, HAVE_HOST_IN_UTMPX)
3051OSSH_CHECK_HEADER_FOR_FIELD([syslen], [utmpx.h], [HAVE_SYSLEN_IN_UTMPX]) 3122OSSH_CHECK_HEADER_FOR_FIELD(syslen, utmpx.h, HAVE_SYSLEN_IN_UTMPX)
3052OSSH_CHECK_HEADER_FOR_FIELD([ut_pid], [utmp.h], [HAVE_PID_IN_UTMP]) 3123OSSH_CHECK_HEADER_FOR_FIELD(ut_pid, utmp.h, HAVE_PID_IN_UTMP)
3053OSSH_CHECK_HEADER_FOR_FIELD([ut_type], [utmp.h], [HAVE_TYPE_IN_UTMP]) 3124OSSH_CHECK_HEADER_FOR_FIELD(ut_type, utmp.h, HAVE_TYPE_IN_UTMP)
3054OSSH_CHECK_HEADER_FOR_FIELD([ut_type], [utmpx.h], [HAVE_TYPE_IN_UTMPX]) 3125OSSH_CHECK_HEADER_FOR_FIELD(ut_type, utmpx.h, HAVE_TYPE_IN_UTMPX)
3055OSSH_CHECK_HEADER_FOR_FIELD([ut_tv], [utmp.h], [HAVE_TV_IN_UTMP]) 3126OSSH_CHECK_HEADER_FOR_FIELD(ut_tv, utmp.h, HAVE_TV_IN_UTMP)
3056OSSH_CHECK_HEADER_FOR_FIELD([ut_id], [utmp.h], [HAVE_ID_IN_UTMP]) 3127OSSH_CHECK_HEADER_FOR_FIELD(ut_id, utmp.h, HAVE_ID_IN_UTMP)
3057OSSH_CHECK_HEADER_FOR_FIELD([ut_id], [utmpx.h], [HAVE_ID_IN_UTMPX]) 3128OSSH_CHECK_HEADER_FOR_FIELD(ut_id, utmpx.h, HAVE_ID_IN_UTMPX)
3058OSSH_CHECK_HEADER_FOR_FIELD([ut_addr], [utmp.h], [HAVE_ADDR_IN_UTMP]) 3129OSSH_CHECK_HEADER_FOR_FIELD(ut_addr, utmp.h, HAVE_ADDR_IN_UTMP)
3059OSSH_CHECK_HEADER_FOR_FIELD([ut_addr], [utmpx.h], [HAVE_ADDR_IN_UTMPX]) 3130OSSH_CHECK_HEADER_FOR_FIELD(ut_addr, utmpx.h, HAVE_ADDR_IN_UTMPX)
3060OSSH_CHECK_HEADER_FOR_FIELD([ut_addr_v6], [utmp.h], [HAVE_ADDR_V6_IN_UTMP]) 3131OSSH_CHECK_HEADER_FOR_FIELD(ut_addr_v6, utmp.h, HAVE_ADDR_V6_IN_UTMP)
3061OSSH_CHECK_HEADER_FOR_FIELD([ut_addr_v6], [utmpx.h], [HAVE_ADDR_V6_IN_UTMPX]) 3132OSSH_CHECK_HEADER_FOR_FIELD(ut_addr_v6, utmpx.h, HAVE_ADDR_V6_IN_UTMPX)
3062OSSH_CHECK_HEADER_FOR_FIELD([ut_exit], [utmp.h], [HAVE_EXIT_IN_UTMP]) 3133OSSH_CHECK_HEADER_FOR_FIELD(ut_exit, utmp.h, HAVE_EXIT_IN_UTMP)
3063OSSH_CHECK_HEADER_FOR_FIELD([ut_time], [utmp.h], [HAVE_TIME_IN_UTMP]) 3134OSSH_CHECK_HEADER_FOR_FIELD(ut_time, utmp.h, HAVE_TIME_IN_UTMP)
3064OSSH_CHECK_HEADER_FOR_FIELD([ut_time], [utmpx.h], [HAVE_TIME_IN_UTMPX]) 3135OSSH_CHECK_HEADER_FOR_FIELD(ut_time, utmpx.h, HAVE_TIME_IN_UTMPX)
3065OSSH_CHECK_HEADER_FOR_FIELD([ut_tv], [utmpx.h], [HAVE_TV_IN_UTMPX]) 3136OSSH_CHECK_HEADER_FOR_FIELD(ut_tv, utmpx.h, HAVE_TV_IN_UTMPX)
3066 3137
3067AC_CHECK_MEMBERS([struct stat.st_blksize]) 3138AC_CHECK_MEMBERS([struct stat.st_blksize])
3068AC_CHECK_MEMBER([struct __res_state.retrans], [], [AC_DEFINE([__res_state], [state], 3139AC_CHECK_MEMBER([struct __res_state.retrans], [], [AC_DEFINE(__res_state, state,
3069 [Define if we don't have struct __res_state in resolv.h])], 3140 [Define if we don't have struct __res_state in resolv.h])],
3070[ 3141[
3071#include <stdio.h> 3142#include <stdio.h>
@@ -3079,79 +3150,94 @@ AC_CHECK_MEMBER([struct __res_state.retrans], [], [AC_DEFINE([__res_state], [sta
3079 3150
3080AC_CACHE_CHECK([for ss_family field in struct sockaddr_storage], 3151AC_CACHE_CHECK([for ss_family field in struct sockaddr_storage],
3081 ac_cv_have_ss_family_in_struct_ss, [ 3152 ac_cv_have_ss_family_in_struct_ss, [
3082 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3153 AC_TRY_COMPILE(
3154 [
3083#include <sys/types.h> 3155#include <sys/types.h>
3084#include <sys/socket.h> 3156#include <sys/socket.h>
3085 ]], [[ struct sockaddr_storage s; s.ss_family = 1; ]])], 3157 ],
3086 [ ac_cv_have_ss_family_in_struct_ss="yes" ], 3158 [ struct sockaddr_storage s; s.ss_family = 1; ],
3087 [ ac_cv_have_ss_family_in_struct_ss="no" ]) 3159 [ ac_cv_have_ss_family_in_struct_ss="yes" ],
3160 [ ac_cv_have_ss_family_in_struct_ss="no" ],
3161 )
3088]) 3162])
3089if test "x$ac_cv_have_ss_family_in_struct_ss" = "xyes" ; then 3163if test "x$ac_cv_have_ss_family_in_struct_ss" = "xyes" ; then
3090 AC_DEFINE([HAVE_SS_FAMILY_IN_SS], [1], [Fields in struct sockaddr_storage]) 3164 AC_DEFINE(HAVE_SS_FAMILY_IN_SS, 1, [Fields in struct sockaddr_storage])
3091fi 3165fi
3092 3166
3093AC_CACHE_CHECK([for __ss_family field in struct sockaddr_storage], 3167AC_CACHE_CHECK([for __ss_family field in struct sockaddr_storage],
3094 ac_cv_have___ss_family_in_struct_ss, [ 3168 ac_cv_have___ss_family_in_struct_ss, [
3095 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3169 AC_TRY_COMPILE(
3170 [
3096#include <sys/types.h> 3171#include <sys/types.h>
3097#include <sys/socket.h> 3172#include <sys/socket.h>
3098 ]], [[ struct sockaddr_storage s; s.__ss_family = 1; ]])], 3173 ],
3099 [ ac_cv_have___ss_family_in_struct_ss="yes" ], 3174 [ struct sockaddr_storage s; s.__ss_family = 1; ],
3100 [ ac_cv_have___ss_family_in_struct_ss="no" 3175 [ ac_cv_have___ss_family_in_struct_ss="yes" ],
3101 ]) 3176 [ ac_cv_have___ss_family_in_struct_ss="no" ]
3177 )
3102]) 3178])
3103if test "x$ac_cv_have___ss_family_in_struct_ss" = "xyes" ; then 3179if test "x$ac_cv_have___ss_family_in_struct_ss" = "xyes" ; then
3104 AC_DEFINE([HAVE___SS_FAMILY_IN_SS], [1], 3180 AC_DEFINE(HAVE___SS_FAMILY_IN_SS, 1,
3105 [Fields in struct sockaddr_storage]) 3181 [Fields in struct sockaddr_storage])
3106fi 3182fi
3107 3183
3108AC_CACHE_CHECK([for pw_class field in struct passwd], 3184AC_CACHE_CHECK([for pw_class field in struct passwd],
3109 ac_cv_have_pw_class_in_struct_passwd, [ 3185 ac_cv_have_pw_class_in_struct_passwd, [
3110 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <pwd.h> ]], 3186 AC_TRY_COMPILE(
3111 [[ struct passwd p; p.pw_class = 0; ]])], 3187 [
3112 [ ac_cv_have_pw_class_in_struct_passwd="yes" ], 3188#include <pwd.h>
3113 [ ac_cv_have_pw_class_in_struct_passwd="no" 3189 ],
3114 ]) 3190 [ struct passwd p; p.pw_class = 0; ],
3191 [ ac_cv_have_pw_class_in_struct_passwd="yes" ],
3192 [ ac_cv_have_pw_class_in_struct_passwd="no" ]
3193 )
3115]) 3194])
3116if test "x$ac_cv_have_pw_class_in_struct_passwd" = "xyes" ; then 3195if test "x$ac_cv_have_pw_class_in_struct_passwd" = "xyes" ; then
3117 AC_DEFINE([HAVE_PW_CLASS_IN_PASSWD], [1], 3196 AC_DEFINE(HAVE_PW_CLASS_IN_PASSWD, 1,
3118 [Define if your password has a pw_class field]) 3197 [Define if your password has a pw_class field])
3119fi 3198fi
3120 3199
3121AC_CACHE_CHECK([for pw_expire field in struct passwd], 3200AC_CACHE_CHECK([for pw_expire field in struct passwd],
3122 ac_cv_have_pw_expire_in_struct_passwd, [ 3201 ac_cv_have_pw_expire_in_struct_passwd, [
3123 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <pwd.h> ]], 3202 AC_TRY_COMPILE(
3124 [[ struct passwd p; p.pw_expire = 0; ]])], 3203 [
3125 [ ac_cv_have_pw_expire_in_struct_passwd="yes" ], 3204#include <pwd.h>
3126 [ ac_cv_have_pw_expire_in_struct_passwd="no" 3205 ],
3127 ]) 3206 [ struct passwd p; p.pw_expire = 0; ],
3207 [ ac_cv_have_pw_expire_in_struct_passwd="yes" ],
3208 [ ac_cv_have_pw_expire_in_struct_passwd="no" ]
3209 )
3128]) 3210])
3129if test "x$ac_cv_have_pw_expire_in_struct_passwd" = "xyes" ; then 3211if test "x$ac_cv_have_pw_expire_in_struct_passwd" = "xyes" ; then
3130 AC_DEFINE([HAVE_PW_EXPIRE_IN_PASSWD], [1], 3212 AC_DEFINE(HAVE_PW_EXPIRE_IN_PASSWD, 1,
3131 [Define if your password has a pw_expire field]) 3213 [Define if your password has a pw_expire field])
3132fi 3214fi
3133 3215
3134AC_CACHE_CHECK([for pw_change field in struct passwd], 3216AC_CACHE_CHECK([for pw_change field in struct passwd],
3135 ac_cv_have_pw_change_in_struct_passwd, [ 3217 ac_cv_have_pw_change_in_struct_passwd, [
3136 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <pwd.h> ]], 3218 AC_TRY_COMPILE(
3137 [[ struct passwd p; p.pw_change = 0; ]])], 3219 [
3138 [ ac_cv_have_pw_change_in_struct_passwd="yes" ], 3220#include <pwd.h>
3139 [ ac_cv_have_pw_change_in_struct_passwd="no" 3221 ],
3140 ]) 3222 [ struct passwd p; p.pw_change = 0; ],
3223 [ ac_cv_have_pw_change_in_struct_passwd="yes" ],
3224 [ ac_cv_have_pw_change_in_struct_passwd="no" ]
3225 )
3141]) 3226])
3142if test "x$ac_cv_have_pw_change_in_struct_passwd" = "xyes" ; then 3227if test "x$ac_cv_have_pw_change_in_struct_passwd" = "xyes" ; then
3143 AC_DEFINE([HAVE_PW_CHANGE_IN_PASSWD], [1], 3228 AC_DEFINE(HAVE_PW_CHANGE_IN_PASSWD, 1,
3144 [Define if your password has a pw_change field]) 3229 [Define if your password has a pw_change field])
3145fi 3230fi
3146 3231
3147dnl make sure we're using the real structure members and not defines 3232dnl make sure we're using the real structure members and not defines
3148AC_CACHE_CHECK([for msg_accrights field in struct msghdr], 3233AC_CACHE_CHECK([for msg_accrights field in struct msghdr],
3149 ac_cv_have_accrights_in_msghdr, [ 3234 ac_cv_have_accrights_in_msghdr, [
3150 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3235 AC_COMPILE_IFELSE(
3236 [
3151#include <sys/types.h> 3237#include <sys/types.h>
3152#include <sys/socket.h> 3238#include <sys/socket.h>
3153#include <sys/uio.h> 3239#include <sys/uio.h>
3154 ]], [[ 3240int main() {
3155#ifdef msg_accrights 3241#ifdef msg_accrights
3156#error "msg_accrights is a macro" 3242#error "msg_accrights is a macro"
3157exit(1); 3243exit(1);
@@ -3159,19 +3245,20 @@ exit(1);
3159struct msghdr m; 3245struct msghdr m;
3160m.msg_accrights = 0; 3246m.msg_accrights = 0;
3161exit(0); 3247exit(0);
3162 ]])], 3248}
3249 ],
3163 [ ac_cv_have_accrights_in_msghdr="yes" ], 3250 [ ac_cv_have_accrights_in_msghdr="yes" ],
3164 [ ac_cv_have_accrights_in_msghdr="no" ] 3251 [ ac_cv_have_accrights_in_msghdr="no" ]
3165 ) 3252 )
3166]) 3253])
3167if test "x$ac_cv_have_accrights_in_msghdr" = "xyes" ; then 3254if test "x$ac_cv_have_accrights_in_msghdr" = "xyes" ; then
3168 AC_DEFINE([HAVE_ACCRIGHTS_IN_MSGHDR], [1], 3255 AC_DEFINE(HAVE_ACCRIGHTS_IN_MSGHDR, 1,
3169 [Define if your system uses access rights style 3256 [Define if your system uses access rights style
3170 file descriptor passing]) 3257 file descriptor passing])
3171fi 3258fi
3172 3259
3173AC_MSG_CHECKING([if struct statvfs.f_fsid is integral type]) 3260AC_MSG_CHECKING(if struct statvfs.f_fsid is integral type)
3174AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3261AC_TRY_COMPILE([
3175#include <sys/types.h> 3262#include <sys/types.h>
3176#include <sys/stat.h> 3263#include <sys/stat.h>
3177#ifdef HAVE_SYS_TIME_H 3264#ifdef HAVE_SYS_TIME_H
@@ -3183,36 +3270,37 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3183#ifdef HAVE_SYS_STATVFS_H 3270#ifdef HAVE_SYS_STATVFS_H
3184#include <sys/statvfs.h> 3271#include <sys/statvfs.h>
3185#endif 3272#endif
3186 ]], [[ struct statvfs s; s.f_fsid = 0; ]])], 3273], [struct statvfs s; s.f_fsid = 0;],
3187 [ AC_MSG_RESULT([yes]) ], 3274[ AC_MSG_RESULT(yes) ],
3188 [ AC_MSG_RESULT([no]) 3275[ AC_MSG_RESULT(no)
3189 3276
3190 AC_MSG_CHECKING([if fsid_t has member val]) 3277 AC_MSG_CHECKING(if fsid_t has member val)
3191 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3278 AC_TRY_COMPILE([
3192#include <sys/types.h> 3279#include <sys/types.h>
3193#include <sys/statvfs.h> 3280#include <sys/statvfs.h>],
3194 ]], [[ fsid_t t; t.val[0] = 0; ]])], 3281 [fsid_t t; t.val[0] = 0;],
3195 [ AC_MSG_RESULT([yes]) 3282 [ AC_MSG_RESULT(yes)
3196 AC_DEFINE([FSID_HAS_VAL], [1], [fsid_t has member val]) ], 3283 AC_DEFINE(FSID_HAS_VAL, 1, fsid_t has member val) ],
3197 [ AC_MSG_RESULT([no]) ]) 3284 [ AC_MSG_RESULT(no) ])
3198 3285
3199 AC_MSG_CHECKING([if f_fsid has member __val]) 3286 AC_MSG_CHECKING(if f_fsid has member __val)
3200 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3287 AC_TRY_COMPILE([
3201#include <sys/types.h> 3288#include <sys/types.h>
3202#include <sys/statvfs.h> 3289#include <sys/statvfs.h>],
3203 ]], [[ fsid_t t; t.__val[0] = 0; ]])], 3290 [fsid_t t; t.__val[0] = 0;],
3204 [ AC_MSG_RESULT([yes]) 3291 [ AC_MSG_RESULT(yes)
3205 AC_DEFINE([FSID_HAS___VAL], [1], [fsid_t has member __val]) ], 3292 AC_DEFINE(FSID_HAS___VAL, 1, fsid_t has member __val) ],
3206 [ AC_MSG_RESULT([no]) ]) 3293 [ AC_MSG_RESULT(no) ])
3207]) 3294])
3208 3295
3209AC_CACHE_CHECK([for msg_control field in struct msghdr], 3296AC_CACHE_CHECK([for msg_control field in struct msghdr],
3210 ac_cv_have_control_in_msghdr, [ 3297 ac_cv_have_control_in_msghdr, [
3211 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3298 AC_COMPILE_IFELSE(
3299 [
3212#include <sys/types.h> 3300#include <sys/types.h>
3213#include <sys/socket.h> 3301#include <sys/socket.h>
3214#include <sys/uio.h> 3302#include <sys/uio.h>
3215 ]], [[ 3303int main() {
3216#ifdef msg_control 3304#ifdef msg_control
3217#error "msg_control is a macro" 3305#error "msg_control is a macro"
3218exit(1); 3306exit(1);
@@ -3220,161 +3308,178 @@ exit(1);
3220struct msghdr m; 3308struct msghdr m;
3221m.msg_control = 0; 3309m.msg_control = 0;
3222exit(0); 3310exit(0);
3223 ]])], 3311}
3312 ],
3224 [ ac_cv_have_control_in_msghdr="yes" ], 3313 [ ac_cv_have_control_in_msghdr="yes" ],
3225 [ ac_cv_have_control_in_msghdr="no" ] 3314 [ ac_cv_have_control_in_msghdr="no" ]
3226 ) 3315 )
3227]) 3316])
3228if test "x$ac_cv_have_control_in_msghdr" = "xyes" ; then 3317if test "x$ac_cv_have_control_in_msghdr" = "xyes" ; then
3229 AC_DEFINE([HAVE_CONTROL_IN_MSGHDR], [1], 3318 AC_DEFINE(HAVE_CONTROL_IN_MSGHDR, 1,
3230 [Define if your system uses ancillary data style 3319 [Define if your system uses ancillary data style
3231 file descriptor passing]) 3320 file descriptor passing])
3232fi 3321fi
3233 3322
3234AC_CACHE_CHECK([if libc defines __progname], ac_cv_libc_defines___progname, [ 3323AC_CACHE_CHECK([if libc defines __progname], ac_cv_libc_defines___progname, [
3235 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], 3324 AC_TRY_LINK([],
3236 [[ extern char *__progname; printf("%s", __progname); ]])], 3325 [ extern char *__progname; printf("%s", __progname); ],
3237 [ ac_cv_libc_defines___progname="yes" ], 3326 [ ac_cv_libc_defines___progname="yes" ],
3238 [ ac_cv_libc_defines___progname="no" 3327 [ ac_cv_libc_defines___progname="no" ]
3239 ]) 3328 )
3240]) 3329])
3241if test "x$ac_cv_libc_defines___progname" = "xyes" ; then 3330if test "x$ac_cv_libc_defines___progname" = "xyes" ; then
3242 AC_DEFINE([HAVE___PROGNAME], [1], [Define if libc defines __progname]) 3331 AC_DEFINE(HAVE___PROGNAME, 1, [Define if libc defines __progname])
3243fi 3332fi
3244 3333
3245AC_CACHE_CHECK([whether $CC implements __FUNCTION__], ac_cv_cc_implements___FUNCTION__, [ 3334AC_CACHE_CHECK([whether $CC implements __FUNCTION__], ac_cv_cc_implements___FUNCTION__, [
3246 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include <stdio.h> ]], 3335 AC_TRY_LINK([
3247 [[ printf("%s", __FUNCTION__); ]])], 3336#include <stdio.h>
3248 [ ac_cv_cc_implements___FUNCTION__="yes" ], 3337],
3249 [ ac_cv_cc_implements___FUNCTION__="no" 3338 [ printf("%s", __FUNCTION__); ],
3250 ]) 3339 [ ac_cv_cc_implements___FUNCTION__="yes" ],
3340 [ ac_cv_cc_implements___FUNCTION__="no" ]
3341 )
3251]) 3342])
3252if test "x$ac_cv_cc_implements___FUNCTION__" = "xyes" ; then 3343if test "x$ac_cv_cc_implements___FUNCTION__" = "xyes" ; then
3253 AC_DEFINE([HAVE___FUNCTION__], [1], 3344 AC_DEFINE(HAVE___FUNCTION__, 1,
3254 [Define if compiler implements __FUNCTION__]) 3345 [Define if compiler implements __FUNCTION__])
3255fi 3346fi
3256 3347
3257AC_CACHE_CHECK([whether $CC implements __func__], ac_cv_cc_implements___func__, [ 3348AC_CACHE_CHECK([whether $CC implements __func__], ac_cv_cc_implements___func__, [
3258 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include <stdio.h> ]], 3349 AC_TRY_LINK([
3259 [[ printf("%s", __func__); ]])], 3350#include <stdio.h>
3260 [ ac_cv_cc_implements___func__="yes" ], 3351],
3261 [ ac_cv_cc_implements___func__="no" 3352 [ printf("%s", __func__); ],
3262 ]) 3353 [ ac_cv_cc_implements___func__="yes" ],
3354 [ ac_cv_cc_implements___func__="no" ]
3355 )
3263]) 3356])
3264if test "x$ac_cv_cc_implements___func__" = "xyes" ; then 3357if test "x$ac_cv_cc_implements___func__" = "xyes" ; then
3265 AC_DEFINE([HAVE___func__], [1], [Define if compiler implements __func__]) 3358 AC_DEFINE(HAVE___func__, 1, [Define if compiler implements __func__])
3266fi 3359fi
3267 3360
3268AC_CACHE_CHECK([whether va_copy exists], ac_cv_have_va_copy, [ 3361AC_CACHE_CHECK([whether va_copy exists], ac_cv_have_va_copy, [
3269 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 3362 AC_TRY_LINK(
3270#include <stdarg.h> 3363 [#include <stdarg.h>
3271va_list x,y; 3364 va_list x,y;],
3272 ]], [[ va_copy(x,y); ]])], 3365 [va_copy(x,y);],
3273 [ ac_cv_have_va_copy="yes" ], 3366 [ ac_cv_have_va_copy="yes" ],
3274 [ ac_cv_have_va_copy="no" 3367 [ ac_cv_have_va_copy="no" ]
3275 ]) 3368 )
3276]) 3369])
3277if test "x$ac_cv_have_va_copy" = "xyes" ; then 3370if test "x$ac_cv_have_va_copy" = "xyes" ; then
3278 AC_DEFINE([HAVE_VA_COPY], [1], [Define if va_copy exists]) 3371 AC_DEFINE(HAVE_VA_COPY, 1, [Define if va_copy exists])
3279fi 3372fi
3280 3373
3281AC_CACHE_CHECK([whether __va_copy exists], ac_cv_have___va_copy, [ 3374AC_CACHE_CHECK([whether __va_copy exists], ac_cv_have___va_copy, [
3282 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 3375 AC_TRY_LINK(
3283#include <stdarg.h> 3376 [#include <stdarg.h>
3284va_list x,y; 3377 va_list x,y;],
3285 ]], [[ __va_copy(x,y); ]])], 3378 [__va_copy(x,y);],
3286 [ ac_cv_have___va_copy="yes" ], [ ac_cv_have___va_copy="no" 3379 [ ac_cv_have___va_copy="yes" ],
3287 ]) 3380 [ ac_cv_have___va_copy="no" ]
3381 )
3288]) 3382])
3289if test "x$ac_cv_have___va_copy" = "xyes" ; then 3383if test "x$ac_cv_have___va_copy" = "xyes" ; then
3290 AC_DEFINE([HAVE___VA_COPY], [1], [Define if __va_copy exists]) 3384 AC_DEFINE(HAVE___VA_COPY, 1, [Define if __va_copy exists])
3291fi 3385fi
3292 3386
3293AC_CACHE_CHECK([whether getopt has optreset support], 3387AC_CACHE_CHECK([whether getopt has optreset support],
3294 ac_cv_have_getopt_optreset, [ 3388 ac_cv_have_getopt_optreset, [
3295 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include <getopt.h> ]], 3389 AC_TRY_LINK(
3296 [[ extern int optreset; optreset = 0; ]])], 3390 [
3297 [ ac_cv_have_getopt_optreset="yes" ], 3391#include <getopt.h>
3298 [ ac_cv_have_getopt_optreset="no" 3392 ],
3299 ]) 3393 [ extern int optreset; optreset = 0; ],
3394 [ ac_cv_have_getopt_optreset="yes" ],
3395 [ ac_cv_have_getopt_optreset="no" ]
3396 )
3300]) 3397])
3301if test "x$ac_cv_have_getopt_optreset" = "xyes" ; then 3398if test "x$ac_cv_have_getopt_optreset" = "xyes" ; then
3302 AC_DEFINE([HAVE_GETOPT_OPTRESET], [1], 3399 AC_DEFINE(HAVE_GETOPT_OPTRESET, 1,
3303 [Define if your getopt(3) defines and uses optreset]) 3400 [Define if your getopt(3) defines and uses optreset])
3304fi 3401fi
3305 3402
3306AC_CACHE_CHECK([if libc defines sys_errlist], ac_cv_libc_defines_sys_errlist, [ 3403AC_CACHE_CHECK([if libc defines sys_errlist], ac_cv_libc_defines_sys_errlist, [
3307 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], 3404 AC_TRY_LINK([],
3308[[ extern const char *const sys_errlist[]; printf("%s", sys_errlist[0]);]])], 3405 [ extern const char *const sys_errlist[]; printf("%s", sys_errlist[0]);],
3309 [ ac_cv_libc_defines_sys_errlist="yes" ], 3406 [ ac_cv_libc_defines_sys_errlist="yes" ],
3310 [ ac_cv_libc_defines_sys_errlist="no" 3407 [ ac_cv_libc_defines_sys_errlist="no" ]
3311 ]) 3408 )
3312]) 3409])
3313if test "x$ac_cv_libc_defines_sys_errlist" = "xyes" ; then 3410if test "x$ac_cv_libc_defines_sys_errlist" = "xyes" ; then
3314 AC_DEFINE([HAVE_SYS_ERRLIST], [1], 3411 AC_DEFINE(HAVE_SYS_ERRLIST, 1,
3315 [Define if your system defines sys_errlist[]]) 3412 [Define if your system defines sys_errlist[]])
3316fi 3413fi
3317 3414
3318 3415
3319AC_CACHE_CHECK([if libc defines sys_nerr], ac_cv_libc_defines_sys_nerr, [ 3416AC_CACHE_CHECK([if libc defines sys_nerr], ac_cv_libc_defines_sys_nerr, [
3320 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], 3417 AC_TRY_LINK([],
3321[[ extern int sys_nerr; printf("%i", sys_nerr);]])], 3418 [ extern int sys_nerr; printf("%i", sys_nerr);],
3322 [ ac_cv_libc_defines_sys_nerr="yes" ], 3419 [ ac_cv_libc_defines_sys_nerr="yes" ],
3323 [ ac_cv_libc_defines_sys_nerr="no" 3420 [ ac_cv_libc_defines_sys_nerr="no" ]
3324 ]) 3421 )
3325]) 3422])
3326if test "x$ac_cv_libc_defines_sys_nerr" = "xyes" ; then 3423if test "x$ac_cv_libc_defines_sys_nerr" = "xyes" ; then
3327 AC_DEFINE([HAVE_SYS_NERR], [1], [Define if your system defines sys_nerr]) 3424 AC_DEFINE(HAVE_SYS_NERR, 1, [Define if your system defines sys_nerr])
3328fi 3425fi
3329 3426
3330# Check libraries needed by DNS fingerprint support 3427# Check libraries needed by DNS fingerprint support
3331AC_SEARCH_LIBS([getrrsetbyname], [resolv], 3428AC_SEARCH_LIBS(getrrsetbyname, resolv,
3332 [AC_DEFINE([HAVE_GETRRSETBYNAME], [1], 3429 [AC_DEFINE(HAVE_GETRRSETBYNAME, 1,
3333 [Define if getrrsetbyname() exists])], 3430 [Define if getrrsetbyname() exists])],
3334 [ 3431 [
3335 # Needed by our getrrsetbyname() 3432 # Needed by our getrrsetbyname()
3336 AC_SEARCH_LIBS([res_query], [resolv]) 3433 AC_SEARCH_LIBS(res_query, resolv)
3337 AC_SEARCH_LIBS([dn_expand], [resolv]) 3434 AC_SEARCH_LIBS(dn_expand, resolv)
3338 AC_MSG_CHECKING([if res_query will link]) 3435 AC_MSG_CHECKING(if res_query will link)
3339 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 3436 AC_LINK_IFELSE([
3437#include "confdefs.h"
3340#include <sys/types.h> 3438#include <sys/types.h>
3341#include <netinet/in.h> 3439#include <netinet/in.h>
3342#include <arpa/nameser.h> 3440#include <arpa/nameser.h>
3343#include <netdb.h> 3441#include <netdb.h>
3344#include <resolv.h> 3442#include <resolv.h>
3345 ]], [[ 3443int main()
3444{
3346 res_query (0, 0, 0, 0, 0); 3445 res_query (0, 0, 0, 0, 0);
3347 ]])], 3446 return 0;
3348 AC_MSG_RESULT([yes]), 3447}
3349 [AC_MSG_RESULT([no]) 3448 ],
3449 AC_MSG_RESULT(yes),
3450 [AC_MSG_RESULT(no)
3350 saved_LIBS="$LIBS" 3451 saved_LIBS="$LIBS"
3351 LIBS="$LIBS -lresolv" 3452 LIBS="$LIBS -lresolv"
3352 AC_MSG_CHECKING([for res_query in -lresolv]) 3453 AC_MSG_CHECKING(for res_query in -lresolv)
3353 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 3454 AC_LINK_IFELSE([
3455#include "confdefs.h"
3354#include <sys/types.h> 3456#include <sys/types.h>
3355#include <netinet/in.h> 3457#include <netinet/in.h>
3356#include <arpa/nameser.h> 3458#include <arpa/nameser.h>
3357#include <netdb.h> 3459#include <netdb.h>
3358#include <resolv.h> 3460#include <resolv.h>
3359 ]], [[ 3461int main()
3462{
3360 res_query (0, 0, 0, 0, 0); 3463 res_query (0, 0, 0, 0, 0);
3361 ]])], 3464 return 0;
3362 [AC_MSG_RESULT([yes])], 3465}
3466 ],
3467 [AC_MSG_RESULT(yes)],
3363 [LIBS="$saved_LIBS" 3468 [LIBS="$saved_LIBS"
3364 AC_MSG_RESULT([no])]) 3469 AC_MSG_RESULT(no)])
3365 ]) 3470 ])
3366 AC_CHECK_FUNCS([_getshort _getlong]) 3471 AC_CHECK_FUNCS(_getshort _getlong)
3367 AC_CHECK_DECLS([_getshort, _getlong], , , 3472 AC_CHECK_DECLS([_getshort, _getlong], , ,
3368 [#include <sys/types.h> 3473 [#include <sys/types.h>
3369 #include <arpa/nameser.h>]) 3474 #include <arpa/nameser.h>])
3370 AC_CHECK_MEMBER([HEADER.ad], 3475 AC_CHECK_MEMBER(HEADER.ad,
3371 [AC_DEFINE([HAVE_HEADER_AD], [1], 3476 [AC_DEFINE(HAVE_HEADER_AD, 1,
3372 [Define if HEADER.ad exists in arpa/nameser.h])], , 3477 [Define if HEADER.ad exists in arpa/nameser.h])],,
3373 [#include <arpa/nameser.h>]) 3478 [#include <arpa/nameser.h>])
3374 ]) 3479 ])
3375 3480
3376AC_MSG_CHECKING([if struct __res_state _res is an extern]) 3481AC_MSG_CHECKING(if struct __res_state _res is an extern)
3377AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 3482AC_LINK_IFELSE([
3378#include <stdio.h> 3483#include <stdio.h>
3379#if HAVE_SYS_TYPES_H 3484#if HAVE_SYS_TYPES_H
3380# include <sys/types.h> 3485# include <sys/types.h>
@@ -3383,43 +3488,43 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
3383#include <arpa/nameser.h> 3488#include <arpa/nameser.h>
3384#include <resolv.h> 3489#include <resolv.h>
3385extern struct __res_state _res; 3490extern struct __res_state _res;
3386 ]], [[ ]])], 3491int main() { return 0; }
3387 [AC_MSG_RESULT([yes]) 3492 ],
3388 AC_DEFINE([HAVE__RES_EXTERN], [1], 3493 [AC_MSG_RESULT(yes)
3494 AC_DEFINE(HAVE__RES_EXTERN, 1,
3389 [Define if you have struct __res_state _res as an extern]) 3495 [Define if you have struct __res_state _res as an extern])
3390 ], 3496 ],
3391 [ AC_MSG_RESULT([no]) ] 3497 [ AC_MSG_RESULT(no) ]
3392) 3498)
3393 3499
3394# Check whether user wants SELinux support 3500# Check whether user wants SELinux support
3395SELINUX_MSG="no" 3501SELINUX_MSG="no"
3396LIBSELINUX="" 3502LIBSELINUX=""
3397AC_ARG_WITH([selinux], 3503AC_ARG_WITH(selinux,
3398 [ --with-selinux Enable SELinux support], 3504 [ --with-selinux Enable SELinux support],
3399 [ if test "x$withval" != "xno" ; then 3505 [ if test "x$withval" != "xno" ; then
3400 save_LIBS="$LIBS" 3506 save_LIBS="$LIBS"
3401 AC_DEFINE([WITH_SELINUX], [1], 3507 AC_DEFINE(WITH_SELINUX,1,[Define if you want SELinux support.])
3402 [Define if you want SELinux support.])
3403 SELINUX_MSG="yes" 3508 SELINUX_MSG="yes"
3404 AC_CHECK_HEADER([selinux/selinux.h], , 3509 AC_CHECK_HEADER([selinux/selinux.h], ,
3405 AC_MSG_ERROR([SELinux support requires selinux.h header])) 3510 AC_MSG_ERROR(SELinux support requires selinux.h header))
3406 AC_CHECK_LIB([selinux], [setexeccon], 3511 AC_CHECK_LIB(selinux, setexeccon,
3407 [ LIBSELINUX="-lselinux" 3512 [ LIBSELINUX="-lselinux"
3408 LIBS="$LIBS -lselinux" 3513 LIBS="$LIBS -lselinux"
3409 ], 3514 ],
3410 AC_MSG_ERROR([SELinux support requires libselinux library])) 3515 AC_MSG_ERROR(SELinux support requires libselinux library))
3411 SSHLIBS="$SSHLIBS $LIBSELINUX" 3516 SSHLIBS="$SSHLIBS $LIBSELINUX"
3412 SSHDLIBS="$SSHDLIBS $LIBSELINUX" 3517 SSHDLIBS="$SSHDLIBS $LIBSELINUX"
3413 AC_CHECK_FUNCS([getseuserbyname get_default_context_with_level]) 3518 AC_CHECK_FUNCS(getseuserbyname get_default_context_with_level)
3414 LIBS="$save_LIBS" 3519 LIBS="$save_LIBS"
3415 fi ] 3520 fi ]
3416) 3521)
3417AC_SUBST([SSHLIBS]) 3522AC_SUBST(SSHLIBS)
3418AC_SUBST([SSHDLIBS]) 3523AC_SUBST(SSHDLIBS)
3419 3524
3420# Check whether user wants Kerberos 5 support 3525# Check whether user wants Kerberos 5 support
3421KRB5_MSG="no" 3526KRB5_MSG="no"
3422AC_ARG_WITH([kerberos5], 3527AC_ARG_WITH(kerberos5,
3423 [ --with-kerberos5=PATH Enable Kerberos 5 support], 3528 [ --with-kerberos5=PATH Enable Kerberos 5 support],
3424 [ if test "x$withval" != "xno" ; then 3529 [ if test "x$withval" != "xno" ; then
3425 if test "x$withval" = "xyes" ; then 3530 if test "x$withval" = "xyes" ; then
@@ -3428,72 +3533,73 @@ AC_ARG_WITH([kerberos5],
3428 KRB5ROOT=${withval} 3533 KRB5ROOT=${withval}
3429 fi 3534 fi
3430 3535
3431 AC_DEFINE([KRB5], [1], [Define if you want Kerberos 5 support]) 3536 AC_DEFINE(KRB5, 1, [Define if you want Kerberos 5 support])
3432 KRB5_MSG="yes" 3537 KRB5_MSG="yes"
3433 3538
3434 AC_PATH_PROG([KRB5CONF], [krb5-config], 3539 AC_PATH_PROG([KRB5CONF],[krb5-config],
3435 [$KRB5ROOT/bin/krb5-config], 3540 [$KRB5ROOT/bin/krb5-config],
3436 [$KRB5ROOT/bin:$PATH]) 3541 [$KRB5ROOT/bin:$PATH])
3437 if test -x $KRB5CONF ; then 3542 if test -x $KRB5CONF ; then
3438 3543
3439 AC_MSG_CHECKING([for gssapi support]) 3544 AC_MSG_CHECKING(for gssapi support)
3440 if $KRB5CONF | grep gssapi >/dev/null ; then 3545 if $KRB5CONF | grep gssapi >/dev/null ; then
3441 AC_MSG_RESULT([yes]) 3546 AC_MSG_RESULT(yes)
3442 AC_DEFINE([GSSAPI], [1], 3547 AC_DEFINE(GSSAPI, 1,
3443 [Define this if you want GSSAPI 3548 [Define this if you want GSSAPI
3444 support in the version 2 protocol]) 3549 support in the version 2 protocol])
3445 k5confopts=gssapi 3550 k5confopts=gssapi
3446 else 3551 else
3447 AC_MSG_RESULT([no]) 3552 AC_MSG_RESULT(no)
3448 k5confopts="" 3553 k5confopts=""
3449 fi 3554 fi
3450 K5CFLAGS="`$KRB5CONF --cflags $k5confopts`" 3555 K5CFLAGS="`$KRB5CONF --cflags $k5confopts`"
3451 K5LIBS="`$KRB5CONF --libs $k5confopts`" 3556 K5LIBS="`$KRB5CONF --libs $k5confopts`"
3452 CPPFLAGS="$CPPFLAGS $K5CFLAGS" 3557 CPPFLAGS="$CPPFLAGS $K5CFLAGS"
3453 AC_MSG_CHECKING([whether we are using Heimdal]) 3558 AC_MSG_CHECKING(whether we are using Heimdal)
3454 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <krb5.h> 3559 AC_TRY_COMPILE([ #include <krb5.h> ],
3455 ]], [[ char *tmp = heimdal_version; ]])], 3560 [ char *tmp = heimdal_version; ],
3456 [ AC_MSG_RESULT([yes]) 3561 [ AC_MSG_RESULT(yes)
3457 AC_DEFINE([HEIMDAL], [1], 3562 AC_DEFINE(HEIMDAL, 1,
3458 [Define this if you are using the Heimdal 3563 [Define this if you are using the
3459 version of Kerberos V5]) ], 3564 Heimdal version of Kerberos V5]) ],
3460 [AC_MSG_RESULT([no]) 3565 AC_MSG_RESULT(no)
3461 ]) 3566 )
3462 else 3567 else
3463 CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include" 3568 CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include"
3464 LDFLAGS="$LDFLAGS -L${KRB5ROOT}/lib" 3569 LDFLAGS="$LDFLAGS -L${KRB5ROOT}/lib"
3465 AC_MSG_CHECKING([whether we are using Heimdal]) 3570 AC_MSG_CHECKING(whether we are using Heimdal)
3466 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <krb5.h> 3571 AC_TRY_COMPILE([ #include <krb5.h> ],
3467 ]], [[ char *tmp = heimdal_version; ]])], 3572 [ char *tmp = heimdal_version; ],
3468 [ AC_MSG_RESULT([yes]) 3573 [ AC_MSG_RESULT(yes)
3469 AC_DEFINE([HEIMDAL]) 3574 AC_DEFINE(HEIMDAL)
3470 K5LIBS="-lkrb5" 3575 K5LIBS="-lkrb5"
3471 K5LIBS="$K5LIBS -lcom_err -lasn1" 3576 K5LIBS="$K5LIBS -lcom_err -lasn1"
3472 AC_CHECK_LIB([roken], [net_write], 3577 AC_CHECK_LIB(roken, net_write,
3473 [K5LIBS="$K5LIBS -lroken"]) 3578 [K5LIBS="$K5LIBS -lroken"])
3474 AC_CHECK_LIB([des], [des_cbc_encrypt], 3579 AC_CHECK_LIB(des, des_cbc_encrypt,
3475 [K5LIBS="$K5LIBS -ldes"]) 3580 [K5LIBS="$K5LIBS -ldes"])
3476 ], [ AC_MSG_RESULT([no]) 3581 ],
3582 [ AC_MSG_RESULT(no)
3477 K5LIBS="-lkrb5 -lk5crypto -lcom_err" 3583 K5LIBS="-lkrb5 -lk5crypto -lcom_err"
3478 3584 ]
3479 ]) 3585 )
3480 AC_SEARCH_LIBS([dn_expand], [resolv]) 3586 AC_SEARCH_LIBS(dn_expand, resolv)
3481 3587
3482 AC_CHECK_LIB([gssapi_krb5], [gss_init_sec_context], 3588 AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context,
3483 [ AC_DEFINE([GSSAPI]) 3589 [ AC_DEFINE(GSSAPI)
3484 K5LIBS="-lgssapi_krb5 $K5LIBS" ], 3590 K5LIBS="-lgssapi_krb5 $K5LIBS" ],
3485 [ AC_CHECK_LIB([gssapi], [gss_init_sec_context], 3591 [ AC_CHECK_LIB(gssapi, gss_init_sec_context,
3486 [ AC_DEFINE([GSSAPI]) 3592 [ AC_DEFINE(GSSAPI)
3487 K5LIBS="-lgssapi $K5LIBS" ], 3593 K5LIBS="-lgssapi $K5LIBS" ],
3488 AC_MSG_WARN([Cannot find any suitable gss-api library - build may fail]), 3594 AC_MSG_WARN([Cannot find any suitable gss-api library - build may fail]),
3489 $K5LIBS) 3595 $K5LIBS)
3490 ], 3596 ],
3491 $K5LIBS) 3597 $K5LIBS)
3492 3598
3493 AC_CHECK_HEADER([gssapi.h], , 3599 AC_CHECK_HEADER(gssapi.h, ,
3494 [ unset ac_cv_header_gssapi_h 3600 [ unset ac_cv_header_gssapi_h
3495 CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi" 3601 CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi"
3496 AC_CHECK_HEADERS([gssapi.h], , 3602 AC_CHECK_HEADERS(gssapi.h, ,
3497 AC_MSG_WARN([Cannot find any suitable gss-api header - build may fail]) 3603 AC_MSG_WARN([Cannot find any suitable gss-api header - build may fail])
3498 ) 3604 )
3499 ] 3605 ]
@@ -3501,7 +3607,7 @@ AC_ARG_WITH([kerberos5],
3501 3607
3502 oldCPP="$CPPFLAGS" 3608 oldCPP="$CPPFLAGS"
3503 CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi" 3609 CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi"
3504 AC_CHECK_HEADER([gssapi_krb5.h], , 3610 AC_CHECK_HEADER(gssapi_krb5.h, ,
3505 [ CPPFLAGS="$oldCPP" ]) 3611 [ CPPFLAGS="$oldCPP" ])
3506 3612
3507 fi 3613 fi
@@ -3512,13 +3618,13 @@ AC_ARG_WITH([kerberos5],
3512 blibpath="$blibpath:${KRB5ROOT}/lib" 3618 blibpath="$blibpath:${KRB5ROOT}/lib"
3513 fi 3619 fi
3514 3620
3515 AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h]) 3621 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h)
3516 AC_CHECK_HEADERS([gssapi_krb5.h gssapi/gssapi_krb5.h]) 3622 AC_CHECK_HEADERS(gssapi_krb5.h gssapi/gssapi_krb5.h)
3517 AC_CHECK_HEADERS([gssapi_generic.h gssapi/gssapi_generic.h]) 3623 AC_CHECK_HEADERS(gssapi_generic.h gssapi/gssapi_generic.h)
3518 3624
3519 LIBS="$LIBS $K5LIBS" 3625 LIBS="$LIBS $K5LIBS"
3520 AC_SEARCH_LIBS([k_hasafs], [kafs], [AC_DEFINE([USE_AFS], [1], 3626 AC_SEARCH_LIBS(k_hasafs, kafs, AC_DEFINE(USE_AFS, 1,
3521 [Define this if you want to use libkafs' AFS support])]) 3627 [Define this if you want to use libkafs' AFS support]))
3522 fi 3628 fi
3523 ] 3629 ]
3524) 3630)
@@ -3526,7 +3632,7 @@ AC_ARG_WITH([kerberos5],
3526# Looking for programs, paths and files 3632# Looking for programs, paths and files
3527 3633
3528PRIVSEP_PATH=/var/empty 3634PRIVSEP_PATH=/var/empty
3529AC_ARG_WITH([privsep-path], 3635AC_ARG_WITH(privsep-path,
3530 [ --with-privsep-path=xxx Path for privilege separation chroot (default=/var/empty)], 3636 [ --with-privsep-path=xxx Path for privilege separation chroot (default=/var/empty)],
3531 [ 3637 [
3532 if test -n "$withval" && test "x$withval" != "xno" && \ 3638 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -3535,9 +3641,9 @@ AC_ARG_WITH([privsep-path],
3535 fi 3641 fi
3536 ] 3642 ]
3537) 3643)
3538AC_SUBST([PRIVSEP_PATH]) 3644AC_SUBST(PRIVSEP_PATH)
3539 3645
3540AC_ARG_WITH([xauth], 3646AC_ARG_WITH(xauth,
3541 [ --with-xauth=PATH Specify path to xauth program ], 3647 [ --with-xauth=PATH Specify path to xauth program ],
3542 [ 3648 [
3543 if test -n "$withval" && test "x$withval" != "xno" && \ 3649 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -3551,7 +3657,7 @@ AC_ARG_WITH([xauth],
3551 TestPath="${TestPath}${PATH_SEPARATOR}/usr/bin/X11" 3657 TestPath="${TestPath}${PATH_SEPARATOR}/usr/bin/X11"
3552 TestPath="${TestPath}${PATH_SEPARATOR}/usr/X11R6/bin" 3658 TestPath="${TestPath}${PATH_SEPARATOR}/usr/X11R6/bin"
3553 TestPath="${TestPath}${PATH_SEPARATOR}/usr/openwin/bin" 3659 TestPath="${TestPath}${PATH_SEPARATOR}/usr/openwin/bin"
3554 AC_PATH_PROG([xauth_path], [xauth], , [$TestPath]) 3660 AC_PATH_PROG(xauth_path, xauth, , $TestPath)
3555 if (test ! -z "$xauth_path" && test -x "/usr/openwin/bin/xauth") ; then 3661 if (test ! -z "$xauth_path" && test -x "/usr/openwin/bin/xauth") ; then
3556 xauth_path="/usr/openwin/bin/xauth" 3662 xauth_path="/usr/openwin/bin/xauth"
3557 fi 3663 fi
@@ -3559,7 +3665,7 @@ AC_ARG_WITH([xauth],
3559) 3665)
3560 3666
3561STRIP_OPT=-s 3667STRIP_OPT=-s
3562AC_ARG_ENABLE([strip], 3668AC_ARG_ENABLE(strip,
3563 [ --disable-strip Disable calling strip(1) on install], 3669 [ --disable-strip Disable calling strip(1) on install],
3564 [ 3670 [
3565 if test "x$enableval" = "xno" ; then 3671 if test "x$enableval" = "xno" ; then
@@ -3567,22 +3673,22 @@ AC_ARG_ENABLE([strip],
3567 fi 3673 fi
3568 ] 3674 ]
3569) 3675)
3570AC_SUBST([STRIP_OPT]) 3676AC_SUBST(STRIP_OPT)
3571 3677
3572if test -z "$xauth_path" ; then 3678if test -z "$xauth_path" ; then
3573 XAUTH_PATH="undefined" 3679 XAUTH_PATH="undefined"
3574 AC_SUBST([XAUTH_PATH]) 3680 AC_SUBST(XAUTH_PATH)
3575else 3681else
3576 AC_DEFINE_UNQUOTED([XAUTH_PATH], ["$xauth_path"], 3682 AC_DEFINE_UNQUOTED(XAUTH_PATH, "$xauth_path",
3577 [Define if xauth is found in your path]) 3683 [Define if xauth is found in your path])
3578 XAUTH_PATH=$xauth_path 3684 XAUTH_PATH=$xauth_path
3579 AC_SUBST([XAUTH_PATH]) 3685 AC_SUBST(XAUTH_PATH)
3580fi 3686fi
3581 3687
3582# Check for mail directory (last resort if we cannot get it from headers) 3688# Check for mail directory (last resort if we cannot get it from headers)
3583if test ! -z "$MAIL" ; then 3689if test ! -z "$MAIL" ; then
3584 maildir=`dirname $MAIL` 3690 maildir=`dirname $MAIL`
3585 AC_DEFINE_UNQUOTED([MAIL_DIRECTORY], ["$maildir"], 3691 AC_DEFINE_UNQUOTED(MAIL_DIRECTORY, "$maildir",
3586 [Set this to your mail directory if you don't have maillock.h]) 3692 [Set this to your mail directory if you don't have maillock.h])
3587fi 3693fi
3588 3694
@@ -3592,9 +3698,9 @@ if test ! -z "$cross_compiling" && test "x$cross_compiling" = "xyes"; then
3592fi 3698fi
3593if test -z "$no_dev_ptmx" ; then 3699if test -z "$no_dev_ptmx" ; then
3594 if test "x$disable_ptmx_check" != "xyes" ; then 3700 if test "x$disable_ptmx_check" != "xyes" ; then
3595 AC_CHECK_FILE(["/dev/ptmx"], 3701 AC_CHECK_FILE("/dev/ptmx",
3596 [ 3702 [
3597 AC_DEFINE_UNQUOTED([HAVE_DEV_PTMX], [1], 3703 AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX, 1,
3598 [Define if you have /dev/ptmx]) 3704 [Define if you have /dev/ptmx])
3599 have_dev_ptmx=1 3705 have_dev_ptmx=1
3600 ] 3706 ]
@@ -3603,9 +3709,9 @@ if test -z "$no_dev_ptmx" ; then
3603fi 3709fi
3604 3710
3605if test ! -z "$cross_compiling" && test "x$cross_compiling" != "xyes"; then 3711if test ! -z "$cross_compiling" && test "x$cross_compiling" != "xyes"; then
3606 AC_CHECK_FILE(["/dev/ptc"], 3712 AC_CHECK_FILE("/dev/ptc",
3607 [ 3713 [
3608 AC_DEFINE_UNQUOTED([HAVE_DEV_PTS_AND_PTC], [1], 3714 AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC, 1,
3609 [Define if you have /dev/ptc]) 3715 [Define if you have /dev/ptc])
3610 have_dev_ptc=1 3716 have_dev_ptc=1
3611 ] 3717 ]
@@ -3615,7 +3721,7 @@ else
3615fi 3721fi
3616 3722
3617# Options from here on. Some of these are preset by platform above 3723# Options from here on. Some of these are preset by platform above
3618AC_ARG_WITH([mantype], 3724AC_ARG_WITH(mantype,
3619 [ --with-mantype=man|cat|doc Set man page type], 3725 [ --with-mantype=man|cat|doc Set man page type],
3620 [ 3726 [
3621 case "$withval" in 3727 case "$withval" in
@@ -3623,14 +3729,14 @@ AC_ARG_WITH([mantype],
3623 MANTYPE=$withval 3729 MANTYPE=$withval
3624 ;; 3730 ;;
3625 *) 3731 *)
3626 AC_MSG_ERROR([invalid man type: $withval]) 3732 AC_MSG_ERROR(invalid man type: $withval)
3627 ;; 3733 ;;
3628 esac 3734 esac
3629 ] 3735 ]
3630) 3736)
3631if test -z "$MANTYPE"; then 3737if test -z "$MANTYPE"; then
3632 TestPath="/usr/bin${PATH_SEPARATOR}/usr/ucb" 3738 TestPath="/usr/bin${PATH_SEPARATOR}/usr/ucb"
3633 AC_PATH_PROGS([NROFF], [nroff awf], [/bin/false], [$TestPath]) 3739 AC_PATH_PROGS(NROFF, nroff awf, /bin/false, $TestPath)
3634 if ${NROFF} -mdoc ${srcdir}/ssh.1 >/dev/null 2>&1; then 3740 if ${NROFF} -mdoc ${srcdir}/ssh.1 >/dev/null 2>&1; then
3635 MANTYPE=doc 3741 MANTYPE=doc
3636 elif ${NROFF} -man ${srcdir}/ssh.1 >/dev/null 2>&1; then 3742 elif ${NROFF} -man ${srcdir}/ssh.1 >/dev/null 2>&1; then
@@ -3639,21 +3745,21 @@ if test -z "$MANTYPE"; then
3639 MANTYPE=cat 3745 MANTYPE=cat
3640 fi 3746 fi
3641fi 3747fi
3642AC_SUBST([MANTYPE]) 3748AC_SUBST(MANTYPE)
3643if test "$MANTYPE" = "doc"; then 3749if test "$MANTYPE" = "doc"; then
3644 mansubdir=man; 3750 mansubdir=man;
3645else 3751else
3646 mansubdir=$MANTYPE; 3752 mansubdir=$MANTYPE;
3647fi 3753fi
3648AC_SUBST([mansubdir]) 3754AC_SUBST(mansubdir)
3649 3755
3650# Check whether to enable MD5 passwords 3756# Check whether to enable MD5 passwords
3651MD5_MSG="no" 3757MD5_MSG="no"
3652AC_ARG_WITH([md5-passwords], 3758AC_ARG_WITH(md5-passwords,
3653 [ --with-md5-passwords Enable use of MD5 passwords], 3759 [ --with-md5-passwords Enable use of MD5 passwords],
3654 [ 3760 [
3655 if test "x$withval" != "xno" ; then 3761 if test "x$withval" != "xno" ; then
3656 AC_DEFINE([HAVE_MD5_PASSWORDS], [1], 3762 AC_DEFINE(HAVE_MD5_PASSWORDS, 1,
3657 [Define if you want to allow MD5 passwords]) 3763 [Define if you want to allow MD5 passwords])
3658 MD5_MSG="yes" 3764 MD5_MSG="yes"
3659 fi 3765 fi
@@ -3661,11 +3767,11 @@ AC_ARG_WITH([md5-passwords],
3661) 3767)
3662 3768
3663# Whether to disable shadow password support 3769# Whether to disable shadow password support
3664AC_ARG_WITH([shadow], 3770AC_ARG_WITH(shadow,
3665 [ --without-shadow Disable shadow password support], 3771 [ --without-shadow Disable shadow password support],
3666 [ 3772 [
3667 if test "x$withval" = "xno" ; then 3773 if test "x$withval" = "xno" ; then
3668 AC_DEFINE([DISABLE_SHADOW]) 3774 AC_DEFINE(DISABLE_SHADOW)
3669 disable_shadow=yes 3775 disable_shadow=yes
3670 fi 3776 fi
3671 ] 3777 ]
@@ -3673,36 +3779,37 @@ AC_ARG_WITH([shadow],
3673 3779
3674if test -z "$disable_shadow" ; then 3780if test -z "$disable_shadow" ; then
3675 AC_MSG_CHECKING([if the systems has expire shadow information]) 3781 AC_MSG_CHECKING([if the systems has expire shadow information])
3676 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3782 AC_TRY_COMPILE(
3783 [
3677#include <sys/types.h> 3784#include <sys/types.h>
3678#include <shadow.h> 3785#include <shadow.h>
3679struct spwd sp; 3786 struct spwd sp;
3680 ]], [[ sp.sp_expire = sp.sp_lstchg = sp.sp_inact = 0; ]])], 3787 ],[ sp.sp_expire = sp.sp_lstchg = sp.sp_inact = 0; ],
3681 [ sp_expire_available=yes ], [ 3788 [ sp_expire_available=yes ], []
3682 ]) 3789 )
3683 3790
3684 if test "x$sp_expire_available" = "xyes" ; then 3791 if test "x$sp_expire_available" = "xyes" ; then
3685 AC_MSG_RESULT([yes]) 3792 AC_MSG_RESULT(yes)
3686 AC_DEFINE([HAS_SHADOW_EXPIRE], [1], 3793 AC_DEFINE(HAS_SHADOW_EXPIRE, 1,
3687 [Define if you want to use shadow password expire field]) 3794 [Define if you want to use shadow password expire field])
3688 else 3795 else
3689 AC_MSG_RESULT([no]) 3796 AC_MSG_RESULT(no)
3690 fi 3797 fi
3691fi 3798fi
3692 3799
3693# Use ip address instead of hostname in $DISPLAY 3800# Use ip address instead of hostname in $DISPLAY
3694if test ! -z "$IPADDR_IN_DISPLAY" ; then 3801if test ! -z "$IPADDR_IN_DISPLAY" ; then
3695 DISPLAY_HACK_MSG="yes" 3802 DISPLAY_HACK_MSG="yes"
3696 AC_DEFINE([IPADDR_IN_DISPLAY], [1], 3803 AC_DEFINE(IPADDR_IN_DISPLAY, 1,
3697 [Define if you need to use IP address 3804 [Define if you need to use IP address
3698 instead of hostname in $DISPLAY]) 3805 instead of hostname in $DISPLAY])
3699else 3806else
3700 DISPLAY_HACK_MSG="no" 3807 DISPLAY_HACK_MSG="no"
3701 AC_ARG_WITH([ipaddr-display], 3808 AC_ARG_WITH(ipaddr-display,
3702 [ --with-ipaddr-display Use ip address instead of hostname in \$DISPLAY], 3809 [ --with-ipaddr-display Use ip address instead of hostname in \$DISPLAY],
3703 [ 3810 [
3704 if test "x$withval" != "xno" ; then 3811 if test "x$withval" != "xno" ; then
3705 AC_DEFINE([IPADDR_IN_DISPLAY]) 3812 AC_DEFINE(IPADDR_IN_DISPLAY)
3706 DISPLAY_HACK_MSG="yes" 3813 DISPLAY_HACK_MSG="yes"
3707 fi 3814 fi
3708 ] 3815 ]
@@ -3710,7 +3817,7 @@ else
3710fi 3817fi
3711 3818
3712# check for /etc/default/login and use it if present. 3819# check for /etc/default/login and use it if present.
3713AC_ARG_ENABLE([etc-default-login], 3820AC_ARG_ENABLE(etc-default-login,
3714 [ --disable-etc-default-login Disable using PATH from /etc/default/login [no]], 3821 [ --disable-etc-default-login Disable using PATH from /etc/default/login [no]],
3715 [ if test "x$enableval" = "xno"; then 3822 [ if test "x$enableval" = "xno"; then
3716 AC_MSG_NOTICE([/etc/default/login handling disabled]) 3823 AC_MSG_NOTICE([/etc/default/login handling disabled])
@@ -3728,10 +3835,10 @@ AC_ARG_ENABLE([etc-default-login],
3728) 3835)
3729 3836
3730if test "x$etc_default_login" != "xno"; then 3837if test "x$etc_default_login" != "xno"; then
3731 AC_CHECK_FILE(["/etc/default/login"], 3838 AC_CHECK_FILE("/etc/default/login",
3732 [ external_path_file=/etc/default/login ]) 3839 [ external_path_file=/etc/default/login ])
3733 if test "x$external_path_file" = "x/etc/default/login"; then 3840 if test "x$external_path_file" = "x/etc/default/login"; then
3734 AC_DEFINE([HAVE_ETC_DEFAULT_LOGIN], [1], 3841 AC_DEFINE(HAVE_ETC_DEFAULT_LOGIN, 1,
3735 [Define if your system has /etc/default/login]) 3842 [Define if your system has /etc/default/login])
3736 fi 3843 fi
3737fi 3844fi
@@ -3744,7 +3851,7 @@ fi
3744 3851
3745# Whether to mess with the default path 3852# Whether to mess with the default path
3746SERVER_PATH_MSG="(default)" 3853SERVER_PATH_MSG="(default)"
3747AC_ARG_WITH([default-path], 3854AC_ARG_WITH(default-path,
3748 [ --with-default-path= Specify default \$PATH environment for server], 3855 [ --with-default-path= Specify default \$PATH environment for server],
3749 [ 3856 [
3750 if test "x$external_path_file" = "x/etc/login.conf" ; then 3857 if test "x$external_path_file" = "x/etc/login.conf" ; then
@@ -3770,7 +3877,7 @@ If PATH is defined in $external_path_file, ensure the path to scp is included,
3770otherwise scp will not work.]) 3877otherwise scp will not work.])
3771 fi 3878 fi
3772 AC_RUN_IFELSE( 3879 AC_RUN_IFELSE(
3773 [AC_LANG_PROGRAM([[ 3880 [AC_LANG_SOURCE([[
3774/* find out what STDPATH is */ 3881/* find out what STDPATH is */
3775#include <stdio.h> 3882#include <stdio.h>
3776#ifdef HAVE_PATHS_H 3883#ifdef HAVE_PATHS_H
@@ -3787,7 +3894,9 @@ otherwise scp will not work.])
3787#include <sys/stat.h> 3894#include <sys/stat.h>
3788#include <fcntl.h> 3895#include <fcntl.h>
3789#define DATA "conftest.stdpath" 3896#define DATA "conftest.stdpath"
3790 ]], [[ 3897
3898main()
3899{
3791 FILE *fd; 3900 FILE *fd;
3792 int rc; 3901 int rc;
3793 3902
@@ -3799,6 +3908,7 @@ otherwise scp will not work.])
3799 exit(1); 3908 exit(1);
3800 3909
3801 exit(0); 3910 exit(0);
3911}
3802 ]])], 3912 ]])],
3803 [ user_path=`cat conftest.stdpath` ], 3913 [ user_path=`cat conftest.stdpath` ],
3804 [ user_path="/usr/bin:/bin:/usr/sbin:/sbin" ], 3914 [ user_path="/usr/bin:/bin:/usr/sbin:/sbin" ],
@@ -3817,23 +3927,23 @@ otherwise scp will not work.])
3817 echo $user_path | grep "^$t_bindir" > /dev/null 2>&1 3927 echo $user_path | grep "^$t_bindir" > /dev/null 2>&1
3818 if test $? -ne 0 ; then 3928 if test $? -ne 0 ; then
3819 user_path=$user_path:$t_bindir 3929 user_path=$user_path:$t_bindir
3820 AC_MSG_RESULT([Adding $t_bindir to USER_PATH so scp will work]) 3930 AC_MSG_RESULT(Adding $t_bindir to USER_PATH so scp will work)
3821 fi 3931 fi
3822 fi 3932 fi
3823 fi ] 3933 fi ]
3824) 3934)
3825if test "x$external_path_file" != "x/etc/login.conf" ; then 3935if test "x$external_path_file" != "x/etc/login.conf" ; then
3826 AC_DEFINE_UNQUOTED([USER_PATH], ["$user_path"], [Specify default $PATH]) 3936 AC_DEFINE_UNQUOTED(USER_PATH, "$user_path", [Specify default $PATH])
3827 AC_SUBST([user_path]) 3937 AC_SUBST(user_path)
3828fi 3938fi
3829 3939
3830# Set superuser path separately to user path 3940# Set superuser path separately to user path
3831AC_ARG_WITH([superuser-path], 3941AC_ARG_WITH(superuser-path,
3832 [ --with-superuser-path= Specify different path for super-user], 3942 [ --with-superuser-path= Specify different path for super-user],
3833 [ 3943 [
3834 if test -n "$withval" && test "x$withval" != "xno" && \ 3944 if test -n "$withval" && test "x$withval" != "xno" && \
3835 test "x${withval}" != "xyes"; then 3945 test "x${withval}" != "xyes"; then
3836 AC_DEFINE_UNQUOTED([SUPERUSER_PATH], ["$withval"], 3946 AC_DEFINE_UNQUOTED(SUPERUSER_PATH, "$withval",
3837 [Define if you want a different $PATH 3947 [Define if you want a different $PATH
3838 for the superuser]) 3948 for the superuser])
3839 superuser_path=$withval 3949 superuser_path=$withval
@@ -3848,18 +3958,18 @@ AC_ARG_WITH(4in6,
3848 [ --with-4in6 Check for and convert IPv4 in IPv6 mapped addresses], 3958 [ --with-4in6 Check for and convert IPv4 in IPv6 mapped addresses],
3849 [ 3959 [
3850 if test "x$withval" != "xno" ; then 3960 if test "x$withval" != "xno" ; then
3851 AC_MSG_RESULT([yes]) 3961 AC_MSG_RESULT(yes)
3852 AC_DEFINE([IPV4_IN_IPV6], [1], 3962 AC_DEFINE(IPV4_IN_IPV6, 1,
3853 [Detect IPv4 in IPv6 mapped addresses 3963 [Detect IPv4 in IPv6 mapped addresses
3854 and treat as IPv4]) 3964 and treat as IPv4])
3855 IPV4_IN6_HACK_MSG="yes" 3965 IPV4_IN6_HACK_MSG="yes"
3856 else 3966 else
3857 AC_MSG_RESULT([no]) 3967 AC_MSG_RESULT(no)
3858 fi 3968 fi
3859 ], [ 3969 ],[
3860 if test "x$inet6_default_4in6" = "xyes"; then 3970 if test "x$inet6_default_4in6" = "xyes"; then
3861 AC_MSG_RESULT([yes (default)]) 3971 AC_MSG_RESULT([yes (default)])
3862 AC_DEFINE([IPV4_IN_IPV6]) 3972 AC_DEFINE(IPV4_IN_IPV6)
3863 IPV4_IN6_HACK_MSG="yes" 3973 IPV4_IN6_HACK_MSG="yes"
3864 else 3974 else
3865 AC_MSG_RESULT([no (default)]) 3975 AC_MSG_RESULT([no (default)])
@@ -3869,11 +3979,11 @@ AC_ARG_WITH(4in6,
3869 3979
3870# Whether to enable BSD auth support 3980# Whether to enable BSD auth support
3871BSD_AUTH_MSG=no 3981BSD_AUTH_MSG=no
3872AC_ARG_WITH([bsd-auth], 3982AC_ARG_WITH(bsd-auth,
3873 [ --with-bsd-auth Enable BSD auth support], 3983 [ --with-bsd-auth Enable BSD auth support],
3874 [ 3984 [
3875 if test "x$withval" != "xno" ; then 3985 if test "x$withval" != "xno" ; then
3876 AC_DEFINE([BSD_AUTH], [1], 3986 AC_DEFINE(BSD_AUTH, 1,
3877 [Define if you have BSD auth support]) 3987 [Define if you have BSD auth support])
3878 BSD_AUTH_MSG=yes 3988 BSD_AUTH_MSG=yes
3879 fi 3989 fi
@@ -3890,7 +4000,7 @@ if test ! -d $piddir ; then
3890 esac 4000 esac
3891fi 4001fi
3892 4002
3893AC_ARG_WITH([pid-dir], 4003AC_ARG_WITH(pid-dir,
3894 [ --with-pid-dir=PATH Specify location of ssh.pid file], 4004 [ --with-pid-dir=PATH Specify location of ssh.pid file],
3895 [ 4005 [
3896 if test -n "$withval" && test "x$withval" != "xno" && \ 4006 if test -n "$withval" && test "x$withval" != "xno" && \
@@ -3903,86 +4013,85 @@ AC_ARG_WITH([pid-dir],
3903 ] 4013 ]
3904) 4014)
3905 4015
3906AC_DEFINE_UNQUOTED([_PATH_SSH_PIDDIR], ["$piddir"], 4016AC_DEFINE_UNQUOTED(_PATH_SSH_PIDDIR, "$piddir", [Specify location of ssh.pid])
3907 [Specify location of ssh.pid]) 4017AC_SUBST(piddir)
3908AC_SUBST([piddir])
3909 4018
3910dnl allow user to disable some login recording features 4019dnl allow user to disable some login recording features
3911AC_ARG_ENABLE([lastlog], 4020AC_ARG_ENABLE(lastlog,
3912 [ --disable-lastlog disable use of lastlog even if detected [no]], 4021 [ --disable-lastlog disable use of lastlog even if detected [no]],
3913 [ 4022 [
3914 if test "x$enableval" = "xno" ; then 4023 if test "x$enableval" = "xno" ; then
3915 AC_DEFINE([DISABLE_LASTLOG]) 4024 AC_DEFINE(DISABLE_LASTLOG)
3916 fi 4025 fi
3917 ] 4026 ]
3918) 4027)
3919AC_ARG_ENABLE([utmp], 4028AC_ARG_ENABLE(utmp,
3920 [ --disable-utmp disable use of utmp even if detected [no]], 4029 [ --disable-utmp disable use of utmp even if detected [no]],
3921 [ 4030 [
3922 if test "x$enableval" = "xno" ; then 4031 if test "x$enableval" = "xno" ; then
3923 AC_DEFINE([DISABLE_UTMP]) 4032 AC_DEFINE(DISABLE_UTMP)
3924 fi 4033 fi
3925 ] 4034 ]
3926) 4035)
3927AC_ARG_ENABLE([utmpx], 4036AC_ARG_ENABLE(utmpx,
3928 [ --disable-utmpx disable use of utmpx even if detected [no]], 4037 [ --disable-utmpx disable use of utmpx even if detected [no]],
3929 [ 4038 [
3930 if test "x$enableval" = "xno" ; then 4039 if test "x$enableval" = "xno" ; then
3931 AC_DEFINE([DISABLE_UTMPX], [1], 4040 AC_DEFINE(DISABLE_UTMPX, 1,
3932 [Define if you don't want to use utmpx]) 4041 [Define if you don't want to use utmpx])
3933 fi 4042 fi
3934 ] 4043 ]
3935) 4044)
3936AC_ARG_ENABLE([wtmp], 4045AC_ARG_ENABLE(wtmp,
3937 [ --disable-wtmp disable use of wtmp even if detected [no]], 4046 [ --disable-wtmp disable use of wtmp even if detected [no]],
3938 [ 4047 [
3939 if test "x$enableval" = "xno" ; then 4048 if test "x$enableval" = "xno" ; then
3940 AC_DEFINE([DISABLE_WTMP]) 4049 AC_DEFINE(DISABLE_WTMP)
3941 fi 4050 fi
3942 ] 4051 ]
3943) 4052)
3944AC_ARG_ENABLE([wtmpx], 4053AC_ARG_ENABLE(wtmpx,
3945 [ --disable-wtmpx disable use of wtmpx even if detected [no]], 4054 [ --disable-wtmpx disable use of wtmpx even if detected [no]],
3946 [ 4055 [
3947 if test "x$enableval" = "xno" ; then 4056 if test "x$enableval" = "xno" ; then
3948 AC_DEFINE([DISABLE_WTMPX], [1], 4057 AC_DEFINE(DISABLE_WTMPX, 1,
3949 [Define if you don't want to use wtmpx]) 4058 [Define if you don't want to use wtmpx])
3950 fi 4059 fi
3951 ] 4060 ]
3952) 4061)
3953AC_ARG_ENABLE([libutil], 4062AC_ARG_ENABLE(libutil,
3954 [ --disable-libutil disable use of libutil (login() etc.) [no]], 4063 [ --disable-libutil disable use of libutil (login() etc.) [no]],
3955 [ 4064 [
3956 if test "x$enableval" = "xno" ; then 4065 if test "x$enableval" = "xno" ; then
3957 AC_DEFINE([DISABLE_LOGIN]) 4066 AC_DEFINE(DISABLE_LOGIN)
3958 fi 4067 fi
3959 ] 4068 ]
3960) 4069)
3961AC_ARG_ENABLE([pututline], 4070AC_ARG_ENABLE(pututline,
3962 [ --disable-pututline disable use of pututline() etc. ([uw]tmp) [no]], 4071 [ --disable-pututline disable use of pututline() etc. ([uw]tmp) [no]],
3963 [ 4072 [
3964 if test "x$enableval" = "xno" ; then 4073 if test "x$enableval" = "xno" ; then
3965 AC_DEFINE([DISABLE_PUTUTLINE], [1], 4074 AC_DEFINE(DISABLE_PUTUTLINE, 1,
3966 [Define if you don't want to use pututline() 4075 [Define if you don't want to use pututline()
3967 etc. to write [uw]tmp]) 4076 etc. to write [uw]tmp])
3968 fi 4077 fi
3969 ] 4078 ]
3970) 4079)
3971AC_ARG_ENABLE([pututxline], 4080AC_ARG_ENABLE(pututxline,
3972 [ --disable-pututxline disable use of pututxline() etc. ([uw]tmpx) [no]], 4081 [ --disable-pututxline disable use of pututxline() etc. ([uw]tmpx) [no]],
3973 [ 4082 [
3974 if test "x$enableval" = "xno" ; then 4083 if test "x$enableval" = "xno" ; then
3975 AC_DEFINE([DISABLE_PUTUTXLINE], [1], 4084 AC_DEFINE(DISABLE_PUTUTXLINE, 1,
3976 [Define if you don't want to use pututxline() 4085 [Define if you don't want to use pututxline()
3977 etc. to write [uw]tmpx]) 4086 etc. to write [uw]tmpx])
3978 fi 4087 fi
3979 ] 4088 ]
3980) 4089)
3981AC_ARG_WITH([lastlog], 4090AC_ARG_WITH(lastlog,
3982 [ --with-lastlog=FILE|DIR specify lastlog location [common locations]], 4091 [ --with-lastlog=FILE|DIR specify lastlog location [common locations]],
3983 [ 4092 [
3984 if test "x$withval" = "xno" ; then 4093 if test "x$withval" = "xno" ; then
3985 AC_DEFINE([DISABLE_LASTLOG]) 4094 AC_DEFINE(DISABLE_LASTLOG)
3986 elif test -n "$withval" && test "x${withval}" != "xyes"; then 4095 elif test -n "$withval" && test "x${withval}" != "xyes"; then
3987 conf_lastlog_location=$withval 4096 conf_lastlog_location=$withval
3988 fi 4097 fi
@@ -3997,7 +4106,7 @@ dnl lastlog and [uw]tmp are subject to a file search if all else fails
3997dnl lastlog detection 4106dnl lastlog detection
3998dnl NOTE: the code itself will detect if lastlog is a directory 4107dnl NOTE: the code itself will detect if lastlog is a directory
3999AC_MSG_CHECKING([if your system defines LASTLOG_FILE]) 4108AC_MSG_CHECKING([if your system defines LASTLOG_FILE])
4000AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 4109AC_TRY_COMPILE([
4001#include <sys/types.h> 4110#include <sys/types.h>
4002#include <utmp.h> 4111#include <utmp.h>
4003#ifdef HAVE_LASTLOG_H 4112#ifdef HAVE_LASTLOG_H
@@ -4009,12 +4118,13 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
4009#ifdef HAVE_LOGIN_H 4118#ifdef HAVE_LOGIN_H
4010# include <login.h> 4119# include <login.h>
4011#endif 4120#endif
4012 ]], [[ char *lastlog = LASTLOG_FILE; ]])], 4121 ],
4013 [ AC_MSG_RESULT([yes]) ], 4122 [ char *lastlog = LASTLOG_FILE; ],
4014 [ 4123 [ AC_MSG_RESULT(yes) ],
4015 AC_MSG_RESULT([no]) 4124 [
4125 AC_MSG_RESULT(no)
4016 AC_MSG_CHECKING([if your system defines _PATH_LASTLOG]) 4126 AC_MSG_CHECKING([if your system defines _PATH_LASTLOG])
4017 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 4127 AC_TRY_COMPILE([
4018#include <sys/types.h> 4128#include <sys/types.h>
4019#include <utmp.h> 4129#include <utmp.h>
4020#ifdef HAVE_LASTLOG_H 4130#ifdef HAVE_LASTLOG_H
@@ -4023,13 +4133,15 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
4023#ifdef HAVE_PATHS_H 4133#ifdef HAVE_PATHS_H
4024# include <paths.h> 4134# include <paths.h>
4025#endif 4135#endif
4026 ]], [[ char *lastlog = _PATH_LASTLOG; ]])], 4136 ],
4027 [ AC_MSG_RESULT([yes]) ], 4137 [ char *lastlog = _PATH_LASTLOG; ],
4138 [ AC_MSG_RESULT(yes) ],
4028 [ 4139 [
4029 AC_MSG_RESULT([no]) 4140 AC_MSG_RESULT(no)
4030 system_lastlog_path=no 4141 system_lastlog_path=no
4031 ]) 4142 ])
4032]) 4143 ]
4144)
4033 4145
4034if test -z "$conf_lastlog_location"; then 4146if test -z "$conf_lastlog_location"; then
4035 if test x"$system_lastlog_path" = x"no" ; then 4147 if test x"$system_lastlog_path" = x"no" ; then
@@ -4046,23 +4158,24 @@ if test -z "$conf_lastlog_location"; then
4046fi 4158fi
4047 4159
4048if test -n "$conf_lastlog_location"; then 4160if test -n "$conf_lastlog_location"; then
4049 AC_DEFINE_UNQUOTED([CONF_LASTLOG_FILE], ["$conf_lastlog_location"], 4161 AC_DEFINE_UNQUOTED(CONF_LASTLOG_FILE, "$conf_lastlog_location",
4050 [Define if you want to specify the path to your lastlog file]) 4162 [Define if you want to specify the path to your lastlog file])
4051fi 4163fi
4052 4164
4053dnl utmp detection 4165dnl utmp detection
4054AC_MSG_CHECKING([if your system defines UTMP_FILE]) 4166AC_MSG_CHECKING([if your system defines UTMP_FILE])
4055AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 4167AC_TRY_COMPILE([
4056#include <sys/types.h> 4168#include <sys/types.h>
4057#include <utmp.h> 4169#include <utmp.h>
4058#ifdef HAVE_PATHS_H 4170#ifdef HAVE_PATHS_H
4059# include <paths.h> 4171# include <paths.h>
4060#endif 4172#endif
4061 ]], [[ char *utmp = UTMP_FILE; ]])], 4173 ],
4062 [ AC_MSG_RESULT([yes]) ], 4174 [ char *utmp = UTMP_FILE; ],
4063 [ AC_MSG_RESULT([no]) 4175 [ AC_MSG_RESULT(yes) ],
4064 system_utmp_path=no 4176 [ AC_MSG_RESULT(no)
4065]) 4177 system_utmp_path=no ]
4178)
4066if test -z "$conf_utmp_location"; then 4179if test -z "$conf_utmp_location"; then
4067 if test x"$system_utmp_path" = x"no" ; then 4180 if test x"$system_utmp_path" = x"no" ; then
4068 for f in /etc/utmp /usr/adm/utmp /var/run/utmp; do 4181 for f in /etc/utmp /usr/adm/utmp /var/run/utmp; do
@@ -4071,28 +4184,29 @@ if test -z "$conf_utmp_location"; then
4071 fi 4184 fi
4072 done 4185 done
4073 if test -z "$conf_utmp_location"; then 4186 if test -z "$conf_utmp_location"; then
4074 AC_DEFINE([DISABLE_UTMP]) 4187 AC_DEFINE(DISABLE_UTMP)
4075 fi 4188 fi
4076 fi 4189 fi
4077fi 4190fi
4078if test -n "$conf_utmp_location"; then 4191if test -n "$conf_utmp_location"; then
4079 AC_DEFINE_UNQUOTED([CONF_UTMP_FILE], ["$conf_utmp_location"], 4192 AC_DEFINE_UNQUOTED(CONF_UTMP_FILE, "$conf_utmp_location",
4080 [Define if you want to specify the path to your utmp file]) 4193 [Define if you want to specify the path to your utmp file])
4081fi 4194fi
4082 4195
4083dnl wtmp detection 4196dnl wtmp detection
4084AC_MSG_CHECKING([if your system defines WTMP_FILE]) 4197AC_MSG_CHECKING([if your system defines WTMP_FILE])
4085AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 4198AC_TRY_COMPILE([
4086#include <sys/types.h> 4199#include <sys/types.h>
4087#include <utmp.h> 4200#include <utmp.h>
4088#ifdef HAVE_PATHS_H 4201#ifdef HAVE_PATHS_H
4089# include <paths.h> 4202# include <paths.h>
4090#endif 4203#endif
4091 ]], [[ char *wtmp = WTMP_FILE; ]])], 4204 ],
4092 [ AC_MSG_RESULT([yes]) ], 4205 [ char *wtmp = WTMP_FILE; ],
4093 [ AC_MSG_RESULT([no]) 4206 [ AC_MSG_RESULT(yes) ],
4094 system_wtmp_path=no 4207 [ AC_MSG_RESULT(no)
4095]) 4208 system_wtmp_path=no ]
4209)
4096if test -z "$conf_wtmp_location"; then 4210if test -z "$conf_wtmp_location"; then
4097 if test x"$system_wtmp_path" = x"no" ; then 4211 if test x"$system_wtmp_path" = x"no" ; then
4098 for f in /usr/adm/wtmp /var/log/wtmp; do 4212 for f in /usr/adm/wtmp /var/log/wtmp; do
@@ -4101,19 +4215,19 @@ if test -z "$conf_wtmp_location"; then
4101 fi 4215 fi
4102 done 4216 done
4103 if test -z "$conf_wtmp_location"; then 4217 if test -z "$conf_wtmp_location"; then
4104 AC_DEFINE([DISABLE_WTMP]) 4218 AC_DEFINE(DISABLE_WTMP)
4105 fi 4219 fi
4106 fi 4220 fi
4107fi 4221fi
4108if test -n "$conf_wtmp_location"; then 4222if test -n "$conf_wtmp_location"; then
4109 AC_DEFINE_UNQUOTED([CONF_WTMP_FILE], ["$conf_wtmp_location"], 4223 AC_DEFINE_UNQUOTED(CONF_WTMP_FILE, "$conf_wtmp_location",
4110 [Define if you want to specify the path to your wtmp file]) 4224 [Define if you want to specify the path to your wtmp file])
4111fi 4225fi
4112 4226
4113 4227
4114dnl wtmpx detection 4228dnl wtmpx detection
4115AC_MSG_CHECKING([if your system defines WTMPX_FILE]) 4229AC_MSG_CHECKING([if your system defines WTMPX_FILE])
4116AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 4230AC_TRY_COMPILE([
4117#include <sys/types.h> 4231#include <sys/types.h>
4118#include <utmp.h> 4232#include <utmp.h>
4119#ifdef HAVE_UTMPX_H 4233#ifdef HAVE_UTMPX_H
@@ -4122,17 +4236,18 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
4122#ifdef HAVE_PATHS_H 4236#ifdef HAVE_PATHS_H
4123# include <paths.h> 4237# include <paths.h>
4124#endif 4238#endif
4125 ]], [[ char *wtmpx = WTMPX_FILE; ]])], 4239 ],
4126 [ AC_MSG_RESULT([yes]) ], 4240 [ char *wtmpx = WTMPX_FILE; ],
4127 [ AC_MSG_RESULT([no]) 4241 [ AC_MSG_RESULT(yes) ],
4128 system_wtmpx_path=no 4242 [ AC_MSG_RESULT(no)
4129]) 4243 system_wtmpx_path=no ]
4244)
4130if test -z "$conf_wtmpx_location"; then 4245if test -z "$conf_wtmpx_location"; then
4131 if test x"$system_wtmpx_path" = x"no" ; then 4246 if test x"$system_wtmpx_path" = x"no" ; then
4132 AC_DEFINE([DISABLE_WTMPX]) 4247 AC_DEFINE(DISABLE_WTMPX)
4133 fi 4248 fi
4134else 4249else
4135 AC_DEFINE_UNQUOTED([CONF_WTMPX_FILE], ["$conf_wtmpx_location"], 4250 AC_DEFINE_UNQUOTED(CONF_WTMPX_FILE, "$conf_wtmpx_location",
4136 [Define if you want to specify the path to your wtmpx file]) 4251 [Define if you want to specify the path to your wtmpx file])
4137fi 4252fi
4138 4253
@@ -4151,8 +4266,8 @@ if test "x$ac_cv_func_getaddrinfo" != "xyes" ; then
4151else 4266else
4152 TEST_SSH_IPV6=yes 4267 TEST_SSH_IPV6=yes
4153fi 4268fi
4154AC_CHECK_DECL([BROKEN_GETADDRINFO], [TEST_SSH_IPV6=no]) 4269AC_CHECK_DECL(BROKEN_GETADDRINFO, TEST_SSH_IPV6=no)
4155AC_SUBST([TEST_SSH_IPV6], [$TEST_SSH_IPV6]) 4270AC_SUBST(TEST_SSH_IPV6, $TEST_SSH_IPV6)
4156 4271
4157AC_EXEEXT 4272AC_EXEEXT
4158AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \ 4273AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \
diff --git a/openbsd-compat/port-linux.c b/openbsd-compat/port-linux.c
index eb280e616..ee4290b98 100644
--- a/openbsd-compat/port-linux.c
+++ b/openbsd-compat/port-linux.c
@@ -1,4 +1,4 @@
1/* $Id: port-linux.c,v 1.13 2011/01/27 23:30:20 djm Exp $ */ 1/* $Id: port-linux.c,v 1.11.4.1 2011/02/04 00:42:21 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2005 Daniel Walsh <dwalsh@redhat.com> 4 * Copyright (c) 2005 Daniel Walsh <dwalsh@redhat.com>
@@ -209,15 +209,13 @@ ssh_selinux_change_context(const char *newname)
209void 209void
210ssh_selinux_setfscreatecon(const char *path) 210ssh_selinux_setfscreatecon(const char *path)
211{ 211{
212 security_context_t context; 212 security_context_t context;
213 213
214 if (!ssh_selinux_enabled()) 214 if (path == NULL) {
215 return; 215 setfscreatecon(NULL);
216 if (path == NULL) 216 return;
217 setfscreatecon(NULL); 217 }
218 return; 218 matchpathcon(path, 0700, &context);
219 }
220 if (matchpathcon(path, 0700, &context) == 0)
221 setfscreatecon(context); 219 setfscreatecon(context);
222} 220}
223 221
diff --git a/openbsd-compat/port-linux.h b/openbsd-compat/port-linux.h
index e3d1004aa..c2f618400 100644
--- a/openbsd-compat/port-linux.h
+++ b/openbsd-compat/port-linux.h
@@ -1,4 +1,4 @@
1/* $Id: port-linux.h,v 1.5 2011/01/25 01:16:18 djm Exp $ */ 1/* $Id: port-linux.h,v 1.4.10.1 2011/02/04 00:42:21 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2006 Damien Miller <djm@openbsd.org> 4 * Copyright (c) 2006 Damien Miller <djm@openbsd.org>