changeset 889:e9739f52a325

.
author Jim Meyering <jim@meyering.net>
date Tue, 11 Mar 1997 05:02:11 +0000
parents e40500db9101
children 43f77e7f64cb
files m4/chown.m4
diffstat 1 files changed, 40 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /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
+])