| Both sides previous revision Previous revision Next revision | Previous revision |
| libelf [2008/01/16 05:10] – Freshen page: development is now in CVS not Perforce. Add a link to the elf(3) manuals on the web. JosephKoshy | libelf [2021/04/25 04:05] (current) – development has moved. MarkLinimon |
|---|
| | ====== Project Moved ====== |
| | |
| | **Note**: Ongoing development of ''%%libelf%%'' has moved to the [[http://elftoolchain.sourceforge.net/|Elftoolchain project]] on %%SourceForge%%.Net. |
| | |
| ====== LibElf ====== | ====== LibElf ====== |
| |
| LibElf is project implementing a BSD-licensed implementation of the SVR4 [http://www.freebsd.org/cgi/man.cgi?query=elf&apropos=0&sektion=0&manpath=SunOS+5.10&format=html ELF(3)] | LibElf is project implementing a BSD-licensed implementation of the SVR4 [[http://www.freebsd.org/cgi/man.cgi?query=elf&apropos=0&sektion=0&manpath=SunOS+5.10&format=html|ELF(3)]] |
| API. The scope of the project includes: | API. The scope of the project includes: |
| * An [http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libelf/ implementation of the ELF(3) API], | * An [[http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libelf/|implementation of the ELF(3) API]], |
| * A [http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/jkoshy/projects/libbsdelf/ts TET based test-suite] for the API, | * A [[http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/jkoshy/projects/libbsdelf/ts|TET based test-suite]] for the API, |
| * [http://www.freebsd.org/cgi/man.cgi?query=elf&apropos=0&sektion=3&manpath=FreeBSD+8-current&format=html Manual pages] for section 3 of the %%FreeBSD%% manual set, | * [[http://www.freebsd.org/cgi/man.cgi?query=elf&apropos=0&sektion=3&manpath=FreeBSD+8-current&format=html|Manual pages]] for section 3 of the %%FreeBSD%% manual set, |
| * A [http://people.freebsd.org/~jkoshy/download/libelf/article.html tutorial documentation] (currently a work-in-progress) suitable for inclusion in the %%FreeBSD%% Developer's Handbook. | * A [[http://people.freebsd.org/~jkoshy/download/libelf/article.html|tutorial documentation]] (currently a work-in-progress) suitable for inclusion in the %%FreeBSD%% Developer's Handbook. |
| |
| JosephKoshy is the developer working on this project. | JosephKoshy is the developer working on this project. |
| * ''%%gprof(1)%%'': reporting tool for ''%%cc -pg%%'' profiling. | * ''%%gprof(1)%%'': reporting tool for ''%%cc -pg%%'' profiling. |
| * ''%%kgzip(8)%%'': compresses a kernel. | * ''%%kgzip(8)%%'': compresses a kernel. |
| * ''%%pmcstat(8)%%'': performance monitoring controller for PMC based profiling. | * ''%%pmcstat(8)%%'': performance monitoring controller for PMC based profiling. |
| |
| The downside of implementing ad-hoc ELF parsers is: | The downside of implementing ad-hoc ELF parsers is: |
| |
| The GNU binutils toolset implements one such common API; | The GNU binutils toolset implements one such common API; |
| the [http://sources.redhat.com/binutils/ Binary File Descriptor] | the [[http://sources.redhat.com/binutils/|Binary File Descriptor]] |
| library (''%%-lbfd%%''). The BFD library supports a very large range | library (''%%-lbfd%%''). The BFD library supports a very large range |
| of cross-targets. However, its implementation is distributed | of cross-targets. However, its implementation is distributed |
| this API. | this API. |
| |
| The ERTOS project's [http://www.ertos.nicta.com.au/software/kenge/libelf/devel/ ELF library] | The ERTOS project's [[http://www.ertos.nicta.com.au/software/kenge/libelf/devel/|ELF library]] |
| can also handle ELF files, but offers an API different from ELF(3). | can also handle ELF files, but offers an API different from ELF(3). |
| |
| The ''%%ELF(3)%%'' API seems to have first appeared in %%SysV%% Unix (namely, SVR4), | The ''%%ELF(3)%%'' API seems to have first appeared in %%SysV%% Unix (namely, SVR4), |
| As the API evolved, it developed 32 and 64 bit variants. | As the API evolved, it developed 32 and 64 bit variants. |
| The [http://www.freebsd.org/cgi/man.cgi?query=gelf&apropos=0&sektion=0&manpath=SunOS+5.10&format=html GELF(3)] | The [[http://www.freebsd.org/cgi/man.cgi?query=gelf&apropos=0&sektion=0&manpath=SunOS+5.10&format=html|GELF(3)]] |
| sub-API was added to provide an ELF class-independent way of manipulating ELF files. | sub-API was added to provide an ELF class-independent way of manipulating ELF files. |
| |
| LibElf is being developed in %%FreeBSD%%'s CVS repository. | LibElf is being developed in %%FreeBSD%%'s CVS repository. |
| |
| CVS: [http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libelf/ [[http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libelf/]]] | CVS: [[http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libelf/|http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libelf/]] |
| |
| Design notes are on a seperate page: [[LibElf/ImplementationNotes|LibElf/ImplementationNotes]]. | Design notes are on a seperate page: [[LibElf/ImplementationNotes|LibElf/ImplementationNotes]]. |
| === External Projects === | === External Projects === |
| The following people/projects are using %%FreeBSD%%'s LibElf: | The following people/projects are using %%FreeBSD%%'s LibElf: |
| * [http://code.google.com/p/aski-m/wiki/ElfUtils ElfUtils], an proposed replacement for GNU binutils by Sam Arun Raj. | * [[http://code.google.com/p/aski-m/wiki/ElfUtils|ElfUtils]], an proposed replacement for GNU binutils by Sam Arun Raj. |
| * [http://freemanu1.free.fr/elf_examples/index.html Emmanuel Azencot] offers more examples of libelf based tools. | * [[http://freemanu1.free.fr/elf_examples/index.html|Emmanuel Azencot]] offers more examples of libelf based tools. |
| |
| ===== References ===== | ===== References ===== |
| * [http://www.caldera.com/developers/gabi/ ELF gABI] from SCO. | * [[http://www.caldera.com/developers/gabi/|ELF gABI]] from SCO. |
| * [http://docs.sun.com/app/docs/doc/817-1984 Linker and Libraries Guide] from Sun Microsystems. | * [[http://docs.sun.com/app/docs/doc/817-1984|Linker and Libraries Guide]] from Sun Microsystems. |
| * [http://developers.sun.com/solaris/articles/elf.html %%LibELF%% tutorial] from Sun Microsystems. | * [[http://developers.sun.com/solaris/articles/elf.html|LibELF tutorial]] from Sun Microsystems. |
| * [http://devresource.hp.com/drc/STK/docs/refs/elf-64-hp.pdf ELF-64 Object File Format] including HP and HP-UX extensions, from Hewlett-Packard. | * [[http://devresource.hp.com/drc/STK/docs/refs/elf-64-hp.pdf|ELF-64 Object File Format]] including HP and HP-UX extensions, from Hewlett-Packard. |
| * [http://www.mr511.de/software/english.html LGPL'ed libelf(3) implementation] by Michael Riepe. | * [[http://www.mr511.de/software/english.html|LGPL'ed libelf(3) implementation]] by Michael Riepe. |
| * An [http://www.ertos.nicta.com.au/software/kenge/libelf/devel/ ELF library] from the ERTOS project (doesn't implement the ''%%elf(3)%%'' API). | * An [[http://www.ertos.nicta.com.au/software/kenge/libelf/devel/|ELF library]] from the ERTOS project (doesn't implement the ''%%elf(3)%%'' API). |
| * [http://www-128.ibm.com/developerworks/power/library/pa-spec12/?ca=dgr-lnxw41ELFHero Standards and specs: An unsung hero: The hardworking ELF]. IBM Developerworks article by Peter Seebach. | * [[http://www-128.ibm.com/developerworks/power/library/pa-spec12/?ca=dgr-lnxw41ELFHero|Standards and specs: An unsung hero: The hardworking ELF]]. IBM Developerworks article by Peter Seebach. |
| * [http://tetworks.opengroup.org/tet/ Test Execution Toolkit] from the Open Group. | * [[http://tetworks.opengroup.org/tet/|Test Execution Toolkit]] from the Open Group. |
| | |
| | ---- |
| | |
| | {{tag>InactiveProject Stale}} |
| |