This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: s390/s390-64 missing xattr exports
- From: Andreas Gruenbacher <agruen at suse dot de>
- To: Andreas Jaeger <aj at suse dot de>, Roland McGrath <roland at frob dot com>
- Cc: Ulrich Drepper <drepper at redhat dot com>,libc-alpha at sources dot redhat dot com, Christoph Hellwig <hch at lst dot de>,Nathan Scott <nathans at sgi dot com>, Tim Shimmin <tes at sgi dot com>
- Date: Mon, 19 Aug 2002 11:16:13 +0200
- Subject: Re: s390/s390-64 missing xattr exports
- Organization: SuSE Linux AG
- References: <20020819075052.B2E8E1BA18@perdition.linnaean.org> <u87kinz2ap.fsf@gromit.moeb>
On Monday 19 August 2002 10:21, Andreas Jaeger wrote:
> Roland McGrath <roland@frob.com> writes:
> >> Roland, what is your decision? I'd like to know whether I should
> >> [AG: add ?] the calls to s390-64 or whether we make this generic.
> >
> > Is there any documentation on these calls?
>
> Andreas has some on the ACL page.
The manual pages are found at <http://acl.bestbits.at/man/man.shtml>, or
alternatively in the XFS CVS repository at
<http://oss.sgi.com/projects/xfs/>.
> Andreas, can you send the list here, please?
This is the status of the xattr syscalls in 2.4.19 / 2.5.30 kernels.
Arch Reserved Glibc
---- -------- -----
alpha yes (*)
arm yes (*)
i386 yes (*)
cris no
hppa no
i386 yes (*)
ia64 yes (*)
m68k yes (*)
mips 2.4 only (2)
mips64 2.4 only (1,2)
ppc yes (*)
ppc64 yes (1)
s390 yes (*)
s390x yes (1)
sh no
sparc yes (*)
sparc64 yes (*)
x86_64 yes (*)
(*) Versions file updated and accepted into glibc (AFAIK).
(1) Is the 32-bit Versions file used for those as well? I couldn't
find a 64-bit Versions file.
(2) The mips syscalls are reserved in 2.4, but not in
2.5. We might have to exclude mips for now.
A set of patches that defines the syscall entry points is found at
<http://www.suse.de/~agruen/acl/patches/>.
> > Is there a proper header file to declare them?
>
> Christoph send me the following version of a header
We have this in the current header:
> #include <errno.h>
> #ifndef ENOATTR
> # define ENOATTR ENODATA /* No such attribute */
> #endif
Arguably this is the wrong place; ENOATTR should be defined in <errno.h>. I
would prefer a separate error number instead of reusing ENODATA, but several
people have been running against walls, and we failed to get ENOATTR accepted
in the kernel. (There was no feedback at all.)
> , it might go into <sys/xattr.h>.
> Andreas, or what was the proper place for this one?
We were so far using <attr/xattr.h>; that's also what the man pages document.
I'm not sure if moving it to <sys/xattr.h> is a good idea:
(-) it's not a POSIX/etc. standard header, and not portable in any way. We
might get name clashes later.
(-) it breaks existing sources. The number of utilities using it is still
reasonably small, though.
(+) if we move it, we won't run into conflicts with the attr-devel package.
(+) the Irix EA header is <sys/attributes.h>, so it's "closer" to Irix.
So what should be done?
> /* Copyright (C) 2002 Free Software Foundation, Inc.
>
> [...]
>
> /* Set the attribute NAME of the file pointed to by PATH to VALUE (which
> is LEN bytes long). Return 0 on success, -1 for errors. */
^^^ should be SIZE throughout the header file.
> extern int setxattr (const char *__path, const char *__name,
> const void *__value, size_t __size, int __flags)
> __THROW;