Annotation of embedaddon/libiconv/srcm4/lstat.m4, revision 1.1.1.1

1.1       misho       1: # serial 23
                      2: 
                      3: # Copyright (C) 1997-2001, 2003-2011 Free Software Foundation, Inc.
                      4: #
                      5: # This file is free software; the Free Software Foundation
                      6: # gives unlimited permission to copy and/or distribute it,
                      7: # with or without modifications, as long as this notice is preserved.
                      8: 
                      9: dnl From Jim Meyering.
                     10: 
                     11: AC_DEFUN([gl_FUNC_LSTAT],
                     12: [
                     13:   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
                     14:   dnl If lstat does not exist, the replacement <sys/stat.h> does
                     15:   dnl "#define lstat stat", and lstat.c is a no-op.
                     16:   AC_CHECK_FUNCS_ONCE([lstat])
                     17:   if test $ac_cv_func_lstat = yes; then
                     18:     AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
                     19:     if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
                     20:       REPLACE_LSTAT=1
                     21:     fi
                     22:   else
                     23:     HAVE_LSTAT=0
                     24:   fi
                     25: ])
                     26: 
                     27: # Prerequisites of lib/lstat.c.
                     28: AC_DEFUN([gl_PREREQ_LSTAT],
                     29: [
                     30:   AC_REQUIRE([AC_C_INLINE])
                     31:   :
                     32: ])
                     33: 
                     34: AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
                     35: [
                     36:   dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
                     37:   dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
                     38:   AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
                     39:     [gl_cv_func_lstat_dereferences_slashed_symlink],
                     40:     [rm -f conftest.sym conftest.file
                     41:      echo >conftest.file
                     42:      if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
                     43:        AC_RUN_IFELSE(
                     44:          [AC_LANG_PROGRAM(
                     45:             [AC_INCLUDES_DEFAULT],
                     46:             [[struct stat sbuf;
                     47:               /* Linux will dereference the symlink and fail, as required by
                     48:                  POSIX.  That is better in the sense that it means we will not
                     49:                  have to compile and use the lstat wrapper.  */
                     50:               return lstat ("conftest.sym/", &sbuf) == 0;
                     51:             ]])],
                     52:          [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
                     53:          [gl_cv_func_lstat_dereferences_slashed_symlink=no],
                     54:          [# When cross-compiling, be pessimistic so we will end up using the
                     55:           # replacement version of lstat that checks for trailing slashes and
                     56:           # calls lstat a second time when necessary.
                     57:           gl_cv_func_lstat_dereferences_slashed_symlink=no
                     58:          ])
                     59:      else
                     60:        # If the 'ln -s' command failed, then we probably don't even
                     61:        # have an lstat function.
                     62:        gl_cv_func_lstat_dereferences_slashed_symlink=no
                     63:      fi
                     64:      rm -f conftest.sym conftest.file
                     65:     ])
                     66:   test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
                     67:     AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
                     68:       [Define to 1 if `lstat' dereferences a symlink specified
                     69:        with a trailing slash.])
                     70: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>