[lkml]   [2018]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Official Linux system wrapper library?
    [adding in glibc folk for comment]

    On 11/10/18 7:52 PM, Daniel Colascione wrote:
    > Now that glibc is basically not adding any new system call wrappers,
    > how about publishing an "official" system call glue library as part of
    > the kernel distribution, along with the uapi headers? I don't think
    > it's reasonable to expect people to keep using syscall(__NR_XXX) for
    > all new functionality, especially as the system grows increasingly
    > sophisticated capabilities (like the new mount API, and hopefully the
    > new process API) outside the strictures of the POSIX process.

    As a quick glance at the glibc NEWS file shows, the above is not
    quite true:

    Version 2.28
    * The renameat2 function has been added...
    * The statx function has been added...

    Version 2.27
    * Support for memory protection keys was added. The <sys/mman.h> header now
    declares the functions pkey_alloc, pkey_free, pkey_mprotect...
    * The copy_file_range function was added.

    Version 2.26
    * New wrappers for the Linux-specific system calls preadv2 and pwritev2.

    Version 2.25
    * The getrandom [function] have been added.

    I make that 11 system call wrappers added in the last 2 years.

    That said, of course, there are many system calls that lack wrappers [1],
    and the use of syscall() is undesirable.

    The glibc folk do have their reasons for being conservative around
    adding system calls ( However, at
    this point, I think one of the limiting factors is developer time
    on the glibc project. Quite possibly, they just need some help to
    add more (properly designed) wrappers faster.



    [1] is a
    longstanding example.

    Michael Kerrisk
    Linux man-pages maintainer;
    Linux/UNIX System Programming Training:

     \ /
      Last update: 2018-11-11 07:56    [W:14.003 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site