From owner-svn-src-all@freebsd.org Mon Apr 22 08:58:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6000F1593AF4; Mon, 22 Apr 2019 08:58:39 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 092CE8110C; Mon, 22 Apr 2019 08:58:39 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D1AF5A8C3; Mon, 22 Apr 2019 08:58:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3M8wcBC058506; Mon, 22 Apr 2019 08:58:38 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3M8wXYZ058480; Mon, 22 Apr 2019 08:58:33 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201904220858.x3M8wXYZ058480@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Enji Cooper Date: Mon, 22 Apr 2019 08:58:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346536 - in stable/12: contrib/elftoolchain contrib/elftoolchain/addr2line contrib/elftoolchain/ar contrib/elftoolchain/common contrib/elftoolchain/cxxfilt contrib/elftoolchain/elfcopy... X-SVN-Group: stable-12 X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: in stable/12: contrib/elftoolchain contrib/elftoolchain/addr2line contrib/elftoolchain/ar contrib/elftoolchain/common contrib/elftoolchain/cxxfilt contrib/elftoolchain/elfcopy contrib/elftoolchain/lib... X-SVN-Commit-Revision: 346536 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 092CE8110C X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Apr 2019 08:58:39 -0000 Author: ngie Date: Mon Apr 22 08:58:33 2019 New Revision: 346536 URL: https://svnweb.freebsd.org/changeset/base/346536 Log: MFC r339473,r340075,r342918,r343592,r343593,r343614,r343665,r343669: MFC a number of changes to elftoolchain/readelf(1). This brings the copy of elftoolchain more in line with the version in ^/head and partially fixes the issue with `sys.kern.coredump_phnum_test.coredump_phnum` on ^/stable/12. Tested with: make tinderbox r339473 (by emaste): libelf: also test for 64-bit ELF in _libelf_is_mips64el Although _libelf_is_mips64el is only called in contexts where we've already checked that e_class is ELFCLASS64 but this may change in the future. Add a safety belt so that we don't access an invalid e_ehdr64 union member if it does. r340075 (by emaste): readelf: decode R_MIPS_HIGHER and R_MIPS_HIGHEST relocation types r342918 (by emaste): Update to ELF Tool Chain r3668 Highlights: - Make sure that only TLS sections are sorted into TLS segment. - Fixed multiple errors in "Section to Segment mapping". - Man page updates - ar improvements - elfcopy: avoid filter_reloc uninitialized variable for rela - elfcopy: avoid stripping relocations from static binaries - readelf: avoid printing directory in front of absolute path - readelf: add NT_FREEBSD_FEATURE_CTL FreeBSD note type - test improvements NOTES: Some of these changes originated in FreeBSD and simply reduce diffs between contrib and vendor. ELF Tool Chain ar is not (currently) used in FreeBSD, and there are improvements in both FreeBSD and ELF Tool Chain ar that are not in the other. r343592 (by emaste): readelf: decode flag bits in DT_FLAGS/DT_FLAGS_1 Decode d_val when the tag is DT_FLAGS or DT_FLAGS_1 based on the information at: https://docs.oracle.com/cd/E23824_01/html/819-0690/chapter6-42444.html PR: 232983 r343593 (by emaste): readelf: fix i386 build Use %jx and (uintmax_t) cast. PR: 232983 MFC with: r343592 r343614 (by emaste): readelf: dump elf note data Output format is compatible with GNU readelf's handling of unknown note types (modulo a GNU char signedness bug); future changes will add type- specific decoding. Relnotes: Yes r343665 (by emaste): readelf: use table-based DT_FLAGS and DT_FLAGS_1 decoding Fewer lines of code and more maintainable. r343669 (by emaste): readelf: decode FreeBSD note types Decode NT_FREEBSD_ABI_TAG, NT_FREEBSD_ARCH_TAG, and NT_FREEBSD_FEATURE_CTL. Relnotes: Yes Added: stable/12/contrib/elftoolchain/README.rst - copied unchanged from r342918, head/contrib/elftoolchain/README.rst stable/12/contrib/elftoolchain/libelf/libelf_elfmachine.c - copied unchanged from r342918, head/contrib/elftoolchain/libelf/libelf_elfmachine.c Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.1 stable/12/contrib/elftoolchain/addr2line/addr2line.c stable/12/contrib/elftoolchain/ar/ar.1 stable/12/contrib/elftoolchain/ar/ar.5 stable/12/contrib/elftoolchain/ar/ar.c stable/12/contrib/elftoolchain/ar/ar.h stable/12/contrib/elftoolchain/ar/ranlib.1 stable/12/contrib/elftoolchain/ar/read.c stable/12/contrib/elftoolchain/ar/write.c stable/12/contrib/elftoolchain/common/native-elf-format stable/12/contrib/elftoolchain/cxxfilt/c++filt.1 stable/12/contrib/elftoolchain/elfcopy/elfcopy.1 stable/12/contrib/elftoolchain/elfcopy/elfcopy.h stable/12/contrib/elftoolchain/elfcopy/mcs.1 stable/12/contrib/elftoolchain/elfcopy/sections.c stable/12/contrib/elftoolchain/elfcopy/segments.c stable/12/contrib/elftoolchain/elfcopy/strip.1 stable/12/contrib/elftoolchain/libdwarf/dwarf.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_comp_dir.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_const_value_string.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_dataref.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_flag.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_location_expr.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_name.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_producer.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_ref_address.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_reference.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_signed_const.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_string.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_targ_address.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_arange.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_die_to_debug.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_directory_decl.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_expr_addr.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_expr_gen.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_fde_inst.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_file_decl.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_frame_cie.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_frame_fde.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_funcname.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_line_entry.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_pubname.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_typename.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_varname.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_add_weakname.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_attr.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_attrlist.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_attroffset.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_child.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_dealloc.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_def_macro.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_die_abbrev_code.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_die_link.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_diename.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_dieoffset.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_end_macro_file.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_errmsg.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_errno.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_expand_frame_instructions.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_expr_current_offset.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_expr_into_block.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_fde_cfa_offset.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_find_macro_value_start.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_finish.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_formaddr.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_formblock.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_formexprloc.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_formflag.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_formref.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_formsig8.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_formstring.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_formudata.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_AT_name.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_abbrev.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_children_flag.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_code.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_entry.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_tag.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_address_size.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_arange.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_arange_info.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_aranges.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_cie_index.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_cie_info.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_cie_of_fde.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_cu_die_offset.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_die_infotypes_flag.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_elf.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_at_pc.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs3.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg3.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_instr_bytes.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_list.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_n.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_fde_range.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_form_class.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_funcs.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_globals.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_loclist_entry.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_macro_details.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_pubtypes.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_ranges.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_relocation_info.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_relocation_info_count.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_section_bytes.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_section_max_offsets.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_str.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_types.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_vars.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_get_weaks.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_hasattr.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_hasform.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_highpc.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_init.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_lineno.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_lne_end_sequence.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_lne_set_address.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_loclist.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_loclist_from_expr.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_new_die.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_new_expr.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_new_fde.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_next_cu_header.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_next_types_section.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_object_init.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_producer_init.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_producer_set_isa.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_reset_section_bytes.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_set_frame_cfa_value.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_seterrarg.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_srcfiles.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_srclines.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_start_macro_file.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_tag.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_transform_to_disk_form.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_undef_macro.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_vendor_ext.3 stable/12/contrib/elftoolchain/libdwarf/dwarf_whatattr.3 stable/12/contrib/elftoolchain/libelf/Makefile stable/12/contrib/elftoolchain/libelf/_libelf.h stable/12/contrib/elftoolchain/libelf/elf.3 stable/12/contrib/elftoolchain/libelf/elf_begin.3 stable/12/contrib/elftoolchain/libelf/elf_cntl.3 stable/12/contrib/elftoolchain/libelf/elf_data.c stable/12/contrib/elftoolchain/libelf/elf_end.3 stable/12/contrib/elftoolchain/libelf/elf_errmsg.3 stable/12/contrib/elftoolchain/libelf/elf_fill.3 stable/12/contrib/elftoolchain/libelf/elf_flagdata.3 stable/12/contrib/elftoolchain/libelf/elf_getarhdr.3 stable/12/contrib/elftoolchain/libelf/elf_getarsym.3 stable/12/contrib/elftoolchain/libelf/elf_getbase.3 stable/12/contrib/elftoolchain/libelf/elf_getdata.3 stable/12/contrib/elftoolchain/libelf/elf_getident.3 stable/12/contrib/elftoolchain/libelf/elf_getphdrnum.3 stable/12/contrib/elftoolchain/libelf/elf_getphnum.3 stable/12/contrib/elftoolchain/libelf/elf_getscn.3 stable/12/contrib/elftoolchain/libelf/elf_getshdrnum.3 stable/12/contrib/elftoolchain/libelf/elf_getshdrstrndx.3 stable/12/contrib/elftoolchain/libelf/elf_getshnum.3 stable/12/contrib/elftoolchain/libelf/elf_getshstrndx.3 stable/12/contrib/elftoolchain/libelf/elf_hash.3 stable/12/contrib/elftoolchain/libelf/elf_kind.3 stable/12/contrib/elftoolchain/libelf/elf_memory.3 stable/12/contrib/elftoolchain/libelf/elf_next.3 stable/12/contrib/elftoolchain/libelf/elf_open.3 stable/12/contrib/elftoolchain/libelf/elf_rand.3 stable/12/contrib/elftoolchain/libelf/elf_rawfile.3 stable/12/contrib/elftoolchain/libelf/elf_scn.c stable/12/contrib/elftoolchain/libelf/elf_strptr.3 stable/12/contrib/elftoolchain/libelf/elf_update.3 stable/12/contrib/elftoolchain/libelf/elf_update.c stable/12/contrib/elftoolchain/libelf/elf_version.3 stable/12/contrib/elftoolchain/libelf/gelf.3 stable/12/contrib/elftoolchain/libelf/gelf_checksum.3 stable/12/contrib/elftoolchain/libelf/gelf_fsize.3 stable/12/contrib/elftoolchain/libelf/gelf_getcap.3 stable/12/contrib/elftoolchain/libelf/gelf_getclass.3 stable/12/contrib/elftoolchain/libelf/gelf_getdyn.3 stable/12/contrib/elftoolchain/libelf/gelf_getehdr.3 stable/12/contrib/elftoolchain/libelf/gelf_getmove.3 stable/12/contrib/elftoolchain/libelf/gelf_getphdr.3 stable/12/contrib/elftoolchain/libelf/gelf_getrel.3 stable/12/contrib/elftoolchain/libelf/gelf_getrela.3 stable/12/contrib/elftoolchain/libelf/gelf_getshdr.3 stable/12/contrib/elftoolchain/libelf/gelf_getsym.3 stable/12/contrib/elftoolchain/libelf/gelf_getsyminfo.3 stable/12/contrib/elftoolchain/libelf/gelf_getsymshndx.3 stable/12/contrib/elftoolchain/libelf/gelf_mips64el.c stable/12/contrib/elftoolchain/libelf/gelf_newehdr.3 stable/12/contrib/elftoolchain/libelf/gelf_newphdr.3 stable/12/contrib/elftoolchain/libelf/gelf_update_ehdr.3 stable/12/contrib/elftoolchain/libelf/gelf_xlate.c stable/12/contrib/elftoolchain/libelf/gelf_xlatetof.3 stable/12/contrib/elftoolchain/libelf/libelf_convert.m4 stable/12/contrib/elftoolchain/libelf/libelf_ehdr.c stable/12/contrib/elftoolchain/libelf/libelf_phdr.c stable/12/contrib/elftoolchain/libelf/libelf_xlate.c stable/12/contrib/elftoolchain/libelftc/elftc.3 stable/12/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 stable/12/contrib/elftoolchain/libelftc/elftc_copyfile.3 stable/12/contrib/elftoolchain/libelftc/elftc_demangle.3 stable/12/contrib/elftoolchain/libelftc/elftc_reloc_type_str.3 stable/12/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c stable/12/contrib/elftoolchain/libelftc/elftc_set_timestamps.3 stable/12/contrib/elftoolchain/libelftc/elftc_string_table_create.3 stable/12/contrib/elftoolchain/libelftc/elftc_timestamp.3 stable/12/contrib/elftoolchain/libelftc/elftc_version.3 stable/12/contrib/elftoolchain/nm/nm.1 stable/12/contrib/elftoolchain/readelf/readelf.1 stable/12/contrib/elftoolchain/readelf/readelf.c stable/12/contrib/elftoolchain/strings/strings.c stable/12/lib/libelf/Makefile stable/12/lib/libelftc/elftc_version.c Directory Properties: stable/12/ (props changed) Copied: stable/12/contrib/elftoolchain/README.rst (from r342918, head/contrib/elftoolchain/README.rst) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/elftoolchain/README.rst Mon Apr 22 08:58:33 2019 (r346536, copy of r342918, head/contrib/elftoolchain/README.rst) @@ -0,0 +1,126 @@ +The Elftoolchain Project +======================== + +.. contents:: Table of Contents + +Description +----------- + +This software implements essential compilation tools and libraries for: + +- managing program objects conforming to the ELF_ object format, and +- for managing DWARF_ debugging information in ELF objects. + +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. +=========== ============================================ + +.. _ELF: http://en.wikipedia.org/wiki/Executable_and_Linkable_Format +.. _DWARF: http://www.dwarfstd.org/ + + +Project Documentation +--------------------- + +- Release notes for released versions of this software are present in + the file ``RELEASE-NOTES`` in the current directory. +- The file ``INSTALL`` in the current directory contains instructions + on building and installing this software. +- Reference documentation in the form of manual pages is provided for + the utilities and libraries developed by the project. +- Additional tutorial documentation is present in the + ``documentation`` directory. + + +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:: + + 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:: + + % svn checkout https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk + +Checked-out sources may be kept upto-date by running ``svn update`` +inside the source directory:: + + % svn update + + +Instructions on building and installing the software are given in the +file ``INSTALL`` in the current directory. + +Downloading Released Software +----------------------------- + +Released versions of the project's software may also be downloaded +from SourceForge's `file release system`_. + +.. _file release system: http://sourceforge.net/projects/elftoolchain/files/ + +Copyright and License +--------------------- + +This code is copyright its authors, and is distributed under the `BSD +License`_. + +.. _BSD License: http://www.opensource.org/licenses/bsd-license.php + + +Developer Community +------------------- + +The project's developers may be contacted using the mailing list: +````. + + +Reporting Bugs +-------------- + +Please use our `Trac instance`_ for viewing existing bug reports and +for submitting new bug reports. + +.. _`Trac instance`: http://sourceforge.net/apps/trac/elftoolchain/report + + +Additional Information +---------------------- + +Additional information about the project may be found on the `project +website`_. + +.. _project website: http://elftoolchain.sourceforge.net/ + +.. $Id: README.rst 3656 2018-12-26 09:46:24Z jkoshy $ + +.. Local Variables: +.. mode: rst +.. End: Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.1 ============================================================================== --- stable/12/contrib/elftoolchain/addr2line/addr2line.1 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/addr2line/addr2line.1 Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/addr2line/addr2line.c ============================================================================== --- stable/12/contrib/elftoolchain/addr2line/addr2line.c Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/addr2line/addr2line.c Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/ar/ar.1 ============================================================================== --- stable/12/contrib/elftoolchain/ar/ar.1 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/ar/ar.1 Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/ar/ar.5 ============================================================================== --- stable/12/contrib/elftoolchain/ar/ar.5 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/ar/ar.5 Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/ar/ar.c ============================================================================== --- stable/12/contrib/elftoolchain/ar/ar.c Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/ar/ar.c Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/ar/ar.h ============================================================================== --- stable/12/contrib/elftoolchain/ar/ar.h Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/ar/ar.h Mon Apr 22 08:58:33 2019 (r346536) @@ -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 @@ -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: stable/12/contrib/elftoolchain/ar/ranlib.1 ============================================================================== --- stable/12/contrib/elftoolchain/ar/ranlib.1 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/ar/ranlib.1 Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/ar/read.c ============================================================================== --- stable/12/contrib/elftoolchain/ar/read.c Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/ar/read.c Mon Apr 22 08:58:33 2019 (r346536) @@ -34,16 +34,20 @@ #include #include #include +#include #include #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: stable/12/contrib/elftoolchain/ar/write.c ============================================================================== --- stable/12/contrib/elftoolchain/ar/write.c Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/ar/write.c Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/common/native-elf-format ============================================================================== --- stable/12/contrib/elftoolchain/common/native-elf-format Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/common/native-elf-format Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/cxxfilt/c++filt.1 ============================================================================== --- stable/12/contrib/elftoolchain/cxxfilt/c++filt.1 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/cxxfilt/c++filt.1 Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/elfcopy/elfcopy.1 ============================================================================== --- stable/12/contrib/elftoolchain/elfcopy/elfcopy.1 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/elfcopy/elfcopy.1 Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/elfcopy/elfcopy.h ============================================================================== --- stable/12/contrib/elftoolchain/elfcopy/elfcopy.h Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/elfcopy/elfcopy.h Mon Apr 22 08:58:33 2019 (r346536) @@ -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 Modified: stable/12/contrib/elftoolchain/elfcopy/mcs.1 ============================================================================== --- stable/12/contrib/elftoolchain/elfcopy/mcs.1 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/elfcopy/mcs.1 Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/elfcopy/sections.c ============================================================================== --- stable/12/contrib/elftoolchain/elfcopy/sections.c Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/elfcopy/sections.c Mon Apr 22 08:58:33 2019 (r346536) @@ -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); Modified: stable/12/contrib/elftoolchain/elfcopy/segments.c ============================================================================== --- stable/12/contrib/elftoolchain/elfcopy/segments.c Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/elfcopy/segments.c Mon Apr 22 08:58:33 2019 (r346536) @@ -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); Modified: stable/12/contrib/elftoolchain/elfcopy/strip.1 ============================================================================== --- stable/12/contrib/elftoolchain/elfcopy/strip.1 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/elfcopy/strip.1 Mon Apr 22 08:58:33 2019 (r346536) @@ -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: stable/12/contrib/elftoolchain/libdwarf/dwarf.3 ============================================================================== --- stable/12/contrib/elftoolchain/libdwarf/dwarf.3 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/libdwarf/dwarf.3 Mon Apr 22 08:58:33 2019 (r346536) @@ -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 @@ -367,7 +365,7 @@ Retrieve both the name and offsets for a function. Retrieve information about static functions. .El .It Globals -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_get_globals Retrieve a list of globals. .It Fn dwarf_global_cu_offset @@ -396,7 +394,7 @@ and allow an application to specify alternate low-level file access routines. .It Line Numbers -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_lineaddr Retrieve the program address for a source line. .It Fn dwarf_linebeginstatement @@ -420,7 +418,7 @@ Retrieve source files for a compilation unit. Return line number information for a compilation unit. .El .It Location Lists -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_get_loclist_entry Retrieve a location list entry. .It Fn dwarf_loclist , Fn dwarf_loclist_n @@ -433,7 +431,7 @@ Retrieve location expressions. Translate a location expression into a location descriptor. .El .It Error Handling -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_errmsg Retrieve a human-readable error message. .It Fn dwarf_errno @@ -444,7 +442,7 @@ Set the argument passed to a callback error handler. Set the callback handler to be called in case of an error. .El .It Frame Handling -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_expand_frame_instructions Translate frame instruction bytes. .It Fn dwarf_set_frame_cfa_value @@ -464,7 +462,7 @@ Set the register number representing the rule. .El .It Macros -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_find_macro_value_start Return the macro value part of a macro string. .It Fn dwarf_get_macro_details @@ -523,7 +521,7 @@ for DWARF constants: and .Fn dwarf_get_VIS_name . .It Types -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_get_pubtypes , Fn dwarf_get_types Retrieve descriptors for user-defined types. .It Fn dwarf_next_types_section @@ -540,7 +538,7 @@ Retrieve the name of a type. Retrieve the name and offsets for a type. .El .It Variables -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_get_vars Retrieve descriptors for static variables. .It Fn dwarf_var_cu_offset @@ -553,7 +551,7 @@ Retrieve the name of a variable. Retrieve the name and offsets for a variable. .El .It Weak Symbols -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_get_weaks Retrieve information about weak symbols. .It Fn dwarf_weak_cu_offset @@ -566,7 +564,7 @@ Retrieve the name of a weak symbol. Retrieve the name and offsets for a weak symbol. .El .It Miscellaneous -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_get_elf Retrieve the ELF descriptor for a debug context, see .Xr elf 3 . @@ -605,7 +603,7 @@ information entry: and .Fn dwarf_add_AT_unsigned_const . .It Debugging Information Entry Management -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_add_die_to_debug Set the root debugging information entry for a DWARF producer instance. .It Fn dwarf_die_link @@ -623,7 +621,7 @@ are used to initialize a producer instance. When done, applications release resources using the function .Fn dwarf_producer_finish . .It Relocations and Sections -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_get_relocation_info Retrieve a relocation array from a producer instance. .It Fn dwarf_get_relocation_info_count @@ -636,7 +634,7 @@ Reset internal state for a producer instance. Prepare byte streams for writing out. .El .It Macros -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_def_macro Add a macro definition. .It Fn dwarf_end_macro_file , Fn dwarf_start_macro_file @@ -647,7 +645,7 @@ Note the removal of a macro definition. Enables storing macro information as specified in the DWARF standard. .El .It Symbols, Expressions, Addresses and Offsets -.Bl -tag -compact +.Bl -tag -compact -width indent .It Fn dwarf_add_arange , Fn dwarf_add_arange_b Add address range information. .It Fn dwarf_add_directory_decl @@ -741,7 +739,9 @@ The DWARF(3) API originated at Silicon Graphics Inc. .Pp A BSD-licensed implementation of a subset of the API was written by .An John Birrell Aq Mt jb@FreeBSD.org -for the FreeBSD project. +for the +.Fx +project. The implementation was subsequently revised and completed by .An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . .Pp Modified: stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_comp_dir.3 ============================================================================== --- stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_comp_dir.3 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_comp_dir.3 Mon Apr 22 08:58:33 2019 (r346536) @@ -22,11 +22,11 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: dwarf_add_AT_comp_dir.3 2072 2011-10-27 03:26:49Z jkoshy $ +.\" $Id: dwarf_add_AT_comp_dir.3 3640 2018-10-14 14:09:13Z jkoshy $ .\" .Dd September 4, 2011 -.Os .Dt DWARF_ADD_AT_COMP_DIR 3 +.Os .Sh NAME .Nm dwarf_add_AT_comp_dir .Nd create and attach a DW_AT_comp_dir attribute Modified: stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_const_value_string.3 ============================================================================== --- stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_const_value_string.3 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_const_value_string.3 Mon Apr 22 08:58:33 2019 (r346536) @@ -22,11 +22,11 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: dwarf_add_AT_const_value_string.3 2072 2011-10-27 03:26:49Z jkoshy $ +.\" $Id: dwarf_add_AT_const_value_string.3 3640 2018-10-14 14:09:13Z jkoshy $ .\" .Dd September 4, 2011 -.Os .Dt DWARF_ADD_AT_CONST_VALUE_STRING 3 +.Os .Sh NAME .Nm dwarf_add_AT_const_value_signedint , .Nm dwarf_add_AT_const_value_string , Modified: stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_dataref.3 ============================================================================== --- stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_dataref.3 Mon Apr 22 08:32:00 2019 (r346535) +++ stable/12/contrib/elftoolchain/libdwarf/dwarf_add_AT_dataref.3 Mon Apr 22 08:58:33 2019 (r346536) @@ -22,11 +22,11 @@ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***