mirror of
https://github.com/opnsense/src.git
synced 2026-06-07 15:52:40 -04:00
cdefs: update for C23 and POSIX24
Also tweak a few placs where we can now use macros for C23 and POSIX24. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D47580
This commit is contained in:
parent
f95d9ec921
commit
75b635c774
1 changed files with 24 additions and 12 deletions
|
|
@ -303,7 +303,7 @@ to distinguish it from newer standards.
|
|||
Support for this compilation environment is dependent on compilers supporting
|
||||
this configuration.
|
||||
Most of the old forms of C have been deprecated or removed in
|
||||
ISO/IEC 9899:2024 (“ISO C23”).
|
||||
.St -isoC-2024 .
|
||||
Compilers make compiling in this mode increasingly difficult and support for it
|
||||
may ultimately be removed from the tree.
|
||||
.It St -ansiC
|
||||
|
|
@ -333,11 +333,11 @@ since there are no new C17 only symbols or macros.
|
|||
.Pp
|
||||
This version of the standard did not introduce any new features, only made
|
||||
minor, technical corrections.
|
||||
.It ISO/IEC 9899:2024 (“ISO C23”)
|
||||
.It St -isoC-2024
|
||||
.Dv __STDC_VERSION__ = 202311L
|
||||
Strict environment selected with
|
||||
.Dv _C23_SOURCE
|
||||
though this is not yet implemented.
|
||||
though ISO C23 support is only partially implemented.
|
||||
.El
|
||||
.Pp
|
||||
For more information on C standards, see
|
||||
|
|
@ -356,25 +356,37 @@ However, system headers not defined by that standard may define extensions.
|
|||
.It Dv _POSIX_C_SOURCE = 199506 Ta St -p1003.1c-95 including St -ansiC
|
||||
.It Dv _POSIX_C_SOURCE = 200112 Ta St -p1003.1-2001 including St -isoC-99
|
||||
.It Dv _POSIX_C_SOURCE = 200809 Ta St -p1003.1-2008 including St -isoC-99
|
||||
.It Dv _POSIX_C_SOURCE = 202405 Ta in the future IEEE Std 1003.1-2024 (“POSIX.1”) including ISO/IEC 9899:2024 (“ISO C23”)
|
||||
.It Dv _POSIX_C_SOURCE = 202405 Ta St -p1003.1-2024 including ISO/IEC 9899:2018 ("ISO C17"),
|
||||
.It Dv _XOPEN_SOURCE = 500 Ta St -p1003.1c-95 and XPG extensions to St -susv2 including St -ansiC
|
||||
.It Dv _XOPEN_SOURCE = 600 Ta St -p1003.1-2001 and XPG extensions to St -susv3 including St -isoC-99
|
||||
.It Dv _XOPEN_SOURCE = 700 Ta St -p1003.1-2008 and XPG extensions to St -susv4 including St -isoC-99
|
||||
.It Dv _XOPEN_SOURCE = 800 Ta in the future IEEE Std 1003.1-2024 (“POSIX.1”) and XPG extensions to Version 5 of the Single UNIX Specification (“SUSv5”) including ISO/IEC 9899:2024 (“ISO C23”)
|
||||
.It Dv _XOPEN_SOURCE = 800 Ta St -p1003.1-2024 and XPG extensions to Version 5 of the Single UNIX Specification (“SUSv5”) including ISO/IEC 9899:2018 (“ISO C17”)
|
||||
.It Dv _ANSI_SOURCE Ta St -ansiC
|
||||
.It Dv _C99_SOURCE Ta St -isoC-99
|
||||
.It Dv _C11_SOURCE Ta St -isoC-2011
|
||||
.It Dv _C23_SOURCE Ta in the future ISO/IEC 9899:2024 (“ISO C23”)
|
||||
.It Dv _C23_SOURCE Ta St -isoC-2024
|
||||
.It Dv _BSD_SOURCE Ta Everything, including Fx extensions
|
||||
.El
|
||||
.Pp
|
||||
Note:
|
||||
.St -p1003.1-2024
|
||||
and XPG extensions to Version 5 of the Single UNIX Specification ("SUSv5")
|
||||
support is incomplete.
|
||||
.Pp
|
||||
When both POSIX and C environments are selected, the POSIX environment selects
|
||||
which C environment is used.
|
||||
However, when C11 dialect is selected with
|
||||
.St -p1003.1-2008 ,
|
||||
definitions for
|
||||
.St -isoC-2011
|
||||
are included.
|
||||
are also included.
|
||||
Likewise, when C23 dialog is selected with
|
||||
.St -p1003.1-2008
|
||||
or
|
||||
.St -p1003.1-2024 ,
|
||||
definitions for
|
||||
.St -isoC-2023
|
||||
are also included.
|
||||
.Ss Header Visibility Macros
|
||||
These macros are set by
|
||||
.Nm
|
||||
|
|
@ -393,13 +405,13 @@ by convention with 199009 for
|
|||
and 199209
|
||||
.St -p1003.1-90 .
|
||||
.It Dv __ISO_C_VISIBLE Ta The C level that's visible.
|
||||
Possible values include 1990, 1999, and 2011 for
|
||||
Possible values include 1990, 1999, 2011, 2017 and 2023 for
|
||||
.St -isoC-90 ,
|
||||
.St -isoC-99
|
||||
and
|
||||
.St -isoC-2011
|
||||
.St -isoC-99 ,
|
||||
.St -isoC-2011 ,
|
||||
ISO/IEC 9899:2018 ("ISO C17"), and
|
||||
.St -isoC-2024 ,
|
||||
respectively.
|
||||
In the future, 2023 will be used for ISO C2023.
|
||||
.It Dv __BSD_VISIBLE Ta 1 if the
|
||||
.Fx
|
||||
extensions are visible, 0 otherwise.
|
||||
|
|
|
|||
Loading…
Reference in a new issue