diff --git a/conform/GlibcConform.pm b/conform/GlibcConform.pm
index 987d24b..fbe65b5 100644
--- a/conform/GlibcConform.pm
+++ b/conform/GlibcConform.pm
@@ -29,8 +29,8 @@ $CFLAGS{"ISO"} = "-ansi";
 $CFLAGS{"ISO99"} = "-std=c99";
 $CFLAGS{"ISO11"} = "-std=c11";
 $CFLAGS{"POSIX"} = "-D_POSIX_C_SOURCE=199506L -ansi";
-$CFLAGS{"XPG3"} = "-ansi -D_XOPEN_SOURCE";
-$CFLAGS{"XPG4"} = "-ansi -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED";
+$CFLAGS{"XPG4"} = "-ansi -D_XOPEN_SOURCE";
+$CFLAGS{"XPG42"} = "-ansi -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED";
 $CFLAGS{"UNIX98"} = "-ansi -D_XOPEN_SOURCE=500";
 $CFLAGS{"XOPEN2K"} = "-std=c99 -D_XOPEN_SOURCE=600";
 $CFLAGS{"XOPEN2K8"} = "-std=c99 -D_XOPEN_SOURCE=700";
diff --git a/conform/Makefile b/conform/Makefile
index 19404fd..1f38b30 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -25,7 +25,7 @@ include ../Makeconfig
 conformtest-headers-data := $(wildcard data/*.h-data) \
 			    $(wildcard data/*/*.h-data)
 
-conformtest-standards := ISO ISO99 ISO11 POSIX XPG3 XPG4 UNIX98 XOPEN2K \
+conformtest-standards := ISO ISO99 ISO11 POSIX XPG4 XPG42 UNIX98 XOPEN2K \
 			 POSIX2008 XOPEN2K8
 
 conformtest-headers-ISO := assert.h ctype.h errno.h float.h limits.h locale.h \
@@ -43,17 +43,17 @@ conformtest-headers-POSIX := $(conformtest-headers-ISO) aio.h dirent.h \
 			     sys/mman.h sys/stat.h sys/times.h sys/types.h \
 			     sys/utsname.h sys/wait.h tar.h termios.h \
 			     unistd.h utime.h wordexp.h
-# Missing XPG3 expectations for: regexp.h wchar.h.
-conformtest-headers-XPG3 := $(conformtest-headers-ISO) cpio.h dirent.h \
+# Missing XPG4 expectations for: regexp.h wchar.h.
+conformtest-headers-XPG4 := $(conformtest-headers-ISO) cpio.h dirent.h \
 			    fcntl.h fnmatch.h ftw.h glob.h grp.h iconv.h \
 			    langinfo.h monetary.h nl_types.h pwd.h regex.h \
 			    search.h sys/ipc.h sys/msg.h sys/sem.h sys/shm.h \
 			    sys/stat.h sys/times.h sys/types.h sys/utsname.h \
 			    sys/wait.h tar.h termios.h ulimit.h unistd.h \
 			    utime.h varargs.h wordexp.h
-# Missing XPG4 expectations for: re_comp.h regexp.h wchar.h.
-# XPG4 includes XTI, but xti.h is outside the scope of these tests.
-conformtest-headers-XPG4 := $(conformtest-headers-XPG3) arpa/inet.h fmtmsg.h \
+# Missing XPG42 expectations for: re_comp.h regexp.h wchar.h.
+# XPG42 includes XTI, but xti.h is outside the scope of these tests.
+conformtest-headers-XPG42 := $(conformtest-headers-XPG4) arpa/inet.h fmtmsg.h \
 			    libgen.h ndbm.h netdb.h netinet/in.h poll.h \
 			    strings.h stropts.h sys/mman.h sys/resource.h \
 			    sys/socket.h sys/statvfs.h sys/time.h sys/timeb.h \
@@ -150,25 +150,25 @@ $(conformtest-header-list-tests): $(objpfx)header-list-%.out: \
 
 # Pre-standard C feature no longer supported by GCC (obsoleted in
 # newer POSIX standards).
-test-xfail-XPG3/varargs.h/conform = yes
 test-xfail-XPG4/varargs.h/conform = yes
+test-xfail-XPG42/varargs.h/conform = yes
 test-xfail-UNIX98/varargs.h/conform = yes
 
 # Header not provided by glibc.
-test-xfail-XPG4/ndbm.h/conform = yes
+test-xfail-XPG42/ndbm.h/conform = yes
 test-xfail-UNIX98/ndbm.h/conform = yes
 test-xfail-XOPEN2K/ndbm.h/conform = yes
 test-xfail-XOPEN2K8/ndbm.h/conform = yes
 
 # Unsorted expected failures.
-test-xfail-XPG3/signal.h/conform = yes
-test-xfail-XPG3/sys/wait.h/conform = yes
-test-xfail-XPG4/arpa/inet.h/conform = yes
-test-xfail-XPG4/netdb.h/conform = yes
-test-xfail-XPG4/netinet/in.h/conform = yes
 test-xfail-XPG4/signal.h/conform = yes
 test-xfail-XPG4/sys/wait.h/conform = yes
-test-xfail-XPG4/ucontext.h/conform = yes
+test-xfail-XPG42/arpa/inet.h/conform = yes
+test-xfail-XPG42/netdb.h/conform = yes
+test-xfail-XPG42/netinet/in.h/conform = yes
+test-xfail-XPG42/signal.h/conform = yes
+test-xfail-XPG42/sys/wait.h/conform = yes
+test-xfail-XPG42/ucontext.h/conform = yes
 test-xfail-POSIX/sys/wait.h/conform = yes
 test-xfail-UNIX98/arpa/inet.h/conform = yes
 test-xfail-UNIX98/netdb.h/conform = yes
@@ -223,9 +223,9 @@ linknamespace-libs-xsi = $(linknamespace-libs-posix) \
 linknamespace-libs-ISO = $(linknamespace-libs-isoc)
 linknamespace-libs-ISO99 = $(linknamespace-libs-isoc)
 linknamespace-libs-ISO11 = $(linknamespace-libs-isoc)
-linknamespace-libs-XPG3 = $(linknamespace-libs-isoc) \
+linknamespace-libs-XPG4 = $(linknamespace-libs-isoc) \
 			  $(common-objpfx)crypt/libcrypt.a
-linknamespace-libs-XPG4 = $(linknamespace-libs-XPG3)
+linknamespace-libs-XPG42 = $(linknamespace-libs-XPG4)
 linknamespace-libs-POSIX = $(linknamespace-libs-thr)
 linknamespace-libs-UNIX98 = $(linknamespace-libs-xsi)
 linknamespace-libs-XOPEN2K = $(linknamespace-libs-xsi)
@@ -255,12 +255,12 @@ $(linknamespace-header-tests): $(objpfx)%/linknamespace.out: \
 
 # Pre-standard C feature no longer supported by GCC (obsoleted in
 # newer POSIX standards).
-test-xfail-XPG3/varargs.h/linknamespace = yes
 test-xfail-XPG4/varargs.h/linknamespace = yes
+test-xfail-XPG42/varargs.h/linknamespace = yes
 test-xfail-UNIX98/varargs.h/linknamespace = yes
 
 # Header not provided by glibc.
-test-xfail-XPG4/ndbm.h/linknamespace = yes
+test-xfail-XPG42/ndbm.h/linknamespace = yes
 test-xfail-UNIX98/ndbm.h/linknamespace = yes
 test-xfail-XOPEN2K/ndbm.h/linknamespace = yes
 test-xfail-XOPEN2K8/ndbm.h/linknamespace = yes
