Update strace to 4.5.17:

- forward-port the patchset from strace-4.5.16 to 4.5.17
- add a new patch from  Michael Abbott (#170)

 /trunk/patches/strace/4.5.17/100-autoreconf.patch                      |   16    10     6     0 ++--
 /trunk/patches/strace/4.5.17/150-undef-CTL_PROC.patch                  |    8     6     2     0 +-
 /trunk/patches/strace/4.5.17/140-statfs64-check.patch                  |   28    16    12     0 ++++---
 /trunk/patches/strace/4.5.17/160-undef-syscall.patch                   |   24    14    10     0 +++---
 /trunk/patches/strace/4.5.17/110-dont-use-REG_SYSCALL-for-sh.patch     |   10     7     3     0 +-
 /trunk/patches/strace/4.5.17/120-fix-arm-bad-syscall.patch             |   10     7     3     0 +-
 /trunk/patches/strace/4.5.17/130-fix-disabled-largefile-syscalls.patch |   10     7     3     0 +-
 /trunk/patches/strace/4.5.17/170-arm-syscalls.patch                    |   42    42     0     0 ++++++++++
 /trunk/config/debug/strace.in                                          |    5     5     0     0 +
 9 files changed, 114 insertions(+), 39 deletions(-)
This commit is contained in:
Yann E. MORIN" 2008-10-25 15:44:05 +00:00
parent 0c063fad74
commit d64cca93c6
9 changed files with 334 additions and 0 deletions

View File

@ -24,6 +24,10 @@ config STRACE_V_4_5_16
bool
prompt "4.5.16"
config STRACE_V_4_5_17
bool
prompt "4.5.17"
config STRACE_V_4_5_18
bool
prompt "4.5.18 (EXPERIMENTAL)"
@ -39,6 +43,7 @@ config STRACE_VERSION
default "4.5.14" if STRACE_V_4_5_14
default "4.5.15" if STRACE_V_4_5_15
default "4.5.16" if STRACE_V_4_5_16
default "4.5.17" if STRACE_V_4_5_17
default "4.5.18" if STRACE_V_4_5_18
# CT_INSERT_VERSION_STRING_ABOVE
# # Don't remove above line!

View File

@ -0,0 +1,81 @@
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/100-autoreconf.patch
-= BEGIN original header =-
diff -dur strace-4.5.16.orig/configure strace-4.5.16/configure
-= END original header =-
diff -durN strace-4.5.17.orig/configure strace-4.5.17/configure
--- strace-4.5.17.orig/configure 2008-07-22 02:43:21.000000000 +0200
+++ strace-4.5.17/configure 2008-10-24 21:30:13.000000000 +0200
@@ -5808,6 +5808,73 @@
fi
+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
+
{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5
echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; }

View File

@ -0,0 +1,15 @@
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/110-dont-use-REG_SYSCALL-for-sh.patch
-= BEGIN original header =-
diff -dur strace-4.5.16.orig/process.c strace-4.5.16/process.c
-= END original header =-
diff -durN strace-4.5.17.orig/process.c strace-4.5.17/process.c
--- strace-4.5.17.orig/process.c 2008-07-18 04:16:47.000000000 +0200
+++ strace-4.5.17/process.c 2008-10-24 21:30:13.000000000 +0200
@@ -2726,7 +2726,6 @@
{ 4*REG_GBR, "4*REG_GBR" },
{ 4*REG_MACH, "4*REG_MACH" },
{ 4*REG_MACL, "4*REG_MACL" },
- { 4*REG_SYSCALL, "4*REG_SYSCALL" },
{ 4*REG_FPUL, "4*REG_FPUL" },
{ 4*REG_FPREG0, "4*REG_FPREG0" },
{ 4*(REG_FPREG0+1), "4*REG_FPREG1" },

View File

@ -0,0 +1,23 @@
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/120-fix-arm-bad-syscall.patch
-= BEGIN original header =-
diff -dur strace-4.5.16.orig/syscall.c strace-4.5.16/syscall.c
-= END original header =-
diff -durN strace-4.5.17.orig/syscall.c strace-4.5.17/syscall.c
--- strace-4.5.17.orig/syscall.c 2008-05-28 01:18:29.000000000 +0200
+++ strace-4.5.17/syscall.c 2008-10-24 21:30:13.000000000 +0200
@@ -1016,6 +1016,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,26 @@
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/130-fix-disabled-largefile-syscalls.patch
-= BEGIN original header =-
diff -dur strace-4.5.16.orig/syscall.c strace-4.5.16/syscall.c
-= END original header =-
diff -durN strace-4.5.17.orig/syscall.c strace-4.5.17/syscall.c
--- strace-4.5.17.orig/syscall.c 2008-10-24 21:30:13.000000000 +0200
+++ strace-4.5.17/syscall.c 2008-10-24 21:30:13.000000000 +0200
@@ -125,6 +125,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,57 @@
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/140-statfs64-check.patch
-= BEGIN original header =-
diff -dur strace-4.5.16.orig/acinclude.m4 strace-4.5.16/acinclude.m4
-= END original header =-
diff -durN strace-4.5.17.orig/acinclude.m4 strace-4.5.17/acinclude.m4
--- strace-4.5.17.orig/acinclude.m4 2004-04-14 04:21:01.000000000 +0200
+++ strace-4.5.17/acinclude.m4 2008-10-24 21:30:13.000000000 +0200
@@ -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.17.orig/configure.ac strace-4.5.17/configure.ac
--- strace-4.5.17.orig/configure.ac 2008-07-22 02:42:29.000000000 +0200
+++ strace-4.5.17/configure.ac 2008-10-24 21:30:13.000000000 +0200
@@ -169,6 +169,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.17.orig/file.c strace-4.5.17/file.c
--- strace-4.5.17.orig/file.c 2008-05-20 06:56:18.000000000 +0200
+++ strace-4.5.17/file.c 2008-10-24 21:30:13.000000000 +0200
@@ -1703,7 +1703,7 @@
return 0;
}
-#ifdef LINUX
+#ifdef HAVE_STATFS64
static void
printstatfs64(tcp, addr)
struct tcb *tcp;

