summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2024-08-18 06:30:23 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2024-08-18 06:30:23 +0200
commit4151d5ed27c54210c1407594c6dca987bac2364a (patch)
treeab06eb65e9aa2fc66624ceb6dfd8ce6a244596c2
parent1ad4b7d9e20d4bb403b3c23cad890032ed4953bf (diff)
uclibc-ng: add fixes from master branch
-rw-r--r--toolchain/uclibc-ng/patches/1.0.50/0001-add-process_vm_-read-write-v-syscall-wrapper-from-gl.patch137
-rw-r--r--toolchain/uclibc-ng/patches/1.0.50/0002-mips64-time64-for-n32-ABI-breaks-a-lot-of-tests-disa.patch27
2 files changed, 164 insertions, 0 deletions
diff --git a/toolchain/uclibc-ng/patches/1.0.50/0001-add-process_vm_-read-write-v-syscall-wrapper-from-gl.patch b/toolchain/uclibc-ng/patches/1.0.50/0001-add-process_vm_-read-write-v-syscall-wrapper-from-gl.patch
new file mode 100644
index 000000000..5c591f7e2
--- /dev/null
+++ b/toolchain/uclibc-ng/patches/1.0.50/0001-add-process_vm_-read-write-v-syscall-wrapper-from-gl.patch
@@ -0,0 +1,137 @@
+From 3d975fa52b82e390ecbb0252739ee3fae64266c2 Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <wbx@openadk.org>
+Date: Wed, 14 Aug 2024 17:28:19 +0200
+Subject: [PATCH 1/2] add process_vm_{read,write}v syscall wrapper from glibc
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+---
+ include/sys/uio.h | 19 +++++++++++
+ libc/sysdeps/linux/common/Makefile.in | 2 ++
+ libc/sysdeps/linux/common/process_vm_readv.c | 32 +++++++++++++++++++
+ libc/sysdeps/linux/common/process_vm_writev.c | 32 +++++++++++++++++++
+ 4 files changed, 85 insertions(+)
+ create mode 100644 libc/sysdeps/linux/common/process_vm_readv.c
+ create mode 100644 libc/sysdeps/linux/common/process_vm_writev.c
+
+diff --git a/include/sys/uio.h b/include/sys/uio.h
+index 330426fec..9e9708c0c 100644
+--- a/include/sys/uio.h
++++ b/include/sys/uio.h
+@@ -74,6 +74,25 @@ extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count,
+ __off64_t __offset) __wur;
+ #endif /* Use misc. */
+
++#ifdef __USE_GNU
++/* Read from another process' address space. */
++extern ssize_t process_vm_readv (pid_t __pid, const struct iovec *__lvec,
++ unsigned long int __liovcnt,
++ const struct iovec *__rvec,
++ unsigned long int __riovcnt,
++ unsigned long int __flags)
++ __THROW;
++
++/* Write to another process' address space. */
++extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec,
++ unsigned long int __liovcnt,
++ const struct iovec *__rvec,
++ unsigned long int __riovcnt,
++ unsigned long int __flags)
++ __THROW;
++
++#endif
++
+ __END_DECLS
+
+ #endif /* sys/uio.h */
+diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
+index 83be2691e..e0b280c33 100644
+--- a/libc/sysdeps/linux/common/Makefile.in
++++ b/libc/sysdeps/linux/common/Makefile.in
+@@ -40,6 +40,8 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \
+ ppoll.c \
+ prctl.c \
+ prlimit.c \
++ process_vm_readv.c \
++ process_vm_writev.c \
+ readahead.c \
+ reboot.c \
+ remap_file_pages.c \
+diff --git a/libc/sysdeps/linux/common/process_vm_readv.c b/libc/sysdeps/linux/common/process_vm_readv.c
+new file mode 100644
+index 000000000..b69c1c97a
+--- /dev/null
++++ b/libc/sysdeps/linux/common/process_vm_readv.c
+@@ -0,0 +1,32 @@
++/* process_vm_readv - Linux specific syscall.
++ Copyright (C) 2020-2024 Free Software Foundation, Inc.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, see
++ <https://www.gnu.org/licenses/>. */
++
++#include <sys/uio.h>
++#include <sys/syscall.h>
++#include <unistd.h>
++
++#ifdef __NR_process_vm_readv
++ssize_t
++process_vm_readv (pid_t pid, const struct iovec *local_iov,
++ unsigned long int liovcnt,
++ const struct iovec *remote_iov,
++ unsigned long int riovcnt, unsigned long int flags)
++{
++ return INLINE_SYSCALL (process_vm_readv, 6, pid, local_iov,
++ liovcnt, remote_iov, riovcnt, flags);
++}
++#endif
+diff --git a/libc/sysdeps/linux/common/process_vm_writev.c b/libc/sysdeps/linux/common/process_vm_writev.c
+new file mode 100644
+index 000000000..e22817a8d
+--- /dev/null
++++ b/libc/sysdeps/linux/common/process_vm_writev.c
+@@ -0,0 +1,32 @@
++/* process_vm_writev - Linux specific syscall.
++ Copyright (C) 2020-2024 Free Software Foundation, Inc.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, see
++ <https://www.gnu.org/licenses/>. */
++
++#include <sys/uio.h>
++#include <sys/syscall.h>
++#include <unistd.h>
++
++#ifdef __NR_process_vm_writev
++ssize_t
++process_vm_writev (pid_t pid, const struct iovec *local_iov,
++ unsigned long int liovcnt,
++ const struct iovec *remote_iov,
++ unsigned long int riovcnt, unsigned long int flags)
++{
++ return INLINE_SYSCALL (process_vm_writev, 6, pid, local_iov,
++ liovcnt, remote_iov, riovcnt, flags);
++}
++#endif
+--
+2.30.2
+
diff --git a/toolchain/uclibc-ng/patches/1.0.50/0002-mips64-time64-for-n32-ABI-breaks-a-lot-of-tests-disa.patch b/toolchain/uclibc-ng/patches/1.0.50/0002-mips64-time64-for-n32-ABI-breaks-a-lot-of-tests-disa.patch
new file mode 100644
index 000000000..6d8391e9a
--- /dev/null
+++ b/toolchain/uclibc-ng/patches/1.0.50/0002-mips64-time64-for-n32-ABI-breaks-a-lot-of-tests-disa.patch
@@ -0,0 +1,27 @@
+From dd01754e21da71706af07f3e56eade66fc9164fb Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <wbx@openadk.org>
+Date: Fri, 16 Aug 2024 16:59:28 +0200
+Subject: [PATCH 2/2] mips64: time64 for n32 ABI breaks a lot of tests, disable
+ it for now
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+---
+ extra/Configs/Config.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
+index 454b6ddb8..86bd20d76 100644
+--- a/extra/Configs/Config.in
++++ b/extra/Configs/Config.in
+@@ -1032,7 +1032,7 @@ config UCLIBC_USE_TIME64
+ TARGET_i386 || \
+ TARGET_m68k || \
+ TARGET_microblaze || \
+- (TARGET_mips && !CONFIG_MIPS_N64_ABI) || \
++ (TARGET_mips && !(CONFIG_MIPS_N64_ABI || CONFIG_MIPS_N32_ABI)) || \
+ TARGET_or1k || \
+ TARGET_powerpc || \
+ TARGET_riscv32 || \
+--
+2.30.2
+