22e5afe2db
Changelog: Release Notes for Elftoolchain Software Version 0.7.1 ===================================================== About The Project ----------------- The `Elftoolchain project`_ develops BSD-licensed implementations of essential compilation tools and libraries for handling ELF based program objects. About The Release ----------------- This is the first release on the v0.7 "stable" code line. Since the prior v0.6.1 release, we have added support for a few more machine architectures, improved our support of the DWARF4 debug format, and have added experimental support for the Microsoft (TM) Portable Executable format. A number of bugs have been fixed, and the project's documentation has been improved. An implementation of a link editor **ld** is in progress. Libraries and Utilities ~~~~~~~~~~~~~~~~~~~~~~~ This release comprises the following libraries and utilities. ================= ========================================== **Name** **Description** ================= ========================================== **ar** Archive manager. **addr2line** Debug tool. **brandelf** Manage the ELF brand on executables. **c++filt** Translate encoded symbols. **elfcopy** Copy and translate between object formats. **elfdump** Diagnostic tool. **findtextrel** Find undesired text relocations. **libdwarf** DWARF access library. **libelf** ELF access library. **mcs** Manage comment sections. **nm** List symbols in an ELF object. **ranlib** Add archive symbol tables to an archive. **readelf** Display ELF information. **size** List object sizes. **strings** Extract printable strings. **strip** Discard information from ELF objects. ================= ========================================== This release also contains the following software that is under development: ================= ========================================== **Name** **Description** ================= ========================================== **ld** Program linker. **libpe** PE (Portable Executable) access library. ================= ========================================== Documentation ~~~~~~~~~~~~~ Each public API and invocable utility has a reference manual entry. We currently offer 355 manual entries, documented in 197 manual pages. Additionally, this release contains the following documentation: ================= ========================================== **Name** **Description** ================= ========================================== libelf-by-example A tutorial introduction to **libelf**. ================= ========================================== Test Suites ~~~~~~~~~~~ The release contains the following test suites: ================= ========================================== **Name** **Description** ================= ========================================== ar Test the **ar** utility. elfcopy Test the **elfcopy** utility. elfdump Test the **elfdump** utility. libdwarf Test the **libdwarf** library. libelf Test the **libelf** library. libelftc Test the **libelftc** support library. nm Test the **nm** utility. ================= ========================================== System Requirements ------------------- This software is designed to run on Unix(TM)-like operating systems such as the BSD-family of operating systems and GNU/Linux. This release has been built and tested on the following operating systems: ==================== =========== =========================== **Operating System** **Version** **Supported Architectures** -------------------- ----------- --------------------------- FreeBSD_ 10.2 amd64 & i386 NetBSD_ 7.0 i386 Ubuntu_ GNU/Linux 14.04LTS x86_64 ==================== =========== =========================== Installation and Upgrades ========================= Installation ------------ Instructions for building and installing this software from source are described in the file "INSTALL". Upgrading --------- * Consumers of the libdwarf API should note that the `Dwarf_Off` type has changed to an unsigned type, so as to be compatible with other open-source libdwarf implementations. * Three functions in the libdwarf API have been deprecated and two extension APIs have been added. Release Information =================== Changes in this release ----------------------- Significant changes include: * **addr2line** - Support the ``DW_AT_ranges`` debug attribute. - Improve DWARF4 compatibility. - **addr2line** supports new options ``-a``, ``-i``, ``-p``. - Compilation units lacking debug information are handled more robustly. - Memory leaks were fixed. * **ar/ranlib** - The **ranlib** utility is now documented in its own manual page. - The handling of corrupt archives has been improved. - **ar** now supports a ``-U`` option that disables its deterministic (``-D``) mode. - **ar** no longer allows extraction of archive entries whose pathnames contain ``..``, or whose target directory would be altered by a symbolic link. * **brandelf** - The documentation for **brandelf** has been improved. * **elfcopy/strip/mcs** - **strip** no longer strips local debugging symbols when the ``-x`` option is specified. - Compatibility with GNU binutils has been improved. - The **elfcopy** and **strip** utilities will now preserve hard links when modifying an object file. - Support for new functionality controlled by options ``--localize-hidden``, ``--extract-dwo`` and ``--strip-dwo`` has been added. - Bugs in the behavior of the ``-N`` and ``-X`` options were fixed. - Nameless global symbols are now handled correctly. - ``SHT_GROUP`` handling has been fixed in **elfcopy** and **strip**. - **elfcopy** now supports the conversion of ELF objects to PE images. * **elfdump** - **elfdump** can now dump multiple GOT sections. - **elfdump** now understands the ``EM_AARCH64``, ``EM_IAMCU``, ``EM_PPC64``, and ``EM_RISCV`` machine types and the ``STT_SPARC_REGISTER`` section type. - Symbols with ``STB_GNU_UNIQUE`` are now supported. * **findtextrel** - The manual pages were improved. * **ld** - This utility is new in this release. This utility is currently under development, and should be considered unstable. * **libdwarf** - The line number program generated by **libdwarf** has been improved. - Support for the DWARF4 ``.debug_types`` section was added. - Parsing of DWARF4 line sections was fixed. - New APIs ``dwarf_attroffset()``, ``dwarf_get_cu_die_offset_given_cu_header_offset_b()``, ``dwarf_get_die_infotypes_flag()``, ``dwarf_get_section_max_offsets()``, ``dwarf_get_section_max_offsets_b()``, ``dwarf_highpc_b()``, ``dwarf_loclist_from_expr_b()``, ``dwarf_next_types_section()``, ``dwarf_offdie_b()``, and ``dwarf_siblingof_b()`` have been added. Of these, ``dwarf_attroffset()`` and ``dwarf_next_types_section()`` are extensions to the SGI libdwarf API. - Support for operators ``DW_OP_GNU_addr_index``, ``DW_OP_GNU_const_index``, ``DW_OP_GNU_const_type``, ``DW_OP_GNU_convert``, ``DW_OP_GNU_deref_type``, ``DW_OP_GNU_encoded_addr``, ``DW_OP_GNU_entry_value``, ``DW_OP_GNU_implicit_pointer``, ``DW_OP_GNU_parameter_ref``, ``DW_OP_GNU_regval_type``, ``DW_OP_GNU_reinterpret``, ``DW_OP_GNU_uninit`` and ``DW_OP_push_object_address`` have been added. - APIs ``dwarf_get_cu_die_offset_given_cu_header_offset()``, ``dwarf_offdie()``, ``dwarf_siblingof()`` have been deprecated. - **libdwarf** now supports relocation for the ``aarch64`` architecture. - **libdwarf** now handles architectures that use ".rel" relocations for debug data correctly. - The ``EM_IAMCU`` architecture is now recognized. - Documentation has been improved, memory leaks and other bugs have been fixed. * **libelf** - Reference documentation has been improved. - Support building on the AARCH64 architecture has added. - Bug fixes have been applied. * **libelf-by-example** - No changes since the prior release. * **libelftc** - Support for the Portable Executable format has been added. - Overview documentation for this support library has been added. - New APIs ``elftc_string_table_from_section()``. ``elftc_string_table_image()``, ``elftc_string_table_insert()``, ``elftc_string_table_lookup()``, ``elftc_string_table_remove()`` and ``elftc_string_table_to_string()`` have been added. - The demangling support functions now support IEEE floating point types, TLS special names and various GNU extensions. - Other bugs have fixed. * **libpe** - This library is new in this release. This library is currently under development, and should be considered unstable. * **nm** - A new alias ``--extern-only`` for option ``-g`` is now supported. - Bugs have been fixed. * **readelf** - The handling of objects with missing symbol names was improved. - **readelf** now supports dumping ``.debug_types`` sections. - The ``DW_AT_language``, ``DW_FORM_exprloc``, ``DW_FORM_flag_present``, ``DW_FORM_ref_sig8`` and ``DW_FORM_sec_offset`` types are now supported. - GNU DWARF operator extensions are now recognized by **readelf**. - **readelf** can now display architecture specific register names on some architectures. - **readelf** now handles AArch64 types and relocations and recognizes the ``RISC-V`` and ``IAMCU`` architectures. - Support has been added for printing binary notes for FreeBSD, Xen and Linux, and for printing core notes for FreeBSD and Linux. - Support for dumping symbols with the ``STB_GNU_UNIQUE`` binding has been added. - Support for dumping symbols with the ``STT_SPARC_REGISTER`` register type has been added. * **size** - The manual page for **size** has been improved. * **strings** - The manual page for **strings** has been improved. Outstanding Issues ------------------ There were no outstanding issues at the time of the release. Known Limitations ----------------- This release has the following limitations: :Test coverage: Our test suites are being developed; test coverage is still partial. :Performance and Memory Use: Our tools have not been fully analyzed for their memory use or for their performance characteristics. Test Statistics --------------- The test summary for this release is presented below: ========= ========== =============== ================ =================== **Suite** **Tests** **FreeBSD** **NetBSD** **Ubuntu 10.04LTS** (32&64bit) (i386 & amd64) (i386) (x86_64) ========= ========== =============== ================ =================== ar 235 & 230 P:235 & 230 P:235 P:230 elfcopy 160 P:160 P:160 P:160 elfdump 155 P:155 P:155 P:155 libdwarf 153 P:153 P:153 P:153 libelf 1030 P:1026, U:4 P:1026, U:4 P:1026, U:4 libelftc 16 P:16 P:16 P:16 nm 183 P:183 P:183 P:183 ========= ========== =============== ================ =================== Key: :P: Test successes. :F: Test failures. :U: Unresolved tests. Notes ~~~~~ More Information ================ The project's website is at http://elftoolchain.sourceforge.net/. Developer Community ------------------- The project's developers may be contacted using the mailing list: ``<elftoolchain-developers@lists.sourceforge.net>``. Reporting Bugs -------------- Please use our `bug tracker`_ for viewing existing bug reports and for submitting new bug reports. Copyright and License ===================== This software is copyright its authors, and is distributed under the `BSD License`_. .. _BSD License: http://www.opensource.org/licenses/bsd-license.php .. _`bug tracker`: https://sourceforge.net/p/elftoolchain/tickets/ .. _Elftoolchain project: http://elftoolchain.sourceforge.net/ .. _FreeBSD: http://www.freebsd.org/ .. _NetBSD: http://www.netbsd.org/ .. _Ubuntu: http://www.ubuntu.com/ .. Local Variables: .. mode: rst .. End: |
||
---|---|---|
.. | ||
patches | ||
DESCR | ||
distinfo | ||
Makefile | ||
PLIST |