X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Flstat.m4;h=089d0ff593a5fd28fe6255fe9bfa41e6f462cba0;hb=4f8fcf1d705639f175f1e4b483a86b51cbeee2f0;hp=bb2f75415f44d12394cec04b866a2bf472966d4e;hpb=4f3c9c7672c45db7693c5efebb0d3f06d0ab993f;p=gnulib.git diff --git a/m4/lstat.m4 b/m4/lstat.m4 index bb2f75415..089d0ff59 100644 --- a/m4/lstat.m4 +++ b/m4/lstat.m4 @@ -1,38 +1,28 @@ -#serial 1 +# serial 20 + +# Copyright (C) 1997-2001, 2003-2009 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 does 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 -AC_DEFUN(jm_FUNC_LSTAT, +AC_DEFUN([gl_FUNC_LSTAT], [ - AC_CACHE_CHECK([for working lstat], jm_cv_func_working_lstat, - [AC_TRY_RUN([ -# include -# include - - int - main () - { - struct stat sbuf; - exit (lstat ("", &sbuf) == 0 ? 1 : 0); - } - ], - jm_cv_func_working_lstat=yes, - jm_cv_func_working_lstat=no, - dnl When crosscompiling, assume lstat is broken. - jm_cv_func_working_lstat=no) - ]) - if test $jm_cv_func_working_lstat = no; then - LIBOBJS="$LIBOBJS lstat.o" - AC_DEFINE_UNQUOTED(lstat, rpl_lstat) + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + dnl If lstat does not exist, the replacement 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 ])