[2/2] libc/features.h: Make code match documentation
Commit Message
The documentation states that _GNU_SOURCE enables "all of the above
plus GNU extensions.". Furthermore the documentation states that
_DEFAULT_SOURCE would enable POSIX-1.2008 with BSD and SVr4 extensions.
The code did different things though:
* For _GNU_SOURCE it only enabled POSIX.1-2008 but it should have been the
highest available one, POSIX.1-2024.
* For _DEFAULT_SOURCE it enabled POSIX.1-2024.
Let's use the highest available POSIX standard possible and fix
documentation where necessary.
---
newlib/libc/include/sys/features.h | 413 ++++++++++++++---------------
1 file changed, 205 insertions(+), 208 deletions(-)
Comments
This is OK also except for a couple of nits in the RTEMS section.
+#define _POSIX_VERSION 199309L
We are now tracking Issue 8 and have added most of the functions
that make sense for RTEMS to support.
+#define _POSIX_ASYNCHRONOUS_IO 1
+#define _POSIX_FSYNC 1
+#define _POSIX_MAPPED_FILES 1
We do not have mapped files. I see that those are mandatory in Issue 8
but the Austin Group folks seem to have forgotten the PSE profiles
and various tailorings of POSIX for embedded systems.
Please comment out _POSIX_MAPPED_FILES. That's what we have done
elsewhere in this block.
--joel
On Fri, Nov 14, 2025 at 4:02 PM Simon Barth <simon.barth@gmx.de> wrote:
> The documentation states that _GNU_SOURCE enables "all of the above
> plus GNU extensions.". Furthermore the documentation states that
> _DEFAULT_SOURCE would enable POSIX-1.2008 with BSD and SVr4 extensions.
>
> The code did different things though:
>
> * For _GNU_SOURCE it only enabled POSIX.1-2008 but it should have been the
> highest available one, POSIX.1-2024.
> * For _DEFAULT_SOURCE it enabled POSIX.1-2024.
>
> Let's use the highest available POSIX standard possible and fix
> documentation where necessary.
> ---
> newlib/libc/include/sys/features.h | 413 ++++++++++++++---------------
> 1 file changed, 205 insertions(+), 208 deletions(-)
>
> diff --git a/newlib/libc/include/sys/features.h
> b/newlib/libc/include/sys/features.h
> index 2a5da45ab..985fcd300 100644
> --- a/newlib/libc/include/sys/features.h
> +++ b/newlib/libc/include/sys/features.h
> @@ -29,16 +29,15 @@ extern "C" {
>
> /* Macro to test version of GCC. Returns 0 for non-GCC or too old GCC. */
> #ifndef __GNUC_PREREQ
> -# if defined __GNUC__ && defined __GNUC_MINOR__
> -# define __GNUC_PREREQ(maj, min) \
> - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
> -# else
> -# define __GNUC_PREREQ(maj, min) 0
> -# endif
> +#if defined __GNUC__ && defined __GNUC_MINOR__
> +#define __GNUC_PREREQ(maj, min)
> \
> + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
> +#else
> +#define __GNUC_PREREQ(maj, min) 0
> +#endif
> #endif /* __GNUC_PREREQ */
> /* Version with trailing underscores for BSD compatibility. */
> -#define __GNUC_PREREQ__(ma, mi) __GNUC_PREREQ(ma, mi)
> -
> +#define __GNUC_PREREQ__(ma, mi) __GNUC_PREREQ(ma, mi)
>
> /*
> * Feature test macros control which symbols are exposed by the system
> @@ -105,7 +104,7 @@ extern "C" {
> * _BSD_SOURCE (deprecated by _DEFAULT_SOURCE)
> * _SVID_SOURCE (deprecated by _DEFAULT_SOURCE)
> * _DEFAULT_SOURCE (or none of the above)
> - * POSIX-1.2008 with BSD and SVr4 extensions
> + * POSIX.1-2024 with BSD and SVr4 extensions
> *
> * _FORTIFY_SOURCE = 1, 2 or 3
> * Object Size Checking function wrappers
> @@ -113,65 +112,65 @@ extern "C" {
>
> /* Remap the old name _ISOC2X_SOURCE to _ISOC23_SOURCE. */
> #ifdef _ISOC2X_SOURCE
> -# undef _ISOC2X_SOURCE
> -# undef _ISOC23_SOURCE
> -# define _ISOC23_SOURCE 1
> +#undef _ISOC2X_SOURCE
> +#undef _ISOC23_SOURCE
> +#define _ISOC23_SOURCE 1
> #endif
>
> #ifdef _GNU_SOURCE
> #undef _ATFILE_SOURCE
> -#define _ATFILE_SOURCE 1
> -#undef _DEFAULT_SOURCE
> -#define _DEFAULT_SOURCE 1
> +#define _ATFILE_SOURCE 1
> +#undef _DEFAULT_SOURCE
> +#define _DEFAULT_SOURCE 1
> #undef _ISOC99_SOURCE
> -#define _ISOC99_SOURCE 1
> +#define _ISOC99_SOURCE 1
> #undef _ISOC11_SOURCE
> -#define _ISOC11_SOURCE 1
> +#define _ISOC11_SOURCE 1
> #undef _ISOC23_SOURCE
> -#define _ISOC23_SOURCE 1
> +#define _ISOC23_SOURCE 1
> #undef _POSIX_SOURCE
> -#define _POSIX_SOURCE 1
> +#define _POSIX_SOURCE 1
> #undef _POSIX_C_SOURCE
> -#define _POSIX_C_SOURCE 200809L
> +#define _POSIX_C_SOURCE 202405L
> #undef _XOPEN_SOURCE
> -#define _XOPEN_SOURCE 700
> +#define _XOPEN_SOURCE 700
> #undef _XOPEN_SOURCE_EXTENDED
> -#define _XOPEN_SOURCE_EXTENDED 1
> +#define _XOPEN_SOURCE_EXTENDED 1
> #endif /* _GNU_SOURCE */
>
> -#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || \
> - (!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE) && \
> - !defined(_ISOC99_SOURCE) && !defined(_POSIX_SOURCE) && \
> - !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))
> +#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) ||
> \
> + (!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE) &&
> \
> + !defined(_ISOC99_SOURCE) && !defined(_POSIX_SOURCE) &&
> \
> + !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))
> #undef _DEFAULT_SOURCE
> -#define _DEFAULT_SOURCE 1
> +#define _DEFAULT_SOURCE 1
> #endif
>
> #if defined(_DEFAULT_SOURCE)
> #undef _POSIX_SOURCE
> -#define _POSIX_SOURCE 1
> +#define _POSIX_SOURCE 1
> #undef _POSIX_C_SOURCE
> -#define _POSIX_C_SOURCE 202405L
> +#define _POSIX_C_SOURCE 202405L
> #endif
>
> -#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && \
> - ((!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE)) || \
> - (_XOPEN_SOURCE - 0) >= 500)
> -#define _POSIX_SOURCE 1
> +#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) &&
> \
> + ((!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE)) ||
> \
> + (_XOPEN_SOURCE - 0) >= 500)
> +#define _POSIX_SOURCE 1
> #if !defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE - 0) >= 700
> -#define _POSIX_C_SOURCE 200809L
> +#define _POSIX_C_SOURCE 200809L
> #elif (_XOPEN_SOURCE - 0) >= 600
> -#define _POSIX_C_SOURCE 200112L
> +#define _POSIX_C_SOURCE 200112L
> #elif (_XOPEN_SOURCE - 0) >= 500
> -#define _POSIX_C_SOURCE 199506L
> +#define _POSIX_C_SOURCE 199506L
> #elif (_XOPEN_SOURCE - 0) < 500
> -#define _POSIX_C_SOURCE 2
> +#define _POSIX_C_SOURCE 2
> #endif
> #endif
>
> #if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809
> #undef _ATFILE_SOURCE
> -#define _ATFILE_SOURCE 1
> +#define _ATFILE_SOURCE 1
> #endif
>
> /*
> @@ -268,102 +267,102 @@ extern "C" {
> */
>
> #ifdef _ATFILE_SOURCE
> -#define __ATFILE_VISIBLE 1
> +#define __ATFILE_VISIBLE 1
> #else
> -#define __ATFILE_VISIBLE 0
> +#define __ATFILE_VISIBLE 0
> #endif
>
> #ifdef _DEFAULT_SOURCE
> -#define __BSD_VISIBLE 1
> +#define __BSD_VISIBLE 1
> #else
> -#define __BSD_VISIBLE 0
> +#define __BSD_VISIBLE 0
> #endif
>
> #ifdef _GNU_SOURCE
> -#define __GNU_VISIBLE 1
> +#define __GNU_VISIBLE 1
> #else
> -#define __GNU_VISIBLE 0
> +#define __GNU_VISIBLE 0
> #endif
>
> -#if defined(_ISOC23_SOURCE) || \
> - (__STDC_VERSION__ - 0) > 201710L || (__cplusplus - 0) >= 202002L
> -#define __ISO_C_VISIBLE 2020
> -#elif defined(_ISOC11_SOURCE) || \
> - (__STDC_VERSION__ - 0) >= 201112L || (__cplusplus - 0) >= 201103L
> -#define __ISO_C_VISIBLE 2011
> -#elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L || \
> - (__STDC_VERSION__ - 0) >= 199901L || defined(__cplusplus)
> -#define __ISO_C_VISIBLE 1999
> +#if defined(_ISOC23_SOURCE) || (__STDC_VERSION__ - 0) > 201710L ||
> \
> + (__cplusplus - 0) >= 202002L
> +#define __ISO_C_VISIBLE 2020
> +#elif defined(_ISOC11_SOURCE) || (__STDC_VERSION__ - 0) >= 201112L ||
> \
> + (__cplusplus - 0) >= 201103L
> +#define __ISO_C_VISIBLE 2011
> +#elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L ||
> \
> + (__STDC_VERSION__ - 0) >= 199901L || defined(__cplusplus)
> +#define __ISO_C_VISIBLE 1999
> #else
> -#define __ISO_C_VISIBLE 1990
> +#define __ISO_C_VISIBLE 1990
> #endif
>
> #if defined(_LARGEFILE_SOURCE) || (_XOPEN_SOURCE - 0) >= 500
> -#define __LARGEFILE_VISIBLE 1
> +#define __LARGEFILE_VISIBLE 1
> #else
> -#define __LARGEFILE_VISIBLE 0
> +#define __LARGEFILE_VISIBLE 0
> #endif
>
> #ifdef _DEFAULT_SOURCE
> -#define __MISC_VISIBLE 1
> +#define __MISC_VISIBLE 1
> #else
> -#define __MISC_VISIBLE 0
> +#define __MISC_VISIBLE 0
> #endif
>
> #if (_POSIX_C_SOURCE - 0) >= 202405L
> -#define __POSIX_VISIBLE 202405
> +#define __POSIX_VISIBLE 202405
> #elif (_POSIX_C_SOURCE - 0) >= 200809L
> -#define __POSIX_VISIBLE 200809
> +#define __POSIX_VISIBLE 200809
> #elif (_POSIX_C_SOURCE - 0) >= 200112L
> -#define __POSIX_VISIBLE 200112
> +#define __POSIX_VISIBLE 200112
> #elif (_POSIX_C_SOURCE - 0) >= 199506L
> -#define __POSIX_VISIBLE 199506
> +#define __POSIX_VISIBLE 199506
> #elif (_POSIX_C_SOURCE - 0) >= 199309L
> -#define __POSIX_VISIBLE 199309
> +#define __POSIX_VISIBLE 199309
> #elif (_POSIX_C_SOURCE - 0) >= 2 || defined(_XOPEN_SOURCE)
> -#define __POSIX_VISIBLE 199209
> +#define __POSIX_VISIBLE 199209
> #elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
> -#define __POSIX_VISIBLE 199009
> +#define __POSIX_VISIBLE 199009
> #else
> -#define __POSIX_VISIBLE 0
> +#define __POSIX_VISIBLE 0
> #endif
>
> #ifdef _DEFAULT_SOURCE
> -#define __SVID_VISIBLE 1
> +#define __SVID_VISIBLE 1
> #else
> -#define __SVID_VISIBLE 0
> +#define __SVID_VISIBLE 0
> #endif
>
> #if (_XOPEN_SOURCE - 0) >= 700
> -#define __XSI_VISIBLE 700
> +#define __XSI_VISIBLE 700
> #elif (_XOPEN_SOURCE - 0) >= 600
> -#define __XSI_VISIBLE 600
> +#define __XSI_VISIBLE 600
> #elif (_XOPEN_SOURCE - 0) >= 500
> -#define __XSI_VISIBLE 500
> +#define __XSI_VISIBLE 500
> #elif defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)
> -#define __XSI_VISIBLE 4
> +#define __XSI_VISIBLE 4
> #elif defined(_XOPEN_SOURCE)
> -#define __XSI_VISIBLE 1
> +#define __XSI_VISIBLE 1
> #else
> -#define __XSI_VISIBLE 0
> +#define __XSI_VISIBLE 0
> #endif
>
> -#if _FORTIFY_SOURCE > 0 && !defined(__cplusplus) && !defined(__lint__) &&
> \
> - (__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1) && \
> - !defined(_LIBC)
> -# if _FORTIFY_SOURCE > 2 && defined(__has_builtin)
> -# if __has_builtin(__builtin_dynamic_object_size)
> -# define __SSP_FORTIFY_LEVEL 3
> -# else
> -# define __SSP_FORTIFY_LEVEL 2
> -# endif
> -# elif _FORTIFY_SOURCE > 1
> -# define __SSP_FORTIFY_LEVEL 2
> -# else
> -# define __SSP_FORTIFY_LEVEL 1
> -# endif
> +#if _FORTIFY_SOURCE > 0 && !defined(__cplusplus) && !defined(__lint__)
> && \
> + (__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1) &&
> \
> + !defined(_LIBC)
> +#if _FORTIFY_SOURCE > 2 && defined(__has_builtin)
> +#if __has_builtin(__builtin_dynamic_object_size)
> +#define __SSP_FORTIFY_LEVEL 3
> #else
> -# define __SSP_FORTIFY_LEVEL 0
> +#define __SSP_FORTIFY_LEVEL 2
> +#endif
> +#elif _FORTIFY_SOURCE > 1
> +#define __SSP_FORTIFY_LEVEL 2
> +#else
> +#define __SSP_FORTIFY_LEVEL 1
> +#endif
> +#else
> +#define __SSP_FORTIFY_LEVEL 0
> #endif
>
> /*
> @@ -374,152 +373,150 @@ extern "C" {
> #ifdef __rtems__
> /* #define _POSIX_JOB_CONTROL 1 */
> /* #define _POSIX_SAVED_IDS 1 */
> -#define _POSIX_VERSION 199309L
> -#define _POSIX_ASYNCHRONOUS_IO 1
> -#define _POSIX_FSYNC 1
> -#define _POSIX_MAPPED_FILES 1
> +#define _POSIX_VERSION 199309L
> +#define _POSIX_ASYNCHRONOUS_IO 1
> +#define _POSIX_FSYNC 1
> +#define _POSIX_MAPPED_FILES 1
> /* #define _POSIX_MEMLOCK 1 */
> /* #define _POSIX_MEMLOCK_RANGE 1 */
> /* #define _POSIX_MEMORY_PROTECTION 1 */
> -#define _POSIX_MESSAGE_PASSING 1
> -#define _POSIX_MONOTONIC_CLOCK 200112L
> -#define _POSIX_CLOCK_SELECTION 200112L
> -#define _POSIX_PRIORITIZED_IO 1
> -#define _POSIX_PRIORITY_SCHEDULING 1
> -#define _POSIX_REALTIME_SIGNALS 1
> -#define _POSIX_SEMAPHORES 1
> -#define _POSIX_SHARED_MEMORY_OBJECTS 1
> -#define _POSIX_SYNCHRONIZED_IO 1
> -#define _POSIX_TIMERS 1
> -#define _POSIX_BARRIERS 200112L
> -#define _POSIX_READER_WRITER_LOCKS 200112L
> -#define _POSIX_SPIN_LOCKS 200112L
> -
> +#define _POSIX_MESSAGE_PASSING 1
> +#define _POSIX_MONOTONIC_CLOCK 200112L
> +#define _POSIX_CLOCK_SELECTION 200112L
> +#define _POSIX_PRIORITIZED_IO 1
> +#define _POSIX_PRIORITY_SCHEDULING 1
> +#define _POSIX_REALTIME_SIGNALS 1
> +#define _POSIX_SEMAPHORES 1
> +#define _POSIX_SHARED_MEMORY_OBJECTS 1
> +#define _POSIX_SYNCHRONIZED_IO 1
> +#define _POSIX_TIMERS 1
> +#define _POSIX_BARRIERS 200112L
> +#define _POSIX_READER_WRITER_LOCKS 200112L
> +#define _POSIX_SPIN_LOCKS 200112L
>
> /* In P1003.1b but defined by drafts at least as early as P1003.1c/D10 */
> -#define _POSIX_THREADS 1
> -#define _POSIX_THREAD_ATTR_STACKADDR 1
> -#define _POSIX_THREAD_ATTR_STACKSIZE 1
> -#define _POSIX_THREAD_PRIORITY_SCHEDULING 1
> -#define _POSIX_THREAD_PRIO_INHERIT 1
> -#define _POSIX_THREAD_PRIO_PROTECT 1
> -#define _POSIX_THREAD_PROCESS_SHARED 1
> -#define _POSIX_THREAD_SAFE_FUNCTIONS 1
> +#define _POSIX_THREADS 1
> +#define _POSIX_THREAD_ATTR_STACKADDR 1
> +#define _POSIX_THREAD_ATTR_STACKSIZE 1
> +#define _POSIX_THREAD_PRIORITY_SCHEDULING 1
> +#define _POSIX_THREAD_PRIO_INHERIT 1
> +#define _POSIX_THREAD_PRIO_PROTECT 1
> +#define _POSIX_THREAD_PROCESS_SHARED 1
> +#define _POSIX_THREAD_SAFE_FUNCTIONS 1
>
> /* P1003.4b/D8 defines the constants below this comment. */
> -#define _POSIX_SPAWN 1
> -#define _POSIX_TIMEOUTS 1
> -#define _POSIX_CPUTIME 1
> -#define _POSIX_THREAD_CPUTIME 1
> -#define _POSIX_SPORADIC_SERVER 1
> -#define _POSIX_THREAD_SPORADIC_SERVER 1
> -#define _POSIX_DEVICE_CONTROL 1
> -#define _POSIX_DEVCTL_DIRECTION 1
> -#define _POSIX_INTERRUPT_CONTROL 1
> -#define _POSIX_ADVISORY_INFO 1
> +#define _POSIX_SPAWN 1
> +#define _POSIX_TIMEOUTS 1
> +#define _POSIX_CPUTIME 1
> +#define _POSIX_THREAD_CPUTIME 1
> +#define _POSIX_SPORADIC_SERVER 1
> +#define _POSIX_THREAD_SPORADIC_SERVER 1
> +#define _POSIX_DEVICE_CONTROL 1
> +#define _POSIX_DEVCTL_DIRECTION 1
> +#define _POSIX_INTERRUPT_CONTROL 1
> +#define _POSIX_ADVISORY_INFO 1
>
> /* UNIX98 added some new pthread mutex attributes */
> -#define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1
> +#define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1
>
> /* POSIX 1003.26-2003 defined device control method */
> -#define _POSIX_26_VERSION 200312L
> +#define _POSIX_26_VERSION 200312L
>
> #endif
>
> /* XMK loosely adheres to POSIX -- 1003.1 */
> #ifdef __XMK__
> -#define _POSIX_THREADS 1
> -#define _POSIX_THREAD_PRIORITY_SCHEDULING 1
> +#define _POSIX_THREADS 1
> +#define _POSIX_THREAD_PRIORITY_SCHEDULING 1
> #endif
>
> -
> #ifdef __svr4__
> -# define _POSIX_JOB_CONTROL 1
> -# define _POSIX_SAVED_IDS 1
> -# define _POSIX_VERSION 199009L
> +#define _POSIX_JOB_CONTROL 1
> +#define _POSIX_SAVED_IDS 1
> +#define _POSIX_VERSION 199009L
> #endif
>
> #ifdef __CYGWIN__
>
> #if __POSIX_VISIBLE >= 202405
> -#define _POSIX_VERSION 202405L
> -#define _POSIX2_VERSION 202405L
> +#define _POSIX_VERSION 202405L
> +#define _POSIX2_VERSION 202405L
> #elif __POSIX_VISIBLE >= 200809
> -#define _POSIX_VERSION 200809L
> -#define _POSIX2_VERSION 200809L
> +#define _POSIX_VERSION 200809L
> +#define _POSIX2_VERSION 200809L
> #elif __POSIX_VISIBLE >= 200112
> -#define _POSIX_VERSION 200112L
> -#define _POSIX2_VERSION 200112L
> +#define _POSIX_VERSION 200112L
> +#define _POSIX2_VERSION 200112L
> #elif __POSIX_VISIBLE >= 199506
> -#define _POSIX_VERSION 199506L
> -#define _POSIX2_VERSION 199506L
> +#define _POSIX_VERSION 199506L
> +#define _POSIX2_VERSION 199506L
> #elif __POSIX_VISIBLE >= 199309
> -#define _POSIX_VERSION 199309L
> -#define _POSIX2_VERSION 199209L
> +#define _POSIX_VERSION 199309L
> +#define _POSIX2_VERSION 199209L
> #elif __POSIX_VISIBLE >= 199209
> -#define _POSIX_VERSION 199009L
> -#define _POSIX2_VERSION 199209L
> +#define _POSIX_VERSION 199009L
> +#define _POSIX2_VERSION 199209L
> #elif __POSIX_VISIBLE
> -#define _POSIX_VERSION 199009L
> +#define _POSIX_VERSION 199009L
> #endif
> #if __XSI_VISIBLE >= 4
> -#define _XOPEN_VERSION __XSI_VISIBLE
> +#define _XOPEN_VERSION __XSI_VISIBLE
> #endif
>
> -#define _POSIX_ADVISORY_INFO 200809L
> -#define _POSIX_ASYNCHRONOUS_IO 200809L
> -#define _POSIX_BARRIERS 200809L
> -#define _POSIX_CHOWN_RESTRICTED 1
> -#define _POSIX_CLOCK_SELECTION 200809L
> -#define _POSIX_CPUTIME 200809L
> -#define _POSIX_FSYNC 200809L
> -#define _POSIX_IPV6 200809L
> -#define _POSIX_JOB_CONTROL 1
> -#define _POSIX_MAPPED_FILES 200809L
> +#define _POSIX_ADVISORY_INFO 200809L
> +#define _POSIX_ASYNCHRONOUS_IO 200809L
> +#define _POSIX_BARRIERS 200809L
> +#define _POSIX_CHOWN_RESTRICTED 1
> +#define _POSIX_CLOCK_SELECTION 200809L
> +#define _POSIX_CPUTIME 200809L
> +#define _POSIX_FSYNC 200809L
> +#define _POSIX_IPV6 200809L
> +#define _POSIX_JOB_CONTROL 1
> +#define _POSIX_MAPPED_FILES 200809L
> /* #define _POSIX_MEMLOCK -1 */
> -#define _POSIX_MEMLOCK_RANGE 200809L
> -#define _POSIX_MEMORY_PROTECTION 200809L
> -#define _POSIX_MESSAGE_PASSING 200809L
> -#define _POSIX_MONOTONIC_CLOCK 200809L
> -#define _POSIX_NO_TRUNC 1
> +#define _POSIX_MEMLOCK_RANGE 200809L
> +#define _POSIX_MEMORY_PROTECTION 200809L
> +#define _POSIX_MESSAGE_PASSING 200809L
> +#define _POSIX_MONOTONIC_CLOCK 200809L
> +#define _POSIX_NO_TRUNC 1
> /* #define _POSIX_PRIORITIZED_IO -1 */
> -#define _POSIX_PRIORITY_SCHEDULING 200809L
> -#define _POSIX_RAW_SOCKETS 200809L
> -#define _POSIX_READER_WRITER_LOCKS 200809L
> -#define _POSIX_REALTIME_SIGNALS 200809L
> -#define _POSIX_REGEXP 1
> -#define _POSIX_SAVED_IDS 1
> -#define _POSIX_SEMAPHORES 200809L
> -#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
> -#define _POSIX_SHELL 1
> -#define _POSIX_SPAWN 200809L
> -#define _POSIX_SPIN_LOCKS 200809L
> +#define _POSIX_PRIORITY_SCHEDULING 200809L
> +#define _POSIX_RAW_SOCKETS 200809L
> +#define _POSIX_READER_WRITER_LOCKS 200809L
> +#define _POSIX_REALTIME_SIGNALS 200809L
> +#define _POSIX_REGEXP 1
> +#define _POSIX_SAVED_IDS 1
> +#define _POSIX_SEMAPHORES 200809L
> +#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
> +#define _POSIX_SHELL 1
> +#define _POSIX_SPAWN 200809L
> +#define _POSIX_SPIN_LOCKS 200809L
> /* #define _POSIX_SPORADIC_SERVER -1 */
> -#define _POSIX_SYNCHRONIZED_IO 200809L
> -#define _POSIX_THREAD_ATTR_STACKADDR 200809L
> -#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
> -#define _POSIX_THREAD_CPUTIME 200809L
> +#define _POSIX_SYNCHRONIZED_IO 200809L
> +#define _POSIX_THREAD_ATTR_STACKADDR 200809L
> +#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
> +#define _POSIX_THREAD_CPUTIME 200809L
> /* #define _POSIX_THREAD_PRIO_INHERIT -1 */
> /* #define _POSIX_THREAD_PRIO_PROTECT -1 */
> -#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
> -#define _POSIX_THREAD_PROCESS_SHARED 200809L
> -#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
> +#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
> +#define _POSIX_THREAD_PROCESS_SHARED 200809L
> +#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
> /* #define _POSIX_THREAD_SPORADIC_SERVER -1 */
> -#define _POSIX_THREADS 200809L
> -#define _POSIX_TIMEOUTS 200809L
> -#define _POSIX_TIMERS 200809L
> +#define _POSIX_THREADS 200809L
> +#define _POSIX_TIMEOUTS 200809L
> +#define _POSIX_TIMERS 200809L
> /* #define _POSIX_TRACE -1 */
> /* #define _POSIX_TRACE_EVENT_FILTER -1 */
> /* #define _POSIX_TRACE_INHERIT -1 */
> /* #define _POSIX_TRACE_LOG -1 */
> /* #define _POSIX_TYPED_MEMORY_OBJECTS -1 */
> -#define _POSIX_VDISABLE '\0'
> +#define _POSIX_VDISABLE '\0'
>
> #if __POSIX_VISIBLE >= 2
> -#define _POSIX2_C_VERSION _POSIX2_VERSION
> -#define _POSIX2_C_BIND _POSIX2_VERSION
> -#define _POSIX2_C_DEV _POSIX2_VERSION
> -#define _POSIX2_CHAR_TERM _POSIX2_VERSION
> +#define _POSIX2_C_VERSION _POSIX2_VERSION
> +#define _POSIX2_C_BIND _POSIX2_VERSION
> +#define _POSIX2_C_DEV _POSIX2_VERSION
> +#define _POSIX2_CHAR_TERM _POSIX2_VERSION
> /* #define _POSIX2_FORT_DEV -1 */
> /* #define _POSIX2_FORT_RUN -1 */
> /* #define _POSIX2_LOCALEDEF -1 */
> @@ -529,36 +526,36 @@ extern "C" {
> /* #define _POSIX2_PBS_LOCATE -1 */
> /* #define _POSIX2_PBS_MESSAGE -1 */
> /* #define _POSIX2_PBS_TRACK -1 */
> -#define _POSIX2_SW_DEV _POSIX2_VERSION
> -#define _POSIX2_UPE _POSIX2_VERSION
> +#define _POSIX2_SW_DEV _POSIX2_VERSION
> +#define _POSIX2_UPE _POSIX2_VERSION
> #endif /* __POSIX_VISIBLE >= 2 */
>
> -#define _POSIX_V6_ILP32_OFF32 -1
> +#define _POSIX_V6_ILP32_OFF32 -1
> #ifdef __LP64__
> -#define _POSIX_V6_ILP32_OFFBIG -1
> -#define _POSIX_V6_LP64_OFF64 1
> -#define _POSIX_V6_LPBIG_OFFBIG 1
> +#define _POSIX_V6_ILP32_OFFBIG -1
> +#define _POSIX_V6_LP64_OFF64 1
> +#define _POSIX_V6_LPBIG_OFFBIG 1
> #else
> -#define _POSIX_V6_ILP32_OFFBIG 1
> -#define _POSIX_V6_LP64_OFF64 -1
> -#define _POSIX_V6_LPBIG_OFFBIG -1
> +#define _POSIX_V6_ILP32_OFFBIG 1
> +#define _POSIX_V6_LP64_OFF64 -1
> +#define _POSIX_V6_LPBIG_OFFBIG -1
> #endif
> -#define _POSIX_V7_ILP32_OFF32 _POSIX_V6_ILP32_OFF32
> -#define _POSIX_V7_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG
> -#define _POSIX_V7_LP64_OFF64 _POSIX_V6_LP64_OFF64
> -#define _POSIX_V7_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG
> -#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32
> -#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG
> -#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64
> -#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG
> +#define _POSIX_V7_ILP32_OFF32 _POSIX_V6_ILP32_OFF32
> +#define _POSIX_V7_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG
> +#define _POSIX_V7_LP64_OFF64 _POSIX_V6_LP64_OFF64
> +#define _POSIX_V7_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG
> +#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32
> +#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG
> +#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64
> +#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG
>
> #if __XSI_VISIBLE
> -#define _XOPEN_CRYPT 1
> -#define _XOPEN_ENH_I18N 1
> +#define _XOPEN_CRYPT 1
> +#define _XOPEN_ENH_I18N 1
> /* #define _XOPEN_LEGACY -1 */
> /* #define _XOPEN_REALTIME -1 */
> /* #define _XOPEN_REALTIME_THREADS -1 */
> -#define _XOPEN_SHM 1
> +#define _XOPEN_SHM 1
> /* #define _XOPEN_STREAMS -1 */
> /* #define _XOPEN_UNIX -1 */
> #endif /* __XSI_VISIBLE */
> --
> 2.51.2
>
>
@@ -29,16 +29,15 @@ extern "C" {
/* Macro to test version of GCC. Returns 0 for non-GCC or too old GCC. */
#ifndef __GNUC_PREREQ
-# if defined __GNUC__ && defined __GNUC_MINOR__
-# define __GNUC_PREREQ(maj, min) \
- ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-# else
-# define __GNUC_PREREQ(maj, min) 0
-# endif
+#if defined __GNUC__ && defined __GNUC_MINOR__
+#define __GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+#define __GNUC_PREREQ(maj, min) 0
+#endif
#endif /* __GNUC_PREREQ */
/* Version with trailing underscores for BSD compatibility. */
-#define __GNUC_PREREQ__(ma, mi) __GNUC_PREREQ(ma, mi)
-
+#define __GNUC_PREREQ__(ma, mi) __GNUC_PREREQ(ma, mi)
/*
* Feature test macros control which symbols are exposed by the system
@@ -105,7 +104,7 @@ extern "C" {
* _BSD_SOURCE (deprecated by _DEFAULT_SOURCE)
* _SVID_SOURCE (deprecated by _DEFAULT_SOURCE)
* _DEFAULT_SOURCE (or none of the above)
- * POSIX-1.2008 with BSD and SVr4 extensions
+ * POSIX.1-2024 with BSD and SVr4 extensions
*
* _FORTIFY_SOURCE = 1, 2 or 3
* Object Size Checking function wrappers
@@ -113,65 +112,65 @@ extern "C" {
/* Remap the old name _ISOC2X_SOURCE to _ISOC23_SOURCE. */
#ifdef _ISOC2X_SOURCE
-# undef _ISOC2X_SOURCE
-# undef _ISOC23_SOURCE
-# define _ISOC23_SOURCE 1
+#undef _ISOC2X_SOURCE
+#undef _ISOC23_SOURCE
+#define _ISOC23_SOURCE 1
#endif
#ifdef _GNU_SOURCE
#undef _ATFILE_SOURCE
-#define _ATFILE_SOURCE 1
-#undef _DEFAULT_SOURCE
-#define _DEFAULT_SOURCE 1
+#define _ATFILE_SOURCE 1
+#undef _DEFAULT_SOURCE
+#define _DEFAULT_SOURCE 1
#undef _ISOC99_SOURCE
-#define _ISOC99_SOURCE 1
+#define _ISOC99_SOURCE 1
#undef _ISOC11_SOURCE
-#define _ISOC11_SOURCE 1
+#define _ISOC11_SOURCE 1
#undef _ISOC23_SOURCE
-#define _ISOC23_SOURCE 1
+#define _ISOC23_SOURCE 1
#undef _POSIX_SOURCE
-#define _POSIX_SOURCE 1
+#define _POSIX_SOURCE 1
#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200809L
+#define _POSIX_C_SOURCE 202405L
#undef _XOPEN_SOURCE
-#define _XOPEN_SOURCE 700
+#define _XOPEN_SOURCE 700
#undef _XOPEN_SOURCE_EXTENDED
-#define _XOPEN_SOURCE_EXTENDED 1
+#define _XOPEN_SOURCE_EXTENDED 1
#endif /* _GNU_SOURCE */
-#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || \
- (!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE) && \
- !defined(_ISOC99_SOURCE) && !defined(_POSIX_SOURCE) && \
- !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))
+#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || \
+ (!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE) && \
+ !defined(_ISOC99_SOURCE) && !defined(_POSIX_SOURCE) && \
+ !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))
#undef _DEFAULT_SOURCE
-#define _DEFAULT_SOURCE 1
+#define _DEFAULT_SOURCE 1
#endif
#if defined(_DEFAULT_SOURCE)
#undef _POSIX_SOURCE
-#define _POSIX_SOURCE 1
+#define _POSIX_SOURCE 1
#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 202405L
+#define _POSIX_C_SOURCE 202405L
#endif
-#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && \
- ((!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE)) || \
- (_XOPEN_SOURCE - 0) >= 500)
-#define _POSIX_SOURCE 1
+#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && \
+ ((!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE)) || \
+ (_XOPEN_SOURCE - 0) >= 500)
+#define _POSIX_SOURCE 1
#if !defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE - 0) >= 700
-#define _POSIX_C_SOURCE 200809L
+#define _POSIX_C_SOURCE 200809L
#elif (_XOPEN_SOURCE - 0) >= 600
-#define _POSIX_C_SOURCE 200112L
+#define _POSIX_C_SOURCE 200112L
#elif (_XOPEN_SOURCE - 0) >= 500
-#define _POSIX_C_SOURCE 199506L
+#define _POSIX_C_SOURCE 199506L
#elif (_XOPEN_SOURCE - 0) < 500
-#define _POSIX_C_SOURCE 2
+#define _POSIX_C_SOURCE 2
#endif
#endif
#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809
#undef _ATFILE_SOURCE
-#define _ATFILE_SOURCE 1
+#define _ATFILE_SOURCE 1
#endif
/*
@@ -268,102 +267,102 @@ extern "C" {
*/
#ifdef _ATFILE_SOURCE
-#define __ATFILE_VISIBLE 1
+#define __ATFILE_VISIBLE 1
#else
-#define __ATFILE_VISIBLE 0
+#define __ATFILE_VISIBLE 0
#endif
#ifdef _DEFAULT_SOURCE
-#define __BSD_VISIBLE 1
+#define __BSD_VISIBLE 1
#else
-#define __BSD_VISIBLE 0
+#define __BSD_VISIBLE 0
#endif
#ifdef _GNU_SOURCE
-#define __GNU_VISIBLE 1
+#define __GNU_VISIBLE 1
#else
-#define __GNU_VISIBLE 0
+#define __GNU_VISIBLE 0
#endif
-#if defined(_ISOC23_SOURCE) || \
- (__STDC_VERSION__ - 0) > 201710L || (__cplusplus - 0) >= 202002L
-#define __ISO_C_VISIBLE 2020
-#elif defined(_ISOC11_SOURCE) || \
- (__STDC_VERSION__ - 0) >= 201112L || (__cplusplus - 0) >= 201103L
-#define __ISO_C_VISIBLE 2011
-#elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L || \
- (__STDC_VERSION__ - 0) >= 199901L || defined(__cplusplus)
-#define __ISO_C_VISIBLE 1999
+#if defined(_ISOC23_SOURCE) || (__STDC_VERSION__ - 0) > 201710L || \
+ (__cplusplus - 0) >= 202002L
+#define __ISO_C_VISIBLE 2020
+#elif defined(_ISOC11_SOURCE) || (__STDC_VERSION__ - 0) >= 201112L || \
+ (__cplusplus - 0) >= 201103L
+#define __ISO_C_VISIBLE 2011
+#elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L || \
+ (__STDC_VERSION__ - 0) >= 199901L || defined(__cplusplus)
+#define __ISO_C_VISIBLE 1999
#else
-#define __ISO_C_VISIBLE 1990
+#define __ISO_C_VISIBLE 1990
#endif
#if defined(_LARGEFILE_SOURCE) || (_XOPEN_SOURCE - 0) >= 500
-#define __LARGEFILE_VISIBLE 1
+#define __LARGEFILE_VISIBLE 1
#else
-#define __LARGEFILE_VISIBLE 0
+#define __LARGEFILE_VISIBLE 0
#endif
#ifdef _DEFAULT_SOURCE
-#define __MISC_VISIBLE 1
+#define __MISC_VISIBLE 1
#else
-#define __MISC_VISIBLE 0
+#define __MISC_VISIBLE 0
#endif
#if (_POSIX_C_SOURCE - 0) >= 202405L
-#define __POSIX_VISIBLE 202405
+#define __POSIX_VISIBLE 202405
#elif (_POSIX_C_SOURCE - 0) >= 200809L
-#define __POSIX_VISIBLE 200809
+#define __POSIX_VISIBLE 200809
#elif (_POSIX_C_SOURCE - 0) >= 200112L
-#define __POSIX_VISIBLE 200112
+#define __POSIX_VISIBLE 200112
#elif (_POSIX_C_SOURCE - 0) >= 199506L
-#define __POSIX_VISIBLE 199506
+#define __POSIX_VISIBLE 199506
#elif (_POSIX_C_SOURCE - 0) >= 199309L
-#define __POSIX_VISIBLE 199309
+#define __POSIX_VISIBLE 199309
#elif (_POSIX_C_SOURCE - 0) >= 2 || defined(_XOPEN_SOURCE)
-#define __POSIX_VISIBLE 199209
+#define __POSIX_VISIBLE 199209
#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
-#define __POSIX_VISIBLE 199009
+#define __POSIX_VISIBLE 199009
#else
-#define __POSIX_VISIBLE 0
+#define __POSIX_VISIBLE 0
#endif
#ifdef _DEFAULT_SOURCE
-#define __SVID_VISIBLE 1
+#define __SVID_VISIBLE 1
#else
-#define __SVID_VISIBLE 0
+#define __SVID_VISIBLE 0
#endif
#if (_XOPEN_SOURCE - 0) >= 700
-#define __XSI_VISIBLE 700
+#define __XSI_VISIBLE 700
#elif (_XOPEN_SOURCE - 0) >= 600
-#define __XSI_VISIBLE 600
+#define __XSI_VISIBLE 600
#elif (_XOPEN_SOURCE - 0) >= 500
-#define __XSI_VISIBLE 500
+#define __XSI_VISIBLE 500
#elif defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)
-#define __XSI_VISIBLE 4
+#define __XSI_VISIBLE 4
#elif defined(_XOPEN_SOURCE)
-#define __XSI_VISIBLE 1
+#define __XSI_VISIBLE 1
#else
-#define __XSI_VISIBLE 0
+#define __XSI_VISIBLE 0
#endif
-#if _FORTIFY_SOURCE > 0 && !defined(__cplusplus) && !defined(__lint__) && \
- (__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1) && \
- !defined(_LIBC)
-# if _FORTIFY_SOURCE > 2 && defined(__has_builtin)
-# if __has_builtin(__builtin_dynamic_object_size)
-# define __SSP_FORTIFY_LEVEL 3
-# else
-# define __SSP_FORTIFY_LEVEL 2
-# endif
-# elif _FORTIFY_SOURCE > 1
-# define __SSP_FORTIFY_LEVEL 2
-# else
-# define __SSP_FORTIFY_LEVEL 1
-# endif
+#if _FORTIFY_SOURCE > 0 && !defined(__cplusplus) && !defined(__lint__) && \
+ (__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1) && \
+ !defined(_LIBC)
+#if _FORTIFY_SOURCE > 2 && defined(__has_builtin)
+#if __has_builtin(__builtin_dynamic_object_size)
+#define __SSP_FORTIFY_LEVEL 3
#else
-# define __SSP_FORTIFY_LEVEL 0
+#define __SSP_FORTIFY_LEVEL 2
+#endif
+#elif _FORTIFY_SOURCE > 1
+#define __SSP_FORTIFY_LEVEL 2
+#else
+#define __SSP_FORTIFY_LEVEL 1
+#endif
+#else
+#define __SSP_FORTIFY_LEVEL 0
#endif
/*
@@ -374,152 +373,150 @@ extern "C" {
#ifdef __rtems__
/* #define _POSIX_JOB_CONTROL 1 */
/* #define _POSIX_SAVED_IDS 1 */
-#define _POSIX_VERSION 199309L
-#define _POSIX_ASYNCHRONOUS_IO 1
-#define _POSIX_FSYNC 1
-#define _POSIX_MAPPED_FILES 1
+#define _POSIX_VERSION 199309L
+#define _POSIX_ASYNCHRONOUS_IO 1
+#define _POSIX_FSYNC 1
+#define _POSIX_MAPPED_FILES 1
/* #define _POSIX_MEMLOCK 1 */
/* #define _POSIX_MEMLOCK_RANGE 1 */
/* #define _POSIX_MEMORY_PROTECTION 1 */
-#define _POSIX_MESSAGE_PASSING 1
-#define _POSIX_MONOTONIC_CLOCK 200112L
-#define _POSIX_CLOCK_SELECTION 200112L
-#define _POSIX_PRIORITIZED_IO 1
-#define _POSIX_PRIORITY_SCHEDULING 1
-#define _POSIX_REALTIME_SIGNALS 1
-#define _POSIX_SEMAPHORES 1
-#define _POSIX_SHARED_MEMORY_OBJECTS 1
-#define _POSIX_SYNCHRONIZED_IO 1
-#define _POSIX_TIMERS 1
-#define _POSIX_BARRIERS 200112L
-#define _POSIX_READER_WRITER_LOCKS 200112L
-#define _POSIX_SPIN_LOCKS 200112L
-
+#define _POSIX_MESSAGE_PASSING 1
+#define _POSIX_MONOTONIC_CLOCK 200112L
+#define _POSIX_CLOCK_SELECTION 200112L
+#define _POSIX_PRIORITIZED_IO 1
+#define _POSIX_PRIORITY_SCHEDULING 1
+#define _POSIX_REALTIME_SIGNALS 1
+#define _POSIX_SEMAPHORES 1
+#define _POSIX_SHARED_MEMORY_OBJECTS 1
+#define _POSIX_SYNCHRONIZED_IO 1
+#define _POSIX_TIMERS 1
+#define _POSIX_BARRIERS 200112L
+#define _POSIX_READER_WRITER_LOCKS 200112L
+#define _POSIX_SPIN_LOCKS 200112L
/* In P1003.1b but defined by drafts at least as early as P1003.1c/D10 */
-#define _POSIX_THREADS 1
-#define _POSIX_THREAD_ATTR_STACKADDR 1
-#define _POSIX_THREAD_ATTR_STACKSIZE 1
-#define _POSIX_THREAD_PRIORITY_SCHEDULING 1
-#define _POSIX_THREAD_PRIO_INHERIT 1
-#define _POSIX_THREAD_PRIO_PROTECT 1
-#define _POSIX_THREAD_PROCESS_SHARED 1
-#define _POSIX_THREAD_SAFE_FUNCTIONS 1
+#define _POSIX_THREADS 1
+#define _POSIX_THREAD_ATTR_STACKADDR 1
+#define _POSIX_THREAD_ATTR_STACKSIZE 1
+#define _POSIX_THREAD_PRIORITY_SCHEDULING 1
+#define _POSIX_THREAD_PRIO_INHERIT 1
+#define _POSIX_THREAD_PRIO_PROTECT 1
+#define _POSIX_THREAD_PROCESS_SHARED 1
+#define _POSIX_THREAD_SAFE_FUNCTIONS 1
/* P1003.4b/D8 defines the constants below this comment. */
-#define _POSIX_SPAWN 1
-#define _POSIX_TIMEOUTS 1
-#define _POSIX_CPUTIME 1
-#define _POSIX_THREAD_CPUTIME 1
-#define _POSIX_SPORADIC_SERVER 1
-#define _POSIX_THREAD_SPORADIC_SERVER 1
-#define _POSIX_DEVICE_CONTROL 1
-#define _POSIX_DEVCTL_DIRECTION 1
-#define _POSIX_INTERRUPT_CONTROL 1
-#define _POSIX_ADVISORY_INFO 1
+#define _POSIX_SPAWN 1
+#define _POSIX_TIMEOUTS 1
+#define _POSIX_CPUTIME 1
+#define _POSIX_THREAD_CPUTIME 1
+#define _POSIX_SPORADIC_SERVER 1
+#define _POSIX_THREAD_SPORADIC_SERVER 1
+#define _POSIX_DEVICE_CONTROL 1
+#define _POSIX_DEVCTL_DIRECTION 1
+#define _POSIX_INTERRUPT_CONTROL 1
+#define _POSIX_ADVISORY_INFO 1
/* UNIX98 added some new pthread mutex attributes */
-#define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1
+#define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1
/* POSIX 1003.26-2003 defined device control method */
-#define _POSIX_26_VERSION 200312L
+#define _POSIX_26_VERSION 200312L
#endif
/* XMK loosely adheres to POSIX -- 1003.1 */
#ifdef __XMK__
-#define _POSIX_THREADS 1
-#define _POSIX_THREAD_PRIORITY_SCHEDULING 1
+#define _POSIX_THREADS 1
+#define _POSIX_THREAD_PRIORITY_SCHEDULING 1
#endif
-
#ifdef __svr4__
-# define _POSIX_JOB_CONTROL 1
-# define _POSIX_SAVED_IDS 1
-# define _POSIX_VERSION 199009L
+#define _POSIX_JOB_CONTROL 1
+#define _POSIX_SAVED_IDS 1
+#define _POSIX_VERSION 199009L
#endif
#ifdef __CYGWIN__
#if __POSIX_VISIBLE >= 202405
-#define _POSIX_VERSION 202405L
-#define _POSIX2_VERSION 202405L
+#define _POSIX_VERSION 202405L
+#define _POSIX2_VERSION 202405L
#elif __POSIX_VISIBLE >= 200809
-#define _POSIX_VERSION 200809L
-#define _POSIX2_VERSION 200809L
+#define _POSIX_VERSION 200809L
+#define _POSIX2_VERSION 200809L
#elif __POSIX_VISIBLE >= 200112
-#define _POSIX_VERSION 200112L
-#define _POSIX2_VERSION 200112L
+#define _POSIX_VERSION 200112L
+#define _POSIX2_VERSION 200112L
#elif __POSIX_VISIBLE >= 199506
-#define _POSIX_VERSION 199506L
-#define _POSIX2_VERSION 199506L
+#define _POSIX_VERSION 199506L
+#define _POSIX2_VERSION 199506L
#elif __POSIX_VISIBLE >= 199309
-#define _POSIX_VERSION 199309L
-#define _POSIX2_VERSION 199209L
+#define _POSIX_VERSION 199309L
+#define _POSIX2_VERSION 199209L
#elif __POSIX_VISIBLE >= 199209
-#define _POSIX_VERSION 199009L
-#define _POSIX2_VERSION 199209L
+#define _POSIX_VERSION 199009L
+#define _POSIX2_VERSION 199209L
#elif __POSIX_VISIBLE
-#define _POSIX_VERSION 199009L
+#define _POSIX_VERSION 199009L
#endif
#if __XSI_VISIBLE >= 4
-#define _XOPEN_VERSION __XSI_VISIBLE
+#define _XOPEN_VERSION __XSI_VISIBLE
#endif
-#define _POSIX_ADVISORY_INFO 200809L
-#define _POSIX_ASYNCHRONOUS_IO 200809L
-#define _POSIX_BARRIERS 200809L
-#define _POSIX_CHOWN_RESTRICTED 1
-#define _POSIX_CLOCK_SELECTION 200809L
-#define _POSIX_CPUTIME 200809L
-#define _POSIX_FSYNC 200809L
-#define _POSIX_IPV6 200809L
-#define _POSIX_JOB_CONTROL 1
-#define _POSIX_MAPPED_FILES 200809L
+#define _POSIX_ADVISORY_INFO 200809L
+#define _POSIX_ASYNCHRONOUS_IO 200809L
+#define _POSIX_BARRIERS 200809L
+#define _POSIX_CHOWN_RESTRICTED 1
+#define _POSIX_CLOCK_SELECTION 200809L
+#define _POSIX_CPUTIME 200809L
+#define _POSIX_FSYNC 200809L
+#define _POSIX_IPV6 200809L
+#define _POSIX_JOB_CONTROL 1
+#define _POSIX_MAPPED_FILES 200809L
/* #define _POSIX_MEMLOCK -1 */
-#define _POSIX_MEMLOCK_RANGE 200809L
-#define _POSIX_MEMORY_PROTECTION 200809L
-#define _POSIX_MESSAGE_PASSING 200809L
-#define _POSIX_MONOTONIC_CLOCK 200809L
-#define _POSIX_NO_TRUNC 1
+#define _POSIX_MEMLOCK_RANGE 200809L
+#define _POSIX_MEMORY_PROTECTION 200809L
+#define _POSIX_MESSAGE_PASSING 200809L
+#define _POSIX_MONOTONIC_CLOCK 200809L
+#define _POSIX_NO_TRUNC 1
/* #define _POSIX_PRIORITIZED_IO -1 */
-#define _POSIX_PRIORITY_SCHEDULING 200809L
-#define _POSIX_RAW_SOCKETS 200809L
-#define _POSIX_READER_WRITER_LOCKS 200809L
-#define _POSIX_REALTIME_SIGNALS 200809L
-#define _POSIX_REGEXP 1
-#define _POSIX_SAVED_IDS 1
-#define _POSIX_SEMAPHORES 200809L
-#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
-#define _POSIX_SHELL 1
-#define _POSIX_SPAWN 200809L
-#define _POSIX_SPIN_LOCKS 200809L
+#define _POSIX_PRIORITY_SCHEDULING 200809L
+#define _POSIX_RAW_SOCKETS 200809L
+#define _POSIX_READER_WRITER_LOCKS 200809L
+#define _POSIX_REALTIME_SIGNALS 200809L
+#define _POSIX_REGEXP 1
+#define _POSIX_SAVED_IDS 1
+#define _POSIX_SEMAPHORES 200809L
+#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
+#define _POSIX_SHELL 1
+#define _POSIX_SPAWN 200809L
+#define _POSIX_SPIN_LOCKS 200809L
/* #define _POSIX_SPORADIC_SERVER -1 */
-#define _POSIX_SYNCHRONIZED_IO 200809L
-#define _POSIX_THREAD_ATTR_STACKADDR 200809L
-#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
-#define _POSIX_THREAD_CPUTIME 200809L
+#define _POSIX_SYNCHRONIZED_IO 200809L
+#define _POSIX_THREAD_ATTR_STACKADDR 200809L
+#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
+#define _POSIX_THREAD_CPUTIME 200809L
/* #define _POSIX_THREAD_PRIO_INHERIT -1 */
/* #define _POSIX_THREAD_PRIO_PROTECT -1 */
-#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
-#define _POSIX_THREAD_PROCESS_SHARED 200809L
-#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
+#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
+#define _POSIX_THREAD_PROCESS_SHARED 200809L
+#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
/* #define _POSIX_THREAD_SPORADIC_SERVER -1 */
-#define _POSIX_THREADS 200809L
-#define _POSIX_TIMEOUTS 200809L
-#define _POSIX_TIMERS 200809L
+#define _POSIX_THREADS 200809L
+#define _POSIX_TIMEOUTS 200809L
+#define _POSIX_TIMERS 200809L
/* #define _POSIX_TRACE -1 */
/* #define _POSIX_TRACE_EVENT_FILTER -1 */
/* #define _POSIX_TRACE_INHERIT -1 */
/* #define _POSIX_TRACE_LOG -1 */
/* #define _POSIX_TYPED_MEMORY_OBJECTS -1 */
-#define _POSIX_VDISABLE '\0'
+#define _POSIX_VDISABLE '\0'
#if __POSIX_VISIBLE >= 2
-#define _POSIX2_C_VERSION _POSIX2_VERSION
-#define _POSIX2_C_BIND _POSIX2_VERSION
-#define _POSIX2_C_DEV _POSIX2_VERSION
-#define _POSIX2_CHAR_TERM _POSIX2_VERSION
+#define _POSIX2_C_VERSION _POSIX2_VERSION
+#define _POSIX2_C_BIND _POSIX2_VERSION
+#define _POSIX2_C_DEV _POSIX2_VERSION
+#define _POSIX2_CHAR_TERM _POSIX2_VERSION
/* #define _POSIX2_FORT_DEV -1 */
/* #define _POSIX2_FORT_RUN -1 */
/* #define _POSIX2_LOCALEDEF -1 */
@@ -529,36 +526,36 @@ extern "C" {
/* #define _POSIX2_PBS_LOCATE -1 */
/* #define _POSIX2_PBS_MESSAGE -1 */
/* #define _POSIX2_PBS_TRACK -1 */
-#define _POSIX2_SW_DEV _POSIX2_VERSION
-#define _POSIX2_UPE _POSIX2_VERSION
+#define _POSIX2_SW_DEV _POSIX2_VERSION
+#define _POSIX2_UPE _POSIX2_VERSION
#endif /* __POSIX_VISIBLE >= 2 */
-#define _POSIX_V6_ILP32_OFF32 -1
+#define _POSIX_V6_ILP32_OFF32 -1
#ifdef __LP64__
-#define _POSIX_V6_ILP32_OFFBIG -1
-#define _POSIX_V6_LP64_OFF64 1
-#define _POSIX_V6_LPBIG_OFFBIG 1
+#define _POSIX_V6_ILP32_OFFBIG -1
+#define _POSIX_V6_LP64_OFF64 1
+#define _POSIX_V6_LPBIG_OFFBIG 1
#else
-#define _POSIX_V6_ILP32_OFFBIG 1
-#define _POSIX_V6_LP64_OFF64 -1
-#define _POSIX_V6_LPBIG_OFFBIG -1
+#define _POSIX_V6_ILP32_OFFBIG 1
+#define _POSIX_V6_LP64_OFF64 -1
+#define _POSIX_V6_LPBIG_OFFBIG -1
#endif
-#define _POSIX_V7_ILP32_OFF32 _POSIX_V6_ILP32_OFF32
-#define _POSIX_V7_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG
-#define _POSIX_V7_LP64_OFF64 _POSIX_V6_LP64_OFF64
-#define _POSIX_V7_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG
-#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32
-#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG
-#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64
-#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG
+#define _POSIX_V7_ILP32_OFF32 _POSIX_V6_ILP32_OFF32
+#define _POSIX_V7_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG
+#define _POSIX_V7_LP64_OFF64 _POSIX_V6_LP64_OFF64
+#define _POSIX_V7_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG
+#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32
+#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG
+#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64
+#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG
#if __XSI_VISIBLE
-#define _XOPEN_CRYPT 1
-#define _XOPEN_ENH_I18N 1
+#define _XOPEN_CRYPT 1
+#define _XOPEN_ENH_I18N 1
/* #define _XOPEN_LEGACY -1 */
/* #define _XOPEN_REALTIME -1 */
/* #define _XOPEN_REALTIME_THREADS -1 */
-#define _XOPEN_SHM 1
+#define _XOPEN_SHM 1
/* #define _XOPEN_STREAMS -1 */
/* #define _XOPEN_UNIX -1 */
#endif /* __XSI_VISIBLE */