This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Remove __STDC__ conditionals from installed headers


This patch removes __STDC__ conditionals from headers installed by glibc - 
except of course for the one in misc/sys/cdefs.h that exists to give an 
error if you try to use gcc -traditional, and also sunrpc/rpc/key_prot.h 
(generated by rpcgen).  (I think it would be reasonable to remove 
traditional-C support from rpcgen - but I also think the libtirpc project 
should take over the job of providing rpcgen and rpcgen-generated headers 
from glibc, rather than doing too much more on glibc's local RPC support.)

Given that -traditional support was removed long ago I think this is 
pretty obvious, and it's passed testing on x86_64, but I won't commit it 
immediately in case anyone spots any technical problems with it.  The only 
one of the headers here that might be used other than in the glibc context 
is obstack.h - but as usual gnulib is now the standard place for other 
packages to get this header from and gnulib does not support pre-standard 
compilers.  So I think it's fine to remove __STDC__ conditionals in 
obstack.h.

This patch is generally conservative in its cleanups (for example, all 
_G_config.h headers define _G_HAVE_SYS_CDEFS, so actually more libio.h 
cleanup is possible).  There are various files that aren't installed 
headers to clean up for __STDC__ conditionals as well (and cleaning up 
those is even more obvious than cleaning up installed headers); "installed 
headers" was simply a conveniently sized unit for one batch of cleanups.

2012-01-25  Joseph Myers  <joseph@codesourcery.com>

	* libio/libio.h: Remove __STDC__ conditionals.
	* malloc/obstack.h: Likewise.
	* math/complex.h: Likewise.
	* math/math.h: Likewise.
	* sysdeps/generic/_G_config.h: Likewise.
	* sysdeps/gnu/_G_config.h: Likewise.
	* sysdeps/mach/hurd/_G_config.h: Likewise.
	* sysdeps/powerpc/bits/mathdef.h: Likewise.
	* sysdeps/sh/sh4/bits/mathdef.h: Likewise.
	* sysdeps/sparc/bits/mathdef.h: Likewise.

diff --git a/libio/libio.h b/libio/libio.h
index 3ec2eb3..8997524 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -62,13 +62,8 @@
 # if _G_HAVE_SYS_CDEFS
 #  include <sys/cdefs.h>
 # else
-#  ifdef __STDC__
-#   define __P(p) p
-#   define __PMT(p) p
-#  else
-#   define __P(p) ()
-#   define __PMT(p) ()
-#  endif
+#  define __P(p) p
+#  define __PMT(p) p
 # endif
 #endif /*!__P*/
 
@@ -77,11 +72,6 @@
 # define _PARAMS(protos) __P(protos)
 #endif /*!_PARAMS*/
 
-#ifndef __STDC__
-# ifndef const
-#  define const
-# endif
-#endif
 #define _IO_UNIFIED_JUMPTABLES 1
 #ifndef _G_HAVE_PRINTF_FP
 # define _IO_USE_DTOA 1
diff --git a/malloc/obstack.h b/malloc/obstack.h
index 4677891..0963856 100644
--- a/malloc/obstack.h
+++ b/malloc/obstack.h
@@ -1,5 +1,5 @@
 /* obstack.h - object stack macros
-   Copyright (C) 1988-1994,1996-1999,2003,2004,2005,2009,2011
+   Copyright (C) 1988-1994,1996-1999,2003,2004,2005,2009,2011,2012
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -250,7 +250,7 @@ extern int obstack_exit_failure;
 
 #define obstack_memory_used(h) _obstack_memory_used (h)
 
-#if defined __GNUC__ && defined __STDC__ && __STDC__
+#if defined __GNUC__
 /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
    does not implement __extension__.  But that compiler doesn't define
    __GNUC_MINOR__.  */
@@ -402,7 +402,7 @@ __extension__								\
      __o->next_free = __o->object_base = (char *)__obj;			\
    else (obstack_free) (__o, __obj); })
 
-#else /* not __GNUC__ or not __STDC__ */
+#else /* not __GNUC__ */
 
 # define obstack_object_size(h) \
  (unsigned) ((h)->next_free - (h)->object_base)
@@ -500,7 +500,7 @@ __extension__								\
        = (h)->temp.tempint + (char *) (h)->chunk), 0)			\
    : ((obstack_free) ((h), (h)->temp.tempint + (char *) (h)->chunk), 0)))
 
-#endif /* not __GNUC__ or not __STDC__ */
+#endif /* not __GNUC__ */
 
 #ifdef __cplusplus
 }	/* C++ */
diff --git a/math/complex.h b/math/complex.h
index 9217fdd..cd48cb9 100644
--- a/math/complex.h
+++ b/math/complex.h
@@ -82,20 +82,15 @@ __BEGIN_DECLS
 # define _Mfloat_		float
 #endif
 #define _Mdouble_ 		_Mfloat_
