This reverts commit
f1b37e3a which doesn't work on Mac OS X >= 10.4
which has an incompatible 6 parameter getxattr() call.
* doc/glibc-functions/getxattr.texi: Mention the divergent getxattr()
call on Mac OS X >= 10.4.
* doc/glibc-functions/fgetxattr.texi: Likewise.
* lib/file-has-acl.c: Revert to more complete combined check.
* m4/acl.m4 (gl_FILE_HAS_ACL): Likewise.
Reported by Jack Howarth.
+2015-06-02 Pádraig Brady <P@draigBrady.com>
+
+ file-has-acl: fix build on Mac OS X 10
+ This reverts commit f1b37e3a which doesn't work on Mac OS X >= 10.4
+ which has an incompatible 6 parameter getxattr() call.
+ * doc/glibc-functions/getxattr.texi: Mention the divergent getxattr()
+ call on Mac OS X >= 10.4.
+ * doc/glibc-functions/fgetxattr.texi: Likewise.
+ * lib/file-has-acl.c: Revert to more complete combined check.
+ * m4/acl.m4 (gl_FILE_HAS_ACL): Likewise.
+ Reported by Jack Howarth.
+
2015-06-02 Pádraig Brady <P@draigBrady.com>
prefix-gnulib-mk: remove no longer needed special case
This function is missing on many non-glibc platforms:
Mac OS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
+@item
+This function has extra @code{offset} and @code{options} parameters:
+Mac OS X 10.4
@end itemize
This function is missing on many non-glibc platforms:
Mac OS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
+@item
+This function has extra @code{offset} and @code{options} parameters:
+Mac OS X 10.4
@end itemize
#include "acl-internal.h"
-#if HAVE_SYS_XATTR_H
+#if GETXATTR_WITH_POSIX_ACLS
# include <sys/xattr.h>
-#endif
-
-#if HAVE_LINUX_XATTR_H
# include <linux/xattr.h>
#endif
if (! S_ISLNK (sb->st_mode))
{
-# if HAVE_GETXATTR
-
-# ifndef XATTR_NAME_POSIX_ACL_ACCESS
-# define XATTR_NAME_POSIX_ACL_ACCESS "system.posix_acl_access"
-# endif
-
-# ifndef XATTR_NAME_POSIX_ACL_DEFAULT
-# define XATTR_NAME_POSIX_ACL_DEFAULT "system.posix_acl_default"
-# endif
+# if GETXATTR_WITH_POSIX_ACLS
ssize_t ret;
# acl.m4 - check for access control list (ACL) primitives
-# serial 20
+# serial 21
# Copyright (C) 2002, 2004-2015 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
[
AC_REQUIRE([gl_FUNC_ACL_ARG])
if test "$enable_acl" != no; then
- AC_CHECK_HEADERS([linux/xattr.h])
- AC_CHECK_HEADERS([sys/xattr.h],
- [AC_CHECK_FUNCS([getxattr])])
+ AC_CACHE_CHECK([for getxattr with XATTR_NAME_POSIX_ACL macros],
+ [gl_cv_getxattr_with_posix_acls],
+ [gl_cv_getxattr_with_posix_acls=no
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>
+ #include <sys/xattr.h>
+ #include <linux/xattr.h>
+ ]],
+ [[ssize_t a = getxattr (".", XATTR_NAME_POSIX_ACL_ACCESS, 0, 0);
+ ssize_t b = getxattr (".", XATTR_NAME_POSIX_ACL_DEFAULT, 0, 0);
+ return a < 0 || b < 0;
+ ]])],
+ [gl_cv_getxattr_with_posix_acls=yes])])
fi
- if test "$ac_cv_header_sys_xattr_h,$ac_cv_func_getxattr" = yes,yes; then
+ if test "$gl_cv_getxattr_with_posix_acls" = yes; then
LIB_HAS_ACL=
+ AC_DEFINE([GETXATTR_WITH_POSIX_ACLS], 1,
+ [Define to 1 if getxattr works with XATTR_NAME_POSIX_ACL_ACCESS
+ and XATTR_NAME_POSIX_ACL_DEFAULT.])
else
dnl Set gl_need_lib_has_acl to a nonempty value, so that any
dnl later gl_FUNC_ACL call will set LIB_HAS_ACL=$LIB_ACL.