Closed GoogleCodeExporter closed 8 years ago
Hi, I'm from chromeos toolchain team, we need this to be fixed for debugging
purpose.
I propose a patch here. Could anyone take a look at it?
Detail diagnose - the syscall number is passed through r7 in the linux ARM ABI,
but r7 is also the THUMB frame pointer.The generic syscall template
pushes/stores to/pops
r7 with no complaint from gcc, but the sys_clone() function marks r7 as a
clobbered register yet gcc error's. The release build does not err because
"-fomit-frame-pointer" is enabled.
What my patch does is to add push/pop {r7} when compiling for thumb2 at the
beginning and end of the function and remove r7 from clobber list.
Original comment by shen...@google.com
on 22 Oct 2012 at 11:13
Attachments:
Looks like a reasonable solution. Thanks for fixing this problem. Clone() is a
particularly challenging function to get right, because of how it sets up the
stack for the child; but I believe your change is in fact correct.
I committed the patch for you.
Original comment by markus@chromium.org
on 22 Oct 2012 at 11:54
Hi Markus, thanks!
Original comment by shen...@google.com
on 23 Oct 2012 at 4:19
Original issue reported on code.google.com by
raymes@chromium.org
on 19 Apr 2011 at 12:35