From 424a4b38bf831c72a7414d0499af73670b94ffee Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Wed, 26 Mar 2008 17:37:11 +0000 Subject: [PATCH] fix obviously wrong syscall chunks for sparc --- strace-4.5.16-sparc-fix.patch | 177 ++++++++++++++++++++++++++++++++++ strace.spec | 7 +- 2 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 strace-4.5.16-sparc-fix.patch diff --git a/strace-4.5.16-sparc-fix.patch b/strace-4.5.16-sparc-fix.patch new file mode 100644 index 0000000..944d510 --- /dev/null +++ b/strace-4.5.16-sparc-fix.patch @@ -0,0 +1,177 @@ +diff -up strace-4.5.16/linux/sparc/syscallent.h.BAD strace-4.5.16/linux/sparc/syscallent.h +--- strace-4.5.16/linux/sparc/syscallent.h.BAD 2008-03-26 10:09:47.000000000 -0500 ++++ strace-4.5.16/linux/sparc/syscallent.h 2008-03-26 11:43:34.000000000 -0500 +@@ -23,7 +23,7 @@ + { 2, 0, sys_capset, "capset" }, /* 22 */ + { 1, 0, sys_setuid, "setuid" }, /* 23 */ + { 0, 0, sys_getuid, "getuid" }, /* 24 */ +- { 1, 0, sys_time, "time" }, /* 25 */ ++ { 1, 0, printargs, "vmsplice" }, /* 25 */ + { 5, 0, sys_ptrace, "ptrace" }, /* 26 */ + { 1, 0, sys_alarm, "alarm" }, /* 27 */ + { 2, TS, sys_sigaltstack,"sigaltstack" }, /* 28 */ +@@ -65,8 +65,8 @@ + { 0, 0, sys_getpagesize,"getpagesize" }, /* 64 */ + { 3, 0, sys_msync, "msync" }, /* 65 */ + { 0, TP, sys_vfork, "vfork" }, /* 66 */ +- { 5, TD, sys_pread, "pread" }, /* 67 */ +- { 5, TD, sys_pwrite, "pwrite" }, /* 68 */ ++ { 5, TD, sys_pread, "pread64" }, /* 67 */ ++ { 5, TD, sys_pwrite, "pwrite64" }, /* 68 */ + { 0, 0, sys_geteuid, "geteuid32" }, /* 69 */ + { 0, 0, sys_getegid, "getegid32" }, /* 70 */ + { 6, 0, sys_mmap, "mmap" }, /* 71 */ +@@ -149,12 +149,12 @@ + { 5, 0, printargs, "pciconfig_read" }, /* 148 */ + { 5, 0, printargs, "pciconfig_write" }, /* 149 */ + { 3, TN, sys_getsockname,"getsockname" }, /* 150 */ +- { 4, TN, sys_getmsg, "getmsg" }, /* 151 */ +- { 4, TN, sys_putmsg, "putmsg" }, /* 152 */ ++ { 0, TD, printargs, "inotify_init" }, /* 151 */ ++ { 3, TD, sys_inotify_add_watch, "inotify_add_watch" },/* 152 */ + { 3, TD, sys_poll, "poll" }, /* 153 */ + { 4, TD, sys_getdents64, "getdents64" }, /* 154 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 155 */ +- { 4, 0, printargs, "getdirentries" }, /* 156 */ ++ { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" },/* 156 */ + { 2, TF, sys_statfs, "statfs" }, /* 157 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 158 */ + { 1, TF, sys_umount, "oldumount" }, /* 159 */ +@@ -194,13 +194,13 @@ + { 1, 0, sys_epoll_create,"epoll_create" }, /* 193 */ + { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 194 */ + { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 195 */ +- { 2, 0, sys_ulimit, "ulimit" }, /* 196 */ ++ { 3, 0, printargs, "ioprio_set"}, /* 196 */ + { 0, 0, sys_getppid, "getppid" }, /* 197 */ + { 3, TS, sys_sigaction, "sigaction" }, /* 198 */ + { 5, 0, printargs, "sgetmask" }, /* 199 */ + { 5, 0, printargs, "ssetmask" }, /* 200 */ + { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 201 */ +- { 2, TF, sys_lstat, "lstat" }, /* 202 */ ++ { 2, TF, sys_oldlstat, "oldlstat" }, /* 202 */ + { 1, TF, sys_uselib, "uselib" }, /* 203 */ + { 3, TD, sys_readdir, "readdir" }, /* 204 */ + { 4, TD, sys_readahead, "readahead" }, /* 205 */ +@@ -216,7 +216,7 @@ + { 5, 0, sys_ipc, "ipc" }, /* 215 */ + { 1, TS, sys_sigreturn, "sigreturn" }, /* 216 */ + { 5, TP, sys_clone, "clone" }, /* 217 */ +- { 3, 0, sys_modify_ldt, "modify_ldt" }, /* 218 */ ++ { 2, 0, printargs, "ioprio_get" }, /* 218 */ + { 1, 0, sys_adjtimex, "adjtimex" }, /* 219 */ + { 3, TS, sys_sigprocmask,"sigprocmask" }, /* 220 */ + { 2, 0, sys_create_module,"create_module" }, /* 221 */ +@@ -228,9 +228,9 @@ + { 5, 0, sys_afs_syscall,"afs_syscall" }, /* 227 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 228 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 229 */ +- { 5, TD, sys_select, "select" }, /* 230 */ ++ { 5, TD, sys_select, "_newselect" }, /* 230 */ + { 1, 0, sys_time, "time" }, /* 231 */ +- { 2, TF, sys_stat, "stat" }, /* 232 */ ++ { 6, TD, printargs, "splice" }, /* 232 */ + { 1, 0, sys_stime, "stime" }, /* 233 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 234 */ + { 3, TD, sys_fstatfs64, "fstatfs64" }, /* 235 */ +@@ -253,7 +253,7 @@ + { 1, 0, sys_getsid, "getsid" }, /* 252 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 253 */ + { 3, 0, printargs, "nfsservctl" }, /* 254 */ +- { 5, 0, printargs, "aplib" }, /* 255 */ ++ { 4, TD, printargs, "sync_file_range" }, /* 255 */ + { 2, 0, sys_clock_settime,"clock_settime" }, /* 256 */ + { 2, 0, sys_clock_gettime,"clock_gettime" }, /* 257 */ + { 2, 0, sys_clock_getres,"clock_getres" }, /* 258 */ +@@ -300,18 +300,18 @@ + { 1, TP, sys_unshare, "unshare" }, /* 299 */ + { 2, 0, printargs, "set_robust_list" }, /* 300 */ + { 3, 0, printargs, "get_robust_list" }, /* 301 */ +- { 5, 0, printargs, "SYS_302" }, /* 302 */ +- { 5, 0, printargs, "SYS_303" }, /* 303 */ +- { 5, 0, printargs, "SYS_304" }, /* 304 */ +- { 5, 0, printargs, "SYS_305" }, /* 305 */ +- { 5, 0, printargs, "SYS_306" }, /* 306 */ +- { 6, 0, sys_move_pages, "move_pages" }, /* 307 */ +- { 3, 0, sys_getcpu, "getcpu" }, /* 308 */ +- { 5, TD, sys_epoll_pwait,"epoll_pwait" }, /* 309 */ +- { 5, 0, printargs, "SYS_310" }, /* 310 */ +- { 3, TD|TS, sys_signalfd, "signalfd"}, /* 311 */ +- { 4, TD, sys_timerfd, "timerfd" }, /* 312 */ +- { 1, TD, sys_eventfd, "eventfd" }, /* 313 */ ++ { 4, 0, printargs, "migrate_pages" }, /* 302 */ ++ { 6, 0, sys_mbind, "mbind" }, /* 303 */ ++ { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 304 */ ++ { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 305 */ ++ { 5, 0, printargs, "kexec_load" }, /* 306 */ ++ { 6, 0, sys_move_pages, "move_pages" }, /* 307 */ ++ { 3, 0, sys_getcpu, "getcpu" }, /* 308 */ ++ { 5, TD, sys_epoll_pwait, "epoll_pwait" },/* 309 */ ++ { 4, TD|TF, sys_utimensat, "utimensat"}, /* 310 */ ++ { 3, TD|TS, sys_signalfd, "signalfd"}, /* 311 */ ++ { 4, TD, sys_timerfd, "timerfd" }, /* 312 */ ++ { 1, TD, sys_eventfd, "eventfd" }, /* 313 */ + { 5, 0, printargs, "SYS_314" }, /* 314 */ + { 5, 0, printargs, "SYS_315" }, /* 315 */ + { 5, 0, printargs, "SYS_316" }, /* 316 */ +diff -up strace-4.5.16/linux/sparc/syscall.h.BAD strace-4.5.16/linux/sparc/syscall.h +--- strace-4.5.16/linux/sparc/syscall.h.BAD 2008-03-26 12:00:19.000000000 -0500 ++++ strace-4.5.16/linux/sparc/syscall.h 2008-03-26 12:00:07.000000000 -0500 +@@ -203,5 +203,15 @@ int sys_fstatfs64(), sys_clock_settime() + int sys_clock_getres(), sys_clock_nanosleep(); + int sys_timer_create(), sys_timer_settime(), sys_timer_gettime(); + ++int sys_inotify_add_watch(), sys_inotify_rm_watch(), sys_oldlstat(); ++int sys_io_setup(), sys_io_destroy(), sys_io_submit(), sys_io_cancel(); ++int sys_io_getevents(), sys_mq_open(), sys_mq_timedsend(), sys_mq_timedreceive(); ++int sys_mq_notify(), sys_mq_getsetattr(), sys_waitid(), sys_openat(); ++int sys_mkdirat(), sys_mknodat(), sys_fchownat(), sys_futimesat(); ++int sys_newfstatat(), sys_unlinkat(), sys_renameat(), sys_linkat(); ++int sys_symlinkat(), sys_readlinkat(), sys_fchmodat(), sys_faccessat(); ++int sys_pselect6(), sys_ppoll(), sys_unshare(), sys_mbind(); ++int sys_get_mempolicy(), sys_set_mempolicy(), sys_move_pages(), sys_getcpu(); ++int sys_epoll_pwait(), sys_utimensat(), sys_signalfd(), sys_timerfd(), sys_eventfd(); + + #include "syscall1.h" +diff -up strace-4.5.16/defs.h.BAD strace-4.5.16/defs.h +--- strace-4.5.16/defs.h.BAD 2008-03-26 11:49:08.000000000 -0500 ++++ strace-4.5.16/defs.h 2008-03-26 11:49:30.000000000 -0500 +@@ -192,8 +192,7 @@ extern int ptrace(); + #define DEFAULT_PERSONALITY 0 + + #ifdef LINUXSPARC +-#include +-#include ++#include + #define PERSONALITY0_WORDSIZE 4 + #define PERSONALITY1_WORDSIZE 4 + #undef SUPPORTED_PERSONALITIES +@@ -201,6 +200,7 @@ extern int ptrace(); + #define SUPPORTED_PERSONALITIES 3 + #define PERSONALITY2_WORDSIZE 8 + #else ++#include + #define SUPPORTED_PERSONALITIES 2 + #endif /* SPARC64 */ + #endif /* LINUXSPARC */ +diff -up strace-4.5.16/mem.c.BAD strace-4.5.16/mem.c +--- strace-4.5.16/mem.c.BAD 2008-03-26 12:03:03.000000000 -0500 ++++ strace-4.5.16/mem.c 2008-03-26 12:03:22.000000000 -0500 +@@ -544,7 +544,7 @@ struct tcb *tcp; + return 0; + } + +-#if defined(ALPHA) || defined(FREEBSD) || defined(IA64) || defined(SUNOS4) || defined(SVR4) ++#if defined(ALPHA) || defined(FREEBSD) || defined(IA64) || defined(SUNOS4) || defined(SVR4) || defined (LINUXSPARC) + int + sys_getpagesize(tcp) + struct tcb *tcp; +@@ -553,7 +553,7 @@ struct tcb *tcp; + return RVAL_HEX; + return 0; + } +-#endif /* ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4 */ ++#endif /* ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4 || LINUXSPARC */ + + #if defined(LINUX) && defined(__i386__) + void diff --git a/strace.spec b/strace.spec index e2f16fc..335162a 100644 --- a/strace.spec +++ b/strace.spec @@ -1,11 +1,12 @@ Summary: Tracks and displays system calls associated with a running process Name: strace Version: 4.5.16 -Release: 4%{?dist} +Release: 5%{?dist} License: BSD Group: Development/Debuggers URL: http://sourceforge.net/projects/strace/ Source0: http://dl.sourceforge.net/strace/%{name}-%{version}.tar.bz2 +Patch0: strace-4.5.16-sparc-fix.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %define strace64_arches ppc64 sparc64 @@ -41,6 +42,7 @@ The `strace' program in the `strace' package is for 32-bit processes. %prep %setup -q +%patch0 -p1 %build %configure @@ -74,6 +76,9 @@ rm -rf %{buildroot} %changelog +* Wed Mar 26 2008 Tom "spot" Callaway - 4.5.16-5 +- fix obviously wrong syscall chunks for sparc + * Wed Mar 26 2008 Tom "spot" Callaway - 4.5.16-4 - add sparc64 to strace64 arches