aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCollin Funk <collin.funk1@gmail.com>2025-04-04 20:48:25 -0700
committerJoseph Myers <josmyers@redhat.com>2025-04-10 18:39:05 +0000
commitd18213c6997a058a68bc2547dcb43cf77bc4504f (patch)
tree5e00dae13794fe7cb1c67c8f9f5cb8c8d1bfd8e6
parente53eb952b970ac94c97d74fb447418fb327ca096 (diff)
downloadglibc-d18213c6997a058a68bc2547dcb43cf77bc4504f.tar.xz
glibc-d18213c6997a058a68bc2547dcb43cf77bc4504f.zip
conform: Add initial support for C23.
Hi Joseph, As we discussed, this patch just makes C23 include every check that is performed by C11. I tested the commit by adding the ISO23 Make and Python variables to be the same as ISO11. So the only difference was compiling with -DISO23 instead of -DISO11. And changed the temporary directories to instead use the format f'/tmp/glibc-{self.standard}-{self.header}'. Then I used a shell script to run 'cmp' on each file in the ISO11 and ISO23 directories for each header to make sure they were the same. -- 8< -- Make C23 checks include every test that is performed by C11. Done by running the following command: find conform -name '*.h-data' | xargs sed -i \ -e 's| !defined ISO11| !defined ISO11 \&\& !defined ISO23|g' \ -e 's| defined ISO11| defined ISO11 \|\| defined ISO23|g' \ -e 's|ifdef ISO11|if defined ISO11 \|\| defined ISO23|g' \ -e 's|ifndef ISO11|if !defined ISO11 \&\& !defined ISO23|g' Signed-off-by: Collin Funk <collin.funk1@gmail.com>
-rw-r--r--conform/data/aio.h-data2
-rw-r--r--conform/data/arpa/inet.h-data2
-rw-r--r--conform/data/assert.h-data4
-rw-r--r--conform/data/complex.h-data2
-rw-r--r--conform/data/cpio.h-data2
-rw-r--r--conform/data/ctype.h-data4
-rw-r--r--conform/data/dirent.h-data2
-rw-r--r--conform/data/dlfcn.h-data2
-rw-r--r--conform/data/errno.h-data2
-rw-r--r--conform/data/fcntl.h-data2
-rw-r--r--conform/data/fenv.h-data2
-rw-r--r--conform/data/float.h-data4
-rw-r--r--conform/data/fmtmsg.h-data2
-rw-r--r--conform/data/fnmatch.h-data2
-rw-r--r--conform/data/ftw.h-data2
-rw-r--r--conform/data/glob.h-data2
-rw-r--r--conform/data/grp.h-data2
-rw-r--r--conform/data/iconv.h-data2
-rw-r--r--conform/data/iso646.h-data2
-rw-r--r--conform/data/langinfo.h-data2
-rw-r--r--conform/data/libgen.h-data2
-rw-r--r--conform/data/limits.h-data4
-rw-r--r--conform/data/locale.h-data4
-rw-r--r--conform/data/math.h-data10
-rw-r--r--conform/data/monetary.h-data2
-rw-r--r--conform/data/mqueue.h-data2
-rw-r--r--conform/data/ndbm.h-data2
-rw-r--r--conform/data/net/if.h-data2
-rw-r--r--conform/data/netdb.h-data2
-rw-r--r--conform/data/netinet/in.h-data2
-rw-r--r--conform/data/nl_types.h-data2
-rw-r--r--conform/data/poll.h-data2
-rw-r--r--conform/data/pthread.h-data2
-rw-r--r--conform/data/pwd.h-data2
-rw-r--r--conform/data/regex.h-data2
-rw-r--r--conform/data/sched.h-data2
-rw-r--r--conform/data/search.h-data2
-rw-r--r--conform/data/semaphore.h-data2
-rw-r--r--conform/data/setjmp.h-data8
-rw-r--r--conform/data/signal.h-data8
-rw-r--r--conform/data/spawn.h-data2
-rw-r--r--conform/data/stdalign.h-data2
-rw-r--r--conform/data/stdarg.h-data4
-rw-r--r--conform/data/stdbool.h-data2
-rw-r--r--conform/data/stddef.h-data4
-rw-r--r--conform/data/stdio.h-data20
-rw-r--r--conform/data/stdlib.h-data60
-rw-r--r--conform/data/stdnoreturn.h-data2
-rw-r--r--conform/data/string.h-data8
-rw-r--r--conform/data/strings.h-data2
-rw-r--r--conform/data/sys/ipc.h-data2
-rw-r--r--conform/data/sys/mman.h-data2
-rw-r--r--conform/data/sys/msg.h-data2
-rw-r--r--conform/data/sys/resource.h-data2
-rw-r--r--conform/data/sys/select.h-data2
-rw-r--r--conform/data/sys/sem.h-data2
-rw-r--r--conform/data/sys/shm.h-data2
-rw-r--r--conform/data/sys/socket.h-data2
-rw-r--r--conform/data/sys/stat.h-data2
-rw-r--r--conform/data/sys/statvfs.h-data2
-rw-r--r--conform/data/sys/time.h-data2
-rw-r--r--conform/data/sys/timeb.h-data2
-rw-r--r--conform/data/sys/times.h-data2
-rw-r--r--conform/data/sys/types.h-data2
-rw-r--r--conform/data/sys/uio.h-data2
-rw-r--r--conform/data/sys/un.h-data2
-rw-r--r--conform/data/sys/utsname.h-data2
-rw-r--r--conform/data/sys/wait.h-data2
-rw-r--r--conform/data/syslog.h-data2
-rw-r--r--conform/data/tar.h-data2
-rw-r--r--conform/data/termios.h-data2
-rw-r--r--conform/data/threads.h-data2
-rw-r--r--conform/data/time.h-data6
-rw-r--r--conform/data/uchar.h-data2
-rw-r--r--conform/data/ucontext.h-data2
-rw-r--r--conform/data/ulimit.h-data2
-rw-r--r--conform/data/unistd.h-data2
-rw-r--r--conform/data/utime.h-data2
-rw-r--r--conform/data/utmpx.h-data2
-rw-r--r--conform/data/wchar.h-data18
-rw-r--r--conform/data/wctype.h-data4
-rw-r--r--conform/data/wordexp.h-data2
82 files changed, 151 insertions, 151 deletions
diff --git a/conform/data/aio.h-data b/conform/data/aio.h-data
index adb291b6e1..7801faa0c6 100644
--- a/conform/data/aio.h-data
+++ b/conform/data/aio.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined XPG42
type {struct aiocb}
// Test elements of the AIO control struct.
diff --git a/conform/data/arpa/inet.h-data b/conform/data/arpa/inet.h-data
index 040b8212c7..c514690141 100644
--- a/conform/data/arpa/inet.h-data
+++ b/conform/data/arpa/inet.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
// in_port_t should have exactly 16 bits
type in_port_t
// in_addr_t should have exactly 32 bits
diff --git a/conform/data/assert.h-data b/conform/data/assert.h-data
index acdfef99e1..2344ee3237 100644
--- a/conform/data/assert.h-data
+++ b/conform/data/assert.h-data
@@ -1,9 +1,9 @@
macro assert
-#ifdef ISO11
+#if defined ISO11 || defined ISO23
macro static_assert
#endif
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
allow *_t
#endif
diff --git a/conform/data/complex.h-data b/conform/data/complex.h-data
index 4af7757bd7..0c267e47a3 100644
--- a/conform/data/complex.h-data
+++ b/conform/data/complex.h-data
@@ -74,7 +74,7 @@ function {long double complex} csqrtl (long double complex)
function {long double complex} ctanhl (long double complex)
function {long double complex} ctanl (long double complex)
-# if defined ISO11
+# if defined ISO11 || defined ISO23
macro-function {double complex} CMPLX (double, double)
macro-function {float complex} CMPLXF (float, float)
macro-function {long double complex} CMPLXL (long double, long double)
diff --git a/conform/data/cpio.h-data b/conform/data/cpio.h-data
index ac7d40fd5e..ab91f2c07f 100644
--- a/conform/data/cpio.h-data
+++ b/conform/data/cpio.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
constant C_IRUSR == 0000400
constant C_IWUSR == 0000200
constant C_IXUSR == 0000100
diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data
index 7e10794e46..84426f99fa 100644
--- a/conform/data/ctype.h-data
+++ b/con