svn commit: r342916 - in vendor/elftoolchain/dist: . addr2line ar as common cxxfilt elfcopy isa ld libdwarf libelf libelftc mk nm readelf strings test test/ar test/ar/tc/add-nonexistent test/ar/tc/...
Ed Maste
emaste at FreeBSD.org
Thu Jan 10 14:18:17 UTC 2019
Author: emaste
Date: Thu Jan 10 14:18:11 2019
New Revision: 342916
URL: https://svnweb.freebsd.org/changeset/base/342916
Log:
Import ELF Tool Chain snapshot at r3668
From http://svn.code.sf.net/p/elftoolchain/code/
Added:
vendor/elftoolchain/dist/README.rst
- copied, changed from r342915, vendor/elftoolchain/dist/README
vendor/elftoolchain/dist/libelf/libelf_elfmachine.c (contents, props changed)
vendor/elftoolchain/dist/mk/elftoolchain.test-target.mk (contents, props changed)
vendor/elftoolchain/dist/test/ar/tc/add-nonexistent/
vendor/elftoolchain/dist/test/ar/tc/add-nonexistent/add-nonexistent.err
vendor/elftoolchain/dist/test/ar/tc/add-nonexistent/add-nonexistent.eval
vendor/elftoolchain/dist/test/ar/tc/add-nonexistent/add-nonexistent.out
vendor/elftoolchain/dist/test/ar/tc/add-nonexistent/add-nonexistent.sh (contents, props changed)
vendor/elftoolchain/dist/test/ar/tc/add-nonexistent/out/
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/extract-nonexistent.err
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/extract-nonexistent.eval
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/extract-nonexistent.out
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/extract-nonexistent.sh (contents, props changed)
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/in/
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/in/valid.shar (contents, props changed)
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/out/
vendor/elftoolchain/dist/test/ar/tc/extract-nonexistent/out/valid.shar (contents, props changed)
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/extract-nonleaf.err
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/extract-nonleaf.eval
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/extract-nonleaf.out
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/extract-nonleaf.sh (contents, props changed)
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/in/
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/in/invalid.shar
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/out/
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/out/invalid.shar
vendor/elftoolchain/dist/test/ar/tc/extract-nonleaf/out/s1
vendor/elftoolchain/dist/test/ar/tc/ranlib-missing-archive/
vendor/elftoolchain/dist/test/ar/tc/ranlib-missing-archive/ranlib-missing-archive.err
vendor/elftoolchain/dist/test/ar/tc/ranlib-missing-archive/ranlib-missing-archive.eval
vendor/elftoolchain/dist/test/ar/tc/ranlib-missing-archive/ranlib-missing-archive.out
vendor/elftoolchain/dist/test/ar/tc/ranlib-missing-archive/ranlib-missing-archive.sh (contents, props changed)
vendor/elftoolchain/dist/test/libtest/
vendor/elftoolchain/dist/test/libtest/Makefile (contents, props changed)
vendor/elftoolchain/dist/test/libtest/README.rst
vendor/elftoolchain/dist/test/libtest/bin/
vendor/elftoolchain/dist/test/libtest/bin/Makefile (contents, props changed)
vendor/elftoolchain/dist/test/libtest/bin/make-test-scaffolding (contents, props changed)
vendor/elftoolchain/dist/test/libtest/bin/make-test-scaffolding.1 (contents, props changed)
vendor/elftoolchain/dist/test/libtest/driver/
vendor/elftoolchain/dist/test/libtest/driver/Makefile (contents, props changed)
vendor/elftoolchain/dist/test/libtest/driver/test_main.c (contents, props changed)
vendor/elftoolchain/dist/test/libtest/examples/
vendor/elftoolchain/dist/test/libtest/examples/Makefile (contents, props changed)
vendor/elftoolchain/dist/test/libtest/examples/minimal_example.c (contents, props changed)
vendor/elftoolchain/dist/test/libtest/examples/simple_example.c (contents, props changed)
vendor/elftoolchain/dist/test/libtest/lib/
vendor/elftoolchain/dist/test/libtest/lib/Makefile (contents, props changed)
vendor/elftoolchain/dist/test/libtest/lib/test.3 (contents, props changed)
vendor/elftoolchain/dist/test/libtest/lib/test.c (contents, props changed)
vendor/elftoolchain/dist/test/libtest/lib/test.h (contents, props changed)
vendor/elftoolchain/dist/test/libtest/lib/test_runner.c (contents, props changed)
vendor/elftoolchain/dist/test/libtest/lib/test_runner.h (contents, props changed)
Deleted:
vendor/elftoolchain/dist/README
Modified:
vendor/elftoolchain/dist/INSTALL
vendor/elftoolchain/dist/addr2line/addr2line.1
vendor/elftoolchain/dist/addr2line/addr2line.c
vendor/elftoolchain/dist/ar/ar.1
vendor/elftoolchain/dist/ar/ar.5
vendor/elftoolchain/dist/ar/ar.c
vendor/elftoolchain/dist/ar/ar.h
vendor/elftoolchain/dist/ar/ranlib.1
vendor/elftoolchain/dist/ar/read.c
vendor/elftoolchain/dist/ar/write.c
vendor/elftoolchain/dist/as/as.1
vendor/elftoolchain/dist/common/native-elf-format
vendor/elftoolchain/dist/cxxfilt/c++filt.1
vendor/elftoolchain/dist/elfcopy/elfcopy.1
vendor/elftoolchain/dist/elfcopy/elfcopy.h
vendor/elftoolchain/dist/elfcopy/mcs.1
vendor/elftoolchain/dist/elfcopy/sections.c
vendor/elftoolchain/dist/elfcopy/segments.c
vendor/elftoolchain/dist/elfcopy/strip.1
vendor/elftoolchain/dist/isa/isa.1
vendor/elftoolchain/dist/ld/ld.1
vendor/elftoolchain/dist/libdwarf/dwarf.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_comp_dir.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_const_value_string.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_dataref.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_flag.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_location_expr.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_name.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_producer.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_ref_address.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_reference.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_signed_const.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_string.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_AT_targ_address.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_arange.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_die_to_debug.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_directory_decl.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_expr_addr.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_expr_gen.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_fde_inst.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_file_decl.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_frame_cie.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_frame_fde.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_funcname.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_line_entry.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_pubname.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_typename.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_varname.3
vendor/elftoolchain/dist/libdwarf/dwarf_add_weakname.3
vendor/elftoolchain/dist/libdwarf/dwarf_attr.3
vendor/elftoolchain/dist/libdwarf/dwarf_attrlist.3
vendor/elftoolchain/dist/libdwarf/dwarf_attroffset.3
vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3
vendor/elftoolchain/dist/libdwarf/dwarf_child.3
vendor/elftoolchain/dist/libdwarf/dwarf_dealloc.3
vendor/elftoolchain/dist/libdwarf/dwarf_def_macro.3
vendor/elftoolchain/dist/libdwarf/dwarf_die_abbrev_code.3
vendor/elftoolchain/dist/libdwarf/dwarf_die_link.3
vendor/elftoolchain/dist/libdwarf/dwarf_diename.3
vendor/elftoolchain/dist/libdwarf/dwarf_dieoffset.3
vendor/elftoolchain/dist/libdwarf/dwarf_end_macro_file.3
vendor/elftoolchain/dist/libdwarf/dwarf_errmsg.3
vendor/elftoolchain/dist/libdwarf/dwarf_errno.3
vendor/elftoolchain/dist/libdwarf/dwarf_expand_frame_instructions.3
vendor/elftoolchain/dist/libdwarf/dwarf_expr_current_offset.3
vendor/elftoolchain/dist/libdwarf/dwarf_expr_into_block.3
vendor/elftoolchain/dist/libdwarf/dwarf_fde_cfa_offset.3
vendor/elftoolchain/dist/libdwarf/dwarf_find_macro_value_start.3
vendor/elftoolchain/dist/libdwarf/dwarf_finish.3
vendor/elftoolchain/dist/libdwarf/dwarf_formaddr.3
vendor/elftoolchain/dist/libdwarf/dwarf_formblock.3
vendor/elftoolchain/dist/libdwarf/dwarf_formexprloc.3
vendor/elftoolchain/dist/libdwarf/dwarf_formflag.3
vendor/elftoolchain/dist/libdwarf/dwarf_formref.3
vendor/elftoolchain/dist/libdwarf/dwarf_formsig8.3
vendor/elftoolchain/dist/libdwarf/dwarf_formstring.3
vendor/elftoolchain/dist/libdwarf/dwarf_formudata.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_AT_name.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_abbrev.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_abbrev_children_flag.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_abbrev_code.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_abbrev_entry.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_abbrev_tag.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_address_size.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_arange.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_arange_info.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_aranges.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_cie_index.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_cie_info.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_cie_of_fde.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_cu_die_offset.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_die_infotypes_flag.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_elf.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_at_pc.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs3.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg3.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_instr_bytes.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_list.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_n.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_fde_range.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_form_class.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_funcs.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_globals.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_loclist_entry.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_macro_details.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_pubtypes.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_ranges.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_relocation_info.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_relocation_info_count.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_section_bytes.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_section_max_offsets.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_str.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_types.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_vars.3
vendor/elftoolchain/dist/libdwarf/dwarf_get_weaks.3
vendor/elftoolchain/dist/libdwarf/dwarf_hasattr.3
vendor/elftoolchain/dist/libdwarf/dwarf_hasform.3
vendor/elftoolchain/dist/libdwarf/dwarf_highpc.3
vendor/elftoolchain/dist/libdwarf/dwarf_init.3
vendor/elftoolchain/dist/libdwarf/dwarf_lineno.3
vendor/elftoolchain/dist/libdwarf/dwarf_lne_end_sequence.3
vendor/elftoolchain/dist/libdwarf/dwarf_lne_set_address.3
vendor/elftoolchain/dist/libdwarf/dwarf_loclist.3
vendor/elftoolchain/dist/libdwarf/dwarf_loclist_from_expr.3
vendor/elftoolchain/dist/libdwarf/dwarf_new_die.3
vendor/elftoolchain/dist/libdwarf/dwarf_new_expr.3
vendor/elftoolchain/dist/libdwarf/dwarf_new_fde.3
vendor/elftoolchain/dist/libdwarf/dwarf_next_cu_header.3
vendor/elftoolchain/dist/libdwarf/dwarf_next_types_section.3
vendor/elftoolchain/dist/libdwarf/dwarf_object_init.3
vendor/elftoolchain/dist/libdwarf/dwarf_producer_init.3
vendor/elftoolchain/dist/libdwarf/dwarf_producer_set_isa.3
vendor/elftoolchain/dist/libdwarf/dwarf_reset_section_bytes.3
vendor/elftoolchain/dist/libdwarf/dwarf_set_frame_cfa_value.3
vendor/elftoolchain/dist/libdwarf/dwarf_set_reloc_application.3
vendor/elftoolchain/dist/libdwarf/dwarf_seterrarg.3
vendor/elftoolchain/dist/libdwarf/dwarf_srcfiles.3
vendor/elftoolchain/dist/libdwarf/dwarf_srclines.3
vendor/elftoolchain/dist/libdwarf/dwarf_start_macro_file.3
vendor/elftoolchain/dist/libdwarf/dwarf_tag.3
vendor/elftoolchain/dist/libdwarf/dwarf_transform_to_disk_form.3
vendor/elftoolchain/dist/libdwarf/dwarf_undef_macro.3
vendor/elftoolchain/dist/libdwarf/dwarf_vendor_ext.3
vendor/elftoolchain/dist/libdwarf/dwarf_whatattr.3
vendor/elftoolchain/dist/libelf/Makefile
vendor/elftoolchain/dist/libelf/_libelf.h
vendor/elftoolchain/dist/libelf/elf.3
vendor/elftoolchain/dist/libelf/elf_begin.3
vendor/elftoolchain/dist/libelf/elf_cntl.3
vendor/elftoolchain/dist/libelf/elf_data.c
vendor/elftoolchain/dist/libelf/elf_end.3
vendor/elftoolchain/dist/libelf/elf_errmsg.3
vendor/elftoolchain/dist/libelf/elf_fill.3
vendor/elftoolchain/dist/libelf/elf_flagdata.3
vendor/elftoolchain/dist/libelf/elf_getarhdr.3
vendor/elftoolchain/dist/libelf/elf_getarsym.3
vendor/elftoolchain/dist/libelf/elf_getbase.3
vendor/elftoolchain/dist/libelf/elf_getdata.3
vendor/elftoolchain/dist/libelf/elf_getident.3
vendor/elftoolchain/dist/libelf/elf_getphdrnum.3
vendor/elftoolchain/dist/libelf/elf_getphnum.3
vendor/elftoolchain/dist/libelf/elf_getscn.3
vendor/elftoolchain/dist/libelf/elf_getshdrnum.3
vendor/elftoolchain/dist/libelf/elf_getshdrstrndx.3
vendor/elftoolchain/dist/libelf/elf_getshnum.3
vendor/elftoolchain/dist/libelf/elf_getshstrndx.3
vendor/elftoolchain/dist/libelf/elf_hash.3
vendor/elftoolchain/dist/libelf/elf_kind.3
vendor/elftoolchain/dist/libelf/elf_memory.3
vendor/elftoolchain/dist/libelf/elf_next.3
vendor/elftoolchain/dist/libelf/elf_open.3
vendor/elftoolchain/dist/libelf/elf_rand.3
vendor/elftoolchain/dist/libelf/elf_rawfile.3
vendor/elftoolchain/dist/libelf/elf_scn.c
vendor/elftoolchain/dist/libelf/elf_strptr.3
vendor/elftoolchain/dist/libelf/elf_update.3
vendor/elftoolchain/dist/libelf/elf_update.c
vendor/elftoolchain/dist/libelf/elf_version.3
vendor/elftoolchain/dist/libelf/gelf.3
vendor/elftoolchain/dist/libelf/gelf_checksum.3
vendor/elftoolchain/dist/libelf/gelf_fsize.3
vendor/elftoolchain/dist/libelf/gelf_getcap.3
vendor/elftoolchain/dist/libelf/gelf_getclass.3
vendor/elftoolchain/dist/libelf/gelf_getdyn.3
vendor/elftoolchain/dist/libelf/gelf_getehdr.3
vendor/elftoolchain/dist/libelf/gelf_getmove.3
vendor/elftoolchain/dist/libelf/gelf_getphdr.3
vendor/elftoolchain/dist/libelf/gelf_getrel.3
vendor/elftoolchain/dist/libelf/gelf_getrela.3
vendor/elftoolchain/dist/libelf/gelf_getshdr.3
vendor/elftoolchain/dist/libelf/gelf_getsym.3
vendor/elftoolchain/dist/libelf/gelf_getsyminfo.3
vendor/elftoolchain/dist/libelf/gelf_getsymshndx.3
vendor/elftoolchain/dist/libelf/gelf_newehdr.3
vendor/elftoolchain/dist/libelf/gelf_newphdr.3
vendor/elftoolchain/dist/libelf/gelf_update_ehdr.3
vendor/elftoolchain/dist/libelf/gelf_xlate.c
vendor/elftoolchain/dist/libelf/gelf_xlatetof.3
vendor/elftoolchain/dist/libelf/libelf_convert.m4
vendor/elftoolchain/dist/libelf/libelf_ehdr.c
vendor/elftoolchain/dist/libelf/libelf_phdr.c
vendor/elftoolchain/dist/libelf/libelf_xlate.c
vendor/elftoolchain/dist/libelftc/elftc.3
vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3
vendor/elftoolchain/dist/libelftc/elftc_copyfile.3
vendor/elftoolchain/dist/libelftc/elftc_demangle.3
vendor/elftoolchain/dist/libelftc/elftc_reloc_type_str.3
vendor/elftoolchain/dist/libelftc/elftc_set_timestamps.3
vendor/elftoolchain/dist/libelftc/elftc_string_table_create.3
vendor/elftoolchain/dist/libelftc/elftc_timestamp.3
vendor/elftoolchain/dist/libelftc/elftc_version.3
vendor/elftoolchain/dist/mk/elftoolchain.lib.mk
vendor/elftoolchain/dist/mk/elftoolchain.prog.mk
vendor/elftoolchain/dist/mk/elftoolchain.test.mk
vendor/elftoolchain/dist/mk/os.FreeBSD.mk
vendor/elftoolchain/dist/nm/nm.1
vendor/elftoolchain/dist/readelf/readelf.1
vendor/elftoolchain/dist/readelf/readelf.c
vendor/elftoolchain/dist/strings/strings.c
vendor/elftoolchain/dist/test/Makefile
vendor/elftoolchain/dist/test/ar/func.sh
vendor/elftoolchain/dist/test/ar/tc/addself-liba/addself-liba.eval
vendor/elftoolchain/dist/test/libelf/tset/elf_getarhdr/Makefile
vendor/elftoolchain/dist/test/libelf/tset/elf_getarhdr/getarhdr.m4
Modified: vendor/elftoolchain/dist/INSTALL
==============================================================================
--- vendor/elftoolchain/dist/INSTALL Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/INSTALL Thu Jan 10 14:18:11 2019 (r342916)
@@ -14,7 +14,7 @@ operating systems.
Operating System Version Supported Architectures
----------------- -------- -----------------------
`DragonFly BSD`_ 5.2 amd64
- FreeBSD_ 11.1 amd64 & i386
+ FreeBSD_ 11.2 amd64 & i386
Minix_ 3.0.2 i386
NetBSD_ 7.1.2 i386
OpenBSD_ 6.3 amd64
@@ -56,7 +56,7 @@ Prerequisites
- Building additional documentation is not currently supported
under DragonFly BSD.
-:FreeBSD 11.1:
+:FreeBSD 11.2:
- The core libraries and utilities should build out of the box on
a stock install of FreeBSD.
@@ -73,7 +73,7 @@ Prerequisites
% sudo pkg install python py27-yaml
- Building additional documentation is not currently supported under
- FreeBSD 11.1.
+ FreeBSD 11.2.
:Minix 3.2.0:
- The following packages are pre-requisites for building the
@@ -242,7 +242,7 @@ website`_.
.. _project website: http://elftoolchain.sourceforge.net/
-.. $Id: INSTALL 3613 2018-04-21 19:34:37Z jkoshy $
+.. $Id: INSTALL 3667 2018-12-28 22:19:46Z emaste $
.. Local Variables:
.. mode: rst
Copied and modified: vendor/elftoolchain/dist/README.rst (from r342915, vendor/elftoolchain/dist/README)
==============================================================================
--- vendor/elftoolchain/dist/README Thu Jan 10 10:37:19 2019 (r342915, copy source)
+++ vendor/elftoolchain/dist/README.rst Thu Jan 10 14:18:11 2019 (r342916)
@@ -1,8 +1,7 @@
The Elftoolchain Project
========================
-.. contents::
-..
+.. contents:: Table of Contents
Description
-----------
@@ -15,26 +14,26 @@ This software implements essential compilation tools a
The project currently implements the following utilities and
libraries:
- =========== ============================================
- 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.
- =========== ============================================
+=========== ============================================
+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.
+=========== ============================================
.. _ELF: http://en.wikipedia.org/wiki/Executable_and_Linkable_Format
.. _DWARF: http://www.dwarfstd.org/
@@ -58,10 +57,12 @@ Tracking Ongoing Development
The project uses subversion_ for its version control system.
+.. _subversion: https://subversion.apache.org/
+
The subversion branch for the current set of sources may be accessed
-at the following URL:
+at the following URL::
- https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk
+ https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk
The project's source tree may be checked out from its repository by
using the ``svn checkout`` command::
@@ -71,14 +72,12 @@ using the ``svn checkout`` command::
Checked-out sources may be kept upto-date by running ``svn update``
inside the source directory::
- % svn update
+ % svn update
Instructions on building and installing the software are given in the
file ``INSTALL`` in the current directory.
-.. _Subversion:
-
Downloading Released Software
-----------------------------
@@ -120,7 +119,7 @@ website`_.
.. _project website: http://elftoolchain.sourceforge.net/
-.. $Id: README 2146 2011-11-11 09:39:00Z jkoshy $
+.. $Id: README.rst 3656 2018-12-26 09:46:24Z jkoshy $
.. Local Variables:
.. mode: rst
Modified: vendor/elftoolchain/dist/addr2line/addr2line.1
==============================================================================
--- vendor/elftoolchain/dist/addr2line/addr2line.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/addr2line/addr2line.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -22,11 +22,11 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $Id: addr2line.1 3263 2015-11-30 04:25:54Z kaiwang27 $
+.\" $Id: addr2line.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd November 30, 2015
-.Os
.Dt ADDR2LINE 1
+.Os
.Sh NAME
.Nm addr2line
.Nd translate program addresses to source file names and line numbers
Modified: vendor/elftoolchain/dist/addr2line/addr2line.c
==============================================================================
--- vendor/elftoolchain/dist/addr2line/addr2line.c Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/addr2line/addr2line.c Thu Jan 10 14:18:11 2019 (r342916)
@@ -40,7 +40,7 @@
#include "uthash.h"
#include "_elftc.h"
-ELFTC_VCSID("$Id: addr2line.c 3499 2016-11-25 16:06:29Z emaste $");
+ELFTC_VCSID("$Id: addr2line.c 3544 2017-06-05 14:51:44Z emaste $");
struct Func {
char *name;
Modified: vendor/elftoolchain/dist/ar/ar.1
==============================================================================
--- vendor/elftoolchain/dist/ar/ar.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/ar/ar.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -21,51 +21,52 @@
.\" out of the use of this software, even if advised of the possibility of
.\" such damage.
.\"
-.\" $Id: ar.1 3230 2015-07-27 17:11:38Z emaste $
+.\" $Id: ar.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
-.Dd July 27, 2015
-.Os
+.Dd September 30, 2018
.Dt AR 1
+.Os
.Sh NAME
.Nm ar
.Nd manage archives
.Sh SYNOPSIS
.Nm
.Fl d
-.Op Fl T
.Op Fl f
.Op Fl j
+.Op Fl T
.Op Fl v
.Op Fl z
.Ar archive
.Ar
.Nm
.Fl m
-.Op Fl T
.Op Fl a Ar position-after
.Op Fl b Ar position-before
.Op Fl f
.Op Fl i Ar position-before
.Op Fl j
.Op Fl s | Fl S
+.Op Fl T
.Op Fl z
.Ar archive
.Ar
.Nm
.Fl p
-.Op Fl T
.Op Fl f
+.Op Fl s
+.Op Fl T
.Op Fl v
.Ar archive
.Op Ar
.Nm
.Fl q
-.Op Fl T
.Op Fl c
.Op Fl D
.Op Fl f
.Op Fl F Ar flavor | Fl -flavor Ar flavor
.Op Fl s | Fl S
+.Op Fl T
.Op Fl U
.Op Fl v
.Op Fl z
@@ -73,7 +74,6 @@
.Ar
.Nm
.Fl r
-.Op Fl T
.Op Fl a Ar position-after
.Op Fl b Ar position-before
.Op Fl c
@@ -83,6 +83,7 @@
.Op Fl i Ar position-before
.Op Fl j
.Op Fl s | Fl S
+.Op Fl T
.Op Fl u
.Op Fl U
.Op Fl v
@@ -99,6 +100,7 @@
.Nm
.Fl t
.Op Fl f
+.Op Fl s
.Op Fl T
.Op Fl v
.Ar archive
@@ -106,9 +108,10 @@
.Nm
.Fl x
.Op Fl C
-.Op Fl T
.Op Fl f
.Op Fl o
+.Op Fl s
+.Op Fl T
.Op Fl u
.Op Fl v
.Ar archive
Modified: vendor/elftoolchain/dist/ar/ar.5
==============================================================================
--- vendor/elftoolchain/dist/ar/ar.5 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/ar/ar.5 Thu Jan 10 14:18:11 2019 (r342916)
@@ -21,11 +21,11 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $Id: ar.5 3182 2015-04-10 16:08:10Z emaste $
+.\" $Id: ar.5 3642 2018-10-14 14:24:28Z jkoshy $
.\"
-.Dd November 28, 2010
-.Os
+.Dd September 30, 2018
.Dt AR 5
+.Os
.Sh NAME
.Nm ar
.Nd archive file format for
@@ -84,6 +84,8 @@ An archive header comprises the following fixed sized
.Bl -tag -width "Li ar_name"
.It Ar ar_name
(16 bytes) The file name of the archive member.
+This field names a leaf file; absolute paths and relative paths containing
+directory names are not supported.
The format of this field varies between the BSD and SVR4/GNU formats and
is described in more detail in the section
.Sx "Representing File Names"
Modified: vendor/elftoolchain/dist/ar/ar.c
==============================================================================
--- vendor/elftoolchain/dist/ar/ar.c Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/ar/ar.c Thu Jan 10 14:18:11 2019 (r342916)
@@ -72,7 +72,7 @@
#include "ar.h"
-ELFTC_VCSID("$Id: ar.c 3319 2016-01-13 21:37:53Z jkoshy $");
+ELFTC_VCSID("$Id: ar.c 3629 2018-09-30 19:26:28Z jkoshy $");
enum options
{
@@ -100,11 +100,12 @@ main(int argc, char **argv)
struct bsdar *bsdar, bsdar_storage;
char *arcmd, *argv1_saved;
size_t len;
- int i, opt;
+ int exitcode, i, opt;
bsdar = &bsdar_storage;
memset(bsdar, 0, sizeof(*bsdar));
+ exitcode = EXIT_SUCCESS;
arcmd = argv1_saved = NULL;
bsdar->output = stdout;
@@ -152,9 +153,9 @@ main(int argc, char **argv)
bsdar->options |= AR_S;
while ((bsdar->filename = *argv++) != NULL)
- ar_write_archive(bsdar, 's');
+ exitcode |= ar_write_archive(bsdar, 's');
- exit(EXIT_SUCCESS);
+ exit(exitcode);
} else {
if (argc < 2)
bsdar_usage();
@@ -331,30 +332,33 @@ main(int argc, char **argv)
if ((!bsdar->mode || strchr("ptx", bsdar->mode)) &&
bsdar->options & AR_S) {
- ar_write_archive(bsdar, 's');
+ exitcode = ar_write_archive(bsdar, 's');
if (!bsdar->mode)
- exit(EXIT_SUCCESS);
+ exit(exitcode);
}
switch(bsdar->mode) {
case 'd': case 'm': case 'q': case 'r':
- ar_write_archive(bsdar, bsdar->mode);
+ exitcode = ar_write_archive(bsdar, bsdar->mode);
break;
case 'p': case 't': case 'x':
- ar_read_archive(bsdar, bsdar->mode);
+ exitcode = ar_read_archive(bsdar, bsdar->mode);
break;
default:
bsdar_usage();
/* NOTREACHED */
}
- for (i = 0; i < bsdar->argc; i++)
- if (bsdar->argv[i] != NULL)
+ for (i = 0; i < bsdar->argc; i++) {
+ if (bsdar->argv[i] != NULL) {
bsdar_warnc(bsdar, 0, "%s: not found in archive",
bsdar->argv[i]);
+ exitcode = EXIT_FAILURE;
+ }
+ }
- exit(EXIT_SUCCESS);
+ exit(exitcode);
}
static void
Modified: vendor/elftoolchain/dist/ar/ar.h
==============================================================================
--- vendor/elftoolchain/dist/ar/ar.h Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/ar/ar.h Thu Jan 10 14:18:11 2019 (r342916)
@@ -23,7 +23,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: ar.h 2496 2012-04-24 02:33:40Z jkoshy $
+ * $Id: ar.h 3629 2018-09-30 19:26:28Z jkoshy $
*/
#include <libelf.h>
@@ -135,8 +135,8 @@ struct bsdar {
};
void ar_mode_script(struct bsdar *ar);
-void ar_read_archive(struct bsdar *_ar, int _mode);
-void ar_write_archive(struct bsdar *_ar, int _mode);
+int ar_read_archive(struct bsdar *_ar, int _mode);
+int ar_write_archive(struct bsdar *_ar, int _mode);
void bsdar_errc(struct bsdar *, int _code, const char *fmt, ...);
int bsdar_is_pseudomember(struct bsdar *_ar, const char *_name);
const char *bsdar_strmode(mode_t m);
Modified: vendor/elftoolchain/dist/ar/ranlib.1
==============================================================================
--- vendor/elftoolchain/dist/ar/ranlib.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/ar/ranlib.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -21,11 +21,11 @@
.\" out of the use of this software, even if advised of the possibility of
.\" such damage.
.\"
-.\" $Id: ranlib.1 3195 2015-05-12 17:22:19Z emaste $
+.\" $Id: ranlib.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd December 9, 2012
-.Os
.Dt RANLIB 1
+.Os
.Sh NAME
.Nm ranlib
.Nd update archive symbol tables
Modified: vendor/elftoolchain/dist/ar/read.c
==============================================================================
--- vendor/elftoolchain/dist/ar/read.c Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/ar/read.c Thu Jan 10 14:18:11 2019 (r342916)
@@ -34,16 +34,20 @@
#include <errno.h>
#include <libgen.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include "ar.h"
-ELFTC_VCSID("$Id: read.c 3180 2015-04-09 15:13:57Z emaste $");
+ELFTC_VCSID("$Id: read.c 3629 2018-09-30 19:26:28Z jkoshy $");
/*
* Handle read modes: 'x', 't' and 'p'.
+ *
+ * Returns EXIT_SUCCESS if all operations completed successfully or returns
+ * EXIT_FAILURE otherwise.
*/
-void
+int
ar_read_archive(struct bsdar *bsdar, int mode)
{
FILE *out;
@@ -60,8 +64,8 @@ ar_read_archive(struct bsdar *bsdar, int mode)
gid_t gid;
char **av;
char buf[25];
- char find;
- int i, flags, r;
+ int found;
+ int exitcode, i, flags, r;
assert(mode == 'p' || mode == 't' || mode == 'x');
@@ -70,6 +74,7 @@ ar_read_archive(struct bsdar *bsdar, int mode)
archive_read_support_format_ar(a);
AC(archive_read_open_filename(a, bsdar->filename, DEF_BLKSZ));
+ exitcode = EXIT_SUCCESS;
out = bsdar->output;
for (;;) {
@@ -96,12 +101,27 @@ ar_read_archive(struct bsdar *bsdar, int mode)
if (bsdar_is_pseudomember(bsdar, name))
continue;
+ /* The ar(5) format only supports 'leaf' file names. */
+ if (strchr(name, '/')) {
+ bsdar_warnc(bsdar, 0, "ignoring entry: %s",
+ name);
+ continue;
+ }
+
+ /*
+ * If we had been given a list of file names to process, check
+ * that the current entry is present in this list.
+ */
if (bsdar->argc > 0) {
- find = 0;
+ found = 0;
for(i = 0; i < bsdar->argc; i++) {
av = &bsdar->argv[i];
if (*av == NULL)
continue;
+ /*
+ * Per POSIX, only the basename of a file
+ * argument should be compared.
+ */
if ((bname = basename(*av)) == NULL)
bsdar_errc(bsdar, errno,
"basename failed");
@@ -109,10 +129,10 @@ ar_read_archive(struct bsdar *bsdar, int mode)
continue;
*av = NULL;
- find = 1;
+ found = 1;
break;
}
- if (!find)
+ if (!found)
continue;
}
@@ -157,7 +177,7 @@ ar_read_archive(struct bsdar *bsdar, int mode)
/* mode == 'x' */
if (stat(name, &sb) != 0) {
if (errno != ENOENT) {
- bsdar_warnc(bsdar, 0,
+ bsdar_warnc(bsdar, errno,
"stat %s failed",
bsdar->filename);
continue;
@@ -174,12 +194,6 @@ ar_read_archive(struct bsdar *bsdar, int mode)
if (bsdar->options & AR_V)
(void)fprintf(out, "x - %s\n", name);
- /* Disallow absolute paths. */
- if (name[0] == '/') {
- bsdar_warnc(bsdar, 0,
- "Absolute path '%s'", name);
- continue;
- }
/* Basic path security flags. */
flags = ARCHIVE_EXTRACT_SECURE_SYMLINKS |
ARCHIVE_EXTRACT_SECURE_NODOTDOT;
@@ -189,11 +203,19 @@ ar_read_archive(struct bsdar *bsdar, int mode)
r = archive_read_extract(a, entry, flags);
}
- if (r)
+ if (r) {
bsdar_warnc(bsdar, 0, "%s",
archive_error_string(a));
+ exitcode = EXIT_FAILURE;
+ }
}
}
+
+ if (r == ARCHIVE_FATAL)
+ exitcode = EXIT_FAILURE;
+
AC(archive_read_close(a));
ACV(archive_read_free(a));
+
+ return (exitcode);
}
Modified: vendor/elftoolchain/dist/ar/write.c
==============================================================================
--- vendor/elftoolchain/dist/ar/write.c Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/ar/write.c Thu Jan 10 14:18:11 2019 (r342916)
@@ -40,7 +40,7 @@
#include "ar.h"
-ELFTC_VCSID("$Id: write.c 3183 2015-04-10 16:18:42Z emaste $");
+ELFTC_VCSID("$Id: write.c 3629 2018-09-30 19:26:28Z jkoshy $");
#define _ARMAG_LEN 8 /* length of the magic string */
#define _ARHDR_LEN 60 /* length of the archive header */
@@ -352,17 +352,20 @@ read_objs(struct bsdar *bsdar, const char *archive, in
/*
* Write an archive.
+ *
+ * Returns EXIT_SUCCESS if the write succeeded or EXIT_FAILURE otherwise.
*/
-void
+int
ar_write_archive(struct bsdar *bsdar, int mode)
{
struct ar_obj *nobj, *obj, *obj_temp, *pos;
struct stat sb;
const char *bname;
char **av;
- int i;
+ int exitcode, i;
TAILQ_INIT(&bsdar->v_obj);
+ exitcode = EXIT_SUCCESS;
nobj = NULL;
pos = NULL;
memset(&sb, 0, sizeof(sb));
@@ -376,16 +379,16 @@ ar_write_archive(struct bsdar *bsdar, int mode)
*/
if (stat(bsdar->filename, &sb) != 0) {
if (errno != ENOENT) {
- bsdar_warnc(bsdar, 0, "stat %s failed",
+ bsdar_warnc(bsdar, errno, "stat %s failed",
bsdar->filename);
- return;
+ return (EXIT_FAILURE);
}
/* We do not create archive in mode 'd', 'm' and 's'. */
if (mode != 'r' && mode != 'q') {
bsdar_warnc(bsdar, 0, "%s: no such file",
bsdar->filename);
- return;
+ return (EXIT_FAILURE);
}
/* Issue a message if the '-c' option was not specified. */
@@ -474,8 +477,10 @@ ar_write_archive(struct bsdar *bsdar, int mode)
*/
nobj = create_obj_from_file(bsdar, *av,
obj->mtime);
- if (nobj == NULL)
+ if (nobj == NULL) {
+ exitcode = EXIT_FAILURE;
goto skip_obj;
+ }
}
if (bsdar->options & AR_V)
@@ -510,9 +515,13 @@ new_archive:
av = &bsdar->argv[i];
if (*av != NULL && (mode == 'r' || mode == 'q')) {
nobj = create_obj_from_file(bsdar, *av, 0);
- if (nobj != NULL)
- insert_obj(bsdar, nobj, pos);
- if (bsdar->options & AR_V && nobj != NULL)
+ if (nobj == NULL) {
+ exitcode = EXIT_FAILURE;
+ *av = NULL;
+ continue;
+ }
+ insert_obj(bsdar, nobj, pos);
+ if (bsdar->options & AR_V)
(void)fprintf(bsdar->output, "a - %s\n", *av);
*av = NULL;
}
@@ -521,6 +530,8 @@ new_archive:
write_objs:
write_objs(bsdar);
write_cleanup(bsdar);
+
+ return (exitcode);
}
/*
Modified: vendor/elftoolchain/dist/as/as.1
==============================================================================
--- vendor/elftoolchain/dist/as/as.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/as/as.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -22,11 +22,11 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $Id: as.1 2798 2012-12-22 09:02:50Z jkoshy $
+.\" $Id: as.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd December 22, 2012
-.Os
.Dt AS 1
+.Os
.Sh NAME
.Nm as
.Nd an assembler
Modified: vendor/elftoolchain/dist/common/native-elf-format
==============================================================================
--- vendor/elftoolchain/dist/common/native-elf-format Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/common/native-elf-format Thu Jan 10 14:18:11 2019 (r342916)
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: native-elf-format 3293 2016-01-07 19:26:27Z emaste $
+# $Id: native-elf-format 3650 2018-11-25 12:06:28Z jkoshy $
#
# Find the native ELF format for a host platform by compiling a
# test object and examining the resulting object.
@@ -35,7 +35,7 @@ $1 ~ "Machine:" {
elfarch = "EM_386";
} else if (match($0, "MIPS")) {
elfarch = "EM_MIPS";
- } else if (match($0, ".*[xX]86-64")) {
+ } else if (match($0, ".*[xX]86[-_]64")) {
elfarch = "EM_X86_64";
} else {
elfarch = "unknown";
Modified: vendor/elftoolchain/dist/cxxfilt/c++filt.1
==============================================================================
--- vendor/elftoolchain/dist/cxxfilt/c++filt.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/cxxfilt/c++filt.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -22,11 +22,11 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $Id: c++filt.1 3195 2015-05-12 17:22:19Z emaste $
+.\" $Id: c++filt.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd August 24, 2011
-.Os
.Dt C++FILT 1
+.Os
.Sh NAME
.Nm c++filt
.Nd decode C++ symbols
Modified: vendor/elftoolchain/dist/elfcopy/elfcopy.1
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/elfcopy.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/elfcopy/elfcopy.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -21,11 +21,11 @@
.\" out of the use of this software, even if advised of the possibility of
.\" such damage.
.\"
-.\" $Id: elfcopy.1 3565 2017-08-31 02:24:19Z emaste $
+.\" $Id: elfcopy.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd August 30, 2017
-.Os
.Dt ELFCOPY 1
+.Os
.Sh NAME
.Nm elfcopy ,
.Nm objcopy
Modified: vendor/elftoolchain/dist/elfcopy/elfcopy.h
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/elfcopy.h Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/elfcopy/elfcopy.h Thu Jan 10 14:18:11 2019 (r342916)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: elfcopy.h 3446 2016-05-03 01:31:17Z emaste $
+ * $Id: elfcopy.h 3615 2018-05-17 04:12:24Z kaiwang27 $
*/
#include <sys/queue.h>
@@ -127,6 +127,7 @@ struct section {
uint64_t cap; /* section capacity */
uint64_t align; /* section alignment */
uint64_t type; /* section type */
+ uint64_t flags; /* section flags */
uint64_t vma; /* section virtual addr */
uint64_t lma; /* section load addr */
uint64_t pad_sz;/* section padding size */
Modified: vendor/elftoolchain/dist/elfcopy/mcs.1
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/mcs.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/elfcopy/mcs.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -21,11 +21,11 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $Id: mcs.1 2247 2011-11-29 08:41:34Z jkoshy $
+.\" $Id: mcs.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd November 29, 2011
-.Os
.Dt MCS 1
+.Os
.Sh NAME
.Nm mcs
.Nd manipulate the comment section of an ELF object
Modified: vendor/elftoolchain/dist/elfcopy/sections.c
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/sections.c Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/elfcopy/sections.c Thu Jan 10 14:18:11 2019 (r342916)
@@ -34,7 +34,7 @@
#include "elfcopy.h"
-ELFTC_VCSID("$Id: sections.c 3443 2016-04-15 18:57:54Z kaiwang27 $");
+ELFTC_VCSID("$Id: sections.c 3646 2018-10-27 02:25:39Z emaste $");
static void add_gnu_debuglink(struct elfcopy *ecp);
static uint32_t calc_crc32(const char *p, size_t len, uint32_t crc);
@@ -411,6 +411,7 @@ create_scn(struct elfcopy *ecp)
s->sz = ish.sh_size;
s->align = ish.sh_addralign;
s->type = ish.sh_type;
+ s->flags = ish.sh_flags;
s->vma = ish.sh_addr;
/*
@@ -685,7 +686,7 @@ filter_reloc(struct elfcopy *ecp, struct section *s)
Elf32_Rela *rela32;
Elf64_Rela *rela64;
Elf_Data *id;
- uint64_t cap, n, nrels;
+ uint64_t cap, n, nrels, sym;
int elferr, i;
if (gelf_getshdr(s->is, &ish) == NULL)
@@ -694,15 +695,13 @@ filter_reloc(struct elfcopy *ecp, struct section *s)
/* We don't want to touch relocation info for dynamic symbols. */
if ((ecp->flags & SYMTAB_EXIST) == 0) {
- if (ish.sh_link == 0 || ecp->secndx[ish.sh_link] == 0) {
- /*
- * This reloc section applies to the symbol table
- * that was stripped, so discard whole section.
- */
- s->nocopy = 1;
- s->sz = 0;
- }
- return;
+ /*
+ * No symbol table in output. If sh_link points to a section
+ * that exists in the output object, this relocation section
+ * is for dynamic symbols. Don't touch it.
+ */
+ if (ish.sh_link != 0 && ecp->secndx[ish.sh_link] != 0)
+ return;
} else {
/* Symbol table exist, check if index equals. */
if (ish.sh_link != elf_ndxscn(ecp->symtab->is))
@@ -743,28 +742,45 @@ filter_reloc(struct elfcopy *ecp, struct section *s)
if (gelf_getrel(id, i, &rel) != &rel)
errx(EXIT_FAILURE, "gelf_getrel failed: %s",
elf_errmsg(-1));
+ sym = GELF_R_SYM(rel.r_info);
} else {
if (gelf_getrela(id, i, &rela) != &rela)
errx(EXIT_FAILURE, "gelf_getrel failed: %s",
elf_errmsg(-1));
+ sym = GELF_R_SYM(rela.r_info);
}
- name = elf_strptr(ecp->ein, elf_ndxscn(ecp->strtab->is),
- GELF_R_SYM(rel.r_info));
- if (name == NULL)
- errx(EXIT_FAILURE, "elf_strptr failed: %s",
- elf_errmsg(-1));
- if (lookup_symop_list(ecp, name, SYMOP_KEEP) != NULL) {
- if (ecp->oec == ELFCLASS32) {
- if (s->type == SHT_REL)
- COPYREL(rel, 32);
- else
- COPYREL(rela, 32);
- } else {
- if (s->type == SHT_REL)
- COPYREL(rel, 64);
- else
- COPYREL(rela, 64);
- }
+ /*
+ * If a relocation references a symbol and we are omitting
+ * either that symbol or the entire symbol table we cannot
+ * produce valid output, and so just omit the relocation.
+ * Broken output like this is generally not useful, but some
+ * uses of elfcopy/strip rely on it - for example, GCC's build
+ * process uses it to check for build reproducibility by
+ * stripping objects and comparing them.
+ *
+ * Relocations that do not reference a symbol are retained.
+ */
+ if (sym != 0) {
+ if (ish.sh_link == 0 || ecp->secndx[ish.sh_link] == 0)
+ continue;
+ name = elf_strptr(ecp->ein, elf_ndxscn(ecp->strtab->is),
+ sym);
+ if (name == NULL)
+ errx(EXIT_FAILURE, "elf_strptr failed: %s",
+ elf_errmsg(-1));
+ if (lookup_symop_list(ecp, name, SYMOP_KEEP) == NULL)
+ continue;
+ }
+ if (ecp->oec == ELFCLASS32) {
+ if (s->type == SHT_REL)
+ COPYREL(rel, 32);
+ else
+ COPYREL(rela, 32);
+ } else {
+ if (s->type == SHT_REL)
+ COPYREL(rel, 64);
+ else
+ COPYREL(rela, 64);
}
}
elferr = elf_errno();
Modified: vendor/elftoolchain/dist/elfcopy/segments.c
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/segments.c Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/elfcopy/segments.c Thu Jan 10 14:18:11 2019 (r342916)
@@ -34,7 +34,7 @@
#include "elfcopy.h"
-ELFTC_VCSID("$Id: segments.c 3449 2016-05-03 13:59:29Z emaste $");
+ELFTC_VCSID("$Id: segments.c 3615 2018-05-17 04:12:24Z kaiwang27 $");
static void insert_to_inseg_list(struct segment *seg, struct section *sec);
@@ -78,6 +78,8 @@ add_to_inseg_list(struct elfcopy *ecp, struct section
s->type != SHT_NOBITS)
continue;
if (s->vma + s->sz > seg->vaddr + seg->msz)
+ continue;
+ if (seg->type == PT_TLS && ((s->flags & SHF_TLS) == 0))
continue;
insert_to_inseg_list(seg, s);
Modified: vendor/elftoolchain/dist/elfcopy/strip.1
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/strip.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/elfcopy/strip.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -21,11 +21,11 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $Id: strip.1 2069 2011-10-26 15:53:48Z jkoshy $
+.\" $Id: strip.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd September 17, 2011
-.Os
.Dt STRIP 1
+.Os
.Sh NAME
.Nm strip
.Nd discard information from ELF objects
Modified: vendor/elftoolchain/dist/isa/isa.1
==============================================================================
--- vendor/elftoolchain/dist/isa/isa.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/isa/isa.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -22,11 +22,11 @@
\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $Id: isa.1 3195 2015-05-12 17:22:19Z emaste $
+.\" $Id: isa.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd January 13, 2013
-.Os
.Dt ISA 1
+.Os
.Sh NAME
.Nm isa
.Nd instruction set analyser
Modified: vendor/elftoolchain/dist/ld/ld.1
==============================================================================
--- vendor/elftoolchain/dist/ld/ld.1 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/ld/ld.1 Thu Jan 10 14:18:11 2019 (r342916)
@@ -25,8 +25,8 @@
.\" $Id$
.\"
.Dd February 14, 2016
-.Os
.Dt LD 1
+.Os
.Sh NAME
.Nm ld
.Nd link editor
Modified: vendor/elftoolchain/dist/libdwarf/dwarf.3
==============================================================================
--- vendor/elftoolchain/dist/libdwarf/dwarf.3 Thu Jan 10 10:37:19 2019 (r342915)
+++ vendor/elftoolchain/dist/libdwarf/dwarf.3 Thu Jan 10 14:18:11 2019 (r342916)
@@ -21,11 +21,11 @@
.\" out of the use of this software, even if advised of the possibility of
.\" such damage.
.\"
-.\" $Id: dwarf.3 3295 2016-01-08 22:08:10Z jkoshy $
+.\" $Id: dwarf.3 3644 2018-10-15 19:55:01Z jkoshy $
.\"
.Dd December 21, 2014
-.Os
.Dt DWARF 3
+.Os
.Sh NAME
.Nm dwarf
.Nd access debugging information in object files
@@ -34,7 +34,6 @@
.Sh SYNOPSIS
.In libdwarf.h
.Sh DESCRIPTION
-.Pp
The
.Lb libdwarf
provides functions that allow an application to read and write debugging
@@ -129,7 +128,6 @@ A descriptor representing a static variable.
A descriptor representing a weak name.
.El
.Ss Error Handling
-.Pp
Library functions that encounter an error will return with a value
other than
.Dv DW_DLV_OK .
@@ -173,7 +171,7 @@ below.
.Pp
.Bl -tag -compact -width "CCCC"
.It Abbreviations
-.Bl -tag -compact
+.Bl -tag -compact -width indent
.It Fn dwarf_get_abbrev
Retrieve abbreviation information at a given offset.
.It Fn dwarf_get_abbrev_children_flag
@@ -187,7 +185,7 @@ descriptor.
Retrieve the tag for an abbreviation entry.
.El
.It Addresses
-.Bl -tag -compact
+.Bl -tag -compact -width indent
.It Fn dwarf_get_address_size
Return the number of bytes needed to represent an address.
.It Fn dwarf_get_arange
@@ -206,7 +204,7 @@ Retrieve information about non-contiguous address rang
a debugging information entry.
.El
.It Attributes
-.Bl -tag -compact
+.Bl -tag -compact -width indent
.It Fn dwarf_arrayorder
Retrieve the value of a
.Dv DW_AT_ordering
@@ -279,7 +277,7 @@ Retrieve the attribute code for an attribute.
Retrieve the form of an attribute.
.El
.It Call Information Entries and Frame Descriptor Entries
-.Bl -tag -compact
+.Bl -tag -compact -width indent
.It Fn dwarf_get_cie_index
Retrieve the index for a CIE descriptor.
.It Fn dwarf_get_cie_info
@@ -308,7 +306,7 @@ Retrieve an FDE descriptor.
Retrieve range information from an FDE descriptor.
.El
.It Compilation Units
-.Bl -tag -compact
+.Bl -tag -compact -width indent
.It Xo
.Fn dwarf_get_cu_die_offset_given_cu_header_offset ,
.Fn dwarf_get_cu_die_offset_given_cu_header_offset_b
@@ -323,7 +321,7 @@ compilation or type unit.
Step through compilation units in a debug context.
.El
.It Debugging Information Entries
-.Bl -tag -compact
+.Bl -tag -compact -width indent
.It Fn dwarf_child
Returns the child of a debugging information entry.
.It Fn dwarf_die_abbrev_code
@@ -353,7 +351,7 @@ entry.
Retrieve the tag for a debugging information entry.
.El
.It Functions
-.Bl -tag -compact
+.Bl -tag -compact -width indent
.It Fn dwarf_func_cu_offset
Retrieves the offset for the compilation unit for a function.
.It Fn dwarf_func_die_offset
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-vendor
mailing list