diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2024-08-18 06:30:23 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2024-08-18 06:30:23 +0200 |
commit | 4151d5ed27c54210c1407594c6dca987bac2364a (patch) | |
tree | ab06eb65e9aa2fc66624ceb6dfd8ce6a244596c2 | |
parent | 1ad4b7d9e20d4bb403b3c23cad890032ed4953bf (diff) |
uclibc-ng: add fixes from master branch
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 + |