include_next: do not check for standard headers like stddef.h
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 19 Jan 2011 06:38:10 +0000 (22:38 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 19 Jan 2011 06:38:47 +0000 (22:38 -0800)
I found this problem when modifying Emacs to use gnulib.
I noticed that it added HAVE_STDDEF_H to config.h, even though
gnulib always assumes <stddef.h> exists as per README and this
symbol is unnecessary.
* m4/include_next.m4 (gl_NEXT_HEADERS): New macro, which does not
use AC_CHECK_HEADERS_ONCE, but which otherwise contains what
gl_CHECK_NEXT_HEADERS used to contain.  This makes 'configure' run
faster for headers like stddef.h that are known to exist.
(gl_CHECK_NEXT_HEADERS): Use it.
* m4/float_h.m4 (gl_FLOAT_H): For float.h, use gl_NEXT_HEADERS
rather than gl_CHECK_NEXT_HEADERS.
* m4/stdarg.m4 (gl_STDARG_H): Likewise, for stdarg.h.
* m4/stddef_h.m4 (gl_STDDEF_H): Likewise, for stddef.h.

ChangeLog
m4/float_h.m4
m4/include_next.m4
m4/stdarg.m4
m4/stddef_h.m4

index 263f1a099dd25238741b22fda71235979121d0fc..54c459804c5a8176c0fe6e6203d3b35d60d23874 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2011-01-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       include_next: do not check for standard headers like stddef.h
+
+       I found this problem when modifying Emacs to use gnulib.
+       I noticed that it added HAVE_STDDEF_H to config.h, even though
+       gnulib always assumes <stddef.h> exists as per README and this
+       symbol is unnecessary.
+       * m4/include_next.m4 (gl_NEXT_HEADERS): New macro, which does not
+       use AC_CHECK_HEADERS_ONCE, but which otherwise contains what
+       gl_CHECK_NEXT_HEADERS used to contain.  This makes 'configure' run
+       faster for headers like stddef.h that are known to exist.
+       (gl_CHECK_NEXT_HEADERS): Use it.
+       * m4/float_h.m4 (gl_FLOAT_H): For float.h, use gl_NEXT_HEADERS
+       rather than gl_CHECK_NEXT_HEADERS.
+       * m4/stdarg.m4 (gl_STDARG_H): Likewise, for stdarg.h.
+       * m4/stddef_h.m4 (gl_STDDEF_H): Likewise, for stddef.h.
+
 2011-01-18  Eric Blake  <eblake@redhat.com>
 
        ansi-c++-opt: skip C++ dependency style if C++ is unused
index 7f194343a589714570d9d97afdb5231c2a8f05cd..265a4c1a6e0243bb4e947474b0f74edd4819a7e9 100644 (file)
@@ -1,4 +1,4 @@
-# float_h.m4 serial 4
+# float_h.m4 serial 5
 dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -12,7 +12,7 @@ AC_DEFUN([gl_FLOAT_H],
   case "$host_os" in
     beos* | openbsd* | mirbsd*)
       FLOAT_H=float.h
-      gl_CHECK_NEXT_HEADERS([float.h])
+      gl_NEXT_HEADERS([float.h])
       ;;
   esac
   AC_SUBST([FLOAT_H])
index ed05e1de964c0355686a2de14fc60b6a1526d25f..4f1cd6d47ae0f5dcfd93f106b3d314849446e992 100644 (file)
@@ -1,4 +1,4 @@
-# include_next.m4 serial 16
+# include_next.m4 serial 17
 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -148,10 +148,20 @@ choke me
 # preprocessing, i.e. it does not only define preprocessor macros but also
 # provides some type/enum definitions or function/variable declarations.
 AC_DEFUN([gl_CHECK_NEXT_HEADERS],
+[
+  AC_CHECK_HEADERS_ONCE([$1])
+  gl_NEXT_HEADERS([$1])
+])
+
+# gl_NEXT_HEADERS(HEADER1 HEADER2 ...)
+# ------------------------------------
+# Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist.
+# This is suitable for headers like <stddef.h> that are standardized by C89
+# and therefore can be assumed to exist.
+AC_DEFUN([gl_NEXT_HEADERS],
 [
   AC_REQUIRE([gl_INCLUDE_NEXT])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CHECK_HEADERS_ONCE([$1])
 
   m4_foreach_w([gl_HEADER_NAME], [$1],
     [AS_VAR_PUSHDEF([gl_next_header],
index 02d73be3e9738cb7d55706a70a1431d7ca80c181..a1ef178c55faded595035623efc3f6af0619fd24 100644 (file)
@@ -1,4 +1,4 @@
-# stdarg.m4 serial 4
+# stdarg.m4 serial 5
 dnl Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -41,7 +41,7 @@ void (*func) (va_list, va_list) = va_copy;
     if test $gl_aixcc = yes; then
       dnl Provide a substitute <stdarg.h> file.
       STDARG_H=stdarg.h
-      gl_CHECK_NEXT_HEADERS([stdarg.h])
+      gl_NEXT_HEADERS([stdarg.h])
       dnl Fallback for the case when <stdarg.h> contains only macro definitions.
       if test "$gl_cv_next_stdarg_h" = '""'; then
         gl_cv_next_stdarg_h='"///usr/include/stdarg.h"'
index 3a5ecc571170fbfa2a4a829b7d416c52c2080372..1942b6aa0df534dbd08a25f81773a576167b7aea 100644 (file)
@@ -1,5 +1,5 @@
 dnl A placeholder for POSIX 2008 <stddef.h>, for platforms that have issues.
-# stddef_h.m4 serial 2
+# stddef_h.m4 serial 3
 dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -25,7 +25,7 @@ AC_DEFUN([gl_STDDEF_H],
     STDDEF_H=stddef.h
   fi
   if test -n "$STDDEF_H"; then
-    gl_CHECK_NEXT_HEADERS([stddef.h])
+    gl_NEXT_HEADERS([stddef.h])
   fi
 ])