[patch] Fix for BZ #15366 (ignore __STDC_LIMIT_MACROS, __STDC_CONSTANT_MACROS)

Paul Pluzhnikov ppluzhnikov@google.com
Wed Apr 24 14:28:00 GMT 2013


On Tue, Apr 23, 2013 at 6:35 AM, Florian Weimer <fweimer@redhat.com> wrote:

> I personally have been bitten by the need to define __STDC_FORMAT_MACROS
> (that's the 7.8.1 reference).

Updated patch attached. Tested on Linux/x86_64.

Thanks,
-- 
Paul Pluzhnikov

2013-04-23  Paul Pluzhnikov  <ppluzhnikov@google.com>

	[BZ #15366]
	* sysdeps/generic/inttypes.h (PRId8, PRId16, etc.):
	define unconditionally.
	* sysdeps/generic/stdint.h (INT8_MIN, INT16_MIN, etc.):
        define unconditionally.
        (INT8_C, INT16_C, etc.): Likewise.
-------------- next part --------------
diff --git a/sysdeps/generic/inttypes.h b/sysdeps/generic/inttypes.h
index dc97519..95d7818 100644
--- a/sysdeps/generic/inttypes.h
+++ b/sysdeps/generic/inttypes.h
@@ -40,11 +40,6 @@ typedef wchar_t __gwchar_t;
 # define ____gwchar_t_defined	1
 #endif
 
-
-/* The ISO C99 standard specifies that these macros must only be
-   defined if explicitly requested.  */
-#if !defined __cplusplus || defined __STDC_FORMAT_MACROS
-
 # if __WORDSIZE == 64
 #  define __PRI64_PREFIX	"l"
 #  define __PRIPTR_PREFIX	"l"
@@ -267,8 +262,6 @@ typedef wchar_t __gwchar_t;
 # define SCNuPTR	__PRIPTR_PREFIX "u"
 # define SCNxPTR	__PRIPTR_PREFIX "x"
 
-#endif	/* C++ && format macros */
-
 
 __BEGIN_DECLS
 
diff --git a/sysdeps/generic/stdint.h b/sysdeps/generic/stdint.h
index 15f7508..94c3203 100644
--- a/sysdeps/generic/stdint.h
+++ b/sysdeps/generic/stdint.h
@@ -141,10 +141,6 @@ typedef unsigned long long int	uintmax_t;
 #endif
 
 
-/* The ISO C99 standard specifies that in C++ implementations these
-   macros should only be defined if explicitly requested.  */
-#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
-
 # if __WORDSIZE == 64
 #  define __INT64_C(c)	c ## L
 #  define __UINT64_C(c)	c ## UL
@@ -278,13 +274,6 @@ typedef unsigned long long int	uintmax_t;
 # define WINT_MIN		(0u)
 # define WINT_MAX		(4294967295u)
 
-#endif	/* C++ && limit macros */
-
-
-/* The ISO C99 standard specifies that in C++ implementations these
-   should only be defined if explicitly requested.  */
-#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
-
 /* Signed.  */
 # define INT8_C(c)	c
 # define INT16_C(c)	c
@@ -314,6 +303,4 @@ typedef unsigned long long int	uintmax_t;
 #  define UINTMAX_C(c)	c ## ULL
 # endif
 
-#endif	/* C++ && constant macros */
-
 #endif /* stdint.h */


More information about the Libc-alpha mailing list