lstat: don't compile lstat.c on systems lacking lstat
authorBruno Haible <bruno@clisp.org>
Thu, 13 Nov 2008 06:59:46 +0000 (07:59 +0100)
committerJim Meyering <meyering@redhat.com>
Thu, 13 Nov 2008 06:59:46 +0000 (07:59 +0100)
* m4/lstat.m4 (gl_FUNC_LSTAT): Don't compile lstat.c on systems
which don't have lstat; this is handled by lib/sys_stat.in.h already.
Reported by Daniel P. Berrange via Jim Meyering.

ChangeLog
m4/lstat.m4

index 869ffcdaa88c2328afe64b2ebbf7bc31150dc279..5c1e86741841f466c92f78cb522b7a3810a73080 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-11-12  Bruno Haible  <bruno@clisp.org>
+
+       lstat: don't compile lstat.c on systems lacking lstat
+       * m4/lstat.m4 (gl_FUNC_LSTAT): Don't compile lstat.c on systems
+       which don't have lstat; this is handled by lib/sys_stat.in.h already.
+       Reported by Daniel P. Berrange via Jim Meyering.
+
 2008-11-12  Jim Meyering  <meyering@redhat.com>
 
        * lib/unicodeio.c (unicode_to_mb): Correct spelling of u8_uctomb.
index 9ac109f67353d53c62c0f6784766f9a5f946b1b1..c2d8f452e035ba6fb74dc3a29fb10133fbdbed59 100644 (file)
@@ -12,12 +12,16 @@ dnl From Jim Meyering.
 AC_DEFUN([gl_FUNC_LSTAT],
 [
   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
-  AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
-  dnl Note: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK does AC_LIBOBJ(lstat).
-  if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then
-    REPLACE_LSTAT=1
+  dnl If lstat does not exist, the replacement <sys/stat.h> does
+  dnl "#define lstat stat", and lstat.c does not need to be compiled.
+  AC_CHECK_FUNCS_ONCE([lstat])
+  if test $ac_cv_func_lstat = yes; then
+    AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
+    dnl Note: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK does AC_LIBOBJ(lstat).
+    if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then
+      REPLACE_LSTAT=1
+    fi
+    # Prerequisites of lib/lstat.c.
+    AC_REQUIRE([AC_C_INLINE])
   fi
-  # Prerequisites of lib/lstat.c.
-  AC_REQUIRE([AC_C_INLINE])
-  :
 ])