getopt.h is a modified version of the getopt.h found in the glibc snapshot on 1998-04-14. Below the patch that has been applied to this file. The glibc maintainer has been informed of these patches. diff -c3 getopt.h.orig getopt.h *** getopt.h.orig Sat Jun 21 03:01:53 1997 --- getopt.h Thu Apr 16 00:17:42 1998 *************** *** 96,102 **** #define required_argument 1 #define optional_argument 2 ! #if defined (__STDC__) && __STDC__ #ifdef __GNU_LIBRARY__ /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation --- 96,108 ---- #define required_argument 1 #define optional_argument 2 ! #if (defined (__STDC__) && __STDC__) || defined (__cplusplus) ! #ifdef __cplusplus ! /* SunOS4 declares getopt with the following prototype: ! extern int getopt (int argc, const char *const *argv, const char *shortopts); ! We cannot redeclare it when compiling C++ code. */ ! #define getopt(x,y,z) getopt_long(x, y, z, (const struct option *) 0, (int *) 0) ! #else /* not __cplusplus */ #ifdef __GNU_LIBRARY__ /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation *************** *** 105,110 **** --- 111,117 ---- #else /* not __GNU_LIBRARY__ */ extern int getopt (); #endif /* __GNU_LIBRARY__ */ + #endif /* __cplusplus */ extern int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv,