Date: Thu, 10 Jan 2019 14:18:12 +0000 (UTC) From: Ed Maste <emaste@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: 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/... Message-ID: <201901101418.x0AEICbj029296@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901101418.x0AEICbj029296>