about summary refs log tree commit diff
path: root/manual
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2019-08-13 11:26:00 +0000
committerJoseph Myers <joseph@codesourcery.com>2019-08-13 11:26:00 +0000
commit777d75fbc07b98115f4868c3290eb8a5d1f3a5b2 (patch)
tree163caed043feae9018aeccf3c8c9b5724a3d0a6c /manual
parenta33b817f13170b5c24263b92e7e09880fe797d7e (diff)
downloadglibc-777d75fbc07b98115f4868c3290eb8a5d1f3a5b2.tar.gz
glibc-777d75fbc07b98115f4868c3290eb8a5d1f3a5b2.tar.xz
glibc-777d75fbc07b98115f4868c3290eb8a5d1f3a5b2.zip
Add feature test macro _ISOC2X_SOURCE.
This patch starts preparation for C2X support in glibc headers by
adding a feature test macro _ISOC2X_SOURCE and corresponding
__GLIBC_USE (ISOC2X).  (I chose to use the newer __GLIBC_USE style for
this rather than the older __USE_* macros tested with #ifdef.)  As
with other such macros, C2X features are also enabled by compiling for
a standard newer than C17, or by using _GNU_SOURCE.

This patch does not itself enable anything new in the headers for C2X;
that is to be done in followup patches.  (For example, most of the TS
18661-1 functions should be declared for C2X without any
__STDC_WANT_IEC_60559_BFP_EXT__ being needed, but the ones that
18661-1 adds to Annex F because of their close relation to IEEE 754
formats do still need the WANT macro in C2X.)

Once C2X becomes an actual standard we'll presumably move to using the
actual year in the feature test macro and __GLIBC_USE, with some
period when both macro spellings are accepted, as was done with
_ISOC9X_SOURCE.

Tested for x86_64.

	* include/features.h (_ISOC2X_SOURCE): New feature test macro.
	Undefine and define to 1 if [_GNU_SOURCE].
	(__GLIBC_USE_ISOC2X): New macro.  Undefine and redefine depending
	on [_ISOC2X_SOURCE] and [__STDC_VERSION__ > 201710L].
	(__USE_ISOC11): Also define to 1 if [_ISOC2X_SOURCE].
	(__USE_ISOC99): Likewise.
	(__USE_ISOC95): Likewise.
	* manual/creature.texi (_ISOC2X_SOURCE): Document.
Diffstat (limited to 'manual')
-rw-r--r--manual/creature.texi7
1 files changed, 7 insertions, 0 deletions
diff --git a/manual/creature.texi b/manual/creature.texi
index 8876b2ab77..be5050468b 100644
--- a/manual/creature.texi
+++ b/manual/creature.texi
@@ -177,6 +177,13 @@ when the compiler uses an earlier language version.
 If this macro is defined, ISO C11 extensions to ISO C99 are included.
 @end defvr
 
+@defvr Macro _ISOC2X_SOURCE
+@standards{C2X, (none)}
+If this macro is defined, ISO C2X extensions to ISO C11 are included.
+Only some features from this draft standard are supported by
+@theglibc{}.
+@end defvr
+
 @defvr Macro __STDC_WANT_LIB_EXT2__
 @standards{ISO, (none)}
 If you define this macro to the value @code{1}, features from ISO/IEC