diff -x CVS -urpN 2009-01-26/ChangeLog 2009-01-27/ChangeLog --- 2009-01-26/ChangeLog 2009-01-23 17:30:26.000000000 +0100 +++ 2009-01-27/ChangeLog 2009-01-26 20:09:35.000000000 +0100 @@ -1,3 +1,17 @@ +2009-01-26 Denys Vlasenko <[email protected]> + + * process.c (printwaitn): Add comment about wait4() pid expansion. + Use #ifdef ALPHA instead of LINUX_64BIT, it was misleading + (by implying "any 64-bit platform"). + * defs.h: Remove now-unused LINUX_64BIT define. + * resource.c (sys_osf_getrusage): Fix indentation. + +2009-01-26 Denys Vlasenko <[email protected]> + + * process.c (internal_clone): Fix fallout from tcb table expansion + simplification. Due to overlooked else, I forgot to group + fork_tcb(tcp) and alloctcb(pid) in a block. + 2009-01-23 Michal Nowak <[email protected]> * syscall.c (get_scno): Fix warnings about unused variable 'pid'. diff -x CVS -urpN 2009-01-26/defs.h 2009-01-27/defs.h --- 2009-01-26/defs.h 2009-01-17 02:52:54.000000000 +0100 +++ 2009-01-27/defs.h 2009-01-26 20:09:38.000000000 +0100 @@ -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.96 2009/01/17 01:52:54 vda_linux Exp $ + * $Id: defs.h,v 1.97 2009/01/26 19:09:38 vda_linux Exp $ */ #ifdef HAVE_CONFIG_H @@ -96,9 +96,6 @@ # if defined(SPARC) || defined(SPARC64) # define LINUXSPARC # endif -# if defined(ALPHA) -# define LINUX_64BIT -# endif # if defined(X86_64) # define LINUX_X86_64 # endif diff -x CVS -urpN 2009-01-26/process.c 2009-01-27/process.c --- 2009-01-26/process.c 2009-01-17 02:52:54.000000000 +0100 +++ 2009-01-27/process.c 2009-01-26 20:09:38.000000000 +0100 @@ -34,7 +34,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: process.c,v 1.125 2009/01/17 01:52:54 vda_linux Exp $ + * $Id: process.c,v 1.127 2009/01/26 19:09:38 vda_linux Exp $ */ #include "defs.h" @@ -916,8 +916,10 @@ struct tcb *tcp; } else #endif - fork_tcb(tcp); - tcpchild = alloctcb(pid); + { + fork_tcb(tcp); + tcpchild = alloctcb(pid); + } #ifndef CLONE_PTRACE /* Attach to the new child */ @@ -1969,10 +1971,7 @@ int status; } static int -printwaitn(tcp, n, bitness) -struct tcb *tcp; -int n; -int bitness; +printwaitn(struct tcb *tcp, int n, int bitness) { int status; int exited = 0; @@ -1980,6 +1979,14 @@ int bitness; if (entering(tcp)) { /* * Sign-extend a 32-bit value when that's what it is. + * + * NB: On Linux, kernel-side pid_t is typedef'ed to int + * on all arches; also, glibc-2.8 truncates wait3 and wait4 + * pid argument to int on 64bit arches, producing, + * for example, wait4(4294967295, ...) instead of -1 + * in strace. + * Therefore, maybe it makes sense to *unconditionally* + * widen int to long here... */ long pid = tcp->u_arg[0]; if (personality_wordsize[current_personality] < sizeof pid) @@ -2005,7 +2012,7 @@ int bitness; tprintf("NULL"); #ifdef LINUX else if (tcp->u_rval > 0) { -#ifdef LINUX_64BIT +#ifdef ALPHA if (bitness) printrusage32(tcp, tcp->u_arg[3]); else diff -x CVS -urpN 2009-01-26/resource.c 2009-01-27/resource.c --- 2009-01-26/resource.c 2006-10-16 02:26:47.000000000 +0200 +++ 2009-01-27/resource.c 2009-01-26 20:09:39.000000000 +0100 @@ -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: resource.c,v 1.17 2006/10/16 00:26:47 ldv Exp $ + * $Id: resource.c,v 1.18 2009/01/26 19:09:39 vda_linux Exp $ */ #include "defs.h" @@ -357,13 +357,13 @@ int sys_osf_getrusage(tcp) struct tcb *tcp; { - if (entering(tcp)) { - printxval(usagewho, tcp->u_arg[0], "RUSAGE_???"); - tprintf(", "); - } - else - printrusage32(tcp, tcp->u_arg[1]); - return 0; + if (entering(tcp)) { + printxval(usagewho, tcp->u_arg[0], "RUSAGE_???"); + tprintf(", "); + } + else + printrusage32(tcp, tcp->u_arg[1]); + return 0; } #endif /* ALPHA */
------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Strace-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/strace-devel
