]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
linux: Consolidate Linux getsockopt implementation
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 5 Jul 2021 16:44:26 +0000 (13:44 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 6 Jul 2021 14:45:35 +0000 (11:45 -0300)
This patch consolidates the getsockopt Linux syscall implementation on
sysdeps/unix/sysv/linux/getsockopt.c.  The changes are:

  1. Remove it from auto-generation syscalls.list on all architectures.

  2. Add __ASSUME_GETSOCKOPT_SYSCALL as default and undef if for
     specific kernel versions on some architectures.

This also fix a potential issue where 32-bit time_t ABI should use the
linux getsockopt which overrides the underlying SO_* constants used for
socket timestamping for _TIME_BITS=64.

Checked on x86_64-linux-gnu and i686-linux-gnu.

15 files changed:
sysdeps/unix/sysv/linux/alpha/syscalls.list
sysdeps/unix/sysv/linux/arm/syscalls.list
sysdeps/unix/sysv/linux/generic/syscalls.list
sysdeps/unix/sysv/linux/hppa/syscalls.list
sysdeps/unix/sysv/linux/i386/kernel-features.h
sysdeps/unix/sysv/linux/ia64/syscalls.list
sysdeps/unix/sysv/linux/kernel-features.h
sysdeps/unix/sysv/linux/m68k/kernel-features.h
sysdeps/unix/sysv/linux/microblaze/kernel-features.h
sysdeps/unix/sysv/linux/mips/syscalls.list
sysdeps/unix/sysv/linux/powerpc/kernel-features.h
sysdeps/unix/sysv/linux/s390/kernel-features.h
sysdeps/unix/sysv/linux/sh/kernel-features.h
sysdeps/unix/sysv/linux/sparc/kernel-features.h
sysdeps/unix/sysv/linux/x86_64/syscalls.list

index c848fcbd99bc38f2961c8df350a78f4204256ce5..0a39d0871cbc2e52a5b231f1c986e02cb713cd88 100644 (file)
@@ -8,7 +8,6 @@ getpriority     -       getpriority     i:ii    __getpriority   getpriority
 bind           -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
-getsockopt     -       getsockopt      i:iiiBN __getsockopt    getsockopt
 listen         -       listen          i:ii    __listen        listen
 setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
index 13441f7eb42be2185b96ee520dc9646fe5773bfd..b530057cd8ef049989a1030d518de2366b22f89a 100644 (file)
@@ -25,7 +25,6 @@ personality   EXTRA   personality     Ei:i    __personality   personality
 bind           -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
-getsockopt     -       getsockopt      i:iiiBN __getsockopt    getsockopt
 listen         -       listen          i:ii    __listen        listen
 setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
index ed8b216d47d048e279e6014ac4b12ef1a532ab10..739779757198bf236a99821ccfc7b888332896ff 100644 (file)
@@ -8,5 +8,4 @@ listen          -       listen          i:ii    __listen        listen
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
-getsockopt     -       getsockopt      i:iiiBN __getsockopt    getsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
index cd37573b89e8eead46e66bf6725873e866a340fc..2451cc90f187e1fe5e2acba8d284ced59c632bf1 100644 (file)
@@ -4,7 +4,6 @@
 bind           -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
-getsockopt     -       getsockopt      i:iiiBN __getsockopt    getsockopt
 listen         -       listen          i:ii    __listen        listen
 setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
index 923fa0b99754181e1668eb3787329d18c119f861..a6eca4092d88824df1fbb0afd1d4c1a7d3bc5138 100644 (file)
@@ -23,7 +23,6 @@
 # define __ASSUME_SOCKETPAIR_SYSCALL         1
 # define __ASSUME_BIND_SYSCALL               1
 # define __ASSUME_LISTEN_SYSCALL             1
-# define __ASSUME_GETSOCKOPT_SYSCALL         1
 # define __ASSUME_SETSOCKOPT_SYSCALL         1
 # define __ASSUME_GETSOCKNAME_SYSCALL        1
 # define __ASSUME_GETPEERNAME_SYSCALL        1
@@ -41,6 +40,7 @@
 # undef __ASSUME_CONNECT_SYSCALL
 # undef __ASSUME_RECVFROM_SYSCALL
 # undef __ASSUME_SENDTO_SYSCALL
+# undef __ASSUME_GETSOCKOPT_SYSCALL
 #endif
 
 /* i686 only supports ipc syscall before 5.1.  */
index bd39441d3cbd574a75ee64a0bbf43ba3c43165ce..c0e9ea207cc4eb558162e956a4f349e494afce8c 100644 (file)
@@ -6,7 +6,6 @@ getpriority     -       getpriority     i:ii    __getpriority   getpriority
 bind           -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
-getsockopt     -       getsockopt      i:iiiBN __getsockopt    getsockopt
 listen         -       listen          i:ii    __listen        listen
 setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
index 1680b10ca1b6e9df096498fa196af4694def5d6e..913c3fc222158d5cdb9a0de941e044f44e468a7e 100644 (file)
@@ -77,6 +77,7 @@
 #define __ASSUME_ACCEPT4_SYSCALL       1
 #define __ASSUME_RECVMMSG_SYSCALL      1
 #define __ASSUME_SENDMMSG_SYSCALL      1
+#define __ASSUME_GETSOCKOPT_SYSCALL    1
 
 /* Support for SysV IPC through wired syscalls.  All supported architectures
    either support ipc syscall and/or all the ipc correspondent syscalls.  */
index 46bb9d8b26f44fb21ce376e31e46cad95d6f2c90..e1fa35c7840c69ad5e77896723d8cc4dfa958b55 100644 (file)
@@ -23,7 +23,6 @@
 # define __ASSUME_SOCKETPAIR_SYSCALL         1
 # define __ASSUME_BIND_SYSCALL               1
 # define __ASSUME_LISTEN_SYSCALL             1
-# define __ASSUME_GETSOCKOPT_SYSCALL         1
 # define __ASSUME_SETSOCKOPT_SYSCALL         1
 # define __ASSUME_GETSOCKNAME_SYSCALL        1
 # define __ASSUME_GETPEERNAME_SYSCALL        1
@@ -43,6 +42,7 @@
 # undef __ASSUME_CONNECT_SYSCALL
 # undef __ASSUME_RECVFROM_SYSCALL
 # undef __ASSUME_SENDTO_SYSCALL
+# undef __ASSUME_GETSOCKOPT_SYSCALL
 #endif
 
 /* No support for PI futexes or robust mutexes before 3.10 for m68k.  */
index 69d8ccaa239aeeeb82694e2e0920ee6f22babeef..a09a9ea09d5b258d10d4885d3c0e4c6ddfc1a17a 100644 (file)
@@ -28,7 +28,6 @@
 #define __ASSUME_SEND_SYSCALL          1
 #define __ASSUME_RECV_SYSCALL          1
 #define __ASSUME_SHUTDOWN_SYSCALL      1
-#define __ASSUME_GETSOCKOPT_SYSCALL    1
 #define __ASSUME_SETSOCKOPT_SYSCALL    1
 
 #include_next <kernel-features.h>
index f3621cdd517f4b017c804e08a2675c981fd8c4eb..07e07dec03e54606c3852510bbeccd1b9ad2ae55 100644 (file)
@@ -15,7 +15,6 @@ sysmips               -       sysmips         i:iiii  __sysmips       sysmips
 bind           -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
-getsockopt     -       getsockopt      i:iiiBN __getsockopt    getsockopt
 listen         -       listen          i:ii    __listen        listen
 setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
index c2056959a5bf060efac10add2ade38f55cdd116d..769ef1386d9e48e62952326809828f6f9f622803 100644 (file)
@@ -28,7 +28,6 @@
 #define __ASSUME_SEND_SYSCALL          1
 #define __ASSUME_RECV_SYSCALL          1
 #define __ASSUME_SHUTDOWN_SYSCALL      1
-#define __ASSUME_GETSOCKOPT_SYSCALL    1
 #define __ASSUME_SETSOCKOPT_SYSCALL    1
 
 /* Define this if your 32-bit syscall API requires 64-bit register
index 724f207e9fcba941b5b7d6cc35bdd8f01ee12e19..0221a0e0bcf4b38f3437e18c19003095a11e1045 100644 (file)
@@ -23,7 +23,6 @@
 # define __ASSUME_SOCKETPAIR_SYSCALL         1
 # define __ASSUME_BIND_SYSCALL               1
 # define __ASSUME_LISTEN_SYSCALL             1
-# define __ASSUME_GETSOCKOPT_SYSCALL         1
 # define __ASSUME_SETSOCKOPT_SYSCALL         1
 # define __ASSUME_GETSOCKNAME_SYSCALL        1
 # define __ASSUME_GETPEERNAME_SYSCALL        1
@@ -43,6 +42,7 @@
 # undef __ASSUME_CONNECT_SYSCALL
 # undef __ASSUME_RECVFROM_SYSCALL
 # undef __ASSUME_SENDTO_SYSCALL
+# undef __ASSUME_GETSOCKOPT_SYSCALL
 #endif
 
 /* s390 only supports ipc syscall before 5.1.  */
index 334e69b0c7be7e98ef4f7b7fe9557278b7984229..3b0c38526096300586453439f459f830d84eccdd 100644 (file)
@@ -33,7 +33,6 @@
 #define __ASSUME_SEND_SYSCALL          1
 #define __ASSUME_RECV_SYSCALL          1
 #define __ASSUME_SHUTDOWN_SYSCALL      1
-#define __ASSUME_GETSOCKOPT_SYSCALL    1
 #define __ASSUME_SETSOCKOPT_SYSCALL    1
 
 #include_next <kernel-features.h>
index 7ffafc9fd091485f9f777a56206ebc4762bc3a54..0b105eb8493025baf4343e5aa00d6d3dd7702f2f 100644 (file)
 # undef __ASSUME_CONNECT_SYSCALL
 # undef __ASSUME_RECVFROM_SYSCALL
 # undef __ASSUME_SENDTO_SYSCALL
+# undef __ASSUME_GETSOCKOPT_SYSCALL
 #else
 # define __ASSUME_SOCKET_SYSCALL             1
 # define __ASSUME_SOCKETPAIR_SYSCALL         1
-# define __ASSUME_GETSOCKOPT_SYSCALL         1
 # define __ASSUME_SHUTDOWN_SYSCALL           1
 #endif
 
index d46524eff359f6e8aab3dc17e7eaa241d7f8666a..fceb6d241514c766c1ce0f08ae66cf1d80870dec 100644 (file)
@@ -9,7 +9,6 @@ syscall_clock_gettime   EXTRA   clock_gettime   Ei:ip           __syscall_clock_gettime
 bind           -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
-getsockopt     -       getsockopt      i:iiiBN __getsockopt    getsockopt
 listen         -       listen          i:ii    __listen        listen
 setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown