All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alejandro Colomar <alx@kernel.org>
To: Joseph Myers <josmyers@redhat.com>
Cc: libc-alpha@sourceware.org, gcc@gcc.gnu.org, linux-man@vger.kernel.org
Subject: Re: _ISOCxx_SOURCE
Date: Tue, 16 Jun 2026 23:11:48 +0200	[thread overview]
Message-ID: <ajG7DCFNQPXb11nr@devuan> (raw)
In-Reply-To: <b22b20d8-b4bb-ce86-7865-87ac4ed7df25@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2132 bytes --]

Hi Joseph,

On 2026-06-16T16:02:44+0000, Joseph Myers wrote:
> On Mon, 15 Jun 2026, Alejandro Colomar wrote:
> 
> > Hi Joseph,
> > 
> > On 2026-06-15T17:20:17+0000, Joseph Myers wrote:
> > > On Sat, 13 Jun 2026, Alejandro Colomar via Gcc wrote:
> > > 
> > > > I was reviewing the feature_test_macros(7) page, and found the
> > > > documentation of the _ISOC{99,11,23,...}_SOURCE macros to be incorrect.
> > > > And thinking about fixing that led me to think that the design of those
> > > > macros is less than ideal.
> > > 
> > > Users should normally use -std= options with the compiler to get matching 
> > > language and library features.  These feature test macros are mainly for 
> > > niche cases with old compilers.  So I don't think any new user-facing 
> > > design for them should be added (the C23 and later ones already use the 
> > > newer __GLIBC_USE style of conditionals in the header implementation).
> > 
> > Makes sense.  Should I document that users should avoid setting them
> > directly (and that they should use the corresponding compiler flag)?
> 
> Indeed.

Thanks!  Will do.

>  Also, users are probably using a compiler defaulting to 
> -std=gnu23 or -std=gnu11 so the older _ISOC99_SOURCE and _ISOC11_SOURCE 
> are doubly irrelevant for that reason.

I was also wondering...

If one uses a modern GCC with an old glibc (which doesn't know C23),
then, using -std=c23 will be problematic: the compiler will enable C23
language mode, but the library will entirely and silently ignore
_ISOC23_SOURCE, because it doesn't know about it, thus falling back to
C89 mode (I guess), and thus will for example enable things like
gets(3).

If the way to pass the language version from the compiler to the libc
were through a single macro, then the library would be able to at least
diagnose, and/or turn on the latest dialect it knows about.

Is there any limitation of which libc versions are supported by modern
GCC?  Is this a bug?


Have a lovely night!
Alex

> 
> -- 
> Joseph S. Myers
> josmyers@redhat.com
> 

-- 
<https://www.alejandro-colomar.es>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2026-06-16 21:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-13 12:02 _ISOCxx_SOURCE Alejandro Colomar
2026-06-15 17:20 ` _ISOCxx_SOURCE Joseph Myers
2026-06-15 21:06   ` _ISOCxx_SOURCE Alejandro Colomar
2026-06-16 16:02     ` _ISOCxx_SOURCE Joseph Myers
2026-06-16 21:11       ` Alejandro Colomar [this message]
2026-06-16 21:52         ` _ISOCxx_SOURCE Joseph Myers
2026-06-16 22:09           ` _ISOCxx_SOURCE Alejandro Colomar

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=ajG7DCFNQPXb11nr@devuan \
    --to=alx@kernel.org \
    --cc=gcc@gcc.gnu.org \
    --cc=josmyers@redhat.com \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-man@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.