From ab681e53f8100fdb144e0a100d6f2da9ff7c005f Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Thu, 17 May 2007 06:14:29 +0000
Subject: [PATCH] * lib/fcntl_.h: Prefer #include_next <foo.h> to #include
 @ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@.  This works better with GCC 4.2,
 which otherwise issues a lot of warnings. * lib/inttypes_.h, lib/math_.h,
 lib/search_.h, lib/signal_.h: * lib/stdint_.h, lib/stdio_.h, lib/stdlib_.h,
 lib/string_.h: * lib/sys_time_.h, lib/time_.h, lib/wchar_.h, lib/wctype_.h:
 Likewise. * lib/stdlib_.h: Don't bother with #pragma GCC system_header, as it
 should no longer be needed. * lib/string_.h: Likewise. *
 modules/absolute-header (HAVE_INCLUDE_NEXT): New 'make' define. *
 modules/fcntl (fcntl.h): Substitute @HAVE_INCLUDE_NEXT@. * modules/inttypes
 (inttypes.h): Likewise. * modules/math (math.h): Likewise. * modules/search
 (search.h): Likewise. * modules/signal (signal.h): Likewise. * modules/stdint
 (stdint.h): Likewise. * modules/stdio (stdio.h): Likewise. * modules/stdlib
 (stdlib.h): Likewise. * modules/string (string.h): Likewise. *
 modules/sys_time (sys/time.h): Likewise. * modules/time (time.h): Likewise. *
 modules/wchar (wchar.h): Likewise. * modules/wctype (wtype.h): Likewise.

---
 ChangeLog               | 26 ++++++++++++++++++++++++++
 lib/fcntl_.h            |  6 +++++-
 lib/inttypes_.h         |  2 +-
 lib/math_.h             |  4 ++--
 lib/search_.h           | 10 +++++++---
 lib/signal_.h           | 13 ++++++++++---
 lib/stdint_.h           |  6 +++++-
 lib/stdio_.h            | 10 +++++++---
 lib/stdlib_.h           | 22 ++++++----------------
 lib/string_.h           | 10 ++--------
 lib/sys_time_.h         |  6 +++++-
 lib/time_.h             | 11 ++++++++---
 lib/wchar_.h            |  4 ++--
 lib/wctype_.h           |  4 ++--
 modules/absolute-header |  4 ++++
 modules/fcntl           |  1 +
 modules/inttypes        |  1 +
 modules/math            |  1 +
 modules/search          |  1 +
 modules/signal          |  1 +
 modules/stdint          |  1 +
 modules/stdio           |  1 +
 modules/stdlib          |  1 +
 modules/string          |  1 +
 modules/sys_time        |  1 +
 modules/time            |  1 +
 modules/wchar           |  1 +
 modules/wctype          |  1 +
 28 files changed, 105 insertions(+), 46 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3eb8d17113..37466c8757 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,29 @@
+2007-05-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* lib/fcntl_.h: Prefer #include_next <foo.h> to #include
+	@ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@.  This works better with
+	GCC 4.2, which otherwise issues a lot of warnings.
+	* lib/inttypes_.h, lib/math_.h, lib/search_.h, lib/signal_.h:
+	* lib/stdint_.h, lib/stdio_.h, lib/stdlib_.h, lib/string_.h:
+	* lib/sys_time_.h, lib/time_.h, lib/wchar_.h, lib/wctype_.h: Likewise.
+	* lib/stdlib_.h: Don't bother with #pragma GCC system_header, as
+	it should no longer be needed.
+	* lib/string_.h: Likewise.
+	* modules/absolute-header (HAVE_INCLUDE_NEXT): New 'make' define.
+	* modules/fcntl (fcntl.h): Substitute @HAVE_INCLUDE_NEXT@.
+	* modules/inttypes (inttypes.h): Likewise.
+	* modules/math (math.h): Likewise.
+	* modules/search (search.h): Likewise.
+	* modules/signal (signal.h): Likewise.
+	* modules/stdint (stdint.h): Likewise.
+	* modules/stdio (stdio.h): Likewise.
+	* modules/stdlib (stdlib.h): Likewise.
+	* modules/string (string.h): Likewise.
+	* modules/sys_time (sys/time.h): Likewise.
+	* modules/time (time.h): Likewise.
+	* modules/wchar (wchar.h): Likewise.
+	* modules/wctype (wtype.h): Likewise.
+
 2007-05-16  Thien-Thi Nguyen  <ttn@gnuvola.org>  (tiny change)
 
 	* doc/gnulib-tool.texi (CVS Issues): Fix typo.
