[PATCH 1/2] conform: Add initial support for POSIX.1-2024

Collin Funk collin.funk1@gmail.com
Thu Feb 26 04:00:26 GMT 2026


Make POSIX.1-2024 checks the same as POSIX.1-2008 using the following
command:

    $ find conform -name '*.h-data' | xargs sed -i \
        -e 's| !defined POSIX2008| !defined POSIX2008 \&\& !defined POSIX2024|g' \
        -e 's| defined POSIX2008| defined POSIX2008 \|\| defined POSIX2024|g' \
        -e 's|ifdef POSIX2008|if defined POSIX2008 \|\| defined POSIX2024|g' \
        -e 's|ifndef POSIX2008|if !defined POSIX2008 \&\& !defined POSIX2024|g'
---
 conform/data/ctype.h-data        |  4 +--
 conform/data/dirent.h-data       |  8 +++---
 conform/data/errno.h-data        |  2 +-
 conform/data/fcntl.h-data        | 10 +++----
 conform/data/fmtmsg.h-data       |  2 +-
 conform/data/fnmatch.h-data      |  2 +-
 conform/data/ftw.h-data          |  2 +-
 conform/data/glob.h-data         |  2 +-
 conform/data/grp.h-data          |  4 +--
 conform/data/iconv.h-data        |  2 +-
 conform/data/langinfo.h-data     |  4 +--
 conform/data/libgen.h-data       |  2 +-
 conform/data/limits.h-data       | 16 +++++------
 conform/data/locale.h-data       |  6 ++---
 conform/data/math.h-data         |  8 +++---
 conform/data/monetary.h-data     |  4 +--
 conform/data/mqueue.h-data       |  4 +--
 conform/data/ndbm.h-data         |  2 +-
 conform/data/netdb.h-data        |  2 +-
 conform/data/netinet/tcp.h-data  |  2 +-
 conform/data/pthread.h-data      | 10 +++----
 conform/data/pwd.h-data          |  4 +--
 conform/data/regex.h-data        |  2 +-
 conform/data/sched.h-data        |  2 +-
 conform/data/search.h-data       |  2 +-
 conform/data/semaphore.h-data    |  2 +-
 conform/data/setjmp.h-data       |  4 +--
 conform/data/signal.h-data       | 34 +++++++++++------------
 conform/data/spawn.h-data        |  2 +-
 conform/data/stdarg.h-data       |  2 +-
 conform/data/stdio.h-data        | 32 +++++++++++-----------
 conform/data/stdlib.h-data       | 46 ++++++++++++++++----------------
 conform/data/string.h-data       | 22 +++++++--------
 conform/data/strings.h-data      |  8 +++---
 conform/data/sys/ipc.h-data      |  2 +-
 conform/data/sys/msg.h-data      |  2 +-
 conform/data/sys/resource.h-data |  2 +-
 conform/data/sys/select.h-data   |  2 +-
 conform/data/sys/sem.h-data      |  2 +-
 conform/data/sys/shm.h-data      |  2 +-
 conform/data/sys/socket.h-data   |  4 +--
 conform/data/sys/stat.h-data     | 28 +++++++++----------
 conform/data/sys/time.h-data     |  2 +-
 conform/data/sys/timeb.h-data    |  2 +-
 conform/data/sys/types.h-data    |  4 +--
 conform/data/sys/uio.h-data      |  2 +-
 conform/data/sys/wait.h-data     |  8 +++---
 conform/data/syslog.h-data       |  2 +-
 conform/data/tar.h-data          |  2 +-
 conform/data/termios.h-data      | 12 ++++-----
 conform/data/time.h-data         | 14 +++++-----
 conform/data/ucontext.h-data     |  2 +-
 conform/data/ulimit.h-data       |  2 +-
 conform/data/unistd.h-data       | 46 ++++++++++++++++----------------
 conform/data/utmpx.h-data        |  2 +-
 conform/data/wchar.h-data        | 30 ++++++++++-----------
 conform/data/wctype.h-data       |  4 +--
 conform/data/wordexp.h-data      |  2 +-
 58 files changed, 220 insertions(+), 220 deletions(-)

diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data
index 84426f99fa..6d3541c166 100644
--- a/conform/data/ctype.h-data
+++ b/conform/data/ctype.h-data
@@ -16,7 +16,7 @@ function int toupper (int)
 function int isblank (int)
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int isascii (int)
 function int toascii (int)
 
@@ -25,7 +25,7 @@ function int _toupper (int)
 function int _tolower (int)
 #endif
 
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type locale_t
 
 function int isalnum_l (int, locale_t)
diff --git a/conform/data/dirent.h-data b/conform/data/dirent.h-data
index e7acdebc7b..0b9cb28a03 100644
--- a/conform/data/dirent.h-data
+++ b/conform/data/dirent.h-data
@@ -3,12 +3,12 @@ type DIR
 
 type {struct dirent}
 
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 element {struct dirent} ino_t d_ino
 # endif
 element {struct dirent} char d_name []
 
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 type ino_t
 #endif
 
@@ -17,7 +17,7 @@ function {DIR*} opendir (const char*)
 function {struct dirent*} readdir (DIR*)
 function int readdir_r (DIR*, struct dirent*, struct dirent**)
 function void rewinddir (DIR*)
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void seekdir (DIR*, long int)
 function {long int} telldir (DIR*)
 # endif
@@ -25,7 +25,7 @@ function {long int} telldir (DIR*)
 allow d_*
 allow *_t
 
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int alphasort (const struct dirent**, const struct dirent**)
 function int dirfd (DIR*)
 function int scandir (const char*, struct dirent***, int(*)(const struct dirent*), int(*)(const struct dirent**,const struct dirent **))
diff --git a/conform/data/errno.h-data b/conform/data/errno.h-data
index c7b5f7fdba..a32a2e926d 100644
--- a/conform/data/errno.h-data
+++ b/conform/data/errno.h-data
@@ -122,7 +122,7 @@ macro-int-constant EWOULDBLOCK {int} > 0
 # endif
 macro-int-constant EXDEV {int} > 0
 
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 macro-int-constant ENOTRECOVERABLE {int} > 0
 macro-int-constant EOWNERDEAD {int} > 0
 # endif
diff --git a/conform/data/fcntl.h-data b/conform/data/fcntl.h-data
index 8491ca671d..ad5686999d 100644
--- a/conform/data/fcntl.h-data
+++ b/conform/data/fcntl.h-data
@@ -62,12 +62,12 @@ constant S_IWOTH
 constant S_IXOTH
 constant S_ISUID
 constant S_ISGID
-#if !defined POSIX2008
+#if !defined POSIX2008 && !defined POSIX2024
 constant S_ISVTX
 #endif
 #endif
 
-#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 constant POSIX_FADV_NORMAL
 constant POSIX_FADV_SEQUENTIAL
 constant POSIX_FADV_RANDOM
@@ -96,15 +96,15 @@ type pid_t
 function int creat (const char*, mode_t)
 function int fcntl (int, int, ...)
 function int open (const char*, int, ...)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int openat (int, const char*, int, ...)
 #endif
-#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int posix_fadvise (int, off_t, off_t, int)
 function int posix_fallocate (int, off_t, off_t)
 #endif
 
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 // Bug 18228: O_TTY_INIT, O_EXEC, O_SEARCH missing.
 xfail-constant O_TTY_INIT
 constant O_CLOEXEC
diff --git a/conform/data/fmtmsg.h-data b/conform/data/fmtmsg.h-data
index 16d000365f..949819be07 100644
--- a/conform/data/fmtmsg.h-data
+++ b/conform/data/fmtmsg.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 macro MM_HARD
 constant MM_HARD
 
diff --git a/conform/data/fnmatch.h-data b/conform/data/fnmatch.h-data
index e63a46936d..1b0bffc5a6 100644
--- a/conform/data/fnmatch.h-data
+++ b/conform/data/fnmatch.h-data
@@ -3,7 +3,7 @@ constant FNM_NOMATCH
 constant FNM_PATHNAME
 constant FNM_PERIOD
 constant FNM_NOESCAPE
-#if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 constant FNM_NOSYS
 #endif
 
