From ed0b59218ef9bb41a25922885d3fae7e67b8ba04 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sun, 3 Sep 2006 22:44:49 +1000 Subject: [PATCH] - (dtucker) [configure.ac openbsd-compat/openbsd-compat.h] Check for declaration of writev(2) and declare it ourselves if necessary. Makes the atomiciov() calls build on really old systems. ok djm@ --- ChangeLog | 7 ++++++- configure.ac | 10 ++++++++-- openbsd-compat/openbsd-compat.h | 7 ++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 56b4af7c4..7cdcbf091 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20060903 + - (dtucker) [configure.ac openbsd-compat/openbsd-compat.h] Check for + declaration of writev(2) and declare it ourselves if necessary. Makes + the atomiciov() calls build on really old systems. ok djm@ + 20060902 - (dtucker) [openbsd-compat/port-irix.c] Add errno.h, found by Iain Morgan. - (dtucker) [ssh-keyscan.c ssh-rand-helper.c ssh.c sshconnect.c @@ -5385,4 +5390,4 @@ - (djm) Trim deprecated options from INSTALL. Mention UsePAM - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu -$Id: ChangeLog,v 1.4527 2006/09/02 05:32:40 dtucker Exp $ +$Id: ChangeLog,v 1.4528 2006/09/03 12:44:49 dtucker Exp $ diff --git a/configure.ac b/configure.ac index c37d7f499..cdabbd8a1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.357 2006/09/01 10:29:11 dtucker Exp $ +# $Id: configure.ac,v 1.358 2006/09/03 12:44:49 dtucker Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -15,7 +15,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) -AC_REVISION($Revision: 1.357 $) +AC_REVISION($Revision: 1.358 $) AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_HEADER(config.h) @@ -1328,6 +1328,12 @@ AC_CHECK_DECLS(O_NONBLOCK, , , #endif ]) +AC_CHECK_DECLS(writev, , , [ +#include +#include +#include + ]) + AC_CHECK_FUNCS(setresuid, [ dnl Some platorms have setresuid that isn't implemented, test for this AC_MSG_CHECKING(if setresuid seems to work) diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index 278ac71d9..aac2e6cbc 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -1,4 +1,4 @@ -/* $Id: openbsd-compat.h,v 1.41 2006/08/30 17:24:42 djm Exp $ */ +/* $Id: openbsd-compat.h,v 1.42 2006/09/03 12:44:50 dtucker Exp $ */ /* * Copyright (c) 1999-2003 Damien Miller. All rights reserved. @@ -131,6 +131,11 @@ int getgrouplist(const char *, gid_t, gid_t *, int *); int BSDgetopt(int argc, char * const *argv, const char *opts); #endif +#if defined(HAVE_DECL_WRITEV) && HAVE_DECL_WRITEV == 0 +# include +# include +int writev(int, struct iovec *, int); +#endif /* Home grown routines */ #include "bsd-misc.h"