-#ifdef __STDC__
-# define __MATH_PRECNAME(name)	name##f
-#else
-# define __MATH_PRECNAME(name)	name/**/f
-#endif
+#define __MATH_PRECNAME(name)	name##f
 #include <bits/cmathcalls.h>
 #undef	_Mdouble_
 #undef	__MATH_PRECNAME
 
 /* And the long double versions.  It is non-critical to define them
    here unconditionally since `long double' is required in ISO C99.  */
-#if (__STDC__ - 0 || __GNUC__ - 0) \
-    && (!(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
-	|| defined __LDBL_COMPAT)
+#if !(defined __NO_LONG_DOUBLE_MATH && defined _LIBC)	\
+    || defined __LDBL_COMPAT
 # ifdef __LDBL_COMPAT
 #  undef __MATHDECL_1
 #  define __MATHDECL_1(type, function, args) \
@@ -106,11 +101,7 @@ __BEGIN_DECLS
 #  define _Mlong_double_	long double
 # endif
 # define _Mdouble_ 		_Mlong_double_
-# ifdef __STDC__
-#  define __MATH_PRECNAME(name)	name##l
-# else
-#  define __MATH_PRECNAME(name)	name/**/l
-# endif
+# define __MATH_PRECNAME(name)	name##l
 # include <bits/cmathcalls.h>
 #endif
 #undef	_Mdouble_
diff --git a/math/math.h b/math/math.h
index a849a03..d6e4d01 100644
--- a/math/math.h
+++ b/math/math.h
@@ -1,5 +1,5 @@
 /* Declarations for math functions.
-   Copyright (C) 1991-1993, 1995-1999, 2001, 2002, 2004, 2006, 2009, 2011
+   Copyright (C) 1991-1993, 1995-1999, 2001, 2002, 2004, 2006, 2009, 2011, 2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -84,11 +84,7 @@ __BEGIN_DECLS
 #  define _Mfloat_		float
 # endif
 # define _Mdouble_		_Mfloat_
-# ifdef __STDC__
-#  define __MATH_PRECNAME(name,r) name##f##r
-# else
-#  define __MATH_PRECNAME(name,r) name/**/f/**/r
-# endif
+# define __MATH_PRECNAME(name,r) name##f##r
 # define _Mdouble_BEGIN_NAMESPACE __BEGIN_NAMESPACE_C99
 # define _Mdouble_END_NAMESPACE   __END_NAMESPACE_C99
 # include <bits/mathcalls.h>
@@ -97,9 +93,8 @@ __BEGIN_DECLS
 # undef _Mdouble_END_NAMESPACE
 # undef	__MATH_PRECNAME
 
-# if (__STDC__ - 0 || __GNUC__ - 0) \
-     && (!(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
-	 || defined __LDBL_COMPAT)
+# if !(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
+     || defined __LDBL_COMPAT
 #  ifdef __LDBL_COMPAT
 
 #   ifdef __USE_ISOC99
@@ -132,11 +127,7 @@ extern long double __REDIRECT_NTH (nexttowardl,
 #   define _Mlong_double_	long double
 #  endif
 #  define _Mdouble_		_Mlong_double_
-#  ifdef __STDC__
-#   define __MATH_PRECNAME(name,r) name##l##r
-#  else
-#   define __MATH_PRECNAME(name,r) name/**/l/**/r
-#  endif
+#  define __MATH_PRECNAME(name,r) name##l##r
 #  define _Mdouble_BEGIN_NAMESPACE __BEGIN_NAMESPACE_C99
 #  define _Mdouble_END_NAMESPACE   __END_NAMESPACE_C99
 #  define __MATH_DECLARE_LDOUBLE   1
@@ -146,7 +137,7 @@ extern long double __REDIRECT_NTH (nexttowardl,
 #  undef _Mdouble_END_NAMESPACE
 #  undef __MATH_PRECNAME
 
-# endif /* __STDC__ || __GNUC__ */
+# endif /* !(__NO_LONG_DOUBLE_MATH && _LIBC) || __LDBL_COMPAT */
 
 #endif	/* Use misc or ISO C99.  */
 #undef	__MATHDECL_1
diff --git a/sysdeps/generic/_G_config.h b/sysdeps/generic/_G_config.h
index 4aafe65..67b8dcd 100644
--- a/sysdeps/generic/_G_config.h
+++ b/sysdeps/generic/_G_config.h
@@ -84,10 +84,6 @@ typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
 #define _G_VTABLE_LABEL_HAS_LENGTH 1
 
 
-#if defined __cplusplus || defined __STDC__
-# define _G_ARGS(ARGLIST) ARGLIST
-#else
-# define _G_ARGS(ARGLIST) ()
-#endif
+#define _G_ARGS(ARGLIST) ARGLIST
 
 #endif	/* _G_config.h */
diff --git a/sysdeps/gnu/_G_config.h b/sysdeps/gnu/_G_config.h
index 211d022..fe43f8c 100644
--- a/sysdeps/gnu/_G_config.h
+++ b/sysdeps/gnu/_G_config.h
@@ -92,10 +92,6 @@ typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
 #define _G_VTABLE_LABEL_PREFIX_ID __vt_
 
 
-#if defined __cplusplus || defined __STDC__
-# define _G_ARGS(ARGLIST) ARGLIST
-#else
-# define _G_ARGS(ARGLIST) ()
-#endif
+#define _G_ARGS(ARGLIST) ARGLIST
 
 #endif	/* _G_config.h */
diff --git a/sysdeps/mach/hurd/_G_config.h b/sysdeps/mach/hurd/_G_config.h
index db95924..8c68561 100644
--- a/sysdeps/mach/hurd/_G_config.h
+++ b/sysdeps/mach/hurd/_G_config.h
@@ -91,10 +91,6 @@ typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
 #define _G_VTABLE_LABEL_PREFIX_ID __vt_
 
 
-#if defined __cplusplus || defined __STDC__
-# define _G_ARGS(ARGLIST) ARGLIST
-#else
-# define _G_ARGS(ARGLIST) ()
-#endif
+#define _G_ARGS(ARGLIST) ARGLIST
 
 #endif	/* _G_config.h */
diff --git a/sysdeps/powerpc/bits/mathdef.h b/sysdeps/powerpc/bits/mathdef.h
index 7723f0c..3a9b1b0 100644
--- a/sysdeps/powerpc/bits/mathdef.h
+++ b/sysdeps/powerpc/bits/mathdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,1999,2000,2003,2004,2006,2010
+/* Copyright (C) 1997,1998,1999,2000,2003,2004,2006,2010,2012
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -32,23 +32,13 @@
 # define _MATH_H_MATHDEF	1
 
 # ifdef __GNUC__
-#  if __STDC__ == 1
 
-/* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
+/* gcc leaves `float' expressions as-is.  */
 typedef float float_t;		/* `float' expressions are evaluated as
 				   `float'.  */
 typedef double double_t;	/* `double' expressions are evaluated as
 				   `double'.  */
 
-#  else
-
-/* For `gcc -traditional', `float' expressions are evaluated as `double'. */
-typedef double float_t;		/* `float' expressions are evaluated as
-				   `double'.  */
-typedef double double_t;	/* `double' expressions are evaluated as
-				   `double'.  */
-
-#  endif
 # else
 
 /* Wild guess at types for float_t and double_t. */
diff --git a/sysdeps/sh/sh4/bits/mathdef.h b/sysdeps/sh/sh4/bits/mathdef.h
index 2b8caf1..5b92234 100644
--- a/sysdeps/sh/sh4/bits/mathdef.h
+++ b/sysdeps/sh/sh4/bits/mathdef.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2004, 2012
+   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
@@ -31,23 +32,13 @@
 # define _MATH_H_MATHDEF	1
 
 # ifdef __GNUC__
-#  if __STDC__ == 1
 
-/* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
+/* gcc leaves `float' expressions as-is.  */
 typedef float float_t;		/* `float' expressions are evaluated as
 				   `float'.  */
 typedef double double_t;	/* `double' expressions are evaluated as
 				   `double'.  */
 
-#  else
-
-/* For `gcc -traditional', `float' expressions are evaluated as `double'. */
-typedef double float_t;		/* `float' expressions are evaluated as
-				   `double'.  */
-typedef double double_t;	/* `double' expressions are evaluated as
-				   `double'.  */
-
-#  endif
 # else
 
 /* Wild guess at types for float_t and double_t. */
diff --git a/sysdeps/sparc/bits/mathdef.h b/sysdeps/sparc/bits/mathdef.h
index c8dcc9c..042c9c8 100644
--- a/sysdeps/sparc/bits/mathdef.h
+++ b/sysdeps/sparc/bits/mathdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2004, 2006
+/* Copyright (C) 1997, 1998, 1999, 2000, 2004, 2006, 2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -30,19 +30,11 @@
 # define _MATH_H_MATHDEF	1
 
 # ifdef __GNUC__
-#  if __STDC__ == 1
 
-/* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
+/* gcc leaves `float' expressions as-is.  */
 typedef float float_t;
 typedef double double_t;
 
-#  else
-
-/* For `gcc -traditional', `float' expressions are evaluated as `double'. */
-typedef double float_t;
-typedef double double_t;
-
-#  endif
 # else
 
 /* Wild guess at types for float_t and double_t. */

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]