diff --git a/conform/data/ftw.h-data b/conform/data/ftw.h-data
index 5c8568fd60..6b15a29f5c 100644
--- a/conform/data/ftw.h-data
+++ b/conform/data/ftw.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 # ifndef XPG4
 type {struct FTW}
 element {struct FTW} int base
diff --git a/conform/data/glob.h-data b/conform/data/glob.h-data
index 3b5a99927d..44ea3b6910 100644
--- a/conform/data/glob.h-data
+++ b/conform/data/glob.h-data
@@ -19,7 +19,7 @@ constant GLOB_NOSORT
 constant GLOB_ABORTED
 constant GLOB_NOMATCH
 constant GLOB_NOSPACE
-# if !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX
+# if !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024 && !defined POSIX
 constant GLOB_NOSYS
 # endif
 
diff --git a/conform/data/grp.h-data b/conform/data/grp.h-data
index 428329bbea..0bd182eae8 100644
--- a/conform/data/grp.h-data
+++ b/conform/data/grp.h-data
@@ -11,7 +11,7 @@ element {struct group} {char**} gr_mem
 # ifndef POSIX
 type gid_t
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type size_t
 # endif
 
@@ -19,7 +19,7 @@ function {struct group*} getgrgid (gid_t)
 function {struct group*} getgrnam (const char*)
 function int getgrgid_r (gid_t, struct group*, char *, size_t, struct group**)
 function int getgrnam_r (const char *, struct group *, char *, size_t, struct group**)
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {struct group*} getgrent (void)
 function void endgrent (void)
 function void setgrent (void)
diff --git a/conform/data/iconv.h-data b/conform/data/iconv.h-data
index 8700fc61b2..7f54e14c31 100644
--- a/conform/data/iconv.h-data
+++ b/conform/data/iconv.h-data
@@ -1,6 +1,6 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 type iconv_t
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type size_t
 # endif
 
diff --git a/conform/data/langinfo.h-data b/conform/data/langinfo.h-data
index 4bd90f2e95..4fbffb3629 100644
--- a/conform/data/langinfo.h-data
+++ b/conform/data/langinfo.h-data
@@ -61,12 +61,12 @@ constant NOSTR
 # endif
 
 type nl_item
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type locale_t
 # endif
 
 function {char*} nl_langinfo (nl_item)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {char*} nl_langinfo_l (nl_item, locale_t)
 # endif
 
diff --git a/conform/data/libgen.h-data b/conform/data/libgen.h-data
index aee71bb160..be99330496 100644
--- a/conform/data/libgen.h-data
+++ b/conform/data/libgen.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 function {char*} basename (char*)
 function {char*} dirname (char*)
 
diff --git a/conform/data/limits.h-data b/conform/data/limits.h-data
index 4160f961cd..b770007b15 100644
--- a/conform/data/limits.h-data
+++ b/conform/data/limits.h-data
@@ -20,7 +20,7 @@ macro-int-constant UINT_MAX {unsigned int} >= 4294967295U
 macro-int-constant LONG_MAX {long int} >= 2147483647L
 macro-int-constant LONG_MIN {long int} <= -2147483647L
 macro-int-constant ULONG_MAX {unsigned long int} >= 4294967295UL
-#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K8 || defined POSIX2008
+#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 macro-int-constant LLONG_MIN {long long int} <= -9223372036854775807ll
 macro-int-constant LLONG_MAX {long long int} >= 9223372036854775807ll
 macro-int-constant ULLONG_MAX {unsigned long long int} >= 18446744073709551615ull
@@ -37,7 +37,7 @@ allow ATEXIT_MAX
 #endif
 allow CHILD_MAX
 allow DELAYTIMER_MAX
-#if !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 allow IOV_MAX
 #endif
 allow LOGIN_NAME_MAX
@@ -45,7 +45,7 @@ allow MQ_OPEN_MAX
 allow MQ_PRIO_MAX
 allow OPEN_MAX
 allow PAGESIZE
-#if !defined POSIX && !defined POSIX2008
+#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 allow PAGE_SIZE
 #endif
 allow PTHREAD_DESTRUCTOR_ITERATIONS
@@ -160,11 +160,11 @@ macro-constant _POSIX2_COLL_WEIGHTS_MAX == 2
 macro-constant _POSIX2_EXPR_NEST_MAX == 32
 macro-constant _POSIX2_LINE_MAX == 2048
 macro-constant _POSIX2_RE_DUP_MAX == 255
-#if !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 optional-constant _XOPEN_IOV_MAX == 16
 #endif
 
-#if !defined POSIX && !defined POSIX2008
+#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant WORD_BIT >= 16
 constant LONG_BIT >= 32
 #endif
@@ -175,16 +175,16 @@ optional-constant CHARCLASS_NAME_MAX >= 14
 #endif
 #if !defined POSIX
 optional-constant NL_ARGMAX >= 9
-# if !defined POSIX2008
+# if !defined POSIX2008 && !defined POSIX2024
 optional-constant NL_LANGMAX >= 14
 # endif
 optional-constant NL_MSGMAX >= 32767
-# if !defined XOPEN2K8 && !defined POSIX2008
+# if !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 optional-constant NL_NMAX
 # endif
 optional-constant NL_SETMAX >= 255
 optional-constant NL_TEXTMAX
-# if !defined POSIX2008
+# if !defined POSIX2008 && !defined POSIX2024
 optional-constant NZERO >= 20
 # endif
 #endif
diff --git a/conform/data/locale.h-data b/conform/data/locale.h-data
index df28e44a0d..5ec4bb5feb 100644
--- a/conform/data/locale.h-data
+++ b/conform/data/locale.h-data
@@ -38,7 +38,7 @@ macro-int-constant LC_MONETARY
 macro-int-constant LC_NUMERIC
 macro-int-constant LC_TIME
 
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 constant LC_GLOBAL_LOCALE
 
 macro LC_COLLATE_MASK
@@ -54,7 +54,7 @@ type locale_t
 
 function {struct lconv*} localeconv (void)
 function {char*} setlocale (int, const char*)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function locale_t duplocale (locale_t)
 function void freelocale (locale_t)
 function locale_t newlocale (int, const char*, locale_t)
