tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

libelf



You may have noticed that I checked in a port of FreeBSD's libelf the other 
day.  Let me outline what my plans are with libelf.

The idea is to get off of BFD-based manipulation of ELF images where possible 
(and where the tools are developed within the context of NetBSD, e.g. dbsym and 
mdsetimage).  This requires libelf to work in both native and host-tool 
environments.

The first step was the basic port of libelf -- FreeBSD has some differences in 
their ELF headers from ours.  This step is done, and libelf is available in 
native NetBSD builds.

The next step is to host-tool'ify libelf.  I have this done in my local tree, 
and will check it in today (even though nothing yet uses it).  I have built it 
on a Mac OS X host.

The next piece I'm working on is rewriting dbsym to use libelf rather than BFD. 
 As part of doing this, I discovered some changes were required in libelf to 
make this convenient.  I have that change in my local tree, and will commit it 
once dbsym is finished.  I may yet add some additional convenience functions to 
libelf (in particular, symbol lookup) that will be documented as NetBSD 
extensions.

Once dbsym is done, I'll tackle mdsetimage (it will be much easier :-).  paxctl 
would be on the list, as well (it doesn't use BFD, but it manipulates ELF 
images, and so is a candidate ... it would not hurt for this to be a host tool, 
either).

Long term, there is some interest in getting away from BFD-based ar(1), 
ranlib(1), etc.  Since we are firmly set in the ELF universe for the forseeable 
future, it seems reasonable to go this route (although the benefits are less 
clear so long as we still use BFD-based "other bits of the toolchain").  
Certainly, libelf could provide the basis of a non-BFD ELF toolchain, and that 
might be quite worthwhile to explore (and there is interest outside of NetBSD 
in this, as well).

-- thorpej



Home | Main Index | Thread Index | Old Index