author | "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
Mon Aug 03 22:47:53 2009 +0200 (2009-08-03) | |
branch | 1.4 |
changeset 1450 | 0505b0d5cd63 |
parent 747 | d3e603e7c17c |
permissions | -rw-r--r-- |
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 |