@@ -65,6 +65,6 @@ allow LC_[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 allow LC_*_MASK
 #endif
diff --git a/conform/data/math.h-data b/conform/data/math.h-data
index d177e9bdf8..b03b3e78d7 100644
--- a/conform/data/math.h-data
+++ b/conform/data/math.h-data
@@ -21,7 +21,7 @@ type double_t
 function int isnan (double)
 # endif
 
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008 && !defined POSIX2024
 constant M_E
 constant M_LOG2E
 constant M_LOG10E
@@ -104,7 +104,7 @@ function double gamma (double)
 #endif
 #if !defined ISO && !defined POSIX
 function double hypot (double, double)
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function double j0 (double)
 function double j1 (double)
 function double jn (int, double)
@@ -113,7 +113,7 @@ function double lgamma (double)
 # if !defined XPG4 && !defined XPG42 && !defined UNIX98
 function double tgamma (double)
 # endif
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function double y0 (double)
 function double y1 (double)
 function double yn (int, double)
@@ -157,7 +157,7 @@ function double nan (const char*)
 #  endif
 # endif
 
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 // variable signgam
 allow signgam
 # endif
diff --git a/conform/data/monetary.h-data b/conform/data/monetary.h-data
index 7a87041764..5a8487992f 100644
--- a/conform/data/monetary.h-data
+++ b/conform/data/monetary.h-data
@@ -1,12 +1,12 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 type size_t
 type ssize_t
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type locale_t
 # endif
 
 function ssize_t strfmon (char*, size_t, const char*, ...)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function ssize_t strfmon_l (char*, size_t, locale_t, const char*, ...)
 # endif
 
diff --git a/conform/data/mqueue.h-data b/conform/data/mqueue.h-data
index 6b5c15d596..8daa18b95d 100644
--- a/conform/data/mqueue.h-data
+++ b/conform/data/mqueue.h-data
@@ -24,12 +24,12 @@ function ssize_t mq_receive (mqd_t, char*, size_t, unsigned int*)
 function int mq_send (mqd_t, const char*, size_t, unsigned int)
 function int mq_setattr (mqd_t, const struct mq_attr*, struct mq_attr*)
 function int mq_unlink (const char*)
-#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 optional-function ssize_t mq_timedreceive (mqd_t, char*, size_t, unsigned int*, const struct timespec*)
 optional-function int mq_timedsend (mqd_t, const char*, size_t, unsigned int, const struct timespec*)
 #endif
 
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type pthread_attr_t
 type size_t
 type ssize_t
diff --git a/conform/data/ndbm.h-data b/conform/data/ndbm.h-data
index 1aa4423eca..4dcf25783f 100644
--- a/conform/data/ndbm.h-data
+++ b/conform/data/ndbm.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 type datum
 element datum {void*} dptr
 element datum size_t dsize
diff --git a/conform/data/netdb.h-data b/conform/data/netdb.h-data
index a6484ac984..3e9d4c0ca0 100644
--- a/conform/data/netdb.h-data
+++ b/conform/data/netdb.h-data
@@ -35,7 +35,7 @@ element {struct servent} {char*} s_proto
 
 macro IPPORT_RESERVED
 
-#if !defined XOPEN2K8 && !defined POSIX2008
+#if !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 // variable int h_errno
 allow h_errno
 
diff --git a/conform/data/netinet/tcp.h-data b/conform/data/netinet/tcp.h-data
index 298808780d..dda83d2577 100644
--- a/conform/data/netinet/tcp.h-data
+++ b/conform/data/netinet/tcp.h-data
@@ -1,4 +1,4 @@
-#if defined XOPEN2K || defined POSIX2008 || defined XOPEN2K8
+#if defined XOPEN2K || defined POSIX2008 || defined POSIX2024 || defined XOPEN2K8
 macro TCP_NODELAY
 
 allow TCP_*
diff --git a/conform/data/pthread.h-data b/conform/data/pthread.h-data
index 09bf527515..bf78019d1a 100644
--- a/conform/data/pthread.h-data
+++ b/conform/data/pthread.h-data
@@ -25,7 +25,7 @@ constant PTHREAD_MUTEX_NORMAL
 constant PTHREAD_MUTEX_RECURSIVE
 macro PTHREAD_RWLOCK_INITIALIZER
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 constant PTHREAD_MUTEX_ROBUST
 constant PTHREAD_MUTEX_STALLED
 # endif
@@ -107,7 +107,7 @@ function int pthread_create (pthread_t*, const pthread_attr_t*, void *(*) (void*
 function int pthread_detach (pthread_t)
 function int pthread_equal (pthread_t, pthread_t)
 function void pthread_exit (void*)
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int pthread_getconcurrency (void)
 # endif
 # if !defined POSIX && !defined UNIX98
@@ -164,12 +164,12 @@ function int pthread_rwlockattr_setpshared (pthread_rwlockattr_t*, int)
 function pthread_t pthread_self (void)
 function int pthread_setcancelstate (int, int*)
 function int pthread_setcanceltype (int, int*)
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int pthread_setconcurrency (int)
 # endif
 function int pthread_setschedparam (pthread_t, int, const struct sched_param*)
 function int pthread_setspecific (pthread_key_t, const void*)
-# if !defined POSIX && !defined UNIX98 && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined POSIX && !defined UNIX98 && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 function int pthread_sigmask (int, const sigset_t*, sigset_t*)
 # endif
 # if !defined POSIX && !defined UNIX98
@@ -180,7 +180,7 @@ function int pthread_spin_trylock (pthread_spinlock_t*)
 function int pthread_spin_unlock (pthread_spinlock_t*)
 # endif
 function void pthread_testcancel (void)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int pthread_mutex_consistent (pthread_mutex_t *)
 function int pthread_mutexattr_getrobust (const pthread_mutexattr_t*, int*)
 function int pthread_mutexattr_setrobust (pthread_mutexattr_t*, int)
diff --git a/conform/data/pwd.h-data b/conform/data/pwd.h-data
index b2f8cbf924..81f7b23b97 100644
--- a/conform/data/pwd.h-data
+++ b/conform/data/pwd.h-data
@@ -14,7 +14,7 @@ element {struct passwd} {char*} pw_shell
 # ifndef POSIX
 type uid_t
 type gid_t
-#  if defined XOPEN2K8 || defined POSIX2008
+#  if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type size_t
 #  endif
 # endif
@@ -23,7 +23,7 @@ function {struct passwd*} getpwnam (const char*)
 function {struct passwd*} getpwuid (uid_t)
 function int getpwnam_r (const char*, struct passwd*, char*, size_t, struct passwd**)
 function int getpwuid_r (uid_t, struct passwd*, char*, size_t, struct passwd**)
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void endpwent (void)
 function {struct passwd*} getpwent (void)
 function void setpwent (void)
diff --git a/conform/data/regex.h-data b/conform/data/regex.h-data
index 602f2093b6..c8e70583b0 100644
--- a/conform/data/regex.h-data
+++ b/conform/data/regex.h-data
@@ -29,7 +29,7 @@ constant REG_BADBR
 constant REG_ERANGE
 constant REG_ESPACE
 constant REG_BADRPT
-# if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 constant REG_ENOSYS
 # endif
 
diff --git a/conform/data/sched.h-data b/conform/data/sched.h-data
index 639f129855..3cddfafae7 100644
--- a/conform/data/sched.h-data
+++ b/conform/data/sched.h-data
@@ -14,7 +14,7 @@ optional-element {struct sched_param} {struct timespec} sched_ss_init_budget
 optional-element {struct sched_param} int sched_ss_max_repl
 # endif
 
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type pid_t
 type time_t
 type {struct timespec}
diff --git a/conform/data/search.h-data b/conform/data/search.h-data
index 240be297fc..9ba3494e34 100644
--- a/conform/data/search.h-data
+++ b/conform/data/search.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 type ENTRY
 type {struct entry}
 element {struct entry} {char*} key
diff --git a/conform/data/semaphore.h-data b/conform/data/semaphore.h-data
index 18afd1689a..001c4c4457 100644
--- a/conform/data/semaphore.h-data
+++ b/conform/data/semaphore.h-data
@@ -17,7 +17,7 @@ function int sem_unlink (const char*)
 function int sem_wait (sem_t*)
 
 allow-header fcntl.h
-# if !defined POSIX2008 && !defined XOPEN2K8
+# if !defined POSIX2008 && !defined POSIX2024 && !defined XOPEN2K8
 allow-header sys/types.h
 # endif
 // Consider addition of this permission in POSIX.1:2008 as a bug fix,
diff --git a/conform/data/setjmp.h-data b/conform/data/setjmp.h-data
index 37bd9bd7d7..f0d1892574 100644
--- a/conform/data/setjmp.h-data
+++ b/conform/data/setjmp.h-data
@@ -6,7 +6,7 @@ type sigjmp_buf
 function void longjmp (jmp_buf, int)
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 function void siglongjmp (sigjmp_buf, int)
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void _longjmp (jmp_buf, int)
 # endif
 #endif
@@ -14,7 +14,7 @@ function void _longjmp (jmp_buf, int)
 macro-function int setjmp (jmp_buf)
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 macro-function int sigsetjmp (sigjmp_buf, int)
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 macro-function int _setjmp (jmp_buf)
 # endif
 #endif
diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data
index 4beb3d8515..e22e8f5593 100644
--- a/conform/data/signal.h-data
+++ b/conform/data/signal.h-data
@@ -1,6 +1,6 @@
 macro-constant SIG_DFL {void(*)(int)}
 macro-constant SIG_ERR {void(*)(int)}
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 macro-constant SIG_HOLD {void(*)(int)}
 #endif
 macro-constant SIG_IGN {void(*)(int)}
@@ -15,7 +15,7 @@ type pid_t
 # define pid_t __pid_t
 # define uid_t __uid_t
 #endif
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type size_t
 type pthread_t
 type uid_t
@@ -35,7 +35,7 @@ element {struct timespec} __time_t tv_sec
 xfail[x86_64-x32-linux]-element {struct timespec} long tv_nsec
 #endif
 
-#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 element {union sigval} int sival_int
 element {union sigval} {void*} sival_ptr
 
@@ -90,7 +90,7 @@ macro-int-constant SIGPOLL {int} > 0
 macro-int-constant SIGPROF {int} > 0
 macro-int-constant SIGSYS {int} > 0
 # endif
-# if !defined POSIX && !defined XPG4 && !defined POSIX2008
+# if !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024
 macro-int-constant SIGTRAP {int} > 0
 # endif
 # if !defined POSIX && !defined XPG4
@@ -116,7 +116,7 @@ constant SA_SIGINFO
 constant SIG_BLOCK
 constant SIG_UNBLOCK
 constant SIG_SETMASK
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant SA_ONSTACK
 # endif
 # if !defined XPG4 && !defined POSIX
@@ -126,7 +126,7 @@ constant SA_RESTART
 xfail[i386-gnu|x86_64-gnu]-constant SA_NOCLDWAIT
 constant SA_NODEFER
 # endif
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant SS_ONSTACK
 constant SS_DISABLE
 constant MINSIGSTKSZ
@@ -148,7 +148,7 @@ element stack_t {void*} ss_sp
 element stack_t size_t ss_size
 element stack_t int ss_flags
 
-#  if !defined XOPEN2K8 && !defined POSIX2008
+#  if !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 type {struct sigstack}
 
 element {struct sigstack} int ss_onstack
@@ -160,7 +160,7 @@ element {struct sigstack} {void*} ss_sp
 type siginfo_t
 
 element siginfo_t int si_signo
-#  if !defined POSIX && !defined POSIX2008
+#  if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 element siginfo_t int si_errno
 #  endif
 element siginfo_t int si_code
@@ -212,7 +212,7 @@ constant POLL_ERR
 constant POLL_PRI
 constant POLL_HUP
 # endif
-# if !defined POSIX && !defined XPG4 && !defined POSIX2008
+# if !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024
 constant TRAP_BRKPT
 constant TRAP_TRACE
 # endif
@@ -224,11 +224,11 @@ constant SI_ASYNCIO
 constant SI_MESGQ
 # endif
 
-# if !defined XPG4 && !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void (*bsd_signal (int, void(*)(int)))(int)
 # endif
 function int kill (pid_t, int)
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int killpg (pid_t, int)
 # endif
 # if !defined XPG4 && !defined XPG42
@@ -237,19 +237,19 @@ function int pthread_sigmask (int, const sigset_t*, sigset_t*)
 # endif
 function int sigaction (int, const struct sigaction*, struct sigaction*)
 function int sigaddset (sigset_t*, int)
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int sigaltstack (const stack_t*, stack_t*)
 # endif
 function int sigdelset (sigset_t*, int)
 function int sigemptyset (sigset_t*)
 function int sigfillset (sigset_t*)
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int sighold (int)
 function int sigignore (int)
 function int siginterrupt (int, int)
 # endif
 function int sigismember (const sigset_t*, int)
-#if !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int sigpause (int)
 # endif
 function int sigpending (sigset_t*)
@@ -257,7 +257,7 @@ function int sigprocmask (int, const sigset_t*, sigset_t*)
 # if !defined XPG4 && !defined XPG42
 function int sigqueue (pid_t, int, const union sigval)
 # endif
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int sigrelse (int)
 function void (*sigset (int, void(*)(int)))(int)
 # endif
@@ -272,7 +272,7 @@ function int sigtimedwait (const sigset_t*, siginfo_t*, const struct timespec*)
 function int sigwait (const sigset_t*, int*)
 function int sigwaitinfo (const sigset_t*, siginfo_t*)
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function void psiginfo (const siginfo_t*, const char*)
 function void psignal (int, const char*)
 # endif
@@ -301,7 +301,7 @@ allow ILL_*
 allow POLL_*
 allow SEGV_*
 # endif
-# if !defined POSIX && !defined XPG4 && !defined POSIX2008
+# if !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024
 allow SS_*
 allow SV_*
 allow TRAP_*
diff --git a/conform/data/spawn.h-data b/conform/data/spawn.h-data
index 47b709bf52..4d49ad1faa 100644
--- a/conform/data/spawn.h-data
+++ b/conform/data/spawn.h-data
@@ -1,7 +1,7 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 type posix_spawnattr_t
 type posix_spawn_file_actions_t
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type mode_t
 type pid_t
 type sigset_t
diff --git a/conform/data/stdarg.h-data b/conform/data/stdarg.h-data
index c753745b31..ce5de8f6fc 100644
--- a/conform/data/stdarg.h-data
+++ b/conform/data/stdarg.h-data
@@ -5,7 +5,7 @@ macro va_start
 macro va_arg
 macro va_end
 
-#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined POSIX2008 || defined XOPEN2K8
+#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined POSIX2008 || defined POSIX2024 || defined XOPEN2K8
 macro va_copy
 #endif
 
diff --git a/conform/data/stdio.h-data b/conform/data/stdio.h-data
index 1be80b47b0..736a631750 100644
--- a/conform/data/stdio.h-data
+++ b/conform/data/stdio.h-data
@@ -8,7 +8,7 @@ macro-int-constant _IONBF
 
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 constant L_ctermid
-# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 #  ifdef POSIX
 optional-constant L_cuserid
 #  else
@@ -28,7 +28,7 @@ macro-int-constant EOF < 0
 
 macro-constant NULL == 0
 
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant P_tmpdir
 #endif
 
@@ -44,7 +44,7 @@ type va_list
 #define va_list __gnuc_va_list
 #endif
 type size_t
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type off_t
 type ssize_t
 #endif
@@ -56,7 +56,7 @@ function {char*} ctermid (char*)
 function {char*} cuserid (char*)
 # endif
 #endif
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int dprintf (int, const char*, ...)
 #endif
 function int fclose (FILE*)
@@ -72,10 +72,10 @@ function {char*} fgets (char*, int, FILE*)
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 function int fileno (FILE*)
 #endif
-#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function void flockfile (FILE*)
 #endif
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {FILE*} fmemopen (void*, size_t, const char*)
 #endif
 function {FILE*} fopen (const char*, const char*)
@@ -86,26 +86,26 @@ function size_t fread (void*, size_t, size_t, FILE*)
 function {FILE*} freopen (const char*, const char*, FILE*)
 function int fscanf (FILE*, const char*, ...)
 function int fseek (FILE*, long int, int)
-#if defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int fseeko (FILE*, off_t, int)
 #endif
 function int fsetpos (FILE*, const fpos_t*)
 function {long int} ftell (FILE*)
-#if defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function off_t ftello (FILE*)
 #endif
-#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int ftrylockfile (FILE*)
 function void funlockfile (FILE*)
 #endif
 function size_t fwrite (const void*, size_t, size_t, FILE*)
 function int getc (FILE*)
 function int getchar (void)
-#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int getc_unlocked (FILE*)
 function int getchar_unlocked (void)
 #endif
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function ssize_t getdelim (char**, size_t*, int, FILE*)
 function ssize_t getline (char**, size_t*, FILE*)
 #endif
@@ -118,7 +118,7 @@ function {char*} gets (char*)
 #if defined XPG4 || defined XPG42 || defined UNIX98
 function int getw (FILE*)
 #endif
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {FILE*} open_memstream (char**, size_t*)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
@@ -131,7 +131,7 @@ function {FILE*} popen (const char*, const char*)
 function int printf (const char*, ...)
 function int putc (int, FILE*)
 function int putchar (int)
-#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int putc_unlocked (int, FILE*)
 function int putchar_unlocked (int)
 #endif
@@ -141,7 +141,7 @@ function int putw (int, FILE*)
 #endif
 function int remove (const char*)
 function int rename (const char*, const char*)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int renameat (int, const char*, int, const char*)
 #endif
 function void rewind (FILE*)
@@ -159,7 +159,7 @@ function {char*} tempnam (const char*, const char*)
 function {FILE*} tmpfile (void)
 function {char*} tmpnam (char*)
 function int ungetc (int, FILE*)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int vdprintf (int, const char*, va_list)
 #endif
 function int vfprintf (FILE*, const char*, va_list)
@@ -179,7 +179,7 @@ function int vsscanf (const char*, const char*, va_list)
 #endif
 
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
-#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 variable {char*} optarg
 variable int opterr
 variable int optind
diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data
index 0f6da09166..64014de7ee 100644
--- a/conform/data/stdlib.h-data
+++ b/conform/data/stdlib.h-data
@@ -12,7 +12,7 @@ macro-constant NULL == 0
 macro-int-constant RAND_MAX >= 32767
 macro MB_CUR_MAX
 
-#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type lldiv_t
 element lldiv_t {long long} quot
 element lldiv_t {long long} rem
@@ -35,7 +35,7 @@ macro WTERMSIG
 #if !defined ISO && !defined XPG4 && !defined XPG42 && !defined UNIX98 && !defined POSIX
 function void _Exit (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function long a64l (const char*)
 #endif
 function void abort (void)
@@ -56,13 +56,13 @@ function {long long} atoll (const char*)
 function {void*} bsearch (const void*, const void*, size_t, size_t, int(*)(const void*, const void*))
 function {void*} calloc (size_t, size_t)
 function div_t div (int, int)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function double drand48 (void)
 #endif
 #if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function {char*} ecvt (double, int, int*, int*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function double erand48 (unsigned short int[3])
 #endif
 function void exit (int)
@@ -77,18 +77,18 @@ function {char*} getenv (const char*)
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX
 function int getsubopt (char**, char *const*, char**)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int grantpt (int)
 function {char*} initstate (unsigned int, char*, size_t)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {long int} jrand48 (unsigned short int[3])
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {char*} l64a (long)
 #endif
 function {long int} labs (long int)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void lcong48 (unsigned short int[7])
 #endif
 function ldiv_t ldiv (long int, long int)
@@ -96,36 +96,36 @@ function ldiv_t ldiv (long int, long int)
 function {long long} llabs (long long)
 function lldiv_t lldiv (long long, long long)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {long int} lrand48 (void)
 #endif
 function {void*} malloc (size_t)
 function int mblen (const char*, size_t)
 function size_t mbstowcs (wchar_t*, const char*, size_t)
 function int mbtowc (wchar_t*, const char*, size_t)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {char*} mkdtemp (char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 function {char*} mktemp (char*)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX
 function int mkstemp (char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {long int} mrand48 (void)
 function {long int} nrand48 (unsigned short int[3])
 #endif
-#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int posix_memalign (void**, size_t, size_t)
 #endif
 #if defined XOPEN2K || defined XOPEN2K8
 function int posix_openpt (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {char*} ptsname (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int putenv (char*)
 #endif
 function void qsort (void*, size_t, size_t, int(*)(const void*, const void*))
@@ -133,30 +133,30 @@ function void qsort (void*, size_t, size_t, int(*)(const void*, const void*))
 function void quick_exit (int)
 #endif
 function int rand (void)
-#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int rand_r (unsigned int*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function long random (void)
 #endif
 function {void*} realloc (void*, size_t)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {char*} realpath (const char*, char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {unsigned short int*} seed48 (unsigned short int[3])
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int setenv (const char*, const char*, int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {char*} setstate (char*)
 #endif
 function void srand (unsigned int)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void srand48 (long int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void srandom (unsigned)
 #endif
 function double strtod (const char*, char**)
@@ -174,7 +174,7 @@ function int system (const char*)
 #if defined XPG42 || defined UNIX98
 function int ttyslot (void)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int unlockpt (int)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
diff --git a/conform/data/string.h-data b/conform/data/string.h-data
index 8cda133428..0ce1ba5f0a 100644
--- a/conform/data/string.h-data
+++ b/conform/data/string.h-data
@@ -1,11 +1,11 @@
 macro-constant NULL == 0
 
 type size_t
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type locale_t
 #endif
 
-#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {void*} memccpy (void*, const void*, int, size_t)
 #endif
 function {void*} memchr (const void*, int, size_t)
@@ -13,7 +13,7 @@ function int memcmp (const void*, const void*, size_t)
 function {void*} memcpy (void*, const void*, size_t)
 function {void*} memmove (void*, const void*, size_t)
 function {void*} memset (void*, int, size_t)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {char*} stpcpy (char*, const char*)
 function {char*} stpncpy (char*, const char*, size_t)
 
@@ -22,42 +22,42 @@ function {char*} strcat (char*, const char*)
 function {char*} strchr (const char*, int)
 function int strcmp (const char*, const char*)
 function int strcoll (const char*, const char*)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int strcoll_l (const char*, const char*, locale_t)
 #endif
 function {char*} strcpy (char*, const char*)
 function size_t strcspn (const char*, const char*)
-#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {char*} strdup (const char*)
 #endif
 function {char*} strerror (int)
-#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int strerror_r (int, char*, size_t)
 #endif
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {char*} strerror_l (int, locale_t)
 #endif
 function size_t strlen (const char*)
 function {char*} strncat (char*, const char*, size_t)
 function int strncmp (const char*, const char*, size_t)
 function {char*} strncpy (char*, const char*, size_t)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {char*} strndup (const char*, size_t)
 function size_t strnlen (const char*, size_t)
 #endif
 function {char*} strpbrk (const char*, const char*)
 function {char*} strrchr (const char*, int)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {char*} strsignal (int)
 #endif
 function size_t strspn (const char*, const char*)
 function {char*} strstr (const char*, const char*)
 function {char*} strtok (char*, const char*)
-#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {char*} strtok_r (char*, const char*, char**)
 #endif
 function size_t strxfrm (char*, const char*, size_t)
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function size_t strxfrm_l (char*, const char*, size_t, locale_t)
 #endif
 
diff --git a/conform/data/strings.h-data b/conform/data/strings.h-data
index b5d352ff32..98aa38259e 100644
--- a/conform/data/strings.h-data
+++ b/conform/data/strings.h-data
@@ -1,23 +1,23 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
-# if !defined XOPEN2K8 && !defined POSIX2008
+# if !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 function int bcmp (const void*, const void*, size_t)
 function void bcopy (const void*, void*, size_t)
 function void bzero (void*, size_t)
 function {char*} index (const char*, int)
 function {char*} rindex (const char*, int)
 # endif
-# if !defined POSIX2008
+# if !defined POSIX2008 && !defined POSIX2024
 function int ffs (int)
 # endif
 function int strcasecmp (const char*, const char*)
 function int strncasecmp (const char*, const char*, size_t)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int strcasecmp_l (const char*, const char*, locale_t)
 function int strncasecmp_l (const char*, const char*, size_t, locale_t)
 # endif
 
 type size_t
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type locale_t
 # endif
 
diff --git a/conform/data/sys/ipc.h-data b/conform/data/sys/ipc.h-data
index e157257e8a..0db0221515 100644
--- a/conform/data/sys/ipc.h-data
+++ b/conform/data/sys/ipc.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 type {struct ipc_perm}
 
 // Bug 23082: uid/gid/cuid/cgid/mode have type unsigned short instead of uid_t and mode_t.
diff --git a/conform/data/sys/msg.h-data b/conform/data/sys/msg.h-data
index 93df6fd656..8af403aa9f 100644
--- a/conform/data/sys/msg.h-data
+++ b/conform/data/sys/msg.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 type {struct msqid_ds}
 
 type msgqnum_t
diff --git a/conform/data/sys/resource.h-data b/conform/data/sys/resource.h-data
index ba247e3d26..a5c26e1709 100644
--- a/conform/data/sys/resource.h-data
+++ b/conform/data/sys/resource.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 constant PRIO_PROCESS
 constant PRIO_PGRP
 constant PRIO_USER
diff --git a/conform/data/sys/select.h-data b/conform/data/sys/select.h-data
index 9406eaea0c..c704792ddd 100644
--- a/conform/data/sys/select.h-data
+++ b/conform/data/sys/select.h-data
@@ -25,7 +25,7 @@ macro FD_ZERO
 
 macro FD_SETSIZE
 
-#if defined XOPEN2K || defined POSIX2008 || defined XOPEN2K8
+#if defined XOPEN2K || defined POSIX2008 || defined POSIX2024 || defined XOPEN2K8
 function int pselect (int, fd_set*, fd_set*, fd_set*, const struct timespec*, const sigset_t*)
 #endif
 function int select (int, fd_set*, fd_set*, fd_set*, struct timeval*)
diff --git a/conform/data/sys/sem.h-data b/conform/data/sys/sem.h-data
index f34541c447..182610a4fc 100644
--- a/conform/data/sys/sem.h-data
+++ b/conform/data/sys/sem.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant SEM_UNDO
 
 constant GETNCNT
diff --git a/conform/data/sys/shm.h-data b/conform/data/sys/shm.h-data
index a9d2539e47..89fe5dc03d 100644
--- a/conform/data/sys/shm.h-data
+++ b/conform/data/sys/shm.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant SHM_RDONLY
 symbol SHMLBA
 constant SHM_RND
diff --git a/conform/data/sys/socket.h-data b/conform/data/sys/socket.h-data
index d00504bd31..7a1aba5772 100644
--- a/conform/data/sys/socket.h-data
+++ b/conform/data/sys/socket.h-data
@@ -3,7 +3,7 @@ type socklen_t
 
 type sa_family_t
 
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type size_t
 type ssize_t
 # endif
@@ -83,7 +83,7 @@ macro MSG_OOB
 macro MSG_PEEK
 macro MSG_TRUNC
 macro MSG_WAITALL
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 constant MSG_NOSIGNAL
 # endif
 
diff --git a/conform/data/sys/stat.h-data b/conform/data/sys/stat.h-data
index ba80a5adc6..9e62be9ba6 100644
--- a/conform/data/sys/stat.h-data
+++ b/conform/data/sys/stat.h-data
@@ -1,6 +1,6 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 
-#if !defined POSIX && !defined POSIX2008 && !defined XPG4 && !defined XPG42
+#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4 && !defined XPG42
 type blkcnt_t
 type blksize_t
 #endif
@@ -34,7 +34,7 @@ element {struct stat} mode_t st_mode
 element {struct stat} nlink_t st_nlink
 element {struct stat} uid_t st_uid
 element {struct stat} gid_t st_gid
-#if !defined POSIX && !defined POSIX2008
+#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 // Bug 21278: st_rdev has wrong type.
 xfail[mips-o32-linux]-element {struct stat} dev_t st_rdev
 #endif
@@ -42,12 +42,12 @@ element {struct stat} off_t st_size
 element {struct stat} time_t st_atime
 element {struct stat} time_t st_mtime
 element {struct stat} time_t st_ctime
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 element {struct stat} {struct timespec} st_atim
 element {struct stat} {struct timespec} st_mtim
 element {struct stat} {struct timespec} st_ctim
 #endif
-#if !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 # ifdef XPG42
 // The XPG42 use of "long" for these fields is not compatible with the
 // use of typedefs in future standards to support values outside the
@@ -60,14 +60,14 @@ element {struct stat} blkcnt_t st_blocks
 # endif
 #endif
 
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type {struct timespec}
 element {struct timespec} time_t tv_sec
 // Bug 16437: tv_nsec has wrong type.
 xfail[x86_64-x32-linux]-element {struct timespec} long tv_nsec
 # endif
 
-#if !defined POSIX && !defined POSIX2008
+#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant S_IFMT
 constant S_IFBLK
 constant S_IFCHR
@@ -94,7 +94,7 @@ constant S_IWOTH
 constant S_IXOTH
 constant S_ISUID
 constant S_ISGID
-#if !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant S_ISVTX
 #endif
 
@@ -116,7 +116,7 @@ optional-macro S_TYPEISSHM
 optional-macro S_TYPEISTMO
 # endif
 
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 constant UTIME_NOW
 constant UTIME_OMIT
 # endif
@@ -125,11 +125,11 @@ function int chmod (const char*, mode_t)
 # ifndef XPG4
 function int fchmod (int, mode_t)
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int fchmodat (int, const char*, mode_t, int)
 # endif
 function int fstat (int, struct stat*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int fstatat (int, const char*, struct stat*, int)
 function int futimens (int, const struct timespec[2])
 # endif
@@ -137,14 +137,14 @@ function int futimens (int, const struct timespec[2])
 function int lstat (const char*, struct stat*)
 #endif
 function int mkdir (const char*, mode_t)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int mkdirat (int, const char*, mode_t)
 # endif
 function int mkfifo (const char*, mode_t)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int mkfifoat (int, const char*, mode_t)
 # endif
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int mknod (const char*, mode_t, dev_t)
 # endif
 # ifdef XOPEN2K8
@@ -152,7 +152,7 @@ function int mknodat (int, const char*, mode_t, dev_t)
 # endif
 function int stat (const char*, struct stat*)
 function mode_t umask (mode_t)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int utimensat (int, const char*, const struct timespec[2], int)
 # endif
 
diff --git a/conform/data/sys/time.h-data b/conform/data/sys/time.h-data
index df5b6b9730..a191d0f7a5 100644
--- a/conform/data/sys/time.h-data
+++ b/conform/data/sys/time.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 type {struct timeval}
 
 element {struct timeval} time_t tv_sec
diff --git a/conform/data/sys/timeb.h-data b/conform/data/sys/timeb.h-data
index a1db569621..fdd723fd47 100644
--- a/conform/data/sys/timeb.h-data
+++ b/conform/data/sys/timeb.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined XOPEN2K8
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024 && !defined XOPEN2K8
 type {struct timeb}
 
 element {struct timeb} time_t time
diff --git a/conform/data/sys/types.h-data b/conform/data/sys/types.h-data
index 3330f9e195..33c5bcba08 100644
--- a/conform/data/sys/types.h-data
+++ b/conform/data/sys/types.h-data
@@ -19,7 +19,7 @@ type gid_t
 type id_t
 #endif
 type ino_t
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 type key_t
 # endif
 type mode_t
@@ -49,7 +49,7 @@ type pthread_t
 #endif
 type size_t
 type ssize_t
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 type suseconds_t
 # endif
 # ifndef POSIX
diff --git a/conform/data/sys/uio.h-data b/conform/data/sys/uio.h-data
index 6da312c9dd..54503e0b73 100644
--- a/conform/data/sys/uio.h-data
+++ b/conform/data/sys/uio.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024
 type {struct iovec}
 
 element {struct iovec} {void*} iov_base
diff --git a/conform/data/sys/wait.h-data b/conform/data/sys/wait.h-data
index 5998748a23..8d1ea9306d 100644
--- a/conform/data/sys/wait.h-data
+++ b/conform/data/sys/wait.h-data
@@ -7,7 +7,7 @@ constant WNOHANG
 constant WUNTRACED
 
 macro WEXITSTATUS
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 macro WIFCONTINUED
 # endif
 macro WIFEXITED
@@ -19,7 +19,7 @@ macro WTERMSIG
 # if !defined XPG4 && !defined POSIX
 constant WEXITED
 constant WSTOPPED
-#  ifndef POSIX2008
+#  if !defined POSIX2008 && !defined POSIX2024
 constant WCONTINUED
 #  endif
 constant WNOHANG
@@ -51,7 +51,7 @@ element siginfo_t {union sigval} si_value
 # endif
 #endif
 
-#if !defined POSIX && !defined XPG4 && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined POSIX && !defined XPG4 && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 type {struct rusage}
 
 element {struct rusage} {struct timeval} ru_utime
@@ -63,7 +63,7 @@ type pid_t
 #endif
 
 function pid_t wait (int*)
-#if !defined XPG4 && !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 function pid_t wait3 (int*, int, struct rusage*)
 #endif
 #if !defined XPG4 && !defined POSIX
diff --git a/conform/data/syslog.h-data b/conform/data/syslog.h-data
index f72734d8f9..791858ae44 100644
--- a/conform/data/syslog.h-data
+++ b/conform/data/syslog.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 constant LOG_PID
 constant LOG_CONS
 constant LOG_NDELAY
diff --git a/conform/data/tar.h-data b/conform/data/tar.h-data
index 43b2d0555c..5c049b5b0f 100644
--- a/conform/data/tar.h-data
+++ b/conform/data/tar.h-data
@@ -16,7 +16,7 @@ macro-int-constant CONTTYPE {int} == '7'
 
 macro-int-constant TSUID {int} == 04000
 macro-int-constant TSGID {int} == 02000
-# if !defined POSIX2008
+# if !defined POSIX2008 && !defined POSIX2024
 macro-int-constant TSVTX {int} == 01000
 # endif
 macro-int-constant TUREAD {int} == 00400
diff --git a/conform/data/termios.h-data b/conform/data/termios.h-data
index 87fbcb9565..f88ffd7ea7 100644
--- a/conform/data/termios.h-data
+++ b/conform/data/termios.h-data
@@ -5,7 +5,7 @@ type tcflag_t
 
 type {struct termios}
 
-#if defined XOPEN2K8 || defined POSIX2008
+#if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type pid_t
 #endif
 
@@ -37,7 +37,7 @@ constant IGNPAR
 constant INLCR
 constant INPCK
 constant ISTRIP
-# if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 constant IUCLC
 # endif
 # ifndef POSIX
@@ -48,10 +48,10 @@ constant IXON
 constant PARMRK
 
 constant OPOST
-# if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 constant OLCUC
 # endif
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant ONLCR
 constant OCRNL
 constant ONOCR
@@ -120,7 +120,7 @@ constant IEXTEN
 constant ISIG
 constant NOFLSH
 constant TOSTOP
-# if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 constant XCASE
 # endif
 
@@ -150,7 +150,7 @@ function pid_t tcgetsid (int)
 function int tcsendbreak (int, int)
 function int tcsetattr (int, int, const struct termios*)
 
-#if !defined POSIX && !defined POSIX2008
+#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 allow CBAUD
 allow DEFECHO
 allow ECHOCTL
diff --git a/conform/data/time.h-data b/conform/data/time.h-data
index 3b2846cd07..5a8ded52a8 100644
--- a/conform/data/time.h-data
+++ b/conform/data/time.h-data
@@ -43,7 +43,7 @@ function int timespec_get (struct timespec *, int)
 #endif
 
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
-# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 symbol CLK_TCK
 # endif
 # if !defined XPG4 && !defined XPG42
@@ -67,13 +67,13 @@ type clockid_t
 type timer_t
 # endif
 
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type pid_t
 type locale_t
 tag {struct sigevent}
 # endif
 
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 variable int getdate_err
 # endif
 
@@ -92,7 +92,7 @@ function int clock_nanosleep (clockid_t, int, const struct timespec*, struct tim
 function int clock_settime (clockid_t, const struct timespec*)
 #endif
 function {char*} ctime_r (const time_t*, char*)
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {struct tm*} getdate (const char*)
 # endif
 function {struct tm*} gmtime_r (const time_t*, struct tm*)
@@ -100,10 +100,10 @@ function {struct tm*} localtime_r (const time_t*, struct tm*)
 # if !defined XPG4 && !defined XPG42
 function int nanosleep (const struct timespec*, struct timespec*)
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function size_t strftime_l (char*, size_t, const char*, const struct tm*, locale_t)
 # endif
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {char*} strptime (const char*, const char*, struct tm*)
 # endif
 # if !defined XPG4 && !defined XPG42
@@ -115,7 +115,7 @@ function int timer_settime (timer_t, int, const struct itimerspec*, struct itime
 # endif
 function void tzset (void)
 
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 variable int daylight
 variable {long int} timezone
 # endif
diff --git a/conform/data/ucontext.h-data b/conform/data/ucontext.h-data
index 414635f664..790fe97b64 100644
--- a/conform/data/ucontext.h-data
+++ b/conform/data/ucontext.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined XOPEN2K8
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024 && !defined XOPEN2K8
 type mcontext_t
 
 type ucontext_t
diff --git a/conform/data/ulimit.h-data b/conform/data/ulimit.h-data
index fbe3ec25f4..9b6bc14ce7 100644
--- a/conform/data/ulimit.h-data
+++ b/conform/data/ulimit.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant UL_GETFSIZE
 constant UL_SETFSIZE
 
diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data
index b4531868fd..5f07994785 100644
--- a/conform/data/unistd.h-data
+++ b/conform/data/unistd.h-data
@@ -74,7 +74,7 @@ optional-constant _POSIX_V6_ILP32_OFFBIG
 optional-constant _POSIX_V6_LP64_OFF64
 optional-constant _POSIX_V6_LPBIG_OFFBIG
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 optional-constant _POSIX_V7_ILP32_OFF32
 optional-constant _POSIX_V7_ILP32_OFFBIG
 optional-constant _POSIX_V7_LP64_OFF64
@@ -85,7 +85,7 @@ optional-constant _POSIX2_C_DEV
 optional-constant _POSIX2_FORT_DEV
 optional-constant _POSIX2_FORT_RUN
 optional-constant _POSIX2_SW_DEV
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 optional-constant _XOPEN_CRYPT
 optional-constant _XOPEN_ENH_I18N
 optional-constant _XOPEN_LEGACY
@@ -313,14 +313,14 @@ constant _SC_V6_ILP32_OFFBIG
 constant _SC_V6_LP64_OFF64
 constant _SC_V6_LPBIG_OFFBIG
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 constant _SC_V7_ILP32_OFF32
 constant _SC_V7_ILP32_OFFBIG
 constant _SC_V7_LP64_OFF64
 constant _SC_V7_LPBIG_OFFBIG
 # endif
 constant _SC_VERSION
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant _SC_XOPEN_VERSION
 constant _SC_XOPEN_CRYPT
 constant _SC_XOPEN_ENH_I18N
@@ -354,7 +354,7 @@ constant _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
 constant _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
 constant _CS_V6_ENV
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 constant _CS_POSIX_V7_ILP32_OFF32_CFLAGS
 constant _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
 constant _CS_POSIX_V7_ILP32_OFF32_LIBS
@@ -375,7 +375,7 @@ constant _SC_THREAD_ROBUST_PRIO_INHERIT
 constant _SC_THREAD_ROBUST_PRIO_PROTECT
 #endif
 
-#if !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 constant F_LOCK
 constant F_ULOCK
 constant F_TEST
@@ -427,7 +427,7 @@ type intptr_t
 
 function int access (const char*, int)
 function {unsigned int} alarm (unsigned int)
-#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int brk (void*)
 #endif
 function int chdir (const char*)
@@ -453,13 +453,13 @@ function int execv (const char*, char *const[])
 function int execve (const char*, char *const[], char *const[])
 function int execvp (const char*, char *const[])
 function void _exit (int)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int faccessat (int, const char*, int, int)
 # endif
 #if !defined XPG4 && !defined POSIX
 function int fchown (int, uid_t, gid_t)
 #endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int fchownat (int, const char*, uid_t, gid_t, int)
 # endif
 #if !defined XPG4 && !defined POSIX
@@ -468,7 +468,7 @@ function int fchdir (int)
 #if !defined XPG4 && !defined XPG42
 function int fdatasync (int)
 #endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int fexecve (int, char *const[], char *const[])
 # endif
 function pid_t fork (void)
@@ -478,14 +478,14 @@ function int fsync (int)
 function int ftruncate (int, off_t)
 #endif
 function {char*} getcwd (char*, size_t)
-#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int getdtablesize (void)
 #endif
 function gid_t getegid (void)
 function uid_t geteuid (void)
 function gid_t getgid (void)
 function int getgroups (int, gid_t[])
-#if !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function long gethostid (void)
 #endif
 #if !defined POSIX && !defined XPG4
@@ -520,14 +520,14 @@ function int isatty (int)
 function int lchown (const char*, uid_t, gid_t)
 #endif
 function int link (const char*, const char*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int linkat (int, const char*, int, const char*, int)
 # endif
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int lockf (int, int, off_t)
 # endif
 function off_t lseek (int, off_t, int)
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int nice (int)
 # endif
 function {long int} pathconf (const char*, int)
@@ -536,7 +536,7 @@ function int pipe (int[2])
 #if !defined POSIX && !defined XPG4 && !defined XPG42
 function ssize_t pread (int, void*, size_t, off_t)
 #endif
-#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined XPG4 && !defined XPG42
+#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4 && !defined XPG42
 function int pthread_atfork (void(*)(void), void(*)(void), void(*)(void))
 #endif
 #if !defined POSIX && !defined XPG4 && !defined XPG42
@@ -546,11 +546,11 @@ function ssize_t read (int, void*, size_t)
 #if !defined XPG4 && !defined POSIX
 function ssize_t readlink (const char*, char*, size_t)
 #endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function ssize_t readlinkat (int, const char*, char*, size_t)
 # endif
 function int rmdir (const char*)
-#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function {void*} sbrk (intptr_t)
 #endif
 #if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
@@ -559,7 +559,7 @@ function int seteuid (uid_t)
 #endif
 function int setgid (gid_t)
 function int setpgid (pid_t, pid_t)
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function pid_t setpgrp (void)
 function int setregid (gid_t, gid_t)
 function int setreuid (uid_t, uid_t)
@@ -567,16 +567,16 @@ function int setreuid (uid_t, uid_t)
 function pid_t setsid (void)
 function int setuid (uid_t)
 function {unsigned int} sleep (unsigned int)
-# if !defined POSIX && !defined POSIX2008
+# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void swab (const void*, void*, ssize_t)
 # endif
 #if !defined XPG4 && !defined POSIX
 function int symlink (const char*, const char*)
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int symlinkat (const char*, int, const char*)
 # endif
-# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function void sync (void)
 # endif
 function {long int} sysconf (int)
@@ -591,7 +591,7 @@ function int ttyname_r (int, char*, size_t)
 function useconds_t ualarm (useconds_t, useconds_t)
 #endif
 function int unlink (const char*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int unlinkat (int, const char*, int)
 # endif
 #if defined XPG42 || defined UNIX98 || defined XOPEN2K
diff --git a/conform/data/utmpx.h-data b/conform/data/utmpx.h-data
index 28ad96a486..0ee691583e 100644
--- a/conform/data/utmpx.h-data
+++ b/conform/data/utmpx.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
 type {struct utmpx}
 
 element {struct utmpx} char ut_user []
diff --git a/conform/data/wchar.h-data b/conform/data/wchar.h-data
index 4c8a2e3c82..036d832ac6 100644
--- a/conform/data/wchar.h-data
+++ b/conform/data/wchar.h-data
@@ -1,7 +1,7 @@
 #if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42
 type wchar_t
 type wint_t
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008 && !defined POSIX2024
 type wctype_t
 # endif
 type mbstate_t
@@ -11,7 +11,7 @@ type FILE
 #  define FILE __FILE
 # endif
 type size_t
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type locale_t
 # endif
 tag {struct tm}
@@ -24,7 +24,7 @@ type va_list
 function wint_t btowc (int)
 function int fwprintf (FILE*, const wchar_t*, ...)
 function int fwscanf (FILE*, const wchar_t*, ...)
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008 && !defined POSIX2024
 function int iswalnum (wint_t)
 function int iswalpha (wint_t)
 function int iswcntrl (wint_t)
@@ -48,18 +48,18 @@ function wint_t getwchar (void)
 function int mbsinit (const mbstate_t*)
 function size_t mbrlen (const char*, size_t, mbstate_t*)
 function size_t mbrtowc (wchar_t*, const char*, size_t, mbstate_t*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function size_t mbsnrtowcs (wchar_t*, const char**, size_t, size_t, mbstate_t*)
 # endif
 function size_t mbsrtowcs (wchar_t*, const char**, size_t, mbstate_t*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {FILE*} open_wmemstream (wchar_t**, size_t*)
 # endif
 function wint_t putwc (wchar_t, FILE*)
 function wint_t putwchar (wchar_t)
 function int swprintf (wchar_t*, size_t, const wchar_t*, ...)
 function int swscanf (const wchar_t*, const wchar_t*, ...)
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008 && !defined POSIX2024
 function wint_t towlower (wint_t)
 function wint_t towupper (wint_t)
 # endif
@@ -76,12 +76,12 @@ function int vswprintf (wchar_t*, size_t, const wchar_t*, va_list)
 # ifndef UNIX98
 function int vswscanf (const wchar_t*, const wchar_t*, va_list)
 # endif
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {wchar_t*} wcpcpy (wchar_t*, const wchar_t*)
 function {wchar_t*} wcpncpy (wchar_t*, const wchar_t*, size_t)
 # endif
 function size_t wcrtomb (char*, wchar_t, mbstate_t*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int wcscasecmp (const wchar_t*, const wchar_t*)
 function int wcscasecmp_l (const wchar_t*, const wchar_t*, locale_t)
 # endif
@@ -89,24 +89,24 @@ function {wchar_t*} wcscat (wchar_t*, const wchar_t*)
 function {wchar_t*} wcschr (const wchar_t*, wchar_t)
 function int wcscmp (const wchar_t*, const wchar_t*)
 function int wcscoll (const wchar_t*, const wchar_t*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int wcscoll_l (const wchar_t*, const wchar_t*, locale_t)
 # endif
 function {wchar_t*} wcscpy (wchar_t*, const wchar_t*)
 function size_t wcscspn (const wchar_t*, const wchar_t*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function {wchar_t*} wcsdup (const wchar_t*)
 # endif
 function size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*)
 function size_t wcslen (const wchar_t*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int wcsncasecmp (const wchar_t*, const wchar_t*, size_t)
 function int wcsncasecmp_l (const wchar_t*, const wchar_t*, size_t, locale_t)
 # endif
 function {wchar_t*} wcsncat (wchar_t*, const wchar_t*, size_t)
 function int wcsncmp (const wchar_t*, const wchar_t*, size_t)
 function {wchar_t*} wcsncpy (wchar_t*, const wchar_t*, size_t)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function size_t wcsnlen (const wchar_t*, size_t)
 function size_t wcsnrtombs (char*, const wchar_t**, size_t, size_t, mbstate_t*)
 # endif
@@ -132,15 +132,15 @@ function {unsigned long long int} wcstoull (const wchar_t*, wchar_t**, int)
 # if defined UNIX98 || defined XOPEN2K
 function {wchar_t*} wcswcs (const wchar_t*, const wchar_t*)
 # endif
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
 function int wcswidth (const wchar_t*, size_t)
 # endif
 function size_t wcsxfrm (wchar_t*, const wchar_t*, size_t)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function size_t wcsxfrm_l (wchar_t*, const wchar_t*, size_t, locale_t)
 # endif
 function int wctob (wint_t)
-# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008 && !defined POSIX2024
 function wctype_t wctype (const char*)
 function int wcwidth (wchar_t)
 # endif
diff --git a/conform/data/wctype.h-data b/conform/data/wctype.h-data
index f939f3c652..ae66c9ca91 100644
--- a/conform/data/wctype.h-data
+++ b/conform/data/wctype.h-data
@@ -2,7 +2,7 @@
 type wint_t
 type wctrans_t
 type wctype_t
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 type locale_t
 # endif
 
@@ -26,7 +26,7 @@ function wint_t towlower (wint_t)
 function wint_t towupper (wint_t)
 function wctrans_t wctrans (const char*)
 function wctype_t wctype (const char*)
-# if defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008 || defined POSIX2024
 function int iswalnum_l (wint_t, locale_t)
 function int iswalpha_l (wint_t, locale_t)
 function int iswblank_l (wint_t, locale_t)
diff --git a/conform/data/wordexp.h-data b/conform/data/wordexp.h-data
index eed4754e0c..7b5ebe030f 100644
--- a/conform/data/wordexp.h-data
+++ b/conform/data/wordexp.h-data
@@ -16,7 +16,7 @@ constant WRDE_BADCHAR
 constant WRDE_BADVAL
 constant WRDE_CMDSUB
 constant WRDE_NOSPACE
-# if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX2024
 constant WRDE_NOSYS
 # endif
 constant WRDE_SYNTAX
-- 
2.53.0



More information about the Libc-alpha mailing list