Index: sys-xattr.c =================================================================== --- sys-xattr.c (revision 43993) +++ sys-xattr.c (working copy) @@ -31,9 +31,14 @@ if (Mono_Posix_FromXattrFlags (flags, &_flags) == -1) return -1; +#if __APPLE__ + return setxattr (path, name, value, size, 0, _flags); +#else return setxattr (path, name, value, size, _flags); +#endif } +#if !__APPLE__ gint32 Mono_Posix_Syscall_lsetxattr (const char *path, const char *name, char *value, mph_size_t size, gint32 flags) { @@ -45,6 +50,7 @@ return lsetxattr (path, name, value, size, _flags); } +#endif gint32 Mono_Posix_Syscall_fsetxattr (int fd, const char *name, char *value, mph_size_t size, gint32 flags) @@ -55,49 +61,74 @@ if (Mono_Posix_FromXattrFlags (flags, &_flags) == -1) return -1; +#if __APPLE__ + return fsetxattr (fd, name, value, (size_t) size, 0, _flags); +#else return lsetxattr (fd, name, value, (size_t) size, _flags); +#endif + } mph_ssize_t Mono_Posix_Syscall_getxattr (const char *path, const char *name, void *value, mph_size_t size) { mph_return_if_size_t_overflow (size); +#if __APPLE__ + return getxattr (path, name, value, (size_t) size, 0, 0); +#else return getxattr (path, name, value, (size_t) size); +#endif } +#if !__APPLE__ mph_ssize_t Mono_Posix_Syscall_lgetxattr (const char *path, const char *name, void *value, mph_size_t size) { mph_return_if_size_t_overflow (size); return lgetxattr (path, name, value, (size_t) size); } +#endif mph_ssize_t Mono_Posix_Syscall_fgetxattr (int fd, const char *name, void *value, mph_size_t size) { mph_return_if_size_t_overflow (size); +#if __APPLE__ + return fgetxattr (fd, name, value, (size_t) size, 0, 0); +#else return fgetxattr (fd, name, value, (size_t) size); +#endif } mph_ssize_t Mono_Posix_Syscall_listxattr (const char *path, char *list, mph_size_t size) { mph_return_if_size_t_overflow (size); +#if __APPLE__ + return listxattr (path, list, (size_t) size, 0); +#else return listxattr (path, list, (size_t) size); +#endif } +#if !__APPLE__ mph_ssize_t Mono_Posix_Syscall_llistxattr (const char *path, char *list, mph_size_t size) { mph_return_if_size_t_overflow (size); return llistxattr (path, list, (size_t) size); } +#endif mph_ssize_t Mono_Posix_Syscall_flistxattr (int fd, char *list, mph_size_t size) { mph_return_if_size_t_overflow (size); +#if __APPLE__ + return flistxattr (fd, list, (size_t) size, 0); +#else return flistxattr (fd, list, (size_t) size); +#endif } G_END_DECLS