This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
[glibc/zack/no-nested-includes] Don’t conditionalize declarations of ldiv_t, lldiv_t, __gwchar_t.
- From: Zack Weinberg <zack at sourceware dot org>
- To: glibc-cvs at sourceware dot org
- Date: 26 May 2019 16:36:12 -0000
- Subject: [glibc/zack/no-nested-includes] Don’t conditionalize declarations of ldiv_t, lldiv_t, __gwchar_t.
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=69411ab1f82999d0f99ea02312b1ed40ff1005de
commit 69411ab1f82999d0f99ea02312b1ed40ff1005de
Author: Zack Weinberg <zackw@panix.com>
Date: Sat Mar 9 21:18:56 2019 -0500
Donâ??t conditionalize declarations of ldiv_t, lldiv_t, __gwchar_t.
The declarations of ldiv_t, lldiv_t, and __gwchar_t are all wrapped in
__foo_t_defined conditionals, despite there being only one header in
glibc that declares them. I checked codesearch.debian.net and only
found one other program that refers to the __foo_t_defined
conditionals: u-boot provides its own definition of ldiv_t if
__ldiv_t_defined is not defined by stdlib.h. I conclude that the
conditionals are not necessary, but the definitions of
__ldiv_t_defined and __lldiv_t_defined should be preserved.
* stdlib/inttypes.h: Unconditionally define __gwchar_t.
Donâ??t define ____gwchar_t_defined.
* stdlib/stdlib.h: Unconditionally define ldiv_t.
Condition lldiv_t only on __USE_ISOC99.
Diff:
---
stdlib/inttypes.h | 15 ++++++---------
stdlib/stdlib.h | 6 ++----
2 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/stdlib/inttypes.h b/stdlib/inttypes.h
index ddcb171..c5fb120 100644
--- a/stdlib/inttypes.h
+++ b/stdlib/inttypes.h
@@ -27,17 +27,14 @@
#include <stdint.h>
/* Get a definition for wchar_t. But we must not define wchar_t itself. */
-#ifndef ____gwchar_t_defined
-# ifdef __cplusplus
-# define __gwchar_t wchar_t
-# elif defined __WCHAR_TYPE__
+#ifdef __cplusplus
+# define __gwchar_t wchar_t
+#elif defined __WCHAR_TYPE__
typedef __WCHAR_TYPE__ __gwchar_t;
-# else
-# define __need_wchar_t
-# include <stddef.h>
+#else
+# define __need_wchar_t
+# include <stddef.h>
typedef wchar_t __gwchar_t;
-# endif
-# define ____gwchar_t_defined 1
#endif
# if __WORDSIZE == 64
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index a9fd989..34996e3 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -62,16 +62,14 @@ typedef struct
} div_t;
/* Returned by `ldiv'. */
-#ifndef __ldiv_t_defined
typedef struct
{
long int quot; /* Quotient. */
long int rem; /* Remainder. */
} ldiv_t;
-# define __ldiv_t_defined 1
-#endif
+#define __ldiv_t_defined 1
-#if defined __USE_ISOC99 && !defined __lldiv_t_defined
+#if defined __USE_ISOC99
/* Returned by `lldiv'. */
__extension__ typedef struct
{