Re: bool and C23

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/9/22 04:14, Bruno Haible wrote:
   I would suggest to keep*one*  module, and keep it named 'stdbool'.
   Its meaning will be "provide bool, true, false according to the standards".
   It can invoke AC_HEADER_STDBOOL and AC_C_BOOL under the hood.
   The important point is that the migration from older to newer ISO standard
   versions is transparent (not troublesome) for the Gnulib user.

OK, attached is a revised Gnulib proposed patchset that does that. It changes stdbool to assume C99 (since that should be safe now), which means stdbool no longer needs to use AC_HEADER_STDBOOL. It moves the old stdbool stuff into a new module 'stdbool-c99' that's already marked obsolescent, in case someone still needs to port to pre-C99 compilers for some reason.
From be634feedd0629efe774f39fc26a71df457ac946 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@xxxxxxxxxxx>
Date: Fri, 9 Sep 2022 23:33:43 -0500
Subject: [PATCH 1/2] stdbool: upgrade from C99 to C23

Change the stdbool module so that it now emulates C23.
The module now assumes C99.  The old module (which assumes
C89 and emulates C99) is still available  as stdbool-c99,
but is deprecated.
* tests/test-stdbool.c [TEST_C_BOOL]: Do not include stdbool.h.
* m4/c-bool.m4, modules/c-bool, modules/c-bool-tests:
* tests/test-c-bool.c: New files.
---
 ChangeLog                      | 11 ++++++++
 NEWS                           |  4 +++
 doc/gnulib.texi                | 32 +++++++++++++++++++++
 doc/posix-headers/stdbool.texi |  7 ++++-
 m4/c-bool.m4                   | 33 ++++++++++++++++++++++
 modules/stdbool                | 30 ++------------------
 modules/stdbool-c99            | 51 ++++++++++++++++++++++++++++++++++
 modules/stdbool-c99-tests      | 12 ++++++++
 modules/stdbool-tests          |  1 -
 tests/test-stdbool-c99.c       |  2 ++
 tests/test-stdbool.c           |  6 ++--
 11 files changed, 158 insertions(+), 31 deletions(-)
 create mode 100644 m4/c-bool.m4
 create mode 100644 modules/stdbool-c99
 create mode 100644 modules/stdbool-c99-tests
 create mode 100644 tests/test-stdbool-c99.c

diff --git a/ChangeLog b/ChangeLog
index 47b05390f6..d3c00d04da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2022-09-09  Paul Eggert  <eggert@xxxxxxxxxxx>
+
+	stdbool: upgrade from C99 to C23
+	Change the stdbool module so that it now emulates C23.
+	The module now assumes C99.  The old module (which assumes
+	C89 and emulates C99) is still available  as stdbool-c99,
+	but is deprecated.
+	* tests/test-stdbool.c [TEST_C_BOOL]: Do not include stdbool.h.
+	* m4/c-bool.m4, modules/c-bool, modules/c-bool-tests:
+	* tests/test-c-bool.c: New files.
+
 2022-09-09  Bruno Haible  <bruno@xxxxxxxxx>
 
 	posix_spawn-internal: Optimize DuplicateHandle calls on native Windows.
diff --git a/NEWS b/NEWS
index c3f810101d..cd6a4f8e52 100644
--- a/NEWS
+++ b/NEWS
@@ -74,6 +74,10 @@ User visible incompatible changes
 
 Date        Modules         Changes
 
+2022-09-09  stdbool         This module now assumes C99 and provides C23,
+                            instead of providing C99.  For the old behavior,
+                            use the already-deprecated stdbool-c99 module.
+
 2022-03-09  statat          This module is deprecated.  Use fstatat instead.
 
 2022-01-05  stack           This module now uses idx_t instead of size_t
diff --git a/doc/gnulib.texi b/doc/gnulib.texi
index 0cc25f9e88..e9c2fd8fa6 100644
--- a/doc/gnulib.texi
+++ b/doc/gnulib.texi
@@ -74,6 +74,7 @@ Documentation License''.
 * Extending Gnulib::
 * Miscellaneous Notes::
 * POSIX Substitutes Library::       Building as a separate substitutes library.
+* Keyword Substitutes::             Replacing language keywords.
 * Header File Substitutes::         Overriding system headers.
 * Function Substitutes::            Replacing system functions.
 * Legacy Function Substitutes::     Replacing system functions.
@@ -857,6 +858,37 @@ source code, or when the program uses a mix between C and C++ sources
 (requiring separate builds of the @code{posixlib} for the C compiler and
 for the C++ compiler).
 
+@node Keyword Substitutes
+@chapter ISO C Keyword Substitutes
+
+This chapter describes which keywords specified by ISO C are
+substituted by Gnulib.
+
+@menu
+* bool::  @code{bool}, @code{false}, and @code{true}
+@end menu
+
+@node bool
+@section @code{bool}
+
+Gnulib module: stdbool
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+The keywords @code{bool}, @code{true}, and @code{false} are not available:
+gcc 12 and other compilers predating C23.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+On pre-C23 platforms, the keyword substitutes are macros.
+
+@item
+On pre-C23 platforms, the keyword substitutes assume C99 or later.
+@end itemize
+
 @node Header File Substitutes
 @chapter ISO C and POSIX Header File Substitutes
 
diff --git a/doc/posix-headers/stdbool.texi b/doc/posix-headers/stdbool.texi
index 5b7ed0753f..d7ba4068fc 100644
--- a/doc/posix-headers/stdbool.texi
+++ b/doc/posix-headers/stdbool.texi
@@ -3,7 +3,12 @@
 
 POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdbool.h.html}
 
-Gnulib module: stdbool
+Gnulib module: stdbool-c99
+
+The @code{stdbool-c99} module is present only for programs that
+formerly used the old @code{stdbool} module for C99 compatibility,
+and that for some reason cannot use the current @code{stdbool} module
+for C23 compatibility.
 
 Portability problems fixed by Gnulib:
 @itemize
diff --git a/m4/c-bool.m4 b/m4/c-bool.m4
new file mode 100644
index 0000000000..db96ad1057
--- /dev/null
+++ b/m4/c-bool.m4
@@ -0,0 +1,33 @@
+# Check for bool that conforms to C2023.
+
+dnl Copyright 2022 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_C_BOOL],
+[
+  AC_CACHE_CHECK([for bool, true, false], [gl_cv_c_bool],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_SOURCE([[
+          #if true == false
+           #error "true == false"
+          #endif
+          extern bool b;
+          bool b = true == false;]])],
+       [gl_cv_c_bool=yes],
+       [gl_cv_c_bool=no])])
+  if test "$gl_cv_c_bool" = yes; then
+    AC_DEFINE([HAVE_C_BOOL], [1],
+      [Define to 1 if bool, true and false work as per C2023.])
+  fi
+
+  dnl The "zz" puts this toward config.h's end, to avoid potential
+  dnl collisions with other definitions.  Check
+  dnl __bool_true_false_are_defined to avoid re-including <stdbool.h>.
+  AH_VERBATIM([zzbool],
+[#if (!defined HAVE_C_BOOL && !defined __cplusplus \
+     && !defined __bool_true_false_are_defined)
+ #include <stdbool.h>
+#endif])
+])
diff --git a/modules/stdbool b/modules/stdbool
index c33d036bb7..b5a52523d3 100644
--- a/modules/stdbool
+++ b/modules/stdbool
@@ -1,39 +1,15 @@
 Description:
-An <stdbool.h> that nearly conforms to C99.
-(Nearly: casts to bool may not work.)
+A bool that is like C23.
 
 Files:
-lib/stdbool.in.h
-m4/stdbool.m4
-
-Depends-on:
-gen-header
+m4/c-bool.m4
 
 configure.ac:
-gl_STDBOOL_H
-gl_CONDITIONAL_HEADER([stdbool.h])
-AC_PROG_MKDIR_P
+gl_C_BOOL
 
 Makefile.am:
-BUILT_SOURCES += $(STDBOOL_H)
-
-# We need the following in order to create <stdbool.h> when the system
-# doesn't have one that works.
-if GL_GENERATE_STDBOOL_H
-stdbool.h: stdbool.in.h $(top_builddir)/config.status
-@NMD@	$(AM_V_GEN)$(MKDIR_P) '%reldir%'
-	$(gl_V_at)$(SED_HEADER_STDOUT) \
-	  -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' \
-	  $(srcdir)/stdbool.in.h > $@-t
-	$(AM_V_at)mv $@-t $@
-else
-stdbool.h: $(top_builddir)/config.status
-	rm -f $@
-endif
-MOSTLYCLEANFILES += stdbool.h stdbool.h-t
 
 Include:
-<stdbool.h>
 
 License:
 LGPLv2+
diff --git a/modules/stdbool-c99 b/modules/stdbool-c99
new file mode 100644
index 0000000000..985ba78892
--- /dev/null
+++ b/modules/stdbool-c99
@@ -0,0 +1,51 @@
+Description:
+A <stdbool.h> that nearly conforms to C99.
+(Nearly: casts to bool may not work.)
+
+Status:
+obsolete
+
+Notice:
+This module is obsolete.  It is present only for programs that
+formerly used the old stdbool module for C99 compatibility,
+and that for some reason cannot use the current stdbool module
+for C23 compatibility.
+
+Files:
+lib/stdbool.in.h
+m4/stdbool.m4
+
+Depends-on:
+gen-header
+
+configure.ac:
+gl_STDBOOL_H
+gl_CONDITIONAL_HEADER([stdbool.h])
+AC_PROG_MKDIR_P
+
+Makefile.am:
+BUILT_SOURCES += $(STDBOOL_H)
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+if GL_GENERATE_STDBOOL_H
+stdbool.h: stdbool.in.h $(top_builddir)/config.status
+@NMD@	$(AM_V_GEN)$(MKDIR_P) '%reldir%'
+	$(gl_V_at)$(SED_HEADER_STDOUT) \
+	  -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' \
+	  $(srcdir)/stdbool.in.h > $@-t
+	$(AM_V_at)mv $@-t $@
+else
+stdbool.h: $(top_builddir)/config.status
+	rm -f $@
+endif
+MOSTLYCLEANFILES += stdbool.h stdbool.h-t
+
+Include:
+<stdbool.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+all
diff --git a/modules/stdbool-c99-tests b/modules/stdbool-c99-tests
new file mode 100644
index 0000000000..3ca0ddb217
--- /dev/null
+++ b/modules/stdbool-c99-tests
@@ -0,0 +1,12 @@
+Files:
+tests/test-stdbool.c
+tests/test-stdbool-c99.c
+
+Depends-on:
+stdbool-c++-tests
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-stdbool-c99
+check_PROGRAMS += test-stdbool-c99
diff --git a/modules/stdbool-tests b/modules/stdbool-tests
index 0f875fbeed..6905dfbedc 100644
--- a/modules/stdbool-tests
+++ b/modules/stdbool-tests
@@ -2,7 +2,6 @@ Files:
 tests/test-stdbool.c
 
 Depends-on:
-stdbool-c++-tests
 
 configure.ac:
 
