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 ***
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to