diff options
author | Jim Meyering <jim@meyering.net> | 1997-03-11 05:02:11 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1997-03-11 05:02:11 +0000 |
commit | dd2f783492b7e8e6d35ffb2d4535c2725d02af68 (patch) | |
tree | 5b472ca1721183123c8556a850f713d6cff17f64 | |
parent | fac7cfba066bc95a33d9c5b132ec31559393228e (diff) | |
download | coreutils-dd2f783492b7e8e6d35ffb2d4535c2725d02af68.tar.xz |
.
-rw-r--r-- | m4/chown.m4 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/m4/chown.m4 b/m4/chown.m4 new file mode 100644 index 000000000..59b4de725 --- /dev/null +++ b/m4/chown.m4 @@ -0,0 +1,40 @@ +#serial 1 + +dnl From Jim Meyering. +dnl If you use this macro in a package, you should +dnl add the following two lines to acconfig.h: +dnl /* Define to rpl_chown if the replacement function should be used. */ +dnl #undef chown +dnl + +AC_DEFUN(jm_FUNC_CHOWN, +[AC_REQUIRE([AC_TYPE_UID_T])dnl + test -z "$ac_cv_header_unistd_h" \ + && AC_CHECK_HEADERS(unistd.h) + AC_CACHE_CHECK([for working chown], jm_cv_func_working_chown, + [AC_TRY_RUN([ +# include <sys/types.h> +# include <fcntl.h> +# ifdef HAVE_UNISTD_H +# include <unistd.h> +# endif + + int + main () + { + char *f = "conftestchown"; + if (creat (f, 0600) < 0) + exit (1); + exit (chown (f, (gid_t) -1, (uid_t) -1) == -1 ? 1 : 0); + } + ], + jm_cv_func_working_chown=yes, + jm_cv_func_working_chown=no, + dnl When crosscompiling, assume chown is broken. + jm_cv_func_working_chown=no) + ]) + if test $jm_cv_func_working_chown = no; then + LIBOBJS="$LIBOBJS chown.o" + AC_DEFINE_UNQUOTED(chown, rpl_chown) + fi +]) |