Robert P. J. DAY says:

Add support for the selection of strace-4.5.16, including an updated
set of patches from strace-4.5.15.
This commit is contained in:
Yann E. MORIN" 2008-02-15 21:18:10 +00:00
parent 94b68d94dc
commit eb0ad87b2a
11 changed files with 304 additions and 1 deletions

View File

@ -25,6 +25,10 @@ config STRACE_V_4_5_15
bool
prompt "4.5.15"
config STRACE_V_4_5_16
bool
prompt "4.5.16"
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
endchoice
@ -34,6 +38,7 @@ config STRACE_VERSION
default "4.5" if STRACE_V_4_5
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
# CT_INSERT_VERSION_STRING_ABOVE
# # Don't remove above line!

View File

@ -9,7 +9,7 @@ I would like to thank these fine people for making crosstool-NG possible:
And in order of appearance on the crossgcc ML:
Allan CLARK for his investigations on building toolchains on MacOS-X.
Allan made extensive tests of the first alpha of crosstool-NG-ng on his
Allan made extensive tests of the first alpha of crosstool-NG on his
MacOS-X, and unveiled some bash-2.05 weirdness.
Enrico WEIGELT
@ -23,6 +23,7 @@ And in order of appearance on the crossgcc ML:
- 'sanitised' patches for binutils-2.17
- patches for glibc-2.5
- misc patches, typos and eye candy
- too many to list any more!
Al Stone:
- initial ia64 support

View File

@ -0,0 +1,77 @@
diff -dur strace-4.5.16.orig/configure strace-4.5.16/configure
--- strace-4.5.16.orig/configure 2007-01-11 23:23:33.000000000 +0100
+++ strace-4.5.16/configure 2007-07-14 19:18:43.000000000 +0200
@@ -5808,6 +5777,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,11 @@
diff -dur strace-4.5.16.orig/process.c strace-4.5.16/process.c
--- strace-4.5.16.orig/process.c 2007-01-11 23:08:38.000000000 +0100
+++ strace-4.5.16/process.c 2007-07-14 19:19:58.000000000 +0200
@@ -2685,7 +2685,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,19 @@
diff -dur strace-4.5.16.orig/syscall.c strace-4.5.16/syscall.c
--- strace-4.5.16.orig/syscall.c 2006-12-21 23:13:33.000000000 +0100
+++ strace-4.5.16/syscall.c 2007-07-14 19:21:44.000000000 +0200
@@ -1045,6 +1045,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 -dur strace-4.5.16.orig/syscall.c strace-4.5.16/syscall.c
--- strace-4.5.16.orig/syscall.c 2007-07-14 19:21:44.000000000 +0200
+++ strace-4.5.16/syscall.c 2007-07-14 19:22:49.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,53 @@
diff -dur strace-4.5.16.orig/acinclude.m4 strace-4.5.16/acinclude.m4
--- strace-4.5.16.orig/acinclude.m4 2004-04-14 04:21:01.000000000 +0200
+++ strace-4.5.16/acinclude.m4 2007-07-14 19:25:25.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 -dur strace-4.5.16.orig/configure.ac strace-4.5.16/configure.ac
--- strace-4.5.16.orig/configure.ac 2007-01-11 12:37:55.000000000 +0100
+++ strace-4.5.16/configure.ac 2007-07-14 19:25:25.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 -dur strace-4.5.16.orig/file.c strace-4.5.16/file.c
--- strace-4.5.16.orig/file.c 2007-01-15 21:25:52.000000000 +0100
+++ strace-4.5.16/file.c 2007-07-14 19:25:25.000000000 +0200
@@ -1636,7 +1636,7 @@
return 0;
}
-#ifdef LINUX
+#ifdef HAVE_STATFS64
static void
printstatfs64(tcp, addr)
struct tcb *tcp;

View File

@ -0,0 +1,22 @@
diff -dur strace-4.5.16.orig/configure.ac strace-4.5.16/configure.ac
--- strace-4.5.16.orig/configure.ac 2007-07-14 19:25:25.000000000 +0200
+++ strace-4.5.16/configure.ac 2007-07-14 19:27:35.000000000 +0200
@@ -91,14 +91,14 @@
arch=hppa
AC_DEFINE([HPPA], 1, [Define for the HPPA architecture.])
;;
-sh)
- arch=sh
- AC_DEFINE([SH], 1, [Define for the SH architecture.])
- ;;
sh64)
arch=sh64
AC_DEFINE([SH64], 1, [Define for the SH64 architecture.])
;;
+sh*)
+ arch=sh
+ AC_DEFINE([SH], 1, [Define for the SH architecture.])
+ ;;
x86?64*)
arch=x86_64
AC_DEFINE([X86_64], 1, [Define for the AMD x86-64 architecture.])

View File

@ -0,0 +1,13 @@
diff -dur strace-4.5.16.orig/system.c strace-4.5.16/system.c
--- strace-4.5.16.orig/system.c 2007-01-17 00:22:36.000000000 +0100
+++ strace-4.5.16/system.c 2007-07-14 19:28:41.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,16 @@
diff -dur strace-4.5.16.orig/net.c strace-4.5.16/net.c
--- strace-4.5.16.orig/net.c 2006-12-13 20:57:23.000000000 +0100
+++ strace-4.5.16/net.c 2007-07-14 19:29:36.000000000 +0200
@@ -800,8 +800,12 @@
#ifdef SOL_PACKET
static const struct xlat sockpacketoptions[] = {
+#if defined(PACKET_ADD_MEMBERSHIP)
{ PACKET_ADD_MEMBERSHIP, "PACKET_ADD_MEMBERSHIP" },
+#endif
+#if defined(PACKET_DROP_MEMBERSHIP)
{ PACKET_DROP_MEMBERSHIP, "PACKET_DROP_MEMBERSHIP"},
+#endif
#if defined(PACKET_RECV_OUTPUT)
{ PACKET_RECV_OUTPUT, "PACKET_RECV_OUTPUT" },
#endif

View File

@ -0,0 +1,64 @@
diff -dur strace-4.5.16.orig/linux/syscallent.h strace-4.5.16/linux/syscallent.h
--- strace-4.5.16.orig/linux/syscallent.h 2006-10-16 03:17:52.000000000 +0200
+++ strace-4.5.16/linux/syscallent.h 2007-07-14 19:30:16.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 -dur strace-4.5.16.orig/syscall.c strace-4.5.16/syscall.c
--- strace-4.5.16.orig/syscall.c 2007-07-14 19:22:49.000000000 +0200
+++ strace-4.5.16/syscall.c 2007-07-14 19:30:16.000000000 +0200
@@ -2383,14 +2383,18 @@
switch (known_scno(tcp)) {
#ifdef LINUX
#if !defined (ALPHA) && !defined(SPARC) && !defined(SPARC64) && !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 && !SPARC && !SPARC64 && !HPPA */
#if defined (SPARC) || defined (SPARC64)
case SYS_socketcall: