Is this related to the general panic discussed in freebsd-current?

Andrew Turner andrew at fubar.geek.nz
Mon May 6 11:47:13 UTC 2013


On Sun, 5 May 2013 22:39:56 -0700
Tim Kientzle <kientzle at freebsd.org> wrote:
> Here's a version of stack_capture that allows a Clang-built
> OABI kernel with WITNESS enabled to boot:
> 
> /* In sys/arm/arm/stack_machdep.c */
> static void
> stack_capture(struct stack *st, u_int32_t *frame)
> {
>         vm_offset_t callpc;
> 
>         stack_zero(st);
>         while (INKERNEL(frame)) {
>                 callpc = frame[1];
>                 if (stack_put(st, callpc) == -1)
>                         break;
>                 frame = (u_int32_t *)(frame[0]);
>         }
> }
It looks like this should work in most cases where fp and lr are next
to each other (ip and sp are between them but doesn't need to be saved).
> 
> 
> From the above, it sounds like this should not be committed;
> rather, we should fix Clang's OABI support to emit the right
> frame layout.  I've not yet started to look through Clang to
> try to figure out how to do that….  Any pointers?  ;-)
Disable this stack unwind code? I'll fix the clang EABI issue and
switch the ABI.

Andrew


More information about the freebsd-arm mailing list