debug/strace: add latest version, unmarkprevious EXPERIMENTAL

Also propagate the patchset from 4.5.18 to 4.5.19.
This commit is contained in:
Yann E. MORIN" 2009-10-28 19:00:34 +01:00
parent 17d149e8b2
commit 4ae5060ec8
7 changed files with 233 additions and 2 deletions

View File

@ -8,10 +8,14 @@ choice
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config STRACE_V_4_5_19
bool
prompt "4.5.19 (EXPERIMENTAL)"
depends on EXPERIMENTAL
config STRACE_V_4_5_18
bool
prompt "4.5.18 (EXPERIMENTAL)"
depends on EXPERIMENTAL
prompt "4.5.18"
config STRACE_V_4_5_17
bool
@ -31,6 +35,7 @@ config STRACE_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "4.5.19" if STRACE_V_4_5_19
default "4.5.18" if STRACE_V_4_5_18
default "4.5.17" if STRACE_V_4_5_17
default "4.5.16" if STRACE_V_4_5_16

View File

@ -0,0 +1,77 @@
diff -durN strace-4.5.19.orig/configure strace-4.5.19/configure
--- strace-4.5.19.orig/configure 2009-10-21 19:41:11.000000000 +0200
+++ strace-4.5.19/configure 2009-10-28 18:47:18.000000000 +0100
@@ -5773,6 +5773,73 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
+echo "$as_me:$LINENO: checking for statfs64 in sys/(statfs|vfs).h" >&5
+echo $ECHO_N "checking for statfs64 in sys/(statfs|vfs).h... $ECHO_C" >&6
+if test "${ac_cv_type_statfs64+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef LINUX
+#include <linux/types.h>
+#include <sys/statfs.h>
+#else
+#include <sys/vfs.h>
+#endif
+int
+main ()
+{
+struct statfs64 st;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_statfs64=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_statfs64=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_type_statfs64" >&5
+echo "${ECHO_T}$ac_cv_type_statfs64" >&6
+if test "$ac_cv_type_statfs64" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STATFS64 1
+_ACEOF
+
+fi
+
int
main ()

View File

@ -0,0 +1,19 @@
diff -durN strace-4.5.19.orig/syscall.c strace-4.5.19/syscall.c
--- strace-4.5.19.orig/syscall.c 2009-10-12 21:54:21.000000000 +0200
+++ strace-4.5.19/syscall.c 2009-10-28 18:47:18.000000000 +0100
@@ -1022,6 +1022,15 @@
/*
* Note: we only deal with only 32-bit CPUs here.
*/
+
+ if (!(tcp->flags & TCB_INSYSCALL) &&
+ (tcp->flags & TCB_WAITEXECVE)) {
+ /* caught a fake syscall from the execve's exit */
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+
+
if (regs.ARM_cpsr & 0x20) {
/*
* Get the Thumb-mode system call number

View File

@ -0,0 +1,22 @@
diff -durN strace-4.5.19.orig/syscall.c strace-4.5.19/syscall.c
--- strace-4.5.19.orig/syscall.c 2009-10-28 18:47:18.000000000 +0100
+++ strace-4.5.19/syscall.c 2009-10-28 18:47:18.000000000 +0100
@@ -110,6 +110,18 @@
#define TP TRACE_PROCESS
#define TS TRACE_SIGNAL
+#ifndef HAVE_STATFS64
+/*
+ * Ugly hacks for systems that do not have LFS
+ */
+
+#define sys_truncate64 sys_truncate
+#define sys_ftruncate64 sys_ftruncate
+#define sys_getdents64 sys_getdents
+#define sys_statfs64 sys_statfs
+#define sys_fstatfs64 sys_fstatfs
+#endif
+
static const struct sysent sysent0[] = {
#include "syscallent.h"
};

View File

@ -0,0 +1,53 @@
diff -durN strace-4.5.19.orig/acinclude.m4 strace-4.5.19/acinclude.m4
--- strace-4.5.19.orig/acinclude.m4 2004-04-14 04:45:53.000000000 +0200
+++ strace-4.5.19/acinclude.m4 2009-10-28 18:47:18.000000000 +0100
@@ -210,6 +210,26 @@
fi
])
+dnl ### A macro to determine whether statfs64 is defined.
+AC_DEFUN([AC_STATFS64],
+[AC_MSG_CHECKING(for statfs64 in sys/(statfs|vfs).h)
+AC_CACHE_VAL(ac_cv_type_statfs64,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
+#include <linux/types.h>
+#include <sys/statfs.h>
+#else
+#include <sys/vfs.h>
+#endif]], [[struct statfs64 st;]])],[ac_cv_type_statfs64=yes],[ac_cv_type_statfs64=no])])
+AC_MSG_RESULT($ac_cv_type_statfs64)
+if test "$ac_cv_type_statfs64" = yes
+then
+ AC_DEFINE([HAVE_STATFS64], 1,
+[Define if statfs64 is available in sys/statfs.h or sys/vfs.h.])
+fi
+])
+
+
+
dnl ### A macro to determine if off_t is a long long
AC_DEFUN([AC_OFF_T_IS_LONG_LONG],
[AC_MSG_CHECKING(for long long off_t)
diff -durN strace-4.5.19.orig/configure.ac strace-4.5.19/configure.ac
--- strace-4.5.19.orig/configure.ac 2009-10-12 21:54:43.000000000 +0200
+++ strace-4.5.19/configure.ac 2009-10-28 18:47:18.000000000 +0100
@@ -187,6 +187,7 @@
struct stat.st_level,
struct stat.st_rdev])
AC_STAT64
+AC_STATFS64
AC_TYPE_SIGNAL
AC_TYPE_UID_T
diff -durN strace-4.5.19.orig/file.c strace-4.5.19/file.c
--- strace-4.5.19.orig/file.c 2009-10-21 15:44:04.000000000 +0200
+++ strace-4.5.19/file.c 2009-10-28 18:47:18.000000000 +0100
@@ -1688,7 +1688,7 @@
return 0;
}
-#ifdef LINUX
+#ifdef HAVE_STATFS64
static void
printstatfs64(struct tcb *tcp, long addr)
{

View File

@ -0,0 +1,13 @@
diff -durN strace-4.5.19.orig/system.c strace-4.5.19/system.c
--- strace-4.5.19.orig/system.c 2009-06-01 11:59:11.000000000 +0200
+++ strace-4.5.19/system.c 2009-10-28 18:47:18.000000000 +0100
@@ -1654,7 +1654,9 @@
{ CTL_KERN, "CTL_KERN" },
{ CTL_VM, "CTL_VM" },
{ CTL_NET, "CTL_NET" },
+#ifdef CTL_PROC
{ CTL_PROC, "CTL_PROC" },
+#endif
{ CTL_FS, "CTL_FS" },
{ CTL_DEBUG, "CTL_DEBUG" },
{ CTL_DEV, "CTL_DEV" },

View File

@ -0,0 +1,42 @@
diff -durN strace-4.5.19.orig/linux/syscallent.h strace-4.5.19/linux/syscallent.h
--- strace-4.5.19.orig/linux/syscallent.h 2009-09-01 21:53:29.000000000 +0200
+++ strace-4.5.19/linux/syscallent.h 2009-10-28 18:47:18.000000000 +0100
@@ -130,7 +130,11 @@
{ 2, TF, sys_statfs, "statfs" }, /* 99 */
{ 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */
{ 3, 0, sys_ioperm, "ioperm" }, /* 101 */
- { 2, TD, sys_socketcall, "socketcall", SYS_socketcall }, /* 102 */
+ { 2, TD, sys_socketcall, "socketcall"
+#ifdef __NR_socketcall
+ , SYS_socketcall
+#endif
+ }, /* 102 */
{ 3, 0, sys_syslog, "syslog" }, /* 103 */
{ 3, 0, sys_setitimer, "setitimer" }, /* 104 */
{ 2, 0, sys_getitimer, "getitimer" }, /* 105 */
@@ -145,7 +149,11 @@
{ 4, TP, sys_wait4, "wait4", SYS_wait4 }, /* 114 */
{ 1, 0, sys_swapoff, "swapoff" }, /* 115 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
- { 6, 0, sys_ipc, "ipc", SYS_ipc }, /* 117 */
+ { 6, 0, sys_ipc, "ipc"
+#ifdef __NR_ipc
+ , SYS_ipc
+#endif
+ }, /* 117 */
{ 1, TD, sys_fsync, "fsync" }, /* 118 */
{ 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone", SYS_clone }, /* 120 */
@@ -282,7 +290,11 @@
{ 3, 0, sys_io_cancel, "io_cancel" }, /* 249 */
{ 5, 0, sys_fadvise64, "fadvise64" }, /* 250 */
{ 5, 0, printargs, "SYS_251" }, /* 251 */
- { 1, TP, sys_exit, "exit_group", __NR_exit_group }, /* 252 */
+ { 1, TP, sys_exit, "exit_group"
+#ifdef __NR_exit_group
+ , __NR_exit_group
+#endif
+ }, /* 252 */
{ 4, 0, printargs, "lookup_dcookie"}, /* 253 */
{ 1, 0, sys_epoll_create, "epoll_create" }, /* 254 */
{ 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 255 */