Re: [PATCH] sys/features.h: Define _ISOC2Y_SOURCE and __ISO_C_VISIBLE

Corinna Vinschen <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Hi Lenard,

thanks, but... shouldn't we first redefine _ISOC2X_SOURCE to
_ISOC23_SOURCE (keeping _ISOC2X_SOURCE for backward compat),
handle __STDC_VERSION__ >= 202311L if necessary, and only then
add _ISOC2Y_SOURCE?

From the clang user guide I take it that the differences between c23
and c2y are negligible, but that would be in the light of keeping
compatibility with gcc and glibc in terms of feature tests.

As far as _ISOC2Y_SOURCE is concerned, it's not yet supported by
glibc, either, right?  Your patch at
https://patchwork.sourceware.org/project/glibc/patch/[email protected]/
has not been merged yet, afaics.

On Oct 29 15:34, Lenard Mollenkopf wrote:
> @@ -232,6 +237,11 @@ extern "C" {
>   *	g++ -std=c++20 or newer, or with
>   *	_ISOC2X_SOURCE.
>   *
> + * __ISO_C_VISIBLE >= 2024
> + *	ISO C2y; enabled with gcc -std=c2y or newer,
> + *	g++ -std=c++26 or newer, or with
> + *	_ISOC2y_SOURCE.
> + *
>   * __ATFILE_VISIBLE
>   *	"at" functions; enabled by default, with _ATFILE_SOURCE,
>   *	_POSIX_C_SOURCE >= 200809L, or _XOPEN_SOURCE >= 700.
> @@ -278,7 +288,10 @@ extern "C" {

In between here, if _GNU_SOURCE is defined, _ISOC2Y_SOURCE should be
defined as well.


>  #define	__GNU_VISIBLE		0
>  #endif
>  
> -#if defined(_ISOC2X_SOURCE) || \
> +#if defined(_ISOC2Y_SOURCE) || \
> +  (__STDC_VERSION__ - 0) >= 202400L || (__cplusplus - 0) >= 202400L
> +#define __ISO_C_VISIBLE		2024
> +#elif defined(_ISOC2X_SOURCE) || \
>    (__STDC_VERSION__ - 0) > 201710L || (__cplusplus - 0) >= 202002L
>  #define __ISO_C_VISIBLE		2020
>  #elif defined(_ISOC11_SOURCE) || \
> -- 
> 2.47.0

Thanks,
Corinna
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.