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