diff --git a/tests/test-stdbool-c99.c b/tests/test-stdbool-c99.c
new file mode 100644
index 0000000000..350c4a05a9
--- /dev/null
+++ b/tests/test-stdbool-c99.c
@@ -0,0 +1,2 @@
+#define TEST_STDBOOL_H
+#include "test-stdbool.c"
diff --git a/tests/test-stdbool.c b/tests/test-stdbool.c
index 329f5d5378..66f80f1bcd 100644
--- a/tests/test-stdbool.c
+++ b/tests/test-stdbool.c
@@ -1,4 +1,4 @@
-/* Test of <stdbool.h> substitute.
+/* Test bool.
    Copyright (C) 2002-2007, 2009-2022 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -33,7 +33,9 @@
 
 #include <config.h>
 
-#include <stdbool.h>
+#ifdef TEST_STDBOOL_H
+# include <stdbool.h>
+#endif
 
 #if false
  "error: false is not 0"
-- 
2.37.2

From 4e2de6226ad0fd836f6a077bd36a1abb38a6cb79 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@xxxxxxxxxxx>
Date: Fri, 9 Sep 2022 23:33:43 -0500
Subject: [PATCH 2/2] Rely on new stdbool behavior
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Prefer the C23 style to the C99 style,
since the stdbool module now supports C23.
* lib/acl-internal.h, lib/acl.h, lib/argmatch.c, lib/argmatch.h:
* lib/argp-help.c, lib/argv-iter.h, lib/asyncsafe-spin.c:
* lib/backup-internal.h, lib/backupfile.c, lib/base32.h:
* lib/base64.h, lib/basename-lgpl.c, lib/bitset/base.h:
* lib/c-ctype.h, lib/c-strcasestr.c, lib/canonicalize-lgpl.c:
* lib/canonicalize.c, lib/chdir-long.c, lib/chown.c:
* lib/classpath.h, lib/clean-temp-private.h:
* lib/clean-temp-simple.c, lib/clean-temp-simple.h:
* lib/clean-temp.c, lib/clean-temp.h, lib/cloexec.h:
* lib/close-stream.c, lib/closein.c, lib/closeout.c, lib/closeout.h:
* lib/csharpcomp.h, lib/csharpexec.h, lib/cycle-check.c:
* lib/cycle-check.h, lib/des.h, lib/dfa.h, lib/diffseq.h:
* lib/dirname.h, lib/exclude.c, lib/exclude.h, lib/execute.c:
* lib/execute.h, lib/execvpe.c, lib/fatal-signal.c, lib/fchdir.c:
* lib/file-set.h, lib/filevercmp.c, lib/findprog-in.c:
* lib/findprog.c, lib/findprog.h, lib/fma.c, lib/fnmatch.c:
* lib/fopen.c, lib/freadable.h, lib/freading.h, lib/freopen-safer.c:
* lib/fstrcmp.c, lib/fsusage.h, lib/fts.c, lib/fwritable.h:
* lib/fwriteerror.c, lib/fwriting.h, lib/gen-uni-tables.c:
* lib/getaddrinfo.c, lib/getcwd.c, lib/getloadavg.c:
* lib/getndelim2.c, lib/getpass.c, lib/getrandom.c:
* lib/git-merge-changelog.c, lib/gl_list.h, lib/gl_map.h:
* lib/gl_omap.h, lib/gl_oset.h, lib/gl_set.h, lib/glob.c:
* lib/glthread/cond.h, lib/hamt.h, lib/hard-locale.h:
* lib/hash-triple.h, lib/hash.h, lib/human.h, lib/i-ring.h:
* lib/isapipe.c, lib/javacomp.h, lib/javaexec.h, lib/javaversion.c:
* lib/lchown.c, lib/localeinfo.h, lib/localename.c:
* lib/long-options.h, lib/malloc/dynarray.h, lib/mbchar.h:
* lib/mbfile.h, lib/mbiter.h, lib/mbmemcasecoll.h, lib/mbscasestr.c:
* lib/mbsstr.c, lib/mbuiter.h, lib/mkdir-p.h, lib/modechange.h:
* lib/mountlist.h, lib/nanosleep.c, lib/nonblocking.h:
* lib/nstrftime.c, lib/openat.c, lib/openat.h, lib/os2-spawn.c:
* lib/parse-datetime.h, lib/pipe-filter-aux.c, lib/pipe-filter-gi.c:
* lib/pipe-filter-ii.c, lib/pipe-filter.h, lib/posixtm.h:
* lib/priv-set.c, lib/progreloc.c, lib/propername.c:
* lib/pthread-spin.c, lib/quotearg.c, lib/readtokens.c:
* lib/readtokens0.h, lib/readutmp.c, lib/regex-quote.h:
* lib/regex_internal.h, lib/relocwrapper.c, lib/rename.c:
* lib/renameatu.c, lib/rpmatch.c, lib/same.c, lib/same.h:
* lib/save-cwd.c, lib/savewd.c, lib/savewd.h, lib/spawn-pipe.h:
* lib/spawni.c, lib/stack.h, lib/stat.c, lib/stdckdint.in.h:
* lib/strcasestr.c, lib/strfmon_l.c, lib/striconveh.c:
* lib/striconveha.h, lib/string-buffer.h, lib/strptime.c:
* lib/strstr.c, lib/strtod.c, lib/supersede.h, lib/system-quote.c:
* lib/tempname.c, lib/term-style-control.c:
* lib/term-style-control.h, lib/textstyle.in.h, lib/time_rz.c:
* lib/tmpdir.c, lib/tmpdir.h, lib/tmpfile.c, lib/unicase.in.h:
* lib/unicase/caseprop.h, lib/unicase/invariant.h:
* lib/unicase/u16-casemap.c, lib/unicase/u16-ct-totitle.c:
* lib/unicase/u16-is-invariant.c, lib/unicase/u32-casemap.c:
* lib/unicase/u32-ct-totitle.c, lib/unicase/u32-is-invariant.c:
* lib/unicase/u8-casemap.c, lib/unicase/u8-ct-totitle.c:
* lib/unicase/u8-is-invariant.c, lib/unictype.in.h:
* lib/unigbrk.in.h, lib/unigbrk/u16-grapheme-breaks.c:
* lib/unigbrk/u32-grapheme-breaks.c:
* lib/unigbrk/u8-grapheme-breaks.c:
* lib/unigbrk/uc-grapheme-breaks.c, lib/uniname/uniname.c:
* lib/unistr.in.h, lib/unlinkdir.h, lib/userspec.h, lib/utime.c:
* lib/utimecmp.c, lib/utimens.c, lib/wait-process.h:
* lib/windows-cond.c, lib/windows-spawn.c, lib/windows-spawn.h:
* lib/windows-timedrwlock.c, lib/write-any-file.h, lib/xbinary-io.c:
* lib/xstrtod.h, lib/yesno.h:
* tests/nap.h, tests/qemu.h, tests/test-areadlink-with-size.c:
* tests/test-areadlink.c, tests/test-areadlinkat-with-size.c:
* tests/test-areadlinkat.c, tests/test-base32.c:
* tests/test-base64.c, tests/test-ceil2.c, tests/test-ceilf2.c:
* tests/test-chown.c, tests/test-dirname.c, tests/test-dup-safer.c:
* tests/test-dup3.c, tests/test-exclude.c:
* tests/test-execute-child.c, tests/test-execute-main.c:
* tests/test-execute-script.c, tests/test-explicit_bzero.c:
* tests/test-fchownat.c, tests/test-fcntl-safer.c:
* tests/test-fcntl.c, tests/test-fdutimensat.c:
* tests/test-filenamecat.c, tests/test-floor2.c:
* tests/test-floorf2.c, tests/test-fstatat.c, tests/test-fstrcmp.c:
* tests/test-futimens.c, tests/test-getlogin.h, tests/test-getopt.h:
* tests/test-hard-locale.c, tests/test-hash.c:
* tests/test-idpriv-drop.c, tests/test-idpriv-droptemp.c:
* tests/test-immutable.c, tests/test-intprops.c:
* tests/test-lchown.c, tests/test-link.c, tests/test-linkat.c:
* tests/test-lstat.c, tests/test-mbmemcasecmp.c:
* tests/test-mbmemcasecoll.c, tests/test-mkdir.c:
* tests/test-mkdirat.c, tests/test-mkfifo.c, tests/test-mkfifoat.c:
* tests/test-mknod.c, tests/test-nonblocking-pipe-child.c:
* tests/test-nonblocking-pipe-main.c:
* tests/test-nonblocking-socket-child.c:
* tests/test-nonblocking-socket-main.c, tests/test-open.c:
* tests/test-openat.c, tests/test-pipe.c, tests/test-pipe2.c:
* tests/test-poll.c, tests/test-posix_spawn-chdir.c:
* tests/test-posix_spawn-dup2-stdin.c:
* tests/test-posix_spawn-dup2-stdout.c:
* tests/test-posix_spawn-fchdir.c, tests/test-posix_spawn-open1.c:
* tests/test-posix_spawn-open2.c, tests/test-quotearg-simple.c:
* tests/test-quotearg.c, tests/test-readlink.c:
* tests/test-readlinkat.c, tests/test-readtokens.c:
* tests/test-rename.c, tests/test-renameat.c:
* tests/test-renameatu.c, tests/test-rmdir.c, tests/test-round2.c:
* tests/test-select.h, tests/test-spawn-pipe-child.c:
* tests/test-spawn-pipe-main.c, tests/test-spawn-pipe-script.c:
* tests/test-stack.c, tests/test-stat.c, tests/test-supersede.c:
* tests/test-symlink.c, tests/test-symlinkat.c:
* tests/test-system-quote-main.c:
* tests/test-term-style-control-hello.c:
* tests/test-term-style-control-yes.c, tests/test-timespec.c:
* tests/test-trunc2.c, tests/test-truncf2.c, tests/test-unlink.c:
* tests/test-unlinkat.c, tests/test-userspec.c, tests/test-utime.c:
* tests/test-utimens.c, tests/test-utimensat.c:
* tests/unictype/test-categ_byname.c:
* tests/unigbrk/test-uc-is-grapheme-break.c:
Don’t include stdbool.h.
* modules/acl, modules/xgetcwd:
Don’t depend on stdbool, as these modules don’t use bool.
* modules/argp, modules/bitset, modules/diffseq, modules/file-has-acl:
* modules/gen-uni-tables, modules/getrandom:
* modules/hash-triple-simple, modules/posix_spawn-internal:
* modules/strcasestr, modules/supersede, modules/system-quote:
* modules/uniconv/base, modules/uniname/uniname, modules/utime:
* modules/windows-timedrwlock:
Depend on stdbool, as these modules use bool.
---
 ChangeLog                                 | 122 ++++++++++++++++++++++
 doc/gnulib-intro.texi                     |   2 +-
 doc/gnulib-readme.texi                    |  11 +-
 doc/intprops.texi                         |   3 +-
 doc/posix-headers/stdbool.texi            |   2 +
 lib/acl-internal.h                        |   1 -
 lib/acl.h                                 |   1 -
 lib/argmatch.c                            |   1 -
 lib/argmatch.h                            |   1 -
 lib/argp-help.c                           |   1 -
 lib/argv-iter.h                           |   1 -
 lib/asyncsafe-spin.c                      |   2 -
 lib/backup-internal.h                     |   1 -
 lib/backupfile.c                          |   1 -
 lib/base32.h                              |   3 -
 lib/base64.h                              |   3 -
 lib/basename-lgpl.c                       |   1 -
 lib/bitset/base.h                         |   1 -
 lib/c-ctype.h                             |   2 -
 lib/c-strcasestr.c                        |   1 -
 lib/canonicalize-lgpl.c                   |   1 -
 lib/canonicalize.c                        |   1 -
 lib/chdir-long.c                          |   1 -
 lib/chown.c                               |   1 -
 lib/classpath.h                           |   2 -
 lib/clean-temp-private.h                  |   1 -
 lib/clean-temp-simple.c                   |   1 -
 lib/clean-temp-simple.h                   |   2 -
 lib/clean-temp.c                          |   1 -
 lib/clean-temp.h                          |   1 -
 lib/cloexec.h                             |   2 -
 lib/close-stream.c                        |   1 -
 lib/closein.c                             |   1 -
 lib/closeout.c                            |   1 -
 lib/closeout.h                            |   2 -
 lib/csharpcomp.h                          |   2 -
 lib/csharpexec.h                          |   2 -
 lib/cycle-check.c                         |   1 -
 lib/cycle-check.h                         |   1 -
 lib/des.h                                 |   1 -
 lib/dfa.h                                 |   1 -
 lib/diffseq.h                             |   1 -
 lib/dirname.h                             |   1 -
 lib/exclude.c                             |   2 -
 lib/exclude.h                             |   1 -
 lib/execute.c                             |   1 -
 lib/execute.h                             |   2 -
 lib/execvpe.c                             |   1 -
 lib/fatal-signal.c                        |   1 -
 lib/fchdir.c                              |   1 -
 lib/file-set.h                            |   1 -
 lib/filevercmp.c                          |   1 -
 lib/findprog-in.c                         |   1 -
 lib/findprog.c                            |   1 -
 lib/findprog.h                            |   2 -
 lib/fma.c                                 |   1 -
 lib/fnmatch.c                             |   1 -
 lib/fopen.c                               |   1 -
 lib/freadable.h                           |   1 -
 lib/freading.h                            |   1 -
 lib/freopen-safer.c                       |   1 -
 lib/fstrcmp.c                             |   1 -
 lib/fsusage.h                             |   1 -
 lib/fts.c                                 |   1 -
 lib/fwritable.h                           |   1 -
 lib/fwriteerror.c                         |   1 -
 lib/fwriting.h                            |   1 -
 lib/gen-uni-tables.c                      |   1 -
 lib/getaddrinfo.c                         |   2 -
 lib/getcwd.c                              |   1 -
 lib/getloadavg.c                          |   1 -
 lib/getndelim2.c                          |   1 -
 lib/getpass.c                             |   2 -
 lib/getrandom.c                           |   1 -
 lib/git-merge-changelog.c                 |   1 -
 lib/gl_list.h                             |   1 -
 lib/gl_map.h                              |   1 -
 lib/gl_omap.h                             |   1 -
 lib/gl_oset.h                             |   1 -
 lib/gl_set.h                              |   1 -
 lib/glob.c                                |   1 -
 lib/glthread/cond.h                       |   1 -
 lib/hamt.h                                |   1 -
 lib/hard-locale.h                         |   2 -
 lib/hash-triple.h                         |   1 -
 lib/hash.h                                |   1 -
 lib/human.h                               |   1 -
 lib/i-ring.h                              |   1 -
 lib/isapipe.c                             |   1 -
 lib/javacomp.h                            |   2 -
 lib/javaexec.h                            |   2 -
 lib/javaversion.c                         |   1 -
 lib/lchown.c                              |   1 -
 lib/localeinfo.h                          |   1 -
 lib/localename.c                          |   1 -
 lib/long-options.h                        |   2 -
 lib/malloc/dynarray.h                     |   1 -
 lib/mbchar.h                              |   1 -
 lib/mbfile.h                              |   1 -
 lib/mbiter.h                              |   1 -
 lib/mbmemcasecoll.h                       |   1 -
 lib/mbscasestr.c                          |   1 -
 lib/mbsstr.c                              |   1 -
 lib/mbuiter.h                             |   1 -
 lib/mkdir-p.h                             |   1 -
 lib/modechange.h                          |   1 -
 lib/mountlist.h                           |   1 -
 lib/nanosleep.c                           |   1 -
 lib/nonblocking.h                         |   2 -
 lib/nstrftime.c                           |   1 -
 lib/openat.c                              |   1 -
 lib/openat.h                              |   1 -
 lib/os2-spawn.c                           |   1 -
 lib/parse-datetime.h                      |   1 -
 lib/pipe-filter-aux.c                     |   1 -
 lib/pipe-filter-gi.c                      |   1 -
 lib/pipe-filter-ii.c                      |   1 -
 lib/pipe-filter.h                         |   2 -
 lib/posixtm.h                             |   1 -
 lib/priv-set.c                            |   1 -
 lib/progreloc.c                           |   1 -
 lib/propername.c                          |   1 -
 lib/pthread-spin.c                        |   2 -
 lib/quotearg.c                            |   1 -
 lib/readtokens.c                          |   1 -
 lib/readtokens0.h                         |   1 -
 lib/readutmp.c                            |   1 -
 lib/regex-quote.h                         |   2 -
 lib/regex_internal.h                      |   1 -
 lib/relocwrapper.c                        |   2 +-
 lib/rename.c                              |   1 -
 lib/renameatu.c                           |   1 -
 lib/rpmatch.c                             |   1 -
 lib/same.c                                |   1 -
 lib/same.h                                |   2 -
 lib/save-cwd.c                            |   1 -
 lib/savewd.c                              |   1 -
 lib/savewd.h                              |   1 -
 lib/spawn-pipe.h                          |   2 -
 lib/spawni.c                              |   1 -
 lib/stack.h                               |   1 -
 lib/stat.c                                |   1 -
 lib/stdckdint.in.h                        |   2 -
 lib/strcasestr.c                          |   1 -
 lib/strfmon_l.c                           |   1 -
 lib/striconveh.c                          |   1 -
 lib/striconveha.h                         |   1 -
 lib/string-buffer.h                       |   1 -
 lib/strptime.c                            |   2 +-
 lib/strstr.c                              |   2 -
 lib/strtod.c                              |   1 -
 lib/supersede.h                           |   1 -
 lib/system-quote.c                        |   1 -
 lib/tempname.c                            |   1 -
 lib/term-style-control.c                  |   1 -
 lib/term-style-control.h                  |   2 -
 lib/textstyle.in.h                        |   1 -
 lib/time_rz.c                             |   1 -
 lib/tmpdir.c                              |   1 -
 lib/tmpdir.h                              |   1 -
 lib/tmpfile.c                             |   1 -
 lib/unicase.in.h                          |   3 -
 lib/unicase/caseprop.h                    |   1 -
 lib/unicase/invariant.h                   |   1 -
 lib/unicase/u16-casemap.c                 |   1 -
 lib/unicase/u16-ct-totitle.c              |   1 -
 lib/unicase/u16-is-invariant.c            |   1 -
 lib/unicase/u32-casemap.c                 |   1 -
 lib/unicase/u32-ct-totitle.c              |   1 -
 lib/unicase/u32-is-invariant.c            |   1 -
 lib/unicase/u8-casemap.c                  |   1 -
 lib/unicase/u8-ct-totitle.c               |   1 -
 lib/unicase/u8-is-invariant.c             |   1 -
 lib/unictype.in.h                         |   3 -
 lib/unigbrk.in.h                          |   3 -
 lib/unigbrk/u16-grapheme-breaks.c         |   1 -
 lib/unigbrk/u32-grapheme-breaks.c         |   1 -
 lib/unigbrk/u8-grapheme-breaks.c          |   1 -
 lib/unigbrk/uc-grapheme-breaks.c          |   1 -
 lib/uniname/uniname.c                     |   1 -
 lib/unistr.in.h                           |   3 -
 lib/unlinkdir.h                           |   2 -
 lib/userspec.h                            |   1 -
 lib/utime.c                               |   1 -
 lib/utimecmp.c                            |   1 -
 lib/utimens.c                             |   1 -
 lib/wait-process.h                        |   2 -
 lib/windows-cond.c                        |   1 -
 lib/windows-spawn.c                       |   1 -
 lib/windows-spawn.h                       |   1 -
 lib/windows-timedrwlock.c                 |   1 -
 lib/write-any-file.h                      |   2 -
 lib/xbinary-io.c                          |   1 -
 lib/xstrtod.h                             |   2 -
 lib/yesno.h                               |   2 -
 modules/acl                               |   1 -
 modules/argp                              |   1 +
 modules/bitset                            |   1 +
 modules/diffseq                           |   1 +
 modules/file-has-acl                      |   1 +
 modules/gen-uni-tables                    |   1 +
 modules/getrandom                         |   1 +
 modules/hash-triple-simple                |   1 +
 modules/posix_spawn-internal              |   1 +
 modules/strcasestr                        |   1 +
 modules/supersede                         |   1 +
 modules/system-quote                      |   1 +
 modules/uniconv/base                      |   1 +
 modules/uniname/uniname                   |   1 +
 modules/utime                             |   1 +
 modules/windows-timedrwlock               |   1 +
 modules/xgetcwd                           |   1 -
 tests/nap.h                               |   1 -
 tests/qemu.h                              |   1 -
 tests/test-areadlink-with-size.c          |   1 -
 tests/test-areadlink.c                    |   1 -
 tests/test-areadlinkat-with-size.c        |   1 -
 tests/test-areadlinkat.c                  |   1 -
 tests/test-base32.c                       |   1 -
 tests/test-base64.c                       |   1 -
 tests/test-ceil2.c                        |   1 -
 tests/test-ceilf2.c                       |   1 -
 tests/test-chown.c                        |   1 -
 tests/test-dirname.c                      |   1 -
 tests/test-dup-safer.c                    |   1 -
 tests/test-dup3.c                         |   1 -
 tests/test-exclude.c                      |   1 -
 tests/test-execute-child.c                |   1 -
 tests/test-execute-main.c                 |   1 -
 tests/test-execute-script.c               |   1 -
 tests/test-explicit_bzero.c               |   1 -
 tests/test-fchownat.c                     |   1 -
 tests/test-fcntl-safer.c                  |   1 -
 tests/test-fcntl.c                        |   1 -
 tests/test-fdutimensat.c                  |   1 -
 tests/test-filenamecat.c                  |   1 -
 tests/test-floor2.c                       |   1 -
 tests/test-floorf2.c                      |   1 -
 tests/test-fstatat.c                      |   1 -
 tests/test-fstrcmp.c                      |   1 -
 tests/test-futimens.c                     |   1 -
 tests/test-getlogin.h                     |   1 -
 tests/test-getopt.h                       |   1 -
 tests/test-hard-locale.c                  |   1 -
 tests/test-hash.c                         |   1 -
 tests/test-idpriv-drop.c                  |   1 -
 tests/test-idpriv-droptemp.c              |   1 -
 tests/test-immutable.c                    |   1 -
 tests/test-intprops.c                     |   1 -
 tests/test-lchown.c                       |   1 -
 tests/test-link.c                         |   1 -
 tests/test-linkat.c                       |   1 -
 tests/test-lstat.c                        |   1 -
 tests/test-mbmemcasecmp.c                 |   1 -
 tests/test-mbmemcasecoll.c                |   1 -
 tests/test-mkdir.c                        |   1 -
 tests/test-mkdirat.c                      |   1 -
 tests/test-mkfifo.c                       |   1 -
 tests/test-mkfifoat.c                     |   1 -
 tests/test-mknod.c                        |   1 -
 tests/test-nonblocking-pipe-child.c       |   1 -
 tests/test-nonblocking-pipe-main.c        |   1 -
 tests/test-nonblocking-socket-child.c     |   1 -
 tests/test-nonblocking-socket-main.c      |   1 -
 tests/test-open.c                         |   1 -
 tests/test-openat.c                       |   1 -
 tests/test-pipe.c                         |   1 -
 tests/test-pipe2.c                        |   1 -
 tests/test-poll.c                         |   1 -
 tests/test-posix_spawn-chdir.c            |   1 -
 tests/test-posix_spawn-dup2-stdin.c       |   1 -
 tests/test-posix_spawn-dup2-stdout.c      |   1 -
 tests/test-posix_spawn-fchdir.c           |   1 -
 tests/test-posix_spawn-open1.c            |   1 -
 tests/test-posix_spawn-open2.c            |   1 -
 tests/test-quotearg-simple.c              |   1 -
 tests/test-quotearg.c                     |   1 -
 tests/test-readlink.c                     |   1 -
 tests/test-readlinkat.c                   |   1 -
 tests/test-readtokens.c                   |   1 -
 tests/test-rename.c                       |   1 -
 tests/test-renameat.c                     |   1 -
 tests/test-renameatu.c                    |   1 -
 tests/test-rmdir.c                        |   1 -
 tests/test-round2.c                       |   1 -
 tests/test-select.h                       |   1 -
 tests/test-spawn-pipe-child.c             |   1 -
 tests/test-spawn-pipe-main.c              |   1 -
 tests/test-spawn-pipe-script.c            |   1 -
 tests/test-stack.c                        |   1 -
 tests/test-stat.c                         |   1 -
 tests/test-supersede.c                    |   1 -
 tests/test-symlink.c                      |   1 -
 tests/test-symlinkat.c                    |   1 -
 tests/test-system-quote-main.c            |   1 -
 tests/test-term-style-control-hello.c     |   1 -
 tests/test-term-style-control-yes.c       |   1 -
 tests/test-timespec.c                     |   1 -
 tests/test-trunc2.c                       |   1 -
 tests/test-truncf2.c                      |   1 -
 tests/test-unlink.c                       |   1 -
 tests/test-unlinkat.c                     |   1 -
 tests/test-userspec.c                     |   1 -
 tests/test-utime.c                        |   1 -
 tests/test-utimens.c                      |   1 -
 tests/test-utimensat.c                    |   1 -
 tests/unictype/test-categ_byname.c        |   1 -
 tests/unigbrk/test-uc-is-grapheme-break.c |   1 -
 308 files changed, 150 insertions(+), 338 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d3c00d04da..75447c4b90 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,127 @@
 2022-09-09  Paul Eggert  <eggert@xxxxxxxxxxx>
 
+	Rely on new stdbool behavior
+	Prefer the C23 style to the C99 style,
+	since the stdbool module now supports C23.
+	* lib/acl-internal.h, lib/acl.h, lib/argmatch.c, lib/argmatch.h:
+	* lib/argp-help.c, lib/argv-iter.h, lib/asyncsafe-spin.c:
+	* lib/backup-internal.h, lib/backupfile.c, lib/base32.h:
+	* lib/base64.h, lib/basename-lgpl.c, lib/bitset/base.h:
+	* lib/c-ctype.h, lib/c-strcasestr.c, lib/canonicalize-lgpl.c:
+	* lib/canonicalize.c, lib/chdir-long.c, lib/chown.c:
+	* lib/classpath.h, lib/clean-temp-private.h:
+	* lib/clean-temp-simple.c, lib/clean-temp-simple.h:
+	* lib/clean-temp.c, lib/clean-temp.h, lib/cloexec.h:
+	* lib/close-stream.c, lib/closein.c, lib/closeout.c, lib/closeout.h:
+	* lib/csharpcomp.h, lib/csharpexec.h, lib/cycle-check.c:
+	* lib/cycle-check.h, lib/des.h, lib/dfa.h, lib/diffseq.h:
+	* lib/dirname.h, lib/exclude.c, lib/exclude.h, lib/execute.c:
+	* lib/execute.h, lib/execvpe.c, lib/fatal-signal.c, lib/fchdir.c:
+	* lib/file-set.h, lib/filevercmp.c, lib/findprog-in.c:
+	* lib/findprog.c, lib/findprog.h, lib/fma.c, lib/fnmatch.c:
+	* lib/fopen.c, lib/freadable.h, lib/freading.h, lib/freopen-safer.c:
+	* lib/fstrcmp.c, lib/fsusage.h, lib/fts.c, lib/fwritable.h:
+	* lib/fwriteerror.c, lib/fwriting.h, lib/gen-uni-tables.c:
+	* lib/getaddrinfo.c, lib/getcwd.c, lib/getloadavg.c:
+	* lib/getndelim2.c, lib/getpass.c, lib/getrandom.c:
+	* lib/git-merge-changelog.c, lib/gl_list.h, lib/gl_map.h:
+	* lib/gl_omap.h, lib/gl_oset.h, lib/gl_set.h, lib/glob.c:
+	* lib/glthread/cond.h, lib/hamt.h, lib/hard-locale.h:
+	* lib/hash-triple.h, lib/hash.h, lib/human.h, lib/i-ring.h:
+	* lib/isapipe.c, lib/javacomp.h, lib/javaexec.h, lib/javaversion.c:
+	* lib/lchown.c, lib/localeinfo.h, lib/localename.c:
+	* lib/long-options.h, lib/malloc/dynarray.h, lib/mbchar.h:
+	* lib/mbfile.h, lib/mbiter.h, lib/mbmemcasecoll.h, lib/mbscasestr.c:
+	* lib/mbsstr.c, lib/mbuiter.h, lib/mkdir-p.h, lib/modechange.h:
+	* lib/mountlist.h, lib/nanosleep.c, lib/nonblocking.h:
+	* lib/nstrftime.c, lib/openat.c, lib/openat.h, lib/os2-spawn.c:
+	* lib/parse-datetime.h, lib/pipe-filter-aux.c, lib/pipe-filter-gi.c:
+	* lib/pipe-filter-ii.c, lib/pipe-filter.h, lib/posixtm.h:
+	* lib/priv-set.c, lib/progreloc.c, lib/propername.c:
+	* lib/pthread-spin.c, lib/quotearg.c, lib/readtokens.c:
+	* lib/readtokens0.h, lib/readutmp.c, lib/regex-quote.h:
+	* lib/regex_internal.h, lib/relocwrapper.c, lib/rename.c:
+	* lib/renameatu.c, lib/rpmatch.c, lib/same.c, lib/same.h:
+	* lib/save-cwd.c, lib/savewd.c, lib/savewd.h, lib/spawn-pipe.h:
+	* lib/spawni.c, lib/stack.h, lib/stat.c, lib/stdckdint.in.h:
+	* lib/strcasestr.c, lib/strfmon_l.c, lib/striconveh.c:
+	* lib/striconveha.h, lib/string-buffer.h, lib/strptime.c:
+	* lib/strstr.c, lib/strtod.c, lib/supersede.h, lib/system-quote.c:
+	* lib/tempname.c, lib/term-style-control.c:
+	* lib/term-style-control.h, lib/textstyle.in.h, lib/time_rz.c:
+	* lib/tmpdir.c, lib/tmpdir.h, lib/tmpfile.c, lib/unicase.in.h:
+	* lib/unicase/caseprop.h, lib/unicase/invariant.h:
+	* lib/unicase/u16-casemap.c, lib/unicase/u16-ct-totitle.c:
+	* lib/unicase/u16-is-invariant.c, lib/unicase/u32-casemap.c:
+	* lib/unicase/u32-ct-totitle.c, lib/unicase/u32-is-invariant.c:
+	* lib/unicase/u8-casemap.c, lib/unicase/u8-ct-totitle.c:
+	* lib/unicase/u8-is-invariant.c, lib/unictype.in.h:
+	* lib/unigbrk.in.h, lib/unigbrk/u16-grapheme-breaks.c:
+	* lib/unigbrk/u32-grapheme-breaks.c:
+	* lib/unigbrk/u8-grapheme-breaks.c:
+	* lib/unigbrk/uc-grapheme-breaks.c, lib/uniname/uniname.c:
+	* lib/unistr.in.h, lib/unlinkdir.h, lib/userspec.h, lib/utime.c:
+	* lib/utimecmp.c, lib/utimens.c, lib/wait-process.h:
+	* lib/windows-cond.c, lib/windows-spawn.c, lib/windows-spawn.h:
+	* lib/windows-timedrwlock.c, lib/write-any-file.h, lib/xbinary-io.c:
+	* lib/xstrtod.h, lib/yesno.h:
+	* tests/nap.h, tests/qemu.h, tests/test-areadlink-with-size.c:
+	* tests/test-areadlink.c, tests/test-areadlinkat-with-size.c:
+	* tests/test-areadlinkat.c, tests/test-base32.c:
+	* tests/test-base64.c, tests/test-ceil2.c, tests/test-ceilf2.c:
+	* tests/test-chown.c, tests/test-dirname.c, tests/test-dup-safer.c:
+	* tests/test-dup3.c, tests/test-exclude.c:
+	* tests/test-execute-child.c, tests/test-execute-main.c:
+	* tests/test-execute-script.c, tests/test-explicit_bzero.c:
+	* tests/test-fchownat.c, tests/test-fcntl-safer.c:
+	* tests/test-fcntl.c, tests/test-fdutimensat.c:
+	* tests/test-filenamecat.c, tests/test-floor2.c:
+	* tests/test-floorf2.c, tests/test-fstatat.c, tests/test-fstrcmp.c:
+	* tests/test-futimens.c, tests/test-getlogin.h, tests/test-getopt.h:
+	* tests/test-hard-locale.c, tests/test-hash.c:
+	* tests/test-idpriv-drop.c, tests/test-idpriv-droptemp.c:
+	* tests/test-immutable.c, tests/test-intprops.c:
+	* tests/test-lchown.c, tests/test-link.c, tests/test-linkat.c:
+	* tests/test-lstat.c, tests/test-mbmemcasecmp.c:
+	* tests/test-mbmemcasecoll.c, tests/test-mkdir.c:
+	* tests/test-mkdirat.c, tests/test-mkfifo.c, tests/test-mkfifoat.c:
+	* tests/test-mknod.c, tests/test-nonblocking-pipe-child.c:
+	* tests/test-nonblocking-pipe-main.c:
+	* tests/test-nonblocking-socket-child.c:
+	* tests/test-nonblocking-socket-main.c, tests/test-open.c:
+	* tests/test-openat.c, tests/test-pipe.c, tests/test-pipe2.c:
+	* tests/test-poll.c, tests/test-posix_spawn-chdir.c:
+	* tests/test-posix_spawn-dup2-stdin.c:
+	* tests/test-posix_spawn-dup2-stdout.c:
+	* tests/test-posix_spawn-fchdir.c, tests/test-posix_spawn-open1.c:
+	* tests/test-posix_spawn-open2.c, tests/test-quotearg-simple.c:
+	* tests/test-quotearg.c, tests/test-readlink.c:
+	* tests/test-readlinkat.c, tests/test-readtokens.c:
+	* tests/test-rename.c, tests/test-renameat.c:
+	* tests/test-renameatu.c, tests/test-rmdir.c, tests/test-round2.c:
+	* tests/test-select.h, tests/test-spawn-pipe-child.c:
+	* tests/test-spawn-pipe-main.c, tests/test-spawn-pipe-script.c:
+	* tests/test-stack.c, tests/test-stat.c, tests/test-supersede.c:
+	* tests/test-symlink.c, tests/test-symlinkat.c:
+	* tests/test-system-quote-main.c:
+	* tests/test-term-style-control-hello.c:
+	* tests/test-term-style-control-yes.c, tests/test-timespec.c:
+	* tests/test-trunc2.c, tests/test-truncf2.c, tests/test-unlink.c:
+	* tests/test-unlinkat.c, tests/test-userspec.c, tests/test-utime.c:
+	* tests/test-utimens.c, tests/test-utimensat.c:
+	* tests/unictype/test-categ_byname.c:
+	* tests/unigbrk/test-uc-is-grapheme-break.c:
+	Don’t include stdbool.h.
+	* modules/acl, modules/xgetcwd:
+	Don’t depend on stdbool, as these modules don’t use bool.
+	* modules/argp, modules/bitset, modules/diffseq, modules/file-has-acl:
+	* modules/gen-uni-tables, modules/getrandom:
+	* modules/hash-triple-simple, modules/posix_spawn-internal:
+	* modules/strcasestr, modules/supersede, modules/system-quote:
+	* modules/uniconv/base, modules/uniname/uniname, modules/utime:
+	* modules/windows-timedrwlock:
+	Depend on stdbool, as these modules use bool.
+
 	stdbool: upgrade from C99 to C23
 	Change the stdbool module so that it now emulates C23.
 	The module now assumes C99.  The old module (which assumes
diff --git a/doc/gnulib-intro.texi b/doc/gnulib-intro.texi
index 71634de698..1937909641 100644
--- a/doc/gnulib-intro.texi
+++ b/doc/gnulib-intro.texi
@@ -389,7 +389,7 @@ making use of @code{foo} could end up residing in a shared library, and
 the executable program using this library could be defining @code{foo}
 itself).
 
-For header files, such as @code{stdbool.h} or @code{stdint.h}, we provide
+For header files, such as @code{stdint.h}, we provide
 the substitute only if the system doesn't provide a correct one.  The
 template of this replacement is distributed in a slightly different name,
 with @samp{.in} inserted before the @samp{.h} extension, so that on
diff --git a/doc/gnulib-readme.texi b/doc/gnulib-readme.texi
index 492572799c..b8a8232e8f 100644
--- a/doc/gnulib-readme.texi
+++ b/doc/gnulib-readme.texi
@@ -324,8 +324,9 @@ platforms, fixes that may be removed in the future.
 
 Because of the freestanding C99 assumption, Gnulib code can include
 @code{<float.h>}, @code{<limits.h>}, @code{<stdarg.h>},
-@code{<stdbool.h>}, @code{<stddef.h>}, and @code{<stdint.h>}
-unconditionally.   Gnulib code can also assume the existence
+@code{<stddef.h>}, and @code{<stdint.h>}
+unconditionally; @code{<stdbool.h>} is also in the C99 freestanding
+list but is obsolescent as of C23.  Gnulib code can also assume the existence
 of @code{<ctype.h>}, @code{<errno.h>}, @code{<fcntl.h>},
 @code{<locale.h>}, @code{<signal.h>}, @code{<stdio.h>},
 @code{<stdlib.h>}, @code{<string.h>}, and @code{<time.h>}.  Similarly,
@@ -363,8 +364,10 @@ A declaration after a statement, or as the first clause in a
 @code{long long int}.
 
 @item
-@code{<stdbool.h>}, assuming the @code{stdbool} module is used.
-@xref{stdbool.h}.
+@code{<stdbool.h>}, although Gnulib code no longer uses
+it directly, preferring plain @code{bool} via the
+@code{c-bool} module instead.
+@xref{c-bool}.
 
 @item
 @code{<stdint.h>}, assuming the @code{stdint} module is used.
diff --git a/doc/intprops.texi b/doc/intprops.texi
index 2bf36254a5..e11192d97f 100644
--- a/doc/intprops.texi
+++ b/doc/intprops.texi
@@ -61,7 +61,7 @@ but it does not assume that signed integer arithmetic wraps around.
 @findex TYPE_IS_INTEGER
 @code{TYPE_IS_INTEGER (@var{t})} is an arithmetic constant
 expression that is 1 if the arithmetic type @var{t} is an integer type.
-@code{_Bool} counts as an integer type.
+@code{bool} counts as an integer type.
 
 @findex TYPE_SIGNED
 @code{TYPE_SIGNED (@var{t})} is an arithmetic constant expression
@@ -140,7 +140,6 @@ values of the integer type @var{t}.  These expressions are of the type
 Example usage:
 
 @example
-#include <stdbool.h>
 #include <sys/types.h>
 #include <intprops.h>
 bool
diff --git a/doc/posix-headers/stdbool.texi b/doc/posix-headers/stdbool.texi
index d7ba4068fc..3541a5b4ae 100644
--- a/doc/posix-headers/stdbool.texi
+++ b/doc/posix-headers/stdbool.texi
@@ -30,8 +30,10 @@ Portability problems not fixed by Gnulib:
 @item
 @samp{_Bool} cannot be used before @code{<stdbool.h>} is included, or if
 the program is intended to be compiled by a C++ compiler.
+(With the advent of C23, @samp{_Bool} is obsolescent anyway.)
 @item
 You cannot assume that @code{_Bool} is a typedef; it might be a macro.
+For example, C23 allows @code{_Bool} to be a macro.
 @item
 Bit-fields of type @samp{bool} are not supported.  Portable code
 should use @samp{unsigned int foo : 1;} rather than @samp{bool foo : 1;}.
diff --git a/lib/acl-internal.h b/lib/acl-internal.h
index 93533762dd..94553fab25 100644
--- a/lib/acl-internal.h
+++ b/lib/acl-internal.h
@@ -19,7 +19,6 @@
 
 #include "acl.h"
 
-#include <stdbool.h>
 #include <stdlib.h>
 
 /* All systems define the ACL related API in <sys/acl.h>.  */
