Index: argp-eexst.c
--- argp-eexst.c.orig	1999-10-04 23:53:17 +0200
+++ argp-eexst.c	2008-09-21 18:16:06 +0200
@@ -22,7 +22,11 @@
 #include <config.h>
 #endif
 
-#include <sysexits.h>
+#if HAVE_SYSEXITS_H
+# include <sysexits.h>
+#else
+# define EX_USAGE 64
+#endif
 
 #include "argp.h"
 
Index: argp-parse.c
--- argp-parse.c.orig	2003-12-11 09:37:05 +0100
+++ argp-parse.c	2008-09-21 18:16:06 +0200
@@ -95,7 +95,9 @@
 
 #define OPT_PROGNAME	-2
 #define OPT_USAGE	-3
+#if HAVE_SLEEP && HAVE_GETPID
 #define OPT_HANG	-4
+#endif
 
 static const struct argp_option argp_default_options[] =
 {
@@ -103,8 +105,10 @@
   {"usage",	  OPT_USAGE,	0, 0,  N_("Give a short usage message"), 0 },
   {"program-name",OPT_PROGNAME,"NAME", OPTION_HIDDEN,
      N_("Set the program name"), 0},
+#if OPT_HANG
   {"HANG",	  OPT_HANG,    "SECS", OPTION_ARG_OPTIONAL | OPTION_HIDDEN,
      N_("Hang for SECS seconds (default 3600)"), 0 },
+#endif
   {0, 0, 0, 0, 0, 0}
 };
 
@@ -143,7 +147,8 @@
 	state->argv[0] = arg;
 
       break;
-
+      
+#if OPT_HANG
     case OPT_HANG:
       _argp_hang = atoi (arg ? arg : "3600");
       fprintf(state->err_stream, "%s: pid = %ld\n",
@@ -151,7 +156,8 @@
       while (_argp_hang-- > 0)
 	__sleep (1);
       break;
-
+#endif
+      
     default:
       return EBADKEY;
     }
@@ -1277,13 +1283,13 @@
 /* Defined here, in case a user is not inlining the definitions in
  * argp.h */
 void
-__argp_usage (__const struct argp_state *__state) __THROW
+__argp_usage (__const struct argp_state *__state)
 {
   __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
 }
 
 int
-__option_is_short (__const struct argp_option *__opt) __THROW
+__option_is_short (__const struct argp_option *__opt)
 {
   if (__opt->flags & OPTION_DOC)
     return 0;
@@ -1297,7 +1303,7 @@
 }
 
 int
-__option_is_end (__const struct argp_option *__opt) __THROW
+__option_is_end (__const struct argp_option *__opt)
 {
   return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
 }
Index: argp.h
--- argp.h.orig	2003-12-11 09:37:05 +0100
+++ argp.h	2008-09-21 18:16:06 +0200
@@ -397,14 +397,14 @@
    routine returned a non-zero value, it is returned; otherwise 0 is
    returned.  This function may also call exit unless the ARGP_NO_HELP flag
    is set.  INPUT is a pointer to a value to be passed in to the parser.  */
-extern error_t argp_parse (__const struct argp *__restrict __argp,
-			   int __argc, char **__restrict __argv,
-			   unsigned __flags, int *__restrict __arg_index,
-			   void *__restrict __input) __THROW;
-extern error_t __argp_parse (__const struct argp *__restrict __argp,
-			     int __argc, char **__restrict __argv,
-			     unsigned __flags, int *__restrict __arg_index,
-			     void *__restrict __input) __THROW;
+extern error_t argp_parse (__const struct argp *__restrict argp,
+			   int argc, char **__restrict argv,
+			   unsigned flags, int *__restrict arg_index,
+			   void *__restrict input) __THROW;
+extern error_t __argp_parse (__const struct argp *__restrict argp,
+			     int argc, char **__restrict argv,
+			     unsigned flags, int *__restrict arg_index,
+			     void *__restrict input) __THROW;
 
 /* Global variables.  */
 
@@ -564,13 +564,13 @@
 # endif
 
 ARGP_EI void
-__argp_usage (__const struct argp_state *__state) __THROW
+__argp_usage (__const struct argp_state *__state)
 {
   __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
 }
 
 ARGP_EI int
-__option_is_short (__const struct argp_option *__opt) __THROW
+__option_is_short (__const struct argp_option *__opt)
 {
   if (__opt->flags & OPTION_DOC)
     return 0;
@@ -582,7 +582,7 @@
 }
 
 ARGP_EI int
-__option_is_end (__const struct argp_option *__opt) __THROW
+__option_is_end (__const struct argp_option *__opt)
 {
   return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
 }
Index: configure.ac
--- configure.ac.orig	2004-02-23 18:57:29 +0100
+++ configure.ac	2008-09-21 18:16:37 +0200
@@ -26,7 +26,7 @@
 
 # Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS(limits.h malloc.h unistd.h)
+AC_CHECK_HEADERS(limits.h malloc.h unistd.h sysexits.h stdarg.h)
 
 # Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -38,7 +38,7 @@
 # Checks for library functions.
 AC_FUNC_ALLOCA
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS(strerror)
+AC_CHECK_FUNCS(strerror sleep getpid snprintf)
 
 AC_REPLACE_FUNCS(mempcpy strndup strchrnul)
 
