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 Mon Aug 28 12:36:27 2000 *************** *** 1,5 **** /* Declarations for getopt. ! Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or --- 1,5 ---- /* Declarations for getopt. ! Copyright (C) 1989-1998, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or *************** *** 78,84 **** struct option { ! #if defined (__STDC__) && __STDC__ const char *name; #else char *name; --- 78,84 ---- struct option { ! #if (defined (__STDC__) && __STDC__) || defined (__cplusplus) const char *name; #else char *name; *************** *** 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,