Move gnulib to top level
[deliverable/binutils-gdb.git] / gnulib / import / m4 / lstat.m4
CommitLineData
5e8754f9 1# serial 27
f45c62c4 2
5e8754f9 3# Copyright (C) 1997-2001, 2003-2016 Free Software Foundation, Inc.
f45c62c4
YQ
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
9dnl From Jim Meyering.
10
11AC_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])
5e8754f9
SDJ
19 case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
20 *no)
f45c62c4
YQ
21 REPLACE_LSTAT=1
22 ;;
23 esac
24 else
25 HAVE_LSTAT=0
26 fi
27])
28
29# Prerequisites of lib/lstat.c.
30AC_DEFUN([gl_PREREQ_LSTAT], [:])
31
32AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
33[
34 dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
35 dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
36 AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
37 [gl_cv_func_lstat_dereferences_slashed_symlink],
38 [rm -f conftest.sym conftest.file
39 echo >conftest.file
4a626d0a
PA
40 AC_RUN_IFELSE(
41 [AC_LANG_PROGRAM(
42 [AC_INCLUDES_DEFAULT],
43 [[struct stat sbuf;
44 if (symlink ("conftest.file", "conftest.sym") != 0)
45 return 1;
46 /* Linux will dereference the symlink and fail, as required by
47 POSIX. That is better in the sense that it means we will not
48 have to compile and use the lstat wrapper. */
49 return lstat ("conftest.sym/", &sbuf) == 0;
50 ]])],
51 [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
52 [gl_cv_func_lstat_dereferences_slashed_symlink=no],
53 [case "$host_os" in
5e8754f9 54 *-gnu*)
4a626d0a
PA
55 # Guess yes on glibc systems.
56 gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
57 *)
58 # If we don't know, assume the worst.
59 gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
60 esac
61 ])
f45c62c4
YQ
62 rm -f conftest.sym conftest.file
63 ])
64 case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
65 *yes)
66 AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
67 [Define to 1 if 'lstat' dereferences a symlink specified
68 with a trailing slash.])
69 ;;
70 esac
71])
This page took 0.456535 seconds and 4 git commands to generate.