diff --git a/lib/acl.h b/lib/acl.h
index f4d0df8061..0be6ef1cea 100644
--- a/lib/acl.h
+++ b/lib/acl.h
@@ -20,7 +20,6 @@
 #ifndef _GL_ACL_H
 #define _GL_ACL_H 1
 
-#include <stdbool.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 
diff --git a/lib/argmatch.c b/lib/argmatch.c
index 2a28900a4e..16478de124 100644
--- a/lib/argmatch.c
+++ b/lib/argmatch.c
@@ -24,7 +24,6 @@
 /* Specification.  */
 #include "argmatch.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/argmatch.h b/lib/argmatch.h
index 52f2bb727b..846cff9066 100644
--- a/lib/argmatch.h
+++ b/lib/argmatch.h
@@ -23,7 +23,6 @@
 # define ARGMATCH_H_ 1
 
 # include <limits.h>
-# include <stdbool.h>
 # include <stddef.h>
 # include <stdio.h>
 # include <string.h> /* memcmp */
diff --git a/lib/argp-help.c b/lib/argp-help.c
index 39d7168520..9166cc1c93 100644
--- a/lib/argp-help.c
+++ b/lib/argp-help.c
@@ -26,7 +26,6 @@
 
 #include <alloca.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/argv-iter.h b/lib/argv-iter.h
index c6ad11360c..68665be20e 100644
--- a/lib/argv-iter.h
+++ b/lib/argv-iter.h
@@ -15,7 +15,6 @@
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 #include <stdio.h>
-#include <stdbool.h>
 
 /* Definition of _GL_ARG_NONNULL.  */
 #include "arg-nonnull.h"
diff --git a/lib/asyncsafe-spin.c b/lib/asyncsafe-spin.c
index 599cee7195..24705fc8df 100644
--- a/lib/asyncsafe-spin.c
+++ b/lib/asyncsafe-spin.c
@@ -21,12 +21,10 @@
 /* Specification.  */
 #include "asyncsafe-spin.h"
 
-#include <stdbool.h>
 #include <stdlib.h>
 #if defined _AIX
 # include <sys/atomic_op.h>
 #endif
-
 #if 0x590 <= __SUNPRO_C && __STDC__
 # define asm __asm
 #endif
diff --git a/lib/backup-internal.h b/lib/backup-internal.h
index 039c2323cd..ca8d0f2a76 100644
--- a/lib/backup-internal.h
+++ b/lib/backup-internal.h
@@ -16,7 +16,6 @@
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 #include "backupfile.h"
-#include <stdbool.h>
 #include <stdlib.h>
 
 extern char *backupfile_internal (int, char const *, enum backup_type, bool)
diff --git a/lib/backupfile.c b/lib/backupfile.c
index b2ab67847a..f2ad0eb404 100644
--- a/lib/backupfile.c
+++ b/lib/backupfile.c
@@ -25,7 +25,6 @@
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdckdint.h>
 #include <stdint.h>
 #include <stdlib.h>
diff --git a/lib/base32.h b/lib/base32.h
index 4145fe7a03..a2abea6825 100644
--- a/lib/base32.h
+++ b/lib/base32.h
@@ -21,9 +21,6 @@
 /* Get idx_t. */
 # include <idx.h>
 
-/* Get bool. */
-# include <stdbool.h>
-
 /* This uses that the expression (n+(k-1))/k means the smallest
    integer >= n/k, i.e., the ceiling of n/k.  */
 # define BASE32_LENGTH(inlen) ((((inlen) + 4) / 5) * 8)
diff --git a/lib/base64.h b/lib/base64.h
index 6b8b3dc348..c4b2ac07b9 100644
--- a/lib/base64.h
+++ b/lib/base64.h
@@ -21,9 +21,6 @@
 /* Get idx_t.  */
 # include <idx.h>
 
