This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/23848] [sparc] Some socket syscalls wrongly assumed to be present


https://sourceware.org/bugzilla/show_bug.cgi?id=23848

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  daea71c2e4234e8c7ed78ce3d980b25f63744a14 (commit)
      from  8e3c00db16fcedea0ea47d93c2acb6d7d5ba9164 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=daea71c2e4234e8c7ed78ce3d980b25f63744a14

commit daea71c2e4234e8c7ed78ce3d980b25f63744a14
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Nov 1 16:30:15 2018 +0000

    Update and correct SPARC configuration for supported socket syscalls (bug
23848).

    Looking at kernel-features.h files, I saw that SPARC was missing full
    information on when it gained separate socket syscalls.

    This patch adds such information to the SPARC kernel-features.h.  It
    also corrects what appear to be bugs in the existing code (that would
    cause syscalls to be assumed to be present when not actually present).
    Various __ASSUME_* macros, defined by default, were not undefined for
    32-bit despite those syscalls only being added for 32-bit in Linux
    4.4.  Some syscalls were used in the SPARC64 syscalls.list but only
    added in 4.4; this was harmless before the __NR_* macros were defined
    at all, but once the macros were defined it means a build with
    post-4.4 headers would assume the syscalls to be present regardless of
    --enable-kernel version.  Then, various __ASSUME_* macros were
    previously not defined in cases where they could be defined (this part
    of the patch is just an optimization, not a bug fix).

    Note the observation in a comment in the patch that even the latest
    Linux kernel for SPARC does not have getpeername and getsockname
    syscalls in the compat syscall table for 32-bit binaries on 64-bit
    kernels (so glibc can't assume those syscalls to be present for 32-bit
    at all, although the 32-bit syscall table gained them in 4.4).

    Tested (compilation only) for SPARC with build-many-glibcs.py.

        [BZ #23848]
        * sysdeps/unix/sysv/linux/sparc/kernel-features.h [!__arch64__ &&
        __LINUX_KERNEL_VERSION < 0x040400] (__ASSUME_SENDMSG_SYSCALL):
        Undefine.
        [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
        (__ASSUME_RECVMSG_SYSCALL): Likewise.
        [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
        (__ASSUME_SENDTO_SYSCALL): Likewise.
        [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
        (__ASSUME_ACCEPT_SYSCALL): Undefine under this condition, not just
        [!__arch64__].
        [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
        (__ASSUME_CONNECT_SYSCALL): Likewise.
        [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
        (__ASSUME_RECVFROM_SYSCALL): Likewise.
        [__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_BIND_SYSCALL):
        Define.
        [__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_LISTEN_SYSCALL):
        Likewise.
        [__LINUX_KERNEL_VERSION >= 0x040400]
        (__ASSUME_SETSOCKOPT_SYSCALL): Likewise.
        * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (bind):
        Remove.
        (listen): Likewise.
        (setsockopt): Likewise.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   28 ++++++++++++++++++++
 sysdeps/unix/sysv/linux/sparc/kernel-features.h    |   25 +++++++++++++++++-
 .../unix/sysv/linux/sparc/sparc64/syscalls.list    |    3 --
 3 files changed, 52 insertions(+), 4 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]