Subject: Re: [resend] ia64 stack unwind.
To: None <>
From: Takayoshi Kochi <>
List: tech-kern
Date: 12/28/2005 10:44:45

> I'm trying to implement DDB's db_stack_trace_print() for ia64 with some
> basic functionality ( like a call tracing for a start ). This really
> doesn't require all of the stack unwind stuff, because I'm trying to add
> support just for the kernel at the moment, and kernel call stacks are
> really quite simple ( because we don't pass tremendous numbers of
> arguments to functions within the kernel, and, we don't do floating
> point stuff within the kernel ( am I right ? ) ).

I think you already know, ia64 uses some floating point registers
for the kernel (such as divdi3 in libkern).  If you use division
in C code, gcc generates calls to libgcc (libkern) functions.
On ia64, floating point registers are used even when you use only
integers in your C code.

> FreeBSD uses  HP licensed code ( see
> )
> So here's what I'm asking:
> Would it be ok to carefully sync with the gcc version distributed with
> NetBSD source and implement a slightly non-conformant ( to the IA64
> run-time spec document ) but embarassingly simple stack unwind method
> ( very similar to how the  hppa port does this ), 

Have you look at libunwind?

It's MIT-license.

Takayoshi Kochi