patches/strace/4.5.17/120-fix-arm-bad-syscall.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Feb 17 21:54:07 2011 +0100 (2011-02-17)
changeset 2301 a3818c3b03e0
parent 747 d3e603e7c17c
permissions -rw-r--r--
internals: fix stripping host binaries

The gcc used by linaro has a version number specific to Linaro, but
identifies itself with its upstream version numbering scheme.

This breaks the strip in the finish step, because the actual gcc version
is not the same as the configured one (eg. 4.5.2 vs. linaro-4.5-2011.02-0).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@974
     1
Original patch from gentoo: ../../dev/crosstool-NG/ct-ng.trunk/patches/strace/4.5.17/120-fix-arm-bad-syscall.patch
yann@974
     2
-= BEGIN original header =-
yann@428
     3
diff -dur strace-4.5.16.orig/syscall.c strace-4.5.16/syscall.c
yann@974
     4
-= END original header =-
yann@974
     5
diff -durN strace-4.5.17.orig/syscall.c strace-4.5.17/syscall.c
yann@974
     6
--- strace-4.5.17.orig/syscall.c	2008-05-28 01:18:29.000000000 +0200
yann@974
     7
+++ strace-4.5.17/syscall.c	2008-10-24 21:30:13.000000000 +0200
yann@974
     8
@@ -1016,6 +1016,15 @@
yann@428
     9
 		/*
yann@428
    10
 		 * Note: we only deal with only 32-bit CPUs here.
yann@428
    11
 		 */
yann@428
    12
+
yann@428
    13
+		if (!(tcp->flags & TCB_INSYSCALL) &&
yann@428
    14
+		    (tcp->flags & TCB_WAITEXECVE)) {
yann@428
    15
+			/* caught a fake syscall from the execve's exit */
yann@428
    16
+			tcp->flags &= ~TCB_WAITEXECVE;
yann@428
    17
+			return 0;
yann@428
    18
+		}
yann@428
    19
+
yann@428
    20
+
yann@428
    21
 		if (regs.ARM_cpsr & 0x20) {
yann@428
    22
 			/*
yann@428
    23
 			 * Get the Thumb-mode system call number