mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-28 08:38:53 +00:00
65 lines
1.8 KiB
Diff
65 lines
1.8 KiB
Diff
|
Index: strace-4.10/linux/mips/syscallent-o32.h
|
||
|
===================================================================
|
||
|
--- strace-4.10.orig/linux/mips/syscallent-o32.h
|
||
|
+++ strace-4.10/linux/mips/syscallent-o32.h
|
||
|
@@ -1,6 +1,6 @@
|
||
|
#if defined LINUX_MIPSO32
|
||
|
/* For an O32 strace, decode the o32 syscalls. */
|
||
|
-[4000] = { MA, 0, printargs, "syscall" }, /* start of Linux o32 */
|
||
|
+[4000] = { MA, 0, sys_syscall, "syscall" }, /* start of Linux o32 */
|
||
|
[4001] = { 1, TP|SE, sys_exit, "exit" },
|
||
|
[4002] = { 0, TP, sys_fork, "fork" },
|
||
|
[4003] = { 3, TD, sys_read, "read" },
|
||
|
Index: strace-4.10/syscall.c
|
||
|
===================================================================
|
||
|
--- strace-4.10.orig/syscall.c
|
||
|
+++ strace-4.10/syscall.c
|
||
|
@@ -606,6 +606,25 @@ decode_ipc_subcall(struct tcb *tcp)
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
+#ifdef LINUX_MIPSO32
|
||
|
+static void
|
||
|
+decode_mips_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]));
|
||
|
+}
|
||
|
+
|
||
|
+int sys_syscall(struct tcb *tcp)
|
||
|
+{
|
||
|
+ return printargs(tcp);
|
||
|
+}
|
||
|
+#endif
|
||
|
+
|
||
|
int
|
||
|
printargs(struct tcb *tcp)
|
||
|
{
|
||
|
@@ -1774,6 +1793,11 @@ trace_syscall_entering(struct tcb *tcp)
|
||
|
goto ret;
|
||
|
}
|
||
|
|
||
|
+#ifdef LINUX_MIPSO32
|
||
|
+ if (sys_syscall == tcp->s_ent->sys_func)
|
||
|
+ decode_mips_subcall(tcp);
|
||
|
+#endif
|
||
|
+
|
||
|
if ( sys_execve == tcp->s_ent->sys_func
|
||
|
# if defined(SPARC) || defined(SPARC64)
|
||
|
|| sys_execv == tcp->s_ent->sys_func
|
||
|
--- strace-4.10.orig/linux/syscall.h 2015-02-06 01:23:05.000000000 +0000
|
||
|
+++ strace-4.10/linux/syscall.h 2015-07-09 14:36:49.372494628 +0100
|
||
|
@@ -277,6 +277,7 @@
|
||
|
int sys_symlinkat();
|
||
|
int sys_sync_file_range();
|
||
|
int sys_sync_file_range2();
|
||
|
+int sys_syscall();
|
||
|
int sys_sysctl();
|
||
|
int sys_sysinfo();
|
||
|
int sys_syslog();
|