patches/strace/4.5.16/120-fix-arm-bad-syscall.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Wed Dec 05 20:31:43 2012 +0100 (2012-12-05)
changeset 3134 863723936e24
parent 746 b150d6f590fc
permissions -rw-r--r--
scripts/xldd: use user's sed and grep

xldd uses sed and grep as detected by ./configure. This works well if is
used on the machine that build the toolchain.

But if the user moves the toolchain to another machine where sed and grep
are not in the same directory (eg. /bin/sed vs. /usr/bin/sed), then xldd
will stop functionning.

Fix that by using ${SED} and ${GREP} if they are set in the environment.

Reported-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
yann@428
     1
diff -dur strace-4.5.16.orig/syscall.c strace-4.5.16/syscall.c
yann@428
     2
--- strace-4.5.16.orig/syscall.c	2006-12-21 23:13:33.000000000 +0100
yann@428
     3
+++ strace-4.5.16/syscall.c	2007-07-14 19:21:44.000000000 +0200
yann@428
     4
@@ -1045,6 +1045,15 @@
yann@428
     5
 		/*
yann@428
     6
 		 * Note: we only deal with only 32-bit CPUs here.
yann@428
     7
 		 */
yann@428
     8
+
yann@428
     9
+		if (!(tcp->flags & TCB_INSYSCALL) &&
yann@428
    10
+		    (tcp->flags & TCB_WAITEXECVE)) {
yann@428
    11
+			/* caught a fake syscall from the execve's exit */
yann@428
    12
+			tcp->flags &= ~TCB_WAITEXECVE;
yann@428
    13
+			return 0;
yann@428
    14
+		}
yann@428
    15
+
yann@428
    16
+
yann@428
    17
 		if (regs.ARM_cpsr & 0x20) {
yann@428
    18
 			/*
yann@428
    19
 			 * Get the Thumb-mode system call number