This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Consensus around kernel syscall wrappers?
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: Mike Frysinger <vapier at gentoo dot org>, Roland McGrath <roland at hack dot frob dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Fri, 14 Aug 2015 15:57:45 -0400
- Subject: Re: Consensus around kernel syscall wrappers?
- Authentication-results: sourceware.org; auth=none
- References: <55CCF8C6 dot 3060007 at redhat dot com> <alpine dot DEB dot 2 dot 10 dot 1508132025440 dot 7713 at digraph dot polyomino dot org dot uk> <55CDF7A4 dot 50905 at redhat dot com> <alpine dot DEB dot 2 dot 10 dot 1508141528371 dot 16651 at digraph dot polyomino dot org dot uk>
On 08/14/2015 11:33 AM, Joseph Myers wrote:
> On Fri, 14 Aug 2015, Carlos O'Donell wrote:
>
>> (a) All Linux syscalls that are considered useful for the OS-independent
>> GNU API should be added immediately.
>
> With documentation and testcases, and consensus is needed in each case on
> the header that has the declaration, the types involved, conventions for
> errno / cancellation, etc.
Agreed. There is much work to be done for each syscall to be added, but that
can progress normally just like adding any new API. The most difficult thing
is probably arguing that it *should* be included in the OS-independent GNU API.
>> (b) All Linux syscalls that are not considered useful for the OS-independent
>> GNU API should be added to an AS_NEEDED library named appropriately
>> e.g. libinux-syscalls.so.N, where this library is part of the implementation
>> and must be updated in lock-step with the implementation to ensure that
>> cancellation and other things are kept synchronized. It should not be a static
>> library to avoid security issues and to allow it to be updated.
>
> With the same requirements as above on documentation, testcases etc.,
> though there might be a bit more of a case here for the documentation just
> saying it calls a particular Linux syscall and giving the types / error
> handling / cancellation information.
>
> (The absolute minimum for a testcase verifies that a call compiles and
> links. Cf. <https://sourceware.org/ml/libc-alpha/2013-07/msg00386.html>
> regarding existing interfaces that aren't even tested to that minimal
> extent.)
Agreed again. I Think that basically (a) and (b) are the same in terms of
thoroughness of documentation, testing, etc. It's just that with (b) the
thorough argument of inclusion in the OS-independent GNU API is missing.
The very fact that linux-api decided on the syscall is sufficient to get it
into the libinux-syscalls.so.
Cheers,
Carlos.