<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to libelf</title><link>https://sourceforge.net/p/elftoolchain/wiki/libelf/</link><description>Recent changes to libelf</description><atom:link href="https://sourceforge.net/p/elftoolchain/wiki/libelf/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 29 Dec 2013 13:53:47 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/elftoolchain/wiki/libelf/feed" rel="self" type="application/rss+xml"/><item><title>libelf modified by Joseph Koshy</title><link>https://sourceforge.net/p/elftoolchain/wiki/libelf/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -8,438 +8,113 @@

 ## What's Available

-  * An [implementation of the ELF(3) API](/apps/trac/elftoolchain/browser/trunk/libelf). 
-  * A [TET](http://tetworks.opengroup.org) based [test suite](/apps/trac/elftoolchain/browser/trunk/test/libelf) for the ELF(3) API. 
-  * Comprehensive documentation in the form of manual pages (part of the [source tree](/apps/trac/elftoolchain/browser/trunk/libelf)). 
+  * An [implementation of the ELF(3) API](http://sourceforge.net/p/elftoolchain/code/HEAD/tree/trunk/libelf). 
+  * A [TET](http://tetworks.opengroup.org) based [test suite](http://sourceforge.net/p/elftoolchain/code/HEAD/tree/trunk/test/libelf) for the ELF(3) API. 
+  * Comprehensive documentation in the form of manual pages (part of the [source tree](http://sourceforge.net/p/elftoolchain/code/HEAD/tree/trunk/libelf)). 
   * [A tutorial introduction](http://sourceforge.net/projects/elftoolchain/files/Documentation/libelf-by-example/20120308/libelf-by-example.pdf/download) to **libelf**. 

 ## Implementation Status

-**API**
-**Implementation**
-**Manual Page**
-**Test Cases**
-**Comments**
-
-**Error Handling**
-
-`elf_errno()`
-Y 
-Y 
-Y 
-
-`elf_errmsg()`
-Y 
-Y 
-Y 
-
-**Initialization**
-
-`elf_begin()`
-Y 
-Y 
-Y 
-
-`elf_end()`
-Y 
-Y 
-Partial 
-
-`elf_memory()`
-Y 
-Y 
-Y 
-
-**Archive Access**
-
-`elf_rand()`
-Y 
-Y 
-Partial 
-
-`elf_next()`
-Y 
-Y 
-Y 
-
-`elf_getarsym()`
-Y 
-Y 
-Y 
-
-`elf_getarhdr()`
-Y 
-Y 
-Y 
-
-**ELF Class/Byte order Translation**
-
-`elf32_xlatetof()`
-Y 
-Y 
-Y 
-
-`elf32_xlatetom()`
-Y 
-Y 
-Y 
-
-`elf64_xlatetof()`
-Y 
-Y 
-Y 
-
-`elf64_xlatetom()`
-Y 
-Y 
-Y 
-
-`gelf_xlatetof()`
-Y 
-Y 
-Y 
-
-`gelf_xlatetom()`
-Y 
-Y 
-Y 
-
-**General Queries**
-
-`elf_getbase()`
-Y 
-Y 
-Y 
-
-`elf_getident()`
-Y 
-Y 
-Y 
-
-`elf_getphdrnum()`
-Y 
-Y 
-
-`elf_getphnum()`
-Y 
-Y 
-Deprecated API. See [LibElfIncompatibilityRedHatElfUtils]. 
-
-`elf_getshdrnum()`
-Y 
-Y 
-
-`elf_getshnum()`
-Y 
-Y 
-Y 
-Deprecated API. See [LibElfIncompatibilityRedHatElfUtils]. 
-
-`elf_getshdrstrndx()`
-Y 
-Y 
-
-`elf_getshstrndx()`
-Y 
-Y 
-Y 
-Deprecated API. See [LibElfIncompatibilityRedHatElfUtils]. 
-
-`elf_hash()`
-Y 
-Y 
-Y 
-
-`elf_kind()`
-Y 
-Y 
-Y 
-
-`elf_ndxscn()`
-Y 
-Y 
-Y 
-
-`elf_rawdata()`
-Y 
-Y 
-
-`elf_rawfile()`
-Y 
-Y 
-Y 
-
-`elf_version()`
-Y 
-Y 
-Y 
-
-`elf32_checksum()`
-Y 
-Y 
-
-`elf32_fsize()`
-Y 
-Y 
-Y 
-
-`elf64_checksum()`
-Y 
-Y 
-
-`elf64_fsize()`
-Y 
-Y 
-Y 
-
-`gelf_checksum()`
-Y 
-Y 
-
-`gelf_getclass()`
-Y 
-Y 
-Y 
-
-`gelf_fsize()`
-Y 
-Y 
-Y 
-
-**Elf Headers**
-
-`elf32_getehdr()`
-Y 
-Y 
-Y 
-
-`elf32_getphdr()`
-Y 
-Y 
-Y 
-
-`elf32_getshdr()`
-Y 
-Y 
-Y 
-
-`elf32_newehdr()`
-Y 
-Y 
-Y 
-
-`elf32_newphdr()`
-Y 
-Y 
-
-`elf64_getehdr()`
-Y 
-Y 
-Y 
-
-`elf64_getphdr()`
-Y 
-Y 
-Y 
-
-`elf64_newehdr()`
-Y 
-Y 
-Y 
-
-`elf64_newphdr()`
-Y 
-Y 
-
-`elf64_getshdr()`
-Y 
-Y 
-Y 
-
-`gelf_getehdr()`
-Y 
-Y 
-Y 
-
-`gelf_getphdr()`
-Y 
-Y 
-
-`gelf_getshdr()`
-Y 
-Y 
-
-`gelf_newehdr()`
-Y 
-Y 
-Y 
-
-`gelf_newphdr()`
-Y 
-Y 
-
-`gelf_update_ehdr()`
-Y 
-Y 
-
-`gelf_update_phdr()`
-Y 
-Y 
-
-`gelf_update_shdr()`
-Y 
-Y 
-
-**Elf Sections**
-
-`elf_getscn()`
-Y 
-Y 
-Y 
-
-`elf_nextscn()`
-Y 
-Y 
-Y 
-
-`elf_newscn()`
-Y 
-Y 
-Y 
-
-**Elf Data**
-
-`elf_fill()`
-Y 
-Y 
-
-`elf_getdata()`
-Y 
-Y 
-
-`elf_newdata()`
-Y 
-Y 
-
-`elf_strptr()`
-Y 
-Y 
-
-`gelf_getdyn()`
-Y 
-Y 
-
-`gelf_getmove()`
-Y 
-Y 
-
-`gelf_getrel()`
-Y 
-Y 
-
-`gelf_getrela()`
-Y 
-Y 
-
-`gelf_getsym()`
-Y 
-Y 
-
-`gelf_getsyminfo()`
-Y 
-Y 
-
-`gelf_getsymshndx()`
-Y 
-Y 
-
-`gelf_update_dyn()`
-Y 
-Y 
-
-`gelf_update_move()`
-Y 
-Y 
-
-`gelf_update_rel()`
-Y 
-Y 
-
-`gelf_update_rela()`
-Y 
-Y 
-
-`gelf_update_sym()`
-Y 
-Y 
-
-`gelf_update_syminfo()`
-Y 
-Y 
-
-`gelf_update_symshndx()`
-Y 
-Y 
-
-**I/O Control**
-
-`elf_cntl()`
-Y 
-Y 
-Y 
-
-`elf_flagdata()`
-Y 
-Y 
-Y 
-
-`elf_flagehdr()`
-Y 
-Y 
-Y 
-
-`elf_flagphdr()`
-Y 
-Y 
-Y 
-
-`elf_flagscn()`
-Y 
-Y 
-Y 
-
-`elf_flagshdr()`
-Y 
-Y 
-Y 
-
-`elf_update()`
-Y 
-Y 
-Y 
-
-**API Extensions**
-
-`elf_add_member()`
-See [LibElfArchiveCreation]
-
-`elf_add_symtab()`
-See [LibElfArchiveCreation]
-
-`elf_flagarhdr()`
-Y 
-Y 
-See [LibElfArchiveCreation]
-
-`elf_open()`
-Y 
-
-`elf_openmember()`
-Y 
-
-`elf_setshstrndx()`
-Y 
-Y 
+ **API** | **Implementation** | **Manual Page** | **Test Cases** | **Comments**
+ ------ | --------------- | ------------- | ----------- | ------------
+ **Error Handling**
+ `elf_errno()`| Y  | Y  | Y  | 
+ `elf_errmsg()` | Y | Y  | Y  |
+ **Initialization**
+ `elf_begin()` | Y | Y | Y |
+ `elf_end()` | Y | Y | Partial |
+ `elf_memory()` | Y | Y | Y |
+ **Archive Access**
+ `elf_rand()` | Y | Y | Partial |
+ `elf_next()` | Y | Y | Y |
+ `elf_getarsym()` | Y | Y | Y |
+ `elf_getarhdr()` | Y | Y | Y |
+ **ELF Class/Byte order Translation**
+ `elf32_xlatetof()` | Y | Y | Y |
+ `elf32_xlatetom()` | Y | Y | Y |
+ `elf64_xlatetof()` | Y | Y | Y |
+ `elf64_xlatetom()` | Y | Y | Y |
+ `gelf_xlatetof()` | Y | Y | Y |
+ `gelf_xlatetom()` | Y | Y | Y |
+ **General Queries**
+ `elf_getbase()` | Y | Y | Y |
+ `elf_getident()` | Y | Y | Y |
+ `elf_getphdrnum()` | Y | Y | | |
+ `elf_getphnum()` | Y | Y | | Deprecated API. See [LibElfIncompatibilityRedHatElfUtils]. 
+ `elf_getshdrnum()` | Y | Y | |
+ `elf_getshnum()` | Y | Y | Y | Deprecated API. See [LibElfIncompatibilityRedHatElfUtils]. 
+ `elf_getshdrstrndx()`| Y | Y  | |
+ `elf_getshstrndx()` | Y | Y | Y | Deprecated API. See [LibElfIncompatibilityRedHatElfUtils]. 
+ `elf_hash()` | Y | Y | Y |
+ `elf_kind()` | Y | Y | Y |
+ `elf_ndxscn()` | Y | Y | Y |
+ `elf_rawdata()` | Y | Y | |
+ `elf_rawfile()` | Y | Y | Y |
+ `elf_version()` | Y | Y | Y |
+ `elf32_checksum()` | Y | Y | |
+ `elf32_fsize()` | Y | Y | Y 
+ `elf64_checksum()` | Y | Y | |
+ `elf64_fsize()` | Y | Y | Y |
+ `gelf_checksum()` | Y | Y  | |
+ `gelf_getclass()` | Y | Y | Y |
+ `gelf_fsize()` | Y | Y | Y |
+ **Elf Headers**
+ `elf32_getehdr()` | Y | Y | Y |
+ `elf32_getphdr()` | Y | Y | Y |
+ `elf32_getshdr()` | Y | Y | Y |
+ `elf32_newehdr()` | Y | Y | Y |
+ `elf32_newphdr()` | Y | Y | |
+ `elf64_getehdr()` | Y | Y | Y |
+ `elf64_getphdr()` | Y | Y | Y |
+ `elf64_newehdr()` | Y | Y | Y |
+ `elf64_newphdr()` | Y | Y | |
+ `elf64_getshdr()` | Y  | Y | Y 
+ `gelf_getehdr()` | Y | Y | Y |
+ `gelf_getphdr()` | Y | Y  | |
+ `gelf_getshdr()` | Y | Y | |
+ `gelf_newehdr()` | Y | Y | Y |
+ `gelf_newphdr()` | Y | Y | |
+ `gelf_update_ehdr()` | Y | Y | |
+ `gelf_update_phdr()` | Y | Y | |
+ `gelf_update_shdr()` | Y | Y | |
+ **Elf Sections**
+ `elf_getscn()` | Y | Y | Y |
+ `elf_nextscn()` | Y | Y | Y |
+ `elf_newscn()` | Y | Y | Y |
+ **Elf Data**
+ `elf_fill()` | Y | Y  | |
+ `elf_getdata()` | Y | Y | |
+ `elf_newdata()` | Y | Y | |
+ `elf_strptr()` | Y | Y | |
+ `gelf_getdyn()` | Y | Y | |
+ `gelf_getmove()` | Y | Y | |
+ `gelf_getrel()` | Y | Y | |
+ `gelf_getrela()` | Y | Y  | |
+ `gelf_getsym()` | Y | Y | |
+ `gelf_getsyminfo()` | Y | Y  | |
+ `gelf_getsymshndx()` | Y | Y | |
+ `gelf_update_dyn()` | Y | Y | |
+ `gelf_update_move()` | Y  | Y | |
+ `gelf_update_rel()` | Y | Y | |
+ `gelf_update_rela()` | Y | Y  | |
+ `gelf_update_sym()` | Y | Y | |
+ `gelf_update_syminfo()` | Y | Y  | |
+ `gelf_update_symshndx()` | Y  | Y | |
+ **I/O Control**
+ `elf_cntl()` | Y | Y | Y |
+ `elf_flagdata()` | Y | Y | Y |
+ `elf_flagehdr()` | Y | Y | Y |
+ `elf_flagphdr()` | Y | Y | Y |
+ `elf_flagscn()` | Y | Y | Y |
+ `elf_flagshdr()` | Y | Y | Y |
+ `elf_update()` | Y | Y | Y |
+ **API Extensions**
+ `elf_add_member()` | | | | See [LibElfArchiveCreation]
+ `elf_add_symtab()` | | | | See [LibElfArchiveCreation]
+ `elf_flagarhdr()` | Y | Y | | See [LibElfArchiveCreation]
+ `elf_open()` | Y | | |
+ `elf_openmember()` | Y  | | |
+ `elf_setshstrndx()` | Y | Y  | |

 ## Portability

@@ -453,63 +128,6 @@

   * [Incompatibilities with older versions of Red Hat elfutils](LibElfIncompatibilityRedHatElfUtils). 

-## Open Tickets
-
-[Ticket](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=id&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary&amp;amp;desc=1) [Status](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=status&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary) [Owner](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=owner&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary) [Milestone](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=milestone&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary) [Summary](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=summary&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary)
-
-[#7](/apps/trac/elftoolchain/ticket/7)
-new 
-jkoshy 
-RELEASE_1_0 
-[Add ability to remove a section](/apps/trac/elftoolchain/ticket/7)
-
-[#15](/apps/trac/elftoolchain/ticket/15)
-new 
-jkoshy 
-Future Work 
-[Add APIs to allow creation of ar(1) archives](/apps/trac/elftoolchain/ticket/15)
-
-[#275](/apps/trac/elftoolchain/ticket/275)
-accepted 
-jkoshy 
-Future Work 
-[Track down the origin of ELFOSABI_ARM, ELFOSABI_HURD, ELFOSABI_86OPEN and ELFOSABI_STANDALONE.](/apps/trac/elftoolchain/ticket/275)
-
-[#276](/apps/trac/elftoolchain/ticket/276)
-new 
-jkoshy 
-RELEASE_1_0 
-[Document the file format for ELF files in a manual page.](/apps/trac/elftoolchain/ticket/276)
-
-[#292](/apps/trac/elftoolchain/ticket/292)
-new 
-jkoshy 
-RELEASE_1_0 
-[Increase the level of detail in libelf's error reporting](/apps/trac/elftoolchain/ticket/292)
-
-[#350](/apps/trac/elftoolchain/ticket/350)
-accepted 
-jkoshy 
-Future Work 
-[build fails on ubuntu 11.04](/apps/trac/elftoolchain/ticket/350)
-
-[#409](/apps/trac/elftoolchain/ticket/409)
-new 
-jkoshy 
-RELEASE_1_0 
-[Fix the build of libelf on OpenBSD/amd64](/apps/trac/elftoolchain/ticket/409)
-
-[#429](/apps/trac/elftoolchain/ticket/429)
-accepted 
-jkoshy 
-RELEASE_1_0 
-[elf_newdata for SHR_NOBITS section doesn't set section's offset, size and align value](/apps/trac/elftoolchain/ticket/429)
-
-[#431](/apps/trac/elftoolchain/ticket/431)
-new 
-jkoshy 
-RELEASE_1_0 
-[Avoid "dead assignment" LLVM scan-build warnings (1)](/apps/trac/elftoolchain/ticket/431)

 ## References

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joseph Koshy</dc:creator><pubDate>Sun, 29 Dec 2013 13:53:47 -0000</pubDate><guid>https://sourceforge.netfb4cb023e3ba04b3f8e0e42e605be66fdf7a44c5</guid></item><item><title>libelf modified by Joseph Koshy</title><link>https://sourceforge.net/p/elftoolchain/wiki/libelf/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="libelf"&gt;libelf&lt;/h1&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#libelf"&gt;libelf&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#whats-available"&gt;What's Available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#implementation-status"&gt;Implementation Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#portability"&gt;Portability&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#extensions"&gt;Extensions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#incompatibilities"&gt;Incompatibilities&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#open-tickets"&gt;Open Tickets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#references"&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;The &lt;strong&gt;libelf&lt;/strong&gt; library simplifies the task of creating portable and architecture-independent tools that read and write ELF files. &lt;/p&gt;
&lt;p&gt;This implementation of &lt;strong&gt;libelf&lt;/strong&gt; implements the full SVR4 ELF(3)/GELF(3) API set, along with a few minor extensions. &lt;/p&gt;
&lt;h2 id="whats-available"&gt;What's Available&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;An &lt;a class="" href="/apps/trac/elftoolchain/browser/trunk/libelf"&gt;implementation of the ELF(3) API&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;A &lt;a class="" href="http://tetworks.opengroup.org" rel="nofollow"&gt;TET&lt;/a&gt; based &lt;a class="" href="/apps/trac/elftoolchain/browser/trunk/test/libelf"&gt;test suite&lt;/a&gt; for the ELF(3) API. &lt;/li&gt;
&lt;li&gt;Comprehensive documentation in the form of manual pages (part of the &lt;a class="" href="/apps/trac/elftoolchain/browser/trunk/libelf"&gt;source tree&lt;/a&gt;). &lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://sourceforge.net/projects/elftoolchain/files/Documentation/libelf-by-example/20120308/libelf-by-example.pdf/download"&gt;A tutorial introduction&lt;/a&gt; to &lt;strong&gt;libelf&lt;/strong&gt;. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="implementation-status"&gt;Implementation Status&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;API&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Implementation&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Manual Page&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Test Cases&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Comments&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Error Handling&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_errno()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_errmsg()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Initialization&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_begin()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_end()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Partial &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_memory()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Archive Access&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_rand()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Partial &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_next()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getarsym()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getarhdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ELF Class/Byte order Translation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_xlatetof()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_xlatetom()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_xlatetof()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_xlatetom()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_xlatetof()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_xlatetom()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;General Queries&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getbase()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getident()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getphdrnum()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getphnum()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Deprecated API. See &lt;a class="alink" href="/p/elftoolchain/wiki/LibElfIncompatibilityRedHatElfUtils/"&gt;[LibElfIncompatibilityRedHatElfUtils]&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getshdrnum()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getshnum()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Deprecated API. See &lt;a class="alink" href="/p/elftoolchain/wiki/LibElfIncompatibilityRedHatElfUtils/"&gt;[LibElfIncompatibilityRedHatElfUtils]&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getshdrstrndx()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getshstrndx()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Deprecated API. See &lt;a class="alink" href="/p/elftoolchain/wiki/LibElfIncompatibilityRedHatElfUtils/"&gt;[LibElfIncompatibilityRedHatElfUtils]&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_hash()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_kind()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_ndxscn()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_rawdata()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_rawfile()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_version()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_checksum()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_fsize()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_checksum()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_fsize()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_checksum()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getclass()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_fsize()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Elf Headers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_getehdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_getphdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_getshdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_newehdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf32_newphdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_getehdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_getphdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_newehdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_newphdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf64_getshdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getehdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getphdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getshdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_newehdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_newphdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_ehdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_phdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_shdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Elf Sections&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getscn()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_nextscn()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_newscn()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Elf Data&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_fill()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_getdata()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_newdata()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_strptr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getdyn()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getmove()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getrel()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getrela()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getsym()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getsyminfo()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_getsymshndx()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_dyn()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_move()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_rel()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_rela()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_sym()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_syminfo()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;gelf_update_symshndx()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I/O Control&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_cntl()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_flagdata()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_flagehdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_flagphdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_flagscn()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_flagshdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_update()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;API Extensions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_add_member()&lt;/code&gt;&lt;br /&gt;
See &lt;a class="alink" href="/p/elftoolchain/wiki/LibElfArchiveCreation/"&gt;[LibElfArchiveCreation]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_add_symtab()&lt;/code&gt;&lt;br /&gt;
See &lt;a class="alink" href="/p/elftoolchain/wiki/LibElfArchiveCreation/"&gt;[LibElfArchiveCreation]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_flagarhdr()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;br /&gt;
See &lt;a class="alink" href="/p/elftoolchain/wiki/LibElfArchiveCreation/"&gt;[LibElfArchiveCreation]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_open()&lt;/code&gt;&lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_openmember()&lt;/code&gt;&lt;br /&gt;
Y &lt;/p&gt;
&lt;p&gt;&lt;code&gt;elf_setshstrndx()&lt;/code&gt;&lt;br /&gt;
Y &lt;br /&gt;
Y &lt;/p&gt;
&lt;h2 id="portability"&gt;Portability&lt;/h2&gt;
&lt;h3 id="extensions"&gt;Extensions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="/p/elftoolchain/wiki/LibElfArchiveCreation/"&gt;Extensions for creating ar(1) archives&lt;/a&gt;. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="incompatibilities"&gt;Incompatibilities&lt;/h3&gt;
&lt;p&gt;Known incompatibilities with other ELF(3) implementations. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="/p/elftoolchain/wiki/LibElfIncompatibilityRedHatElfUtils/"&gt;Incompatibilities with older versions of Red Hat elfutils&lt;/a&gt;. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="open-tickets"&gt;Open Tickets&lt;/h2&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=id&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary&amp;amp;desc=1"&gt;Ticket&lt;/a&gt; &lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=status&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary"&gt;Status&lt;/a&gt; &lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=owner&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary"&gt;Owner&lt;/a&gt; &lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=milestone&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary"&gt;Milestone&lt;/a&gt; &lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libelf&amp;amp;order=summary&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary"&gt;Summary&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/7"&gt;#7&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
jkoshy &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/7"&gt;Add ability to remove a section&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/15"&gt;#15&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
jkoshy &lt;br /&gt;
Future Work &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/15"&gt;Add APIs to allow creation of ar(1) archives&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/275"&gt;#275&lt;/a&gt;&lt;br /&gt;
accepted &lt;br /&gt;
jkoshy &lt;br /&gt;
Future Work &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/275"&gt;Track down the origin of ELFOSABI_ARM, ELFOSABI_HURD, ELFOSABI_86OPEN and ELFOSABI_STANDALONE.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/276"&gt;#276&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
jkoshy &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/276"&gt;Document the file format for ELF files in a manual page.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/292"&gt;#292&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
jkoshy &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/292"&gt;Increase the level of detail in libelf's error reporting&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/350"&gt;#350&lt;/a&gt;&lt;br /&gt;
accepted &lt;br /&gt;
jkoshy &lt;br /&gt;
Future Work &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/350"&gt;build fails on ubuntu 11.04&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/409"&gt;#409&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
jkoshy &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/409"&gt;Fix the build of libelf on OpenBSD/amd64&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/429"&gt;#429&lt;/a&gt;&lt;br /&gt;
accepted &lt;br /&gt;
jkoshy &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/429"&gt;elf_newdata for SHR_NOBITS section doesn't set section's offset, size and align value&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/431"&gt;#431&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
jkoshy &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/431"&gt;Avoid "dead assignment" LLVM scan-build warnings (1)&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="http://www.caldera.com/developers/gabi/" rel="nofollow"&gt;ELF gABI&lt;/a&gt; from SCO. &lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://docs.sun.com/app/docs/doc/817-1984" rel="nofollow"&gt;Linker and Libraries Guide&lt;/a&gt; from Sun Microsystems. &lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://developers.sun.com/solaris/articles/elf.html" rel="nofollow"&gt;LibELF tutorial&lt;/a&gt; from Sun Microsystems. &lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://devresource.hp.com/drc/STK/docs/refs/elf-64-hp.pdf" rel="nofollow"&gt;ELF-64 Object File Format&lt;/a&gt; including HP and HP-UX extensions, from Hewlett-Packard. &lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://www.mr511.de/software/english.html" rel="nofollow"&gt;LGPL'ed libelf(3) implementation&lt;/a&gt; by Michael Riepe. &lt;/li&gt;
&lt;li&gt;An &lt;a class="" href="http://www.ertos.nicta.com.au/software/kenge/libelf/devel/" rel="nofollow"&gt;ELF library&lt;/a&gt; from the ERTOS project (doesn't implement the ELF(3) API). &lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://www-128.ibm.com/developerworks/power/library/pa-spec12/?ca=dgr-lnxw41ELFHero" rel="nofollow"&gt;Standards and specs: An unsung hero: The hardworking ELF&lt;/a&gt;. IBM Developerworks article by Peter Seebach. &lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://tetworks.opengroup.org/tet/" rel="nofollow"&gt;Test Execution Toolkit&lt;/a&gt; from the Open Group. &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joseph Koshy</dc:creator><pubDate>Wed, 25 Dec 2013 07:30:45 -0000</pubDate><guid>https://sourceforge.neta5c57a92c7e3222df967394036b01339fcdfd7ca</guid></item></channel></rss>