lstat, openat: Respect rules for use of AC_LIBOBJ.
authorBruno Haible <bruno@clisp.org>
Sat, 21 May 2011 12:02:06 +0000 (14:02 +0200)
committerBruno Haible <bruno@clisp.org>
Wed, 15 Jun 2011 22:06:25 +0000 (00:06 +0200)
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Renamed from
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. Set variable
gl_cv_func_lstat_dereferences_slashed_symlink. Don't invoke AC_LIBOBJ.
(gl_PREREQ_LSTAT): New macro, extracted from gl_FUNC_LSTAT.
(gl_FUNC_LSTAT): Update. Remove gl_PREREQ_LSTAT code.
* modules/lstat (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_LSTAT
here.
* m4/openat.m4 (gl_FUNC_OPENAT): Update.

ChangeLog
m4/lstat.m4
m4/openat.m4
modules/lstat

index 38ef36e..f5a3d8a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2011-05-21  Bruno Haible  <bruno@clisp.org>
 
+       lstat, openat: Respect rules for use of AC_LIBOBJ.
+       * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Renamed from
+       AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. Set variable
+       gl_cv_func_lstat_dereferences_slashed_symlink. Don't invoke AC_LIBOBJ.
+       (gl_PREREQ_LSTAT): New macro, extracted from gl_FUNC_LSTAT.
+       (gl_FUNC_LSTAT): Update. Remove gl_PREREQ_LSTAT code.
+       * modules/lstat (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_LSTAT
+       here.
+       * m4/openat.m4 (gl_FUNC_OPENAT): Update.
+
+2011-05-21  Bruno Haible  <bruno@clisp.org>
+
        lseek: Move AC_LIBOBJ invocations to module description.
        * m4/lseek.m4 (gl_REPLACE_LSEEK): Remove macro.
        (gl_FUNC_LSEEK): Inline it here. Move AC_LIBOBJ invocation from here...
index b9b22a6..72c76c6 100644 (file)
@@ -1,4 +1,4 @@
-# serial 21
+# serial 22
 
 # Copyright (C) 1997-2001, 2003-2011 Free Software Foundation, Inc.
 #
@@ -16,23 +16,27 @@ AC_DEFUN([gl_FUNC_LSTAT],
   AC_CHECK_FUNCS_ONCE([lstat])
   if test $ac_cv_func_lstat = yes; then
     AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
-    if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then
-      dnl Note: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK does AC_LIBOBJ([lstat]).
+    if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
       REPLACE_LSTAT=1
     fi
-    # Prerequisites of lib/lstat.c.
-    AC_REQUIRE([AC_C_INLINE])
   else
     HAVE_LSTAT=0
   fi
 ])
 
-# Redefine AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, because it is no longer
-# maintained in Autoconf.
-AC_DEFUN([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
+# Prerequisites of lib/lstat.c.
+AC_DEFUN([gl_PREREQ_LSTAT],
 [
+  AC_REQUIRE([AC_C_INLINE])
+  :
+])
+
+AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
+[
+  dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
+  dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
   AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
-    [ac_cv_func_lstat_dereferences_slashed_symlink],
+    [gl_cv_func_lstat_dereferences_slashed_symlink],
     [rm -f conftest.sym conftest.file
      echo >conftest.file
      if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
@@ -45,25 +49,22 @@ AC_DEFUN([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
                  have to compile and use the lstat wrapper.  */
               return lstat ("conftest.sym/", &sbuf) == 0;
             ]])],
-         [ac_cv_func_lstat_dereferences_slashed_symlink=yes],
-         [ac_cv_func_lstat_dereferences_slashed_symlink=no],
+         [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
+         [gl_cv_func_lstat_dereferences_slashed_symlink=no],
          [# When cross-compiling, be pessimistic so we will end up using the
           # replacement version of lstat that checks for trailing slashes and
           # calls lstat a second time when necessary.
-          ac_cv_func_lstat_dereferences_slashed_symlink=no
+          gl_cv_func_lstat_dereferences_slashed_symlink=no
          ])
      else
        # If the 'ln -s' command failed, then we probably don't even
        # have an lstat function.
-       ac_cv_func_lstat_dereferences_slashed_symlink=no
+       gl_cv_func_lstat_dereferences_slashed_symlink=no
      fi
      rm -f conftest.sym conftest.file
     ])
-  test $ac_cv_func_lstat_dereferences_slashed_symlink = yes &&
+  test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
     AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
       [Define to 1 if `lstat' dereferences a symlink specified
        with a trailing slash.])
-  if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then
-    AC_LIBOBJ([lstat])
-  fi
 ])
index 28c0e1d..5db8030 100644 (file)
@@ -1,4 +1,4 @@
-# serial 31
+# serial 32
 # See if we need to use our replacement for Solaris' openat et al functions.
 
 dnl Copyright (C) 2004-2011 Free Software Foundation, Inc.
@@ -26,9 +26,9 @@ AC_DEFUN([gl_FUNC_OPENAT],
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_FUNCS_ONCE([lchmod])
   AC_REPLACE_FUNCS([fchmodat fstatat mkdirat openat unlinkat])
-  AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+  AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
   AC_REQUIRE([gl_FUNC_UNLINK])
-  case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
+  case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
   yes+yes)
     # GNU/Hurd has unlinkat, but it has the same bug as unlink.
     if test $REPLACE_UNLINK = 1; then
index a945a11..dbe7e11 100644 (file)
@@ -12,6 +12,10 @@ stat            [test $REPLACE_LSTAT = 1]
 
 configure.ac:
 gl_FUNC_LSTAT
+if test $REPLACE_LSTAT = 1; then
+  AC_LIBOBJ([lstat])
+  gl_PREREQ_LSTAT
+fi
 gl_SYS_STAT_MODULE_INDICATOR([lstat])
 
 Makefile.am: