Hello community,
here is the log from the commit of package strace
checked in at Tue Sep 2 12:15:42 CEST 2008.
--------
--- strace/strace.changes 2008-08-12 16:30:53.000000000 +0200
+++ /mounts/work_src_done/STABLE/strace/strace.changes 2008-09-02 10:24:48.000000000 +0200
@@ -1,0 +2,9 @@
+Tue Sep 2 10:23:32 CEST 2008 - schwab@suse.de
+
+- Update to strace 4.5.18.
+ * Bug fixes.
+ * Support new Linux/PPC system call subpage_prot and PROT_SAO flag.
+ * In sigaction system call, display sa_flags value along with
+ SIG_DFL/SIG_IGN.
+
+-------------------------------------------------------------------
@@ -14 +23 @@
-- Update to strace 4.5.16.
+- Update to strace 4.5.17.
Old:
----
madvice.diff
strace-4.5.17.diff
strace-4.5.17.tar.bz2
vfork.diff
New:
----
strace-4.5.18.diff
strace-4.5.18.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ strace.spec ++++++
--- /var/tmp/diff_new_pack.G20200/_old 2008-09-02 12:15:17.000000000 +0200
+++ /var/tmp/diff_new_pack.G20200/_new 2008-09-02 12:15:17.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package strace (Version 4.5.17)
+# spec file for package strace (Version 4.5.18)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -22,13 +22,11 @@
License: BSD 3-Clause
Group: Development/Tools/Debuggers
AutoReqProv: on
-Version: 4.5.17
-Release: 13
+Version: 4.5.18
+Release: 1
Summary: A utility to trace the system calls of a program
-Source: strace-%{version}.tar.bz2
+Source: http://dl.sourceforge.net/strace/strace-%{version}.tar.bz2
Patch: strace-%{version}.diff
-Patch1: vfork.diff
-Patch2: madvice.diff
Url: http://sourceforge.net/projects/strace/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -48,8 +46,6 @@
%prep
%setup -q
%patch
-%patch1
-%patch2 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS"
@@ -73,12 +69,18 @@
%doc %{_mandir}/man1/strace.1.gz
%changelog
+* Tue Sep 02 2008 schwab@suse.de
+- Update to strace 4.5.18.
+ * Bug fixes.
+ * Support new Linux/PPC system call subpage_prot and PROT_SAO flag.
+ * In sigaction system call, display sa_flags value along with
+ SIG_DFL/SIG_IGN.
* Tue Aug 12 2008 schwab@suse.de
- Add fix for madvice decoding.
* Tue Aug 05 2008 schwab@suse.de
- Add fix for vfork handling.
* Tue Jul 22 2008 schwab@suse.de
-- Update to strace 4.5.16.
+- Update to strace 4.5.17.
* Many bug fixes.
* -F is now deprecated, -f has traced vfork too on Linux for a long time
now.
++++++ strace-4.5.17.diff -> strace-4.5.18.diff ++++++
--- strace/strace-4.5.17.diff 2008-07-22 09:46:54.000000000 +0200
+++ /mounts/work_src_done/STABLE/strace/strace-4.5.18.diff 2008-09-02 10:22:34.000000000 +0200
@@ -1,13 +1,15 @@
--- process.c
+++ process.c
-@@ -765,12 +765,12 @@ setarg(tcp, argnum)
+@@ -765,12 +765,13 @@ setarg(tcp, argnum)
{
#if defined (IA64)
{
- unsigned long *bsp, *ap;
-+ unsigned long bsp, *ap;
++ unsigned long *ap;
++ long bsp;
- if (upeek(tcp->pid, PT_AR_BSP, (long *) &bsp) , 0)
+- if (upeek(tcp->pid, PT_AR_BSP, (long *) &bsp) , 0)
++ if (upeek(tcp->pid, PT_AR_BSP, &bsp) , 0)
return -1;
- ap = ia64_rse_skip_regs(bsp, argnum);
@@ -15,7 +17,7 @@
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[] =
+@@ -2289,6 +2290,18 @@ static const struct xlat ptrace_cmds[] =
#ifdef PTRACE_SETVRREGS
{ PTRACE_SETVRREGS, "PTRACE_SETVRREGS", },
#endif
@@ -61,45 +63,16 @@
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
+@@ -1319,9 +1319,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);
+- bsp = (long) ia64_rse_skip_regs((unsigned long *) bsp, -sof + sol);
+ *state = ia64_rse_skip_regs((unsigned long *) bsp, -sof + sol);
-- *state = bsp;
+- *state = (unsigned long *) bsp;
return 0;
}
++++++ strace-4.5.17.tar.bz2 -> strace-4.5.18.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/ChangeLog new/strace-4.5.18/ChangeLog
--- old/strace-4.5.17/ChangeLog 2008-07-22 02:42:54.000000000 +0200
+++ new/strace-4.5.18/ChangeLog 2008-08-28 23:19:51.000000000 +0200
@@ -1,3 +1,74 @@
+2008-08-28 Roland McGrath
+
+ * configure.ac, NEWS: Version 4.5.18.
+ * strace.spec: 4.5.18-1.
+
+2008-08-24 Roland McGrath
+
+ * linux/syscall.h (SYS_socket_subcall et al, SYS_ipc_subcall et al):
+ Don't define these if [__ARM_EABI__].
+ Reported by Johannes Stezenbach .
+
+ * syscall.c (trace_syscall): Conditionalize on [SYS_socket_subcall]
+ and [SYS_ipc_subcall] individually.
+
+ * linux/powerpc/syscallent.h: Handle subpage_prot.
+ * mem.c [LINUX && POWERPC] (sys_subpage_prot): New function.
+ * linux/syscall.h [POWERPC]: Declare it.
+ From Simon Murray .
+
+ * mem.c (mmap_prot): Handle PROT_SAO.
+ From Simon Murray .
+
+ * mem.c (madvise_flags): Typo fixes. Rename to madvise_cmds.
+ (sys_madvise): Use printxval, not printflags.
+ Reported by Rajeev V. Pillai .
+
+2008-08-19 Roland McGrath
+
+ * signal.c (sys_sigaction, sys_rt_sigaction): Don't omit the rest of
+ the struct after sa_handler is a known constant. Some sa_flags bits
+ have meaning even for SIG_IGN/SIG_DFL.
+
+2008-08-06 Jan Kratochvil
+
+ * util.c (CLONE_VM): Define if not defined already.
+ (setbpt): Clear CLONE_VM in the case we already clear CLONE_VFORK for
+ SYS_clone and SYS_clone2.
+ Reported by Michal Nowak.
+ Fixes RH#455078.
+
+2008-08-06 Jan Kratochvil
+
+ Fix compiler warnings.
+ * signal.c (sys_signal): Cast to SIG_* to the matching type LONG.
+ * strace.c (trace): Variables PSR and PC are now signed.
+ * syscall.c (syscall_enter): Variable RBS_END is now signed long.
+ Remove/add the RBS_END casts appropriately.
+ * util.c [IA64] (arg_setup): Variable BSP is now signed long.
+ Remove/add the BSP casts appropriately.
+ <ia32>: Initialize *STATE.
+
+2008-07-31 Roland McGrath
+
+ * Makefile.am (EXTRA_DIST): Add new linux/arm/ files.
+
+ * file.c [LINUX] (struct kernel_dirent): Define it locally,
+ do not use .
+ Fixes RH#457291.
+
+ * configure.ac: Add AC_HEADER_STDBOOL.
+ * defs.h [HAVE_STDBOOL_H]: #include .
+ Fixes Debian#492774.
+
+2008-07-24 Dmitry V. Levin
+
+ * strace.c (main): Fix -F option backwards compatibility.
+
+2008-07-22 Roland McGrath
+
+ * Makefile.am (EXTRA_DIST): Add new debian/ files.
+
2008-07-21 Roland McGrath
* configure.ac: Version 4.5.17.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/config.h.in new/strace-4.5.18/config.h.in
--- old/strace-4.5.17/config.h.in 2008-07-22 02:43:42.000000000 +0200
+++ new/strace-4.5.18/config.h.in 2008-08-28 23:36:28.000000000 +0200
@@ -143,6 +143,9 @@
/* Define if stat64 is available in asm/stat.h. */
#undef HAVE_STAT64
+/* Define to 1 if stdbool.h conforms to C99. */
+#undef HAVE_STDBOOL_H
+
/* Define to 1 if you have the header file. */
#undef HAVE_STDINT_H
@@ -304,6 +307,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_UNISTD_H
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
/* Define to 1 if you have the `_sys_siglist' function. */
#undef HAVE__SYS_SIGLIST
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/configure new/strace-4.5.18/configure
--- old/strace-4.5.17/configure 2008-07-22 02:43:21.000000000 +0200
+++ new/strace-4.5.18/configure 2008-08-28 23:36:06.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for strace 4.5.17.
+# Generated by GNU Autoconf 2.61 for strace 4.5.18.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -572,8 +572,8 @@
# Identity of this package.
PACKAGE_NAME='strace'
PACKAGE_TARNAME='strace'
-PACKAGE_VERSION='4.5.17'
-PACKAGE_STRING='strace 4.5.17'
+PACKAGE_VERSION='4.5.18'
+PACKAGE_STRING='strace 4.5.18'
PACKAGE_BUGREPORT=''
ac_unique_file="strace.c"
@@ -1232,7 +1232,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures strace 4.5.17 to adapt to many kinds of systems.
+\`configure' configures strace 4.5.18 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1302,7 +1302,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of strace 4.5.17:";;
+ short | recursive ) echo "Configuration of strace 4.5.18:";;
esac
cat <<\_ACEOF
@@ -1387,7 +1387,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-strace configure 4.5.17
+strace configure 4.5.18
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1401,7 +1401,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by strace $as_me 4.5.17, which was
+It was created by strace $as_me 4.5.18, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2094,7 +2094,7 @@
# Define the identity of the package.
PACKAGE='strace'
- VERSION='4.5.17'
+ VERSION='4.5.18'
cat >>confdefs.h <<_ACEOF
@@ -4557,6 +4557,261 @@
fi
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+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. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_Header=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+{ echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5
+echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6; }
+if test "${ac_cv_header_stdbool_h+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. */
+
+#include
+#ifndef bool
+ "error: bool is not defined"
+#endif
+#ifndef false
+ "error: false is not defined"
+#endif
+#if false
+ "error: false is not 0"
+#endif
+#ifndef true
+ "error: true is not defined"
+#endif
+#if true != 1
+ "error: true is not 1"
+#endif
+#ifndef __bool_true_false_are_defined
+ "error: __bool_true_false_are_defined is not defined"
+#endif
+
+ struct s { _Bool s: 1; _Bool t; } s;
+
+ char a[true == 1 ? 1 : -1];
+ char b[false == 0 ? 1 : -1];
+ char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+ char d[(bool) 0.5 == true ? 1 : -1];
+ bool e = &s;
+ char f[(_Bool) 0.0 == false ? 1 : -1];
+ char g[true];
+ char h[sizeof (_Bool)];
+ char i[sizeof s.t];
+ enum { j = false, k = true, l = false * true, m = true * 256 };
+ _Bool n[m];
+ char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+ char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+# if defined __xlc__ || defined __GNUC__
+ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
+ reported by James Lemley on 2005-10-05; see
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+ This test is not quite right, since xlc is allowed to
+ reject this program, as the initializer for xlcbug is
+ not one of the forms that C requires support for.
+ However, doing the test right would require a runtime
+ test, and that would make cross-compilation harder.
+ Let us hope that IBM fixes the xlc bug, and also adds
+ support for this kind of constant expression. In the
+ meantime, this test will reject xlc, which is OK, since
+ our stdbool.h substitute should suffice. We also test
+ this with GCC, where it should work, to detect more
+ quickly whether someone messes up the test in the
+ future. */
+ char digs[] = "0123456789";
+ int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
+# endif
+ /* Catch a bug in an HP-UX C compiler. See
+ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ */
+ _Bool q = true;
+ _Bool *pq = &q;
+
+int
+main ()
+{
+
+ *pq |= q;
+ *pq |= ! q;
+ /* Refer to every declared value, to avoid compiler optimizations. */
+ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+ + !m + !n + !o + !p + !q + !pq);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_header_stdbool_h=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_header_stdbool_h=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
+echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6; }
+{ echo "$as_me:$LINENO: checking for _Bool" >&5
+echo $ECHO_N "checking for _Bool... $ECHO_C" >&6; }
+if test "${ac_cv_type__Bool+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. */
+$ac_includes_default
+typedef _Bool ac__type_new_;
+int
+main ()
+{
+if ((ac__type_new_ *) 0)
+ return 0;
+if (sizeof (ac__type_new_))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_type__Bool=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_type__Bool=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
+echo "${ECHO_T}$ac_cv_type__Bool" >&6; }
+if test $ac_cv_type__Bool = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 1
+_ACEOF
+
+
+fi
+
+if test $ac_cv_header_stdbool_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STDBOOL_H 1
+_ACEOF
+
+fi
+
@@ -4866,75 +5121,6 @@
fi
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+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. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
{ echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5
echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6; }
if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then
@@ -9408,7 +9594,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by strace $as_me 4.5.17, which was
+This file was extended by strace $as_me 4.5.18, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -9461,7 +9647,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-strace config.status 4.5.17
+strace config.status 4.5.18
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/configure.ac new/strace-4.5.18/configure.ac
--- old/strace-4.5.17/configure.ac 2008-07-22 02:42:29.000000000 +0200
+++ new/strace-4.5.18/configure.ac 2008-08-28 23:15:56.000000000 +0200
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to create configure. Use autoreconf.
AC_PREREQ(2.57)
-AC_INIT([strace],[4.5.17])
+AC_INIT([strace],[4.5.18])
AC_CONFIG_SRCDIR([strace.c])
AM_CONFIG_HEADER([config.h])
AM_INIT_AUTOMAKE([foreign check-news dist-bzip2])
@@ -158,6 +158,7 @@
AC_PROG_INSTALL
AC_C_CONST
AC_HEADER_STDC
+AC_HEADER_STDBOOL
AC_HEADER_DIRENT
AC_HEADER_STAT
AC_CHECK_MEMBERS([struct stat.st_blksize,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/debian/compat new/strace-4.5.18/debian/compat
--- old/strace-4.5.17/debian/compat 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/debian/compat 2008-07-18 02:47:53.000000000 +0200
@@ -0,0 +1 @@
+5
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/debian/strace64.install new/strace-4.5.18/debian/strace64.install
--- old/strace-4.5.17/debian/strace64.install 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/debian/strace64.install 2008-07-22 02:25:23.000000000 +0200
@@ -0,0 +1 @@
+build64/strace64 usr/bin
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/debian/strace64.manpages new/strace-4.5.18/debian/strace64.manpages
--- old/strace-4.5.17/debian/strace64.manpages 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/debian/strace64.manpages 2008-07-22 02:25:23.000000000 +0200
@@ -0,0 +1 @@
+strace64.1
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/debian/strace.docs new/strace-4.5.18/debian/strace.docs
--- old/strace-4.5.17/debian/strace.docs 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/debian/strace.docs 2008-07-18 02:42:39.000000000 +0200
@@ -0,0 +1,2 @@
+TODO
+NEWS
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/debian/strace.examples new/strace-4.5.18/debian/strace.examples
--- old/strace-4.5.17/debian/strace.examples 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/debian/strace.examples 2008-07-18 02:42:39.000000000 +0200
@@ -0,0 +1 @@
+strace-graph
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/debian/strace.install new/strace-4.5.18/debian/strace.install
--- old/strace-4.5.17/debian/strace.install 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/debian/strace.install 2008-07-18 02:42:39.000000000 +0200
@@ -0,0 +1 @@
+build/strace usr/bin
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/debian/strace.manpages new/strace-4.5.18/debian/strace.manpages
--- old/strace-4.5.17/debian/strace.manpages 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/debian/strace.manpages 2008-07-18 02:42:39.000000000 +0200
@@ -0,0 +1 @@
+strace.1
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/debian/strace-udeb.install new/strace-4.5.18/debian/strace-udeb.install
--- old/strace-4.5.17/debian/strace-udeb.install 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/debian/strace-udeb.install 2008-07-18 02:42:39.000000000 +0200
@@ -0,0 +1 @@
+build/strace usr/bin
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/defs.h new/strace-4.5.18/defs.h
--- old/strace-4.5.17/defs.h 2008-07-22 02:30:26.000000000 +0200
+++ new/strace-4.5.18/defs.h 2008-08-01 03:06:31.000000000 +0200
@@ -26,7 +26,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: defs.h,v 1.82 2008/07/22 00:30:26 roland Exp $
+ * $Id: defs.h,v 1.83 2008/08/01 01:06:31 roland Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -80,6 +80,10 @@
#include
#include
+#ifdef HAVE_STDBOOL_H
+#include
+#endif
+
#ifdef STDC_HEADERS
#include
#endif /* STDC_HEADERS */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/file.c new/strace-4.5.18/file.c
--- old/strace-4.5.17/file.c 2008-05-20 06:56:18.000000000 +0200
+++ new/strace-4.5.18/file.c 2008-08-01 03:13:10.000000000 +0200
@@ -28,21 +28,22 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: file.c,v 1.92 2008/05/20 04:56:18 roland Exp $
+ * $Id: file.c,v 1.93 2008/08/01 01:13:10 roland Exp $
*/
#include "defs.h"
#include
+
#ifdef LINUX
-#define dirent kernel_dirent
-#define dirent64 kernel_dirent64
-#include
-#include
-#undef dirent
-#undef dirent64
+struct kernel_dirent {
+ unsigned long d_ino;
+ unsigned long d_off;
+ unsigned short d_reclen;
+ char d_name[1];
+};
#else
-#define kernel_dirent dirent
+# define kernel_dirent dirent
#endif
#ifdef LINUX
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/linux/arm/errnoent1.h new/strace-4.5.18/linux/arm/errnoent1.h
--- old/strace-4.5.17/linux/arm/errnoent1.h 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/linux/arm/errnoent1.h 2008-05-20 03:31:36.000000000 +0200
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../errnoent.h"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/linux/arm/ioctlent1.h new/strace-4.5.18/linux/arm/ioctlent1.h
--- old/strace-4.5.17/linux/arm/ioctlent1.h 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/linux/arm/ioctlent1.h 2008-05-20 03:31:36.000000000 +0200
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../ioctlent.h"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/linux/arm/signalent1.h new/strace-4.5.18/linux/arm/signalent1.h
--- old/strace-4.5.17/linux/arm/signalent1.h 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/linux/arm/signalent1.h 2008-05-20 03:31:36.000000000 +0200
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../signalent.h"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/linux/arm/syscallent1.h new/strace-4.5.18/linux/arm/syscallent1.h
--- old/strace-4.5.17/linux/arm/syscallent1.h 1970-01-01 01:00:00.000000000 +0100
+++ new/strace-4.5.18/linux/arm/syscallent1.h 2008-05-20 03:31:36.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 */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/linux/powerpc/syscallent.h new/strace-4.5.18/linux/powerpc/syscallent.h
--- old/strace-4.5.17/linux/powerpc/syscallent.h 2008-07-22 02:22:05.000000000 +0200
+++ new/strace-4.5.18/linux/powerpc/syscallent.h 2008-08-25 05:09:16.000000000 +0200
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscallent.h,v 1.34 2008/07/22 00:22:05 roland Exp $
+ * $Id: syscallent.h,v 1.35 2008/08/25 03:09:16 roland Exp $
*/
{ 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */
@@ -339,7 +339,7 @@
{ 1, TD, sys_eventfd, "eventfd" }, /* 307 */
{ 5, 0, printargs, "SYS_308" }, /* 308 */
{ 5, 0, printargs, "SYS_309" }, /* 309 */
- { 5, 0, printargs, "SYS_310" }, /* 310 */
+ { 3, 0, sys_subpage_prot, "subpage_prot" }, /* 310 */
{ 5, 0, printargs, "SYS_311" }, /* 311 */
{ 5, 0, printargs, "SYS_312" }, /* 312 */
{ 5, 0, printargs, "SYS_313" }, /* 313 */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/linux/syscall.h new/strace-4.5.18/linux/syscall.h
--- old/strace-4.5.17/linux/syscall.h 2008-05-20 06:56:22.000000000 +0200
+++ new/strace-4.5.18/linux/syscall.h 2008-08-25 05:15:43.000000000 +0200
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscall.h,v 1.57 2008/05/20 04:56:22 roland Exp $
+ * $Id: syscall.h,v 1.59 2008/08/25 03:15:43 roland Exp $
*/
#include "dummy.h"
@@ -179,7 +179,8 @@
# endif
#endif
-#if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA)
+#if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \
+ !defined(__ARM_EABI__)
# ifdef IA64
/*
* IA64 syscall numbers (the only ones available from standard header
@@ -234,7 +235,8 @@
int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl();
int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl();
-#if !defined(ALPHA) && !defined(MIPS) && !defined(SPARC) && !defined(HPPA)
+#if !defined(ALPHA) && !defined(MIPS) && !defined(SPARC) && !defined(HPPA) && \
+ !defined(__ARM_EABI__)
# ifdef IA64
/*
* IA64 syscall numbers (the only ones available from standard
@@ -320,3 +322,7 @@
#endif
int sys_pread64(), sys_pwrite64();
+
+#ifdef POWERPC
+int sys_subpage_prot();
+#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/Makefile.am new/strace-4.5.18/Makefile.am
--- old/strace-4.5.17/Makefile.am 2007-07-03 04:07:28.000000000 +0200
+++ new/strace-4.5.18/Makefile.am 2008-08-01 03:15:09.000000000 +0200
@@ -20,6 +20,9 @@
EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \
debian/changelog debian/control debian/copyright debian/rules \
+ debian/compat debian/strace64.install debian/strace64.manpages \
+ debian/strace.docs debian/strace.examples debian/strace.install \
+ debian/strace.manpages debian/strace-udeb.install \
strace.spec \
strace-graph COPYRIGHT CREDITS PORTING \
README-CVS README-freebsd README-linux README-sunos4 README-svr4 \
@@ -28,7 +31,9 @@
linux/syscall.h linux/syscallent.h linux/dummy.h \
linux/alpha/errnoent.h linux/alpha/ioctlent.h \
linux/alpha/signalent.h linux/alpha/syscallent.h \
- linux/arm/syscallent.h \
+ linux/arm/syscallent.h linux/arm/syscallent1.h \
+ linux/arm/signalent1.h linux/arm/ioctlent1.h \
+ linux/arm/errnoent1.h \
linux/hppa/errnoent.h linux/hppa/ioctlent.h \
linux/hppa/signalent.h linux/hppa/syscallent.h \
linux/ia64/syscallent.h linux/ia64/errnoent.h \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/Makefile.in new/strace-4.5.18/Makefile.in
--- old/strace-4.5.17/Makefile.in 2008-07-22 02:43:21.000000000 +0200
+++ new/strace-4.5.18/Makefile.in 2008-08-28 23:36:07.000000000 +0200
@@ -208,6 +208,9 @@
noinst_HEADERS = defs.h
EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \
debian/changelog debian/control debian/copyright debian/rules \
+ debian/compat debian/strace64.install debian/strace64.manpages \
+ debian/strace.docs debian/strace.examples debian/strace.install \
+ debian/strace.manpages debian/strace-udeb.install \
strace.spec \
strace-graph COPYRIGHT CREDITS PORTING \
README-CVS README-freebsd README-linux README-sunos4 README-svr4 \
@@ -216,7 +219,9 @@
linux/syscall.h linux/syscallent.h linux/dummy.h \
linux/alpha/errnoent.h linux/alpha/ioctlent.h \
linux/alpha/signalent.h linux/alpha/syscallent.h \
- linux/arm/syscallent.h \
+ linux/arm/syscallent.h linux/arm/syscallent1.h \
+ linux/arm/signalent1.h linux/arm/ioctlent1.h \
+ linux/arm/errnoent1.h \
linux/hppa/errnoent.h linux/hppa/ioctlent.h \
linux/hppa/signalent.h linux/hppa/syscallent.h \
linux/ia64/syscallent.h linux/ia64/errnoent.h \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/mem.c new/strace-4.5.18/mem.c
--- old/strace-4.5.17/mem.c 2008-05-20 03:11:56.000000000 +0200
+++ new/strace-4.5.18/mem.c 2008-08-25 05:09:16.000000000 +0200
@@ -29,7 +29,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: mem.c,v 1.42 2008/05/20 01:11:56 roland Exp $
+ * $Id: mem.c,v 1.45 2008/08/25 03:09:16 roland Exp $
*/
#include "defs.h"
@@ -96,6 +96,9 @@
#ifdef PROT_GROWSUP
{ PROT_GROWSUP, "PROT_GROWSUP" },
#endif
+#ifdef PROT_SAO
+ { PROT_SAO, "PROT_SAO" },
+#endif
{ 0, NULL },
};
@@ -384,11 +387,11 @@
return RVAL_HEX;
}
-static const struct xlat madvise_flags[] = {
+static const struct xlat madvise_cmds[] = {
#ifdef MADV_NORMAL
{ MADV_NORMAL, "MADV_NORMAL" },
#endif
-#ifdef MADZV_RANDOM
+#ifdef MADV_RANDOM
{ MADV_RANDOM, "MADV_RANDOM" },
#endif
#ifdef MADV_SEQUENTIAL
@@ -397,7 +400,7 @@
#ifdef MADV_WILLNEED
{ MADV_WILLNEED, "MADV_WILLNEED" },
#endif
-#ifdef MADV_DONTNED
+#ifdef MADV_DONTNEED
{ MADV_DONTNEED, "MADV_DONTNEED" },
#endif
{ 0, NULL },
@@ -410,7 +413,7 @@
{
if (entering(tcp)) {
tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
- printflags(madvise_flags, tcp->u_arg[2], "MADV_???");
+ printxval(madvise_cmds, tcp->u_arg[2], "MADV_???");
}
return 0;
}
@@ -883,3 +886,53 @@
return 0;
}
#endif
+
+#if defined(LINUX) && defined(POWERPC)
+int
+sys_subpage_prot(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ unsigned long cur, end, abbrev_end, entries;
+ unsigned int entry;
+
+ tprintf("%#lx, %#lx, ", tcp->u_arg[0], tcp->u_arg[1]);
+ entries = tcp->u_arg[1] >> 16;
+ if (!entries || !tcp->u_arg[2]) {
+ tprintf("{}");
+ return 0;
+ }
+ cur = tcp->u_arg[2];
+ end = cur + (sizeof(int) * entries);
+ if (!verbose(tcp) || end < tcp->u_arg[2]) {
+ tprintf("%#lx", tcp->u_arg[2]);
+ return 0;
+ }
+ if (abbrev(tcp)) {
+ abbrev_end = cur + (sizeof(int) * max_strlen);
+ if (abbrev_end > end)
+ abbrev_end = end;
+ }
+ else
+ abbrev_end = end;
+ tprintf("{");
+ for (; cur < end; cur += sizeof(int)) {
+ if (cur > tcp->u_arg[2])
+ tprintf(", ");
+ if (cur >= abbrev_end) {
+ tprintf("...");
+ break;
+ }
+ if (umove(tcp, cur, &entry) < 0) {
+ tprintf("??? [%#lx]", cur);
+ break;
+ }
+ else
+ tprintf("%#08x", entry);
+ }
+ tprintf("}");
+ }
+
+ return 0;
+}
+#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/NEWS new/strace-4.5.18/NEWS
--- old/strace-4.5.17/NEWS 2008-07-18 04:20:42.000000000 +0200
+++ new/strace-4.5.18/NEWS 2008-08-28 23:17:31.000000000 +0200
@@ -1,3 +1,9 @@
+Changes in 4.5.18
+==============
+* Bug fixes.
+* Support new Linux/PPC system call subpage_prot and PROT_SAO flag.
+* In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN.
+
Changes in 4.5.17
==============
* Many bug fixes.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/signal.c new/strace-4.5.18/signal.c
--- old/strace-4.5.17/signal.c 2008-07-18 03:02:41.000000000 +0200
+++ new/strace-4.5.18/signal.c 2008-08-20 03:59:40.000000000 +0200
@@ -30,7 +30,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: signal.c,v 1.66 2008/07/18 01:02:41 roland Exp $
+ * $Id: signal.c,v 1.68 2008/08/20 01:59:40 roland Exp $
*/
#include "defs.h"
@@ -1120,23 +1120,20 @@
else if (umove(tcp, addr, &sa) < 0)
tprintf("{...}");
else {
- switch ((long) sa.SA_HANDLER) {
- case (long) SIG_ERR:
- tprintf("{SIG_ERR}");
- break;
- case (long) SIG_DFL:
- tprintf("{SIG_DFL}");
- break;
- case (long) SIG_IGN:
+ if (sa.SA_HANDLER == SIG_ERR)
+ tprintf("{SIG_ERR, ");
+ else if (sa.SA_HANDLER == SIG_DFL)
+ tprintf("{SIG_DFL, ");
+ else if (sa.SA_HANDLER == SIG_DFL) {
#ifndef USE_PROCFS
if (tcp->u_arg[0] == SIGTRAP) {
tcp->flags |= TCB_SIGTRAPPED;
kill(tcp->pid, SIGSTOP);
}
#endif /* !USE_PROCFS */
- tprintf("{SIG_IGN}");
- break;
- default:
+ tprintf("{SIG_IGN, ");
+ }
+ else {
#ifndef USE_PROCFS
if (tcp->u_arg[0] == SIGTRAP) {
tcp->flags |= TCB_SIGTRAPPED;
@@ -1176,13 +1173,13 @@
printsignal(tcp->u_arg[0]);
tprintf(", ");
switch (tcp->u_arg[1]) {
- case (int) SIG_ERR:
+ case (long) SIG_ERR:
tprintf("SIG_ERR");
break;
- case (int) SIG_DFL:
+ case (long) SIG_DFL:
tprintf("SIG_DFL");
break;
- case (int) SIG_IGN:
+ case (long) SIG_IGN:
#ifndef USE_PROCFS
if (tcp->u_arg[0] == SIGTRAP) {
tcp->flags |= TCB_SIGTRAPPED;
@@ -1204,11 +1201,11 @@
}
else {
switch (tcp->u_rval) {
- case (int) SIG_ERR:
+ case (long) SIG_ERR:
tcp->auxstr = "SIG_ERR"; break;
- case (int) SIG_DFL:
+ case (long) SIG_DFL:
tcp->auxstr = "SIG_DFL"; break;
- case (int) SIG_IGN:
+ case (long) SIG_IGN:
tcp->auxstr = "SIG_IGN"; break;
default:
tcp->auxstr = NULL;
@@ -1865,7 +1862,7 @@
};
- int
+int
sys_rt_sigaction(tcp)
struct tcb *tcp;
{
@@ -1886,38 +1883,33 @@
else if (umove(tcp, addr, &sa) < 0)
tprintf("{...}");
else {
- switch ((long) sa.__sigaction_handler.__sa_handler) {
- case (long) SIG_ERR:
- tprintf("{SIG_ERR}");
- break;
- case (long) SIG_DFL:
- tprintf("{SIG_DFL}");
- break;
- case (long) SIG_IGN:
- tprintf("{SIG_IGN}");
- break;
- default:
- tprintf("{%#lx, ",
- (long) sa.__sigaction_handler.__sa_handler);
- sigemptyset(&sigset);
+ if (sa.__sigaction_handler.__sa_handler == SIG_ERR)
+ tprintf("{SIG_ERR, ");
+ else if (sa.__sigaction_handler.__sa_handler == SIG_DFL)
+ tprintf("{SIG_DFL, ");
+ else if (sa.__sigaction_handler.__sa_handler == SIG_DFL)
+ tprintf("{SIG_IGN, ");
+ else
+ tprintf("{%#lx, ",
+ (long) sa.__sigaction_handler.__sa_handler);
+ sigemptyset(&sigset);
#ifdef LINUXSPARC
- if (tcp->u_arg[4] <= sizeof(sigset))
- memcpy(&sigset, &sa.sa_mask, tcp->u_arg[4]);
+ if (tcp->u_arg[4] <= sizeof(sigset))
+ memcpy(&sigset, &sa.sa_mask, tcp->u_arg[4]);
#else
- if (tcp->u_arg[3] <= sizeof(sigset))
- memcpy(&sigset, &sa.sa_mask, tcp->u_arg[3]);
+ if (tcp->u_arg[3] <= sizeof(sigset))
+ memcpy(&sigset, &sa.sa_mask, tcp->u_arg[3]);
#endif
- else
- memcpy(&sigset, &sa.sa_mask, sizeof(sigset));
- printsigmask(&sigset, 1);
- tprintf(", ");
- printflags(sigact_flags, sa.sa_flags, "SA_???");
+ else
+ memcpy(&sigset, &sa.sa_mask, sizeof(sigset));
+ printsigmask(&sigset, 1);
+ tprintf(", ");
+ printflags(sigact_flags, sa.sa_flags, "SA_???");
#ifdef SA_RESTORER
- if (sa.sa_flags & SA_RESTORER)
- tprintf(", %p", sa.sa_restorer);
+ if (sa.sa_flags & SA_RESTORER)
+ tprintf(", %p", sa.sa_restorer);
#endif
- tprintf("}");
- }
+ tprintf("}");
}
if (entering(tcp))
tprintf(", ");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/strace.c new/strace-4.5.18/strace.c
--- old/strace-4.5.17/strace.c 2008-07-18 02:25:10.000000000 +0200
+++ new/strace-4.5.18/strace.c 2008-08-19 06:47:50.000000000 +0200
@@ -27,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: strace.c,v 1.86 2008/07/18 00:25:10 roland Exp $
+ * $Id: strace.c,v 1.88 2008/08/06 21:38:52 kratochvil Exp $
*/
#include "defs.h"
@@ -622,6 +622,7 @@
extern char *optarg;
struct tcb *tcp;
int c, pid = 0;
+ int optF = 0;
struct sigaction sa;
static char buf[BUFSIZ];
@@ -660,7 +661,8 @@
debug++;
break;
case 'F':
- /* Obsoleted, acts as `-f'. */
+ optF = 1;
+ break;
case 'f':
followfork++;
break;
@@ -757,6 +759,9 @@
if ((optind == argc) == !pflag_seen)
usage(stderr, 1);
+ if (!followfork)
+ followfork = optF;
+
if (followfork > 1 && cflag) {
fprintf(stderr,
"%s: -c and -ff are mutually exclusive options\n",
@@ -2416,11 +2421,12 @@
}
if (!cflag
&& (qual_flags[WSTOPSIG(status)] & QUAL_SIGNAL)) {
- unsigned long addr = 0, pc = 0;
+ unsigned long addr = 0;
+ long pc = 0;
#if defined(PT_CR_IPSR) && defined(PT_CR_IIP) && defined(PT_GETSIGINFO)
# define PSR_RI 41
struct siginfo si;
- unsigned long psr;
+ long psr;
upeek(pid, PT_CR_IPSR, &psr);
upeek(pid, PT_CR_IIP, &pc);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/strace.spec new/strace-4.5.18/strace.spec
--- old/strace-4.5.17/strace.spec 2008-07-22 02:47:34.000000000 +0200
+++ new/strace-4.5.18/strace.spec 2008-08-28 23:19:33.000000000 +0200
@@ -1,6 +1,6 @@
Summary: Tracks and displays system calls associated with a running process
Name: strace
-Version: 4.5.17
+Version: 4.5.18
Release: 1%{?dist}
License: BSD
Group: Development/Debuggers
@@ -76,6 +76,12 @@
%changelog
+* Thu Aug 28 2008 Roland McGrath - 4.5.18-1
+- build fix for newer kernel headers (#457291)
+- fix CLONE_VFORK handling (#455078)
+- Support new Linux/PPC system call subpage_prot and PROT_SAO flag.
+- In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN.
+
* Mon Jul 21 2008 Roland McGrath - 4.5.17-1
- handle O_CLOEXEC, MSG_CMSG_CLOEXEC (#365781)
- fix biarch stat64 decoding (#222275)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/syscall.c new/strace-4.5.18/syscall.c
--- old/strace-4.5.17/syscall.c 2008-05-28 01:18:29.000000000 +0200
+++ new/strace-4.5.18/syscall.c 2008-08-25 05:16:26.000000000 +0200
@@ -30,7 +30,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscall.c,v 1.94 2008/05/27 23:18:29 roland Exp $
+ * $Id: syscall.c,v 1.96 2008/08/25 03:16:26 roland Exp $
*/
#include "defs.h"
@@ -1963,20 +1963,21 @@
#elif defined (IA64)
{
if (!ia32) {
- unsigned long *out0, *rbs_end, cfm, sof, sol, i;
+ unsigned long *out0, cfm, sof, sol, i;
+ long rbs_end;
/* be backwards compatible with kernel < 2.4.4... */
# ifndef PT_RBS_END
# define PT_RBS_END PT_AR_BSP
# endif
- if (upeek(pid, PT_RBS_END, (long *) &rbs_end) < 0)
+ if (upeek(pid, PT_RBS_END, &rbs_end) < 0)
return -1;
if (upeek(pid, PT_CFM, (long *) &cfm) < 0)
return -1;
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)
@@ -2429,18 +2430,18 @@
return res;
switch (known_scno(tcp)) {
-#ifdef LINUX
-#if !defined (ALPHA) && !defined(MIPS) && !defined(HPPA)
+#ifdef SYS_socket_subcall
case SYS_socketcall:
decode_subcall(tcp, SYS_socket_subcall,
SYS_socket_nsubcalls, deref_style);
break;
+#endif
+#ifdef SYS_ipc_subcall
case SYS_ipc:
decode_subcall(tcp, SYS_ipc_subcall,
SYS_ipc_nsubcalls, shift_style);
break;
-#endif /* !(ALPHA || MIPS || HPPA) */
-#endif /* LINUX */
+#endif
#ifdef SVR4
#ifdef SYS_pgrpsys_subcall
case SYS_pgrpsys:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/strace-4.5.17/util.c new/strace-4.5.18/util.c
--- old/strace-4.5.17/util.c 2008-07-18 03:19:36.000000000 +0200
+++ new/strace-4.5.18/util.c 2008-08-19 06:47:51.000000000 +0200
@@ -30,7 +30,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: util.c,v 1.77 2008/07/18 01:19:36 roland Exp $
+ * $Id: util.c,v 1.79 2008/08/06 21:43:35 kratochvil Exp $
*/
#include "defs.h"
@@ -1284,6 +1284,9 @@
#ifndef CLONE_VFORK
# define CLONE_VFORK 0x00004000
#endif
+#ifndef CLONE_VM
+# define CLONE_VM 0x00000100
+#endif
#ifndef CLONE_STOPPED
# define CLONE_STOPPED 0x02000000
#endif
@@ -1300,21 +1303,25 @@
static int
arg_setup(struct tcb *tcp, arg_setup_state *state)
{
- unsigned long *bsp, cfm, sof, sol;
+ unsigned long cfm, sof, sol;
+ long bsp;
- if (ia32)
+ if (ia32) {
+ /* Satisfy a false GCC warning. */
+ *state = NULL;
return 0;
+ }
- if (upeek(tcp->pid, PT_AR_BSP, (long *) &bsp) < 0)
+ if (upeek(tcp->pid, PT_AR_BSP, &bsp) < 0)
return -1;
if (upeek(tcp->pid, PT_CFM, (long *) &cfm) < 0)
return -1;
sof = (cfm >> 0) & 0x7f;
sol = (cfm >> 7) & 0x7f;
- bsp = ia64_rse_skip_regs(bsp, -sof + sol);
+ bsp = (long) ia64_rse_skip_regs((unsigned long *) bsp, -sof + sol);
- *state = bsp;
+ *state = (unsigned long *) bsp;
return 0;
}
@@ -1533,15 +1540,19 @@
#ifdef SYS_clone2
case SYS_clone2:
#endif
- /* 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. */
+ /* ia64 calls directly `clone (CLONE_VFORK | CLONE_VM)'
+ 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. We need to
+ clear also CLONE_VM but only in the CLONE_VFORK case as
+ otherwise we would break pthread_create. */
+
if ((arg_setup (tcp, &state) < 0
|| set_arg0 (tcp, &state,
(tcp->u_arg[arg0_index] | CLONE_PTRACE)
- & ~CLONE_VFORK) < 0
+ & ~(tcp->u_arg[arg0_index] & CLONE_VFORK
+ ? CLONE_VFORK | CLONE_VM : 0)) < 0
|| arg_finish_change (tcp, &state) < 0))
return -1;
tcp->flags |= TCB_BPTSET;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org