diff --git a/conform/data/aio.h-data b/conform/data/aio.h-data
index e87923e..adb291b 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 XPG3 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !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 2bd3aee..d4ab6bb 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 XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !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/complex.h-data b/conform/data/complex.h-data
index 7de888f..4af7757 100644
--- a/conform/data/complex.h-data
+++ b/conform/data/complex.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 macro complex
 macro _Complex_I
 optional-macro imaginary
diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data
index 3ee21c9..7e10794 100644
--- a/conform/data/ctype.h-data
+++ b/conform/data/ctype.h-data
@@ -12,7 +12,7 @@ function int isxdigit (int)
 function int tolower (int)
 function int toupper (int)
 
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int isblank (int)
 #endif
 
diff --git a/conform/data/dlfcn.h-data b/conform/data/dlfcn.h-data
index a954c9d..b6658ae 100644
--- a/conform/data/dlfcn.h-data
+++ b/conform/data/dlfcn.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42
 macro RTLD_LAZY
 macro RTLD_NOW
 macro RTLD_GLOBAL
diff --git a/conform/data/fcntl.h-data b/conform/data/fcntl.h-data
index ccaf98f..17596f5 100644
--- a/conform/data/fcntl.h-data
+++ b/conform/data/fcntl.h-data
@@ -7,7 +7,7 @@ constant F_SETFL
 constant F_GETLK
 constant F_SETLK
 constant F_SETLKW
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 constant F_GETOWN
 constant F_SETOWN
 #endif
@@ -36,7 +36,7 @@ constant O_TRUNC
 constant O_APPEND
 constant O_NONBLOCK
 constant O_SYNC
-#if !defined XPG3 && !defined XPG4
+#if !defined XPG4 && !defined XPG42
 constant O_DSYNC
 constant O_RSYNC
 #endif
diff --git a/conform/data/fenv.h-data b/conform/data/fenv.h-data
index bb33d4b..280b728 100644
--- a/conform/data/fenv.h-data
+++ b/conform/data/fenv.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 type fenv_t
 type fexcept_t
 
diff --git a/conform/data/float.h-data b/conform/data/float.h-data
index 350802a..7b98fc0 100644
--- a/conform/data/float.h-data
+++ b/conform/data/float.h-data
@@ -38,7 +38,7 @@ macro-constant FLT_MIN <= 1.0E-37
 macro-constant DBL_MIN <= 1.0E-37
 macro-constant LDBL_MIN <= 1.0E-37
 
-#if !defined ISO && !defined XPG3 && !defined XPG4 && !defined POSIX && !defined UNIX98
+#if !defined ISO && !defined XPG4 && !defined XPG42 && !defined POSIX && !defined UNIX98
 macro-int-constant DECIMAL_DIG >= 10
 macro-int-constant FLT_EVAL_METHOD
 #endif
diff --git a/conform/data/fmtmsg.h-data b/conform/data/fmtmsg.h-data
index e64d87c..c1b18ad 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 POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 macro MM_HARD
 constant MM_HARD
 
diff --git a/conform/data/ftw.h-data b/conform/data/ftw.h-data
index 9102bbe..340334b 100644
--- a/conform/data/ftw.h-data
+++ b/conform/data/ftw.h-data
@@ -1,5 +1,5 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
-# ifndef XPG3
+# ifndef XPG4
 type {struct FTW}
 element {struct FTW} int base
 element {struct FTW} int level
@@ -8,12 +8,12 @@ element {struct FTW} int level
 macro FTW_F
 macro FTW_D
 macro FTW_DNR
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 macro FTW_DP
 # endif
 macro FTW_NS
 
-# ifndef XPG3
+# ifndef XPG4
 macro FTW_SL
 macro FTW_SLN
 
@@ -24,7 +24,7 @@ macro FTW_CHDIR
 # endif
 
 function int ftw (const char*, int (*) (const char *, const struct stat*, int), int)
-# ifndef XPG3
+# ifndef XPG4
 function int nftw (const char*, int (*) (const char *, const struct stat*, int, struct FTW *), int, int)
 # endif
 
diff --git a/conform/data/grp.h-data b/conform/data/grp.h-data
index 53e880d..1688444 100644
--- a/conform/data/grp.h-data
+++ b/conform/data/grp.h-data
@@ -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 XPG3 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {struct group*} getgrent (void)
 function void endgrent (void)
 function void setgrent (void)
diff --git a/conform/data/inttypes.h-data b/conform/data/inttypes.h-data
index 8c076df..2ae5b95 100644
--- a/conform/data/inttypes.h-data
+++ b/conform/data/inttypes.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 #include "stdint.h-data"
 
 type imaxdiv_t
diff --git a/conform/data/iso646.h-data b/conform/data/iso646.h-data
index d4afaa5..9e307f7 100644
--- a/conform/data/iso646.h-data
+++ b/conform/data/iso646.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42
 macro and
 macro and_eq
 macro bitand
diff --git a/conform/data/langinfo.h-data b/conform/data/langinfo.h-data
index b80fef2..6bbb387 100644
--- a/conform/data/langinfo.h-data
+++ b/conform/data/langinfo.h-data
@@ -55,7 +55,7 @@ constant YESEXPR
 constant NOEXPR
 constant CRNCYSTR
 
-# if defined XPG3 || defined XPG4 || defined UNIX98
+# if defined XPG4 || defined XPG42 || defined UNIX98
 constant YESSTR
 constant NOSTR
 # endif
diff --git a/conform/data/libgen.h-data b/conform/data/libgen.h-data
index 443cd0b..e9eb5fa 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 POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !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 5ea68ff..23114a5 100644
--- a/conform/data/limits.h-data
+++ b/conform/data/limits.h-data
@@ -32,12 +32,12 @@ allow AIO_LISTIO_MAX
 allow AIO_MAX
 allow AIO_PRIO_DELTA_MAX
 allow ARG_MAX
-#if !defined POSIX && !defined XPG3
+#if !defined POSIX && !defined XPG4
 allow ATEXIT_MAX
 #endif
 allow CHILD_MAX
 allow DELAYTIMER_MAX
-#if !defined POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined POSIX && !defined POSIX2008 && !defined XPG4
 allow IOV_MAX
 #endif
 allow LOGIN_NAME_MAX
@@ -56,18 +56,18 @@ allow RTSIG_MAX
 allow SEM_NSEMS_MAX
 allow SEM_VALUE_MAX
 allow SIGQUEUE_MAX
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 allow SS_REPL_MAX
 #endif
 allow STREAM_MAX
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 allow SYMLOOP_MAX
 #endif
 allow TIMER_MAX
 allow TTY_NAME_MAX
 allow TZNAME_MAX
 
-#if !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined POSIX && !defined XPG4 && !defined XPG42
 allow FILESIZEBITS
 #endif
 allow LINK_MAX
@@ -76,7 +76,7 @@ allow MAX_INPUT
 allow NAME_MAX
 allow PATH_MAX
 allow PIPE_BUF
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 allow POSIX_ALLOC_SIZE_MIN
 allow POSIX_REC_INCR_XFER_SIZE
 allow POSIX_REC_MAX_XFER_SIZE
@@ -88,7 +88,7 @@ macro-constant BC_BASE_MAX >= _POSIX2_BC_BASE_MAX
 macro-constant BC_DIM_MAX >= _POSIX2_BC_DIM_MAX
 macro-constant BC_SCALE_MAX >= _POSIX2_BC_SCALE_MAX
 macro-constant BC_STRING_MAX >= _POSIX2_BC_STRING_MAX
