]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
linux: Consolidate Linux setsockopt implementation
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 5 Jul 2021 13:01:24 +0000 (13:01 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 6 Jul 2021 14:45:35 +0000 (11:45 -0300)
This patch consolidates the setsockopt 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_SETSOCKOPT_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 setsockopt 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 0a39d0871cbc2e52a5b231f1c986e02cb713cd88..cbfd12588b70721bfea70bcea6fdd9fc7944ce1d 100644 (file)
@@ -9,7 +9,6 @@ bind            -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
 listen         -       listen          i:ii    __listen        listen
-setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
 socket         -       socket          i:iii   __socket        socket
 socketpair     -       socketpair      i:iiif  __socketpair    socketpair
index b530057cd8ef049989a1030d518de2366b22f89a..10c3ae9daef6c2f20d14fbc87b1dea8eebc82850 100644 (file)
@@ -26,7 +26,6 @@ bind          -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
 listen         -       listen          i:ii    __listen        listen
-setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
 socket         -       socket          i:iii   __socket        socket
 socketpair     -       socketpair      i:iiif  __socketpair    socketpair
index 739779757198bf236a99821ccfc7b888332896ff..f573f27c8bd385190fd41a18bbbf04b128453443 100644 (file)
@@ -7,5 +7,4 @@ bind            -       bind            i:ipi   __bind          bind
 listen         -       listen          i:ii    __listen        listen
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
-setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
index 2451cc90f187e1fe5e2acba8d284ced59c632bf1..043d884bf96be7b69bb8aee4951825c8cd15a93d 100644 (file)
@@ -5,7 +5,6 @@ bind            -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
 listen         -       listen          i:ii    __listen        listen
-setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
 socket         -       socket          i:iii   __socket        socket
 socketpair     -       socketpair      i:iiif  __socketpair    socketpair
index a6eca4092d88824df1fbb0afd1d4c1a7d3bc5138..8327f822b02d1adf3c4ee405b3dab3ea47cee168 100644 (file)
@@ -23,7 +23,6 @@
 # define __ASSUME_SOCKETPAIR_SYSCALL         1
 # define __ASSUME_BIND_SYSCALL               1
 # define __ASSUME_LISTEN_SYSCALL             1
-# define __ASSUME_SETSOCKOPT_SYSCALL         1
 # define __ASSUME_GETSOCKNAME_SYSCALL        1
 # define __ASSUME_GETPEERNAME_SYSCALL        1
 # define __ASSUME_SHUTDOWN_SYSCALL           1
@@ -41,6 +40,7 @@
 # undef __ASSUME_RECVFROM_SYSCALL
 # undef __ASSUME_SENDTO_SYSCALL
 # undef __ASSUME_GETSOCKOPT_SYSCALL
+# undef __ASSUME_SETSOCKOPT_SYSCALL
 #endif
 
 /* i686 only supports ipc syscall before 5.1.  */
index c0e9ea207cc4eb558162e956a4f349e494afce8c..8aa85fcb0253601f0f5edd181e52eb78016a9034 100644 (file)
@@ -7,7 +7,6 @@ bind            -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
 listen         -       listen          i:ii    __listen        listen
-setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
 socket         -       socket          i:iii   __socket        socket
 socketpair     -       socketpair      i:iiif  __socketpair    socketpair
index 913c3fc222158d5cdb9a0de941e044f44e468a7e..3930e14322494d53c1d16d5085c5dedca3057551 100644 (file)
@@ -78,6 +78,7 @@
 #define __ASSUME_RECVMMSG_SYSCALL      1
 #define __ASSUME_SENDMMSG_SYSCALL      1
 #define __ASSUME_GETSOCKOPT_SYSCALL    1
+#define __ASSUME_SETSOCKOPT_SYSCALL    1
 
 /* Support for SysV IPC through wired syscalls.  All supported architectures
    either support ipc syscall and/or all the ipc correspondent syscalls.  */
index e1fa35c7840c69ad5e77896723d8cc4dfa958b55..70f1154559a9e629fd5f9bc30da4e5ced5d5199e 100644 (file)
@@ -23,7 +23,6 @@
 # define __ASSUME_SOCKETPAIR_SYSCALL         1
 # define __ASSUME_BIND_SYSCALL               1
 # define __ASSUME_LISTEN_SYSCALL             1
-# define __ASSUME_SETSOCKOPT_SYSCALL         1
 # define __ASSUME_GETSOCKNAME_SYSCALL        1
 # define __ASSUME_GETPEERNAME_SYSCALL        1
 # define __ASSUME_SHUTDOWN_SYSCALL           1
@@ -43,6 +42,7 @@
 # undef __ASSUME_RECVFROM_SYSCALL
 # undef __ASSUME_SENDTO_SYSCALL
 # undef __ASSUME_GETSOCKOPT_SYSCALL
+# undef __ASSUME_SETSOCKOPT_SYSCALL
 #endif
 
 /* No support for PI futexes or robust mutexes before 3.10 for m68k.  */
index a09a9ea09d5b258d10d4885d3c0e4c6ddfc1a17a..a8fbc67384d529e907880be37089ed0794fa5096 100644 (file)
@@ -28,7 +28,6 @@
 #define __ASSUME_SEND_SYSCALL          1
 #define __ASSUME_RECV_SYSCALL          1
 #define __ASSUME_SHUTDOWN_SYSCALL      1
-#define __ASSUME_SETSOCKOPT_SYSCALL    1
 
 #include_next <kernel-features.h>
 
index 07e07dec03e54606c3852510bbeccd1b9ad2ae55..d99504774cf77e8a14cd2a28939077f26f67e5b1 100644 (file)
@@ -16,7 +16,6 @@ bind          -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
 listen         -       listen          i:ii    __listen        listen
-setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
 socket         -       socket          i:iii   __socket        socket
 socketpair     -       socketpair      i:iiif  __socketpair    socketpair
index 769ef1386d9e48e62952326809828f6f9f622803..6c04e187ced7b5587367ecc027cc18ff655e5816 100644 (file)
@@ -28,7 +28,6 @@
 #define __ASSUME_SEND_SYSCALL          1
 #define __ASSUME_RECV_SYSCALL          1
 #define __ASSUME_SHUTDOWN_SYSCALL      1
-#define __ASSUME_SETSOCKOPT_SYSCALL    1
 
 /* Define this if your 32-bit syscall API requires 64-bit register
    pairs to start with an even-number register.  */
index 0221a0e0bcf4b38f3437e18c19003095a11e1045..4757e9eb02a63c0620c097ece3cd888691e81aee 100644 (file)
@@ -23,7 +23,6 @@
 # define __ASSUME_SOCKETPAIR_SYSCALL         1
 # define __ASSUME_BIND_SYSCALL               1
 # define __ASSUME_LISTEN_SYSCALL             1
-# define __ASSUME_SETSOCKOPT_SYSCALL         1
 # define __ASSUME_GETSOCKNAME_SYSCALL        1
 # define __ASSUME_GETPEERNAME_SYSCALL        1
 # define __ASSUME_SHUTDOWN_SYSCALL           1
@@ -43,6 +42,7 @@
 # undef __ASSUME_RECVFROM_SYSCALL
 # undef __ASSUME_SENDTO_SYSCALL
 # undef __ASSUME_GETSOCKOPT_SYSCALL
+# undef __ASSUME_SETSOCKOPT_SYSCALL
 #endif
 
 /* s390 only supports ipc syscall before 5.1.  */
index 3b0c38526096300586453439f459f830d84eccdd..15f5cc2c85349afca297173d359fcfa3229196ae 100644 (file)
@@ -33,7 +33,6 @@
 #define __ASSUME_SEND_SYSCALL          1
 #define __ASSUME_RECV_SYSCALL          1
 #define __ASSUME_SHUTDOWN_SYSCALL      1
-#define __ASSUME_SETSOCKOPT_SYSCALL    1
 
 #include_next <kernel-features.h>
 
index 0b105eb8493025baf4343e5aa00d6d3dd7702f2f..2c28393647ae49bf1b5799545f7ce26829fa5f40 100644 (file)
@@ -39,6 +39,7 @@
 # undef __ASSUME_RECVFROM_SYSCALL
 # undef __ASSUME_SENDTO_SYSCALL
 # undef __ASSUME_GETSOCKOPT_SYSCALL
+# undef __ASSUME_SETSOCKOPT_SYSCALL
 #else
 # define __ASSUME_SOCKET_SYSCALL             1
 # define __ASSUME_SOCKETPAIR_SYSCALL         1
@@ -49,7 +50,6 @@
 #if __LINUX_KERNEL_VERSION >= 0x040400
 # define __ASSUME_BIND_SYSCALL               1
 # define __ASSUME_LISTEN_SYSCALL             1
-# define __ASSUME_SETSOCKOPT_SYSCALL         1
 #endif
 
 #ifdef __arch64__
index fceb6d241514c766c1ce0f08ae66cf1d80870dec..4ce5913a86a7e6fa46de7ff16f860bbec8cc501f 100644 (file)
@@ -10,7 +10,6 @@ bind          -       bind            i:ipi   __bind          bind
 getpeername    -       getpeername     i:ipp   __getpeername   getpeername
 getsockname    -       getsockname     i:ipp   __getsockname   getsockname
 listen         -       listen          i:ii    __listen        listen
-setsockopt     -       setsockopt      i:iiibn __setsockopt    setsockopt
 shutdown       -       shutdown        i:ii    __shutdown      shutdown
 socket         -       socket          i:iii   __socket        socket
 socketpair     -       socketpair      i:iiif  __socketpair    socketpair