4 dnl Determine whether lstat has the `bug' that it succeeds when given the
5 dnl zero-length file name argument. The lstat from SunOS4.1.4 and the Hurd
6 dnl (as of 1998-11-01) does this. This behavior is allowed by POSIX.
8 dnl If it does, then define HAVE_LSTAT_EMPTY_STRING_BUG and arrange to
9 dnl compile the wrapper function.
12 AC_DEFUN(jm_FUNC_LSTAT,
14 AC_CACHE_CHECK([whether lstat accepts an empty string],
15 jm_cv_func_lstat_empty_string_bug,
17 # include <sys/types.h>
18 # include <sys/stat.h>
24 exit (lstat ("", &sbuf) ? 1 : 0);
27 jm_cv_func_lstat_empty_string_bug=yes,
28 jm_cv_func_lstat_empty_string_bug=no,
29 dnl When crosscompiling, assume lstat is broken.
30 jm_cv_func_lstat_empty_string_bug=yes)
32 if test $jm_cv_func_lstat_empty_string_bug = yes; then
34 LIBOBJS="$LIBOBJS lstat.o"
36 if test $jm_cv_func_lstat_empty_string_bug = yes; then
38 # This code is deliberately never run via ./configure.
39 # FIXME: this is a hack to make autoheader put the corresponding
40 # HAVE_* undef for this symbol in config.h.in. This saves me the
41 # trouble of having to maintain the #undef in acconfig.h manually.
42 AC_CHECK_FUNCS(LSTAT_EMPTY_STRING_BUG)
44 # Defining it this way (rather than via AC_DEFINE) short-circuits the
45 # autoheader check -- autoheader doesn't know it's already been taken
46 # care of by the hack above.
47 ac_kludge=HAVE_LSTAT_EMPTY_STRING_BUG
48 AC_DEFINE_UNQUOTED($ac_kludge)