-#if !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined POSIX && !defined XPG4 && !defined XPG42
 macro CHARCLASS_NAME_MAX
 #endif
 macro-constant COLL_WEIGHTS_MAX >= _POSIX2_COLL_WEIGHTS_MAX
@@ -102,7 +102,7 @@ constant _POSIX_CLOCKRES_MIN == 20000000
 constant _POSIX_AIO_LISTIO_MAX == 2
 constant _POSIX_AIO_MAX == 1
 constant _POSIX_ARG_MAX == 4096
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 constant _POSIX_CHILD_MAX == 25
 #else
 constant _POSIX_CHILD_MAX == 6
@@ -115,12 +115,12 @@ constant _POSIX_MAX_INPUT == 255
 constant _POSIX_MQ_OPEN_MAX == 8
 constant _POSIX_MQ_PRIO_MAX == 32
 constant _POSIX_NAME_MAX == 14
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 constant _POSIX_NGROUPS_MAX == 8
 #else
 constant _POSIX_NGROUPS_MAX == 0
 #endif
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 constant _POSIX_OPEN_MAX == 20
 #else
 constant _POSIX_OPEN_MAX == 16
@@ -134,7 +134,7 @@ constant _POSIX_SEM_VALUE_MAX == 32767
 constant _POSIX_SIGQUEUE_MAX == 32
 constant _POSIX_SSIZE_MAX == 32767
 constant _POSIX_STREAM_MAX == 8
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 optional-constant _POSIX_SS_REPL_MAX == 4
 optional-constant _POSIX_SYMLINK_MAX == 255
 optional-constant _POSIX_SYMLOOP_MAX == 8
@@ -144,7 +144,7 @@ constant _POSIX_THREAD_KEYS_MAX == 128
 constant _POSIX_THREAD_THREADS_MAX == 64
 constant _POSIX_TIMER_MAX == 32
 constant _POSIX_TTY_NAME_MAX == 9
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 constant _POSIX_TZNAME_MAX == 6
 #else
 constant _POSIX_TZNAME_MAX == 3
@@ -153,14 +153,14 @@ macro-constant _POSIX2_BC_BASE_MAX == 99
 macro-constant _POSIX2_BC_DIM_MAX == 2048
 macro-constant _POSIX2_BC_SCALE_MAX == 99
 macro-constant _POSIX2_BC_STRING_MAX == 1000
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 constant _POSIX2_CHARCLASS_NAME_MAX == 14
 #endif
 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 XPG3
+#if !defined POSIX && !defined POSIX2008 && !defined XPG4
 optional-constant _XOPEN_IOV_MAX == 16
 #endif
 
@@ -188,12 +188,12 @@ optional-constant NL_TEXTMAX
 optional-constant NZERO >= 20
 # endif
 #endif
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 optional-constant TMP_MAX >= 10000
 #endif
 
 allow *_MAX
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 allow *_MIN
 #endif
 allow *_t
diff --git a/conform/data/locale.h-data b/conform/data/locale.h-data
index adcd25f..266264ac6 100644
--- a/conform/data/locale.h-data
+++ b/conform/data/locale.h-data
@@ -17,7 +17,7 @@ element {struct lconv} char p_cs_precedes
 element {struct lconv} char p_sep_by_space
 element {struct lconv} char p_sign_posn
 element {struct lconv} {char*} thousands_sep
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 element {struct lconv} char int_n_cs_precedes
 element {struct lconv} char int_n_sep_by_space
 element {struct lconv} char int_n_sign_posn
diff --git a/conform/data/math.h-data b/conform/data/math.h-data
index 7153333..0c50755 100644
--- a/conform/data/math.h-data
+++ b/conform/data/math.h-data
@@ -1,7 +1,7 @@
 macro-constant HUGE_VAL {double}
 
 #if !defined ISO && !defined POSIX
-# if !defined XPG3 && !defined XPG4 && !defined UNIX98
+# if !defined XPG4 && !defined XPG42 && !defined UNIX98
 macro fpclassify
 macro isfinite
 macro isinf
@@ -17,7 +17,7 @@ macro isunordered
 type float_t
 type double_t
 # endif
-# if defined XPG3 || defined XPG4 || defined UNIX98
+# if defined XPG4 || defined XPG42 || defined UNIX98
 function int isnan (double)
 # endif
 
@@ -38,7 +38,7 @@ constant M_SQRT1_2
 
 constant MAXFLOAT
 # endif
-# if !defined XPG3 && !defined XPG4 && !defined UNIX98
+# if !defined XPG4 && !defined XPG42 && !defined UNIX98
 macro-constant HUGE_VALF {float}
 macro-constant HUGE_VALL {long double}
 macro-constant INFINITY {float}
@@ -69,13 +69,13 @@ function double asin (double)
 function double atan (double)
 function double atan2 (double, double)
 function double ceil (double)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function double copysign (double, double)
 #endif
 function double cos (double)
 function double cosh (double)
 function double exp (double)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function double exp2 (double)
 #endif
 function double fabs (double)
@@ -85,7 +85,7 @@ function double frexp (double, int*)
 function double ldexp (double, int)
 function double log (double)
 function double log10 (double)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function double log2 (double)
 #endif
 function double modf (double, double*)
@@ -99,7 +99,7 @@ function double tanh (double)
 function double erf (double)
 function double erfc (double)
 #endif
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 function double gamma (double)
 #endif
 #if !defined ISO && !defined POSIX
@@ -110,7 +110,7 @@ function double j1 (double)
 function double jn (int, double)
 # endif
 function double lgamma (double)
-# if !defined XPG3 && !defined XPG4 && !defined UNIX98
+# if !defined XPG4 && !defined XPG42 && !defined UNIX98
 function double tgamma (double)
 # endif
 # if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
@@ -118,7 +118,7 @@ function double y0 (double)
 function double y1 (double)
 function double yn (int, double)
 # endif
-# if !defined XPG3
+# if !defined XPG4
 function double acosh (double)
 function double asinh (double)
 function double atanh (double)
@@ -128,13 +128,13 @@ function int ilogb (double)
 function double log1p (double)
 function double logb (double)
 function double nextafter (double, double)
-#  if !defined XPG4 && !defined UNIX98
+#  if !defined XPG42 && !defined UNIX98
 function double nexttoward (double, long double)
 function double nearbyint (double)
 #  endif
 function double remainder (double, double)
 function double rint (double)
-#  if !defined XPG4 && !defined UNIX98
+#  if !defined XPG42 && !defined UNIX98
 function double round (double)
 function double trunc (double)
 function long lrint (double)
@@ -143,10 +143,10 @@ function long lround (double)
 function {long long} llround (double)
 function double remquo (double, double, int*)
 #  endif
-#  if defined XPG4 || defined UNIX98 || defined XOPEN2K
+#  if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function double scalb (double, double)
 #  endif
-#  if !defined XPG4 && !defined UNIX98
+#  if !defined XPG42 && !defined UNIX98
 function double scalbn (double, int)
 function double scalbln (double, long)
 function double fdim (double, double)
@@ -163,7 +163,7 @@ allow signgam
 # endif
 #endif
 
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function float acosf (float)
 function float asinf (float)
 function float atanf (float)
