X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=inline;f=m4%2Flchown.m4;h=7ce578bc3fb9c413dbc5f706fe0e5a15873eaee3;hb=b3f31eeaa29521c15f6d5523a50c3061faf4384b;hp=cbbbe34f1bd23d1ea7ce6d0cc9fa1558a97fdf97;hpb=c72aac6e3e928f603071b51510b4017c36f52371;p=gnulib.git diff --git a/m4/lchown.m4 b/m4/lchown.m4 index cbbbe34f1..7ce578bc3 100644 --- a/m4/lchown.m4 +++ b/m4/lchown.m4 @@ -1,18 +1,28 @@ -#serial 8 +# serial 16 +# Determine whether we need the lchown wrapper. + +dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2012 Free Software Foundation, +dnl Inc. -dnl Copyright (C) 1998, 2001, 2003, 2004, 2005 Free Software Foundation, 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_LIBSOURCES([lchown.c, lchown.h]) - AC_REQUIRE([AC_TYPE_UID_T]) + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_CHOWN]) - AC_REQUIRE([gl_STAT_MACROS]) - AC_REPLACE_FUNCS(lchown) + AC_CHECK_FUNCS_ONCE([lchmod]) + AC_CHECK_FUNCS([lchown]) + if test $ac_cv_func_lchown = no; then + HAVE_LCHOWN=0 + elif test "$gl_cv_func_chown_slash_works" != yes \ + || test "$gl_cv_func_chown_ctime_works" != yes; then + dnl Trailing slash and ctime bugs in chown also occur in lchown. + REPLACE_LCHOWN=1 + fi ])