* lib/fcntl_.h: Prefer #include_next <foo.h> to #include
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 17 May 2007 06:14:29 +0000 (06:14 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 17 May 2007 06:14:29 +0000 (06:14 +0000)
@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.

28 files changed:
ChangeLog
lib/fcntl_.h
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
modules/absolute-header
modules/fcntl
modules/inttypes
modules/math
modules/search
modules/signal
modules/stdint
modules/stdio
modules/stdlib
modules/string
modules/sys_time
modules/time
modules/wchar
modules/wctype

index 3eb8d17..37466c8 100644 (file)
--- 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.
index e16ad54..98e1372 100644 (file)
 #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.  */
index fcf95b0..be2bdab 100644 (file)
@@ -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@
index 588642c..f617df6 100644 (file)
    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
 
index 233cc63..3ab0863 100644 (file)
 #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
 }
index 685bcae..3dc743d 100644 (file)
 #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.  */
 #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.  */
 
index 4fa5251..f32b8dc 100644 (file)
      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,
index 66311be..787c5d1 100644 (file)
 #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
 
index 425961e..ea429c0 100644 (file)
 #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
 
index 9588863..43801e8 100644 (file)
    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
 
index 9337be3..6fe31b5 100644 (file)
 #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
index 49c668f..3300fb8 100644 (file)
    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
 
index 7a93d07..f58af2f 100644 (file)
@@ -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
 
index 110a68e..3ca41a7 100644 (file)
@@ -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
index b4860cf..27b9ba6 100644 (file)
@@ -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:
 
index 051e8f9..d8b04bc 100644 (file)
@@ -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 $@
index 2352a3c..59dd09a 100644 (file)
@@ -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' \
index ea497f1..85832a3 100644 (file)
@@ -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' \
index f58fc59..0ed8b8d 100644 (file)
@@ -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' \
index c139af5..26a39b9 100644 (file)
@@ -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' \
index ab0738d..1125402 100644 (file)
@@ -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' \
index 519b157..eba4c8b 100644 (file)
@@ -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' \
index 98e1b7d..5254e86 100644 (file)
@@ -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' \
index 28bd162..1624d69 100644 (file)
@@ -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' \
index 0edf4f9..6a66e76 100644 (file)
@@ -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; \
index a4eb4dd..b412800 100644 (file)
@@ -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' \
index 8312e96..7a61c84 100644 (file)
@@ -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 $@
index 3365ecc..8bfbb06 100644 (file)
@@ -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; \