diff options
Diffstat (limited to 'packages/strace/4.26/0000-mips-o32-fix-build.patch')
-rw-r--r-- | packages/strace/4.26/0000-mips-o32-fix-build.patch | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/packages/strace/4.26/0000-mips-o32-fix-build.patch b/packages/strace/4.26/0000-mips-o32-fix-build.patch deleted file mode 100644 index afb1f40a..00000000 --- a/packages/strace/4.26/0000-mips-o32-fix-build.patch +++ /dev/null @@ -1,92 +0,0 @@ -commit 2c8b6de913973274e877639658e9e7273a012adb -Author: Dmitry V. Levin <ldv@altlinux.org> -Date: Tue Jan 8 19:23:44 2019 +0000 - - mips o32: fix build - - Commit 917c2ccf3a67 "Refactor stack pointers" moved mips_REG_* macros - from linux/mips/arch_regs.h to linux/mips/arch_regs.c because these - macros are no longer used outside syscall.c or files included by - syscall.c, but this caused a build regression on mips o32 because - decode_syscall_subcall() uses mips_REG_SP prior to its definition. - - * syscall.c (decode_syscall_subcall): Move ... - * linux/mips/get_syscall_args.c: ... here. - * NEWS: Mention this fix. - - Reported-by: Baruch Siach <baruch@tkos.co.il> - Fixes: v4.26~61 "Refactor stack pointers" - ---- - linux/mips/get_syscall_args.c | 26 ++++++++++++++++++++++++++ - syscall.c | 27 ++------------------------- - 2 files changed, 28 insertions(+), 25 deletions(-) - ---- a/linux/mips/get_syscall_args.c -+++ b/linux/mips/get_syscall_args.c -@@ -37,3 +37,29 @@ - #endif - return 1; - } -+ -+#ifdef SYS_syscall_subcall -+static void -+decode_syscall_subcall(struct tcb *tcp) -+{ -+ if (!scno_is_valid(tcp->u_arg[0])) -+ return; -+ tcp->scno = tcp->u_arg[0]; -+ tcp->qual_flg = qual_flags(tcp->scno); -+ tcp->s_ent = &sysent[tcp->scno]; -+ memmove(&tcp->u_arg[0], &tcp->u_arg[1], -+ sizeof(tcp->u_arg) - sizeof(tcp->u_arg[0])); -+ /* -+ * Fetching the last arg of 7-arg syscalls (fadvise64_64 -+ * and sync_file_range) requires additional code, -+ * see linux/mips/get_syscall_args.c -+ */ -+ if (tcp->s_ent->nargs == MAX_ARGS) { -+ if (umoven(tcp, -+ mips_REG_SP + MAX_ARGS * sizeof(tcp->u_arg[0]), -+ sizeof(tcp->u_arg[0]), -+ &tcp->u_arg[MAX_ARGS - 1]) < 0) -+ tcp->u_arg[MAX_ARGS - 1] = 0; -+ } -+} -+#endif /* SYS_syscall_subcall */ ---- a/syscall.c -+++ b/syscall.c -@@ -349,31 +349,8 @@ - #endif /* SYS_ipc_subcall */ - - #ifdef SYS_syscall_subcall --static void --decode_syscall_subcall(struct tcb *tcp) --{ -- if (!scno_is_valid(tcp->u_arg[0])) -- return; -- tcp->scno = tcp->u_arg[0]; -- tcp->qual_flg = qual_flags(tcp->scno); -- tcp->s_ent = &sysent[tcp->scno]; -- memmove(&tcp->u_arg[0], &tcp->u_arg[1], -- sizeof(tcp->u_arg) - sizeof(tcp->u_arg[0])); --# ifdef LINUX_MIPSO32 -- /* -- * Fetching the last arg of 7-arg syscalls (fadvise64_64 -- * and sync_file_range) requires additional code, -- * see linux/mips/get_syscall_args.c -- */ -- if (tcp->s_ent->nargs == MAX_ARGS) { -- if (umoven(tcp, -- mips_REG_SP + MAX_ARGS * sizeof(tcp->u_arg[0]), -- sizeof(tcp->u_arg[0]), -- &tcp->u_arg[MAX_ARGS - 1]) < 0) -- tcp->u_arg[MAX_ARGS - 1] = 0; -- } --# endif /* LINUX_MIPSO32 */ --} -+/* The implementation is architecture specific. */ -+static void decode_syscall_subcall(struct tcb *); - #endif /* SYS_syscall_subcall */ - - static void |