| version 1.1.1.1, 2012/05/29 09:29:44 | version 1.1.1.2, 2021/03/17 13:38:46 | 
| Line 1 | Line 1 | 
| # serial 23 | # serial 32 | 
 |  |  | 
| # Copyright (C) 1997-2001, 2003-2011 Free Software Foundation, Inc. | # Copyright (C) 1997-2001, 2003-2019 Free Software Foundation, Inc. | 
 | # | # | 
 | # This file is free software; the Free Software Foundation | # This file is free software; the Free Software Foundation | 
 | # gives unlimited permission to copy and/or distribute it, | # gives unlimited permission to copy and/or distribute it, | 
| Line 10  dnl From Jim Meyering. | Line 10  dnl From Jim Meyering. | 
 |  |  | 
 | AC_DEFUN([gl_FUNC_LSTAT], | AC_DEFUN([gl_FUNC_LSTAT], | 
 | [ | [ | 
 |  | AC_REQUIRE([AC_CANONICAL_HOST]) | 
 | AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) | AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) | 
 | dnl If lstat does not exist, the replacement <sys/stat.h> does | dnl If lstat does not exist, the replacement <sys/stat.h> does | 
 | dnl "#define lstat stat", and lstat.c is a no-op. | dnl "#define lstat stat", and lstat.c is a no-op. | 
 | AC_CHECK_FUNCS_ONCE([lstat]) | AC_CHECK_FUNCS_ONCE([lstat]) | 
 | if test $ac_cv_func_lstat = yes; then | if test $ac_cv_func_lstat = yes; then | 
 | AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) | AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) | 
| if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then | case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in | 
| REPLACE_LSTAT=1 | solaris* | *no) | 
| fi | REPLACE_LSTAT=1 | 
|  | ;; | 
|  | esac | 
 | else | else | 
 | HAVE_LSTAT=0 | HAVE_LSTAT=0 | 
 | fi | fi | 
 | ]) | ]) | 
 |  |  | 
 | # Prerequisites of lib/lstat.c. | # Prerequisites of lib/lstat.c. | 
| AC_DEFUN([gl_PREREQ_LSTAT], | AC_DEFUN([gl_PREREQ_LSTAT], [:]) | 
| [ |  | 
| AC_REQUIRE([AC_C_INLINE]) |  | 
| : |  | 
| ]) |  | 
 |  |  | 
 | AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], | AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], | 
 | [ | [ | 
 | dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it | dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it | 
 | dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ. | dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ. | 
 |  | AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles | 
 | AC_CACHE_CHECK([whether lstat correctly handles trailing slash], | AC_CACHE_CHECK([whether lstat correctly handles trailing slash], | 
 | [gl_cv_func_lstat_dereferences_slashed_symlink], | [gl_cv_func_lstat_dereferences_slashed_symlink], | 
 | [rm -f conftest.sym conftest.file | [rm -f conftest.sym conftest.file | 
 | echo >conftest.file | echo >conftest.file | 
| if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then | AC_RUN_IFELSE( | 
| AC_RUN_IFELSE( | [AC_LANG_PROGRAM( | 
| [AC_LANG_PROGRAM( | [AC_INCLUDES_DEFAULT], | 
| [AC_INCLUDES_DEFAULT], | [[struct stat sbuf; | 
| [[struct stat sbuf; | if (symlink ("conftest.file", "conftest.sym") != 0) | 
| /* Linux will dereference the symlink and fail, as required by | return 1; | 
| POSIX.  That is better in the sense that it means we will not | /* Linux will dereference the symlink and fail, as required by | 
| have to compile and use the lstat wrapper.  */ | POSIX.  That is better in the sense that it means we will not | 
| return lstat ("conftest.sym/", &sbuf) == 0; | have to compile and use the lstat wrapper.  */ | 
| ]])], | return lstat ("conftest.sym/", &sbuf) == 0; | 
| [gl_cv_func_lstat_dereferences_slashed_symlink=yes], | ]])], | 
| [gl_cv_func_lstat_dereferences_slashed_symlink=no], | [gl_cv_func_lstat_dereferences_slashed_symlink=yes], | 
| [# When cross-compiling, be pessimistic so we will end up using the | [gl_cv_func_lstat_dereferences_slashed_symlink=no], | 
| # replacement version of lstat that checks for trailing slashes and | [case "$host_os" in | 
| # calls lstat a second time when necessary. | linux-* | linux) | 
| gl_cv_func_lstat_dereferences_slashed_symlink=no | # Guess yes on Linux systems. | 
| ]) | gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; | 
| else | *-gnu* | gnu*) | 
| # If the 'ln -s' command failed, then we probably don't even | # Guess yes on glibc systems. | 
| # have an lstat function. | gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; | 
| gl_cv_func_lstat_dereferences_slashed_symlink=no | mingw*) | 
| fi | # Guess no on native Windows. | 
|  | gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; | 
|  | *) | 
|  | # If we don't know, assume the worst. | 
|  | gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; | 
|  | esac | 
|  | ]) | 
 | rm -f conftest.sym conftest.file | rm -f conftest.sym conftest.file | 
 | ]) | ]) | 
| test $gl_cv_func_lstat_dereferences_slashed_symlink = yes && | case "$gl_cv_func_lstat_dereferences_slashed_symlink" in | 
| AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], | *yes) | 
| [Define to 1 if `lstat' dereferences a symlink specified | AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], | 
| with a trailing slash.]) | [Define to 1 if 'lstat' dereferences a symlink specified | 
|  | with a trailing slash.]) | 
|  | ;; | 
|  | esac | 
 | ]) | ]) |