public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Zack Weinberg <zack@sourceware.org>
To: glibc-cvs@sourceware.org
Subject: [glibc/zack/no-nested-includes] Don’t conditionalize declarations of ldiv_t, lldiv_t, __gwchar_t.
Date: Wed, 08 Jan 2020 19:19:00 -0000	[thread overview]
Message-ID: <20200108191927.115606.qmail@sourceware.org> (raw)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="us-ascii", Size: 2449 bytes --]

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=795eb42e060039b6d624b7e613d8c334ac70580c

commit 795eb42e060039b6d624b7e613d8c334ac70580c
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 685dfc1..c5ec307 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 e347063..9f1f1b8 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
   {


             reply	other threads:[~2020-01-08 19:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-08 19:19 Zack Weinberg [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-06-26 15:49 Zack Weinberg
2019-06-18 15:34 Zack Weinberg
2019-05-26 16:36 Zack Weinberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200108191927.115606.qmail@sourceware.org \
    --to=zack@sourceware.org \
    --cc=glibc-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).