Commit graph

17 commits

Author SHA1 Message Date
ryoon
22e5afe2db Update to 0.7.1
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:
2018-10-01 12:36:35 +00:00
agc
95b9d8fc3e 1. add lex as a tool, problem shown up by ubuntu LTS bulk build
2. Add a patch to cast a floating point number before using it to resize
buffers, unbreaks the build on NetBSD.
2017-05-31 22:14:43 +00:00
bsiegert
924e069772 This is definitely not for Darwin.
a) it does not build
b) Darwin uses Mach-O
2016-05-14 08:29:37 +00:00
joerg
fcc7db1cf2 Disable various noisy warnings for GCC too. Adjust clang handling to
also work directly with bootstrap-mk-files.
2016-05-07 09:52:44 +00:00
tnn
8e8dea547e needs m4 2016-03-09 21:34:21 +00:00
agc
d9e4cfe05d Add SHA512 digests for distfiles for devel category
Issues found with existing distfiles:
	distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
	distfiles/fortran-utils-1.1.tar.gz
	distfiles/ivykis-0.39.tar.gz
	distfiles/enum-1.11.tar.gz
	distfiles/pvs-3.2-libraries.tgz
	distfiles/pvs-3.2-linux.tgz
	distfiles/pvs-3.2-solaris.tgz
	distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
2015-11-03 03:27:11 +00:00
joerg
0560a7e509 Ignore const cast issues. 2014-12-10 23:22:05 +00:00
wiz
cda18437be Remove pkgviews: don't set PKG_INSTALLATION_TYPES in Makefiles. 2014-10-09 14:05:50 +00:00
joerg
0028a55169 Ignore conversion warnings for now. Some of them are easy to fix, but a
bunch of them are tricky.
2014-04-17 20:17:52 +00:00
joerg
147328e974 Annotate variadic functions. 2014-01-15 13:50:43 +00:00
joerg
ee7b08b627 Continue on certain harmless default warnings from clang. 2013-09-10 14:16:52 +00:00
asau
e1ab7079b6 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-31 11:16:30 +00:00
dholland
a05135e91b Fix warnings about old-style function definitions that are fatal in
some(?) builds.
2012-09-28 08:59:07 +00:00
dholland
77ffe8687a Force MKPROFILE=yes to prevent plist divergence. It seems that in a
bootstrapped environment on NetBSD, MKPROFILE defaults to no, but
using the base system's make library it defaults to yes. This seems
like a bug, but I'm not sure where to fix it so I'm going to stick to
working around it for the moment.
2011-11-26 19:59:58 +00:00
dholland
65f45fd80b Add a minor version to the shared libraries; otherwise a bootstrapped
build does e.g. "ln -sf libelf.so.1 libelf.so.1" and then install
fails with ELOOP.

This is a bug in bootstrap-mk-files but I'm going to fix it in both
places to avoid demanding rebootstrapping.
2011-11-26 15:50:27 +00:00
joerg
d64f4f0856 Not MAKE_JOBS_SAFE. 2011-11-25 21:39:07 +00:00
agc
f15d9e1fe6 Initial import of elftoolchain-0.5.1 into the packages collection.
A BSD-licensed implementation of compilation tools (nm, ar,
	as, ld, etc.) for the ELF object format.

	This release contains BSD-licensed implementations of the
	"libdwarf" and "libelf" libraries, and of the "addr2line",
	"ar", "brandelf", "c++filt", "elfcopy", "elfdump",
	"findtextrel", "mcs", "nm", "ranlib", "readelf", "size",
	"strings" and "strip" program development utilities.  The
	release also contains API and utility reference documentation
	(300+ manual entries in all), and contains test suites for
	some of these released utilities and libraries.

With thanks to jkoshy for all the help.
2011-11-20 06:25:17 +00:00