@@ -330,6 +330,6 @@ allow tanhl
 #if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
 #endif
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 allow FP_[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
 #endif
diff --git a/conform/data/mqueue.h-data b/conform/data/mqueue.h-data
index c7d40ba..42ccd85 100644
--- a/conform/data/mqueue.h-data
+++ b/conform/data/mqueue.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
 // should test for not an array type.
 type mqd_t
 
diff --git a/conform/data/ndbm.h-data b/conform/data/ndbm.h-data
index 43c6a38..2ee7a59 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 POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 type datum
 element datum {void*} dptr
 element datum size_t dsize
diff --git a/conform/data/net/if.h-data b/conform/data/net/if.h-data
index fd85095..8a4d89c 100644
--- a/conform/data/net/if.h-data
+++ b/conform/data/net/if.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 type {struct if_nameindex}
 
 element {struct if_nameindex} {unsigned int} if_index
diff --git a/conform/data/netdb.h-data b/conform/data/netdb.h-data
index 7258a51..c6d8b70 100644
--- a/conform/data/netdb.h-data
+++ b/conform/data/netdb.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
 optional-type in_port_t
 optional-type in_addr_t
 
@@ -45,7 +45,7 @@ macro NO_RECOVERY
 macro TRY_AGAIN
 #endif
 
-#if !defined XPG4 && !defined UNIX98
+#if !defined XPG42 && !defined UNIX98
 type {struct addrinfo}
 element {struct addrinfo} int ai_flags
 element {struct addrinfo} int ai_family
@@ -86,7 +86,7 @@ function void endhostent (void)
 function void endnetent (void)
 function void endprotoent (void)
 function void endservent (void)
-#if !defined XPG4 && !defined UNIX98
+#if !defined XPG42 && !defined UNIX98
 function void freeaddrinfo (struct addrinfo*)
 function {const char*} gai_strerror (int)
 function int getaddrinfo (const char*, const char*, const struct addrinfo*, struct addrinfo**)
@@ -94,7 +94,7 @@ function int getaddrinfo (const char*, const char*, const struct addrinfo*, stru
 function {struct hostent*} gethostbyaddr (const void*, socklen_t, int)
 function {struct hostent*} gethostbyname (const char*)
 function {struct hostent*} gethostent (void)
-#if !defined XPG4 && !defined UNIX98
+#if !defined XPG42 && !defined UNIX98
 function int getnameinfo (const struct sockaddr*, socklen_t, char*, socklen_t, char*, socklen_t, int)
 #endif
 function {struct netent*} getnetbyaddr (uint32_t, int)
diff --git a/conform/data/netinet/in.h-data b/conform/data/netinet/in.h-data
index 9284326..ac26a74 100644
--- a/conform/data/netinet/in.h-data
+++ b/conform/data/netinet/in.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
 type in_port_t
 type in_addr_t
 
diff --git a/conform/data/poll.h-data b/conform/data/poll.h-data
index 84777df..f7ebb91 100644
--- a/conform/data/poll.h-data
+++ b/conform/data/poll.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
 type {struct pollfd}
 element {struct pollfd} int fd
 element {struct pollfd} {short int} events
diff --git a/conform/data/pthread.h-data b/conform/data/pthread.h-data
index c1e32c8..6b10499 100644
--- a/conform/data/pthread.h-data
+++ b/conform/data/pthread.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
 constant PTHREAD_CANCEL_ASYNCHRONOUS
 constant PTHREAD_CANCEL_ENABLE
 constant PTHREAD_CANCEL_DEFERRED
diff --git a/conform/data/pwd.h-data b/conform/data/pwd.h-data
index 2c4a6fe..e86433d 100644
--- a/conform/data/pwd.h-data
+++ b/conform/data/pwd.h-data
@@ -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 XPG3 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
 function void endpwent (void)
 function {struct passwd*} getpwent (void)
 function void setpwent (void)
diff --git a/conform/data/sched.h-data b/conform/data/sched.h-data
index 610406d..63e5eb2 100644
--- a/conform/data/sched.h-data
+++ b/conform/data/sched.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
 # if defined POSIX || defined UNIX98
 #  include "time.h-data"
 # else
diff --git a/conform/data/search.h-data b/conform/data/search.h-data
index 3d66fdf..e99f7e6 100644
--- a/conform/data/search.h-data
+++ b/conform/data/search.h-data
@@ -17,12 +17,12 @@ constant leaf
 function int hcreate (size_t)
 function void hdestroy (void)
 function {ENTRY*} hsearch (ENTRY, ACTION)
-#ifndef XPG3
+#ifndef XPG4
 function void insque (void*, void*)
 #endif
 function {void*} lfind (const void*, const void*, size_t*, size_t, int (*)(const void*, const void*))
 function {void*} lsearch (const void*, void*, size_t*, size_t, int (*)(const void*, const void*))
-#ifndef XPG3
+#ifndef XPG4
 function void remque (void*)
 #endif
 function {void*} tdelete (const void*, void**, int(*)(const void*, const void*))
diff --git a/conform/data/semaphore.h-data b/conform/data/semaphore.h-data
index 8c3497b..7c26cd3 100644
--- a/conform/data/semaphore.h-data
+++ b/conform/data/semaphore.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
 type sem_t
 
 constant SEM_FAILED
diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data
index 1443215..3651e86 100644
--- a/conform/data/signal.h-data
+++ b/conform/data/signal.h-data
@@ -81,18 +81,18 @@ macro-int-constant SIGSTOP {int} > 0
 macro-int-constant SIGTSTP {int} > 0
 macro-int-constant SIGTTIN {int} > 0
 macro-int-constant SIGTTOU {int} > 0
-# ifndef XPG3
+# ifndef XPG4
 macro-int-constant SIGBUS {int} > 0
 # endif
-# if !defined POSIX && !defined XPG3
+# if !defined POSIX && !defined XPG4
 macro-int-constant SIGPOLL {int} > 0
 macro-int-constant SIGPROF {int} > 0
 macro-int-constant SIGSYS {int} > 0
 # endif
-# if !defined POSIX && !defined XPG3 && !defined POSIX2008
+# if !defined POSIX && !defined XPG4 && !defined POSIX2008
 macro-int-constant SIGTRAP {int} > 0
 # endif
-# if !defined POSIX && !defined XPG3
+# if !defined POSIX && !defined XPG4
 macro-int-constant SIGURG {int} > 0
 macro-int-constant SIGVTALRM {int} > 0
 macro-int-constant SIGXCPU {int} > 0
@@ -147,7 +147,7 @@ element {struct sigstack} int ss_onstack
 element {struct sigstack} {void*} ss_sp
 # endif
 
-# ifndef XPG3
+# ifndef XPG4
 type siginfo_t
 
 element siginfo_t int si_signo
@@ -162,12 +162,12 @@ element siginfo_t {void*} si_addr
 element siginfo_t int si_status
 element siginfo_t long si_band
 #  endif
-#  ifndef XPG4
+#  ifndef XPG42
 element siginfo_t {union sigval} si_value
 #  endif
 # endif
 
-# if !defined POSIX && !defined XPG3
+# if !defined POSIX && !defined XPG4
 constant ILL_ILLOPC
 constant ILL_ILLOPN
 constant ILL_ILLADR
@@ -202,7 +202,7 @@ constant POLL_ERR
 constant POLL_PRI
 constant POLL_HUP
 # endif
-# if !defined POSIX && !defined XPG3 && !defined POSIX2008
+# if !defined POSIX && !defined XPG4 && !defined POSIX2008
 constant TRAP_BRKPT
 constant TRAP_TRACE
 # endif
@@ -219,7 +219,7 @@ function int kill (pid_t, int)
 # if !defined POSIX && !defined POSIX2008
 function int killpg (pid_t, int)
 # endif
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 function int pthread_kill (pthread_t, int)
 function int pthread_sigmask (int, const sigset_t*, sigset_t*)
 # endif
@@ -242,7 +242,7 @@ function int sigpause (int)
 # endif
 function int sigpending (sigset_t*)
 function int sigprocmask (int, const sigset_t*, sigset_t*)
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 function int sigqueue (pid_t, int, const union sigval)
 # endif
 # if !defined POSIX && !defined POSIX2008
@@ -253,11 +253,11 @@ function void (*sigset (int, void(*)(int)))(int)
 function int sigstack (struct sigstack*, struct sigstack*)
 # endif
 function int sigsuspend (const sigset_t*)
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 function int sigtimedwait (const sigset_t*, siginfo_t*, const struct timespec*)
 # endif
 function int sigwait (const sigset_t*, int*)
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 function int sigwaitinfo (const sigset_t*, siginfo_t*)
 # endif
 # if defined XOPEN2K8 || defined POSIX2008
@@ -269,19 +269,19 @@ function void psignal (int, const char*)
 // poorfnmatch implementation doesn't grok the right form.
 allow sa_*
 allow SA_*
-# ifndef XPG3
+# ifndef XPG4
 allow si_*
 allow SI_*
 # endif
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 allow sigev_*
 allow SIGEV_*
 allow sival_*
 # endif
-# if !defined POSIX && !defined XPG3 && !defined XPG4
+# if !defined POSIX && !defined XPG4 && !defined XPG42
 allow uc_*
 # endif
-# if !defined POSIX && !defined XPG3
+# if !defined POSIX && !defined XPG4
 allow BUS_*
 allow CLD_*
 allow FPE_*
@@ -289,7 +289,7 @@ allow ILL_*
 allow POLL_*
 allow SEGV_*
 # endif
-# if !defined POSIX && !defined XPG3 && !defined POSIX2008
+# if !defined POSIX && !defined XPG4 && !defined POSIX2008
 allow SS_*
 allow SV_*
 allow TRAP_*
diff --git a/conform/data/spawn.h-data b/conform/data/spawn.h-data
index fb206f7..de4aaa7 100644
--- a/conform/data/spawn.h-data
+++ b/conform/data/spawn.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 type posix_spawnattr_t
 type posix_spawn_file_actions_t
 # if defined XOPEN2K8 || defined POSIX2008
diff --git a/conform/data/stdbool.h-data b/conform/data/stdbool.h-data
index 9ef218c..a030e9c 100644
--- a/conform/data/stdbool.h-data
+++ b/conform/data/stdbool.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 macro bool
 macro-int-constant true {int} == 1
 macro-int-constant false {int} == 0
diff --git a/conform/data/stdint.h-data b/conform/data/stdint.h-data
index f668951..4e84e17 100644
--- a/conform/data/stdint.h-data
+++ b/conform/data/stdint.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 // The requirements for some types and corresponding macros are from POSIX.
 type int8_t
 type int16_t
diff --git a/conform/data/stdio.h-data b/conform/data/stdio.h-data
index 168128e..f69802c 100644
--- a/conform/data/stdio.h-data
+++ b/conform/data/stdio.h-data
@@ -52,7 +52,7 @@ type ssize_t
 function void clearerr (FILE*)
 #if !defined ISO && !defined ISO99 && !defined ISO11
 function {char*} ctermid (char*)
-# if defined XPG3 || defined XPG4 || defined UNIX98
+# if defined XPG4 || defined XPG42 || defined UNIX98
 function {char*} cuserid (char*)
 # endif
 #endif
@@ -109,13 +109,13 @@ function int getchar_unlocked (void)
 function ssize_t getdelim (char**, size_t*, int, FILE*)
 function ssize_t getline (char**, size_t*, FILE*)
 #endif
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 function int getopt (int, char *const[], const char *)
 #endif
 #if !defined ISO11
 function {char*} gets (char*)
 #endif
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 function int getw (FILE*)
 #endif
 #if defined XOPEN2K8 || defined POSIX2008
@@ -136,7 +136,7 @@ function int putc_unlocked (int, FILE*)
 function int putchar_unlocked (int)
 #endif
 function int puts (const char*)
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 function int putw (int, FILE*)
 #endif
 function int remove (const char*)
@@ -148,12 +148,12 @@ function void rewind (FILE*)
 function int scanf (const char*, ...)
 function void setbuf (FILE*, char*)
 function int setvbuf (FILE*, char*, int, size_t)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42
 function int snprintf (char*, size_t, const char*, ...)
 #endif
 function int sprintf (char *, const char *, ...)
 function int sscanf (const char*, const char*, ...)
-#if defined XPG3 || defined XPG4 || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8
+#if defined XPG4 || defined XPG42 || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8
 function {char*} tempnam (const char*, const char*)
 #endif
 function {FILE*} tmpfile (void)
@@ -163,18 +163,18 @@ function int ungetc (int, FILE*)
 function int vdprintf (int, const char*, va_list)
 #endif
 function int vfprintf (FILE*, const char*, va_list)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int vfscanf (FILE*, const char*, va_list)
 #endif
 function int vprintf (const char*, va_list)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int vscanf (const char*, va_list)
 #endif
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42
 function int vsnprintf (char*, size_t, const char*, va_list)
 #endif
 function int vsprintf (char*, const char*, va_list)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int vsscanf (const char*, const char*, va_list)
 #endif
 
diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data
index cf839f3..d8fcccc 100644
--- a/conform/data/stdlib.h-data
+++ b/conform/data/stdlib.h-data
@@ -32,10 +32,10 @@ macro WSTOPSIG
 macro WTERMSIG
 #endif
 
-#if !defined ISO && !defined XPG3 && !defined XPG4 && !defined UNIX98 && !defined POSIX
+#if !defined ISO && !defined XPG4 && !defined XPG42 && !defined UNIX98 && !defined POSIX
 function void _Exit (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function long a64l (const char*)
 #endif
 function void abort (void)
@@ -50,7 +50,7 @@ function int at_quick_exit (void (*) (void))
 function double atof (const char*)
 function int atoi (const char*)
 function {long int} atol (const char*)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function {long long} atoll (const char*)
 #endif
 function {void*} bsearch (const void*, const void*, size_t, size_t, int(*)(const void*, const void*))
@@ -59,32 +59,32 @@ function div_t div (int, int)
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function double drand48 (void)
 #endif
-#if defined XPG4 || defined UNIX98 || defined XOPEN2K
+#if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function {char*} ecvt (double, int, int*, int*)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function double erand48 (unsigned short int[3])
 #endif
 function void exit (int)
-#if defined XPG4 || defined UNIX98 || defined XOPEN2K
+#if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function {char*} fcvt (double, int, int*, int*)
 #endif
 function void free (void*)
-#if defined XPG4 || defined UNIX98 || defined XOPEN2K
+#if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function {char*} gcvt (double, int, char*)
 #endif
 function {char*} getenv (const char*)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX
 function int getsubopt (char**, char *const*, char**)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function int grantpt (int)
 function {char*} initstate (unsigned int, char*, size_t)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function {long int} jrand48 (unsigned short int[3])
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} l64a (long)
 #endif
 function {long int} labs (long int)
@@ -92,7 +92,7 @@ function {long int} labs (long int)
 function void lcong48 (unsigned short int[7])
 #endif
 function ldiv_t ldiv (long int, long int)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function {long long} llabs (long long)
 function lldiv_t lldiv (long long, long long)
 #endif
@@ -106,10 +106,10 @@ function int mbtowc (wchar_t*, const char*, size_t)
 #if defined XOPEN2K8 || defined POSIX2008
 function {char*} mkdtemp (char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
 function {char*} mktemp (char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX
 function int mkstemp (char*)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
@@ -122,7 +122,7 @@ function int posix_memalign (void**, size_t, size_t)
 #if defined XOPEN2K || defined XOPEN2K8
 function int posix_openpt (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} ptsname (int)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
@@ -136,54 +136,54 @@ function int rand (void)
 #if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
 function int rand_r (unsigned int*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function long random (void)
 #endif
 function {void*} realloc (void*, size_t)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} realpath (const char*, char*)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function {unsigned short int*} seed48 (unsigned short int[3])
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !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 POSIX && !defined POSIX2008
 function void setkey (const char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} setstate (char*)
 #endif
 function void srand (unsigned int)
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function void srand48 (long int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function void srandom (unsigned)
 #endif
 function double strtod (const char*, char**)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function float strtof (const char*, char**)
 function {long double} strtold (const char*, char**)
 #endif
 function {long int} strtol (const char*, char**, int)
 function {unsigned long int} strtoul (const char*, char**, int)
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function {long long int} strtoll (const char*, char**, int)
 function {unsigned long long int} strtoull (const char*, char**, int)
 #endif
 function int system (const char*)
-#if defined XPG4 || defined UNIX98
+#if defined XPG42 || defined UNIX98
 function int ttyslot (void)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function int unlockpt (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int unsetenv (const char*)
 #endif
-#if defined XPG4 || defined UNIX98
+#if defined XPG42 || defined UNIX98
 function {void*} valloc (size_t)
 #endif
 function size_t wcstombs (char*, const wchar_t*, size_t)
diff --git a/conform/data/string.h-data b/conform/data/string.h-data
index 39fa76c..e06f941 100644
--- a/conform/data/string.h-data
+++ b/conform/data/string.h-data
@@ -27,7 +27,7 @@ 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 XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} strdup (const char*)
 #endif
 function {char*} strerror (int)
diff --git a/conform/data/strings.h-data b/conform/data/strings.h-data
index d22609a..13827eb 100644
--- a/conform/data/strings.h-data
+++ b/conform/data/strings.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
 # if !defined XOPEN2K8 && !defined POSIX2008
 function int bcmp (const void*, const void*, size_t)
 function void bcopy (const void*, void*, size_t)
diff --git a/conform/data/stropts.h-data b/conform/data/stropts.h-data
index e43dac8..c4b1343 100644
--- a/conform/data/stropts.h-data
+++ b/conform/data/stropts.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
 type {struct bandinfo}
 
 element {struct bandinfo} {unsigned char} bi_pri
diff --git a/conform/data/sys/mman.h-data b/conform/data/sys/mman.h-data
index 3a88684..a743883 100644
--- a/conform/data/sys/mman.h-data
+++ b/conform/data/sys/mman.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4
 constant PROT_READ
 constant PROT_WRITE
 constant PROT_EXEC
@@ -17,7 +17,7 @@ constant MCL_FUTURE
 
 constant MAP_FAILED
 
-# if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+# if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 constant POSIX_MADV_NORMAL
 constant POSIX_MADV_SEQUENTIAL
 constant POSIX_MADV_RANDOM
diff --git a/conform/data/sys/resource.h-data b/conform/data/sys/resource.h-data
index 5c46dea..cedbee1 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 POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !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 824fc2a..44d63eb 100644
--- a/conform/data/sys/select.h-data
+++ b/conform/data/sys/select.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 type time_t
 type suseconds_t
 
@@ -14,7 +14,7 @@ element {struct timespec} time_t tv_sec
 xfail[x86_64-x32-linux]-element {struct timespec} long tv_nsec
 
 type fd_set
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 element fd_set long fds_bits []
 #endif
 
diff --git a/conform/data/sys/socket.h-data b/conform/data/sys/socket.h-data
index 7cdfec5..8796c57 100644
--- a/conform/data/sys/socket.h-data
+++ b/conform/data/sys/socket.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
 type socklen_t
 
 type sa_family_t
@@ -113,7 +113,7 @@ function int setsockopt (int, int, int, const void*, socklen_t)
 function int shutdown (int, int)
 function int socket (int, int, int)
 function int socketpair (int, int, int, int[2])
-#if !defined XPG4 && !defined UNIX98
+#if !defined XPG42 && !defined UNIX98
 function int sockatmark (int)
 #endif
 
diff --git a/conform/data/sys/stat.h-data b/conform/data/sys/stat.h-data
index 07d55e6..84452ae 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
 
-#if !defined POSIX && !defined POSIX2008 && !defined XPG3 && !defined XPG4
+#if !defined POSIX && !defined POSIX2008 && !defined XPG4 && !defined XPG42
 type blkcnt_t
 type blksize_t
 #endif
@@ -46,9 +46,9 @@ element {struct stat} {struct timespec} st_atim
 element {struct stat} {struct timespec} st_mtim
 element {struct stat} {struct timespec} st_ctim
 #endif
-#if !defined XPG3 && !defined POSIX && !defined POSIX2008
-# ifdef XPG4
-// The XPG4 use of "long" for these fields is not compatible with the
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008
+# 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
 // range of "long".
 xfail-element {struct stat} long st_blksize
@@ -73,7 +73,7 @@ constant S_IFCHR
 constant S_IFIFO
 constant S_IFREG
 constant S_IFDIR
-# ifndef XPG3
+# ifndef XPG4
 constant S_IFLNK
 constant S_IFSOCK
 # endif
@@ -93,7 +93,7 @@ constant S_IWOTH
 constant S_IXOTH
 constant S_ISUID
 constant S_ISGID
-#if !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008
 constant S_ISVTX
 #endif
 
@@ -102,7 +102,7 @@ macro S_ISCHR
 macro S_ISDIR
 macro S_ISFIFO
 macro S_ISREG
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 macro S_ISLNK
 macro S_ISSOCK
 #endif
@@ -111,7 +111,7 @@ macro S_ISSOCK
 optional-macro S_TYPEISMQ
 optional-macro S_TYPEISSEM
 optional-macro S_TYPEISSHM
-# if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+# if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 optional-macro S_TYPEISTMO
 # endif
 
@@ -121,7 +121,7 @@ constant UTIME_OMIT
 # endif
 
 function int chmod (const char*, mode_t)
-# ifndef XPG3
+# ifndef XPG4
 function int fchmod (int, mode_t)
 # endif
 # if defined XOPEN2K8 || defined POSIX2008
@@ -132,7 +132,7 @@ function int fstat (int, struct stat*)
 function int fstatat (int, const char*, struct stat*, int)
 function int futimens (int, const struct timespec[2])
 # endif
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function int lstat (const char*, struct stat*)
 #endif
 function int mkdir (const char*, mode_t)
@@ -143,7 +143,7 @@ function int mkfifo (const char*, mode_t)
 # if defined XOPEN2K8 || defined POSIX2008
 function int mkfifoat (int, const char*, mode_t)
 # endif
-# if !defined XPG3 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
 function int mknod (const char*, mode_t, dev_t)
 # endif
 # ifdef XOPEN2K8
diff --git a/conform/data/sys/statvfs.h-data b/conform/data/sys/statvfs.h-data
index fa56fbe..efdbff0 100644
--- a/conform/data/sys/statvfs.h-data
+++ b/conform/data/sys/statvfs.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
 type {struct statvfs}
 
 element {struct statvfs} {unsigned long} f_bsize
diff --git a/conform/data/sys/time.h-data b/conform/data/sys/time.h-data
index 1d07bd6..30523e1 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 POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !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 08ae3c0..9638f73 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 POSIX && !defined XPG3 && !defined POSIX2008 && !defined XOPEN2K8
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !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 496ebf4..cc28eb7 100644
--- a/conform/data/sys/types.h-data
+++ b/conform/data/sys/types.h-data
@@ -1,11 +1,11 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11
 #if !defined POSIX
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 type blkcnt_t
 type blksize_t
 # endif
 type clock_t
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 type clockid_t
 # endif
 #endif
@@ -26,7 +26,7 @@ type mode_t
 type nlink_t
 type off_t
 type pid_t
-#if !defined XPG3 && !defined XPG4
+#if !defined XPG4 && !defined XPG42
 type pthread_attr_t
 #if !defined POSIX && !defined UNIX98
 type pthread_barrier_t
diff --git a/conform/data/sys/uio.h-data b/conform/data/sys/uio.h-data
index 06cea07..b9fc661 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 POSIX && !defined XPG3 && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined POSIX2008
 type {struct iovec}
 
 element {struct iovec} {void*} iov_base
diff --git a/conform/data/sys/un.h-data b/conform/data/sys/un.h-data
index 3bf7968..1068440 100644
--- a/conform/data/sys/un.h-data
+++ b/conform/data/sys/un.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
 type {struct sockaddr_un}
 
 element {struct sockaddr_un} sa_family_t sun_family
diff --git a/conform/data/sys/wait.h-data b/conform/data/sys/wait.h-data
index e0787e3..74a062e 100644
--- a/conform/data/sys/wait.h-data
+++ b/conform/data/sys/wait.h-data
@@ -48,7 +48,7 @@ element siginfo_t long si_band
 element siginfo_t {union sigval} si_value
 #endif
 
-#if !defined POSIX && !defined XPG3 && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined POSIX && !defined XPG4 && !defined XOPEN2K8 && !defined POSIX2008
 type {struct rusage}
 
 element {struct rusage} {struct timeval} ru_utime
diff --git a/conform/data/syslog.h-data b/conform/data/syslog.h-data
index 05619cf..6604d76 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 POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 constant LOG_PID
 constant LOG_CONS
 constant LOG_NDELAY
diff --git a/conform/data/termios.h-data b/conform/data/termios.h-data
index 778408f..9aec2f5 100644
--- a/conform/data/termios.h-data
+++ b/conform/data/termios.h-data
@@ -144,7 +144,7 @@ function int tcdrain (int)
 function int tcflow (int, int)
 function int tcflush (int, int)
 function int tcgetattr (int, struct termios*)
-#if !defined POSIX && !defined XPG3
+#if !defined POSIX && !defined XPG4
 function pid_t tcgetsid (int)
 #endif
 function int tcsendbreak (int, int)
diff --git a/conform/data/tgmath.h-data b/conform/data/tgmath.h-data
index 5f72502..d852adc 100644
--- a/conform/data/tgmath.h-data
+++ b/conform/data/tgmath.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 #include "math.h-data"
 #include "complex.h-data"
 
diff --git a/conform/data/time.h-data b/conform/data/time.h-data
index ee67fcc..9c1c195 100644
--- a/conform/data/time.h-data
+++ b/conform/data/time.h-data
@@ -5,7 +5,7 @@ macro CLOCKS_PER_SEC {clock_t}
 macro-int-constant TIME_UTC > 0
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined XPG4 && !defined XPG42
 type {struct timespec}
 
 element {struct timespec} time_t tv_sec
@@ -46,7 +46,7 @@ function int timespec_get (struct timespec *, int)
 # if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
 symbol CLK_TCK
 # endif
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 #  if !defined POSIX && !defined UNIX98
 constant CLOCK_PROCESS_CPUTIME_ID
 constant CLOCK_THREAD_CPUTIME_ID
@@ -73,31 +73,31 @@ type locale_t
 tag {struct sigevent}
 # endif
 
-# if !defined XPG3 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
 variable int getdate_err
 # endif
 
 function {char*} asctime_r (const struct tm*, char*)
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int clock_getcpuclockid (pid_t, clockid_t*)
 #endif
-#if !defined XPG3 && !defined XPG4
+#if !defined XPG4 && !defined XPG42
 function int clock_getres (clockid_t, struct timespec*)
 function int clock_gettime (clockid_t, struct timespec*)
 #endif
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int clock_nanosleep (clockid_t, int, const struct timespec*, struct timespec*)
 #endif
-#if !defined XPG3 && !defined XPG4
+#if !defined XPG4 && !defined XPG42
 function int clock_settime (clockid_t, const struct timespec*)
 #endif
 function {char*} ctime_r (const time_t*, char*)
-# if !defined XPG3 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {struct tm*} getdate (const char*)
 # endif
 function {struct tm*} gmtime_r (const time_t*, struct tm*)
 function {struct tm*} localtime_r (const time_t*, struct tm*)
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 function int nanosleep (const struct timespec*, struct timespec*)
 # endif
 # if defined XOPEN2K8 || defined POSIX2008
@@ -106,7 +106,7 @@ function size_t strftime_l (char*, size_t, const char*, const struct tm*, locale
 # if !defined POSIX && !defined POSIX2008
 function {char*} strptime (const char*, const char*, struct tm*)
 # endif
-# if !defined XPG3 && !defined XPG4
+# if !defined XPG4 && !defined XPG42
 function int timer_create (clockid_t, struct sigevent*, timer_t*)
 function int timer_delete (timer_t)
 function int timer_gettime (timer_t, struct itimerspec*)
diff --git a/conform/data/ucontext.h-data b/conform/data/ucontext.h-data
index dc2f4cb..c1ddf19 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 POSIX && !defined XPG3 && !defined POSIX2008 && !defined XOPEN2K8
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined XOPEN2K8
 type mcontext_t
 
 type ucontext_t
diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data
index 3047654..ddf4f25 100644
--- a/conform/data/unistd.h-data
+++ b/conform/data/unistd.h-data
@@ -7,7 +7,7 @@
 #endif
 
 constant _POSIX_VERSION
-#if defined POSIX || defined XPG3 || defined XPG4 || defined UNIX98
+#if defined POSIX || defined XPG4 || defined XPG42 || defined UNIX98
 constant _POSIX2_C_VERSION
 #endif
 #ifndef POSIX
@@ -375,7 +375,7 @@ constant _SC_THREAD_ROBUST_PRIO_INHERIT
 constant _SC_THREAD_ROBUST_PRIO_PROTECT
 #endif
 
-#if !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008
 constant F_LOCK
 constant F_ULOCK
 constant F_TEST
@@ -417,21 +417,21 @@ type off_t
 type pid_t
 #endif
 
-#if !defined POSIX && !defined XPG3
+#if !defined POSIX && !defined XPG4
 type useconds_t
 
-# ifndef XPG4
+# ifndef XPG42
 type intptr_t
 # endif
 #endif
 
 function int access (const char*, int)
 function {unsigned int} alarm (unsigned int)
-#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function int brk (void*)
 #endif
 function int chdir (const char*)
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 function int chroot (const char*)
 #endif
 function int chown (const char*, uid_t, gid_t)
@@ -440,7 +440,7 @@ function size_t confstr (int, char*, size_t)
 #if !defined POSIX && !defined POSIX2008
 function {char*} crypt (const char*, const char*)
 #endif
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 function {char*} ctermid (char*)
 function {char*} cuserid (char*)
 #endif
@@ -462,16 +462,16 @@ function void _exit (int)
 # if defined XOPEN2K8 || defined POSIX2008
 function int faccessat (int, const char*, int, int)
 # endif
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function int fchown (int, uid_t, gid_t)
 #endif
 # if defined XOPEN2K8 || defined POSIX2008
 function int fchownat (int, const char*, uid_t, gid_t, int)
 # endif
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function int fchdir (int)
 #endif
-#if !defined XPG3 && !defined XPG4
+#if !defined XPG4 && !defined XPG42
 function int fdatasync (int)
 #endif
 # if defined XOPEN2K8 || defined POSIX2008
@@ -480,56 +480,56 @@ function int fexecve (int, char *const[], char *const[])
 function pid_t fork (void)
 function {long int} fpathconf (int, int)
 function int fsync (int)
-#ifndef XPG3
+#ifndef XPG4
 function int ftruncate (int, off_t)
 #endif
 function {char*} getcwd (char*, size_t)
-#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 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 XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008
 function long gethostid (void)
 #endif
-#if !defined POSIX && !defined XPG3
+#if !defined POSIX && !defined XPG4
 function int gethostname (char*, size_t)
 #endif
 function {char*} getlogin (void)
-#if !defined XPG3 && !defined XPG4
+#if !defined XPG4 && !defined XPG42
 function int getlogin_r (char*, size_t)
 #endif
 function int getopt (int, char*const[], const char*)
-#if defined XPG4 || defined UNIX98
+#if defined XPG42 || defined UNIX98
 function int getpagesize (void)
 #endif
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 function {char*} getpass (const char*)
 #endif
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function pid_t getpgid (pid_t)
 #endif
 function pid_t getpgrp (void)
 function pid_t getpid (void)
 function pid_t getppid (void)
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function pid_t getsid (pid_t)
 #endif
 function uid_t getuid (void)
-#if defined XPG4 || defined UNIX98 || defined XOPEN2K
+#if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function {char*} getwd (char*)
 #endif
 function int isatty (int)
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function int lchown (const char*, uid_t, gid_t)
 #endif
 function int link (const char*, const char*)
 # if defined XOPEN2K8 || defined POSIX2008
 function int linkat (int, const char*, int, const char*, int)
 # endif
-# if !defined XPG3 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
 function int lockf (int, int, off_t)
 # endif
 function off_t lseek (int, off_t, int)
@@ -539,33 +539,33 @@ function int nice (int)
 function {long int} pathconf (const char*, int)
 function int pause (void)
 function int pipe (int[2])
-#if !defined POSIX && !defined XPG3 && !defined XPG4
+#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 XPG3 && !defined XPG4
+#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined XPG4 && !defined XPG42
 function int pthread_atfork (void(*)(void), void(*)(void), void(*)(void))
 #endif
-#if !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined POSIX && !defined XPG4 && !defined XPG42
 function ssize_t pwrite (int, const void*, size_t, off_t)
 #endif
 function ssize_t read (int, void*, size_t)
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function ssize_t readlink (const char*, char*, size_t)
 #endif
 # if defined XOPEN2K8 || defined POSIX2008
 function ssize_t readlinkat (int, const char*, char*, size_t)
 # endif
 function int rmdir (const char*)
-#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG3 && !defined POSIX && !defined POSIX2008
+#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {void*} sbrk (intptr_t)
 #endif
-#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int setegid (gid_t)
 function int seteuid (uid_t)
 #endif
 function int setgid (gid_t)
 function int setpgid (pid_t, pid_t)
-# if !defined XPG3 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
 function pid_t setpgrp (void)
 function int setregid (gid_t, gid_t)
 function int setreuid (uid_t, uid_t)
@@ -576,31 +576,31 @@ function {unsigned int} sleep (unsigned int)
 # if !defined POSIX && !defined POSIX2008
 function void swab (const void*, void*, ssize_t)
 # endif
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function int symlink (const char*, const char*)
 # endif
 # if defined XOPEN2K8 || defined POSIX2008
 function int symlinkat (const char*, int, const char*)
 # endif
-# if !defined XPG3 && !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
 function void sync (void)
 # endif
 function {long int} sysconf (int)
 function pid_t tcgetpgrp (int)
 function int tcsetpgrp (int, pid_t)
-#if !defined XPG3 && !defined POSIX
+#if !defined XPG4 && !defined POSIX
 function int truncate (const char*, off_t)
 #endif
 function {char*} ttyname (int)
 function int ttyname_r (int, char*, size_t)
-#if defined XPG4 || defined UNIX98 || defined XOPEN2K
+#if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function useconds_t ualarm (useconds_t, useconds_t)
 #endif
 function int unlink (const char*)
 # if defined XOPEN2K8 || defined POSIX2008
 function int unlinkat (int, const char*, int)
 # endif
-#if defined XPG4 || defined UNIX98 || defined XOPEN2K
+#if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function int usleep (useconds_t)
 function pid_t vfork (void)
 #endif
diff --git a/conform/data/utmpx.h-data b/conform/data/utmpx.h-data
index 80641ff..cfe2a08 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 POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 type {struct utmpx}
 
 element {struct utmpx} char ut_user []
diff --git a/conform/data/varargs.h-data b/conform/data/varargs.h-data
index 48435fe..2366edb 100644
--- a/conform/data/varargs.h-data
+++ b/conform/data/varargs.h-data
@@ -1,4 +1,4 @@
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
 macro va_alist
 macro va_dcl
 type va_list
diff --git a/conform/data/wchar.h-data b/conform/data/wchar.h-data
index c65ec40..0beae89 100644
--- a/conform/data/wchar.h-data
+++ b/conform/data/wchar.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42
 type wchar_t
 type wint_t
 # if !defined ISO99 && !defined ISO11 && !defined POSIX2008
diff --git a/conform/data/wctype.h-data b/conform/data/wctype.h-data
index 91638e6..944fe6e 100644
--- a/conform/data/wctype.h-data
+++ b/conform/data/wctype.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4
+#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42
 type wint_t
 type wctrans_t
 type wctype_t
diff --git a/conform/list-header-symbols.pl b/conform/list-header-symbols.pl
index 8cd21d8..757fffe 100644
--- a/conform/list-header-symbols.pl
+++ b/conform/list-header-symbols.pl
@@ -40,11 +40,11 @@ $extra_syms{"ISO11"} = ["errno", "math_errhandling", "setjmp", "va_end"];
 # The following lists may not be exhaustive.
 $extra_syms{"POSIX"} = ["errno", "setjmp", "va_end", "environ", "sigsetjmp",
 			"optarg", "optind", "opterr", "optopt", "tzname"];
-$extra_syms{"XPG3"} = ["errno", "setjmp", "va_end", "environ", "signgam",
+$extra_syms{"XPG4"} = ["errno", "setjmp", "va_end", "environ", "signgam",
 		       "loc1", "loc2", "locs", "sigsetjmp", "optarg",
 		       "optind", "opterr", "optopt", "daylight", "timezone",
 		       "tzname"];
-$extra_syms{"XPG4"} = ["errno", "setjmp", "va_end", "environ", "signgam",
+$extra_syms{"XPG42"} = ["errno", "setjmp", "va_end", "environ", "signgam",
 		       "loc1", "loc2", "locs", "sigsetjmp", "optarg",
 		       "optind", "opterr", "optopt", "daylight", "timezone",
 		       "tzname", "getdate_err", "h_errno"];