diff --git a/lib/fcntl_.h b/lib/fcntl_.h
index e16ad54afe..98e1372005 100644
--- a/lib/fcntl_.h
+++ b/lib/fcntl_.h
@@ -24,7 +24,11 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
-#include @ABSOLUTE_FCNTL_H@
+#if @HAVE_INCLUDE_NEXT@
+# include_next <fcntl.h>
+#else
+# include @ABSOLUTE_FCNTL_H@
+#endif
 
 
 /* Declare overridden functions.  */
diff --git a/lib/inttypes_.h b/lib/inttypes_.h
index fcf95b053c..be2bdabbac 100644
--- a/lib/inttypes_.h
+++ b/lib/inttypes_.h
@@ -21,7 +21,7 @@
    which in turn includes this file.  */
 #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
 # if @HAVE_INTTYPES_H@
-#  if defined __DECC && __DECC_VER >= 60000000
+#  if @HAVE_INCLUDE_NEXT@
 #   include_next <inttypes.h>
 #  else
 #   include @ABSOLUTE_INTTYPES_H@
diff --git a/lib/math_.h b/lib/math_.h
index 588642c1f3..f617df675b 100644
--- a/lib/math_.h
+++ b/lib/math_.h
@@ -16,14 +16,14 @@
    along with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-#if defined __DECC && __DECC_VER >= 60000000
+#if @HAVE_INCLUDE_NEXT@
 # include_next <math.h>
 #endif
 
 #ifndef _GL_MATH_H
 #define _GL_MATH_H
 
-#if !(defined __DECC && __DECC_VER >= 60000000)
+#if ! @HAVE_INCLUDE_NEXT@
 # include @ABSOLUTE_MATH_H@
 #endif
 
diff --git a/lib/search_.h b/lib/search_.h
index 233cc63db0..3ab086371c 100644
--- a/lib/search_.h
+++ b/lib/search_.h
@@ -20,7 +20,11 @@
 #define _GL_SEARCH_H
 
 #if @HAVE_SEARCH_H@
-# include @ABSOLUTE_SEARCH_H@
+# if @HAVE_INCLUDE_NEXT@
+#  include_next <search.h>
+# else
+#  include @ABSOLUTE_SEARCH_H@
+# endif
 #endif
 
 
