2000-06-17 H.J. Lu <hjl@gnu.org>
* getopt.h: Updated from gcc. * libiberty.h: Likewise. * symcat.h: Likewise.
This commit is contained in:
		@@ -1,3 +1,9 @@
 | 
			
		||||
2000-06-17  H.J. Lu  <hjl@gnu.org>
 | 
			
		||||
 | 
			
		||||
	* getopt.h: Updated from gcc.
 | 
			
		||||
	* libiberty.h: Likewise.
 | 
			
		||||
	* symcat.h: Likewise.
 | 
			
		||||
 | 
			
		||||
2000-06-17  H.J. Lu  <hjl@gnu.org>
 | 
			
		||||
 | 
			
		||||
	* ansidecl.h: Updated from gcc.
 | 
			
		||||
 
 | 
			
		||||
@@ -99,13 +99,20 @@ struct option
 | 
			
		||||
#define optional_argument	2
 | 
			
		||||
 | 
			
		||||
#if defined (__STDC__) && __STDC__
 | 
			
		||||
#ifdef __GNU_LIBRARY__
 | 
			
		||||
/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1.  If it is
 | 
			
		||||
   undefined, we haven't run the autoconf check so provide the
 | 
			
		||||
   declaration without arguments.  If it is 0, we checked and failed
 | 
			
		||||
   to find the declaration so provide a fully prototyped one.  If it
 | 
			
		||||
   is 1, we found it so don't provide any declaration at all.  */
 | 
			
		||||
#if defined (__GNU_LIBRARY__) || (defined (HAVE_DECL_GETOPT) && !HAVE_DECL_GETOPT)
 | 
			
		||||
/* Many other libraries have conflicting prototypes for getopt, with
 | 
			
		||||
   differences in the consts, in stdlib.h.  To avoid compilation
 | 
			
		||||
   errors, only prototype getopt for the GNU C library.  */
 | 
			
		||||
extern int getopt (int argc, char *const *argv, const char *shortopts);
 | 
			
		||||
#else /* not __GNU_LIBRARY__ */
 | 
			
		||||
# if !defined (HAVE_DECL_GETOPT)
 | 
			
		||||
extern int getopt ();
 | 
			
		||||
# endif
 | 
			
		||||
#endif /* __GNU_LIBRARY__ */
 | 
			
		||||
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
 | 
			
		||||
		        const struct option *longopts, int *longind);
 | 
			
		||||
 
 | 
			
		||||
@@ -36,10 +36,17 @@ extern char **dupargv PARAMS ((char **)) ATTRIBUTE_MALLOC;
 | 
			
		||||
   across different systems, sometimes as "char *" and sometimes as
 | 
			
		||||
   "const char *" */
 | 
			
		||||
 | 
			
		||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__)
 | 
			
		||||
/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1.  If it is
 | 
			
		||||
   undefined, we haven't run the autoconf check so provide the
 | 
			
		||||
   declaration without arguments.  If it is 0, we checked and failed
 | 
			
		||||
   to find the declaration so provide a fully prototyped one.  If it
 | 
			
		||||
   is 1, we found it so don't provide any declaration at all.  */
 | 
			
		||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || (defined (HAVE_DECL_BASENAME) && !HAVE_DECL_BASENAME)
 | 
			
		||||
extern char *basename PARAMS ((const char *));
 | 
			
		||||
#else
 | 
			
		||||
# if !defined (HAVE_DECL_BASENAME)
 | 
			
		||||
extern char *basename ();
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Concatenate an arbitrary number of strings, up to (char *) NULL.
 | 
			
		||||
 
 | 
			
		||||
@@ -19,12 +19,16 @@
 | 
			
		||||
#ifndef SYM_CAT_H
 | 
			
		||||
#define SYM_CAT_H
 | 
			
		||||
 | 
			
		||||
#if defined (__STDC__) || defined (ALMOST_STDC)
 | 
			
		||||
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
 | 
			
		||||
#define CONCAT2(a,b)	 a##b
 | 
			
		||||
#define CONCAT3(a,b,c)	 a##b##c
 | 
			
		||||
#define CONCAT4(a,b,c,d) a##b##c##d
 | 
			
		||||
#define STRINGX(s) #s
 | 
			
		||||
#else
 | 
			
		||||
/* Note one should never pass extra whitespace to the CONCATn macros,
 | 
			
		||||
   e.g. CONCAT2(foo, bar) because traditonal C will keep the space between
 | 
			
		||||
   the two labels instead of concatenating them.  Instead, make sure to
 | 
			
		||||
   write CONCAT2(foo,bar).  */
 | 
			
		||||
#define CONCAT2(a,b)	 a/**/b
 | 
			
		||||
#define CONCAT3(a,b,c)	 a/**/b/**/c
 | 
			
		||||
#define CONCAT4(a,b,c,d) a/**/b/**/c/**/d
 | 
			
		||||
@@ -35,6 +39,11 @@
 | 
			
		||||
#define XCONCAT3(a,b,c)   CONCAT3(a,b,c)
 | 
			
		||||
#define XCONCAT4(a,b,c,d) CONCAT4(a,b,c,d)
 | 
			
		||||
 | 
			
		||||
/* Note the layer of indirection here is typically used to allow
 | 
			
		||||
   stringification of the expansion of macros.  I.e. "#define foo
 | 
			
		||||
   bar", "XSTRING(foo)", to yield "bar".  Be aware that this only
 | 
			
		||||
   works for __STDC__, not for traditional C which will still resolve
 | 
			
		||||
   to "foo".  */
 | 
			
		||||
#define XSTRING(s) STRINGX(s) 
 | 
			
		||||
 | 
			
		||||
#endif SYM_CAT_H
 | 
			
		||||
#endif /* SYM_CAT_H */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user