patches/strace/4.5.19/110-fix-arm-bad-syscall.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jan 03 23:40:22 2011 +0100 (2011-01-03)
changeset 2267 7af68e6083aa
permissions -rw-r--r--
libc-glibc: remove 2.3.6

This is an obsolete version which is no longer used by any sample (the only
user, the ia64 sample, has been removed).

It also makes the code path a bit complex, with twists just to accomodate
that version. Removing the version will make those twists go away, and
will ease commonalisation of glibc and eglibc in the future (hopefully!).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1613
     1
diff -durN strace-4.5.19.orig/syscall.c strace-4.5.19/syscall.c
yann@1613
     2
--- strace-4.5.19.orig/syscall.c	2009-10-12 21:54:21.000000000 +0200
yann@1613
     3
+++ strace-4.5.19/syscall.c	2009-10-28 18:47:18.000000000 +0100
yann@1613
     4
@@ -1022,6 +1022,15 @@
yann@1613
     5
 		/*
yann@1613
     6
 		 * Note: we only deal with only 32-bit CPUs here.
yann@1613
     7
 		 */
yann@1613
     8
+
yann@1613
     9
+		if (!(tcp->flags & TCB_INSYSCALL) &&
yann@1613
    10
+		    (tcp->flags & TCB_WAITEXECVE)) {
yann@1613
    11
+			/* caught a fake syscall from the execve's exit */
yann@1613
    12
+			tcp->flags &= ~TCB_WAITEXECVE;
yann@1613
    13
+			return 0;
yann@1613
    14
+		}
yann@1613
    15
+
yann@1613
    16
+
yann@1613
    17
 		if (regs.ARM_cpsr & 0x20) {
yann@1613
    18
 			/*
yann@1613
    19
 			 * Get the Thumb-mode system call number