mbrlen: Fix cross-compilation guess for AIX.
[gnulib.git] / m4 / lstat.m4
index 3b7bdfb..5dbd16e 100644 (file)
@@ -1,51 +1,28 @@
-#serial 2
+# serial 20
+
+# Copyright (C) 1997-2001, 2003-2010 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 dnl From Jim Meyering.
-dnl Determine whether lstat has the bug that it succeeds when given the
-dnl zero-length file name argument.  The lstat from SunOS4.1.4 and the Hurd
-dnl (as of 1998-11-01) do this.
-dnl
-dnl If it does, then define HAVE_LSTAT_EMPTY_STRING_BUG and arrange to
-dnl compile the wrapper function.
-dnl
 
-AC_DEFUN(jm_FUNC_LSTAT,
+AC_DEFUN([gl_FUNC_LSTAT],
 [
- AC_CACHE_CHECK([whether lstat accepts an empty string],
-  jm_cv_func_lstat_empty_string_bug,
-  [AC_TRY_RUN([
-#   include <sys/types.h>
-#   include <sys/stat.h>
-
-    int
-    main ()
-    {
-      struct stat sbuf;
-      exit (lstat ("", &sbuf) ? 1 : 0);
-    }
-         ],
-        jm_cv_func_lstat_empty_string_bug=yes,
-        jm_cv_func_lstat_empty_string_bug=no,
-        dnl When crosscompiling, assume lstat is broken.
-        jm_cv_func_lstat_empty_string_bug=yes)
-  ])
-  if test $jm_cv_func_lstat_empty_string_bug = yes; then
-
-    LIBOBJS="$LIBOBJS lstat.o"
-
-    if test $jm_cv_func_lstat_empty_string_bug = yes; then
-      if test x = y; then
-       # This code is deliberately never run via ./configure.
-       # FIXME: this is a hack to make autoheader put the corresponding
-       # HAVE_* undef for this symbol in config.h.in.  This saves me the
-       # trouble of having to maintain the #undef in acconfig.h manually.
-       AC_CHECK_FUNCS(LSTAT_EMPTY_STRING_BUG)
-      fi
-      # Defining it this way (rather than via AC_DEFINE) short-circuits the
-      # autoheader check -- autoheader doesn't know it's already been taken
-      # care of by the hack above.
-      ac_kludge=HAVE_LSTAT_EMPTY_STRING_BUG
-      AC_DEFINE_UNQUOTED($ac_kludge)
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  dnl If lstat does not exist, the replacement <sys/stat.h> does
+  dnl "#define lstat stat", and lstat.c is a no-op.
+  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]).
+      REPLACE_LSTAT=1
     fi
+    # Prerequisites of lib/lstat.c.
+    AC_REQUIRE([AC_C_INLINE])
+  else
+    HAVE_LSTAT=0
   fi
 ])