@@ -40,9 +44,9 @@ extern "C" {
    for details.  */
 
 typedef enum
-{ 
+{
   preorder,
-  postorder, 
+  postorder,
   endorder,
   leaf
 }
diff --git a/lib/signal_.h b/lib/signal_.h
index 685bcaeb94..3dc743dbea 100644
--- a/lib/signal_.h
+++ b/lib/signal_.h
@@ -19,7 +19,11 @@
 #if defined __need_sig_atomic_t || defined __need_sigset_t
 /* Special invocation convention inside glibc header files.  */
 
-#include @ABSOLUTE_SIGNAL_H@
+# if @HAVE_INCLUDE_NEXT@
+#  include_next <signal.h>
+# else
+#  include @ABSOLUTE_SIGNAL_H@
+# endif
 
 #else
 /* Normal invocation convention.  */
@@ -27,8 +31,11 @@
 #ifndef _GL_SIGNAL_H
 #define _GL_SIGNAL_H
 
-#include @ABSOLUTE_SIGNAL_H@
-
+#if @HAVE_INCLUDE_NEXT@
+# include_next <signal.h>
+#else
+# include @ABSOLUTE_SIGNAL_H@
+#endif
 
 /* The definition of GL_LINK_WARNING is copied here.  */
 
diff --git a/lib/stdint_.h b/lib/stdint_.h
index 4fa52516d7..f32b8dc882 100644
--- a/lib/stdint_.h
+++ b/lib/stdint_.h
@@ -43,7 +43,11 @@
      Include it before <inttypes.h>, since any "#include <stdint.h>"
      in <inttypes.h> would reinclude us, skipping our contents because
      _GL_STDINT_H is defined.  */
-# include @ABSOLUTE_STDINT_H@
+# if @HAVE_INCLUDE_NEXT@
+#  include_next <stdint.h>
+# else
+#  include @ABSOLUTE_STDINT_H@
+# endif
 #endif
 
 /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
diff --git a/lib/stdio_.h b/lib/stdio_.h
index 66311be852..787c5d1ad3 100644
--- a/lib/stdio_.h
+++ b/lib/stdio_.h
@@ -19,19 +19,23 @@
 #if defined __need_FILE || defined __need___FILE
 /* Special invocation convention inside glibc header files.  */
 
-#include @ABSOLUTE_STDIO_H@
+#if @HAVE_INCLUDE_NEXT@
+# include_next <stdio.h>
+#else
+# include @ABSOLUTE_STDIO_H@
+#endif
 
 #else
 /* Normal invocation convention.  */
 
-#if defined __DECC && __DECC_VER >= 60000000
+#if @HAVE_INCLUDE_NEXT@
 # include_next <stdio.h>
 #endif
 
 #ifndef _GL_STDIO_H
 #define _GL_STDIO_H
 
-#if !(defined __DECC && __DECC_VER >= 60000000)
+#if ! @HAVE_INCLUDE_NEXT@
 # include @ABSOLUTE_STDIO_H@
 #endif
 
diff --git a/lib/stdlib_.h b/lib/stdlib_.h
index 425961edda..ea429c061b 100644
--- a/lib/stdlib_.h
+++ b/lib/stdlib_.h
@@ -19,33 +19,23 @@
 #if defined __need_malloc_and_calloc
 /* Special invocation convention inside glibc header files.  */
 
-/* This #pragma avoids a warning with "gcc -Wall" on some glibc systems
-   on which <stdlib.h> has an inappropriate declaration, see
-   <http://sourceware.org/bugzilla/show_bug.cgi?id=1079>.  */
-#ifdef __GNUC__
-# pragma GCC system_header
+#if @HAVE_INCLUDE_NEXT@
+# include_next <stdlib.h>
+#else
+# include @ABSOLUTE_STDLIB_H@
 #endif
 
-#include @ABSOLUTE_STDLIB_H@
-
 #else
 /* Normal invocation convention.  */
 
-#if defined __DECC && __DECC_VER >= 60000000
+#if @HAVE_INCLUDE_NEXT@
 # include_next <stdlib.h>
 #endif
 
 #ifndef _GL_STDLIB_H
 #define _GL_STDLIB_H
 
-/* This #pragma avoids a warning with "gcc -Wall" on some glibc systems
-   on which <stdlib.h> has an inappropriate declaration, see
-   <http://sourceware.org/bugzilla/show_bug.cgi?id=1079>.  */
-#ifdef __GNUC__
-# pragma GCC system_header
-#endif
-
-#if !(defined __DECC && __DECC_VER >= 60000000)
+#if ! @HAVE_INCLUDE_NEXT@
 # include @ABSOLUTE_STDLIB_H@
 #endif
 
diff --git a/lib/string_.h b/lib/string_.h
index 95888635c2..43801e823e 100644
--- a/lib/string_.h
+++ b/lib/string_.h
@@ -16,20 +16,14 @@
    along with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-#if defined __DECC && __DECC_VER >= 60000000
+#if @HAVE_INCLUDE_NEXT@
 # include_next <string.h>
 #endif
 
 #ifndef _GL_STRING_H
 #define _GL_STRING_H
 
-/* This #pragma avoids a warning with "gcc -Wmissing-prototypes" on some
-   mingw systems.  */
-#ifdef __GNUC__
-# pragma GCC system_header
-#endif
-
-#if !(defined __DECC && __DECC_VER >= 60000000)
+#if ! @HAVE_INCLUDE_NEXT@
 # include @ABSOLUTE_STRING_H@
 #endif
 
diff --git a/lib/sys_time_.h b/lib/sys_time_.h
index 9337be366c..6fe31b5bf2 100644
--- a/lib/sys_time_.h
+++ b/lib/sys_time_.h
@@ -22,7 +22,11 @@
 #define _GL_SYS_TIME_H
 
 #if @HAVE_SYS_TIME_H@
-# include @ABSOLUTE_SYS_TIME_H@
+# if @HAVE_INCLUDE_NEXT@
+#  include_next <sys/time.h>
+# else
+#  include @ABSOLUTE_SYS_TIME_H@
+# endif
 #else
 # include <time.h>
 #endif
diff --git a/lib/time_.h b/lib/time_.h
index 49c668f10b..3300fb8286 100644
--- a/lib/time_.h
+++ b/lib/time_.h
@@ -20,19 +20,24 @@
    declare a few standard symbols, rather than to declare all the
    symbols.  */
 #if defined __need_time_t || defined __need_clock_t || defined __need_timespec
-# include @ABSOLUTE_TIME_H@
+
+# if @HAVE_INCLUDE_NEXT@
+#  include_next <time.h>
+# else
+#  include @ABSOLUTE_TIME_H@
+# endif
 
 #else
 /* Normal invocation convention.  */
 
-# if defined __DECC && __DECC_VER >= 60000000
+# if @HAVE_INCLUDE_NEXT@
 #  include_next <time.h>
 # endif
 
 # if ! defined _GL_TIME_H
 #  define _GL_TIME_H
 
-#  if !(defined __DECC && __DECC_VER >= 60000000)
+#  if ! @HAVE_INCLUDE_NEXT@
 #   include @ABSOLUTE_TIME_H@
 #  endif
 
diff --git a/lib/wchar_.h b/lib/wchar_.h
index 7a93d07e61..f58af2f147 100644
--- a/lib/wchar_.h
+++ b/lib/wchar_.h
@@ -25,7 +25,7 @@
  * For now, this just ensures proper prerequisite inclusion order.
  */
 
-#if defined __DECC && __DECC_VER >= 60000000
+#if @HAVE_INCLUDE_NEXT@
 # include <stdio.h>
 # include_next <wchar.h>
 #endif
@@ -42,7 +42,7 @@
 #include <time.h>
 
 /* Include the original <wchar.h>.  */
-#if !(defined __DECC && __DECC_VER >= 60000000)
+#if ! @HAVE_INCLUDE_NEXT@
 # include @ABSOLUTE_WCHAR_H@
 #endif
 
diff --git a/lib/wctype_.h b/lib/wctype_.h
index 110a68eda0..3ca41a7bf9 100644
--- a/lib/wctype_.h
+++ b/lib/wctype_.h
@@ -39,7 +39,7 @@
 #endif
 
 #if @HAVE_WCTYPE_H@
-# if defined __DECC && __DECC_VER >= 60000000
+# if @HAVE_INCLUDE_NEXT@
 #  include_next <wctype.h>
 # endif
 #endif
@@ -50,7 +50,7 @@
 /* Include the original <wctype.h> if it exists.
    BeOS 5 has the functions but no <wctype.h>.  */
 #if @HAVE_WCTYPE_H@
-# if !(defined __DECC && __DECC_VER >= 60000000)
+# if ! @HAVE_INCLUDE_NEXT@
 #  include @ABSOLUTE_WCTYPE_H@
 # endif
 #endif
diff --git a/modules/absolute-header b/modules/absolute-header
index b4860cfc58..27b9ba6a01 100644
--- a/modules/absolute-header
+++ b/modules/absolute-header
@@ -9,6 +9,10 @@ Depends-on:
 configure.ac:
 
 Makefile.am:
+# Use this preprocessor expression to decide whether #include_next works.
+# Do not rely on a 'configure'-time test for this, since the expression
+# might appear in an installed header, which is used by some other compiler.
+HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
 
 Include:
 
diff --git a/modules/fcntl b/modules/fcntl
index 051e8f9221..d8b04bc3bb 100644
--- a/modules/fcntl
+++ b/modules/fcntl
@@ -21,6 +21,7 @@ fcntl.h: fcntl_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's|@''ABSOLUTE_FCNTL_H''@|$(ABSOLUTE_FCNTL_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      < $(srcdir)/fcntl_.h; \
 	} > $@-t
 	mv $@-t $@
diff --git a/modules/inttypes b/modules/inttypes
index 2352a3c286..59dd09ab47 100644
--- a/modules/inttypes
+++ b/modules/inttypes
@@ -24,6 +24,7 @@ inttypes.h: inttypes_.h
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
 	      -e 's|@''ABSOLUTE_INTTYPES_H''@|$(ABSOLUTE_INTTYPES_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
 	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
 	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
diff --git a/modules/math b/modules/math
index ea497f170b..85832a3e25 100644
--- a/modules/math
+++ b/modules/math
@@ -21,6 +21,7 @@ math.h: math_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
 	  sed -e 's|@''ABSOLUTE_MATH_H''@|$(ABSOLUTE_MATH_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
 	      -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \
 	      -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \
diff --git a/modules/search b/modules/search
index f58fc59a51..0ed8b8da48 100644
--- a/modules/search
+++ b/modules/search
@@ -21,6 +21,7 @@ search.h: search_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
 	  sed -e 's|@''HAVE_SEARCH_H''@|$(HAVE_SEARCH_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's|@''ABSOLUTE_SEARCH_H''@|$(ABSOLUTE_SEARCH_H)|g' \
 	      -e 's|@''GNULIB_TSEARCH''@|$(GNULIB_TSEARCH)|g' \
 	      -e 's|@''HAVE_TSEARCH''@|$(HAVE_TSEARCH)|g' \
diff --git a/modules/signal b/modules/signal
index c139af5968..26a39b9479 100644
--- a/modules/signal
+++ b/modules/signal
@@ -21,6 +21,7 @@ signal.h: signal_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
 	  sed -e 's|@''ABSOLUTE_SIGNAL_H''@|$(ABSOLUTE_SIGNAL_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's|@''GNULIB_SIGPROCMASK''@|$(GNULIB_SIGPROCMASK)|g' \
 	      -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \
 	      -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \
diff --git a/modules/stdint b/modules/stdint
index ab0738d6d5..1125402073 100644
--- a/modules/stdint
+++ b/modules/stdint
@@ -29,6 +29,7 @@ stdint.h: stdint_.h
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
 	      -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
 	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
 	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
diff --git a/modules/stdio b/modules/stdio
index 519b15745b..eba4c8b04f 100644
--- a/modules/stdio
+++ b/modules/stdio
@@ -21,6 +21,7 @@ stdio.h: stdio_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
 	  sed -e 's|@''ABSOLUTE_STDIO_H''@|$(ABSOLUTE_STDIO_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
 	      -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
 	      -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
diff --git a/modules/stdlib b/modules/stdlib
index 98e1b7d208..5254e86e36 100644
--- a/modules/stdlib
+++ b/modules/stdlib
@@ -22,6 +22,7 @@ stdlib.h: stdlib_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
 	  sed -e 's|@''ABSOLUTE_STDLIB_H''@|$(ABSOLUTE_STDLIB_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
 	      -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
 	      -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
diff --git a/modules/string b/modules/string
index 28bd16234d..1624d69eed 100644
--- a/modules/string
+++ b/modules/string
@@ -22,6 +22,7 @@ string.h: string_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
 	  sed -e 's|@''ABSOLUTE_STRING_H''@|$(ABSOLUTE_STRING_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
 	      -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
 	      -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
diff --git a/modules/sys_time b/modules/sys_time
index 0edf4f9b52..6a66e76b77 100644
--- a/modules/sys_time
+++ b/modules/sys_time
@@ -23,6 +23,7 @@ sys/time.h: sys_time_.h
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
 	      -e 's|@''ABSOLUTE_SYS_TIME_H''@|$(ABSOLUTE_SYS_TIME_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
 	      -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
 	      < $(srcdir)/sys_time_.h; \
diff --git a/modules/time b/modules/time
index a4eb4dd9db..b412800886 100644
--- a/modules/time
+++ b/modules/time
@@ -21,6 +21,7 @@ time.h: time_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
 	  sed -e 's|@ABSOLUTE_TIME_H''@|$(ABSOLUTE_TIME_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
 	      -e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
 	      -e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \
diff --git a/modules/wchar b/modules/wchar
index 8312e96bc2..7a61c8472d 100644
--- a/modules/wchar
+++ b/modules/wchar
@@ -20,6 +20,7 @@ wchar.h: wchar_.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	    < $(srcdir)/wchar_.h; \
 	} > $@-t
 	mv $@-t $@
diff --git a/modules/wctype b/modules/wctype
index 3365ecc239..8bfbb066cd 100644
--- a/modules/wctype
+++ b/modules/wctype
@@ -22,6 +22,7 @@ wctype.h: wctype_.h
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
 	      -e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \
+	      -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
 	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
 	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
 	      < $(srcdir)/wctype_.h; \
-- 
2.39.5