Annotation of embedaddon/libiconv/srcm4/lstat.m4, revision 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>