View File

@ -0,0 +1,17 @@
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/150-undef-CTL_PROC.patch
-= BEGIN original header =-
diff -dur strace-4.5.16.orig/system.c strace-4.5.16/system.c
-= END original header =-
diff -durN strace-4.5.17.orig/system.c strace-4.5.17/system.c
--- strace-4.5.17.orig/system.c 2007-01-17 00:22:36.000000000 +0100
+++ strace-4.5.17/system.c 2008-10-24 21:30:13.000000000 +0200
@@ -1612,7 +1612,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,68 @@
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/160-undef-syscall.patch
-= BEGIN original header =-
diff -dur strace-4.5.16.orig/linux/syscallent.h strace-4.5.16/linux/syscallent.h
-= END original header =-
diff -durN strace-4.5.17.orig/linux/syscallent.h strace-4.5.17/linux/syscallent.h
--- strace-4.5.17.orig/linux/syscallent.h 2008-07-18 03:23:49.000000000 +0200
+++ strace-4.5.17/linux/syscallent.h 2008-10-24 21:30:13.000000000 +0200
@@ -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 */
diff -durN strace-4.5.17.orig/syscall.c strace-4.5.17/syscall.c
--- strace-4.5.17.orig/syscall.c 2008-10-24 21:30:13.000000000 +0200
+++ strace-4.5.17/syscall.c 2008-10-24 21:30:13.000000000 +0200
@@ -2452,14 +2452,18 @@
switch (known_scno(tcp)) {
#ifdef LINUX
#if !defined (ALPHA) && !defined(MIPS) && !defined(HPPA)
+#ifdef __NR_socketcall
case SYS_socketcall:
decode_subcall(tcp, SYS_socket_subcall,
SYS_socket_nsubcalls, deref_style);
break;
+#endif
+#ifdef __NR_ipc
case SYS_ipc:
decode_subcall(tcp, SYS_ipc_subcall,
SYS_ipc_nsubcalls, shift_style);
break;
+#endif
#endif /* !(ALPHA || MIPS || HPPA) */
#endif /* LINUX */
#ifdef SVR4

View File

@ -0,0 +1,42 @@
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/170-arm-syscalls.patch
-= BEGIN original header =-
Author: Michael Abbott <michael.abbott@diamond.ac.uk>
Date: Wed Oct 22 08:53:42 2008 +0100
Syscall patch for ARM
Patch mailed to strace mailing list by Anderson Lizardo, work by
Bruna Moreira, dated 2008-01-25. Patch cleaned up against 4.5.17 release.
diff --git a/linux/arm/errnoent1.h b/linux/arm/errnoent1.h
new file mode 100644
index 0000000..a894827
-= END original header =-
diff -durN b/linux/arm/errnoent1.h b/linux/arm/errnoent1.h
--- b/linux/arm/errnoent1.h 1970-01-01 01:00:00.000000000 +0100
+++ b/linux/arm/errnoent1.h 2008-10-24 21:30:13.000000000 +0200
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../errnoent.h"
diff -durN b/linux/arm/ioctlent1.h b/linux/arm/ioctlent1.h
--- b/linux/arm/ioctlent1.h 1970-01-01 01:00:00.000000000 +0100
+++ b/linux/arm/ioctlent1.h 2008-10-24 21:30:13.000000000 +0200
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../ioctlent.h"
diff -durN b/linux/arm/signalent1.h b/linux/arm/signalent1.h
--- b/linux/arm/signalent1.h 1970-01-01 01:00:00.000000000 +0100
+++ b/linux/arm/signalent1.h 2008-10-24 21:30:13.000000000 +0200
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../signalent.h"
diff -durN b/linux/arm/syscallent1.h b/linux/arm/syscallent1.h
--- b/linux/arm/syscallent1.h 1970-01-01 01:00:00.000000000 +0100
+++ b/linux/arm/syscallent1.h 2008-10-24 21:30:13.000000000 +0200
@@ -0,0 +1,7 @@
+/* ARM specific syscalls */
+ { 5, 0, printargs, "SYS_0" }, /* 0 */
+ { 5, 0, printargs, "breakpoint" }, /* 1 */
+ { 5, 0, printargs, "cacheflush" }, /* 2 */
+ { 5, 0, printargs, "usr26" }, /* 3 */
+ { 5, 0, printargs, "usr32" }, /* 4 */
+ { 5, 0, printargs, "set_tls" }, /* 5 */