From: Shenghou Ma Date: Fri, 8 Feb 2013 05:24:38 +0000 (+0800) Subject: runtime: fix build for Linux/ARM X-Git-Tag: go1.1rc2~1110 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6c54bf991680f937db8fb74e8da4b26a757e8242;p=gostls13.git runtime: fix build for Linux/ARM R=dave, rsc CC=golang-dev https://golang.org/cl/7299055 --- diff --git a/src/pkg/runtime/traceback_arm.c b/src/pkg/runtime/traceback_arm.c index 39dc6fd22c..e44e0f82fd 100644 --- a/src/pkg/runtime/traceback_arm.c +++ b/src/pkg/runtime/traceback_arm.c @@ -183,10 +183,15 @@ runtime·gentraceback(byte *pc0, byte *sp, byte *lr0, G *gp, int32 skip, uintptr if(f->entry == (uintptr)runtime·deferproc || f->entry == (uintptr)runtime·newproc) sp += 12; - // sighandler saves the lr on stack before fake a call to sigpanic + // sighandler saves the lr on stack before faking a call to sigpanic if(waspanic) { - pc = *(uintptr *)sp; + x = *(uintptr *)sp; sp += 4; + f = runtime·findfunc(pc); + if (f == nil) { + pc = x; + } else if (f->frame == 0) + lr = x; } }