-/* Get bool. */
-# include <stdbool.h>
-
 # ifdef __cplusplus
 extern "C" {
 # endif
diff --git a/lib/basename-lgpl.c b/lib/basename-lgpl.c
index eb07e25413..f8da1484da 100644
--- a/lib/basename-lgpl.c
+++ b/lib/basename-lgpl.c
@@ -21,7 +21,6 @@
 /* Specification.  */
 #include "basename-lgpl.h"
 
-#include <stdbool.h>
 #include <string.h>
 
 #include "filename.h"
diff --git a/lib/bitset/base.h b/lib/bitset/base.h
index 504a1e525c..7d87362cf2 100644
--- a/lib/bitset/base.h
+++ b/lib/bitset/base.h
@@ -22,7 +22,6 @@
 #define _BITSET_BASE_H
 
 #include <limits.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>     /* because Gnulib's <stdlib.h> may '#define free ...' */
 #include <string.h> /* ffsl */
diff --git a/lib/c-ctype.h b/lib/c-ctype.h
index 1a4f603898..1202ff8a36 100644
--- a/lib/c-ctype.h
+++ b/lib/c-ctype.h
@@ -23,8 +23,6 @@
 #ifndef C_CTYPE_H
 #define C_CTYPE_H
 
-#include <stdbool.h>
-
 #ifndef _GL_INLINE_HEADER_BEGIN
  #error "Please include config.h first."
 #endif
diff --git a/lib/c-strcasestr.c b/lib/c-strcasestr.c
index 0c691852f8..73bfe541f4 100644
--- a/lib/c-strcasestr.c
+++ b/lib/c-strcasestr.c
@@ -20,7 +20,6 @@
 /* Specification.  */
 #include "c-strcasestr.h"
 
-#include <stdbool.h>
 #include <string.h>
 
 #include "c-ctype.h"
diff --git a/lib/canonicalize-lgpl.c b/lib/canonicalize-lgpl.c
index a7fa7feb62..8c3d7f7cf8 100644
--- a/lib/canonicalize-lgpl.c
+++ b/lib/canonicalize-lgpl.c
@@ -30,7 +30,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
-#include <stdbool.h>
 #include <string.h>
 #include <sys/stat.h>
 #include <unistd.h>
diff --git a/lib/canonicalize.c b/lib/canonicalize.c
index eaf18c6d19..e331e3ff1b 100644
--- a/lib/canonicalize.c
+++ b/lib/canonicalize.c
@@ -20,7 +20,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <string.h>
 #include <sys/stat.h>
 #include <unistd.h>
diff --git a/lib/chdir-long.c b/lib/chdir-long.c
index f4efb20989..1c19fa4737 100644
--- a/lib/chdir-long.c
+++ b/lib/chdir-long.c
@@ -23,7 +23,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdlib.h>
-#include <stdbool.h>
 #include <string.h>
 #include <stdio.h>
 
diff --git a/lib/chown.c b/lib/chown.c
index 705ca85874..e68acdaf71 100644
--- a/lib/chown.c
+++ b/lib/chown.c
@@ -25,7 +25,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <string.h>
 #include <sys/stat.h>
 
diff --git a/lib/classpath.h b/lib/classpath.h
index 0a2ad0cf69..53253f1f83 100644
--- a/lib/classpath.h
+++ b/lib/classpath.h
@@ -15,8 +15,6 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
-
 /* Return the new CLASSPATH value.  The given classpaths are prepended to
    the current CLASSPATH value.   If use_minimal_classpath, the current
    CLASSPATH is ignored.  */
diff --git a/lib/clean-temp-private.h b/lib/clean-temp-private.h
index f1c5e0386d..6f21816b8b 100644
--- a/lib/clean-temp-private.h
+++ b/lib/clean-temp-private.h
@@ -17,7 +17,6 @@
 #ifndef _CLEAN_TEMP_PRIVATE_H
 #define _CLEAN_TEMP_PRIVATE_H
 
-#include <stdbool.h>
 #include <stddef.h>
 #include "gl_list.h"
 #include "asyncsafe-spin.h"
diff --git a/lib/clean-temp-simple.c b/lib/clean-temp-simple.c
index e9612f8316..53127d0bf0 100644
--- a/lib/clean-temp-simple.c
+++ b/lib/clean-temp-simple.c
@@ -24,7 +24,6 @@
 #include <errno.h>
 #include <limits.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/lib/clean-temp-simple.h b/lib/clean-temp-simple.h
index a0a3c71a34..d55e8d2482 100644
--- a/lib/clean-temp-simple.h
+++ b/lib/clean-temp-simple.h
@@ -18,8 +18,6 @@
 #ifndef _CLEAN_TEMP_SIMPLE_H
 #define _CLEAN_TEMP_SIMPLE_H
 
-#include <stdbool.h>
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/lib/clean-temp.c b/lib/clean-temp.c
index 09f4eccabd..d4f0ca3ca5 100644
--- a/lib/clean-temp.c
+++ b/lib/clean-temp.c
@@ -24,7 +24,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/clean-temp.h b/lib/clean-temp.h
index 7f114c61f3..451a43d121 100644
--- a/lib/clean-temp.h
+++ b/lib/clean-temp.h
@@ -18,7 +18,6 @@
 #ifndef _CLEAN_TEMP_H
 #define _CLEAN_TEMP_H
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <sys/types.h>
 
diff --git a/lib/cloexec.h b/lib/cloexec.h
index 7a22d77532..15d2d5efe2 100644
--- a/lib/cloexec.h
+++ b/lib/cloexec.h
@@ -15,8 +15,6 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
-
 /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
    or clear the flag if VALUE is false.
    Return 0 on success, or -1 on error with 'errno' set.
diff --git a/lib/close-stream.c b/lib/close-stream.c
index 9b0e97b271..0fdca79bf8 100644
--- a/lib/close-stream.c
+++ b/lib/close-stream.c
@@ -20,7 +20,6 @@
 #include "close-stream.h"
 
 #include <errno.h>
-#include <stdbool.h>
 
 #include "fpending.h"
 
diff --git a/lib/closein.c b/lib/closein.c
index b891c42e0d..702faece8b 100644
--- a/lib/closein.c
+++ b/lib/closein.c
@@ -20,7 +20,6 @@
 #include "closein.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <unistd.h>
 
diff --git a/lib/closeout.c b/lib/closeout.c
index 688cd730bf..cfb6efcae5 100644
--- a/lib/closeout.c
+++ b/lib/closeout.c
@@ -21,7 +21,6 @@
 #include "closeout.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <unistd.h>
 
diff --git a/lib/closeout.h b/lib/closeout.h
index fe24c4e11e..9ea15cebb9 100644
--- a/lib/closeout.h
+++ b/lib/closeout.h
@@ -19,8 +19,6 @@
 #ifndef CLOSEOUT_H
 # define CLOSEOUT_H 1
 
-# include <stdbool.h>
-
 # ifdef __cplusplus
 extern "C" {
 # endif
diff --git a/lib/csharpcomp.h b/lib/csharpcomp.h
index a16b38ca25..b60c84cccd 100644
--- a/lib/csharpcomp.h
+++ b/lib/csharpcomp.h
@@ -18,8 +18,6 @@
 #ifndef _CSHARPCOMP_H
 #define _CSHARPCOMP_H
 
-#include <stdbool.h>
-
 /* Compile a set of C# source files to bytecode.
    sources is an array of source file names, including resource files.
    libdirs is a list of directories to be searched for libraries.
diff --git a/lib/csharpexec.h b/lib/csharpexec.h
index d867ef11d6..d9c6557570 100644
--- a/lib/csharpexec.h
+++ b/lib/csharpexec.h
@@ -18,8 +18,6 @@
 #ifndef _CSHARPEXEC_H
 #define _CSHARPEXEC_H
 
-#include <stdbool.h>
-
 typedef bool execute_fn (const char *progname,
                          const char *prog_path, const char * const *prog_argv,
                          void *private_data);
diff --git a/lib/cycle-check.c b/lib/cycle-check.c
index 20e0e1e337..70eaaac084 100644
--- a/lib/cycle-check.c
+++ b/lib/cycle-check.c
@@ -25,7 +25,6 @@
 #include <sys/stat.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <stdbool.h>
 
 #include "assure.h"
 
diff --git a/lib/cycle-check.h b/lib/cycle-check.h
index a297330fda..130de4d65e 100644
--- a/lib/cycle-check.h
+++ b/lib/cycle-check.h
@@ -21,7 +21,6 @@
 # define CYCLE_CHECK_H 1
 
 # include <stdint.h>
-# include <stdbool.h>
 # include "dev-ino.h"
 # include "same-inode.h"
 
diff --git a/lib/des.h b/lib/des.h
index cb6f3af261..f2863cd19f 100644
--- a/lib/des.h
+++ b/lib/des.h
@@ -23,7 +23,6 @@
 
 #include <stddef.h>
 #include <stdint.h>
-#include <stdbool.h>
 
 /*
  * Encryption/Decryption context of DES
diff --git a/lib/dfa.h b/lib/dfa.h
index 043f0e9717..3e3a938aaa 100644
--- a/lib/dfa.h
+++ b/lib/dfa.h
@@ -23,7 +23,6 @@
 
 #include "idx.h"
 #include <regex.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 
diff --git a/lib/diffseq.h b/lib/diffseq.h
index 0f76ea1d5a..a8b0e7bd40 100644
--- a/lib/diffseq.h
+++ b/lib/diffseq.h
@@ -70,7 +70,6 @@
 
    Before including this file, you also need to include:
      #include <limits.h>
-     #include <stdbool.h>
      #include "minmax.h"
  */
 
diff --git a/lib/dirname.h b/lib/dirname.h
index e18a97ea1c..573fa6c1c7 100644
--- a/lib/dirname.h
+++ b/lib/dirname.h
@@ -19,7 +19,6 @@
 #ifndef DIRNAME_H_
 # define DIRNAME_H_ 1
 
-# include <stdbool.h>
 # include <stdlib.h>
 # include "filename.h"
 # include "basename-lgpl.h"
diff --git a/lib/exclude.c b/lib/exclude.c
index 3770c48287..a39df312f2 100644
--- a/lib/exclude.c
+++ b/lib/exclude.c
@@ -23,8 +23,6 @@
 
 #include <config.h>
 
-#include <stdbool.h>
-
 #include <ctype.h>
 #include <errno.h>
 #include <stddef.h>
diff --git a/lib/exclude.h b/lib/exclude.h
index 020b3c36d8..f66ee3b4dc 100644
--- a/lib/exclude.h
+++ b/lib/exclude.h
@@ -19,7 +19,6 @@
 #ifndef _GL_EXCLUDE_H
 #define _GL_EXCLUDE_H 1
 
-#include <stdbool.h>
 #include <stdio.h>
 
 /* Written by Paul Eggert <eggert@xxxxxxxxxxx>
diff --git a/lib/execute.c b/lib/execute.c
index 2ce5c15476..ce6804b9c1 100644
--- a/lib/execute.c
+++ b/lib/execute.c
@@ -23,7 +23,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <signal.h>
 #include <unistd.h>
diff --git a/lib/execute.h b/lib/execute.h
index d40d5093af..1a04f32d75 100644
--- a/lib/execute.h
+++ b/lib/execute.h
@@ -18,8 +18,6 @@
 #ifndef _EXECUTE_H
 #define _EXECUTE_H
 
-#include <stdbool.h>
-
 /* Execute a command, optionally redirecting any of the three standard file
    descriptors to /dev/null.  Return its exit code.
    If it didn't terminate correctly, exit if exit_on_error is true, otherwise
diff --git a/lib/execvpe.c b/lib/execvpe.c
index cbe325fb70..491cbb8eb5 100644
--- a/lib/execvpe.c
+++ b/lib/execvpe.c
@@ -26,7 +26,6 @@
 #include <unistd.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "findprog.h"
diff --git a/lib/fatal-signal.c b/lib/fatal-signal.c
index f036785898..1d930b14e1 100644
--- a/lib/fatal-signal.c
+++ b/lib/fatal-signal.c
@@ -21,7 +21,6 @@
 /* Specification.  */
 #include "fatal-signal.h"
 
-#include <stdbool.h>
 #include <stdlib.h>
 #include <signal.h>
 #include <unistd.h>
diff --git a/lib/fchdir.c b/lib/fchdir.c
index 99e4aa851c..846890704d 100644
--- a/lib/fchdir.c
+++ b/lib/fchdir.c
@@ -22,7 +22,6 @@
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
diff --git a/lib/file-set.h b/lib/file-set.h
index dc9d0ae519..e95879f831 100644
--- a/lib/file-set.h
+++ b/lib/file-set.h
@@ -18,7 +18,6 @@
 
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <stdbool.h>
 
 #include "hash.h"
 
diff --git a/lib/filevercmp.c b/lib/filevercmp.c
index 7e54793e61..cb1b38d473 100644
--- a/lib/filevercmp.c
+++ b/lib/filevercmp.c
@@ -20,7 +20,6 @@
 #include <config.h>
 #include "filevercmp.h"
 
-#include <stdbool.h>
 #include <c-ctype.h>
 #include <limits.h>
 #include <idx.h>
diff --git a/lib/findprog-in.c b/lib/findprog-in.c
index 72a05dbf50..0957488246 100644
--- a/lib/findprog-in.c
+++ b/lib/findprog-in.c
@@ -22,7 +22,6 @@
 #include "findprog.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/lib/findprog.c b/lib/findprog.c
index 78551ef044..961277ab95 100644
--- a/lib/findprog.c
+++ b/lib/findprog.c
@@ -21,7 +21,6 @@
 /* Specification.  */
 #include "findprog.h"
 
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/lib/findprog.h b/lib/findprog.h
index e47acc5e47..cba0297deb 100644
--- a/lib/findprog.h
+++ b/lib/findprog.h
@@ -18,8 +18,6 @@
 #ifndef _FINDPROG_H
 #define _FINDPROG_H
 
-#include <stdbool.h>
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/lib/fma.c b/lib/fma.c
index e53be24bd9..25a41c485f 100644
--- a/lib/fma.c
+++ b/lib/fma.c
@@ -24,7 +24,6 @@
 #include <math.h>
 
 #include <limits.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #if HAVE_FEGETROUND
diff --git a/lib/fnmatch.c b/lib/fnmatch.c
index 45e326902d..5568422549 100644
--- a/lib/fnmatch.c
+++ b/lib/fnmatch.c
@@ -38,7 +38,6 @@
 #include <wchar.h>
 #include <wctype.h>
 #include <stddef.h>
-#include <stdbool.h>
 
 /* We need some of the locale data (the collation sequence information)
    but there is no interface to get this information in general.  Therefore
diff --git a/lib/fopen.c b/lib/fopen.c
index a5b3ae3899..334a7b653a 100644
--- a/lib/fopen.c
+++ b/lib/fopen.c
@@ -39,7 +39,6 @@ orig_fopen (const char *filename, const char *mode)
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <string.h>
 #include <unistd.h>
 #include <sys/types.h>
diff --git a/lib/freadable.h b/lib/freadable.h
index 87590209fe..874fae6c47 100644
--- a/lib/freadable.h
+++ b/lib/freadable.h
@@ -14,7 +14,6 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include <stdio.h>
 
 /* Return true if the stream STREAM supports reading, false if it supports
diff --git a/lib/freading.h b/lib/freading.h
index 74fed227bb..9fa8cd14d9 100644
--- a/lib/freading.h
+++ b/lib/freading.h
@@ -14,7 +14,6 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include <stdio.h>
 
 /* Return true if the stream STREAM is opened read-only, or if the
diff --git a/lib/freopen-safer.c b/lib/freopen-safer.c
index 3bfacee643..8f4e824ef4 100644
--- a/lib/freopen-safer.c
+++ b/lib/freopen-safer.c
@@ -25,7 +25,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <unistd.h>
 
 /* Guarantee that FD is open; all smaller FDs must already be open.
diff --git a/lib/fstrcmp.c b/lib/fstrcmp.c
index 5979f0e7b5..c6ccfed959 100644
--- a/lib/fstrcmp.c
+++ b/lib/fstrcmp.c
@@ -22,7 +22,6 @@
 #include "fstrcmp.h"
 
 #include <string.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdint.h>
diff --git a/lib/fsusage.h b/lib/fsusage.h
index 0443d19f92..27085b7b41 100644
--- a/lib/fsusage.h
+++ b/lib/fsusage.h
@@ -22,7 +22,6 @@
 # define FSUSAGE_H_
 
 # include <stdint.h>
-# include <stdbool.h>
 
 struct fs_usage
 {
diff --git a/lib/fts.c b/lib/fts.c
index a7b5b77d79..7778b6b786 100644
--- a/lib/fts.c
+++ b/lib/fts.c
@@ -63,7 +63,6 @@ static char sccsid[] = "@(#)fts.c       8.6 (Berkeley) 8/14/94";
 #include <fcntl.h>
 #include <errno.h>
 #include <stdalign.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/fwritable.h b/lib/fwritable.h
index c2e845e7bd..cf88313509 100644
--- a/lib/fwritable.h
+++ b/lib/fwritable.h
@@ -14,7 +14,6 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include <stdio.h>
 
 /* Return true if the stream STREAM supports writing, false if it supports
diff --git a/lib/fwriteerror.c b/lib/fwriteerror.c
index 372f76c186..a932485481 100644
--- a/lib/fwriteerror.c
+++ b/lib/fwriteerror.c
@@ -21,7 +21,6 @@
 #include "fwriteerror.h"
 
 #include <errno.h>
-#include <stdbool.h>
 
 static int
 do_fwriteerror (FILE *fp, bool ignore_ebadf)
diff --git a/lib/fwriting.h b/lib/fwriting.h
index 0c04cbedc4..9c5d39a744 100644
--- a/lib/fwriting.h
+++ b/lib/fwriting.h
@@ -14,7 +14,6 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include <stdio.h>
 
 /* Return true if the stream STREAM is opened write-only or
diff --git a/lib/gen-uni-tables.c b/lib/gen-uni-tables.c
index 298d9689bc..2c5dbd462c 100644
--- a/lib/gen-uni-tables.c
+++ b/lib/gen-uni-tables.c
@@ -37,7 +37,6 @@
  */
 
 #include <assert.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/lib/getaddrinfo.c b/lib/getaddrinfo.c
index 392289858d..0579315d30 100644
--- a/lib/getaddrinfo.c
+++ b/lib/getaddrinfo.c
@@ -39,8 +39,6 @@
 /* Get snprintf. */
 #include <stdio.h>
 
-#include <stdbool.h>
-
 #include "gettext.h"
 #define _(String) gettext (String)
 #define N_(String) String
diff --git a/lib/getcwd.c b/lib/getcwd.c
index 113332f1c9..e48529723d 100644
--- a/lib/getcwd.c
+++ b/lib/getcwd.c
@@ -28,7 +28,6 @@
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <stdbool.h>
 #include <stddef.h>
 
 #include <fcntl.h> /* For AT_FDCWD on Solaris 9.  */
diff --git a/lib/getloadavg.c b/lib/getloadavg.c
index 37e8280867..1fddee97af 100644
--- a/lib/getloadavg.c
+++ b/lib/getloadavg.c
@@ -82,7 +82,6 @@
 #include <stdlib.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 
 # include <sys/types.h>
diff --git a/lib/getndelim2.c b/lib/getndelim2.c
index 2611bc2ae1..b0641498f5 100644
--- a/lib/getndelim2.c
+++ b/lib/getndelim2.c
@@ -23,7 +23,6 @@
 
 #include "getndelim2.h"
 
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/getpass.c b/lib/getpass.c
index 063985f9bb..bf2d198b07 100644
--- a/lib/getpass.c
+++ b/lib/getpass.c
@@ -28,8 +28,6 @@
 
 #if !(defined _WIN32 && !defined __CYGWIN__)
 
-# include <stdbool.h>
-
 # if HAVE_DECL___FSETLOCKING && HAVE___FSETLOCKING
 #  if HAVE_STDIO_EXT_H
 #   include <stdio_ext.h>
diff --git a/lib/getrandom.c b/lib/getrandom.c
index e146873093..c05a48167e 100644
--- a/lib/getrandom.c
+++ b/lib/getrandom.c
@@ -23,7 +23,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <unistd.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
diff --git a/lib/git-merge-changelog.c b/lib/git-merge-changelog.c
index 3ffcc747ab..679c4aac1a 100644
--- a/lib/git-merge-changelog.c
+++ b/lib/git-merge-changelog.c
@@ -157,7 +157,6 @@
 
 #include <getopt.h>
 #include <limits.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/gl_list.h b/lib/gl_list.h
index bf6a2ba4c0..1fd12de4f4 100644
--- a/lib/gl_list.h
+++ b/lib/gl_list.h
@@ -18,7 +18,6 @@
 #ifndef _GL_LIST_H
 #define _GL_LIST_H
 
-#include <stdbool.h>
 #include <stddef.h>
 
 #ifndef _GL_INLINE_HEADER_BEGIN
diff --git a/lib/gl_map.h b/lib/gl_map.h
index a7a37643cf..e6563cd4fa 100644
--- a/lib/gl_map.h
+++ b/lib/gl_map.h
@@ -18,7 +18,6 @@
 #ifndef _GL_MAP_H
 #define _GL_MAP_H
 
-#include <stdbool.h>
 #include <stddef.h>
 
 #ifndef _GL_INLINE_HEADER_BEGIN
diff --git a/lib/gl_omap.h b/lib/gl_omap.h
index 000a34e7a5..67f15c9046 100644
--- a/lib/gl_omap.h
+++ b/lib/gl_omap.h
@@ -18,7 +18,6 @@
 #ifndef _GL_OMAP_H
 #define _GL_OMAP_H
 
-#include <stdbool.h>
 #include <stddef.h>
 
 #ifndef _GL_INLINE_HEADER_BEGIN
diff --git a/lib/gl_oset.h b/lib/gl_oset.h
index 2de391f0ff..0e360bdb2b 100644
--- a/lib/gl_oset.h
+++ b/lib/gl_oset.h
@@ -18,7 +18,6 @@
 #ifndef _GL_OSET_H
 #define _GL_OSET_H
 
-#include <stdbool.h>
 #include <stddef.h>
 
 #ifndef _GL_INLINE_HEADER_BEGIN
diff --git a/lib/gl_set.h b/lib/gl_set.h
index 14b3053e54..c98463a574 100644
--- a/lib/gl_set.h
+++ b/lib/gl_set.h
@@ -18,7 +18,6 @@
 #ifndef _GL_SET_H
 #define _GL_SET_H
 
-#include <stdbool.h>
 #include <stddef.h>
 
 #ifndef _GL_INLINE_HEADER_BEGIN
diff --git a/lib/glob.c b/lib/glob.c
index 57cb3bd1d1..d9206495d5 100644
--- a/lib/glob.c
+++ b/lib/glob.c
@@ -31,7 +31,6 @@
 #include <fcntl.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
 #include <assert.h>
diff --git a/lib/glthread/cond.h b/lib/glthread/cond.h
index 8418719272..1109edb902 100644
--- a/lib/glthread/cond.h
+++ b/lib/glthread/cond.h
@@ -49,7 +49,6 @@
 #define _GLTHREAD_COND_H
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <time.h>
 
diff --git a/lib/hamt.h b/lib/hamt.h
index d685bb6ee7..6cbc7fd7d2 100644
--- a/lib/hamt.h
+++ b/lib/hamt.h
@@ -68,7 +68,6 @@ _GL_INLINE_HEADER_BEGIN
 # define GL_HAMT_THREAD_SAFE 0
 #endif
 
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
 
diff --git a/lib/hard-locale.h b/lib/hard-locale.h
index 6066f4ed44..d0fef9b629 100644
--- a/lib/hard-locale.h
+++ b/lib/hard-locale.h
@@ -18,8 +18,6 @@
 #ifndef HARD_LOCALE_H_
 # define HARD_LOCALE_H_ 1
 
-# include <stdbool.h>
-
 /* Return true if the specified CATEGORY of the current locale is hard, i.e.
    different from the C or POSIX locale that has a fixed behavior.
    CATEGORY must be one of the LC_* values, but not LC_ALL.  */
diff --git a/lib/hash-triple.h b/lib/hash-triple.h
index 929995f296..d5f7098594 100644
--- a/lib/hash-triple.h
+++ b/lib/hash-triple.h
@@ -21,7 +21,6 @@
 
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <stdbool.h>
 
 /* Describe a just-created or just-renamed destination file.  */
 struct F_triple
diff --git a/lib/hash.h b/lib/hash.h
index ebfc740777..6bf47ffd0e 100644
--- a/lib/hash.h
+++ b/lib/hash.h
@@ -25,7 +25,6 @@
 # define HASH_H_
 
 # include <stdio.h>
-# include <stdbool.h>
 
 # ifdef __cplusplus
 extern "C" {
diff --git a/lib/human.h b/lib/human.h
index 78fb7180b5..34cedff4f2 100644
--- a/lib/human.h
+++ b/lib/human.h
@@ -21,7 +21,6 @@
 # define HUMAN_H_ 1
 
 # include <limits.h>
-# include <stdbool.h>
 # include <stdint.h>
 # include <unistd.h>
 
diff --git a/lib/i-ring.h b/lib/i-ring.h
index 58ba72f401..ec27d5a3f4 100644
--- a/lib/i-ring.h
+++ b/lib/i-ring.h
@@ -14,7 +14,6 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include "verify.h"
 
 enum { I_RING_SIZE = 4 };
diff --git a/lib/isapipe.c b/lib/isapipe.c
index 467ed00ca9..163d6d6cf8 100644
--- a/lib/isapipe.c
+++ b/lib/isapipe.c
@@ -53,7 +53,6 @@ isapipe (int fd)
 #else
 /* Unix platforms.  */
 
-# include <stdbool.h>
 # include <sys/types.h>
 # include <sys/stat.h>
 # include <unistd.h>
diff --git a/lib/javacomp.h b/lib/javacomp.h
index 0f5861b363..cf1222ed9b 100644
--- a/lib/javacomp.h
+++ b/lib/javacomp.h
@@ -18,8 +18,6 @@
 #ifndef _JAVACOMP_H
 #define _JAVACOMP_H
 
-#include <stdbool.h>
-
 /* Compile a Java source file to bytecode.
    java_sources is an array of source file names.
    classpaths is a list of pathnames to be prepended to the CLASSPATH.
diff --git a/lib/javaexec.h b/lib/javaexec.h
index 674d3427a7..bae2b005a1 100644
--- a/lib/javaexec.h
+++ b/lib/javaexec.h
@@ -18,8 +18,6 @@
 #ifndef _JAVAEXEC_H
 #define _JAVAEXEC_H
 
-#include <stdbool.h>
-
 typedef bool execute_fn (const char *progname,
                          const char *prog_path, const char * const *prog_argv,
                          void *private_data);
diff --git a/lib/javaversion.c b/lib/javaversion.c
index ca247e6535..b24fe2b5a0 100644
--- a/lib/javaversion.c
+++ b/lib/javaversion.c
@@ -21,7 +21,6 @@
 #include "javaversion.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/lib/lchown.c b/lib/lchown.c
index 8b0d871a27..a6ea1fab4b 100644
--- a/lib/lchown.c
+++ b/lib/lchown.c
@@ -23,7 +23,6 @@
 #include <unistd.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <string.h>
 #include <sys/stat.h>
 
diff --git a/lib/localeinfo.h b/lib/localeinfo.h
index ac235fccae..f117374a73 100644
--- a/lib/localeinfo.h
+++ b/lib/localeinfo.h
@@ -20,7 +20,6 @@
 /* Written by Paul Eggert.  */
 
 #include <limits.h>
-#include <stdbool.h>
 #include <wchar.h>
 
 struct localeinfo
diff --git a/lib/localename.c b/lib/localename.c
index 446fc0333d..3a1d96ad56 100644
--- a/lib/localename.c
+++ b/lib/localename.c
@@ -24,7 +24,6 @@
 #include "localename.h"
 
 #include <limits.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <locale.h>
diff --git a/lib/long-options.h b/lib/long-options.h
index 4ec42cc942..a0f37025eb 100644
--- a/lib/long-options.h
+++ b/lib/long-options.h
@@ -20,8 +20,6 @@
 #ifndef LONG_OPTIONS_H_
 # define LONG_OPTIONS_H_ 1
 
-# include <stdbool.h>
-
 void parse_long_options (int _argc,
                          char **_argv,
                          const char *_command_name,
diff --git a/lib/malloc/dynarray.h b/lib/malloc/dynarray.h
index f16fd950df..df1aa4167d 100644
--- a/lib/malloc/dynarray.h
+++ b/lib/malloc/dynarray.h
@@ -94,7 +94,6 @@
 #ifndef _DYNARRAY_H
 #define _DYNARRAY_H
 
-#include <stdbool.h>
 #include <stddef.h>
 #include <string.h>
 
diff --git a/lib/mbchar.h b/lib/mbchar.h
index 9aeb04413c..5ca8df61fe 100644
--- a/lib/mbchar.h
+++ b/lib/mbchar.h
@@ -144,7 +144,6 @@
 #ifndef _MBCHAR_H
 #define _MBCHAR_H 1
 
-#include <stdbool.h>
 #include <string.h>
 #include <wchar.h>
 #include <wctype.h>
diff --git a/lib/mbfile.h b/lib/mbfile.h
index bfe8706246..89bfc3e746 100644
--- a/lib/mbfile.h
+++ b/lib/mbfile.h
@@ -48,7 +48,6 @@
 #define _MBFILE_H 1
 
 #include <assert.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include <wchar.h>
diff --git a/lib/mbiter.h b/lib/mbiter.h
index 031fa92fbf..f30a5406bb 100644
--- a/lib/mbiter.h
+++ b/lib/mbiter.h
@@ -83,7 +83,6 @@
 #define _MBITER_H 1
 
 #include <assert.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <string.h>
 #include <wchar.h>
diff --git a/lib/mbmemcasecoll.h b/lib/mbmemcasecoll.h
index b8df2058c8..50f0040f17 100644
--- a/lib/mbmemcasecoll.h
+++ b/lib/mbmemcasecoll.h
@@ -19,7 +19,6 @@
 #ifndef MBMEMCASECOLL_H
 #define MBMEMCASECOLL_H
 
-#include <stdbool.h>
 #include <stddef.h>
 
 #ifdef __cplusplus
diff --git a/lib/mbscasestr.c b/lib/mbscasestr.c
index 9d4c3ae468..e5b3263eb3 100644
--- a/lib/mbscasestr.c
+++ b/lib/mbscasestr.c
@@ -21,7 +21,6 @@
 #include <string.h>
 
 #include <ctype.h>
-#include <stdbool.h>
 #include <stddef.h>  /* for NULL, in case a nonstandard string.h lacks it */
 #include <stdlib.h>
 
diff --git a/lib/mbsstr.c b/lib/mbsstr.c
index f9ce4eeca8..ff7ff17d76 100644
--- a/lib/mbsstr.c
+++ b/lib/mbsstr.c
@@ -20,7 +20,6 @@
 /* Specification.  */
 #include <string.h>
 
-#include <stdbool.h>
 #include <stddef.h>  /* for NULL, in case a nonstandard string.h lacks it */
 #include <stdlib.h>
 
diff --git a/lib/mbuiter.h b/lib/mbuiter.h
index f197bd1c2e..1a48fcfa5c 100644
--- a/lib/mbuiter.h
+++ b/lib/mbuiter.h
@@ -90,7 +90,6 @@
 #define _MBUITER_H 1
 
 #include <assert.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/mkdir-p.h b/lib/mkdir-p.h
index f8a4b5d4b9..90bd59f37d 100644
--- a/lib/mkdir-p.h
+++ b/lib/mkdir-p.h
@@ -18,7 +18,6 @@
 
 /* Written by Paul Eggert, David MacKenzie, and Jim Meyering.  */
 
-#include <stdbool.h>
 #include <sys/types.h>
 
 struct savewd;
diff --git a/lib/modechange.h b/lib/modechange.h
index 3982be16b2..d1bcd8f13e 100644
--- a/lib/modechange.h
+++ b/lib/modechange.h
@@ -19,7 +19,6 @@
 #if ! defined MODECHANGE_H_
 # define MODECHANGE_H_
 
-# include <stdbool.h>
 # include <stdlib.h>
 # include <sys/types.h>
 
diff --git a/lib/mountlist.h b/lib/mountlist.h
index 6edac1216f..e24ebbe0dc 100644
--- a/lib/mountlist.h
+++ b/lib/mountlist.h
@@ -19,7 +19,6 @@
 #ifndef MOUNTLIST_H_
 # define MOUNTLIST_H_
 
-# include <stdbool.h>
 # include <sys/types.h>
 
 /* A mount table entry. */
diff --git a/lib/nanosleep.c b/lib/nanosleep.c
index 446794edc0..78e612d4b1 100644
--- a/lib/nanosleep.c
+++ b/lib/nanosleep.c
@@ -25,7 +25,6 @@
 #include "intprops.h"
 #include "verify.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/select.h>
diff --git a/lib/nonblocking.h b/lib/nonblocking.h
index 8e00fd74b0..0cb6f6a584 100644
--- a/lib/nonblocking.h
+++ b/lib/nonblocking.h
@@ -17,8 +17,6 @@
 #ifndef _NONBLOCKING_H
 #define _NONBLOCKING_H
 
-#include <stdbool.h>
-
 /* Non-blocking I/O is an I/O mode by which read(), write() calls avoid
    blocking the current thread.  When non-blocking is enabled:
    - A read() call returns -1 with errno set to EAGAIN when no data or EOF
diff --git a/lib/nstrftime.c b/lib/nstrftime.c
index c1dd554247..37034eb9fb 100644
--- a/lib/nstrftime.c
+++ b/lib/nstrftime.c
@@ -65,7 +65,6 @@ extern char *tzname[];
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
-#include <stdbool.h>
 
 #include "attribute.h"
 #include <intprops.h>
diff --git a/lib/openat.c b/lib/openat.c
index 52aab19d27..a78d0456ed 100644
--- a/lib/openat.c
+++ b/lib/openat.c
@@ -44,7 +44,6 @@ orig_openat (int fd, char const *filename, int flags, mode_t mode)
 #include "cloexec.h"
 
 #include <stdarg.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/openat.h b/lib/openat.h
index 56919ef8dc..c2f64ff50e 100644
--- a/lib/openat.h
+++ b/lib/openat.h
@@ -24,7 +24,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
-#include <stdbool.h>
 
 #ifndef _GL_INLINE_HEADER_BEGIN
  #error "Please include config.h first."
diff --git a/lib/os2-spawn.c b/lib/os2-spawn.c
index b51c09877b..bfedfa1cc3 100644
--- a/lib/os2-spawn.c
+++ b/lib/os2-spawn.c
@@ -23,7 +23,6 @@
 /* Get _open_osfhandle().  */
 #include <io.h>
 
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/lib/parse-datetime.h b/lib/parse-datetime.h
index c333abc037..ae88b2183b 100644
--- a/lib/parse-datetime.h
+++ b/lib/parse-datetime.h
@@ -16,7 +16,6 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include <time.h>
 
 bool parse_datetime (struct timespec *restrict,
diff --git a/lib/pipe-filter-aux.c b/lib/pipe-filter-aux.c
index 8f69a5b2d0..8827d8698e 100644
--- a/lib/pipe-filter-aux.c
+++ b/lib/pipe-filter-aux.c
@@ -22,7 +22,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/lib/pipe-filter-gi.c b/lib/pipe-filter-gi.c
index 2b2e54228d..ca7d763616 100644
--- a/lib/pipe-filter-gi.c
+++ b/lib/pipe-filter-gi.c
@@ -22,7 +22,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/lib/pipe-filter-ii.c b/lib/pipe-filter-ii.c
index 06729584f0..f8332b134d 100644
--- a/lib/pipe-filter-ii.c
+++ b/lib/pipe-filter-ii.c
@@ -21,7 +21,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/lib/pipe-filter.h b/lib/pipe-filter.h
index 4adc23bd05..da122d51bb 100644
--- a/lib/pipe-filter.h
+++ b/lib/pipe-filter.h
@@ -19,10 +19,8 @@
 #ifndef _PIPE_FILTER_H
 #define _PIPE_FILTER_H
 
-#include <stdbool.h>
 #include <stddef.h>
 
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/lib/posixtm.h b/lib/posixtm.h
index bb8a6bdbc3..3ff026a4b8 100644
--- a/lib/posixtm.h
+++ b/lib/posixtm.h
@@ -21,7 +21,6 @@
 #ifndef POSIXTM_H_
 # define POSIXTM_H_
 
-# include <stdbool.h>
 # include <time.h>
 
 /* POSIX Date Syntax flags.  */
diff --git a/lib/priv-set.c b/lib/priv-set.c
index 7a7455b09e..f0487f429d 100644
--- a/lib/priv-set.c
+++ b/lib/priv-set.c
@@ -26,7 +26,6 @@
 #if HAVE_GETPPRIV && HAVE_PRIV_H
 
 # include <errno.h>
-# include <stdbool.h>
 # include <priv.h>
 
 /* Holds a (cached) copy of the effective set.  */
diff --git a/lib/progreloc.c b/lib/progreloc.c
index 8bb2576910..c9e3e663f6 100644
--- a/lib/progreloc.c
+++ b/lib/progreloc.c
@@ -23,7 +23,6 @@
 #include "progname.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/propername.c b/lib/propername.c
index eaef4f2700..6c9d7a5a3d 100644
--- a/lib/propername.c
+++ b/lib/propername.c
@@ -27,7 +27,6 @@
 #include "propername.h"
 
 #include <ctype.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/pthread-spin.c b/lib/pthread-spin.c
index d4d1da001e..d110749655 100644
--- a/lib/pthread-spin.c
+++ b/lib/pthread-spin.c
@@ -21,8 +21,6 @@
 /* Specification.  */
 #include <pthread.h>
 
-#include <stdbool.h>
-
 #if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS
 # include "windows-spin.h"
 #endif
diff --git a/lib/quotearg.c b/lib/quotearg.c
index 9180d9ab05..ac339991a2 100644
--- a/lib/quotearg.c
+++ b/lib/quotearg.c
@@ -38,7 +38,6 @@
 #include <ctype.h>
 #include <errno.h>
 #include <limits.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/readtokens.c b/lib/readtokens.c
index f165580cca..71f6657fde 100644
--- a/lib/readtokens.c
+++ b/lib/readtokens.c
@@ -30,7 +30,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <stdbool.h>
 
 #include "xalloc.h"
 
diff --git a/lib/readtokens0.h b/lib/readtokens0.h
index 2bfbb02cf2..0b0fc92ed2 100644
--- a/lib/readtokens0.h
+++ b/lib/readtokens0.h
@@ -22,7 +22,6 @@
 
 # include <stdio.h>
 # include <sys/types.h>
-# include <stdbool.h>
 # include "obstack.h"
 
 struct Tokens
diff --git a/lib/readutmp.c b/lib/readutmp.c
index 1b6f843d9a..49c9d6d374 100644
--- a/lib/readutmp.c
+++ b/lib/readutmp.c
@@ -27,7 +27,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <string.h>
 #include <stdlib.h>
 #include <stdint.h>
diff --git a/lib/regex-quote.h b/lib/regex-quote.h
index 902735bfc9..0253cdfb45 100644
--- a/lib/regex-quote.h
+++ b/lib/regex-quote.h
@@ -18,10 +18,8 @@
 #ifndef _REGEX_QUOTE_H
 #define _REGEX_QUOTE_H
 
-#include <stdbool.h>
 #include <stdlib.h>
 
-
 /* Specifies a quotation task for converting a fixed string to a regular
    expression pattern.  */
 struct regex_quote_spec
diff --git a/lib/regex_internal.h b/lib/regex_internal.h
index 57a455b1f4..784d2d4586 100644
--- a/lib/regex_internal.h
+++ b/lib/regex_internal.h
@@ -29,7 +29,6 @@
 #include <locale.h>
 #include <wchar.h>
 #include <wctype.h>
-#include <stdbool.h>
 #include <stdint.h>
 
 #ifndef _LIBC
diff --git a/lib/relocwrapper.c b/lib/relocwrapper.c
index ff0ad41995..3ec8b2888b 100644
--- a/lib/relocwrapper.c
+++ b/lib/relocwrapper.c
@@ -29,10 +29,10 @@
           -> readlink
              -> stat
        -> canonicalize-lgpl
+          -> c-bool
           -> libc-config
           -> errno
           -> fcntl-h
-          -> stdbool
           -> sys_stat
           -> unistd
           -> eloop-threshold
diff --git a/lib/rename.c b/lib/rename.c
index 119abe5c26..a525873170 100644
--- a/lib/rename.c
+++ b/lib/rename.c
@@ -29,7 +29,6 @@
    existing files.  */
 
 # include <errno.h>
-# include <stdbool.h>
 # include <stdlib.h>
 # include <sys/stat.h>
 # include <unistd.h>
diff --git a/lib/renameatu.c b/lib/renameatu.c
index 7ba186cae7..0c9cdeb95f 100644
--- a/lib/renameatu.c
+++ b/lib/renameatu.c
@@ -38,7 +38,6 @@ errno_fail (int e)
 
 #if HAVE_RENAMEAT
 
-# include <stdbool.h>
 # include <stdlib.h>
 # include <string.h>
 
diff --git a/lib/rpmatch.c b/lib/rpmatch.c
index 01eab24dbb..fbdcb0305c 100644
--- a/lib/rpmatch.c
+++ b/lib/rpmatch.c
@@ -22,7 +22,6 @@
 /* Specification.  */
 #include <stdlib.h>
 
-#include <stdbool.h>
 #include <stddef.h>
 
 #if ENABLE_NLS
diff --git a/lib/same.c b/lib/same.c
index b68b995b48..858449a5a9 100644
--- a/lib/same.c
+++ b/lib/same.c
@@ -20,7 +20,6 @@
 #include <config.h>
 
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
diff --git a/lib/same.h b/lib/same.h
index 6066850226..caf592f985 100644
--- a/lib/same.h
+++ b/lib/same.h
@@ -18,8 +18,6 @@
 #ifndef SAME_H_
 # define SAME_H_ 1
 
-# include <stdbool.h>
-
 bool same_name (const char *source, const char *dest);
 bool same_nameat (int, char const *, int, char const *);
 
diff --git a/lib/save-cwd.c b/lib/save-cwd.c
index ea487a40dd..afa75e176e 100644
--- a/lib/save-cwd.c
+++ b/lib/save-cwd.c
@@ -24,7 +24,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/lib/savewd.c b/lib/savewd.c
index 804924a945..dbb7ef2b47 100644
--- a/lib/savewd.c
+++ b/lib/savewd.c
@@ -26,7 +26,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <sys/wait.h>
diff --git a/lib/savewd.h b/lib/savewd.h
index 80cd280287..22242a30a5 100644
--- a/lib/savewd.h
+++ b/lib/savewd.h
@@ -20,7 +20,6 @@
 #ifndef SAVEWD_H
 # define SAVEWD_H 1
 
-#include <stdbool.h>
 #include <sys/types.h>
 
 #ifndef _GL_INLINE_HEADER_BEGIN
diff --git a/lib/spawn-pipe.h b/lib/spawn-pipe.h
index 9ab1ea8433..d25988051f 100644
--- a/lib/spawn-pipe.h
+++ b/lib/spawn-pipe.h
@@ -23,8 +23,6 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-#include <stdbool.h>
-
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/lib/spawni.c b/lib/spawni.c
index aa72125289..b3b3b56f31 100644
--- a/lib/spawni.c
+++ b/lib/spawni.c
@@ -99,7 +99,6 @@
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
 
-# include <stdbool.h>
 # include <stdio.h>
 
 # include "filename.h"
diff --git a/lib/stack.h b/lib/stack.h
index 28b9d7a542..18e23fdaf9 100644
--- a/lib/stack.h
+++ b/lib/stack.h
@@ -53,7 +53,6 @@
    After including this file, these names will be undefined.
 
    Before including this file, you also need to include:
-     #include <stdbool.h>
      #include <stdlib.h>
      #include "assure.h"
      #include "xalloc.h"
diff --git a/lib/stat.c b/lib/stat.c
index 574489ac71..cdcc33165f 100644
--- a/lib/stat.c
+++ b/lib/stat.c
@@ -55,7 +55,6 @@ orig_stat (const char *filename, struct stat *buf)
 
 #include <errno.h>
 #include <limits.h>
-#include <stdbool.h>
 #include <string.h>
 #include "filename.h"
 #include "malloca.h"
diff --git a/lib/stdckdint.in.h b/lib/stdckdint.in.h
index 90fa62e596..762d3fdb79 100644
--- a/lib/stdckdint.in.h
+++ b/lib/stdckdint.in.h
@@ -20,8 +20,6 @@
 
 #include "intprops-internal.h"
 
-#include <stdbool.h>
-
 /* Store into *R the low-order bits of A + B, A - B, A * B, respectively.
    Return 1 if the result overflows, 0 otherwise.
    A, B, and *R can have any integer type other than char, bool, a
diff --git a/lib/strcasestr.c b/lib/strcasestr.c
index b36f40919d..e8d6084b06 100644
--- a/lib/strcasestr.c
+++ b/lib/strcasestr.c
@@ -21,7 +21,6 @@
 #include <string.h>
 
 #include <ctype.h>
-#include <stdbool.h>
 #include <strings.h>
 
 #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
diff --git a/lib/strfmon_l.c b/lib/strfmon_l.c
index 2ce17e566c..99996ceb90 100644
--- a/lib/strfmon_l.c
+++ b/lib/strfmon_l.c
@@ -22,7 +22,6 @@
 #include <errno.h>
 #include <locale.h>
 #include <stdarg.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 
diff --git a/lib/striconveh.c b/lib/striconveh.c
index 5b60a7e0af..01b4e327ef 100644
--- a/lib/striconveh.c
+++ b/lib/striconveh.c
@@ -21,7 +21,6 @@
 #include "striconveh.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 
diff --git a/lib/striconveha.h b/lib/striconveha.h
index fe7b42430f..4a4426fe77 100644
--- a/lib/striconveha.h
+++ b/lib/striconveha.h
@@ -18,7 +18,6 @@
 #ifndef _STRICONVEHA_H
 #define _STRICONVEHA_H
 
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "iconveh.h"
diff --git a/lib/string-buffer.h b/lib/string-buffer.h
index 4cb1e29957..d988e1e501 100644
--- a/lib/string-buffer.h
+++ b/lib/string-buffer.h
@@ -20,7 +20,6 @@
 #define _STRING_BUFFER_H
 
 #include <stdarg.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "attribute.h"
diff --git a/lib/strptime.c b/lib/strptime.c
index 27b3fb6a9c..fd9ae8892a 100644
--- a/lib/strptime.c
+++ b/lib/strptime.c
@@ -29,9 +29,9 @@
 #include <limits.h>
 #include <string.h>
 #include <strings.h>
-#include <stdbool.h>
 
 #ifdef _LIBC
+# include <stdbool.h>
 # include "../locale/localeinfo.h"
 #endif
 
diff --git a/lib/strstr.c b/lib/strstr.c
index 6236915966..65bf21b717 100644
--- a/lib/strstr.c
+++ b/lib/strstr.c
@@ -24,8 +24,6 @@
 /* Specification of strstr.  */
 #include <string.h>
 
-#include <stdbool.h>
-
 #define RETURN_TYPE char *
 #define AVAILABLE(h, h_l, j, n_l)                       \
   (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l))     \
diff --git a/lib/strtod.c b/lib/strtod.c
index 9b3a1422a8..a2eada590f 100644
--- a/lib/strtod.c
+++ b/lib/strtod.c
@@ -27,7 +27,6 @@
 #include <limits.h>     /* LONG_{MIN,MAX} */
 #include <locale.h>     /* localeconv() */
 #include <math.h>       /* NAN */
-#include <stdbool.h>
 #include <stdio.h>      /* sprintf() */
 #include <string.h>     /* strdup() */
 #if HAVE_NL_LANGINFO
diff --git a/lib/supersede.h b/lib/supersede.h
index f7ab9d5496..27eb7a13c4 100644
--- a/lib/supersede.h
+++ b/lib/supersede.h
@@ -20,7 +20,6 @@
 #ifndef _GL_SUPERSEDE_H
 #define _GL_SUPERSEDE_H
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <sys/types.h>
 
diff --git a/lib/system-quote.c b/lib/system-quote.c
index 7ac844830d..02d20b1823 100644
--- a/lib/system-quote.c
+++ b/lib/system-quote.c
@@ -20,7 +20,6 @@
 /* Specification.  */
 #include "system-quote.h"
 
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 
diff --git a/lib/tempname.c b/lib/tempname.c
index 11b4796b34..dbff638f70 100644
--- a/lib/tempname.c
+++ b/lib/tempname.c
@@ -20,7 +20,6 @@
 # include "tempname.h"
 #endif
 
-#include <stdbool.h>
 #include <errno.h>
 
 #include <stdio.h>
diff --git a/lib/term-style-control.c b/lib/term-style-control.c
index 37f0f4b9da..64a0e4e075 100644
--- a/lib/term-style-control.c
+++ b/lib/term-style-control.c
@@ -25,7 +25,6 @@
 
 #include <errno.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/lib/term-style-control.h b/lib/term-style-control.h
index 539fa795af..28623aacf5 100644
--- a/lib/term-style-control.h
+++ b/lib/term-style-control.h
@@ -18,8 +18,6 @@
 #ifndef _TERM_STYLE_CONTROL_H
 #define _TERM_STYLE_CONTROL_H
 
-#include <stdbool.h>
-
 /* The user of this file will define a macro 'term_style_user_data', such that
    'struct term_style_user_data' is a user-defined struct.  */
 
diff --git a/lib/textstyle.in.h b/lib/textstyle.in.h
index 60015bdb71..1983183b02 100644
--- a/lib/textstyle.in.h
+++ b/lib/textstyle.in.h
@@ -32,7 +32,6 @@
 
 #include <errno.h>
 #include <stdarg.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/lib/time_rz.c b/lib/time_rz.c
index 1a91d3778e..601ce5950e 100644
--- a/lib/time_rz.c
+++ b/lib/time_rz.c
@@ -27,7 +27,6 @@
 #include <time.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/tmpdir.c b/lib/tmpdir.c
index 3e47875b76..6d9a1f23d3 100644
--- a/lib/tmpdir.c
+++ b/lib/tmpdir.c
@@ -22,7 +22,6 @@
 /* Specification.  */
 #include "tmpdir.h"
 
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 
diff --git a/lib/tmpdir.h b/lib/tmpdir.h
index ec14ee14cb..f667f4a868 100644
--- a/lib/tmpdir.h
+++ b/lib/tmpdir.h
@@ -14,7 +14,6 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include <stddef.h>
 
 /* Path search algorithm, for tmpnam, tmpfile, etc.  If DIR is
diff --git a/lib/tmpfile.c b/lib/tmpfile.c
index dd9cf821a2..fadee566cc 100644
--- a/lib/tmpfile.c
+++ b/lib/tmpfile.c
@@ -22,7 +22,6 @@
 #include <stdio.h>
 
 #include <errno.h>
-#include <stdbool.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
 /* A native Windows platform.  */
diff --git a/lib/unicase.in.h b/lib/unicase.in.h
index 9bcc79edd8..5317cd3dd8 100644
--- a/lib/unicase.in.h
+++ b/lib/unicase.in.h
@@ -27,9 +27,6 @@
 
 #include "unitypes.h"
 
-/* Get bool.  */
-#include <stdbool.h>
-
 /* Get size_t.  */
 #include <stddef.h>
 
diff --git a/lib/unicase/caseprop.h b/lib/unicase/caseprop.h
index 3223ee4d7a..e599a3f1ce 100644
--- a/lib/unicase/caseprop.h
+++ b/lib/unicase/caseprop.h
@@ -23,7 +23,6 @@
    License and of the GNU General Public License along with this
    program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include "unitypes.h"
 
 /* Determine whether a character is "cased" according to the Unicode Standard,
diff --git a/lib/unicase/invariant.h b/lib/unicase/invariant.h
index 67a13b70f4..c8b9319bba 100644
--- a/lib/unicase/invariant.h
+++ b/lib/unicase/invariant.h
@@ -23,7 +23,6 @@
    License and of the GNU General Public License along with this
    program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
 #include <stddef.h>
 
 #include "unitypes.h"
diff --git a/lib/unicase/u16-casemap.c b/lib/unicase/u16-casemap.c
index b79b5b3246..ecbaa82c28 100644
--- a/lib/unicase/u16-casemap.c
+++ b/lib/unicase/u16-casemap.c
@@ -29,7 +29,6 @@
 #include "unicasemap.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "unistr.h"
diff --git a/lib/unicase/u16-ct-totitle.c b/lib/unicase/u16-ct-totitle.c
index bda283d3de..ce52c70469 100644
--- a/lib/unicase/u16-ct-totitle.c
+++ b/lib/unicase/u16-ct-totitle.c
@@ -29,7 +29,6 @@
 #include "unicase.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 
diff --git a/lib/unicase/u16-is-invariant.c b/lib/unicase/u16-is-invariant.c
index 6d95b197a8..a465657672 100644
--- a/lib/unicase/u16-is-invariant.c
+++ b/lib/unicase/u16-is-invariant.c
@@ -29,7 +29,6 @@
 #include "unicase/invariant.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "uninorm.h"
diff --git a/lib/unicase/u32-casemap.c b/lib/unicase/u32-casemap.c
index a56efeb95f..280bac9ba1 100644
--- a/lib/unicase/u32-casemap.c
+++ b/lib/unicase/u32-casemap.c
@@ -29,7 +29,6 @@
 #include "unicasemap.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "unistr.h"
diff --git a/lib/unicase/u32-ct-totitle.c b/lib/unicase/u32-ct-totitle.c
index 0bd168305b..9786d35238 100644
--- a/lib/unicase/u32-ct-totitle.c
+++ b/lib/unicase/u32-ct-totitle.c
@@ -29,7 +29,6 @@
 #include "unicase.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 
diff --git a/lib/unicase/u32-is-invariant.c b/lib/unicase/u32-is-invariant.c
index 3a28ff0950..f46b2d0e01 100644
--- a/lib/unicase/u32-is-invariant.c
+++ b/lib/unicase/u32-is-invariant.c
@@ -29,7 +29,6 @@
 #include "unicase/invariant.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "uninorm.h"
diff --git a/lib/unicase/u8-casemap.c b/lib/unicase/u8-casemap.c
index fb5a66cff5..1dbac0bfff 100644
--- a/lib/unicase/u8-casemap.c
+++ b/lib/unicase/u8-casemap.c
@@ -29,7 +29,6 @@
 #include "unicasemap.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "unistr.h"
diff --git a/lib/unicase/u8-ct-totitle.c b/lib/unicase/u8-ct-totitle.c
index c51f4dad1c..787d5ab8b4 100644
--- a/lib/unicase/u8-ct-totitle.c
+++ b/lib/unicase/u8-ct-totitle.c
@@ -29,7 +29,6 @@
 #include "unicase.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 
diff --git a/lib/unicase/u8-is-invariant.c b/lib/unicase/u8-is-invariant.c
index dd9fa63d22..57c72a5973 100644
--- a/lib/unicase/u8-is-invariant.c
+++ b/lib/unicase/u8-is-invariant.c
@@ -29,7 +29,6 @@
 #include "unicase/invariant.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #include "uninorm.h"
diff --git a/lib/unictype.in.h b/lib/unictype.in.h
index 2f0efefca8..de6a191d87 100644
--- a/lib/unictype.in.h
+++ b/lib/unictype.in.h
@@ -19,9 +19,6 @@
 
 #include "unitypes.h"
 
-/* Get bool.  */
-#include <stdbool.h>
-
 /* Get size_t.  */
 #include <stddef.h>
 
diff --git a/lib/unigbrk.in.h b/lib/unigbrk.in.h
index f1b60e17b9..7fbc2a0d57 100644
--- a/lib/unigbrk.in.h
+++ b/lib/unigbrk.in.h
@@ -26,9 +26,6 @@
 #ifndef _UNIGBRK_H
 #define _UNIGBRK_H
 
-/* Get bool.  */
-#include <stdbool.h>
-
 /* Get size_t. */
 #include <stddef.h>
 
diff --git a/lib/unigbrk/u16-grapheme-breaks.c b/lib/unigbrk/u16-grapheme-breaks.c
index 850f6affa9..439397471d 100644
--- a/lib/unigbrk/u16-grapheme-breaks.c
+++ b/lib/unigbrk/u16-grapheme-breaks.c
@@ -28,7 +28,6 @@
 /* Specification.  */
 #include "unigbrk.h"
 
-#include <stdbool.h>
 #include <string.h>
 
 #include "unictype.h"
diff --git a/lib/unigbrk/u32-grapheme-breaks.c b/lib/unigbrk/u32-grapheme-breaks.c
index ecb0e3f5c6..927955845d 100644
--- a/lib/unigbrk/u32-grapheme-breaks.c
+++ b/lib/unigbrk/u32-grapheme-breaks.c
@@ -28,7 +28,6 @@
 /* Specification.  */
 #include "unigbrk.h"
 
-#include <stdbool.h>
 #include <string.h>
 
 #include "unictype.h"
diff --git a/lib/unigbrk/u8-grapheme-breaks.c b/lib/unigbrk/u8-grapheme-breaks.c
index dfbf3f1ef9..b21ba262ba 100644
--- a/lib/unigbrk/u8-grapheme-breaks.c
+++ b/lib/unigbrk/u8-grapheme-breaks.c
@@ -29,7 +29,6 @@
 /* Specification.  */
 #include "unigbrk.h"
 
-#include <stdbool.h>
 #include <string.h>
 
 #include "unictype.h"
diff --git a/lib/unigbrk/uc-grapheme-breaks.c b/lib/unigbrk/uc-grapheme-breaks.c
index 9c7c6f78ef..73130a5969 100644
--- a/lib/unigbrk/uc-grapheme-breaks.c
+++ b/lib/unigbrk/uc-grapheme-breaks.c
@@ -28,7 +28,6 @@
 /* Specification.  */
 #include "unigbrk.h"
 
-#include <stdbool.h>
 #include <string.h>
 
 #include "unictype.h"
diff --git a/lib/uniname/uniname.c b/lib/uniname/uniname.c
index 9842bec292..000b00fe26 100644
--- a/lib/uniname/uniname.c
+++ b/lib/uniname/uniname.c
@@ -28,7 +28,6 @@
 #include "uniname.h"
 
 #include <assert.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/lib/unistr.in.h b/lib/unistr.in.h
index 4d48751558..40c7929575 100644
--- a/lib/unistr.in.h
+++ b/lib/unistr.in.h
@@ -19,9 +19,6 @@
 
 #include "unitypes.h"
 
-/* Get bool.  */
-#include <stdbool.h>
-
 /* Get size_t, ptrdiff_t.  */
 #include <stddef.h>
 
diff --git a/lib/unlinkdir.h b/lib/unlinkdir.h
index 5086b9d5ad..8cf84b7b4c 100644
--- a/lib/unlinkdir.h
+++ b/lib/unlinkdir.h
@@ -17,8 +17,6 @@
 
 /* Written by Paul Eggert and Jim Meyering.  */
 
-#include <stdbool.h>
-
 #if UNLINK_CANNOT_UNLINK_DIR
 # define cannot_unlink_dir() true
 #else
diff --git a/lib/userspec.h b/lib/userspec.h
index 7d5d063e7e..2f790f7c84 100644
--- a/lib/userspec.h
+++ b/lib/userspec.h
@@ -19,7 +19,6 @@
 #ifndef USERSPEC_H
 # define USERSPEC_H 1
 
-# include <stdbool.h>
 # include <sys/types.h>
 
 char const *
diff --git a/lib/utime.c b/lib/utime.c
index 799be0faab..e8aae9ef9f 100644
--- a/lib/utime.c
+++ b/lib/utime.c
@@ -24,7 +24,6 @@
 #if defined _WIN32 && ! defined __CYGWIN__
 
 # include <errno.h>
-# include <stdbool.h>
 # include <windows.h>
 # include "filename.h"
 # include "malloca.h"
diff --git a/lib/utimecmp.c b/lib/utimecmp.c
index 3c00128724..7312ee0b88 100644
--- a/lib/utimecmp.c
+++ b/lib/utimecmp.c
@@ -23,7 +23,6 @@
 
 #include <fcntl.h>
 #include <limits.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <sys/stat.h>
diff --git a/lib/utimens.c b/lib/utimens.c
index 2fa1251850..23b9180935 100644
--- a/lib/utimens.c
+++ b/lib/utimens.c
@@ -26,7 +26,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/time.h>
diff --git a/lib/wait-process.h b/lib/wait-process.h
index 61bdf13031..008eaa9ca3 100644
--- a/lib/wait-process.h
+++ b/lib/wait-process.h
@@ -23,8 +23,6 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-#include <stdbool.h>
-
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/lib/windows-cond.c b/lib/windows-cond.c
index f1abb5f2f0..8185b424bc 100644
--- a/lib/windows-cond.c
+++ b/lib/windows-cond.c
@@ -23,7 +23,6 @@
 #include "windows-cond.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <sys/time.h>
 
diff --git a/lib/windows-spawn.c b/lib/windows-spawn.c
index e81fc168cf..dcda62123e 100644
--- a/lib/windows-spawn.c
+++ b/lib/windows-spawn.c
@@ -24,7 +24,6 @@
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/lib/windows-spawn.h b/lib/windows-spawn.h
index 1e42d80d21..2081fe4204 100644
--- a/lib/windows-spawn.h
+++ b/lib/windows-spawn.h
@@ -18,7 +18,6 @@
 #ifndef _WINDOWS_SPAWN_H
 #define _WINDOWS_SPAWN_H
 
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 
diff --git a/lib/windows-timedrwlock.c b/lib/windows-timedrwlock.c
index 1bc86d3cf9..8036716dde 100644
--- a/lib/windows-timedrwlock.c
+++ b/lib/windows-timedrwlock.c
@@ -22,7 +22,6 @@
 #include "windows-timedrwlock.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <sys/time.h>
 
diff --git a/lib/write-any-file.h b/lib/write-any-file.h
index b229eb950a..3e06a6b07b 100644
--- a/lib/write-any-file.h
+++ b/lib/write-any-file.h
@@ -15,6 +15,4 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#include <stdbool.h>
-
 bool can_write_any_file (void);
diff --git a/lib/xbinary-io.c b/lib/xbinary-io.c
index fdc89ab5b9..159b79f2ab 100644
--- a/lib/xbinary-io.c
+++ b/lib/xbinary-io.c
@@ -21,7 +21,6 @@
 
 #include <errno.h>
 #include <error.h>
-#include <stdbool.h>
 #include "exitfail.h"
 #include "verify.h"
 
diff --git a/lib/xstrtod.h b/lib/xstrtod.h
index 78beefa362..9f38326531 100644
--- a/lib/xstrtod.h
+++ b/lib/xstrtod.h
@@ -21,8 +21,6 @@
 #ifndef XSTRTOD_H
 # define XSTRTOD_H 1
 
-# include <stdbool.h>
-
 bool xstrtod (const char *str, const char **ptr, double *result,
               double (*convert) (char const *, char **));
 bool xstrtold (const char *str, const char **ptr, long double *result,
diff --git a/lib/yesno.h b/lib/yesno.h
index 1018d72c15..abcfaab76b 100644
--- a/lib/yesno.h
+++ b/lib/yesno.h
@@ -17,8 +17,6 @@
 #ifndef YESNO_H_
 # define YESNO_H_
 
-# include <stdbool.h>
-
 bool yesno (void);
 
 #endif
diff --git a/modules/acl b/modules/acl
index a0a5e459f1..1a3a14e6c2 100644
--- a/modules/acl
+++ b/modules/acl
@@ -11,7 +11,6 @@ gettext-h
 qcopy-acl
 qset-acl
 quote
-stdbool
 
 configure.ac:
 
diff --git a/modules/argp b/modules/argp
index 85eefe2b14..74519a4b86 100644
--- a/modules/argp
+++ b/modules/argp
@@ -32,6 +32,7 @@ extensions
 vsnprintf
 sleep
 stdalign
+stdbool
 stdio
 strerror
 memchr
diff --git a/modules/bitset b/modules/bitset
index 8c9cb7cc89..1f2a232512 100644
--- a/modules/bitset
+++ b/modules/bitset
@@ -24,6 +24,7 @@ fopen-gnu
 gettext-h
 integer_length_l
 obstack
+stdbool
 xalloc
 
 configure.ac:
diff --git a/modules/diffseq b/modules/diffseq
index 7591521ed9..d77778ba15 100644
--- a/modules/diffseq
+++ b/modules/diffseq
@@ -6,6 +6,7 @@ lib/diffseq.h
 
 Depends-on:
 c99
+stdbool
 
 configure.ac:
 
diff --git a/modules/file-has-acl b/modules/file-has-acl
index c41cde1d4b..c5f7b27364 100644
--- a/modules/file-has-acl
+++ b/modules/file-has-acl
@@ -10,6 +10,7 @@ Depends-on:
 acl-permissions
 free-posix
 stat
+stdbool
 
 configure.ac:
 gl_FILE_HAS_ACL
diff --git a/modules/gen-uni-tables b/modules/gen-uni-tables
index b384471fa1..c1c1045f68 100644
--- a/modules/gen-uni-tables
+++ b/modules/gen-uni-tables
@@ -9,6 +9,7 @@ lib/unictype/3levelbit.h
 
 Depends-on:
 memcmp
+stdbool
 strdup
 strstr-simple
 
diff --git a/modules/getrandom b/modules/getrandom
index cb4317e9f7..fa468ed7f3 100644
--- a/modules/getrandom
+++ b/modules/getrandom
@@ -9,6 +9,7 @@ Depends-on:
 sys_random
 fcntl-h             [test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1]
 minmax              [test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1]
+stdbool             [test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1]
 open                [case $host_os in mingw*) false;; *) test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1;; esac]
 
 configure.ac:
diff --git a/modules/hash-triple-simple b/modules/hash-triple-simple
index 1ef3209d78..ebb46ee4ad 100644
--- a/modules/hash-triple-simple
+++ b/modules/hash-triple-simple
@@ -8,6 +8,7 @@ lib/hash-triple.h
 Depends-on:
 hash-pjw
 same-inode
+stdbool
 
 configure.ac:
 
diff --git a/modules/posix_spawn-internal b/modules/posix_spawn-internal
index 9dfe24cc66..34a4aaa5f0 100644
--- a/modules/posix_spawn-internal
+++ b/modules/posix_spawn-internal
@@ -20,6 +20,7 @@ concat-filename [test $HAVE_POSIX_SPAWN = 0]
 findprog-in     [test $HAVE_POSIX_SPAWN = 0]
 free-posix      [test $HAVE_POSIX_SPAWN = 0]
 malloca         [test $HAVE_POSIX_SPAWN = 0]
+stdbool         [test $HAVE_POSIX_SPAWN = 0]
 windows-spawn   [test $HAVE_POSIX_SPAWN = 0]
 
 configure.ac:
diff --git a/modules/strcasestr b/modules/strcasestr
index ed7b327ec2..d752ec9ccd 100644
--- a/modules/strcasestr
+++ b/modules/strcasestr
@@ -5,6 +5,7 @@ Files:
 lib/strcasestr.c
 
 Depends-on:
+stdbool
 strcasestr-simple
 
 configure.ac:
diff --git a/modules/supersede b/modules/supersede
index 4dbe887648..70f3fdc482 100644
--- a/modules/supersede
+++ b/modules/supersede
@@ -9,6 +9,7 @@ m4/supersede.m4
 Depends-on:
 c99
 fcntl-h
+stdbool
 sys_stat
 clean-temp
 tempname
diff --git a/modules/system-quote b/modules/system-quote
index 9af74dca50..b704684dfb 100644
--- a/modules/system-quote
+++ b/modules/system-quote
@@ -7,6 +7,7 @@ lib/system-quote.c
 
 Depends-on:
 sh-quote
+stdbool
 xalloc
 
 configure.ac:
diff --git a/modules/uniconv/base b/modules/uniconv/base
index 9f059498c4..5d0560895a 100644
--- a/modules/uniconv/base
+++ b/modules/uniconv/base
@@ -10,6 +10,7 @@ m4/libunistring-base.m4
 
 Depends-on:
 gen-header
+stdbool
 unitypes
 
 configure.ac:
diff --git a/modules/uniname/uniname b/modules/uniname/uniname
index b35437d314..72f485d325 100644
--- a/modules/uniname/uniname
+++ b/modules/uniname/uniname
@@ -10,6 +10,7 @@ Depends-on:
 uniname/base
 attribute
 memcmp
+stdbool
 c99
 
 configure.ac:
diff --git a/modules/utime b/modules/utime
index f09e57346d..b61c26a0f8 100644
--- a/modules/utime
+++ b/modules/utime
@@ -11,6 +11,7 @@ time
 filename        [test $HAVE_UTIME = 0 || test $REPLACE_UTIME = 1]
 malloca         [test $HAVE_UTIME = 0 || test $REPLACE_UTIME = 1]
 stat            [test $HAVE_UTIME = 0 || test $REPLACE_UTIME = 1]
+stdbool         [test $HAVE_UTIME = 0 || test $REPLACE_UTIME = 1]
 
 configure.ac:
 gl_FUNC_UTIME
diff --git a/modules/windows-timedrwlock b/modules/windows-timedrwlock
index f9469b159d..466e7339b1 100644
--- a/modules/windows-timedrwlock
+++ b/modules/windows-timedrwlock
@@ -8,6 +8,7 @@ lib/windows-initguard.h
 
 Depends-on:
 errno
+stdbool
 time
 gettimeofday
 
diff --git a/modules/xgetcwd b/modules/xgetcwd
index 21cef522cf..9660d4fb2d 100644
--- a/modules/xgetcwd
+++ b/modules/xgetcwd
@@ -9,7 +9,6 @@ m4/xgetcwd.m4
 Depends-on:
 getcwd
 xalloc
-stdbool
 
 configure.ac:
 gl_XGETCWD
diff --git a/tests/nap.h b/tests/nap.h
index 22c5933f97..1320d2f8f8 100644
--- a/tests/nap.h
+++ b/tests/nap.h
@@ -20,7 +20,6 @@
 # define GLTEST_NAP_H
 
 # include <limits.h>
-# include <stdbool.h>
 
 # include <intprops.h>
 
diff --git a/tests/qemu.h b/tests/qemu.h
index e1e6a6101b..0974573d89 100644
--- a/tests/qemu.h
+++ b/tests/qemu.h
@@ -16,7 +16,6 @@
 
 /* Written by Bruno Haible <bruno@xxxxxxxxx>, 2021.  */
 
-#include <stdbool.h>
 #ifdef __linux__
 # include <fcntl.h>
 # include <string.h>
diff --git a/tests/test-areadlink-with-size.c b/tests/test-areadlink-with-size.c
index eb22880b15..a820874f9e 100644
--- a/tests/test-areadlink-with-size.c
+++ b/tests/test-areadlink-with-size.c
@@ -22,7 +22,6 @@
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-areadlink.c b/tests/test-areadlink.c
index 0a417ac907..59b3cdf594 100644
--- a/tests/test-areadlink.c
+++ b/tests/test-areadlink.c
@@ -22,7 +22,6 @@
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-areadlinkat-with-size.c b/tests/test-areadlinkat-with-size.c
index a722a6985d..cf71d66782 100644
--- a/tests/test-areadlinkat-with-size.c
+++ b/tests/test-areadlinkat-with-size.c
@@ -22,7 +22,6 @@
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-areadlinkat.c b/tests/test-areadlinkat.c
index d947f4e5ee..b4959f0758 100644
--- a/tests/test-areadlinkat.c
+++ b/tests/test-areadlinkat.c
@@ -22,7 +22,6 @@
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-base32.c b/tests/test-base32.c
index 1f667f365d..6596620cca 100644
--- a/tests/test-base32.c
+++ b/tests/test-base32.c
@@ -21,7 +21,6 @@
 #include "base32.h"
 
 #include <stddef.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdint.h>
diff --git a/tests/test-base64.c b/tests/test-base64.c
index 6ff69a2a7a..31042450b3 100644
--- a/tests/test-base64.c
+++ b/tests/test-base64.c
@@ -20,7 +20,6 @@
 #include "base64.h"
 
 #include <stddef.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdint.h>
diff --git a/tests/test-ceil2.c b/tests/test-ceil2.c
index 9b87f39877..1bc08aabf8 100644
--- a/tests/test-ceil2.c
+++ b/tests/test-ceil2.c
@@ -24,7 +24,6 @@
 #include <math.h>
 
 #include <float.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 
diff --git a/tests/test-ceilf2.c b/tests/test-ceilf2.c
index 133c567d90..cc579a7ffe 100644
--- a/tests/test-ceilf2.c
+++ b/tests/test-ceilf2.c
@@ -24,7 +24,6 @@
 #include <math.h>
 
 #include <float.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 
diff --git a/tests/test-chown.c b/tests/test-chown.c
index da5de0fbd0..ec99e40cf0 100644
--- a/tests/test-chown.c
+++ b/tests/test-chown.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (chown, int, (char const *, uid_t, gid_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/stat.h>
diff --git a/tests/test-dirname.c b/tests/test-dirname.c
index 872da1e20a..33cfe58487 100644
--- a/tests/test-dirname.c
+++ b/tests/test-dirname.c
@@ -18,7 +18,6 @@
 
 #include "dirname.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-dup-safer.c b/tests/test-dup-safer.c
index 467351ee7d..329ee033a7 100644
--- a/tests/test-dup-safer.c
+++ b/tests/test-dup-safer.c
@@ -22,7 +22,6 @@
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <unistd.h>
 
diff --git a/tests/test-dup3.c b/tests/test-dup3.c
index 0b466cfc8d..87d83c77a1 100644
--- a/tests/test-dup3.c
+++ b/tests/test-dup3.c
@@ -26,7 +26,6 @@ SIGNATURE_CHECK (dup3, int, (int, int, int));
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
 /* Get declarations of the native Windows API functions.  */
diff --git a/tests/test-exclude.c b/tests/test-exclude.c
index 388b73bb9e..7cce5e5f36 100644
--- a/tests/test-exclude.c
+++ b/tests/test-exclude.c
@@ -20,7 +20,6 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <string.h>
-#include <stdbool.h>
 #include <fnmatch.h>
 
 #include "exclude.h"
diff --git a/tests/test-execute-child.c b/tests/test-execute-child.c
index 28e7b71ba1..33ca77c62d 100644
--- a/tests/test-execute-child.c
+++ b/tests/test-execute-child.c
@@ -41,7 +41,6 @@ is_device (int fd)
 /* Now include the other header files.  */
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-execute-main.c b/tests/test-execute-main.c
index c99bf1adbe..0a2fe327ee 100644
--- a/tests/test-execute-main.c
+++ b/tests/test-execute-main.c
@@ -21,7 +21,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-execute-script.c b/tests/test-execute-script.c
index 065be83cfc..fce1a13086 100644
--- a/tests/test-execute-script.c
+++ b/tests/test-execute-script.c
@@ -18,7 +18,6 @@
 
 #include "execute.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-explicit_bzero.c b/tests/test-explicit_bzero.c
index 8f06d7f0a5..113f713577 100644
--- a/tests/test-explicit_bzero.c
+++ b/tests/test-explicit_bzero.c
@@ -24,7 +24,6 @@
 #include "signature.h"
 SIGNATURE_CHECK (explicit_bzero, void, (void *, size_t));
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdint.h>
 #include <stdlib.h>
diff --git a/tests/test-fchownat.c b/tests/test-fchownat.c
index 4d05dbb6be..2c8cace801 100644
--- a/tests/test-fchownat.c
+++ b/tests/test-fchownat.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (fchownat, int, (int, char const *, uid_t, gid_t, int));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/stat.h>
diff --git a/tests/test-fcntl-safer.c b/tests/test-fcntl-safer.c
index 667a68715c..ef4ab75b0a 100644
--- a/tests/test-fcntl-safer.c
+++ b/tests/test-fcntl-safer.c
@@ -21,7 +21,6 @@
 #include "fcntl--.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <unistd.h>
 
diff --git a/tests/test-fcntl.c b/tests/test-fcntl.c
index cd7d188204..77ca347972 100644
--- a/tests/test-fcntl.c
+++ b/tests/test-fcntl.c
@@ -27,7 +27,6 @@ SIGNATURE_CHECK (fcntl, int, (int, int, ...));
 /* Helpers.  */
 #include <errno.h>
 #include <stdarg.h>
-#include <stdbool.h>
 #include <unistd.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
diff --git a/tests/test-fdutimensat.c b/tests/test-fdutimensat.c
index bed6d85c77..2a2cd2ad90 100644
--- a/tests/test-fdutimensat.c
+++ b/tests/test-fdutimensat.c
@@ -21,7 +21,6 @@
 #include "utimens.h"
 
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/tests/test-filenamecat.c b/tests/test-filenamecat.c
index d05f5cd48c..c5e4275cf9 100644
--- a/tests/test-filenamecat.c
+++ b/tests/test-filenamecat.c
@@ -23,7 +23,6 @@
 
 #include "idx.h"
 
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-floor2.c b/tests/test-floor2.c
index f68aed5431..fc6832e1d0 100644
--- a/tests/test-floor2.c
+++ b/tests/test-floor2.c
@@ -24,7 +24,6 @@
 #include <math.h>
 
 #include <float.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 
diff --git a/tests/test-floorf2.c b/tests/test-floorf2.c
index b617d0f17c..9aaabf5b12 100644
--- a/tests/test-floorf2.c
+++ b/tests/test-floorf2.c
@@ -24,7 +24,6 @@
 #include <math.h>
 
 #include <float.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 
diff --git a/tests/test-fstatat.c b/tests/test-fstatat.c
index 01aabf7c65..a534fc103c 100644
--- a/tests/test-fstatat.c
+++ b/tests/test-fstatat.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (fstatat, int, (int, char const *, struct stat *, int));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/tests/test-fstrcmp.c b/tests/test-fstrcmp.c
index 48522cd22e..a46b106f01 100644
--- a/tests/test-fstrcmp.c
+++ b/tests/test-fstrcmp.c
@@ -20,7 +20,6 @@
 
 #include "fstrcmp.h"
 
-#include <stdbool.h>
 
 #include "macros.h"
 
diff --git a/tests/test-futimens.c b/tests/test-futimens.c
index 4680d6639d..ac009eba42 100644
--- a/tests/test-futimens.c
+++ b/tests/test-futimens.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (futimens, int, (int, struct timespec const[2]));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-getlogin.h b/tests/test-getlogin.h
index fcc7741f12..94cbc61823 100644
--- a/tests/test-getlogin.h
+++ b/tests/test-getlogin.h
@@ -18,7 +18,6 @@
 
 #include <errno.h>
 #include <stdio.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-getopt.h b/tests/test-getopt.h
index 8538f63170..a7ac4a5541 100644
--- a/tests/test-getopt.h
+++ b/tests/test-getopt.h
@@ -16,7 +16,6 @@
 
 /* Written by Bruno Haible <bruno@xxxxxxxxx>, 2009.  */
 
-#include <stdbool.h>
 
 /* The glibc/gnulib implementation of getopt supports setting optind =
    0, but not all other implementations do.  This matters for getopt.
diff --git a/tests/test-hard-locale.c b/tests/test-hard-locale.c
index 004e14aaf4..8570bc61ba 100644
--- a/tests/test-hard-locale.c
+++ b/tests/test-hard-locale.c
@@ -21,7 +21,6 @@
 #include "hard-locale.h"
 
 #include <locale.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 
diff --git a/tests/test-hash.c b/tests/test-hash.c
index 5e36f83053..f8b404392e 100644
--- a/tests/test-hash.c
+++ b/tests/test-hash.c
@@ -23,7 +23,6 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <stdbool.h>
 #include <string.h>
 #include <unistd.h>
 
diff --git a/tests/test-idpriv-drop.c b/tests/test-idpriv-drop.c
index 6176be0caa..d66ef939d4 100644
--- a/tests/test-idpriv-drop.c
+++ b/tests/test-idpriv-drop.c
@@ -18,7 +18,6 @@
 
 #include "idpriv.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-idpriv-droptemp.c b/tests/test-idpriv-droptemp.c
index d121075959..101747bc35 100644
--- a/tests/test-idpriv-droptemp.c
+++ b/tests/test-idpriv-droptemp.c
@@ -18,7 +18,6 @@
 
 #include "idpriv.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-immutable.c b/tests/test-immutable.c
index b8243ae540..01afcc5bea 100644
--- a/tests/test-immutable.c
+++ b/tests/test-immutable.c
@@ -21,7 +21,6 @@
 #include "immutable.h"
 
 #include <signal.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 
diff --git a/tests/test-intprops.c b/tests/test-intprops.c
index a46e9c5e4a..84265ea3f2 100644
--- a/tests/test-intprops.c
+++ b/tests/test-intprops.c
@@ -37,7 +37,6 @@
 #endif
 #include "verify.h"
 
-#include <stdbool.h>
 #include <inttypes.h>
 #include <limits.h>
 
diff --git a/tests/test-lchown.c b/tests/test-lchown.c
index e8c8fa4b66..13eee846ac 100644
--- a/tests/test-lchown.c
+++ b/tests/test-lchown.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (lchown, int, (char const *, uid_t, gid_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/stat.h>
diff --git a/tests/test-link.c b/tests/test-link.c
index 8500c036cc..fa654dc274 100644
--- a/tests/test-link.c
+++ b/tests/test-link.c
@@ -23,7 +23,6 @@ SIGNATURE_CHECK (link, int, (char const *, char const *));
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-linkat.c b/tests/test-linkat.c
index 1b4eee430c..3ef2312107 100644
--- a/tests/test-linkat.c
+++ b/tests/test-linkat.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (linkat, int, (int, char const *, int, char const *, int));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-lstat.c b/tests/test-lstat.c
index 46c2683b48..c35d41cbb1 100644
--- a/tests/test-lstat.c
+++ b/tests/test-lstat.c
@@ -29,7 +29,6 @@ SIGNATURE_CHECK (lstat, int, (char const *, struct stat *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/tests/test-mbmemcasecmp.c b/tests/test-mbmemcasecmp.c
index d275750d73..633453d8db 100644
--- a/tests/test-mbmemcasecmp.c
+++ b/tests/test-mbmemcasecmp.c
@@ -21,7 +21,6 @@
 #include "mbmemcasecmp.h"
 
 #include <locale.h>
-#include <stdbool.h>
 #include <string.h>
 
 #include "macros.h"
diff --git a/tests/test-mbmemcasecoll.c b/tests/test-mbmemcasecoll.c
index 1ecd19446c..c17ddbb153 100644
--- a/tests/test-mbmemcasecoll.c
+++ b/tests/test-mbmemcasecoll.c
@@ -21,7 +21,6 @@
 #include "mbmemcasecoll.h"
 
 #include <locale.h>
-#include <stdbool.h>
 #include <string.h>
 
 #include "macros.h"
diff --git a/tests/test-mkdir.c b/tests/test-mkdir.c
index 26450520bc..0d0520dafe 100644
--- a/tests/test-mkdir.c
+++ b/tests/test-mkdir.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (mkdir, int, (char const *, mode_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/tests/test-mkdirat.c b/tests/test-mkdirat.c
index 6a538bffd4..446f81967c 100644
--- a/tests/test-mkdirat.c
+++ b/tests/test-mkdirat.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (mkdirat, int, (int, char const *, mode_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/tests/test-mkfifo.c b/tests/test-mkfifo.c
index 6be6d10691..c31809961d 100644
--- a/tests/test-mkfifo.c
+++ b/tests/test-mkfifo.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (mkfifo, int, (char const *, mode_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/tests/test-mkfifoat.c b/tests/test-mkfifoat.c
index 2fcb03045e..38a933c8e3 100644
--- a/tests/test-mkfifoat.c
+++ b/tests/test-mkfifoat.c
@@ -26,7 +26,6 @@ SIGNATURE_CHECK (mknodat, int, (int, char const *, mode_t, dev_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-mknod.c b/tests/test-mknod.c
index b8fac29bc7..314bc61fe7 100644
--- a/tests/test-mknod.c
+++ b/tests/test-mknod.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (mknod, int, (char const *, mode_t, dev_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/tests/test-nonblocking-pipe-child.c b/tests/test-nonblocking-pipe-child.c
index 53704c72ef..cced8dc0e4 100644
--- a/tests/test-nonblocking-pipe-child.c
+++ b/tests/test-nonblocking-pipe-child.c
@@ -18,7 +18,6 @@
 #include <config.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-nonblocking-pipe-main.c b/tests/test-nonblocking-pipe-main.c
index 09cf80425d..e8e92980b1 100644
--- a/tests/test-nonblocking-pipe-main.c
+++ b/tests/test-nonblocking-pipe-main.c
@@ -18,7 +18,6 @@
 #include <config.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-nonblocking-socket-child.c b/tests/test-nonblocking-socket-child.c
index f7d52715a8..640fc5d3c8 100644
--- a/tests/test-nonblocking-socket-child.c
+++ b/tests/test-nonblocking-socket-child.c
@@ -18,7 +18,6 @@
 #include <config.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-nonblocking-socket-main.c b/tests/test-nonblocking-socket-main.c
index e40dda3e58..4008c733db 100644
--- a/tests/test-nonblocking-socket-main.c
+++ b/tests/test-nonblocking-socket-main.c
@@ -18,7 +18,6 @@
 #include <config.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-open.c b/tests/test-open.c
index 3812bac0ba..d7c5a0869d 100644
--- a/tests/test-open.c
+++ b/tests/test-open.c
@@ -24,7 +24,6 @@
 SIGNATURE_CHECK (open, int, (char const *, int, ...));
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <unistd.h>
 
diff --git a/tests/test-openat.c b/tests/test-openat.c
index 3571fcc397..5502bdd98a 100644
--- a/tests/test-openat.c
+++ b/tests/test-openat.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (openat, int, (int, char const *, int, ...));
 
 #include <errno.h>
 #include <stdarg.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <unistd.h>
 
diff --git a/tests/test-pipe.c b/tests/test-pipe.c
index e0d5bd50fe..0525f7d49e 100644
--- a/tests/test-pipe.c
+++ b/tests/test-pipe.c
@@ -22,7 +22,6 @@
 SIGNATURE_CHECK (pipe, int, (int[2]));
 
 #include <fcntl.h>
-#include <stdbool.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
 /* Get declarations of the native Windows API functions.  */
diff --git a/tests/test-pipe2.c b/tests/test-pipe2.c
index 7ed9208dec..b5c641a9da 100644
--- a/tests/test-pipe2.c
+++ b/tests/test-pipe2.c
@@ -22,7 +22,6 @@
 SIGNATURE_CHECK (pipe2, int, (int[2], int));
 
 #include <fcntl.h>
-#include <stdbool.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
 /* Get declarations of the native Windows API functions.  */
diff --git a/tests/test-poll.c b/tests/test-poll.c
index bc3ab104b4..6edaeb33a0 100644
--- a/tests/test-poll.c
+++ b/tests/test-poll.c
@@ -31,7 +31,6 @@ SIGNATURE_CHECK (poll, int, (struct pollfd[], nfds_t, int));
 #include <arpa/inet.h>
 #include <fcntl.h>
 #include <stdlib.h>
-#include <stdbool.h>
 #include <sys/ioctl.h>
 #include <errno.h>
 
diff --git a/tests/test-posix_spawn-chdir.c b/tests/test-posix_spawn-chdir.c
index 2e76c30197..044acaf220 100644
--- a/tests/test-posix_spawn-chdir.c
+++ b/tests/test-posix_spawn-chdir.c
@@ -23,7 +23,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-posix_spawn-dup2-stdin.c b/tests/test-posix_spawn-dup2-stdin.c
index 9d3f069132..506fdf37b9 100644
--- a/tests/test-posix_spawn-dup2-stdin.c
+++ b/tests/test-posix_spawn-dup2-stdin.c
@@ -23,7 +23,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-posix_spawn-dup2-stdout.c b/tests/test-posix_spawn-dup2-stdout.c
index 25d96ee138..52a36fc81a 100644
--- a/tests/test-posix_spawn-dup2-stdout.c
+++ b/tests/test-posix_spawn-dup2-stdout.c
@@ -45,7 +45,6 @@ SIGNATURE_CHECK (posix_spawn_file_actions_adddup2, int,
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-posix_spawn-fchdir.c b/tests/test-posix_spawn-fchdir.c
index 2236e68c89..54442f0d02 100644
--- a/tests/test-posix_spawn-fchdir.c
+++ b/tests/test-posix_spawn-fchdir.c
@@ -23,7 +23,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-posix_spawn-open1.c b/tests/test-posix_spawn-open1.c
index bce851d0c6..df4eb8917f 100644
--- a/tests/test-posix_spawn-open1.c
+++ b/tests/test-posix_spawn-open1.c
@@ -31,7 +31,6 @@ SIGNATURE_CHECK (posix_spawn, int, (pid_t *, char const *,
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-posix_spawn-open2.c b/tests/test-posix_spawn-open2.c
index 809b85b5f1..127d7a0b37 100644
--- a/tests/test-posix_spawn-open2.c
+++ b/tests/test-posix_spawn-open2.c
@@ -25,7 +25,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-quotearg-simple.c b/tests/test-quotearg-simple.c
index b07b715929..8999d04b41 100644
--- a/tests/test-quotearg-simple.c
+++ b/tests/test-quotearg-simple.c
@@ -21,7 +21,6 @@
 #include "quotearg.h"
 
 #include <ctype.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-quotearg.c b/tests/test-quotearg.c
index 12bab8cdba..a6c2c7a740 100644
--- a/tests/test-quotearg.c
+++ b/tests/test-quotearg.c
@@ -21,7 +21,6 @@
 #include "quotearg.h"
 
 #include <locale.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-readlink.c b/tests/test-readlink.c
index 3516129845..a722e048aa 100644
--- a/tests/test-readlink.c
+++ b/tests/test-readlink.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (readlink, ssize_t, (char const *, char *, size_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-readlinkat.c b/tests/test-readlinkat.c
index 64e8f22469..c084f3ea32 100644
--- a/tests/test-readlinkat.c
+++ b/tests/test-readlinkat.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (readlinkat, ssize_t, (int, char const *, char *, size_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-readtokens.c b/tests/test-readtokens.c
index ad745743c4..472dbe6ca0 100644
--- a/tests/test-readtokens.c
+++ b/tests/test-readtokens.c
@@ -15,7 +15,6 @@
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 #include <config.h>
-#include <stdbool.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
diff --git a/tests/test-rename.c b/tests/test-rename.c
index 0e743f5510..a87c3fb3eb 100644
--- a/tests/test-rename.c
+++ b/tests/test-rename.c
@@ -24,7 +24,6 @@ SIGNATURE_CHECK (rename, int, (char const *, char const *));
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/stat.h>
diff --git a/tests/test-renameat.c b/tests/test-renameat.c
index 8e56fc05df..8a5ce7c629 100644
--- a/tests/test-renameat.c
+++ b/tests/test-renameat.c
@@ -26,7 +26,6 @@ SIGNATURE_CHECK (renameat, int, (int, char const *, int, char const *));
 #include <dirent.h>
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-renameatu.c b/tests/test-renameatu.c
index 3f67ec048f..1d8986ee40 100644
--- a/tests/test-renameatu.c
+++ b/tests/test-renameatu.c
@@ -29,7 +29,6 @@ SIGNATURE_CHECK (renameatu, int,
 #include <dirent.h>
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-rmdir.c b/tests/test-rmdir.c
index 81437c3ab0..deea6bdf81 100644
--- a/tests/test-rmdir.c
+++ b/tests/test-rmdir.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (rmdir, int, (char const *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/stat.h>
diff --git a/tests/test-round2.c b/tests/test-round2.c
index b26e24c742..4cc37c59bf 100644
--- a/tests/test-round2.c
+++ b/tests/test-round2.c
@@ -30,7 +30,6 @@
 
 #include <math.h>
 #include <float.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-select.h b/tests/test-select.h
index 5c6784169d..86a79ad83a 100644
--- a/tests/test-select.h
+++ b/tests/test-select.h
@@ -24,7 +24,6 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <stdlib.h>
-#include <stdbool.h>
 #include <sys/ioctl.h>
 #include <errno.h>
 
diff --git a/tests/test-spawn-pipe-child.c b/tests/test-spawn-pipe-child.c
index 326c7b4585..9dac7f7560 100644
--- a/tests/test-spawn-pipe-child.c
+++ b/tests/test-spawn-pipe-child.c
@@ -18,7 +18,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-spawn-pipe-main.c b/tests/test-spawn-pipe-main.c
index 40aac6dcf7..91dc0722d2 100644
--- a/tests/test-spawn-pipe-main.c
+++ b/tests/test-spawn-pipe-main.c
@@ -19,7 +19,6 @@
 #include "spawn-pipe.h"
 #include "wait-process.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-spawn-pipe-script.c b/tests/test-spawn-pipe-script.c
index 51f9dbd073..5d574bf5cc 100644
--- a/tests/test-spawn-pipe-script.c
+++ b/tests/test-spawn-pipe-script.c
@@ -20,7 +20,6 @@
 #include "wait-process.h"
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-stack.c b/tests/test-stack.c
index 6ad2618dcc..3f4ac4b184 100644
--- a/tests/test-stack.c
+++ b/tests/test-stack.c
@@ -18,7 +18,6 @@
 
 #include <config.h>
 
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include "assure.h"
diff --git a/tests/test-stat.c b/tests/test-stat.c
index cf0d968700..c8a4b98454 100644
--- a/tests/test-stat.c
+++ b/tests/test-stat.c
@@ -29,7 +29,6 @@ SIGNATURE_CHECK (stat, int, (char const *, struct stat *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
diff --git a/tests/test-supersede.c b/tests/test-supersede.c
index 887601ceef..0453d98bc9 100644
--- a/tests/test-supersede.c
+++ b/tests/test-supersede.c
@@ -24,7 +24,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/stat.h>
diff --git a/tests/test-symlink.c b/tests/test-symlink.c
index 5752f8f8b4..3dbd60a098 100644
--- a/tests/test-symlink.c
+++ b/tests/test-symlink.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (symlink, int, (char const *, char const *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/stat.h>
diff --git a/tests/test-symlinkat.c b/tests/test-symlinkat.c
index 68efffd93c..80f02528bf 100644
--- a/tests/test-symlinkat.c
+++ b/tests/test-symlinkat.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (symlinkat, int, (char const *, int, char const *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-system-quote-main.c b/tests/test-system-quote-main.c
index 9436a06885..657719f597 100644
--- a/tests/test-system-quote-main.c
+++ b/tests/test-system-quote-main.c
@@ -26,7 +26,6 @@
 #endif
 
 #include <limits.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-term-style-control-hello.c b/tests/test-term-style-control-hello.c
index c405ba57ba..b932ad5967 100644
--- a/tests/test-term-style-control-hello.c
+++ b/tests/test-term-style-control-hello.c
@@ -20,7 +20,6 @@
 /* Specification.  */
 #include "term-style-control.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-term-style-control-yes.c b/tests/test-term-style-control-yes.c
index a3599a6c51..0c1466ea53 100644
--- a/tests/test-term-style-control-yes.c
+++ b/tests/test-term-style-control-yes.c
@@ -20,7 +20,6 @@
 /* Specification.  */
 #include "term-style-control.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/tests/test-timespec.c b/tests/test-timespec.c
index 11b769c917..9959e95a6c 100644
--- a/tests/test-timespec.c
+++ b/tests/test-timespec.c
@@ -23,7 +23,6 @@
 #include "intprops.h"
 #include "macros.h"
 
-#include <stdbool.h>
 #include <limits.h>
 
 static struct { int s; int ns; } const prototype[] =
diff --git a/tests/test-trunc2.c b/tests/test-trunc2.c
index b833dd1e37..976ab250bb 100644
--- a/tests/test-trunc2.c
+++ b/tests/test-trunc2.c
@@ -24,7 +24,6 @@
 #include <math.h>
 
 #include <float.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 
diff --git a/tests/test-truncf2.c b/tests/test-truncf2.c
index 14c43cfc0e..b25e16af3b 100644
--- a/tests/test-truncf2.c
+++ b/tests/test-truncf2.c
@@ -24,7 +24,6 @@
 #include <math.h>
 
 #include <float.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 
diff --git a/tests/test-unlink.c b/tests/test-unlink.c
index d456078d15..d1ed36a1df 100644
--- a/tests/test-unlink.c
+++ b/tests/test-unlink.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (unlink, int, (char const *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-unlinkat.c b/tests/test-unlinkat.c
index 2c329fd5a6..b565fd67ef 100644
--- a/tests/test-unlinkat.c
+++ b/tests/test-unlinkat.c
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (unlinkat, int, (int, char const *, int));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/stat.h>
diff --git a/tests/test-userspec.c b/tests/test-userspec.c
index 65287a592d..08f1a9ca9d 100644
--- a/tests/test-userspec.c
+++ b/tests/test-userspec.c
@@ -24,7 +24,6 @@
 #include <assert.h>
 #include <string.h>
 #include <stdlib.h>
-#include <stdbool.h>
 #include <sys/types.h>
 #include <pwd.h>
 #include <grp.h>
diff --git a/tests/test-utime.c b/tests/test-utime.c
index c51cd1ff8d..b172b0d51b 100644
--- a/tests/test-utime.c
+++ b/tests/test-utime.c
@@ -18,7 +18,6 @@
 
 #include <utime.h>
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/tests/test-utimens.c b/tests/test-utimens.c
index 136c4daf9e..a2188f90b5 100644
--- a/tests/test-utimens.c
+++ b/tests/test-utimens.c
@@ -20,7 +20,6 @@
 
 #include "utimens.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/tests/test-utimensat.c b/tests/test-utimensat.c
index 267f1e5f42..5831fde1be 100644
--- a/tests/test-utimensat.c
+++ b/tests/test-utimensat.c
@@ -26,7 +26,6 @@ SIGNATURE_CHECK (utimensat, int, (int, char const *, struct timespec const[2],
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/unictype/test-categ_byname.c b/tests/unictype/test-categ_byname.c
index 7a2fcfb955..2489caaa28 100644
--- a/tests/unictype/test-categ_byname.c
+++ b/tests/unictype/test-categ_byname.c
@@ -18,7 +18,6 @@
 
 #include "unictype.h"
 
-#include <stdbool.h>
 #include <string.h>
 
 #include "macros.h"
diff --git a/tests/unigbrk/test-uc-is-grapheme-break.c b/tests/unigbrk/test-uc-is-grapheme-break.c
index d39dff3488..433ba686c7 100644
--- a/tests/unigbrk/test-uc-is-grapheme-break.c
+++ b/tests/unigbrk/test-uc-is-grapheme-break.c
@@ -21,7 +21,6 @@
 /* Specification. */
 #include <unigbrk.h>
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-- 
2.37.2


[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux