On Mon, 05 Jul 2021 15:42:27 +0200 Florian Weimer via Libc-alpha wrote: > --- > socket/sys/socket.h | 13 > +++++++++++++ sysdeps/unix/sysv/linux/Versions | > 1 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 1 + > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 1 + > sysdeps/unix/sysv/linux/arm/syscalls.list | 2 +- > sysdeps/unix/sysv/linux/csky/libc.abilist | 1 + > sysdeps/unix/sysv/linux/generic/syscalls.list | 2 +- > sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + > sysdeps/unix/sysv/linux/hppa/syscalls.list | 4 ++-- > sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + > sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + > sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + > sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 1 + > sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 1 + > .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + > .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + > .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + > sysdeps/unix/sysv/linux/mips/syscalls.list | 2 +- > sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + > .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + > .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + > sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + > sysdeps/unix/sysv/linux/setsockopt.c | 3 +++ > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 1 + > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 1 + > sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + > 26 files changed, 41 insertions(+), 5 deletions(-) > > diff --git a/socket/sys/socket.h b/socket/sys/socket.h > index b37c87e7df..bd14e7e3a5 100644 > --- a/socket/sys/socket.h > +++ b/socket/sys/socket.h > @@ -273,8 +273,21 @@ extern int __getsockopt64 (int __fd, int > __level, int __optname, /* Set socket FD's option OPTNAME at protocol > level LEVEL to *OPTVAL (which is OPTLEN bytes long). > Returns 0 on success, -1 for errors. */ > +#ifndef __USE_TIME_BITS64 > extern int setsockopt (int __fd, int __level, int __optname, > const void *__optval, socklen_t __optlen) > __THROW; +#else > +# ifdef __REDIRECT > +extern int __REDIRECT_NTH (setsockopt, > + (int __fd, int __level, int __optname, > + const void *__optval, socklen_t > __optlen), > + __setsockopt64); > +# else > +extern int __setsockopt64 (int __fd, int __level, int __optname, > + const void *__optval, socklen_t __optlen) > __THROW; Here I also wonder if this declaration shall not be outside the # ifdef __REDIRECT ? >+# define setsockopt __setsockopt64 > +# endif > +#endif > > > /* Prepare to accept connections on socket FD. > diff --git a/sysdeps/unix/sysv/linux/Versions > b/sysdeps/unix/sysv/linux/Versions index b7d2a2ee4d..965d7d1d15 100644 > --- a/sysdeps/unix/sysv/linux/Versions > +++ b/sysdeps/unix/sysv/linux/Versions > @@ -270,6 +270,7 @@ libc { > __sendmmsg64; > __sendmsg64; > __setitimer64; > + __setsockopt64; > __settimeofday64; > __shmctl64; > __sigtimedwait64; > diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist > b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index > 94481027d0..f371b09561 100644 --- > a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ > b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -273,6 +273,7 @@ > GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist > b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index > e4d514af90..79d79fad05 100644 --- > a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ > b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -270,6 +270,7 @@ > GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/arm/syscalls.list > b/sysdeps/unix/sysv/linux/arm/syscalls.list index > aad60a8871..2e875d1049 100644 --- > a/sysdeps/unix/sysv/linux/arm/syscalls.list +++ > b/sysdeps/unix/sysv/linux/arm/syscalls.list @@ -27,7 +27,7 @@ > getpeername - getpeername i:ipp > __getpeername getpeername getsockname - > getsockname i:ipp __getsockname getsockname > getsockopt - getsockopt i:iiiBN > __getsockopt getsockopt __getsockopt64 listen > - listen i:ii __listen listen > -setsockopt - setsockopt i:iiibn > __setsockopt setsockopt +setsockopt - > setsockopt i:iiibn __setsockopt setsockopt > __setsockopt64 shutdown - shutdown i:ii > __shutdown shutdown socket - > socket i:iii __socket socket > socketpair - socketpair i:iiif > __socketpair socketpair diff --git > a/sysdeps/unix/sysv/linux/csky/libc.abilist > b/sysdeps/unix/sysv/linux/csky/libc.abilist index > f4471af348..c383be1fe6 100644 --- > a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ > b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2405,6 +2405,7 @@ > GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F GLIBC_2.34 > __sendmsg64 F GLIBC_2.34 __setitimer64 F +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F GLIBC_2.34 __shmctl64 F GLIBC_2.34 > __sigtimedwait64 F diff --git > a/sysdeps/unix/sysv/linux/generic/syscalls.list > b/sysdeps/unix/sysv/linux/generic/syscalls.list index > e58eff5bd3..062bf5f92e 100644 --- > a/sysdeps/unix/sysv/linux/generic/syscalls.list +++ > b/sysdeps/unix/sysv/linux/generic/syscalls.list @@ -7,6 +7,6 @@ > 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 +setsockopt - > setsockopt i:iiibn __setsockopt setsockopt > __setsockopt64 getsockopt - getsockopt > i:iiiBN __getsockopt getsockopt __getsockopt64 > shutdown - shutdown i:ii > __shutdown shutdown diff --git > a/sysdeps/unix/sysv/linux/hppa/libc.abilist > b/sysdeps/unix/sysv/linux/hppa/libc.abilist index > 87859d9399..ebfa48dc36 100644 --- > a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ > b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2358,6 +2358,7 @@ > GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F GLIBC_2.34 > __sendmsg64 F GLIBC_2.34 __setitimer64 F +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F GLIBC_2.34 __shmctl64 F GLIBC_2.34 > __sigtimedwait64 F diff --git > a/sysdeps/unix/sysv/linux/hppa/syscalls.list > b/sysdeps/unix/sysv/linux/hppa/syscalls.list index > 2234f4ac07..0f6f735955 100644 --- > a/sysdeps/unix/sysv/linux/hppa/syscalls.list +++ > b/sysdeps/unix/sysv/linux/hppa/syscalls.list @@ -1,12 +1,12 @@ # File > name Caller Syscall name # args Strong > name Weak names - +soc # proper socket implementations: This `+soc` seems to be not needed ? > bind - bind i:ipi > __bind bind getpeername - > getpeername i:ipp __getpeername getpeername > getsockname - getsockname i:ipp > __getsockname getsockname getsockopt - > getsockopt i:iiiBN __getsockopt getsockopt > __getsockopt64 listen - listen > i:ii __listen listen -setsockopt - > setsockopt i:iiibn __setsockopt setsockopt > +setsockopt - setsockopt i:iiibn > __setsockopt setsockopt __setsockopt64 shutdown > - shutdown i:ii __shutdown shutdown > socket - socket i:iii > __socket socket socketpair - socketpair > i:iiif __socketpair socketpair diff --git > a/sysdeps/unix/sysv/linux/i386/libc.abilist > b/sysdeps/unix/sysv/linux/i386/libc.abilist index > 1f411505ce..109f2276d0 100644 --- > a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ > b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2542,6 +2542,7 @@ > GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F GLIBC_2.34 > __sendmsg64 F GLIBC_2.34 __setitimer64 F +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F GLIBC_2.34 __shmctl64 F GLIBC_2.34 > __sigtimedwait64 F diff --git > a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index > 5aba8397e0..04f73b235f 100644 --- > a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ > b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -274,6 +274,7 > @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F GLIBC_2.34 > __sendmsg64 F GLIBC_2.34 __setitimer64 F +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F GLIBC_2.34 __shmctl64 F GLIBC_2.34 > __sigtimedwait64 F diff --git > a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index > 318c50e3fa..26eedca03b 100644 --- > a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ > b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2485,6 +2485,7 > @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F GLIBC_2.34 > __sendmsg64 F GLIBC_2.34 __setitimer64 F +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index > b47cf67949..7f824392fc 100644 --- > a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ > b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2456,6 > +2456,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index > a6e584ae98..1c23bedc52 100644 --- > a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++ > b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -2453,6 > +2453,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index > f4a6f9ecc5..684c5759b3 100644 --- > a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ > b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2450,6 > +2450,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index > 2888edd627..2bb3fdca5c 100644 --- > a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ > b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -2448,6 > +2448,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index > f7a731692b..18cce12763 100644 --- > a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ > b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2456,6 > +2456,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/mips/syscalls.list > b/sysdeps/unix/sysv/linux/mips/syscalls.list index > 13a658fb89..c6f756c7c2 100644 --- > a/sysdeps/unix/sysv/linux/mips/syscalls.list +++ > b/sysdeps/unix/sysv/linux/mips/syscalls.list @@ -17,7 +17,7 @@ > getpeername - getpeername i:ipp > __getpeername getpeername getsockname - > getsockname i:ipp __getsockname getsockname > getsockopt - getsockopt i:iiiBN > __getsockopt getsockopt __getsockopt64 listen > - listen i:ii __listen listen > -setsockopt - setsockopt i:iiibn > __setsockopt setsockopt +setsockopt - > setsockopt i:iiibn __setsockopt setsockopt > __setsockopt64 shutdown - shutdown i:ii > __shutdown shutdown socket - > socket i:iii __socket socket > socketpair - socketpair i:iiif > __socketpair socketpair diff --git > a/sysdeps/unix/sysv/linux/nios2/libc.abilist > b/sysdeps/unix/sysv/linux/nios2/libc.abilist index > 5acbc04c87..e12ed083da 100644 --- > a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ > b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2495,6 +2495,7 @@ > GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F GLIBC_2.34 > __sendmsg64 F GLIBC_2.34 __setitimer64 F +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F GLIBC_2.34 __shmctl64 F GLIBC_2.34 > __sigtimedwait64 F diff --git > a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index > 1f3058de78..340695d018 100644 --- > a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ > b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ > -2512,6 +2512,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 > __sendmmsg64 F GLIBC_2.34 __sendmsg64 F GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F GLIBC_2.34 __settimeofday64 F GLIBC_2.34 > __shmctl64 F GLIBC_2.34 __sigtimedwait64 F > diff --git > a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index > 9584447358..588671f098 100644 --- > a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ > b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ > -2545,6 +2545,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 > __sendmmsg64 F GLIBC_2.34 __sendmsg64 F GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index > dff704b6b9..66aae5a9bd 100644 --- > a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ > b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2510,6 > +2510,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/setsockopt.c > b/sysdeps/unix/sysv/linux/setsockopt.c index a4780a9d33..556f7105d0 > 100644 --- a/sysdeps/unix/sysv/linux/setsockopt.c > +++ b/sysdeps/unix/sysv/linux/setsockopt.c > @@ -100,3 +100,6 @@ setsockopt (int fd, int level, int optname, const > void *optval, socklen_t len) return r; > } > weak_alias (setsockopt, __setsockopt) > +#if __TIMESIZE != 64 > +weak_alias (__setsockopt, __setsockopt64) > +#endif > diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist > b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index > 85fc46ab7e..12660470fa 100644 --- > a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ > b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -2365,6 +2365,7 @@ > GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist > b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index > ebc2a90dac..119c2caddc 100644 --- > a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ > b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2362,6 +2362,7 @@ > GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index > 8a1d118c67..124f3e7e42 100644 --- > a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ > b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2505,6 > +2505,7 @@ GLIBC_2.34 __semtimedop64 F GLIBC_2.34 __sendmmsg64 F > GLIBC_2.34 __sendmsg64 F > GLIBC_2.34 __setitimer64 F > +GLIBC_2.34 __setsockopt64 F > GLIBC_2.34 __settimeofday64 F > GLIBC_2.34 __shmctl64 F > GLIBC_2.34 __sigtimedwait64 F Reviewed-by: Lukasz Majewski Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de