- 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>
-
- 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
- AC_LIBOBJ(lstat)
- AC_DEFINE(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. ])
+ 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 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])