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

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

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

cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=23848

            Bug ID: 23848
           Summary: [sparc] Some socket syscalls wrongly assumed to be
                    present
           Product: glibc
           Version: 2.28
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: jsm28 at gcc dot gnu.org
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---
              Host: sparc*-*-linux*

The SPARC kernel-features.h does not undefine some __ASSUME_* macros for socket
syscalls for 32-bit, even though those syscalls (sendmsg recvmsg sendto) were
only added for 32-bit in Linux 4.4 and the macros in question are defined by
default.  Furthermore, the SPARC64 syscalls.list has entries for bind, listen
and setsockopt, despite those syscalls only being added in 4.4, so meaning a
build with post-4.4 headers would assume the syscalls to be present regardless
of --enable-kernel version (this is a SPARC version of bug 19682 which was the
corresponding S/390 issue).

--
You are receiving this mail because:
You are on the CC list for the bug.
Reply | Threaded
Open this post in threaded view
|

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

cvs-commit at gcc dot gnu.org
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 <[hidden email]>
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.
Reply | Threaded
Open this post in threaded view
|

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

cvs-commit at gcc dot gnu.org
In reply to this post by cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=23848

Joseph Myers <jsm28 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |2.29

--- Comment #2 from Joseph Myers <jsm28 at gcc dot gnu.org> ---
Fixed for 2.29.

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