ia64 unwind section: Loader implementation

Cherry George Mathew <[email protected]> Fri, 30 Dec 2005 13:05:36 +0530
Newsgroups gmane.os.netbsd.ports.ia64,gmane.os.netbsd.devel.ports,gmane.os.netbsd.devel.toolchain,gmane.os.netbsd.devel.kernel
Message-ID <[email protected]>
Hello,

I'm thinking of various clean ways to get .IA_64.unwind sections loaded
into memory at boot.

These sections are essential for stack unwinding, which is used to
implement the 'trace' command in DDB.

a) Add a #ifdef within lib/libsa/loadfile_elf32.c
b) Hack the kernel linker script to be part of a PT_LOAD ed segment.
c) Use something similar to sys/dev/kloader.c

a) Adds a line of ugliness within MI code. On the other hand, its quick
and easy
b) This is a hack which breaks the ia64 ABI suppliment spec, and I don't
like that very much.But it doesn't require any modification to NetBSD
bootloader code.
c) Slightly more involved, and uses kern/vfs_vnode.c: vn_rdrw() etc.
which I'm not very happy about ( I'd like the DDB backend to be as
isolated from the rest of the kernel as possible )

There was a similar thread about .stab section on tech-kern in 2000.
See: http://mail-index.netbsd.org/tech-kern/2000/07/25/0000.html

I assume the loader stuff was MD at that point and was later cleaned up
and made MI.

Thanks for any pointers on this one.

Cherry