diff options
author | Heptazhou | 2022-02-24 22:50:59 +0000 |
---|---|---|
committer | Heptazhou | 2022-02-24 22:50:59 +0000 |
commit | f891c834a3f45b2ebd8496039d38e629fba72ef1 (patch) | |
tree | 1b45a202b1f6762c221338ab22b57c058b2d3a03 /glibc-linux4.patch | |
parent | 5fd83607c9d6316161927b6cafb248bc2b9cea04 (diff) | |
download | aur-f891c834a3f45b2ebd8496039d38e629fba72ef1.tar.gz |
glibc-linux4 v2.35
Diffstat (limited to 'glibc-linux4.patch')
-rw-r--r-- | glibc-linux4.patch | 317 |
1 files changed, 317 insertions, 0 deletions
diff --git a/glibc-linux4.patch b/glibc-linux4.patch new file mode 100644 index 000000000000..87d87982ff07 --- /dev/null +++ b/glibc-linux4.patch @@ -0,0 +1,317 @@ +diff --git a/nptl/futex-internal.c b/nptl/futex-internal.c +index 7ec228e8fb..e7d5058eeb 100644 +--- a/nptl/futex-internal.c ++++ b/nptl/futex-internal.c +@@ -54,13 +54,9 @@ __futex_abstimed_wait_common64 (unsigned int* futex_word, + int private, bool cancel) + { + if (cancel) +- return INTERNAL_SYSCALL_CANCEL (futex_time64, futex_word, op, expected, +- abstime, NULL /* Unused. */, +- FUTEX_BITSET_MATCH_ANY); ++ return -ENOSYS; // INTERNAL_SYSCALL_CANCEL (futex_time64, futex_word, op, expected, abstime, NULL /* Unused. */, FUTEX_BITSET_MATCH_ANY); + else +- return INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op, expected, +- abstime, NULL /* Ununsed. */, +- FUTEX_BITSET_MATCH_ANY); ++ return -ENOSYS; // INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op, expected, abstime, NULL /* Ununsed. */, FUTEX_BITSET_MATCH_ANY); + } + + static int +diff --git a/sysdeps/unix/sysv/linux/clock_adjtime.c b/sysdeps/unix/sysv/linux/clock_adjtime.c +index 5ded82f506..0955222329 100644 +--- a/sysdeps/unix/sysv/linux/clock_adjtime.c ++++ b/sysdeps/unix/sysv/linux/clock_adjtime.c +@@ -29,7 +29,8 @@ __clock_adjtime64 (const clockid_t clock_id, struct __timex64 *tx64) + #ifndef __NR_clock_adjtime64 + # define __NR_clock_adjtime64 __NR_clock_adjtime + #endif +- int r = INLINE_SYSCALL_CALL (clock_adjtime64, clock_id, tx64); ++ int r = -1; // INLINE_SYSCALL_CALL (clock_adjtime64, clock_id, tx64); ++ errno = ENOSYS; + #ifndef __ASSUME_TIME64_SYSCALLS + if (r >= 0 || errno != ENOSYS) + return r; +diff --git a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c +index 5534127ed7..7ec0690061 100644 +--- a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c ++++ b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c +@@ -34,7 +34,7 @@ __clock_getcpuclockid (pid_t pid, clockid_t *clock_id) + #ifndef __NR_clock_getres_time64 + # define __NR_clock_getres_time64 __NR_clock_getres + #endif +- int r = INTERNAL_SYSCALL_CALL (clock_getres_time64, pidclock, NULL); ++ int r = -ENOSYS; // INTERNAL_SYSCALL_CALL (clock_getres_time64, pidclock, NULL); + + #ifndef __ASSUME_TIME64_SYSCALLS + if (r != 0 && r == -ENOSYS) +diff --git a/sysdeps/unix/sysv/linux/clock_getres.c b/sysdeps/unix/sysv/linux/clock_getres.c +index 38304db3cc..2b64c53d9f 100644 +--- a/sysdeps/unix/sysv/linux/clock_getres.c ++++ b/sysdeps/unix/sysv/linux/clock_getres.c +@@ -35,9 +35,9 @@ __clock_getres64 (clockid_t clock_id, struct __timespec64 *res) + #endif + + #ifdef HAVE_CLOCK_GETRES64_VSYSCALL +- r = INLINE_VSYSCALL (clock_getres_time64, 2, clock_id, res); ++ r = ENOSYS; // INLINE_VSYSCALL (clock_getres_time64, 2, clock_id, res); + #else +- r = INLINE_SYSCALL_CALL (clock_getres_time64, clock_id, res); ++ r = ENOSYS; // INLINE_SYSCALL_CALL (clock_getres_time64, clock_id, res); + #endif + if (r == 0 || errno != ENOSYS) + return r; +diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c +index befe6ecb8c..f9692363c6 100644 +--- a/sysdeps/unix/sysv/linux/clock_nanosleep.c ++++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c +@@ -50,8 +50,7 @@ __clock_nanosleep_time64 (clockid_t clock_id, int flags, + #else + if (!in_time_t_range (req->tv_sec)) + { +- r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, clock_id, flags, +- req, rem); ++ r = -ENOSYS; // INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, clock_id, flags, req, rem); + if (r == -ENOSYS) + r = -EOVERFLOW; + } +diff --git a/sysdeps/unix/sysv/linux/clock_settime.c b/sysdeps/unix/sysv/linux/clock_settime.c +index 2a32e2eb13..0c15ef3260 100644 +--- a/sysdeps/unix/sysv/linux/clock_settime.c ++++ b/sysdeps/unix/sysv/linux/clock_settime.c +@@ -35,7 +35,8 @@ __clock_settime64 (clockid_t clock_id, const struct __timespec64 *tp) + #ifndef __NR_clock_settime64 + # define __NR_clock_settime64 __NR_clock_settime + #endif +- int ret = INLINE_SYSCALL_CALL (clock_settime64, clock_id, tp); ++ int ret = -1; // INLINE_SYSCALL_CALL (clock_settime64, clock_id, tp); ++ errno = ENOSYS; + + #ifndef __ASSUME_TIME64_SYSCALLS + if (ret == 0 || errno != ENOSYS) +diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c +index 59ee4b6f8b..e80f431f95 100644 +--- a/sysdeps/unix/sysv/linux/faccessat.c ++++ b/sysdeps/unix/sysv/linux/faccessat.c +@@ -26,7 +26,8 @@ + int + __faccessat (int fd, const char *file, int mode, int flag) + { +- int ret = INLINE_SYSCALL_CALL (faccessat2, fd, file, mode, flag); ++ int ret = -1; // INLINE_SYSCALL_CALL (faccessat2, fd, file, mode, flag); ++ errno = ENOSYS; + #if __ASSUME_FACCESSAT2 + return ret; + #else +diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h +index 74adc3956b..da28b563c7 100644 +--- a/sysdeps/unix/sysv/linux/kernel-features.h ++++ b/sysdeps/unix/sysv/linux/kernel-features.h +@@ -203,7 +203,7 @@ + #if __LINUX_KERNEL_VERSION >= 0x050100 \ + || __WORDSIZE == 64 \ + || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) +-# define __ASSUME_TIME64_SYSCALLS 1 ++# define NO_ASSUME_TIME64_SYSCALLS 1 + #endif + + /* Linux waitid prior kernel 5.4 does not support waiting for the current +@@ -215,7 +215,7 @@ + /* The faccessat2 system call was introduced across all architectures + in Linux 5.8. */ + #if __LINUX_KERNEL_VERSION >= 0x050800 +-# define __ASSUME_FACCESSAT2 1 ++# define __ASSUME_FACCESSAT2 0 + #else + # define __ASSUME_FACCESSAT2 0 + #endif +diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c +index 834cd7a484..59554e535e 100644 +--- a/sysdeps/unix/sysv/linux/mq_timedreceive.c ++++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c +@@ -39,8 +39,8 @@ ___mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len + && !in_time_t_range (abs_timeout->tv_sec); + if (need_time64) + { +- int r = SYSCALL_CANCEL (mq_timedreceive_time64, mqdes, msg_ptr, msg_len, +- msg_prio, abs_timeout); ++ int r = -1; // SYSCALL_CANCEL (mq_timedreceive_time64, mqdes, msg_ptr, msg_len, msg_prio, abs_timeout); ++ errno = ENOSYS; + if (r == 0 || errno != ENOSYS) + return r; + __set_errno (EOVERFLOW); +diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c +index 3ca5050976..753ffbb328 100644 +--- a/sysdeps/unix/sysv/linux/mq_timedsend.c ++++ b/sysdeps/unix/sysv/linux/mq_timedsend.c +@@ -39,8 +39,8 @@ ___mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len, + && !in_time_t_range (abs_timeout->tv_sec); + if (need_time64) + { +- int r = SYSCALL_CANCEL (mq_timedsend_time64, mqdes, msg_ptr, msg_len, +- msg_prio, abs_timeout); ++ int r = -1; // SYSCALL_CANCEL (mq_timedsend_time64, mqdes, msg_ptr, msg_len, msg_prio, abs_timeout); ++ errno = ENOSYS; + if (r == 0 || errno != ENOSYS) + return r; + __set_errno (EOVERFLOW); +diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c +index 1105e29b00..3d5d7e3157 100644 +--- a/sysdeps/unix/sysv/linux/ppoll.c ++++ b/sysdeps/unix/sysv/linux/ppoll.c +@@ -46,8 +46,8 @@ __ppoll64 (struct pollfd *fds, nfds_t nfds, const struct __timespec64 *timeout, + bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + if (need_time64) + { +- ret = SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask, +- __NSIG_BYTES); ++ ret = -1; // SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask, __NSIG_BYTES); ++ errno = ENOSYS; + if (ret == 0 || errno != ENOSYS) + return ret; + __set_errno (EOVERFLOW); +diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c +index eba1c111f8..2a522d4e80 100644 +--- a/sysdeps/unix/sysv/linux/pselect.c ++++ b/sysdeps/unix/sysv/linux/pselect.c +@@ -59,8 +59,8 @@ __pselect64 (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, + bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + if (need_time64) + { +- int r = pselect64_syscall (nfds, readfds, writefds, exceptfds, timeout, +- sigmask); ++ int r = -1; // pselect64_syscall (nfds, readfds, writefds, exceptfds, timeout, sigmask); ++ errno = ENOSYS; + if (r == 0 || errno != ENOSYS) + return r; + __set_errno (EOVERFLOW); +diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c +index d9664d61c4..1775c1d38f 100644 +--- a/sysdeps/unix/sysv/linux/recvmmsg.c ++++ b/sysdeps/unix/sysv/linux/recvmmsg.c +@@ -26,8 +26,8 @@ recvmmsg_syscall (int fd, struct mmsghdr *vmessages, unsigned int vlen, + #ifndef __NR_recvmmsg_time64 + # define __NR_recvmmsg_time64 __NR_recvmmsg + #endif +- int r = SYSCALL_CANCEL (recvmmsg_time64, fd, vmessages, vlen, flags, +- timeout); ++ int r = -1; // SYSCALL_CANCEL (recvmmsg_time64, fd, vmessages, vlen, flags, timeout); ++ errno = ENOSYS; + #ifndef __ASSUME_TIME64_SYSCALLS + if (r >= 0 || errno != ENOSYS) + return r; +diff --git a/sysdeps/unix/sysv/linux/sched_rr_gi.c b/sysdeps/unix/sysv/linux/sched_rr_gi.c +index 19abc995b9..2426cba814 100644 +--- a/sysdeps/unix/sysv/linux/sched_rr_gi.c ++++ b/sysdeps/unix/sysv/linux/sched_rr_gi.c +@@ -28,7 +28,8 @@ __sched_rr_get_interval64 (pid_t pid, struct __timespec64 *tp) + #ifndef __NR_sched_rr_get_interval_time64 + # define __NR_sched_rr_get_interval_time64 __NR_sched_rr_get_interval + #endif +- int ret = INLINE_SYSCALL_CALL (sched_rr_get_interval_time64, pid, tp); ++ int ret = -1; // INLINE_SYSCALL_CALL (sched_rr_get_interval_time64, pid, tp); ++ errno = ENOSYS; + #ifndef __ASSUME_TIME64_SYSCALLS + if (ret == 0 || errno != ENOSYS) + return ret; +diff --git a/sysdeps/unix/sysv/linux/select.c b/sysdeps/unix/sysv/linux/select.c +index 3bc8b0cc3d..c197545c31 100644 +--- a/sysdeps/unix/sysv/linux/select.c ++++ b/sysdeps/unix/sysv/linux/select.c +@@ -75,8 +75,8 @@ __select64 (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, + bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + if (need_time64) + { +- int r = SYSCALL_CANCEL (pselect6_time64, nfds, readfds, writefds, +- exceptfds, pts64, NULL); ++ int r = -1; // SYSCALL_CANCEL (pselect6_time64, nfds, readfds, writefds, exceptfds, pts64, NULL); ++ errno = ENOSYS; + if ((r >= 0 || errno != ENOSYS) && timeout != NULL) + { + TIMESPEC_TO_TIMEVAL (timeout, &ts64); +diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c +index 38a401bb6f..8f2e7ea99b 100644 +--- a/sysdeps/unix/sysv/linux/semtimedop.c ++++ b/sysdeps/unix/sysv/linux/semtimedop.c +@@ -45,7 +45,8 @@ __semtimedop64 (int semid, struct sembuf *sops, size_t nsops, + bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + if (need_time64) + { +- int r = semtimedop_syscall (semid, sops, nsops, timeout); ++ int r = -1; // semtimedop_syscall (semid, sops, nsops, timeout); ++ errno = ENOSYS; + if (r == 0 || errno != ENOSYS) + return r; + __set_errno (EOVERFLOW); +diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c +index 3ac39979da..aca910450e 100644 +--- a/sysdeps/unix/sysv/linux/timer_gettime.c ++++ b/sysdeps/unix/sysv/linux/timer_gettime.c +@@ -32,7 +32,8 @@ ___timer_gettime64 (timer_t timerid, struct __itimerspec64 *value) + # ifndef __NR_timer_gettime64 + # define __NR_timer_gettime64 __NR_timer_gettime + # endif +- int ret = INLINE_SYSCALL_CALL (timer_gettime64, ktimerid, value); ++ int ret = -1; // INLINE_SYSCALL_CALL (timer_gettime64, ktimerid, value); ++ errno = ENOSYS; + # ifndef __ASSUME_TIME64_SYSCALLS + if (ret == 0 || errno != ENOSYS) + return ret; +diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c +index 518fed9c59..6f4b8fd699 100644 +--- a/sysdeps/unix/sysv/linux/timer_settime.c ++++ b/sysdeps/unix/sysv/linux/timer_settime.c +@@ -39,8 +39,7 @@ ___timer_settime64 (timer_t timerid, int flags, + ovalue); + # else + # ifdef __NR_timer_settime64 +- int ret = INLINE_SYSCALL_CALL (timer_settime64, ktimerid, flags, value, +- ovalue); ++ int ret = ENOSYS; // INLINE_SYSCALL_CALL (timer_settime64, ktimerid, flags, value, ovalue); + if (ret == 0 || errno != ENOSYS) + return ret; + # endif +diff --git a/sysdeps/unix/sysv/linux/timerfd_gettime.c b/sysdeps/unix/sysv/linux/timerfd_gettime.c +index 9bd0e02621..989f24eff3 100644 +--- a/sysdeps/unix/sysv/linux/timerfd_gettime.c ++++ b/sysdeps/unix/sysv/linux/timerfd_gettime.c +@@ -32,7 +32,8 @@ __timerfd_gettime64 (int fd, struct __itimerspec64 *value) + #ifdef __ASSUME_TIME64_SYSCALLS + return INLINE_SYSCALL_CALL (timerfd_gettime64, fd, value); + #else +- int ret = INLINE_SYSCALL_CALL (timerfd_gettime64, fd, value); ++ int ret = -1; // INLINE_SYSCALL_CALL (timerfd_gettime64, fd, value); ++ errno = ENOSYS; + if (ret == 0 || errno != ENOSYS) + return ret; + struct itimerspec its32; +diff --git a/sysdeps/unix/sysv/linux/timerfd_settime.c b/sysdeps/unix/sysv/linux/timerfd_settime.c +index 59282bf1ad..bdd4e31171 100644 +--- a/sysdeps/unix/sysv/linux/timerfd_settime.c ++++ b/sysdeps/unix/sysv/linux/timerfd_settime.c +@@ -37,8 +37,8 @@ __timerfd_settime64 (int fd, int flags, const struct __itimerspec64 *value, + || !in_time_t_range (value->it_interval.tv_sec); + if (need_time64) + { +- int r = INLINE_SYSCALL_CALL (timerfd_settime64, fd, flags, value, +- ovalue); ++ int r = -1; // INLINE_SYSCALL_CALL (timerfd_settime64, fd, flags, value, ovalue); ++ errno = ENOSYS; + if (r == 0 || errno != ENOSYS) + return r; + __set_errno (EOVERFLOW); +diff --git a/sysdeps/unix/sysv/linux/utimensat.c b/sysdeps/unix/sysv/linux/utimensat.c +index 5662ecc9aa..25bc1e9c58 100644 +--- a/sysdeps/unix/sysv/linux/utimensat.c ++++ b/sysdeps/unix/sysv/linux/utimensat.c +@@ -46,8 +46,8 @@ __utimensat64_helper (int fd, const char *file, + && !in_time_t_range (tsp64[1].tv_sec))); + if (need_time64) + { +- int r = INLINE_SYSCALL_CALL (utimensat_time64, fd, file, &tsp64[0], +- flags); ++ int r = -1; // INLINE_SYSCALL_CALL (utimensat_time64, fd, file, &tsp64[0], flags); ++ errno = ENOSYS; + if (r == 0 || errno != ENOSYS) + return r; + __set_errno (EOVERFLOW); |