- (dtucker) [configure.ac defines.h] Define __sentinel__ to nothing if the
   compiler doesn't understand it to prevent warnings.  If any mainstream
   compiler versions acquire it we can test for those versions.  Based on
   discussion with djm@.
diff --git a/ChangeLog b/ChangeLog
index 152287c..9ab5e94 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -23,6 +23,10 @@
    - dtucker@cvs.openbsd.org 2005/07/14 04:00:43
      [misc.h]
      use __sentinel__ attribute; ok deraadt@ djm@ markus@
+ - (dtucker) [configure.ac defines.h] Define __sentinel__ to nothing if the
+   compiler doesn't understand it to prevent warnings.  If any mainstream
+   compiler versions acquire it we can test for those versions.  Based on
+   discussion with djm@.
 
 20050707
  - dtucker [auth-krb5.c auth.h gss-serv-krb5.c] Move KRB5CCNAME generation for
@@ -2821,4 +2825,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.3844 2005/07/14 07:07:21 dtucker Exp $
+$Id: ChangeLog,v 1.3845 2005/07/14 07:22:11 dtucker Exp $
diff --git a/configure.ac b/configure.ac
index e7475a9..e3d696c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-# $Id: configure.ac,v 1.277 2005/07/07 10:33:36 dtucker Exp $
+# $Id: configure.ac,v 1.278 2005/07/14 07:22:11 dtucker Exp $
 #
 # Copyright (c) 1999-2004 Damien Miller
 #
@@ -368,6 +368,9 @@
 	AC_DEFINE(USE_PIPES)
 	AC_DEFINE(BROKEN_SAVED_UIDS)
 	;;
+*-*-openbsd*)
+	AC_DEFINE(HAVE_ATTRIBUTE__SENTINEL__, 1, [OpenBSD's gcc has sentinel])
+	;;
 *-*-solaris*)
 	if test "x$withval" != "xno" ; then
 		need_dash_r=1
diff --git a/defines.h b/defines.h
index 3a11e6d..f7029ab 100644
--- a/defines.h
+++ b/defines.h
@@ -25,7 +25,7 @@
 #ifndef _DEFINES_H
 #define _DEFINES_H
 
-/* $Id: defines.h,v 1.121 2005/05/27 11:13:41 dtucker Exp $ */
+/* $Id: defines.h,v 1.122 2005/07/14 07:22:11 dtucker Exp $ */
 
 
 /* Constants */
@@ -436,6 +436,10 @@
 # define __dead	__attribute__((noreturn))
 #endif
 
+#if !defined(HAVE_ATTRIBUTE__SENTINEL__) && !defined(__sentinel__)
+# define __sentinel__
+#endif
+
 /* *-*-nto-qnx doesn't define this macro in the system headers */
 #ifdef MISSING_HOWMANY
 # define howmany(x,y)	(((x)+((y)-1))/(y))