I am sponsoring the following self-reviewed case for myself. I believe these changes are sufficiently non-controversial, and reflect a wider community agreement.
It obsoletes three existing functions in libelf, and adds three new functions to replace them, as follows: Obsolete Replaced By --------------------------------------- elf_getphnum() elf_getphdrnum() elf_getshnum() elf_getshdrnum() elf_getshstrndx() elf_getshdrstrndx() This action is being taken to address: 6851224 elf_getshnum() and elf_getshstrndx() incompatible with 2002 ELF gABI agreement The original functions were defined at a meeting held in 2002 with representatives from other ELF based systems. The agreement was that they should return -1 for failure, and 0 for success. We originally defined them that way 4696204 enable extended section indexes in relocatable objects PSARC/2001/332 ELF gABI updates - round II and our original manpages documented them as such. However, due to a simple mistake, our implementation of these functions returns 0 for failure, and 1 for success. In 2005, the discrepancy between documentation and implementation was noted, and the documentation modified to match the code: 6348820 elf_getident(3ELF) is inaccurate and lacks a RETURN VALUES section I recently became aware of the deviation from the 2002 gABI agreement when I received email about some ELF code I had posted to my Sun blog that did not work properly under Linux. I have exchanged email with the maintainers of other libelf implementations, and we have mutually agreed that the least damaging way to repair this issue is to obsolete the original three functions, and replace them with new versions that return -1 for failure, and 0 for success. Although the original functions will be obsoleted, there is no intent to remove them. Each libelf implementation will retain them unchanged, for binary compatibility with their respective installed bases. Manpages and other documentation will make it clear that their use is discouraged, and will point at the replacements. The fix for 6851224 will include converting the OSnet code base to use the new functions rather than the old versions. Existing code is often used as a template for new code, so this change will help ensure that the right versions are copied and used going forward. ----- Release Binding: Patch/Micro elf_getphnum() Obsolete Committed elf_getshnum() Obsolete Committed elf_getshdrnum() Obsolete Committed elf_getphdrnum() Committed elf_getshstrndx() Committed elf_getshdrstrndx() Committed