This commit is contained in:
parent
ff05c53e2f
commit
6c92bfc5d5
20
clone2.diff
20
clone2.diff
@ -1,20 +0,0 @@
|
||||
2008-06-30 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix ia64 `-f' on CLONE2 formerly crashing the child.
|
||||
* util.c [IA64] (restore_arg0, restore_arg1): Define as empty.
|
||||
|
||||
--- util.c 20 May 2008 00:34:34 -0000 1.75
|
||||
+++ util.c 30 Jun 2008 16:23:00 -0000
|
||||
@@ -1379,6 +1379,12 @@ set_arg1 (struct tcb *tcp, arg_setup_sta
|
||||
return errno ? -1 : 0;
|
||||
}
|
||||
|
||||
+/* ia64 does not return the input arguments from functions (and syscalls)
|
||||
+ according to ia64 RSE (Register Stack Engine) behavior. */
|
||||
+
|
||||
+# define restore_arg0(tcp, state, val) ((void) (state), 0)
|
||||
+# define restore_arg1(tcp, state, val) ((void) (state), 0)
|
||||
+
|
||||
#elif defined (SPARC) || defined (SPARC64)
|
||||
|
||||
typedef struct regs arg_setup_state;
|
11
ioctl.diff
11
ioctl.diff
@ -1,11 +0,0 @@
|
||||
--- term.c
|
||||
+++ term.c
|
||||
@@ -414,7 +414,7 @@
|
||||
case TIOCGPTN:
|
||||
#endif
|
||||
tprintf(", ");
|
||||
- printnum(tcp, arg, "%d");
|
||||
+ printnum_int(tcp, arg, "%d");
|
||||
return 1;
|
||||
|
||||
#if 0
|
47
ptrace.diff
47
ptrace.diff
@ -1,47 +0,0 @@
|
||||
--- process.c
|
||||
+++ process.c
|
||||
@@ -2242,6 +2242,18 @@
|
||||
#ifdef PTRACE_SETVRREGS
|
||||
{ PTRACE_SETVRREGS, "PTRACE_SETVRREGS", },
|
||||
#endif
|
||||
+#ifdef PTRACE_SETOPTIONS
|
||||
+ { PTRACE_SETOPTIONS, "PTRACE_SETOPTIONS", },
|
||||
+#endif
|
||||
+#ifdef PTRACE_GETEVENTMSG
|
||||
+ { PTRACE_GETEVENTMSG, "PTRACE_GETEVENTMSG", },
|
||||
+#endif
|
||||
+#ifdef PTRACE_GETSIGINFO
|
||||
+ { PTRACE_GETSIGINFO, "PTRACE_GETSIGINFO", },
|
||||
+#endif
|
||||
+#ifdef PTRACE_SETSIGINFO
|
||||
+ { PTRACE_SETSIGINFO, "PTRACE_SETSIGINFO", },
|
||||
+#endif
|
||||
#ifdef SUNOS4
|
||||
{ PTRACE_READDATA, "PTRACE_READDATA" },
|
||||
{ PTRACE_WRITEDATA, "PTRACE_WRITEDATA" },
|
||||
@@ -3016,10 +3028,12 @@
|
||||
tprintf("%#lx, ", tcp->u_arg[2]);
|
||||
#ifdef LINUX
|
||||
switch (tcp->u_arg[0]) {
|
||||
+#ifndef IA64
|
||||
case PTRACE_PEEKDATA:
|
||||
case PTRACE_PEEKTEXT:
|
||||
case PTRACE_PEEKUSER:
|
||||
break;
|
||||
+#endif
|
||||
case PTRACE_CONT:
|
||||
case PTRACE_SINGLESTEP:
|
||||
case PTRACE_SYSCALL:
|
||||
@@ -3035,8 +3049,12 @@
|
||||
case PTRACE_PEEKDATA:
|
||||
case PTRACE_PEEKTEXT:
|
||||
case PTRACE_PEEKUSER:
|
||||
+#ifdef IA64
|
||||
+ return RVAL_HEX;
|
||||
+#else
|
||||
printnum(tcp, tcp->u_arg[3], "%#lx");
|
||||
break;
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
#endif /* LINUX */
|
@ -1,11 +0,0 @@
|
||||
--- signal.c
|
||||
+++ signal.c
|
||||
@@ -1701,7 +1701,7 @@ sys_kill(tcp)
|
||||
struct tcb *tcp;
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
- tprintf("%ld, %s", tcp->u_arg[0], signame(tcp->u_arg[1]));
|
||||
+ tprintf("%d, %s", (pid_t)tcp->u_arg[0], signame(tcp->u_arg[1]));
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1736de29c20e1501ba50aca824492fdb5fe0bbd054ae6f79f4ab9efd424c7a96
|
||||
size 457272
|
105
strace-4.5.17.diff
Normal file
105
strace-4.5.17.diff
Normal file
@ -0,0 +1,105 @@
|
||||
--- process.c
|
||||
+++ process.c
|
||||
@@ -765,12 +765,12 @@ setarg(tcp, argnum)
|
||||
{
|
||||
#if defined (IA64)
|
||||
{
|
||||
- unsigned long *bsp, *ap;
|
||||
+ unsigned long bsp, *ap;
|
||||
|
||||
if (upeek(tcp->pid, PT_AR_BSP, (long *) &bsp) , 0)
|
||||
return -1;
|
||||
|
||||
- ap = ia64_rse_skip_regs(bsp, argnum);
|
||||
+ ap = ia64_rse_skip_regs((unsigned long *) bsp, argnum);
|
||||
errno = 0;
|
||||
ptrace(PTRACE_POKEDATA, tcp->pid, (char *) ap, tcp->u_arg[argnum]);
|
||||
if (errno)
|
||||
@@ -2289,6 +2289,18 @@ static const struct xlat ptrace_cmds[] =
|
||||
#ifdef PTRACE_SETVRREGS
|
||||
{ PTRACE_SETVRREGS, "PTRACE_SETVRREGS", },
|
||||
#endif
|
||||
+#ifdef PTRACE_SETOPTIONS
|
||||
+ { PTRACE_SETOPTIONS, "PTRACE_SETOPTIONS", },
|
||||
+#endif
|
||||
+#ifdef PTRACE_GETEVENTMSG
|
||||
+ { PTRACE_GETEVENTMSG, "PTRACE_GETEVENTMSG", },
|
||||
+#endif
|
||||
+#ifdef PTRACE_GETSIGINFO
|
||||
+ { PTRACE_GETSIGINFO, "PTRACE_GETSIGINFO", },
|
||||
+#endif
|
||||
+#ifdef PTRACE_SETSIGINFO
|
||||
+ { PTRACE_SETSIGINFO, "PTRACE_SETSIGINFO", },
|
||||
+#endif
|
||||
#ifdef SUNOS4
|
||||
{ PTRACE_READDATA, "PTRACE_READDATA" },
|
||||
{ PTRACE_WRITEDATA, "PTRACE_WRITEDATA" },
|
||||
--- resource.c
|
||||
+++ resource.c
|
||||
@@ -388,10 +388,10 @@ struct tcb *tcp;
|
||||
si.loads[2]);
|
||||
tprintf("totalram=%lu, freeram=%lu, ",
|
||||
si.totalram, si.freeram);
|
||||
- tprintf("sharedram=%lu, bufferram=%lu} ",
|
||||
+ tprintf("sharedram=%lu, bufferram=%lu, ",
|
||||
si.sharedram, si.bufferram);
|
||||
- tprintf("totalswap=%lu, freeswap=%lu, procs=%hu}",
|
||||
- si.totalswap, si.freeswap, si.procs);
|
||||
+ tprintf("totalswap=%lu, freeswap=%lu, procs=%hu, mem_unit=%u}",
|
||||
+ si.totalswap, si.freeswap, si.procs, si.mem_unit);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
--- strace-graph
|
||||
+++ strace-graph
|
||||
@@ -229,7 +229,7 @@ sub handle_trace {
|
||||
push @$seq, ['EXEC', $filename, $argv];
|
||||
|
||||
$pr{$pid}{seq} = $seq;
|
||||
- } elsif ($call eq 'fork' || $call eq 'clone' || $call eq 'vfork') {
|
||||
+ } elsif ($call eq 'fork' || $call eq 'clone' || $call eq 'clone2' || $call eq 'vfork') {
|
||||
return if $result == 0;
|
||||
|
||||
my $seq = $pr{$pid}{seq};
|
||||
--- syscall.c
|
||||
+++ syscall.c
|
||||
@@ -1963,7 +1963,7 @@ struct tcb *tcp;
|
||||
#elif defined (IA64)
|
||||
{
|
||||
if (!ia32) {
|
||||
- unsigned long *out0, *rbs_end, cfm, sof, sol, i;
|
||||
+ unsigned long *out0, rbs_end, cfm, sof, sol, i;
|
||||
/* be backwards compatible with kernel < 2.4.4... */
|
||||
# ifndef PT_RBS_END
|
||||
# define PT_RBS_END PT_AR_BSP
|
||||
@@ -1976,7 +1976,7 @@ struct tcb *tcp;
|
||||
|
||||
sof = (cfm >> 0) & 0x7f;
|
||||
sol = (cfm >> 7) & 0x7f;
|
||||
- out0 = ia64_rse_skip_regs(rbs_end, -sof + sol);
|
||||
+ out0 = ia64_rse_skip_regs((unsigned long *)rbs_end, -sof + sol);
|
||||
|
||||
if (tcp->scno >= 0 && tcp->scno < nsyscalls
|
||||
&& sysent[tcp->scno].nargs != -1)
|
||||
--- util.c
|
||||
+++ util.c
|
||||
@@ -1300,7 +1300,7 @@ typedef unsigned long *arg_setup_state;
|
||||
static int
|
||||
arg_setup(struct tcb *tcp, arg_setup_state *state)
|
||||
{
|
||||
- unsigned long *bsp, cfm, sof, sol;
|
||||
+ unsigned long bsp, cfm, sof, sol;
|
||||
|
||||
if (ia32)
|
||||
return 0;
|
||||
@@ -1312,9 +1312,8 @@ arg_setup(struct tcb *tcp, arg_setup_sta
|
||||
|
||||
sof = (cfm >> 0) & 0x7f;
|
||||
sol = (cfm >> 7) & 0x7f;
|
||||
- bsp = ia64_rse_skip_regs(bsp, -sof + sol);
|
||||
+ *state = ia64_rse_skip_regs((unsigned long *) bsp, -sof + sol);
|
||||
|
||||
- *state = bsp;
|
||||
return 0;
|
||||
}
|
||||
|
3
strace-4.5.17.tar.bz2
Normal file
3
strace-4.5.17.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9ba497b368fe08982bd6d03dbfa4d942ee1b2438e641ea754b682bd5b7536c9d
|
||||
size 478548
|
@ -1,11 +0,0 @@
|
||||
--- strace-graph
|
||||
+++ strace-graph
|
||||
@@ -229,7 +229,7 @@
|
||||
push @$seq, ['EXEC', $filename, $argv];
|
||||
|
||||
$pr{$pid}{seq} = $seq;
|
||||
- } elsif ($call eq 'fork' || $call eq 'clone' || $call eq 'vfork') {
|
||||
+ } elsif ($call eq 'fork' || $call eq 'clone' || $call eq 'clone2' || $call eq 'vfork') {
|
||||
return if $result == 0;
|
||||
|
||||
my $seq = $pr{$pid}{seq};
|
@ -1,16 +0,0 @@
|
||||
--- resource.c
|
||||
+++ resource.c
|
||||
@@ -388,10 +388,10 @@
|
||||
si.loads[2]);
|
||||
tprintf("totalram=%lu, freeram=%lu, ",
|
||||
si.totalram, si.freeram);
|
||||
- tprintf("sharedram=%lu, bufferram=%lu} ",
|
||||
+ tprintf("sharedram=%lu, bufferram=%lu, ",
|
||||
si.sharedram, si.bufferram);
|
||||
- tprintf("totalswap=%lu, freeswap=%lu, procs=%hu}",
|
||||
- si.totalswap, si.freeswap, si.procs);
|
||||
+ tprintf("totalswap=%lu, freeswap=%lu, procs=%hu, mem_unit=%u}",
|
||||
+ si.totalswap, si.freeswap, si.procs, si.mem_unit);
|
||||
}
|
||||
}
|
||||
return 0;
|
@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 22 09:47:31 CEST 2008 - schwab@suse.de
|
||||
|
||||
- Update to strace 4.5.16.
|
||||
* Many bug fixes.
|
||||
* -F is now deprecated, -f has traced vfork too on Linux for a long time
|
||||
now.
|
||||
* Print O_CLOEXEC, MSG_CMSG_CLOEXEC flag bits.
|
||||
* Improved output for prctl system call on Linux.
|
||||
* Improved support for Linux/ARM.
|
||||
* SA_NOMASK is now spelled SA_NODEFER, and SA_ONESHOT is spelled
|
||||
SA_RESETHAND.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 30 18:44:58 CEST 2008 - schwab@suse.de
|
||||
|
||||
|
33
strace.spec
33
strace.spec
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package strace (Version 4.5.16)
|
||||
# spec file for package strace (Version 4.5.17)
|
||||
#
|
||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
@ -8,7 +8,6 @@
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
|
||||
Name: strace
|
||||
@ -16,19 +15,11 @@ BuildRequires: libacl-devel
|
||||
License: BSD 3-Clause
|
||||
Group: Development/Tools/Debuggers
|
||||
AutoReqProv: on
|
||||
Version: 4.5.16
|
||||
Release: 56
|
||||
Version: 4.5.17
|
||||
Release: 1
|
||||
Summary: A utility to trace the system calls of a program
|
||||
Source: strace-%{version}.tar.bz2
|
||||
Patch: strace-%{version}.diff
|
||||
Patch1: warn.patch
|
||||
Patch3: syscalls.diff
|
||||
Patch4: strace-sysinfo.diff
|
||||
Patch5: strace-graph.diff
|
||||
Patch6: ioctl.diff
|
||||
Patch8: ptrace.diff
|
||||
Patch9: vfork.diff
|
||||
Patch10: clone2.diff
|
||||
Url: http://sourceforge.net/projects/strace/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
@ -48,14 +39,6 @@ Authors:
|
||||
%prep
|
||||
%setup -q
|
||||
%patch
|
||||
%patch1
|
||||
%patch3
|
||||
%patch4
|
||||
%patch5
|
||||
%patch6
|
||||
%patch8
|
||||
%patch9
|
||||
%patch10
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS"
|
||||
@ -79,6 +62,16 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%doc %{_mandir}/man1/strace.1.gz
|
||||
|
||||
%changelog
|
||||
* Tue Jul 22 2008 schwab@suse.de
|
||||
- Update to strace 4.5.16.
|
||||
* Many bug fixes.
|
||||
* -F is now deprecated, -f has traced vfork too on Linux for a long time
|
||||
now.
|
||||
* Print O_CLOEXEC, MSG_CMSG_CLOEXEC flag bits.
|
||||
* Improved output for prctl system call on Linux.
|
||||
* Improved support for Linux/ARM.
|
||||
* SA_NOMASK is now spelled SA_NODEFER, and SA_ONESHOT is spelled
|
||||
SA_RESETHAND.
|
||||
* Mon Jun 30 2008 schwab@suse.de
|
||||
- Fix following vfork and clone2.
|
||||
* Thu Apr 10 2008 ro@suse.de
|
||||
|
123
syscalls.diff
123
syscalls.diff
@ -1,123 +0,0 @@
|
||||
--- linux/alpha/syscallent.h
|
||||
+++ linux/alpha/syscallent.h
|
||||
@@ -403,9 +403,9 @@
|
||||
{ 3, 0, printargs, "getresgid" }, /* 372 */
|
||||
{ 4, 0, printargs, "dipc" }, /* 373, not implemented */
|
||||
{ 2, TF, printargs, "pivot_root" }, /* 374 */
|
||||
- { 3, 0, printargs, "mincore" }, /* 375 */
|
||||
+ { 3, 0, sys_mincore, "mincore" }, /* 375 */
|
||||
{ 4, 0, printargs, "pciconfig_iobase" }, /* 376 */
|
||||
- { 4, TD, sys_getdents64, "getdents64" }, /* 377 */
|
||||
+ { 3, TD, sys_getdents64, "getdents64" }, /* 377 */
|
||||
{ 0, 0, printargs, "gettid" }, /* 378 */
|
||||
{ 4, TD, sys_readahead, "readahead" }, /* 379 */
|
||||
{ 5, 0, printargs, "SYS_380" }, /* 380 */
|
||||
--- linux/arm/syscallent.h
|
||||
+++ linux/arm/syscallent.h
|
||||
@@ -247,7 +247,7 @@
|
||||
{ 1, 0, sys_setgid, "setgid32" }, /* 214 */
|
||||
{ 1, 0, sys_setfsuid, "setfsuid32" }, /* 215 */
|
||||
{ 1, 0, sys_setfsgid, "setfsgid32" }, /* 216 */
|
||||
- { 4, 0, sys_getdents64, "getdents64" }, /* 217 */
|
||||
+ { 3, 0, sys_getdents64, "getdents64" }, /* 217 */
|
||||
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 218 */
|
||||
{ 3, 0, printargs, "mincore" }, /* 219 */
|
||||
{ 3, 0, sys_madvise, "madvise" }, /* 220 */
|
||||
--- linux/ia64/syscallent.h
|
||||
+++ linux/ia64/syscallent.h
|
||||
@@ -1014,13 +1014,13 @@
|
||||
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 1205 */
|
||||
{ 3, TN, sys_recvmsg, "recvmsg" }, /* 1206 */
|
||||
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 1207 */
|
||||
- { 3, 0, printargs, "mincore" }, /* 1208 */
|
||||
+ { 3, 0, sys_mincore, "mincore" }, /* 1208 */
|
||||
{ 3, 0, sys_madvise, "madvise" }, /* 1209 */
|
||||
{ 2, TF, sys_stat, "stat" }, /* 1210 */
|
||||
{ 2, 0, sys_lstat, "lstat" }, /* 1211 */
|
||||
{ 2, TD, sys_fstat, "fstat" }, /* 1212 */
|
||||
{ 6, TP, sys_clone, "clone2" }, /* 1213 */
|
||||
- { 3, 0, printargs, "getdents64" }, /* 1214 */
|
||||
+ { 3, TD, sys_getdents64, "getdents64" }, /* 1214 */
|
||||
{ 2, 0, printargs, "getunwind" }, /* 1215 */
|
||||
{ 4, TD, sys_readahead, "readahead" }, /* 1216 */
|
||||
{ 5, TF, sys_setxattr, "setxattr" }, /* 1217 */
|
||||
--- linux/m68k/syscallent.h
|
||||
+++ linux/m68k/syscallent.h
|
||||
@@ -248,7 +248,7 @@
|
||||
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
|
||||
{ 5, 0, printargs, "SYS_218" }, /* 218 */
|
||||
{ 5, 0, printargs, "SYS_219" }, /* 219 */
|
||||
- { 4, 0, sys_getdents64, "getdents64" }, /* 220 */
|
||||
+ { 3, TD, sys_getdents64, "getdents64" }, /* 220 */
|
||||
{ 0, 0, printargs, "gettid" }, /* 221 */
|
||||
{ 2, TS, sys_kill, "tkill" }, /* 222 */
|
||||
{ 5, TF, sys_setxattr, "setxattr" }, /* 223 */
|
||||
--- linux/mips/syscallent.h
|
||||
+++ linux/mips/syscallent.h
|
||||
@@ -4215,7 +4215,7 @@
|
||||
{ 2, TF, sys_lstat64, "lstat64" }, /* 4214 */
|
||||
{ 2, TD, sys_fstat64, "fstat64" }, /* 4215 */
|
||||
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 4216 */
|
||||
- { 3, 0, printargs, "mincore" }, /* 4217 */
|
||||
+ { 3, 0, sys_mincore, "mincore" }, /* 4217 */
|
||||
{ 3, 0, sys_madvise, "madvise" }, /* 4218 */
|
||||
{ 3, TF, sys_getdents64, "getdents64" }, /* 4219 */
|
||||
{ 3, TD, sys_fcntl, "fcntl64" }, /* 4220 */
|
||||
--- linux/powerpc/syscallent.h
|
||||
+++ linux/powerpc/syscallent.h
|
||||
@@ -299,7 +299,7 @@
|
||||
{ 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 267 */
|
||||
{ 5, 0, printargs, "sys_kexec_load" }, /* 268 */
|
||||
{ 5, 0, printargs, "add_key" }, /* 269 */
|
||||
- { 5, 0, printargs, "request_key" }, /* 270 */
|
||||
+ { 4, 0, printargs, "request_key" }, /* 270 */
|
||||
{ 5, 0, printargs, "keyctl" }, /* 271 */
|
||||
{ 5, TP, sys_waitid, "waitid" }, /* 272 */
|
||||
{ 3, 0, printargs, "ioprio_set" }, /* 273 */
|
||||
--- linux/sh/syscallent.h
|
||||
+++ linux/sh/syscallent.h
|
||||
@@ -250,9 +250,9 @@
|
||||
{ 1, 0, printargs, "setfsuid32" }, /* 215 */
|
||||
{ 1, 0, printargs, "setfsgid32" }, /* 216 */
|
||||
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
|
||||
- { 3, 0, printargs, "mincore" }, /* 218 */
|
||||
+ { 3, 0, sys_mincore, "mincore" }, /* 218 */
|
||||
{ 3, 0, sys_madvise, "madvise" }, /* 219 */
|
||||
- { 4, 0, printargs, "getdents64" }, /* 220 */
|
||||
+ { 3, TD, sys_getdents64, "getdents64" }, /* 220 */
|
||||
{ 3, TD, sys_fcntl, "fcntl64" }, /* 221 */
|
||||
{ 4, 0, printargs, "SYS_222" }, /* 222 */
|
||||
{ 4, 0, printargs, "SYS_223" }, /* 223 */
|
||||
--- linux/sparc/syscallent.h
|
||||
+++ linux/sparc/syscallent.h
|
||||
@@ -152,7 +152,7 @@
|
||||
{ 4, TN, sys_getmsg, "getmsg" }, /* 151 */
|
||||
{ 4, TN, sys_putmsg, "putmsg" }, /* 152 */
|
||||
{ 3, TD, sys_poll, "poll" }, /* 153 */
|
||||
- { 4, TD, sys_getdents64, "getdents64" }, /* 154 */
|
||||
+ { 3, TD, sys_getdents64, "getdents64" }, /* 154 */
|
||||
{ 3, TD, sys_fcntl, "fcntl64" }, /* 155 */
|
||||
{ 4, 0, printargs, "getdirentries" }, /* 156 */
|
||||
{ 2, TF, sys_statfs, "statfs" }, /* 157 */
|
||||
--- linux/syscallent.h
|
||||
+++ linux/syscallent.h
|
||||
@@ -250,7 +250,7 @@
|
||||
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
|
||||
{ 3, 0, sys_mincore, "mincore" }, /* 218 */
|
||||
{ 3, 0, sys_madvise, "madvise" }, /* 219 */
|
||||
- { 4, TD, sys_getdents64, "getdents64" }, /* 220 */
|
||||
+ { 3, TD, sys_getdents64, "getdents64" }, /* 220 */
|
||||
{ 3, TD, sys_fcntl, "fcntl64" }, /* 221 */
|
||||
{ 4, 0, printargs, "SYS_222" }, /* 222 */
|
||||
/*TODO*/{ 5, 0, printargs, "security" }, /* 223 */
|
||||
--- linux/x86_64/syscallent.h
|
||||
+++ linux/x86_64/syscallent.h
|
||||
@@ -215,7 +215,7 @@
|
||||
{ 4, 0, printargs, "epoll_ctl_old" }, /* 214 */
|
||||
{ 4, 0, printargs, "epoll_wait_old"}, /* 215 */
|
||||
{ 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 216 */
|
||||
- { 4, TD, sys_getdents64, "getdents64" }, /* 217 */
|
||||
+ { 3, TD, sys_getdents64, "getdents64" }, /* 217 */
|
||||
{ 1, 0, printargs, "set_tid_address"}, /* 218 */
|
||||
{ 0, 0, sys_restart_syscall, "restart_syscall"}, /* 219 */
|
||||
{ 5, TI, sys_semtimedop, "semtimedop" }, /* 220 */
|
42
vfork.diff
42
vfork.diff
@ -1,42 +0,0 @@
|
||||
2008-06-27 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* util.c (CLONE_VFORK): Define if not defined already.
|
||||
(setbpt): Clear CLONE_VFORK for SYS_CLONE and SYS_CLONE2. New comment.
|
||||
Originally found by Vitaly Mayatskikh.
|
||||
|
||||
--- util.c 20 May 2008 00:34:34 -0000 1.75
|
||||
+++ util.c 30 Jun 2008 12:53:31 -0000
|
||||
@@ -1281,6 +1281,9 @@ struct tcb *tcp;
|
||||
#ifndef CLONE_PTRACE
|
||||
# define CLONE_PTRACE 0x00002000
|
||||
#endif
|
||||
+#ifndef CLONE_VFORK
|
||||
+# define CLONE_VFORK 0x00004000
|
||||
+#endif
|
||||
#ifndef CLONE_STOPPED
|
||||
# define CLONE_STOPPED 0x02000000
|
||||
#endif
|
||||
@@ -1524,12 +1527,17 @@ struct tcb *tcp;
|
||||
#ifdef SYS_clone2
|
||||
case SYS_clone2:
|
||||
#endif
|
||||
- if ((tcp->u_arg[arg0_index] & CLONE_PTRACE) == 0
|
||||
- && (arg_setup (tcp, &state) < 0
|
||||
- || set_arg0 (tcp, &state,
|
||||
- tcp->u_arg[arg0_index] | CLONE_PTRACE) < 0
|
||||
- || arg_finish_change (tcp, &state) < 0))
|
||||
- return -1;
|
||||
+ /* ia64 calls directly `clone (CLONE_VFORK)' contrary to x86
|
||||
+ SYS_vfork above. Even on x86 we turn the VFORK semantics
|
||||
+ into plain FORK - each application must not depend on the
|
||||
+ VFORK specifics according to POSIX. We would hang waiting
|
||||
+ for the parent resume otherwise. */
|
||||
+ if ((arg_setup (tcp, &state) < 0
|
||||
+ || set_arg0 (tcp, &state,
|
||||
+ (tcp->u_arg[arg0_index] | CLONE_PTRACE)
|
||||
+ & ~CLONE_VFORK) < 0
|
||||
+ || arg_finish_change (tcp, &state) < 0))
|
||||
+ return -1;
|
||||
tcp->flags |= TCB_BPTSET;
|
||||
tcp->inst[0] = tcp->u_arg[arg0_index];
|
||||
tcp->inst[1] = tcp->u_arg[arg1_index];
|
59
warn.patch
59
warn.patch
@ -1,59 +0,0 @@
|
||||
--- process.c
|
||||
+++ process.c
|
||||
@@ -718,12 +718,12 @@
|
||||
{
|
||||
#if defined (IA64)
|
||||
{
|
||||
- unsigned long *bsp, *ap;
|
||||
+ unsigned long bsp, *ap;
|
||||
|
||||
if (upeek(tcp->pid, PT_AR_BSP, (long *) &bsp) , 0)
|
||||
return -1;
|
||||
|
||||
- ap = ia64_rse_skip_regs(bsp, argnum);
|
||||
+ ap = ia64_rse_skip_regs((unsigned long *) bsp, argnum);
|
||||
errno = 0;
|
||||
ptrace(PTRACE_POKEDATA, tcp->pid, (char *) ap, tcp->u_arg[argnum]);
|
||||
if (errno)
|
||||
--- syscall.c
|
||||
+++ syscall.c
|
||||
@@ -1803,7 +1803,7 @@
|
||||
#elif defined (IA64)
|
||||
{
|
||||
if (!ia32) {
|
||||
- unsigned long *out0, *rbs_end, cfm, sof, sol, i;
|
||||
+ unsigned long *out0, rbs_end, cfm, sof, sol, i;
|
||||
/* be backwards compatible with kernel < 2.4.4... */
|
||||
# ifndef PT_RBS_END
|
||||
# define PT_RBS_END PT_AR_BSP
|
||||
@@ -1816,7 +1816,7 @@
|
||||
|
||||
sof = (cfm >> 0) & 0x7f;
|
||||
sol = (cfm >> 7) & 0x7f;
|
||||
- out0 = ia64_rse_skip_regs(rbs_end, -sof + sol);
|
||||
+ out0 = ia64_rse_skip_regs((unsigned long *)rbs_end, -sof + sol);
|
||||
|
||||
if (tcp->scno >= 0 && tcp->scno < nsyscalls
|
||||
&& sysent[tcp->scno].nargs != -1)
|
||||
--- util.c
|
||||
+++ util.c
|
||||
@@ -1172,7 +1172,7 @@
|
||||
static int
|
||||
arg_setup(struct tcb *tcp, arg_setup_state *state)
|
||||
{
|
||||
- unsigned long *bsp, cfm, sof, sol;
|
||||
+ unsigned long bsp, cfm, sof, sol;
|
||||
|
||||
if (ia32)
|
||||
return 0;
|
||||
@@ -1184,9 +1184,8 @@
|
||||
|
||||
sof = (cfm >> 0) & 0x7f;
|
||||
sol = (cfm >> 7) & 0x7f;
|
||||
- bsp = ia64_rse_skip_regs(bsp, -sof + sol);
|
||||
+ *state = ia64_rse_skip_regs((unsigned long *) bsp, -sof + sol);
|
||||
|
||||
- *state = bsp;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user