summaryrefslogtreecommitdiff
path: root/m4/lchown.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/lchown.m4')
-rw-r--r--m4/lchown.m433
1 files changed, 26 insertions, 7 deletions
diff --git a/m4/lchown.m4 b/m4/lchown.m4
index a7b3572..fb5aed1 100644
--- a/m4/lchown.m4
+++ b/m4/lchown.m4
@@ -1,19 +1,38 @@
-#serial 11
+# serial 17
+# Determine whether we need the lchown wrapper.
-dnl Copyright (C) 1998, 2001, 2003, 2004, 2005, 2006 Free Software
-dnl Foundation, Inc.
+dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2016 Free Software Foundation,
+dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Jim Meyering.
-dnl Provide lchown on systems that lack it.
+dnl Provide lchown on systems that lack it, and work around bugs
+dnl on systems that have it.
AC_DEFUN([gl_FUNC_LCHOWN],
[
- AC_REQUIRE([AC_TYPE_UID_T])
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_CHOWN])
- AC_CHECK_DECLS_ONCE([lchown])
- AC_REPLACE_FUNCS(lchown)
+ AC_CHECK_FUNCS_ONCE([lchmod])
+ AC_CHECK_FUNCS([lchown])
+ if test $ac_cv_func_lchown = no; then
+ HAVE_LCHOWN=0
+ else
+ dnl Trailing slash and ctime bugs in chown also occur in lchown.
+ case "$gl_cv_func_chown_slash_works" in
+ *yes) ;;
+ *)
+ REPLACE_LCHOWN=1
+ ;;
+ esac
+ case "$gl_cv_func_chown_ctime_works" in
+ *yes) ;;
+ *)
+ REPLACE_LCHOWN=1
+ ;;
+ esac
+ fi
])