Here are the symptoms during the build of wget 1.8.2 on Solaris 7 with GCC 2.95.3:
gcc -I. -I. -I/usr/local/ssl/include -DHAVE_CONFIG_H -DSYSTEM_WGETRC=\"/usr/local/etc/wgetrc\" -DLOCALEDIR=\"/usr/local/share/locale\" -O2 -Wall -Wno-implicit -c ftp.c In file included from /usr/local/ssl/include/openssl/bio.h:65, from /usr/local/ssl/include/openssl/ssl.h:119, from rbuf.h:34, from ftp.c:50: /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/include/stdarg.h:170: warning: redefinition of `va_list' /usr/include/stdio.h:118: warning: `va_list' previously declared here The problem is that Solaris 7 stdio.h plays funny games if you define _XOPEN_SOURCE: it adds a typedef for va_list in that situation. The simplest workaround is to not define _XOPEN_SOURCE on Solaris, as it isn't needed. More generally, wget should probably be using AC_CHECK_DECLS instead of AC_CHECK_FUNC to determine whether a function is declared. That way wget shouldn't have to tweak the namespace at all; it could just adapt to the namespace that "configure" gives it. But that's a longer story. Here is a patch only for the simple problem. 2003-01-20 Paul Eggert <eggert@whale> * src/config.h.in (NAMESPACE_TWEAKS): Remove. (__EXTENSIONS__): Define only for Solaris. (_XOPEN_SOURCE, _SVID_SOURCE, _BSD_SOURCE): Define only for Linux. =================================================================== RCS file: src/RCS/config.h.in,v retrieving revision 1.8.2.0 retrieving revision 1.8.2.1 diff -pu -r1.8.2.0 -r1.8.2.1 --- src/config.h.in 2002/05/18 03:05:14 1.8.2.0 +++ src/config.h.in 2003/01/20 21:50:40 1.8.2.1 @@ -254,30 +254,19 @@ char *alloca (); Because of that, we define them only on architectures we know about. */ -#undef NAMESPACE_TWEAKS - #ifdef solaris -# define NAMESPACE_TWEAKS +/* Request Solaris extensions, even if the compiler options ask for + ANSI C headers. */ +# define __EXTENSIONS__ #endif #ifdef __linux__ -# define NAMESPACE_TWEAKS -#endif - -#ifdef NAMESPACE_TWEAKS - -/* Request the "Unix 98 compilation environment". */ -#define _XOPEN_SOURCE 500 +/* Request the "Unix 98 compilation environment". */ +# define _XOPEN_SOURCE 500 -/* For Solaris: request everything else that is available and doesn't - conflict with the above. */ -#define __EXTENSIONS__ - -/* For Linux: request features of 4.3BSD and SVID (System V Interface - Definition). */ -#define _SVID_SOURCE -#define _BSD_SOURCE - -#endif /* NAMESPACE_TWEAKS */ +/* Request features of 4.3BSD and SVID (System V Interface Definition). */ +# define _SVID_SOURCE +# define _BSD_SOURCE +#endif #endif /* CONFIG_H */