-#serial 1
+#serial 5
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 does this.
+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 doesn't, arrange to use the replacement function.
-dnl
-dnl If you use this macro in a package, you should
-dnl add the following two lines to acconfig.h:
-dnl /* Define to rpl_lstat if the replacement function should be used. */
-dnl #undef lstat
+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_CACHE_CHECK([for working lstat], jm_cv_func_working_lstat,
+ AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ 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>
main ()
{
struct stat sbuf;
- exit (lstat ("", &sbuf) == 0 ? 1 : 0);
+ exit (lstat ("", &sbuf) ? 1 : 0);
}
],
- jm_cv_func_working_lstat=yes,
- jm_cv_func_working_lstat=no,
+ 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_working_lstat=no)
+ jm_cv_func_lstat_empty_string_bug=yes)
])
- if test $jm_cv_func_working_lstat = no; then
- LIBOBJS="$LIBOBJS lstat.o"
- AC_DEFINE_UNQUOTED(lstat, rpl_lstat)
+ if test $jm_cv_func_lstat_empty_string_bug = yes; then
+ AC_SUBST(LIBOBJS)
+ LIBOBJS="$LIBOBJS lstat.$ac_objext"
+ AC_DEFINE_UNQUOTED(HAVE_LSTAT_EMPTY_STRING_BUG, 1,
+[Define if lstat has the bug that it succeeds when given the zero-length
+ file name argument. The lstat from SunOS4.1.4 and the Hurd as of 1998-11-01)
+ do this. ])
fi
])