summaryrefslogtreecommitdiff
path: root/m4/lstat.m4
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1997-08-31 21:00:05 +0000
committerJim Meyering <jim@meyering.net>1997-08-31 21:00:05 +0000
commit7435d833529765f724fa03ed2840299825bcbcf0 (patch)
treeb774b13f1024929308ac7031d854b8d3de06a953 /m4/lstat.m4
parentea4e209b2b50eac0a8778a77af5a4f7e763442b3 (diff)
downloadcoreutils-7435d833529765f724fa03ed2840299825bcbcf0.tar.xz
.
Diffstat (limited to 'm4/lstat.m4')
-rw-r--r--m4/lstat.m438
1 files changed, 38 insertions, 0 deletions
diff --git a/m4/lstat.m4 b/m4/lstat.m4
new file mode 100644
index 000000000..bb2f75415
--- /dev/null
+++ b/m4/lstat.m4
@@ -0,0 +1,38 @@
+#serial 1
+
+dnl From Jim Meyering.
+dnl Determine whether lstat has the bug that it succeeds when given the
+dnl zero-length file name argument. The lstat from SunOS4.1.4 does this.
+dnl
+dnl If it doesn't, arrange to use the replacement function.
+dnl
+dnl If you use this macro in a package, you should
+dnl add the following two lines to acconfig.h:
+dnl /* Define to rpl_lstat if the replacement function should be used. */
+dnl #undef lstat
+dnl
+
+AC_DEFUN(jm_FUNC_LSTAT,
+[
+ AC_CACHE_CHECK([for working lstat], jm_cv_func_working_lstat,
+ [AC_TRY_RUN([
+# include <sys/types.h>
+# include <sys/stat.h>
+
+ int
+ main ()
+ {
+ struct stat sbuf;
+ exit (lstat ("", &sbuf) == 0 ? 1 : 0);
+ }
+ ],
+ jm_cv_func_working_lstat=yes,
+ jm_cv_func_working_lstat=no,
+ dnl When crosscompiling, assume lstat is broken.
+ jm_cv_func_working_lstat=no)
+ ])
+ if test $jm_cv_func_working_lstat = no; then
+ LIBOBJS="$LIBOBJS lstat.o"
+ AC_DEFINE_UNQUOTED(lstat, rpl_lstat)
+ fi
+])