We develop BSD licensed implementations of essential development tools and libraries for building and analyzing ELF based program images.
Our source code is known to work on the following operating systems:
This project provides tools for program development. Notably:
Elftoolchain code is usually imported by operating system projects into their respective source trees. Operating system projects known to be using Elftoolchain code include:
Tool | Description | Development Status | Owner | Repository Location | Comments |
---|---|---|---|---|---|
Native or POSIX-mandated Tools | |||||
ar | Archive manager. | released | kaiwang27 | ar/ | |
as | Assembler. | planning | jkoshy | as/ | (see libmc, isa) |
brandelf | Set/read the ELF brand for an executable. | released | kaiwang27 | brandelf/ | |
c++filt | Translated encoded symbols. | released | kaiwang27 | c++filt/ | |
elfdump | Diagnostic tool. | released | kaiwang27 | elfdump/ | |
elflint | Diagnostic tool. | planning | See ticket #586. | ||
isa | Instruction set analyser | in development | jkoshy | isa/ | |
ld | Link editor. | alpha | kaiwang27 | ld/ | |
nm | List symbols in an ELF object. | released | hglee | nm/ | |
mcs | Manage comment sections in ELF objects. | released | kaiwang27 | elfcopy/ | |
ranlib | Generate an archive symbol table. | released | kaiwang27 | ar/ | |
size | List ELF object sizes. | released | samarunraj | size/ | |
strings | Extract printable strings from an ELF object. | released | samarunraj | strings/ | |
strip | Discard information from objects. | released | kaiwang27 | elfcopy/ | |
GNU Tools | |||||
addr2line | Debug tool. | released | kaiwang27 | addr2line/ | |
elfcopy | Copy and translate between object formats. | released | kaiwang27 | elfcopy/ | |
findtextrel | Find undesired text relocations. | released | kaiwang27 | findtextrel/ | |
objdump | Display object information. | planning | Merge with elfdump? | ||
readelf | Display ELF information. | released | kaiwang27 | readelf/ | |
Libraries and API sets | |||||
libdwarf | A library for parsing DWARF debug information. | released | kaiwang27 | libdwarf/ | "pfgshield-freebsd" (email suppressed) notes that early versions of SGI's libdwarf library were released under a non-GPL'ed license. |
libelf | A library for reading and writing ELF objects. | released | jkoshy | libelf/ | |
libelftc | Common code used by tools. | released | jkoshy | libelftc/ | |
libmc | Machine/assembly code manipulation. | planning | jkoshy | For use in an optimizing linker, debugger and assember, program instrumentation tools, and the like. | |
libpe | A library for reading and writing Portable Executable™objects | alpha | kaiwang27 | libpe/ | |
libtask | A simple task management facility | planning | jkoshy | For use in tools that need to sequence potentially parallel computations. | |
Test Suites | |||||
ar | The test suite for the `ar` utility. | released | kaiwang27 | test/ar/ | |
elfcopy | The test suite for `elfcopy` utility. | released | kaiwang27 | test/elfcopy/ | |
elfdump | The test suite for `elfdump` utility. | released | kaiwang27 | test/elfdump/ | |
libdwarf | The test suite for the libdwarf library. | released | kaiwang27 | test/libdwarf/ | |
libelf | The test suite for the libelf library. | released | jkoshy | test/libelf/ | |
libelftc | The test suite for the libelftc library. | alpha | jkoshy | test/libelftc/ | |
nm | The test suite for the nm utility. | released | test/nm/ | ||
size | The test suite for the size utility. | planning | See ticket #9. | ||
strings | The test suite for the `strings` utility. | planning | See ticket #10. | ||
Documentation | |||||
Manual Pages | Reference documentation. | released | jkoshy | multiple locations | Each utility and library API has a manual entry. |
libelf by Example | Tutorial introduction to programming with libelf. | released | jkoshy | documentation/libelf-by-example | |
libdwarf by Example | An introduction to DWARF and libdwarf. | planning | jkoshy | TBD |
This work was originally a part of the FreeBSD Project; it has been moved to SourceForge.Net to encourage wider participation from the open-source developer community.
Wiki: BuildAutomation
Wiki: BuildingFromSource
Wiki: ElfToolChainAdvocacy
Wiki: PortingNotes
Wiki: Releases-Release0.5.1
Wiki: Releases-Release0.6.1
Wiki: Releases-Release0.7.1
Wiki: Releases