+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.
#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. */
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@
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
#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
for details. */
typedef enum
-{
+{
preorder,
- postorder,
+ postorder,
endorder,
leaf
}
#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. */
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,
#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
#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
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
#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
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
* 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
#include <time.h>
/* Include the original <wchar.h>. */
-#if !(defined __DECC && __DECC_VER >= 60000000)
+#if ! @HAVE_INCLUDE_NEXT@
# include @ABSOLUTE_WCHAR_H@
#endif
#endif
#if @HAVE_WCTYPE_H@
-# if defined __DECC && __DECC_VER >= 60000000
+# if @HAVE_INCLUDE_NEXT@
# include_next <wctype.h>
# endif
#endif
/* 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
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:
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 $@
{ 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' \
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' \
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' \
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' \
{ 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' \
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' \
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' \
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' \
{ 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; \
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' \
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 $@
{ 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; \