diff --git a/external/bsd/elftoolchain/dist/common/_elftc.h b/external/bsd/elftoolchain/dist/common/_elftc.h index c8de023529b6..8a07242e8574 100644 --- a/external/bsd/elftoolchain/dist/common/_elftc.h +++ b/external/bsd/elftoolchain/dist/common/_elftc.h @@ -1,4 +1,4 @@ -/* $NetBSD: _elftc.h,v 1.9 2022/05/03 16:47:15 jkoshy Exp $ */ +/* $NetBSD: _elftc.h,v 1.10 2024/03/03 17:37:29 christos Exp $ */ /*- * Copyright (c) 2009 Joseph Koshy diff --git a/external/bsd/elftoolchain/dist/common/elfdefinitions.h b/external/bsd/elftoolchain/dist/common/elfdefinitions.h index 7464edfb8d6e..ae4029a1d840 100644 --- a/external/bsd/elftoolchain/dist/common/elfdefinitions.h +++ b/external/bsd/elftoolchain/dist/common/elfdefinitions.h @@ -1,4 +1,4 @@ -/* $NetBSD: elfdefinitions.h,v 1.7 2021/04/29 17:38:08 jkoshy Exp $ */ +/* $NetBSD: elfdefinitions.h,v 1.8 2024/03/03 17:37:29 christos Exp $ */ /*- * Copyright (c) 2010,2021 Joseph Koshy diff --git a/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4 b/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4 index 89a2d8ca6c2c..ddfbd8d3930c 100644 --- a/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4 +++ b/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4 @@ -1,4 +1,4 @@ -dnl $NetBSD: elfconstants.m4,v 1.6 2023/12/09 19:42:41 jkoshy Exp $ +dnl $NetBSD: elfconstants.m4,v 1.7 2024/03/03 17:37:29 christos Exp $ # Copyright (c) 2010,2021 Joseph Koshy # All rights reserved. @@ -33,7 +33,7 @@ dnl $NetBSD: elfconstants.m4,v 1.6 2023/12/09 19:42:41 jkoshy Exp $ # - The "Linkers and Libraries Guide", from Sun Microsystems. define(`VCSID_ELFCONSTANTS_M4', - `$Id: elfconstants.m4,v 1.6 2023/12/09 19:42:41 jkoshy Exp $') + `Id: elfconstants.m4 4028 2023-12-27 22:37:31Z jkoshy') # In the following definitions, `_' is an M4 macro that is meant to be # expanded later. Its intended usage is: @@ -1938,85 +1938,159 @@ _(R_ARM_IRELATIVE, 140) define(`DEFINE_IA64_RELOCATIONS',` _(R_IA_64_NONE, 0) +_(R_IA64_NONE, 0) _(R_IA_64_IMM14, 0x21) +_(R_IA64_IMM14, 0x21) _(R_IA_64_IMM22, 0x22) +_(R_IA64_IMM22, 0x22) _(R_IA_64_IMM64, 0x23) +_(R_IA64_IMM64, 0x23) _(R_IA_64_DIR32MSB, 0x24) +_(R_IA64_DIR32MSB, 0x24) _(R_IA_64_DIR32LSB, 0x25) +_(R_IA64_DIR32LSB, 0x25) _(R_IA_64_DIR64MSB, 0x26) +_(R_IA64_DIR64MSB, 0x26) _(R_IA_64_DIR64LSB, 0x27) +_(R_IA64_DIR64LSB, 0x27) _(R_IA_64_GPREL22, 0x2a) +_(R_IA64_GPREL22, 0x2a) _(R_IA_64_GPREL64I, 0x2b) +_(R_IA64_GPREL64I, 0x2b) _(R_IA_64_GPREL32MSB, 0x2c) _(R_IA_64_GPREL32LSB, 0x2d) _(R_IA_64_GPREL64MSB, 0x2e) +_(R_IA64_GPREL64MSB, 0x2e) _(R_IA_64_GPREL64LSB, 0x2f) +_(R_IA64_GPREL64LSB, 0x2f) _(R_IA_64_LTOFF22, 0x32) +_(R_IA64_LTOFF22, 0x32) _(R_IA_64_LTOFF64I, 0x33) +_(R_IA64_LTOFF64I, 0x33) _(R_IA_64_PLTOFF22, 0x3a) +_(R_IA64_PLTOFF22, 0x3a) _(R_IA_64_PLTOFF64I, 0x3b) +_(R_IA64_PLTOFF64I, 0x3b) _(R_IA_64_PLTOFF64MSB, 0x3e) +_(R_IA64_PLTOFF64MSB, 0x3e) _(R_IA_64_PLTOFF64LSB, 0x3f) +_(R_IA64_PLTOFF64LSB, 0x3f) _(R_IA_64_FPTR64I, 0x43) +_(R_IA64_FPTR64I, 0x43) _(R_IA_64_FPTR32MSB, 0x44) +_(R_IA64_FPTR32MSB, 0x44) _(R_IA_64_FPTR32LSB, 0x45) +_(R_IA64_FPTR32LSB, 0x45) _(R_IA_64_FPTR64MSB, 0x46) +_(R_IA64_FPTR64MSB, 0x46) _(R_IA_64_FPTR64LSB, 0x47) +_(R_IA64_FPTR64LSB, 0x47) _(R_IA_64_PCREL60B, 0x48) _(R_IA_64_PCREL21B, 0x49) +_(R_IA64_PCREL21B, 0x49) _(R_IA_64_PCREL21M, 0x4a) +_(R_IA64_PCREL21M, 0x4a) _(R_IA_64_PCREL21F, 0x4b) +_(R_IA64_PCREL21F, 0x4b) _(R_IA_64_PCREL32MSB, 0x4c) +_(R_IA64_PCREL32MSB, 0x4c) _(R_IA_64_PCREL32LSB, 0x4d) +_(R_IA64_PCREL32LSB, 0x4d) _(R_IA_64_PCREL64MSB, 0x4e) +_(R_IA64_PCREL64MSB, 0x4e) _(R_IA_64_PCREL64LSB, 0x4f) +_(R_IA64_PCREL64LSB, 0x4f) _(R_IA_64_LTOFF_FPTR22, 0x52) +_(R_IA64_LTOFF_FPTR22, 0x52) _(R_IA_64_LTOFF_FPTR64I, 0x53) +_(R_IA64_LTOFF_FPTR64I, 0x53) _(R_IA_64_LTOFF_FPTR32MSB, 0x54) +_(R_IA64_LTOFF_FPTR32MSB, 0x54) _(R_IA_64_LTOFF_FPTR32LSB, 0x55) +_(R_IA64_LTOFF_FPTR32LSB, 0x55) _(R_IA_64_LTOFF_FPTR64MSB, 0x56) +_(R_IA64_LTOFF_FPTR64MSB, 0x56) _(R_IA_64_LTOFF_FPTR64LSB, 0x57) +_(R_IA64_LTOFF_FPTR64LSB, 0x57) _(R_IA_64_SEGREL32MSB, 0x5c) +_(R_IA64_SEGREL32MSB, 0x5c) _(R_IA_64_SEGREL32LSB, 0x5d) +_(R_IA64_SEGREL32LSB, 0x5d) _(R_IA_64_SEGREL64MSB, 0x5e) +_(R_IA64_SEGREL64MSB, 0x5e) _(R_IA_64_SEGREL64LSB, 0x5f) +_(R_IA64_SEGREL64LSB, 0x5f) _(R_IA_64_SECREL32MSB, 0x64) +_(R_IA64_SECREL32MSB, 0x64) _(R_IA_64_SECREL32LSB, 0x65) +_(R_IA64_SECREL32LSB, 0x65) _(R_IA_64_SECREL64MSB, 0x66) +_(R_IA64_SECREL64MSB, 0x66) _(R_IA_64_SECREL64LSB, 0x67) +_(R_IA64_SECREL64LSB, 0x67) _(R_IA_64_REL32MSB, 0x6c) +_(R_IA64_REL32MSB, 0x6c) _(R_IA_64_REL32LSB, 0x6d) +_(R_IA64_REL32LSB, 0x6d) _(R_IA_64_REL64MSB, 0x6e) +_(R_IA64_REL64MSB, 0x6e) _(R_IA_64_REL64LSB, 0x6f) +_(R_IA64_REL64LSB, 0x6f) _(R_IA_64_LTV32MSB, 0x74) +_(R_IA64_LTV32MSB, 0x74) _(R_IA_64_LTV32LSB, 0x75) +_(R_IA64_LTV32LSB, 0x75) _(R_IA_64_LTV64MSB, 0x76) +_(R_IA64_LTV64MSB, 0x76) _(R_IA_64_LTV64LSB, 0x77) +_(R_IA64_LTV64LSB, 0x77) _(R_IA_64_PCREL21BI, 0x79) _(R_IA_64_PCREL22, 0x7A) _(R_IA_64_PCREL64I, 0x7B) _(R_IA_64_IPLTMSB, 0x80) +_(R_IA64_IPLTMSB, 0x80) _(R_IA_64_IPLTLSB, 0x81) +_(R_IA64_IPLTLSB, 0x81) _(R_IA_64_SUB, 0x85) +_(R_IA64_SUB, 0x85) _(R_IA_64_LTOFF22X, 0x86) +_(R_IA64_LTOFF22X, 0x86) _(R_IA_64_LDXMOV, 0x87) +_(R_IA64_LDXMOV, 0x87) _(R_IA_64_TPREL14, 0x91) +_(R_IA64_TPREL14, 0x91) _(R_IA_64_TPREL22, 0x92) +_(R_IA64_TPREL22, 0x92) _(R_IA_64_TPREL64I, 0x93) +_(R_IA64_TPREL64I, 0x93) _(R_IA_64_TPREL64MSB, 0x96) +_(R_IA64_TPREL64MSB, 0x96) _(R_IA_64_TPREL64LSB, 0x97) +_(R_IA64_TPREL64LSB, 0x97) _(R_IA_64_LTOFF_TPREL22, 0x9A) +_(R_IA64_LTOFF_TPREL22, 0x9A) _(R_IA_64_DTPMOD64MSB, 0xA6) +_(R_IA64_DTPMOD64MSB, 0xA6) _(R_IA_64_DTPMOD64LSB, 0xA7) +_(R_IA64_DTPMOD64LSB, 0xA7) _(R_IA_64_LTOFF_DTPMOD22, 0xAA) +_(R_IA64_LTOFF_DTPMOD22, 0xAA) _(R_IA_64_DTPREL14, 0xB1) +_(R_IA64_DTPREL14, 0xB1) _(R_IA_64_DTPREL22, 0xB2) +_(R_IA64_DTPREL22, 0xB2) _(R_IA_64_DTPREL64I, 0xB3) +_(R_IA64_DTPREL64I, 0xB3) _(R_IA_64_DTPREL32MSB, 0xB4) +_(R_IA64_DTPREL32MSB, 0xB4) _(R_IA_64_DTPREL32LSB, 0xB5) +_(R_IA64_DTPREL32LSB, 0xB5) _(R_IA_64_DTPREL64MSB, 0xB6) +_(R_IA64_DTPREL64MSB, 0xB6) _(R_IA_64_DTPREL64LSB, 0xB7) +_(R_IA64_DTPREL64LSB, 0xB7) _(R_IA_64_LTOFF_DTPREL22, 0xBA) +_(R_IA64_LTOFF_DTPREL22, 0xBA) ') define(`DEFINE_MIPS_RELOCATIONS',` @@ -2459,6 +2533,8 @@ _(R_X86_64_TLSDESC_CALL, 35) _(R_X86_64_TLSDESC, 36) _(R_X86_64_IRELATIVE, 37) _(R_X86_64_RELATIVE64, 38) +_(R_X86_64_PC32_BND, 39) +_(R_X86_64_PLT32_BND, 40) _(R_X86_64_GOTPCRELX, 41) _(R_X86_64_REX_GOTPCRELX, 42) ') diff --git a/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4 b/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4 index 08990d80568e..16f752cbdd08 100644 --- a/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4 +++ b/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4 @@ -1,4 +1,4 @@ -dnl $NetBSD: elfdefinitions.m4,v 1.5 2022/05/08 17:28:14 jkoshy Exp $ +dnl $NetBSD: elfdefinitions.m4,v 1.6 2024/03/03 17:37:29 christos Exp $ /*- * Copyright (c) 2010,2021 Joseph Koshy * All rights reserved. diff --git a/external/bsd/elftoolchain/dist/common/utarray.h b/external/bsd/elftoolchain/dist/common/utarray.h index 0439f1579d9d..c1b127da08ca 100644 --- a/external/bsd/elftoolchain/dist/common/utarray.h +++ b/external/bsd/elftoolchain/dist/common/utarray.h @@ -1,4 +1,4 @@ -/* $NetBSD: utarray.h,v 1.4 2023/12/17 18:59:19 jkoshy Exp $ */ +/* $NetBSD: utarray.h,v 1.5 2024/03/03 17:37:29 christos Exp $ */ /*- Copyright (c) 2008-2021, Troy D. Hanson http://troydhanson.github.com/uthash/ diff --git a/external/bsd/elftoolchain/dist/common/uthash.h b/external/bsd/elftoolchain/dist/common/uthash.h index 92d2a1770ef7..d945d949ed0b 100644 --- a/external/bsd/elftoolchain/dist/common/uthash.h +++ b/external/bsd/elftoolchain/dist/common/uthash.h @@ -1,4 +1,4 @@ -/* $NetBSD: uthash.h,v 1.5 2023/12/17 18:59:19 jkoshy Exp $ */ +/* $NetBSD: uthash.h,v 1.6 2024/03/03 17:37:29 christos Exp $ */ /*- Copyright (c) 2003-2021, Troy D. Hanson http://troydhanson.github.com/uthash/ diff --git a/external/bsd/elftoolchain/dist/libdwarf/_libdwarf.h b/external/bsd/elftoolchain/dist/libdwarf/_libdwarf.h index ed496590a17e..fed972060f61 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/_libdwarf.h +++ b/external/bsd/elftoolchain/dist/libdwarf/_libdwarf.h @@ -1,8 +1,8 @@ -/* $NetBSD: _libdwarf.h,v 1.3 2016/02/20 02:43:41 christos Exp $ */ +/* $NetBSD: _libdwarf.h,v 1.4 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2014 Kai Wang + * Copyright (c) 2009-2014,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: _libdwarf.h 3298 2016-01-09 15:43:31Z jkoshy + * Id: _libdwarf.h 4019 2023-10-22 03:06:17Z kaiwang27 */ #ifndef __LIBDWARF_H_ @@ -93,7 +93,7 @@ extern struct _libdwarf_globals _libdwarf; ret = expr; \ if (ret != DW_DLE_NONE) \ goto gen_fail; \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) typedef struct _Dwarf_CU *Dwarf_CU; @@ -101,6 +101,7 @@ struct _Dwarf_AttrDef { Dwarf_Half ad_attrib; /* DW_AT_XXX */ Dwarf_Half ad_form; /* DW_FORM_XXX */ uint64_t ad_offset; /* Offset in abbrev section. */ + int64_t ad_const; /* Implicit constant */ STAILQ_ENTRY(_Dwarf_AttrDef) ad_next; /* Next attribute define. */ }; @@ -188,6 +189,7 @@ struct _Dwarf_LineFile { Dwarf_Unsigned lf_dirndx; /* Dir index. */ Dwarf_Unsigned lf_mtime; /* Modification time. */ Dwarf_Unsigned lf_size; /* File size. */ + Dwarf_Form_Data16 lf_md5; /* File md5 digest. */ STAILQ_ENTRY(_Dwarf_LineFile) lf_next; /* Next file in list. */ }; @@ -333,8 +335,10 @@ struct _Dwarf_CU { int cu_abbrev_loaded; /* Abbrev table parsed. */ uint64_t cu_abbrev_cnt; /* Abbrev entry count. */ uint64_t cu_lineno_offset; /* Offset into .debug_lineno. */ + uint64_t cu_dwo_id; /* DWARF5 dwo id. */ uint8_t cu_pointer_size;/* Number of bytes in pointer. */ uint8_t cu_dwarf_size; /* CU section dwarf size. */ + uint8_t cu_unit_type; /* DWARF5 unit type. */ Dwarf_Sig8 cu_type_sig; /* Type unit's signature. */ uint64_t cu_type_offset; /* Type unit's type offset. */ Dwarf_Off cu_next_offset; /* Offset to the next CU. */ @@ -433,6 +437,7 @@ struct _Dwarf_Debug { char *dbg_strtab; /* Dwarf string table. */ Dwarf_Unsigned dbg_strtab_cap; /* Dwarf string table capacity. */ Dwarf_Unsigned dbg_strtab_size; /* Dwarf string table size. */ + char *dbg_line_strtab;/* Dwarf line info string table. */ STAILQ_HEAD(, _Dwarf_MacroSet) dbg_mslist; /* List of macro set. */ STAILQ_HEAD(, _Dwarf_Rangelist) dbg_rllist; /* List of rangelist. */ uint64_t (*read)(uint8_t *, uint64_t *, int); @@ -512,7 +517,8 @@ int _dwarf_attr_init(Dwarf_Debug, Dwarf_Section *, uint64_t *, int, Dwarf_CU, Dwarf_Die, Dwarf_AttrDef, uint64_t, int, Dwarf_Error *); int _dwarf_attrdef_add(Dwarf_Debug, Dwarf_Abbrev, uint64_t, - uint64_t, uint64_t, Dwarf_AttrDef *, Dwarf_Error *); + uint64_t, int64_t, uint64_t, Dwarf_AttrDef *, + Dwarf_Error *); uint64_t _dwarf_decode_lsb(uint8_t **, int); uint64_t _dwarf_decode_msb(uint8_t **, int); int64_t _dwarf_decode_sleb128(uint8_t **); @@ -645,6 +651,7 @@ int _dwarf_strtab_add(Dwarf_Debug, char *, uint64_t *, void _dwarf_strtab_cleanup(Dwarf_Debug); int _dwarf_strtab_gen(Dwarf_P_Debug, Dwarf_Error *); char *_dwarf_strtab_get_table(Dwarf_Debug); +char *_dwarf_strtab_get_line_table(Dwarf_Debug); int _dwarf_strtab_init(Dwarf_Debug, Dwarf_Error *); void _dwarf_type_unit_cleanup(Dwarf_Debug); void _dwarf_write_block(void *, uint64_t *, uint8_t *, uint64_t); diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf.3 index 37eaa6a46e49..8a0ef1c323b7 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf.h b/external/bsd/elftoolchain/dist/libdwarf/dwarf.h index a03ca4ce52f9..20b071ad9427 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf.h +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf.h @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf.h,v 1.4 2017/11/30 19:45:53 christos Exp $ */ +/* $NetBSD: dwarf.h,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -25,75 +25,122 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: dwarf.h 3052 2014-05-26 20:36:24Z kaiwang27 + * Id: dwarf.h 4011 2023-10-13 01:14:59Z kaiwang27 */ #ifndef _DWARF_H_ #define _DWARF_H_ -#define DW_TAG_array_type 0x01 -#define DW_TAG_class_type 0x02 -#define DW_TAG_entry_point 0x03 -#define DW_TAG_enumeration_type 0x04 -#define DW_TAG_formal_parameter 0x05 -#define DW_TAG_imported_declaration 0x08 -#define DW_TAG_label 0x0a -#define DW_TAG_lexical_block 0x0b -#define DW_TAG_member 0x0d -#define DW_TAG_pointer_type 0x0f -#define DW_TAG_reference_type 0x10 -#define DW_TAG_compile_unit 0x11 -#define DW_TAG_string_type 0x12 -#define DW_TAG_structure_type 0x13 -#define DW_TAG_subroutine_type 0x15 -#define DW_TAG_typedef 0x16 -#define DW_TAG_union_type 0x17 -#define DW_TAG_unspecified_parameters 0x18 -#define DW_TAG_variant 0x19 -#define DW_TAG_common_block 0x1a -#define DW_TAG_common_inclusion 0x1b -#define DW_TAG_inheritance 0x1c -#define DW_TAG_inlined_subroutine 0x1d -#define DW_TAG_module 0x1e -#define DW_TAG_ptr_to_member_type 0x1f -#define DW_TAG_set_type 0x20 -#define DW_TAG_subrange_type 0x21 -#define DW_TAG_with_stmt 0x22 -#define DW_TAG_access_declaration 0x23 -#define DW_TAG_base_type 0x24 -#define DW_TAG_catch_block 0x25 -#define DW_TAG_const_type 0x26 -#define DW_TAG_constant 0x27 -#define DW_TAG_enumerator 0x28 -#define DW_TAG_friend 0x2a -#define DW_TAG_namelist 0x2b -#define DW_TAG_namelist_item 0x2c -#define DW_TAG_packed_type 0x2d -#define DW_TAG_subprogram 0x2e -#define DW_TAG_template_type_parameter 0x2f -#define DW_TAG_template_type_param 0x2f -#define DW_TAG_template_value_parameter 0x30 -#define DW_TAG_template_value_param 0x30 -#define DW_TAG_thrown_type 0x31 -#define DW_TAG_try_block 0x32 -#define DW_TAG_variant_part 0x33 -#define DW_TAG_variable 0x34 -#define DW_TAG_volatile_type 0x35 -#define DW_TAG_dwarf_procedure 0x36 -#define DW_TAG_restrict_type 0x37 -#define DW_TAG_interface_type 0x38 -#define DW_TAG_namespace 0x39 -#define DW_TAG_imported_module 0x3a -#define DW_TAG_unspecified_type 0x3b -#define DW_TAG_partial_unit 0x3c -#define DW_TAG_imported_unit 0x3d -#define DW_TAG_condition 0x3f -#define DW_TAG_shared_type 0x40 -#define DW_TAG_type_unit 0x41 -#define DW_TAG_rvalue_reference_type 0x42 -#define DW_TAG_template_alias 0x43 -#define DW_TAG_lo_user 0x4080 -#define DW_TAG_hi_user 0xffff +/* + * DWARF5 Section 7.3.5.3, Table 7.1: Package file section identifier + * encodings. + */ + +#define DW_SECT_INFO 1 /* .debug_info.dwo */ + /* Reserved: 2 */ +#define DW_SECT_ABBREV 3 /* .debug_abbrev.dwo */ +#define DW_SECT_LINE 4 /* .debug_line.dwo */ +#define DW_SECT_LOCLISTS 5 /* .debug_loclists.dwo */ +#define DW_SECT_STR_OFFSETS 6 /* .debug_str_offsets.dwo */ +#define DW_SECT_MACRO 7 /* .debug_macro.dwo */ +#define DW_SECT_RNGLISTS 8 /* .debug_rnglists.dwo */ + + +/* + * DWARF5 Section 7.5.1, Table 7.2: Unit header unit type encodings. + */ + +#define DW_UT_compile 0x01 +#define DW_UT_type 0x02 +#define DW_UT_partial 0x03 +#define DW_UT_skeleton 0x04 +#define DW_UT_split_compile 0x05 +#define DW_UT_split_type 0x06 +#define DW_UT_lo_user 0x80 +#define DW_UT_hi_user 0XFF + +/* + * DWARF5 Section 7.5.3, Table 7.3: Tag encodings. + */ + +#define DW_TAG_array_type 0x01 +#define DW_TAG_class_type 0x02 +#define DW_TAG_entry_point 0x03 +#define DW_TAG_enumeration_type 0x04 +#define DW_TAG_formal_parameter 0x05 + /* Reserved: 0x06, 0x07. */ +#define DW_TAG_imported_declaration 0x08 + /* Reserved: 0x09. */ +#define DW_TAG_label 0x0a +#define DW_TAG_lexical_block 0x0b + /* Reserved: 0x0C. */ +#define DW_TAG_member 0x0d + /* Reserved: 0x0E. */ +#define DW_TAG_pointer_type 0x0f +#define DW_TAG_reference_type 0x10 +#define DW_TAG_compile_unit 0x11 +#define DW_TAG_string_type 0x12 +#define DW_TAG_structure_type 0x13 + /* Reserved: 0x14. */ +#define DW_TAG_subroutine_type 0x15 +#define DW_TAG_typedef 0x16 +#define DW_TAG_union_type 0x17 +#define DW_TAG_unspecified_parameters 0x18 +#define DW_TAG_variant 0x19 +#define DW_TAG_common_block 0x1a +#define DW_TAG_common_inclusion 0x1b +#define DW_TAG_inheritance 0x1c +#define DW_TAG_inlined_subroutine 0x1d +#define DW_TAG_module 0x1e +#define DW_TAG_ptr_to_member_type 0x1f +#define DW_TAG_set_type 0x20 +#define DW_TAG_subrange_type 0x21 +#define DW_TAG_with_stmt 0x22 +#define DW_TAG_access_declaration 0x23 +#define DW_TAG_base_type 0x24 +#define DW_TAG_catch_block 0x25 +#define DW_TAG_const_type 0x26 +#define DW_TAG_constant 0x27 +#define DW_TAG_enumerator 0x28 +#define DW_TAG_file_type 0x29 +#define DW_TAG_friend 0x2a +#define DW_TAG_namelist 0x2b +#define DW_TAG_namelist_item 0x2c +#define DW_TAG_packed_type 0x2d +#define DW_TAG_subprogram 0x2e +#define DW_TAG_template_type_parameter 0x2f +#define DW_TAG_template_type_param 0x2f +#define DW_TAG_template_value_parameter 0x30 +#define DW_TAG_template_value_param 0x30 +#define DW_TAG_thrown_type 0x31 +#define DW_TAG_try_block 0x32 +#define DW_TAG_variant_part 0x33 +#define DW_TAG_variable 0x34 +#define DW_TAG_volatile_type 0x35 +#define DW_TAG_dwarf_procedure 0x36 +#define DW_TAG_restrict_type 0x37 +#define DW_TAG_interface_type 0x38 +#define DW_TAG_namespace 0x39 +#define DW_TAG_imported_module 0x3a +#define DW_TAG_unspecified_type 0x3b +#define DW_TAG_partial_unit 0x3c +#define DW_TAG_imported_unit 0x3d + /* Reserved: 0x3E. */ +#define DW_TAG_condition 0x3f +#define DW_TAG_shared_type 0x40 +#define DW_TAG_type_unit 0x41 +#define DW_TAG_rvalue_reference_type 0x42 +#define DW_TAG_template_alias 0x43 +#define DW_TAG_coarray_type 0x44 +#define DW_TAG_generic_subrange 0x45 +#define DW_TAG_dynamic_type 0x46 +#define DW_TAG_atomic_type 0x47 +#define DW_TAG_call_site 0x48 +#define DW_TAG_call_site_parameter 0x49 +#define DW_TAG_skeleton_unit 0x4a +#define DW_TAG_immutable_type 0x4b +#define DW_TAG_lo_user 0x4080 +#define DW_TAG_hi_user 0xffff /* GNU extensions. */ #define DW_TAG_format_label 0x4101 @@ -108,107 +155,173 @@ #define DW_TAG_GNU_call_site 0x4109 #define DW_TAG_GNU_call_site_parameter 0x410a -#define DW_CHILDREN_no 0x00 -#define DW_CHILDREN_yes 0x01 +/* + * DWARF5 Section 7.5.3, Table 7.4: Child determination encodings. + */ -#define DW_AT_sibling 0x01 -#define DW_AT_location 0x02 -#define DW_AT_name 0x03 -#define DW_AT_ordering 0x09 -#define DW_AT_subscr_data 0x0a -#define DW_AT_byte_size 0x0b -#define DW_AT_bit_offset 0x0c -#define DW_AT_bit_size 0x0d -#define DW_AT_element_list 0x0f -#define DW_AT_stmt_list 0x10 -#define DW_AT_low_pc 0x11 -#define DW_AT_high_pc 0x12 -#define DW_AT_language 0x13 -#define DW_AT_member 0x14 -#define DW_AT_discr 0x15 -#define DW_AT_discr_value 0x16 -#define DW_AT_visibility 0x17 -#define DW_AT_import 0x18 -#define DW_AT_string_length 0x19 -#define DW_AT_common_reference 0x1a -#define DW_AT_comp_dir 0x1b -#define DW_AT_const_value 0x1c -#define DW_AT_containing_type 0x1d -#define DW_AT_default_value 0x1e -#define DW_AT_inline 0x20 -#define DW_AT_is_optional 0x21 -#define DW_AT_lower_bound 0x22 -#define DW_AT_producer 0x25 -#define DW_AT_prototyped 0x27 -#define DW_AT_return_addr 0x2a -#define DW_AT_start_scope 0x2c -#define DW_AT_bit_stride 0x2e -#define DW_AT_stride_size 0x2e -#define DW_AT_upper_bound 0x2f -#define DW_AT_abstract_origin 0x31 -#define DW_AT_accessibility 0x32 -#define DW_AT_address_class 0x33 -#define DW_AT_artificial 0x34 -#define DW_AT_base_types 0x35 -#define DW_AT_calling_convention 0x36 -#define DW_AT_count 0x37 -#define DW_AT_data_member_location 0x38 -#define DW_AT_decl_column 0x39 -#define DW_AT_decl_file 0x3a -#define DW_AT_decl_line 0x3b -#define DW_AT_declaration 0x3c -#define DW_AT_discr_list 0x3d -#define DW_AT_encoding 0x3e -#define DW_AT_external 0x3f -#define DW_AT_frame_base 0x40 -#define DW_AT_friend 0x41 -#define DW_AT_identifier_case 0x42 -#define DW_AT_macro_info 0x43 -#define DW_AT_namelist_item 0x44 -#define DW_AT_priority 0x45 -#define DW_AT_segment 0x46 -#define DW_AT_specification 0x47 -#define DW_AT_static_link 0x48 -#define DW_AT_type 0x49 -#define DW_AT_use_location 0x4a -#define DW_AT_variable_parameter 0x4b -#define DW_AT_virtuality 0x4c -#define DW_AT_vtable_elem_location 0x4d -#define DW_AT_allocated 0x4e -#define DW_AT_associated 0x4f -#define DW_AT_data_location 0x50 -#define DW_AT_byte_stride 0x51 -#define DW_AT_entry_pc 0x52 -#define DW_AT_use_UTF8 0x53 -#define DW_AT_extension 0x54 -#define DW_AT_ranges 0x55 -#define DW_AT_trampoline 0x56 -#define DW_AT_call_column 0x57 -#define DW_AT_call_file 0x58 -#define DW_AT_call_line 0x59 -#define DW_AT_description 0x5a -#define DW_AT_binary_scale 0x5b -#define DW_AT_decimal_scale 0x5c -#define DW_AT_small 0x5d -#define DW_AT_decimal_sign 0x5e -#define DW_AT_digit_count 0x5f -#define DW_AT_picture_string 0x60 -#define DW_AT_mutable 0x61 -#define DW_AT_threads_scaled 0x62 -#define DW_AT_explicit 0x63 -#define DW_AT_object_pointer 0x64 -#define DW_AT_endianity 0x65 -#define DW_AT_elemental 0x66 -#define DW_AT_pure 0x67 -#define DW_AT_recursive 0x68 -#define DW_AT_signature 0x69 -#define DW_AT_main_subprogram 0x6a -#define DW_AT_data_bit_offset 0x6b -#define DW_AT_const_expr 0x6c -#define DW_AT_enum_class 0x6d -#define DW_AT_linkage_name 0x6e -#define DW_AT_lo_user 0x2000 -#define DW_AT_hi_user 0x3fff +#define DW_CHILDREN_no 0x00 +#define DW_CHILDREN_yes 0x01 + +/* + * DWARF5 Section 7.5.4, Table 7.5: Attribute encodings. + */ + +#define DW_AT_sibling 0x01 +#define DW_AT_location 0x02 +#define DW_AT_name 0x03 + /* Reserved: 0x04, 0x05, 0x06, 0x07, 0x08. */ +#define DW_AT_ordering 0x09 +#define DW_AT_subscr_data 0x0a +#define DW_AT_byte_size 0x0b +#define DW_AT_bit_offset 0x0c +#define DW_AT_bit_size 0x0d + /* Reserved: 0x0e. */ +#define DW_AT_element_list 0x0f +#define DW_AT_stmt_list 0x10 +#define DW_AT_low_pc 0x11 +#define DW_AT_high_pc 0x12 +#define DW_AT_language 0x13 +#define DW_AT_member 0x14 +#define DW_AT_discr 0x15 +#define DW_AT_discr_value 0x16 +#define DW_AT_visibility 0x17 +#define DW_AT_import 0x18 +#define DW_AT_string_length 0x19 +#define DW_AT_common_reference 0x1a +#define DW_AT_comp_dir 0x1b +#define DW_AT_const_value 0x1c +#define DW_AT_containing_type 0x1d +#define DW_AT_default_value 0x1e + /* Reserved: 0x1f. */ +#define DW_AT_inline 0x20 +#define DW_AT_is_optional 0x21 +#define DW_AT_lower_bound 0x22 + /* Reserved: 0x23, 0x24. */ +#define DW_AT_producer 0x25 + /* Reserved: 0x26. */ +#define DW_AT_prototyped 0x27 + /* Reserved: 0x28, 0x29. */ +#define DW_AT_return_addr 0x2a + /* Reserved: 0x2b. */ +#define DW_AT_start_scope 0x2c + /* Reserved: 0x2d. */ +#define DW_AT_bit_stride 0x2e +#define DW_AT_stride_size 0x2e +#define DW_AT_upper_bound 0x2f + /* Reserved: 0x30. */ +#define DW_AT_abstract_origin 0x31 +#define DW_AT_accessibility 0x32 +#define DW_AT_address_class 0x33 +#define DW_AT_artificial 0x34 +#define DW_AT_base_types 0x35 +#define DW_AT_calling_convention 0x36 +#define DW_AT_count 0x37 +#define DW_AT_data_member_location 0x38 +#define DW_AT_decl_column 0x39 +#define DW_AT_decl_file 0x3a +#define DW_AT_decl_line 0x3b +#define DW_AT_declaration 0x3c +#define DW_AT_discr_list 0x3d +#define DW_AT_encoding 0x3e +#define DW_AT_external 0x3f +#define DW_AT_frame_base 0x40 +#define DW_AT_friend 0x41 +#define DW_AT_identifier_case 0x42 +#define DW_AT_macro_info 0x43 +#define DW_AT_namelist_item 0x44 +#define DW_AT_priority 0x45 +#define DW_AT_segment 0x46 +#define DW_AT_specification 0x47 +#define DW_AT_static_link 0x48 +#define DW_AT_type 0x49 +#define DW_AT_use_location 0x4a +#define DW_AT_variable_parameter 0x4b +#define DW_AT_virtuality 0x4c +#define DW_AT_vtable_elem_location 0x4d +#define DW_AT_allocated 0x4e +#define DW_AT_associated 0x4f +#define DW_AT_data_location 0x50 +#define DW_AT_byte_stride 0x51 +#define DW_AT_entry_pc 0x52 +#define DW_AT_use_UTF8 0x53 +#define DW_AT_extension 0x54 +#define DW_AT_ranges 0x55 +#define DW_AT_trampoline 0x56 +#define DW_AT_call_column 0x57 +#define DW_AT_call_file 0x58 +#define DW_AT_call_line 0x59 +#define DW_AT_description 0x5a +#define DW_AT_binary_scale 0x5b +#define DW_AT_decimal_scale 0x5c +#define DW_AT_small 0x5d +#define DW_AT_decimal_sign 0x5e +#define DW_AT_digit_count 0x5f +#define DW_AT_picture_string 0x60 +#define DW_AT_mutable 0x61 +#define DW_AT_threads_scaled 0x62 +#define DW_AT_explicit 0x63 +#define DW_AT_object_pointer 0x64 +#define DW_AT_endianity 0x65 +#define DW_AT_elemental 0x66 +#define DW_AT_pure 0x67 +#define DW_AT_recursive 0x68 +#define DW_AT_signature 0x69 +#define DW_AT_main_subprogram 0x6a +#define DW_AT_data_bit_offset 0x6b +#define DW_AT_const_expr 0x6c +#define DW_AT_enum_class 0x6d +#define DW_AT_linkage_name 0x6e +#define DW_AT_string_length_bit_size 0x6f +#define DW_AT_string_length_byte_size 0x70 +#define DW_AT_rank 0x71 +#define DW_AT_str_offsets_base 0x72 +#define DW_AT_addr_base 0x73 +#define DW_AT_rnglists_base 0x74 + /* Reserved: 0x75. */ +#define DW_AT_dwo_name 0x76 +#define DW_AT_reference 0x77 +#define DW_AT_rvalue_reference 0x78 +#define DW_AT_macros 0x79 +#define DW_AT_call_all_calls 0x7a +#define DW_AT_call_all_source_calls 0x7b +#define DW_AT_call_all_tail_calls 0x7c +#define DW_AT_call_return_pc 0x7d +#define DW_AT_call_value 0x7e +#define DW_AT_call_origin 0x7f +#define DW_AT_call_parameter 0x80 +#define DW_AT_call_pc 0x81 +#define DW_AT_call_tail_call 0x82 +#define DW_AT_call_target 0x83 +#define DW_AT_call_target_clobbered 0x84 +#define DW_AT_call_data_location 0x85 +#define DW_AT_call_data_value 0x86 +#define DW_AT_noreturn 0x87 +#define DW_AT_alignment 0x88 +#define DW_AT_export_symbols 0x89 +#define DW_AT_deleted 0x8a +#define DW_AT_defaulted 0x8b +#define DW_AT_loclists_base 0x8c +#define DW_AT_lo_user 0x2000 +#define DW_AT_hi_user 0x3fff + +/* SGI/MIPS extensions. */ +#define DW_AT_MIPS_fde 0x2001 +#define DW_AT_MIPS_loop_begin 0x2002 +#define DW_AT_MIPS_tail_loop_begin 0x2003 +#define DW_AT_MIPS_epilog_begin 0x2004 +#define DW_AT_MIPS_loop_unroll_factor 0x2005 +#define DW_AT_MIPS_software_pipeline_depth 0x2006 +#define DW_AT_MIPS_linkage_name 0x2007 +#define DW_AT_MIPS_stride 0x2008 +#define DW_AT_MIPS_abstract_name 0x2009 +#define DW_AT_MIPS_clone_origin 0x200a +#define DW_AT_MIPS_has_inlines 0x200b +#define DW_AT_MIPS_stride_byte 0x200c +#define DW_AT_MIPS_stride_elem 0x200d +#define DW_AT_MIPS_ptr_dopetype 0x200e +#define DW_AT_MIPS_allocatable_dopetype 0x200f +#define DW_AT_MIPS_assumed_shape_dopetype 0x2010 +#define DW_AT_MIPS_assumed_size 0x2011 /* GNU extensions. */ #define DW_AT_sf_names 0x2101 @@ -236,190 +349,245 @@ #define DW_AT_GNU_all_call_sites 0x2117 #define DW_AT_GNU_all_source_call_sites 0x2118 -#define DW_FORM_addr 0x01 -#define DW_FORM_block2 0x03 -#define DW_FORM_block4 0x04 -#define DW_FORM_data2 0x05 -#define DW_FORM_data4 0x06 -#define DW_FORM_data8 0x07 -#define DW_FORM_string 0x08 -#define DW_FORM_block 0x09 -#define DW_FORM_block1 0x0a -#define DW_FORM_data1 0x0b -#define DW_FORM_flag 0x0c -#define DW_FORM_sdata 0x0d -#define DW_FORM_strp 0x0e -#define DW_FORM_udata 0x0f -#define DW_FORM_ref_addr 0x10 -#define DW_FORM_ref1 0x11 -#define DW_FORM_ref2 0x12 -#define DW_FORM_ref4 0x13 -#define DW_FORM_ref8 0x14 -#define DW_FORM_ref_udata 0x15 -#define DW_FORM_indirect 0x16 -#define DW_FORM_sec_offset 0x17 -#define DW_FORM_exprloc 0x18 -#define DW_FORM_flag_present 0x19 -#define DW_FORM_ref_sig8 0x20 +/* Apple extensions. */ +#define DW_AT_APPLE_optimized 0x3fe1 +#define DW_AT_APPLE_flags 0x3fe2 +#define DW_AT_APPLE_isa 0x3fe3 +#define DW_AT_APPLE_block 0x3fe4 +#define DW_AT_APPLE_major_runtime_vers 0x3fe5 +#define DW_AT_APPLE_runtime_class 0x3fe6 +#define DW_AT_APPLE_omit_frame_ptr 0x3fe7 +#define DW_AT_APPLE_property_name 0x3fe8 +#define DW_AT_APPLE_property_getter 0x3fe9 +#define DW_AT_APPLE_property_setter 0x3fea +#define DW_AT_APPLE_property_attribute 0x3feb +#define DW_AT_APPLE_objc_complete_type 0x3fec +#define DW_AT_APPLE_property 0x3fed + +/* + * DWARF5 Section 7.5.6, Table 7.6: Attribute form encodings. + */ + +#define DW_FORM_addr 0x01 + /* Reserved: 0x02. */ +#define DW_FORM_block2 0x03 +#define DW_FORM_block4 0x04 +#define DW_FORM_data2 0x05 +#define DW_FORM_data4 0x06 +#define DW_FORM_data8 0x07 +#define DW_FORM_string 0x08 +#define DW_FORM_block 0x09 +#define DW_FORM_block1 0x0a +#define DW_FORM_data1 0x0b +#define DW_FORM_flag 0x0c +#define DW_FORM_sdata 0x0d +#define DW_FORM_strp 0x0e +#define DW_FORM_udata 0x0f +#define DW_FORM_ref_addr 0x10 +#define DW_FORM_ref1 0x11 +#define DW_FORM_ref2 0x12 +#define DW_FORM_ref4 0x13 +#define DW_FORM_ref8 0x14 +#define DW_FORM_ref_udata 0x15 +#define DW_FORM_indirect 0x16 +#define DW_FORM_sec_offset 0x17 +#define DW_FORM_exprloc 0x18 +#define DW_FORM_flag_present 0x19 +#define DW_FORM_strx 0x1a +#define DW_FORM_addrx 0x1b +#define DW_FORM_ref_sup4 0x1c +#define DW_FORM_strp_sup 0x1d +#define DW_FORM_data16 0x1e +#define DW_FORM_line_strp 0x1f +#define DW_FORM_ref_sig8 0x20 +#define DW_FORM_implicit_const 0x21 +#define DW_FORM_loclistx 0x22 +#define DW_FORM_rnglistx 0x23 +#define DW_FORM_ref_sup8 0x24 +#define DW_FORM_strx1 0x25 +#define DW_FORM_strx2 0x26 +#define DW_FORM_strx3 0x27 +#define DW_FORM_strx4 0x28 +#define DW_FORM_addrx1 0x29 +#define DW_FORM_addrx2 0x2a +#define DW_FORM_addrx3 0x2b +#define DW_FORM_addrx4 0x2c #define DW_FORM_GNU_ref_alt 0x1f20 #define DW_FORM_GNU_strp_alt 0x1f21 -#define DW_OP_addr 0x03 -#define DW_OP_deref 0x06 -#define DW_OP_const1u 0x08 -#define DW_OP_const1s 0x09 -#define DW_OP_const2u 0x0a -#define DW_OP_const2s 0x0b -#define DW_OP_const4u 0x0c -#define DW_OP_const4s 0x0d -#define DW_OP_const8u 0x0e -#define DW_OP_const8s 0x0f -#define DW_OP_constu 0x10 -#define DW_OP_consts 0x11 -#define DW_OP_dup 0x12 -#define DW_OP_drop 0x13 -#define DW_OP_over 0x14 -#define DW_OP_pick 0x15 -#define DW_OP_swap 0x16 -#define DW_OP_rot 0x17 -#define DW_OP_xderef 0x18 -#define DW_OP_abs 0x19 -#define DW_OP_and 0x1a -#define DW_OP_div 0x1b -#define DW_OP_minus 0x1c -#define DW_OP_mod 0x1d -#define DW_OP_mul 0x1e -#define DW_OP_neg 0x1f -#define DW_OP_not 0x20 -#define DW_OP_or 0x21 -#define DW_OP_plus 0x22 -#define DW_OP_plus_uconst 0x23 -#define DW_OP_shl 0x24 -#define DW_OP_shr 0x25 -#define DW_OP_shra 0x26 -#define DW_OP_xor 0x27 -#define DW_OP_bra 0x28 -#define DW_OP_eq 0x29 -#define DW_OP_ge 0x2a -#define DW_OP_gt 0x2b -#define DW_OP_le 0x2c -#define DW_OP_lt 0x2d -#define DW_OP_ne 0x2e -#define DW_OP_skip 0x2f -#define DW_OP_lit0 0x30 -#define DW_OP_lit1 0x31 -#define DW_OP_lit2 0x32 -#define DW_OP_lit3 0x33 -#define DW_OP_lit4 0x34 -#define DW_OP_lit5 0x35 -#define DW_OP_lit6 0x36 -#define DW_OP_lit7 0x37 -#define DW_OP_lit8 0x38 -#define DW_OP_lit9 0x39 -#define DW_OP_lit10 0x3a -#define DW_OP_lit11 0x3b -#define DW_OP_lit12 0x3c -#define DW_OP_lit13 0x3d -#define DW_OP_lit14 0x3e -#define DW_OP_lit15 0x3f -#define DW_OP_lit16 0x40 -#define DW_OP_lit17 0x41 -#define DW_OP_lit18 0x42 -#define DW_OP_lit19 0x43 -#define DW_OP_lit20 0x44 -#define DW_OP_lit21 0x45 -#define DW_OP_lit22 0x46 -#define DW_OP_lit23 0x47 -#define DW_OP_lit24 0x48 -#define DW_OP_lit25 0x49 -#define DW_OP_lit26 0x4a -#define DW_OP_lit27 0x4b -#define DW_OP_lit28 0x4c -#define DW_OP_lit29 0x4d -#define DW_OP_lit30 0x4e -#define DW_OP_lit31 0x4f -#define DW_OP_reg0 0x50 -#define DW_OP_reg1 0x51 -#define DW_OP_reg2 0x52 -#define DW_OP_reg3 0x53 -#define DW_OP_reg4 0x54 -#define DW_OP_reg5 0x55 -#define DW_OP_reg6 0x56 -#define DW_OP_reg7 0x57 -#define DW_OP_reg8 0x58 -#define DW_OP_reg9 0x59 -#define DW_OP_reg10 0x5a -#define DW_OP_reg11 0x5b -#define DW_OP_reg12 0x5c -#define DW_OP_reg13 0x5d -#define DW_OP_reg14 0x5e -#define DW_OP_reg15 0x5f -#define DW_OP_reg16 0x60 -#define DW_OP_reg17 0x61 -#define DW_OP_reg18 0x62 -#define DW_OP_reg19 0x63 -#define DW_OP_reg20 0x64 -#define DW_OP_reg21 0x65 -#define DW_OP_reg22 0x66 -#define DW_OP_reg23 0x67 -#define DW_OP_reg24 0x68 -#define DW_OP_reg25 0x69 -#define DW_OP_reg26 0x6a -#define DW_OP_reg27 0x6b -#define DW_OP_reg28 0x6c -#define DW_OP_reg29 0x6d -#define DW_OP_reg30 0x6e -#define DW_OP_reg31 0x6f -#define DW_OP_breg0 0x70 -#define DW_OP_breg1 0x71 -#define DW_OP_breg2 0x72 -#define DW_OP_breg3 0x73 -#define DW_OP_breg4 0x74 -#define DW_OP_breg5 0x75 -#define DW_OP_breg6 0x76 -#define DW_OP_breg7 0x77 -#define DW_OP_breg8 0x78 -#define DW_OP_breg9 0x79 -#define DW_OP_breg10 0x7a -#define DW_OP_breg11 0x7b -#define DW_OP_breg12 0x7c -#define DW_OP_breg13 0x7d -#define DW_OP_breg14 0x7e -#define DW_OP_breg15 0x7f -#define DW_OP_breg16 0x80 -#define DW_OP_breg17 0x81 -#define DW_OP_breg18 0x82 -#define DW_OP_breg19 0x83 -#define DW_OP_breg20 0x84 -#define DW_OP_breg21 0x85 -#define DW_OP_breg22 0x86 -#define DW_OP_breg23 0x87 -#define DW_OP_breg24 0x88 -#define DW_OP_breg25 0x89 -#define DW_OP_breg26 0x8a -#define DW_OP_breg27 0x8b -#define DW_OP_breg28 0x8c -#define DW_OP_breg29 0x8d -#define DW_OP_breg30 0x8e -#define DW_OP_breg31 0x8f -#define DW_OP_regx 0x90 -#define DW_OP_fbreg 0x91 -#define DW_OP_bregx 0x92 -#define DW_OP_piece 0x93 -#define DW_OP_deref_size 0x94 -#define DW_OP_xderef_size 0x95 -#define DW_OP_nop 0x96 -#define DW_OP_push_object_address 0x97 -#define DW_OP_call2 0x98 -#define DW_OP_call4 0x99 -#define DW_OP_call_ref 0x9a -#define DW_OP_form_tls_address 0x9b -#define DW_OP_call_frame_cfa 0x9c -#define DW_OP_bit_piece 0x9d -#define DW_OP_implicit_value 0x9e -#define DW_OP_stack_value 0x9f -#define DW_OP_lo_user 0xe0 -#define DW_OP_hi_user 0xff +/* + * DWARF5 Section 7.7.1, Table 7.9: DWARF operation encodings. + */ + + /* Reserved: 0x01, 0x02. */ +#define DW_OP_addr 0x03 + /* Reserved: 0x04, 0x05. */ +#define DW_OP_deref 0x06 + /* Reserved: 0x07. */ +#define DW_OP_const1u 0x08 +#define DW_OP_const1s 0x09 +#define DW_OP_const2u 0x0a +#define DW_OP_const2s 0x0b +#define DW_OP_const4u 0x0c +#define DW_OP_const4s 0x0d +#define DW_OP_const8u 0x0e +#define DW_OP_const8s 0x0f +#define DW_OP_constu 0x10 +#define DW_OP_consts 0x11 +#define DW_OP_dup 0x12 +#define DW_OP_drop 0x13 +#define DW_OP_over 0x14 +#define DW_OP_pick 0x15 +#define DW_OP_swap 0x16 +#define DW_OP_rot 0x17 +#define DW_OP_xderef 0x18 +#define DW_OP_abs 0x19 +#define DW_OP_and 0x1a +#define DW_OP_div 0x1b +#define DW_OP_minus 0x1c +#define DW_OP_mod 0x1d +#define DW_OP_mul 0x1e +#define DW_OP_neg 0x1f +#define DW_OP_not 0x20 +#define DW_OP_or 0x21 +#define DW_OP_plus 0x22 +#define DW_OP_plus_uconst 0x23 +#define DW_OP_shl 0x24 +#define DW_OP_shr 0x25 +#define DW_OP_shra 0x26 +#define DW_OP_xor 0x27 +#define DW_OP_bra 0x28 +#define DW_OP_eq 0x29 +#define DW_OP_ge 0x2a +#define DW_OP_gt 0x2b +#define DW_OP_le 0x2c +#define DW_OP_lt 0x2d +#define DW_OP_ne 0x2e +#define DW_OP_skip 0x2f +#define DW_OP_lit0 0x30 +#define DW_OP_lit1 0x31 +#define DW_OP_lit2 0x32 +#define DW_OP_lit3 0x33 +#define DW_OP_lit4 0x34 +#define DW_OP_lit5 0x35 +#define DW_OP_lit6 0x36 +#define DW_OP_lit7 0x37 +#define DW_OP_lit8 0x38 +#define DW_OP_lit9 0x39 +#define DW_OP_lit10 0x3a +#define DW_OP_lit11 0x3b +#define DW_OP_lit12 0x3c +#define DW_OP_lit13 0x3d +#define DW_OP_lit14 0x3e +#define DW_OP_lit15 0x3f +#define DW_OP_lit16 0x40 +#define DW_OP_lit17 0x41 +#define DW_OP_lit18 0x42 +#define DW_OP_lit19 0x43 +#define DW_OP_lit20 0x44 +#define DW_OP_lit21 0x45 +#define DW_OP_lit22 0x46 +#define DW_OP_lit23 0x47 +#define DW_OP_lit24 0x48 +#define DW_OP_lit25 0x49 +#define DW_OP_lit26 0x4a +#define DW_OP_lit27 0x4b +#define DW_OP_lit28 0x4c +#define DW_OP_lit29 0x4d +#define DW_OP_lit30 0x4e +#define DW_OP_lit31 0x4f +#define DW_OP_reg0 0x50 +#define DW_OP_reg1 0x51 +#define DW_OP_reg2 0x52 +#define DW_OP_reg3 0x53 +#define DW_OP_reg4 0x54 +#define DW_OP_reg5 0x55 +#define DW_OP_reg6 0x56 +#define DW_OP_reg7 0x57 +#define DW_OP_reg8 0x58 +#define DW_OP_reg9 0x59 +#define DW_OP_reg10 0x5a +#define DW_OP_reg11 0x5b +#define DW_OP_reg12 0x5c +#define DW_OP_reg13 0x5d +#define DW_OP_reg14 0x5e +#define DW_OP_reg15 0x5f +#define DW_OP_reg16 0x60 +#define DW_OP_reg17 0x61 +#define DW_OP_reg18 0x62 +#define DW_OP_reg19 0x63 +#define DW_OP_reg20 0x64 +#define DW_OP_reg21 0x65 +#define DW_OP_reg22 0x66 +#define DW_OP_reg23 0x67 +#define DW_OP_reg24 0x68 +#define DW_OP_reg25 0x69 +#define DW_OP_reg26 0x6a +#define DW_OP_reg27 0x6b +#define DW_OP_reg28 0x6c +#define DW_OP_reg29 0x6d +#define DW_OP_reg30 0x6e +#define DW_OP_reg31 0x6f +#define DW_OP_breg0 0x70 +#define DW_OP_breg1 0x71 +#define DW_OP_breg2 0x72 +#define DW_OP_breg3 0x73 +#define DW_OP_breg4 0x74 +#define DW_OP_breg5 0x75 +#define DW_OP_breg6 0x76 +#define DW_OP_breg7 0x77 +#define DW_OP_breg8 0x78 +#define DW_OP_breg9 0x79 +#define DW_OP_breg10 0x7a +#define DW_OP_breg11 0x7b +#define DW_OP_breg12 0x7c +#define DW_OP_breg13 0x7d +#define DW_OP_breg14 0x7e +#define DW_OP_breg15 0x7f +#define DW_OP_breg16 0x80 +#define DW_OP_breg17 0x81 +#define DW_OP_breg18 0x82 +#define DW_OP_breg19 0x83 +#define DW_OP_breg20 0x84 +#define DW_OP_breg21 0x85 +#define DW_OP_breg22 0x86 +#define DW_OP_breg23 0x87 +#define DW_OP_breg24 0x88 +#define DW_OP_breg25 0x89 +#define DW_OP_breg26 0x8a +#define DW_OP_breg27 0x8b +#define DW_OP_breg28 0x8c +#define DW_OP_breg29 0x8d +#define DW_OP_breg30 0x8e +#define DW_OP_breg31 0x8f +#define DW_OP_regx 0x90 +#define DW_OP_fbreg 0x91 +#define DW_OP_bregx 0x92 +#define DW_OP_piece 0x93 +#define DW_OP_deref_size 0x94 +#define DW_OP_xderef_size 0x95 +#define DW_OP_nop 0x96 +#define DW_OP_push_object_address 0x97 +#define DW_OP_call2 0x98 +#define DW_OP_call4 0x99 +#define DW_OP_call_ref 0x9a +#define DW_OP_form_tls_address 0x9b +#define DW_OP_call_frame_cfa 0x9c +#define DW_OP_bit_piece 0x9d +#define DW_OP_implicit_value 0x9e +#define DW_OP_stack_value 0x9f +#define DW_OP_implicit_pointer 0xa0 +#define DW_OP_addrx 0xa1 +#define DW_OP_constx 0xa2 +#define DW_OP_entry_value 0xa3 +#define DW_OP_const_type 0xa4 +#define DW_OP_regval_type 0xa5 +#define DW_OP_deref_type 0xa6 +#define DW_OP_xderef_type 0xa7 +#define DW_OP_convert 0xa8 +#define DW_OP_reinterpret 0xa9 +#define DW_OP_lo_user 0xe0 +#define DW_OP_hi_user 0xff /* GNU extensions. */ #define DW_OP_GNU_push_tls_address 0xe0 @@ -436,32 +604,53 @@ #define DW_OP_GNU_addr_index 0xfb #define DW_OP_GNU_const_index 0xfc -#define DW_ATE_address 0x01 -#define DW_ATE_boolean 0x02 -#define DW_ATE_complex_float 0x03 -#define DW_ATE_float 0x04 -#define DW_ATE_signed 0x05 -#define DW_ATE_signed_char 0x06 -#define DW_ATE_unsigned 0x07 -#define DW_ATE_unsigned_char 0x08 -#define DW_ATE_imaginary_float 0x09 -#define DW_ATE_packed_decimal 0x0a -#define DW_ATE_numeric_string 0x0b -#define DW_ATE_edited 0x0c -#define DW_ATE_signed_fixed 0x0d -#define DW_ATE_unsigned_fixed 0x0e -#define DW_ATE_decimal_float 0x0f -#define DW_ATE_UTF 0x10 +/* + * DWARF5 Section 7.7.3, Table 7.10: location list entry encoding + * values. + */ -#define DW_ATE_lo_user 0x80 +#define DW_LLE_end_of_list 0x00 +#define DW_LLE_base_addressx 0x01 +#define DW_LLE_startx_endx 0x02 +#define DW_LLE_startx_length 0x03 +#define DW_LLE_offset_pair 0x04 +#define DW_LLE_default_location 0x05 +#define DW_LLE_base_address 0x06 +#define DW_LLE_start_end 0x07 +#define DW_LLE_start_lenght 0x08 + +/* + * DWARF5 Section 7.8, Table 7.11: Base type encoding values. + */ + +#define DW_ATE_address 0x1 +#define DW_ATE_boolean 0x2 +#define DW_ATE_complex_float 0x3 +#define DW_ATE_float 0x4 +#define DW_ATE_signed 0x5 +#define DW_ATE_signed_char 0x6 +#define DW_ATE_unsigned 0x7 +#define DW_ATE_unsigned_char 0x8 +#define DW_ATE_imaginary_float 0x9 +#define DW_ATE_packed_decimal 0xa +#define DW_ATE_numeric_string 0xb +#define DW_ATE_edited 0xc +#define DW_ATE_signed_fixed 0xd +#define DW_ATE_unsigned_fixed 0xe +#define DW_ATE_decimal_float 0xf +#define DW_ATE_UTF 0x10 +#define DW_ATE_UCS 0x11 +#define DW_ATE_ASCII 0x12 +#define DW_ATE_lo_user 0x80 +#define DW_ATE_hi_user 0xff #define DW_ATE_HP_float80 0x80 /* FP (80 bit) */ #define DW_ATE_HP_complex_float80 0x81 /* Complex FP (80 bit) */ #define DW_ATE_HP_float128 0x82 /* FP (128 bit) */ #define DW_ATE_HP_complex_float128 0x83 /* Complex FP (128 bit) */ #define DW_ATE_HP_floathpintel 0x84 /* FP (82 bit IA64) */ -#define DW_ATE_HP_imaginary_float80 0x85 -#define DW_ATE_HP_imaginary_float128 0x86 +#define DW_ATE_HP_imaginary_float80 0x85 +#define DW_ATE_HP_imaginary_float128 0x86 #define DW_ATE_HP_VAX_float 0x88 /* FP (F, G) */ #define DW_ATE_HP_VAX_float_d 0x89 /* FP (D) */ #define DW_ATE_HP_packed_decimal 0x8a /* Cobol */ @@ -472,66 +661,9 @@ #define DW_ATE_HP_VAX_complex_float 0x8f /* Complex FP (F, G) */ #define DW_ATE_HP_VAX_complex_float_d 0x90 /* Complex FP (D) */ -#define DW_ATE_hi_user 0xff - -#define DW_ACCESS_public 0x01 -#define DW_ACCESS_protected 0x02 -#define DW_ACCESS_private 0x03 - -#define DW_END_default 0x00 -#define DW_END_big 0x01 -#define DW_END_little 0x02 -#define DW_END_lo_user 0x40 -#define DW_END_high_user 0xff - -#define DW_VIS_local 0x01 -#define DW_VIS_exported 0x02 -#define DW_VIS_qualified 0x03 - -#define DW_VIRTUALITY_none 0x00 -#define DW_VIRTUALITY_virtual 0x01 -#define DW_VIRTUALITY_pure_virtual 0x02 - -#define DW_LANG_C89 0x0001 -#define DW_LANG_C 0x0002 -#define DW_LANG_Ada83 0x0003 -#define DW_LANG_C_plus_plus 0x0004 -#define DW_LANG_Cobol74 0x0005 -#define DW_LANG_Cobol85 0x0006 -#define DW_LANG_Fortran77 0x0007 -#define DW_LANG_Fortran90 0x0008 -#define DW_LANG_Pascal83 0x0009 -#define DW_LANG_Modula2 0x000a -#define DW_LANG_Java 0x000b -#define DW_LANG_C99 0x000c -#define DW_LANG_Ada95 0x000d -#define DW_LANG_Fortran95 0x000e -#define DW_LANG_PLI 0x000f -#define DW_LANG_ObjC 0x0010 -#define DW_LANG_ObjC_plus_plus 0x0011 -#define DW_LANG_UPC 0x0012 -#define DW_LANG_D 0x0013 -#define DW_LANG_lo_user 0x8000 -#define DW_LANG_hi_user 0xffff - -#define DW_ID_case_sensitive 0x00 -#define DW_ID_up_case 0x01 -#define DW_ID_down_case 0x02 -#define DW_ID_case_insensitive 0x03 - -#define DW_CC_normal 0x01 -#define DW_CC_program 0x02 -#define DW_CC_nocall 0x03 -#define DW_CC_lo_user 0x40 -#define DW_CC_hi_user 0xff - -#define DW_INL_not_inlined 0x00 -#define DW_INL_inlined 0x01 -#define DW_INL_declared_not_inlined 0x02 -#define DW_INL_declared_inlined 0x03 - -#define DW_ORD_row_major 0x00 -#define DW_ORD_col_major 0x01 +/* + * DWARF5 Section 7.8, Table 7.12: Decimal sign encodings. + */ #define DW_DS_unsigned 0x01 #define DW_DS_leading_overpunch 0x02 @@ -539,64 +671,277 @@ #define DW_DS_leading_separate 0x04 #define DW_DS_trailing_separate 0x05 -#define DW_DSC_label 0x00 -#define DW_DSC_range 0x01 +/* + * DWARF5 Section 7.8, Table 7.13: Endianity encodings. + */ -#define DW_LNS_copy 0x01 -#define DW_LNS_advance_pc 0x02 -#define DW_LNS_advance_line 0x03 -#define DW_LNS_set_file 0x04 -#define DW_LNS_set_column 0x05 -#define DW_LNS_negate_stmt 0x06 -#define DW_LNS_set_basic_block 0x07 -#define DW_LNS_const_add_pc 0x08 -#define DW_LNS_fixed_advance_pc 0x09 -#define DW_LNS_set_prologue_end 0x0a -#define DW_LNS_set_epilogue_begin 0x0b -#define DW_LNS_set_isa 0x0c +#define DW_END_default 0x00 +#define DW_END_big 0x01 +#define DW_END_little 0x02 +#define DW_END_lo_user 0x40 +#define DW_END_high_user 0xff -#define DW_LNE_end_sequence 0x01 -#define DW_LNE_set_address 0x02 -#define DW_LNE_define_file 0x03 -#define DW_LNE_lo_user 0x80 -#define DW_LNE_hi_user 0xff +/* + * DWARF5 Section 7.9, Table 7.14: Accessibility encodings. + */ -#define DW_MACINFO_define 0x01 -#define DW_MACINFO_undef 0x02 -#define DW_MACINFO_start_file 0x03 -#define DW_MACINFO_end_file 0x04 -#define DW_MACINFO_vendor_ext 0xff +#define DW_ACCESS_public 0x01 +#define DW_ACCESS_protected 0x02 +#define DW_ACCESS_private 0x03 -#define DW_CFA_advance_loc 0x40 -#define DW_CFA_offset 0x80 -#define DW_CFA_restore 0xc0 -#define DW_CFA_extended 0 +/* + * DWARF5 Section 7.10, Table 7.15: Visibility encodings. + */ -#define DW_CFA_nop 0x00 -#define DW_CFA_set_loc 0x01 -#define DW_CFA_advance_loc1 0x02 -#define DW_CFA_advance_loc2 0x03 -#define DW_CFA_advance_loc4 0x04 -#define DW_CFA_offset_extended 0x05 -#define DW_CFA_restore_extended 0x06 -#define DW_CFA_undefined 0x07 -#define DW_CFA_same_value 0x08 -#define DW_CFA_register 0x09 -#define DW_CFA_remember_state 0x0a -#define DW_CFA_restore_state 0x0b -#define DW_CFA_def_cfa 0x0c -#define DW_CFA_def_cfa_register 0x0d -#define DW_CFA_def_cfa_offset 0x0e -#define DW_CFA_def_cfa_expression 0x0f -#define DW_CFA_expression 0x10 -#define DW_CFA_offset_extended_sf 0x11 -#define DW_CFA_def_cfa_sf 0x12 -#define DW_CFA_def_cfa_offset_sf 0x13 -#define DW_CFA_val_offset 0x14 -#define DW_CFA_val_offset_sf 0x15 -#define DW_CFA_val_expression 0x16 -#define DW_CFA_lo_user 0x1c -#define DW_CFA_high_user 0x3f +#define DW_VIS_local 0x01 +#define DW_VIS_exported 0x02 +#define DW_VIS_qualified 0x03 + +/* + * DWARF5 Section 7.11, Table 7.16: Virtuality encodings. + */ + +#define DW_VIRTUALITY_none 0x00 +#define DW_VIRTUALITY_virtual 0x01 +#define DW_VIRTUALITY_pure_virtual 0x02 + +/* + * DWARF5 Section 7.12, Table 7.17: Language encodings. + */ + +#define DW_LANG_C89 0x0001 +#define DW_LANG_C 0x0002 +#define DW_LANG_Ada83 0x0003 +#define DW_LANG_C_plus_plus 0x0004 +#define DW_LANG_Cobol74 0x0005 +#define DW_LANG_Cobol85 0x0006 +#define DW_LANG_Fortran77 0x0007 +#define DW_LANG_Fortran90 0x0008 +#define DW_LANG_Pascal83 0x0009 +#define DW_LANG_Modula2 0x000a +#define DW_LANG_Java 0x000b +#define DW_LANG_C99 0x000c +#define DW_LANG_Ada95 0x000d +#define DW_LANG_Fortran95 0x000e +#define DW_LANG_PLI 0x000f +#define DW_LANG_ObjC 0x0010 +#define DW_LANG_ObjC_plus_plus 0x0011 +#define DW_LANG_UPC 0x0012 +#define DW_LANG_D 0x0013 +#define DW_LANG_Python 0x0014 +#define DW_LANG_OpenCL 0x0015 +#define DW_LANG_Go 0x0016 +#define DW_LANG_Modula3 0x0017 +#define DW_LANG_Haskell 0x0018 +#define DW_LANG_C_plus_plus_03 0x0019 +#define DW_LANG_C_plus_plus_11 0x001a +#define DW_LANG_OCaml 0x001b +#define DW_LANG_Rust 0x001c +#define DW_LANG_C11 0x001d +#define DW_LANG_Swift 0x001e +#define DW_LANG_Julia 0x001f +#define DW_LANG_Dylan 0x0020 +#define DW_LANG_C_plus_plus_14 0x0021 +#define DW_LANG_Fortran03 0x0022 +#define DW_LANG_Fortran08 0x0023 +#define DW_LANG_RenderScript 0x0024 +#define DW_LANG_BLISS 0x0025 +#define DW_LANG_Kotlin 0x0026 +#define DW_LANG_Zig 0x0027 +#define DW_LANG_Crystal 0x0028 +#define DW_LANG_C_plus_plus_17 0x002a +#define DW_LANG_C_plus_plus_20 0x002b +#define DW_LANG_C17 0x002c +#define DW_LANG_Fortran18 0x002d +#define DW_LANG_Ada2005 0x002e +#define DW_LANG_Ada2012 0x002f +#define DW_LANG_HIP 0x0030 +#define DW_LANG_Assembly 0x0031 +#define DW_LANG_C_sharp 0x0032 +#define DW_LANG_Mojo 0x0033 +#define DW_LANG_lo_user 0x8000 +#define DW_LANG_Mips_Assembler 0x8001 +#define DW_LANG_hi_user 0xffff + +/* + * DWARF5 Section 7.14, Table 7.18: Identifier case encodings. + */ + +#define DW_ID_case_sensitive 0x00 +#define DW_ID_up_case 0x01 +#define DW_ID_down_case 0x02 +#define DW_ID_case_insensitive 0x03 + +/* + * DWARF5 Section 7.15, Table 7.19: Calling convention encodings. + */ + +#define DW_CC_normal 0x01 +#define DW_CC_program 0x02 +#define DW_CC_nocall 0x03 +#define DW_CC_pass_by_reference 0x04 +#define DW_CC_pass_by_value 0x05 +#define DW_CC_lo_user 0x40 +#define DW_CC_hi_user 0xff + +/* + * DWARF5 Section 7.16, Table 7.20: Inline encodings. + */ + +#define DW_INL_not_inlined 0x00 +#define DW_INL_inlined 0x01 +#define DW_INL_declared_not_inlined 0x02 +#define DW_INL_declared_inlined 0x03 + +/* + * DWARF5 Section 7.17, Table 7.21: Ordering encodings. + */ + +#define DW_ORD_row_major 0x00 +#define DW_ORD_col_major 0x01 + +/* + * DWARF5 Section 7.18, Table 7.22: Discriminant descriptor encodings. + */ + +#define DW_DSC_label 0x00 +#define DW_DSC_range 0x01 + +/* + * DWARF5 Section 7.19, Table 7.23: Name index attribute encodings. + */ + +#define DW_IDX_compile_unit 1 +#define DW_IDX_type_unit 2 +#define DW_IDX_die_offset 3 +#define DW_IDX_parent 4 +#define DW_IDX_type_hash 5 +#define DW_IDX_lo_user 0x2000 +#define DW_IDX_hi_user 0x3fff + +/* + * DWARF5 Section 7.20, Table 7.24: Defaulted attribute encodings. + */ + +#define DW_DEFAULTED_no 0x00 +#define DW_DEFAULTED_in_class 0x01 +#define DW_DEFAULTED_out_of_class 0x02 + +/* + * DWARF5 Section 7.22, Table 7.25: Line number standard opcode + * encodings. + */ + +#define DW_LNS_copy 0x01 +#define DW_LNS_advance_pc 0x02 +#define DW_LNS_advance_line 0x03 +#define DW_LNS_set_file 0x04 +#define DW_LNS_set_column 0x05 +#define DW_LNS_negate_stmt 0x06 +#define DW_LNS_set_basic_block 0x07 +#define DW_LNS_const_add_pc 0x08 +#define DW_LNS_fixed_advance_pc 0x09 +#define DW_LNS_set_prologue_end 0x0a +#define DW_LNS_set_epilogue_begin 0x0b +#define DW_LNS_set_isa 0x0c + +/* + * DWARF5 Section 7.22, Table 7.26: Line number extended opcode + * encodings. + */ + +#define DW_LNE_end_sequence 0x01 +#define DW_LNE_set_address 0x02 +#define DW_LNE_define_file 0x03 /* Marked reserved in DWARF5. */ +#define DW_LNE_lo_user 0x80 +#define DW_LNE_hi_user 0xff + +/* + * DWARF5 Section 7.22, Table 7.27: Line number header entry format + * encodings. + */ + +#define DW_LNCT_path 0x1 +#define DW_LNCT_directory_index 0x2 +#define DW_LNCT_timestamp 0x3 +#define DW_LNCT_size 0x4 +#define DW_LNCT_MD5 0x5 +#define DW_LNCT_lo_user 0x2000 +#define DW_LNCT_hi_user 0x3fff + +/* + * DWARF5 Section 7.23, Table 7.28: Macro information entry type + * encodings. + */ + +#define DW_MACRO_define 0x01 +#define DW_MACRO_undef 0x02 +#define DW_MACRO_start_file 0x03 +#define DW_MACRO_end_file 0x04 +#define DW_MACRO_define_strp 0x05 +#define DW_MACRO_undef_strp 0x06 +#define DW_MACRO_import 0x07 +#define DW_MACRO_define_sup 0x08 +#define DW_MACRO_undef_sup 0x09 +#define DW_MACRO_import_sup 0x0a +#define DW_MACRO_define_strx 0x0b +#define DW_MACRO_undef_strx 0x0c +#define DW_MACRO_lo_user 0xe0 +#define DW_MACRO_hi_user 0xff + +#define DW_MACINFO_define 0x01 +#define DW_MACINFO_undef 0x02 +#define DW_MACINFO_start_file 0x03 +#define DW_MACINFO_end_file 0x04 +#define DW_MACINFO_vendor_ext 0xff + +/* + * DWARF5 Section 7.24, Table 7.29: Call frame instruction encodings. + */ + +#define DW_CFA_advance_loc 0x40 +#define DW_CFA_offset 0x80 +#define DW_CFA_restore 0xc0 +#define DW_CFA_extended 0 + +#define DW_CFA_nop 0x00 +#define DW_CFA_set_loc 0x01 +#define DW_CFA_advance_loc1 0x02 +#define DW_CFA_advance_loc2 0x03 +#define DW_CFA_advance_loc4 0x04 +#define DW_CFA_offset_extended 0x05 +#define DW_CFA_restore_extended 0x06 +#define DW_CFA_undefined 0x07 +#define DW_CFA_same_value 0x08 +#define DW_CFA_register 0x09 +#define DW_CFA_remember_state 0x0a +#define DW_CFA_restore_state 0x0b +#define DW_CFA_def_cfa 0x0c +#define DW_CFA_def_cfa_register 0x0d +#define DW_CFA_def_cfa_offset 0x0e +#define DW_CFA_def_cfa_expression 0x0f +#define DW_CFA_expression 0x10 +#define DW_CFA_offset_extended_sf 0x11 +#define DW_CFA_def_cfa_sf 0x12 +#define DW_CFA_def_cfa_offset_sf 0x13 +#define DW_CFA_val_offset 0x14 +#define DW_CFA_val_offset_sf 0x15 +#define DW_CFA_val_expression 0x16 +#define DW_CFA_lo_user 0x1c +#define DW_CFA_high_user 0x3f + +/* + * DWARF5 Section 7.25, Table 7.30: Range list entry encoding values. + */ + +#define DW_RLE_end_of_list 0x00 +#define DW_RLE_base_addressx 0x01 +#define DW_RLE_startx_endx 0x02 +#define DW_RLE_startx_length 0x03 +#define DW_RLE_offset_pair 0x04 +#define DW_RLE_base_address 0x05 +#define DW_RLE_start_end 0x06 +#define DW_RLE_start_length 0x07 /* * LSB(Linux Standard Base) extension to DWARF2. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_abbrev.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_abbrev.c index 03874287c5f8..ed6be71ac299 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_abbrev.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_abbrev.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_abbrev.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_abbrev.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2009,2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_abbrev.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_abbrev.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); ELFTC_VCSID("Id: dwarf_abbrev.c 2072 2011-10-27 03:26:49Z jkoshy"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_comp_dir.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_comp_dir.3 index 3c0954e11b66..054c410fa292 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_comp_dir.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_comp_dir.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_comp_dir.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_comp_dir.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_const_value_string.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_const_value_string.3 index 4e05c666fa71..322c7c8605ee 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_const_value_string.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_const_value_string.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_const_value_string.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_const_value_string.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_dataref.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_dataref.3 index a5694497bf7a..c851baa033b7 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_dataref.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_dataref.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_dataref.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_dataref.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_flag.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_flag.3 index d5f0875f171e..ca24e235821b 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_flag.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_flag.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_flag.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_flag.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_location_expr.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_location_expr.3 index c5ccdf8c1e77..9e42ae6bafcd 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_location_expr.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_location_expr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_location_expr.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_location_expr.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_name.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_name.3 index 921c236a4674..0c138359f968 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_name.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_name.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_name.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_name.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_producer.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_producer.3 index 69846ba240e8..8704013be139 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_producer.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_producer.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_producer.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_producer.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_ref_address.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_ref_address.3 index 186a3e3a9baa..8a0bfedbe549 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_ref_address.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_ref_address.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_ref_address.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_ref_address.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_reference.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_reference.3 index 5ffcd8d25099..bd3f8090f7da 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_reference.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_reference.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_reference.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_reference.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_signed_const.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_signed_const.3 index cdc155a58f35..76c480da6cf2 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_signed_const.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_signed_const.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_signed_const.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_signed_const.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_string.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_string.3 index ac4f74c16684..3618ea81a255 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_string.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_string.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_string.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_string.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_targ_address.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_targ_address.3 index 6e2c5ee13b2a..b2dcde54bd81 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_targ_address.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_AT_targ_address.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_AT_targ_address.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_AT_targ_address.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_arange.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_arange.3 index e725766ac441..eb262207b732 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_arange.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_arange.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_arange.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_arange.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_die_to_debug.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_die_to_debug.3 index 22ce26138f83..78bae96fb27a 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_die_to_debug.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_die_to_debug.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_die_to_debug.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_die_to_debug.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_directory_decl.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_directory_decl.3 index 7023a1631d4c..1b81b42a89e9 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_directory_decl.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_directory_decl.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_directory_decl.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_directory_decl.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_expr_addr.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_expr_addr.3 index 305d8f2ec8c0..39a4e420038d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_expr_addr.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_expr_addr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_expr_addr.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_expr_addr.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_expr_gen.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_expr_gen.3 index 483b1356c303..3cd6e1ecac00 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_expr_gen.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_expr_gen.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_expr_gen.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_expr_gen.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_fde_inst.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_fde_inst.3 index d6a6217ff877..8deedd109d4d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_fde_inst.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_fde_inst.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_fde_inst.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_fde_inst.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_file_decl.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_file_decl.3 index 460078e4c449..dae423471c14 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_file_decl.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_file_decl.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_file_decl.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_file_decl.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_frame_cie.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_frame_cie.3 index 81fe609b6343..f8508bb22c88 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_frame_cie.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_frame_cie.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_frame_cie.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_frame_cie.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_frame_fde.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_frame_fde.3 index 917ca9ee0385..ce8ef990cb85 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_frame_fde.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_frame_fde.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_frame_fde.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_frame_fde.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_funcname.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_funcname.3 index 683b18862d30..5a8459654ae7 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_funcname.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_funcname.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_funcname.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_funcname.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_line_entry.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_line_entry.3 index 9d56dee5073d..848f7ed23d35 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_line_entry.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_line_entry.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_line_entry.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_line_entry.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_pubname.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_pubname.3 index 3b9576f6d0de..e7698bb4edf3 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_pubname.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_pubname.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_pubname.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_pubname.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_typename.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_typename.3 index 6fbc2f3c73d5..a30889bd2484 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_typename.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_typename.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_typename.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_typename.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_varname.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_varname.3 index 328038fb20c3..441b137ebe12 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_varname.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_varname.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_varname.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_varname.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_weakname.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_weakname.3 index d255d3621391..8bb74fba2567 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_weakname.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_add_weakname.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_add_weakname.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_add_weakname.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_arange.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_arange.c index 266f2a352b41..be75ad33f827 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_arange.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_arange.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_arange.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_arange.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2009,2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_arange.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_arange.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); ELFTC_VCSID("Id: dwarf_arange.c 2072 2011-10-27 03:26:49Z jkoshy"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attr.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attr.3 index 18054a6e67cb..2d645b22ec74 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attr.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_attr.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_attr.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2010 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attr.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attr.c index 3f7de89586fb..21e732f507fe 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attr.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attr.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_attr.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_attr.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -29,7 +29,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_attr.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_attr.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); ELFTC_VCSID("Id: dwarf_attr.c 3064 2014-06-06 19:35:55Z kaiwang27"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrlist.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrlist.3 index 4052870293f9..0165cfb559d0 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrlist.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrlist.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_attrlist.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_attrlist.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2010 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attroffset.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attroffset.3 index 4f1e1a59b8af..4f4b9ac959a4 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attroffset.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attroffset.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_attroffset.3,v 1.4 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_attroffset.3,v 1.5 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2014 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrval.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrval.c index 3dbca5c4c839..49555958832d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrval.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrval.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_attrval.c,v 1.11 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_attrval.c,v 1.12 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -28,8 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_attrval.c,v 1.11 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: dwarf_attrval.c 3159 2015-02-15 21:43:27Z emaste"); +ELFTC_VCSID("Id: dwarf_attrval.c 4015 2023-10-15 02:46:33Z kaiwang27"); int dwarf_attrval_flag(Dwarf_Die die, Dwarf_Half attr, Dwarf_Bool *valp, Dwarf_Error *err) @@ -145,9 +144,10 @@ int dwarf_attrval_unsigned(Dwarf_Die die, Dwarf_Half attr, Dwarf_Unsigned *valp, Dwarf_Error *err) { Dwarf_Attribute at; - Dwarf_Debug dbg; Dwarf_Die die1; - int rv; + Dwarf_Unsigned val; + Dwarf_Debug dbg; + int first; dbg = die != NULL ? die->die_dbg : NULL; @@ -157,31 +157,41 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dwarf_Half attr, Dwarf_Unsigned *valp, Dwa } *valp = 0; - if ((at = _dwarf_attr_find(die, attr)) == NULL && - ((at = _dwarf_attr_find(die, DW_AT_specification)) != NULL || - (at = _dwarf_attr_find(die, DW_AT_abstract_origin)) != NULL)) { + + die1 = NULL; + for (;;) { + if ((at = _dwarf_attr_find(die, attr)) != NULL || + attr != DW_AT_type) + break; + if ((at = _dwarf_attr_find(die, DW_AT_abstract_origin)) == + NULL && + (at = _dwarf_attr_find(die, DW_AT_specification)) == NULL) + break; + switch (at->at_form) { case DW_FORM_ref1: case DW_FORM_ref2: case DW_FORM_ref4: case DW_FORM_ref8: case DW_FORM_ref_udata: - if ((die1 = _dwarf_die_find(die, at->u[0].u64)) == NULL) - { - at = NULL; - break; + val = at->u[0].u64; + first = (die1 == NULL); + die1 = _dwarf_die_find(die, val); + if (!first) + dwarf_dealloc(dbg, die, DW_DLA_DIE); + if (die1 == NULL) { + DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); + return (DW_DLV_NO_ENTRY); } - rv = dwarf_attrval_unsigned(die1, attr, valp, err); - if (die != die1) - dwarf_dealloc(dbg, die1, DW_DLA_DIE); - return rv; + die = die1; + break; default: DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD); return (DW_DLV_ERROR); } } - if (at == NULL) { + if (at == NULL) { DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); return (DW_DLV_NO_ENTRY); } @@ -198,12 +208,18 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dwarf_Half attr, Dwarf_Unsigned *valp, Dwa case DW_FORM_ref4: case DW_FORM_ref8: case DW_FORM_ref_udata: + case DW_FORM_sec_offset: *valp = at->u[0].u64; break; default: + if (die1 != NULL) + dwarf_dealloc(dbg, die1, DW_DLA_DIE); DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD); return (DW_DLV_ERROR); } + if (die1 != NULL) + dwarf_dealloc(dbg, die1, DW_DLA_DIE); + return (DW_DLV_OK); } diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3 index 3f03d380ec98..4f4644088129 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_attrval_signed.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_attrval_signed.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_child.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_child.3 index f9c2e88b3d30..45aba7571870 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_child.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_child.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_child.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_child.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2010,2014 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_cu.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_cu.c index f95472d53369..66af286345af 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_cu.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_cu.c @@ -1,8 +1,8 @@ -/* $NetBSD: dwarf_cu.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_cu.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2014 Kai Wang + * Copyright (c) 2014,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,16 +29,17 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_cu.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: dwarf_cu.c 3041 2014-05-18 15:11:03Z kaiwang27"); +__RCSID("$NetBSD: dwarf_cu.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); +ELFTC_VCSID("Id: dwarf_cu.c 4013 2023-10-14 22:40:50Z kaiwang27"); int -dwarf_next_cu_header_c(Dwarf_Debug dbg, Dwarf_Bool is_info, +dwarf_next_cu_header_d(Dwarf_Debug dbg, Dwarf_Bool is_info, Dwarf_Unsigned *cu_length, Dwarf_Half *cu_version, Dwarf_Off *cu_abbrev_offset, Dwarf_Half *cu_pointer_size, Dwarf_Half *cu_offset_size, Dwarf_Half *cu_extension_size, Dwarf_Sig8 *type_signature, Dwarf_Unsigned *type_offset, - Dwarf_Unsigned *cu_next_offset, Dwarf_Error *error) + Dwarf_Unsigned *cu_next_offset, Dwarf_Half *cu_type, + Dwarf_Error *error) { Dwarf_CU cu; int ret; @@ -110,9 +111,26 @@ dwarf_next_cu_header_c(Dwarf_Debug dbg, Dwarf_Bool is_info, *type_offset = cu->cu_type_offset; } + if (cu_type) + *cu_type = cu->cu_unit_type; + return (DW_DLV_OK); } +int +dwarf_next_cu_header_c(Dwarf_Debug dbg, Dwarf_Bool is_info, + Dwarf_Unsigned *cu_length, Dwarf_Half *cu_version, + Dwarf_Off *cu_abbrev_offset, Dwarf_Half *cu_pointer_size, + Dwarf_Half *cu_offset_size, Dwarf_Half *cu_extension_size, + Dwarf_Sig8 *type_signature, Dwarf_Unsigned *type_offset, + Dwarf_Unsigned *cu_next_offset, Dwarf_Error *error) +{ + + return (dwarf_next_cu_header_d(dbg, 1, cu_length, cu_version, + cu_abbrev_offset, cu_pointer_size, cu_offset_size, + cu_extension_size, NULL, NULL, cu_next_offset, NULL, error)); +} + int dwarf_next_cu_header_b(Dwarf_Debug dbg, Dwarf_Unsigned *cu_length, diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_dealloc.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_dealloc.3 index 96401829b381..f511689b7eda 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_dealloc.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_dealloc.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_dealloc.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_dealloc.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2009-2011 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_dealloc.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_dealloc.c index 633748667041..7a95fcfcfa2e 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_dealloc.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_dealloc.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_dealloc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_dealloc.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_dealloc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_dealloc.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); ELFTC_VCSID("Id: dwarf_dealloc.c 2073 2011-10-27 03:30:47Z jkoshy"); void diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_def_macro.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_def_macro.3 index 53dc0da27c60..67a63061fa55 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_def_macro.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_def_macro.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_def_macro.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_def_macro.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_die.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_die.c index 9c0b2b5ace5d..7b918497f64c 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_die.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_die.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_die.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_die.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -29,7 +29,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_die.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_die.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); ELFTC_VCSID("Id: dwarf_die.c 3039 2014-05-18 15:10:56Z kaiwang27"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_die_abbrev_code.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_die_abbrev_code.3 index a104eb2e2dfa..5eb117532d38 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_die_abbrev_code.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_die_abbrev_code.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_die_abbrev_code.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_die_abbrev_code.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2010 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_die_link.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_die_link.3 index a05491d744a3..795a31cb18a3 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_die_link.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_die_link.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_die_link.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_die_link.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_diename.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_diename.3 index 11fe2496f0e7..da4d5e9e889e 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_diename.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_diename.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_diename.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_diename.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2010 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_dieoffset.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_dieoffset.3 index 1323cadda174..0aa0f8ab705f 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_dieoffset.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_dieoffset.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_dieoffset.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_dieoffset.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2010,2014 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_dump.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_dump.c index 8f164c96465c..7e688b27b3c0 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_dump.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_dump.c @@ -1,8 +1,8 @@ -/* $NetBSD: dwarf_dump.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_dump.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009 Kai Wang + * Copyright (c) 2009,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,8 +29,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_dump.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: dwarf_dump.c 3052 2014-05-26 20:36:24Z kaiwang27"); +__RCSID("$NetBSD: dwarf_dump.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); +ELFTC_VCSID("Id: dwarf_dump.c 4012 2023-10-13 01:15:02Z kaiwang27"); int dwarf_get_ACCESS_name(unsigned access, const char **s) @@ -65,6 +65,10 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_accessibility"; break; case DW_AT_address_class: *s = "DW_AT_address_class"; break; + case DW_AT_addr_base: + *s = "DW_AT_addr_base"; break; + case DW_AT_alignment: + *s = "DW_AT_alignment"; break; case DW_AT_artificial: *s = "DW_AT_artificial"; break; case DW_AT_allocated: @@ -87,6 +91,32 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_byte_stride"; break; case DW_AT_calling_convention: *s = "DW_AT_calling_convention"; break; + case DW_AT_call_all_calls: + *s = "DW_AT_call_all_calls"; break; + case DW_AT_call_all_source_calls: + *s = "DW_AT_call_all_source_calls"; break; + case DW_AT_call_all_tail_calls: + *s = "DW_AT_call_all_tail_calls"; break; + case DW_AT_call_data_location: + *s = "DW_AT_call_data_location"; break; + case DW_AT_call_data_value: + *s = "DW_AT_call_data_value"; break; + case DW_AT_call_origin: + *s = "DW_AT_call_origin"; break; + case DW_AT_call_parameter: + *s = "DW_AT_call_parameter"; break; + case DW_AT_call_pc: + *s = "DW_AT_call_pc"; break; + case DW_AT_call_return_pc: + *s = "DW_AT_call_return_pc"; break; + case DW_AT_call_tail_call: + *s = "DW_AT_call_tail_call"; break; + case DW_AT_call_target: + *s = "DW_AT_call_target"; break; + case DW_AT_call_target_clobbered: + *s = "DW_AT_call_target_clobbered"; break; + case DW_AT_call_value: + *s = "DW_AT_call_value"; break; case DW_AT_common_reference: *s = "DW_AT_common_reference"; break; case DW_AT_comp_dir: @@ -125,6 +155,10 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_decimal_scale"; break; case DW_AT_decimal_sign: *s = "DW_AT_decimal_sign"; break; + case DW_AT_defaulted: + *s = "DW_AT_defaulted"; break; + case DW_AT_deleted: + *s = "DW_AT_deleted"; break; case DW_AT_description: *s = "DW_AT_description"; break; case DW_AT_digit_count: @@ -135,6 +169,8 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_discr_list"; break; case DW_AT_discr_value: *s = "DW_AT_discr_value"; break; + case DW_AT_dwo_name: + *s = "DW_AT_dwo_name"; break; case DW_AT_element_list: *s = "DW_AT_element_list"; break; case DW_AT_encoding: @@ -149,6 +185,8 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_extension"; break; case DW_AT_explicit: *s = "DW_AT_explicit"; break; + case DW_AT_export_symbols: + *s = "DW_AT_export_symbols"; break; case DW_AT_endianity: *s = "DW_AT_endianity"; break; case DW_AT_elemental: @@ -177,10 +215,14 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_lo_user"; break; case DW_AT_location: *s = "DW_AT_location"; break; + case DW_AT_loclists_base: + *s = "DW_AT_loclists_base"; break; case DW_AT_low_pc: *s = "DW_AT_low_pc"; break; case DW_AT_lower_bound: *s = "DW_AT_lower_bound"; break; + case DW_AT_macros: + *s = "DW_AT_macros"; break; case DW_AT_macro_info: *s = "DW_AT_macro_info"; break; case DW_AT_main_subprogram: @@ -193,6 +235,8 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_name"; break; case DW_AT_namelist_item: *s = "DW_AT_namelist_item"; break; + case DW_AT_noreturn: + *s = "DW_AT_noreturn"; break; case DW_AT_ordering: *s = "DW_AT_ordering"; break; case DW_AT_object_pointer: @@ -207,12 +251,20 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_picture_string"; break; case DW_AT_pure: *s = "DW_AT_pure"; break; + case DW_AT_reference: + *s = "DW_AT_reference"; break; case DW_AT_return_addr: *s = "DW_AT_return_addr"; break; case DW_AT_ranges: *s = "DW_AT_ranges"; break; + case DW_AT_rank: + *s = "DW_AT_rank"; break; case DW_AT_recursive: *s = "DW_AT_recursive"; break; + case DW_AT_rnglists_base: + *s = "DW_AT_rnglists_base"; break; + case DW_AT_rvalue_reference: + *s = "DW_AT_rvalue_reference"; break; case DW_AT_segment: *s = "DW_AT_segment"; break; case DW_AT_sibling: @@ -229,6 +281,12 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_stmt_list"; break; case DW_AT_string_length: *s = "DW_AT_string_length"; break; + case DW_AT_string_length_bit_size: + *s = "DW_AT_string_length_bit_size"; break; + case DW_AT_string_length_byte_size: + *s = "DW_AT_string_length_byte_size"; break; + case DW_AT_str_offsets_base: + *s = "DW_AT_str_offsets_base"; break; case DW_AT_subscr_data: *s = "DW_AT_subscr_data"; break; case DW_AT_small: @@ -265,6 +323,40 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_body_begin"; break; case DW_AT_body_end: *s = "DW_AT_body_end"; break; + case DW_AT_MIPS_fde: + *s = "DW_AT_MIPS_fde"; break; + case DW_AT_MIPS_loop_begin: + *s = "DW_AT_MIPS_loop_begin"; break; + case DW_AT_MIPS_tail_loop_begin: + *s = "DW_AT_MIPS_tail_loop_begin"; break; + case DW_AT_MIPS_epilog_begin: + *s = "DW_AT_MIPS_epilog_begin"; break; + case DW_AT_MIPS_loop_unroll_factor: + *s = "DW_AT_MIPS_loop_unroll_factor"; break; + case DW_AT_MIPS_software_pipeline_depth: + *s = "DW_AT_MIPS_software_pipeline_depth"; break; + case DW_AT_MIPS_linkage_name: + *s = "DW_AT_MIPS_linkage_name"; break; + case DW_AT_MIPS_stride: + *s = "DW_AT_MIPS_stride"; break; + case DW_AT_MIPS_abstract_name: + *s = "DW_AT_MIPS_abstract_name"; break; + case DW_AT_MIPS_clone_origin: + *s = "DW_AT_MIPS_clone_origin"; break; + case DW_AT_MIPS_has_inlines: + *s = "DW_AT_MIPS_has_inlines"; break; + case DW_AT_MIPS_stride_byte: + *s = "DW_AT_MIPS_stride_byte"; break; + case DW_AT_MIPS_stride_elem: + *s = "DW_AT_MIPS_stride_elem"; break; + case DW_AT_MIPS_ptr_dopetype: + *s = "DW_AT_MIPS_ptr_dopetype"; break; + case DW_AT_MIPS_allocatable_dopetype: + *s = "DW_AT_MIPS_allocatable_dopetype"; break; + case DW_AT_MIPS_assumed_shape_dopetype: + *s = "DW_AT_MIPS_assumed_shape_dopetype"; break; + case DW_AT_MIPS_assumed_size: + *s = "DW_AT_MIPS_assumed_size"; break; case DW_AT_GNU_vector: *s = "DW_AT_GNU_vector"; break; case DW_AT_GNU_guarded_by: @@ -301,6 +393,32 @@ dwarf_get_AT_name(unsigned attr, const char **s) *s = "DW_AT_GNU_all_call_sites"; break; case DW_AT_GNU_all_source_call_sites: *s = "DW_AT_GNU_all_source_call_sites"; break; + case DW_AT_APPLE_optimized: + *s = "DW_AT_APPLE_optimized"; break; + case DW_AT_APPLE_flags: + *s = "DW_AT_APPLE_flags"; break; + case DW_AT_APPLE_isa: + *s = "DW_AT_APPLE_isa"; break; + case DW_AT_APPLE_block: + *s = "DW_AT_APPLE_block"; break; + case DW_AT_APPLE_major_runtime_vers: + *s = "DW_AT_APPLE_major_runtime_vers"; break; + case DW_AT_APPLE_runtime_class: + *s = "DW_AT_APPLE_runtime_class"; break; + case DW_AT_APPLE_omit_frame_ptr: + *s = "DW_AT_APPLE_omit_frame_ptr"; break; + case DW_AT_APPLE_property_name: + *s = "DW_AT_APPLE_property_name"; break; + case DW_AT_APPLE_property_getter: + *s = "DW_AT_APPLE_property_getter"; break; + case DW_AT_APPLE_property_setter: + *s = "DW_AT_APPLE_property_setter"; break; + case DW_AT_APPLE_property_attribute: + *s = "DW_AT_APPLE_property_attribute"; break; + case DW_AT_APPLE_objc_complete_type: + *s = "DW_AT_APPLE_objc_complete_type"; break; + case DW_AT_APPLE_property: + *s = "DW_AT_APPLE_property"; break; default: return (DW_DLV_NO_ENTRY); } @@ -477,6 +595,16 @@ dwarf_get_FORM_name(unsigned form, const char **s) switch (form) { case DW_FORM_addr: *s = "DW_FORM_addr"; break; + case DW_FORM_addrx: + *s = "DW_FORM_addrx"; break; + case DW_FORM_addrx1: + *s = "DW_FORM_addrx1"; break; + case DW_FORM_addrx2: + *s = "DW_FORM_addrx2"; break; + case DW_FORM_addrx3: + *s = "DW_FORM_addrx3"; break; + case DW_FORM_addrx4: + *s = "DW_FORM_addrx4"; break; case DW_FORM_block: *s = "DW_FORM_block"; break; case DW_FORM_block1: @@ -493,14 +621,22 @@ dwarf_get_FORM_name(unsigned form, const char **s) *s = "DW_FORM_data4"; break; case DW_FORM_data8: *s = "DW_FORM_data8"; break; + case DW_FORM_data16: + *s = "DW_FORM_data16"; break; case DW_FORM_exprloc: *s = "DW_FORM_exprloc"; break; case DW_FORM_flag: *s = "DW_FORM_flag"; break; case DW_FORM_flag_present: *s = "DW_FORM_flag_present"; break; + case DW_FORM_implicit_const: + *s = "DW_FORM_implicit_const"; break; case DW_FORM_indirect: *s = "DW_FORM_indirect"; break; + case DW_FORM_line_strp: + *s = "DW_FORM_line_strp"; break; + case DW_FORM_loclistx: + *s = "DW_FORM_loclistx"; break; case DW_FORM_ref1: *s = "DW_FORM_ref1"; break; case DW_FORM_ref2: @@ -513,8 +649,14 @@ dwarf_get_FORM_name(unsigned form, const char **s) *s = "DW_FORM_ref_addr"; break; case DW_FORM_ref_sig8: *s = "DW_FORM_ref_sig8"; break; + case DW_FORM_ref_sup4: + *s = "DW_FORM_ref_sup4"; break; + case DW_FORM_ref_sup8: + *s = "DW_FORM_ref_sup8"; break; case DW_FORM_ref_udata: *s = "DW_FORM_ref_udata"; break; + case DW_FORM_rnglistx: + *s = "DW_FORM_rnglistx"; break; case DW_FORM_sdata: *s = "DW_FORM_sdata"; break; case DW_FORM_sec_offset: @@ -523,6 +665,18 @@ dwarf_get_FORM_name(unsigned form, const char **s) *s = "DW_FORM_string"; break; case DW_FORM_strp: *s = "DW_FORM_strp"; break; + case DW_FORM_strp_sup: + *s = "DW_FORM_strp_sup"; break; + case DW_FORM_strx: + *s = "DW_FORM_strx"; break; + case DW_FORM_strx1: + *s = "DW_FORM_strx1"; break; + case DW_FORM_strx2: + *s = "DW_FORM_strx2"; break; + case DW_FORM_strx3: + *s = "DW_FORM_strx3"; break; + case DW_FORM_strx4: + *s = "DW_FORM_strx4"; break; case DW_FORM_udata: *s = "DW_FORM_udata"; break; default: @@ -548,7 +702,7 @@ dwarf_get_DS_name(unsigned ds, const char **s) case DW_DS_leading_separate: *s = "DW_DS_leading_separate"; break; case DW_DS_trailing_separate: - *s = "DW_DS_trailing_separate"; + *s = "DW_DS_trailing_separate"; break; default: return (DW_DLV_NO_ENTRY); } @@ -731,8 +885,46 @@ dwarf_get_LANG_name(unsigned lang, const char **s) *s = "DW_LANG_UPC"; break; case DW_LANG_D: *s = "DW_LANG_D"; break; + case DW_LANG_Python: + *s = "DW_LANG_Python"; break; + case DW_LANG_OpenCL: + *s = "DW_LANG_OpenCL"; break; + case DW_LANG_Go: + *s = "DW_LANG_Go"; break; + case DW_LANG_Modula3: + *s = "DW_LANG_Modula3"; break; + case DW_LANG_Haskell: + *s = "DW_LANG_Haskell"; break; + case DW_LANG_C_plus_plus_03: + *s = "DW_LANG_C_plus_plus_03"; break; + case DW_LANG_C_plus_plus_11: + *s = "DW_LANG_C_plus_plus_11"; break; + case DW_LANG_OCaml: + *s = "DW_LANG_OCaml"; break; + case DW_LANG_Rust: + *s = "DW_LANG_Rust"; break; + case DW_LANG_C11: + *s = "DW_LANG_C11"; break; + case DW_LANG_Swift: + *s = "DW_LANG_Swift"; break; + case DW_LANG_Julia: + *s = "DW_LANG_Julia"; break; + case DW_LANG_Dylan: + *s = "DW_LANG_Dylan"; break; + case DW_LANG_C_plus_plus_14: + *s = "DW_LANG_C_plus_plus_14"; break; + case DW_LANG_Fortran03: + *s = "DW_LANG_Fortran03"; break; + case DW_LANG_Fortran08: + *s = "DW_LANG_Fortran08"; break; + case DW_LANG_RenderScript: + *s = "DW_LANG_RenderScript"; break; + case DW_LANG_BLISS: + *s = "DW_LANG_BLISS"; break; case DW_LANG_lo_user: *s = "DW_LANG_lo_user"; break; + case DW_LANG_Mips_Assembler: + *s = "DW_LANG_Mips_Assembler"; break; case DW_LANG_hi_user: *s = "DW_LANG_hi_user"; break; default: @@ -1205,12 +1397,20 @@ dwarf_get_TAG_name(unsigned tag, const char **s) *s = "DW_TAG_access_declaration"; break; case DW_TAG_array_type: *s = "DW_TAG_array_type"; break; + case DW_TAG_atomic_type: + *s = "DW_TAG_atomic_type"; break; case DW_TAG_base_type: *s = "DW_TAG_base_type"; break; + case DW_TAG_call_site: + *s = "DW_TAG_call_site"; break; + case DW_TAG_call_site_parameter: + *s = "DW_TAG_call_site_parameter"; break; case DW_TAG_catch_block: *s = "DW_TAG_catch_block"; break; case DW_TAG_class_type: *s = "DW_TAG_class_type"; break; + case DW_TAG_coarray_type: + *s = "DW_TAG_coarray_type"; break; case DW_TAG_common_block: *s = "DW_TAG_common_block"; break; case DW_TAG_common_inclusion: @@ -1225,6 +1425,8 @@ dwarf_get_TAG_name(unsigned tag, const char **s) *s = "DW_TAG_constant"; break; case DW_TAG_dwarf_procedure: *s = "DW_TAG_dwarf_procedure"; break; + case DW_TAG_dynamic_type: + *s = "DW_TAG_dynamic_type"; break; case DW_TAG_entry_point: *s = "DW_TAG_entry_point"; break; case DW_TAG_enumeration_type: @@ -1235,6 +1437,10 @@ dwarf_get_TAG_name(unsigned tag, const char **s) *s = "DW_TAG_formal_parameter"; break; case DW_TAG_friend: *s = "DW_TAG_friend"; break; + case DW_TAG_generic_subrange: + *s = "DW_TAG_generic_subrange"; break; + case DW_TAG_immutable_type: + *s = "DW_TAG_immutable_type"; break; case DW_TAG_imported_declaration: *s = "DW_TAG_imported_declaration"; break; case DW_TAG_imported_module: @@ -1279,6 +1485,8 @@ dwarf_get_TAG_name(unsigned tag, const char **s) *s = "DW_TAG_set_type"; break; case DW_TAG_shared_type: *s = "DW_TAG_shared_type"; break; + case DW_TAG_skeleton_unit: + *s = "DW_TAG_skeleton_unit"; break; case DW_TAG_string_type: *s = "DW_TAG_string_type"; break; case DW_TAG_structure_type: @@ -1346,6 +1554,36 @@ dwarf_get_TAG_name(unsigned tag, const char **s) return (DW_DLV_OK); } +int +dwarf_get_UT_name(unsigned ut, const char **s) +{ + + assert(s != NULL); + + switch (ut) { + case DW_UT_compile: + *s = "DW_UT_compile"; break; + case DW_UT_type: + *s = "DW_UT_type"; break; + case DW_UT_partial: + *s = "DW_UT_partial"; break; + case DW_UT_skeleton: + *s = "DW_UT_skeleton"; break; + case DW_UT_split_compile: + *s = "DW_UT_split_compile"; break; + case DW_UT_split_type: + *s = "DW_UT_split_type"; break; + case DW_UT_lo_user: + *s = "DW_UT_lo_user"; break; + case DW_UT_hi_user: + *s = "DW_UT_hi_user"; break; + default: + return (DW_DLV_NO_ENTRY); + } + + return (DW_DLV_OK); +} + int dwarf_get_VIRTUALITY_name(unsigned vir, const char **s) { diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_end_macro_file.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_end_macro_file.3 index 179046ac8ca9..643719397971 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_end_macro_file.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_end_macro_file.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_end_macro_file.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_end_macro_file.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_errmsg.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_errmsg.3 index 9c20996e570e..051c6e850865 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_errmsg.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_errmsg.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_errmsg.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_errmsg.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2009 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_errmsg.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_errmsg.c index 14517665c3d1..c41fd4e6aecd 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_errmsg.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_errmsg.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_errmsg.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_errmsg.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_errmsg.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_errmsg.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); ELFTC_VCSID("Id: dwarf_errmsg.c 2975 2014-01-21 20:08:04Z kaiwang27"); static const char *_libdwarf_errors[] = { diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_errno.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_errno.3 index 94268dea23af..a8076c11c8c4 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_errno.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_errno.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_errno.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_errno.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2009,2010 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_expand_frame_instructions.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_expand_frame_instructions.3 index 0ddfcb2d7a48..d5bfea395b57 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_expand_frame_instructions.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_expand_frame_instructions.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_expand_frame_instructions.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_expand_frame_instructions.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_expr_current_offset.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_expr_current_offset.3 index f68daf37d484..2ebd79dde081 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_expr_current_offset.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_expr_current_offset.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_expr_current_offset.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_expr_current_offset.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_expr_into_block.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_expr_into_block.3 index c5ae0d317a42..5dc65dc3cd34 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_expr_into_block.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_expr_into_block.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_expr_into_block.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_expr_into_block.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_fde_cfa_offset.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_fde_cfa_offset.3 index 4390a08cb47e..207560294cbc 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_fde_cfa_offset.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_fde_cfa_offset.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_fde_cfa_offset.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_fde_cfa_offset.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_find_macro_value_start.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_find_macro_value_start.3 index 239071db4716..d8d2552a899e 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_find_macro_value_start.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_find_macro_value_start.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_find_macro_value_start.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_find_macro_value_start.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_finish.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_finish.3 index 81b1e28c8926..36974ffedb12 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_finish.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_finish.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_finish.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_finish.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2009,2011 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_finish.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_finish.c index 3a27fde73fd8..f6713b533c5e 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_finish.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_finish.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_finish.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_finish.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2009 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_finish.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_finish.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); ELFTC_VCSID("Id: dwarf_finish.c 2073 2011-10-27 03:30:47Z jkoshy"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_form.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_form.c index d9d03c679e15..456ddc4d824d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_form.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_form.c @@ -1,8 +1,8 @@ -/* $NetBSD: dwarf_form.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_form.c,v 1.5 2024/03/03 17:37:30 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009,2010 Kai Wang + * Copyright (c) 2009,2010,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,8 +29,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_form.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: dwarf_form.c 2073 2011-10-27 03:30:47Z jkoshy"); +__RCSID("$NetBSD: dwarf_form.c,v 1.5 2024/03/03 17:37:30 christos Exp $"); +ELFTC_VCSID("Id: dwarf_form.c 4016 2023-10-15 05:39:46Z kaiwang27"); int dwarf_hasform(Dwarf_Attribute at, Dwarf_Half form, Dwarf_Bool *return_hasform, @@ -390,6 +390,7 @@ dwarf_formstring(Dwarf_Attribute at, char **return_string, ret = DW_DLV_OK; break; case DW_FORM_strp: + case DW_FORM_line_strp: *return_string = (char *) at->u[1].s; ret = DW_DLV_OK; break; diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formaddr.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formaddr.3 index 761dd283db94..9df65b550b87 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formaddr.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formaddr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_formaddr.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_formaddr.3,v 1.6 2024/03/03 17:37:30 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formblock.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formblock.3 index 0cccd1935166..c525f9141362 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formblock.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formblock.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_formblock.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_formblock.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formexprloc.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formexprloc.3 index d6006a8738c8..eacb383734fc 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formexprloc.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formexprloc.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_formexprloc.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_formexprloc.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formflag.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formflag.3 index 9538911cdd3a..af8412292f0e 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formflag.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formflag.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_formflag.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_formflag.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formref.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formref.3 index c5713697acdd..3299e4a59317 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formref.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formref.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_formref.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_formref.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formsig8.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formsig8.3 index 2c89c08c7840..87c2fe060522 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formsig8.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formsig8.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_formsig8.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_formsig8.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formstring.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formstring.3 index 77bf9440c4cf..300be2efeb97 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formstring.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formstring.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_formstring.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_formstring.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formudata.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formudata.3 index d63c424e2ac5..2e3b3639bfdd 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_formudata.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_formudata.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_formudata.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_formudata.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_frame.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_frame.c index f2475e1cd614..05b51ba732a0 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_frame.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_frame.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_frame.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_frame.c,v 1.5 2024/03/03 17:37:31 christos Exp $ */ /*- * Copyright (c) 2009,2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_frame.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_frame.c,v 1.5 2024/03/03 17:37:31 christos Exp $"); ELFTC_VCSID("Id: dwarf_frame.c 3106 2014-12-19 16:00:58Z kaiwang27"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_funcs.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_funcs.m4 index 91d47456173e..914695b5fda6 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_funcs.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_funcs.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_funcs.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_funcs.m4,v 1.5 2024/03/03 17:37:31 christos Exp $ /*- * Copyright (c) 2009 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_funcs.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_funcs.m4,v 1.5 2024/03/03 17:37:31 christos Exp $"); ELFTC_VCSID("Id: dwarf_funcs.m4 2073 2011-10-27 03:30:47Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_AT_name.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_AT_name.3 index 614b7dd9a16c..3e0590256c14 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_AT_name.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_AT_name.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_AT_name.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_AT_name.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev.3 index c9513bc226ee..f74bdaddef29 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_abbrev.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_abbrev.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_children_flag.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_children_flag.3 index a4c045462cd3..998fa1d129cb 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_children_flag.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_children_flag.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_abbrev_children_flag.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_abbrev_children_flag.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_code.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_code.3 index 8cfc06ab1e9e..775ea911f58c 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_code.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_code.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_abbrev_code.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_abbrev_code.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_entry.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_entry.3 index 164efae89807..0ed2a9aa40ac 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_entry.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_entry.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_abbrev_entry.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_abbrev_entry.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_tag.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_tag.3 index 2eca3602c669..bccc09f2c5c8 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_tag.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_abbrev_tag.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_abbrev_tag.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_abbrev_tag.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_address_size.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_address_size.3 index 24ca9b071040..90244a5fc8a8 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_address_size.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_address_size.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_address_size.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_address_size.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_arange.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_arange.3 index b9a06834b1a0..0bfe0ad4444b 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_arange.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_arange.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_arange.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_arange.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_arange_info.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_arange_info.3 index 81857a708847..166b48dd7b2c 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_arange_info.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_arange_info.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_arange_info.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_arange_info.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_aranges.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_aranges.3 index dfe38a09a253..4f174f210892 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_aranges.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_aranges.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_aranges.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_aranges.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_index.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_index.3 index 473098313c90..e2938313a781 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_index.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_index.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_cie_index.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_cie_index.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_info.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_info.3 index d293adfe1575..e28015b711a1 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_info.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_info.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_cie_info.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_cie_info.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_of_fde.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_of_fde.3 index 12489552ade1..0c42e26f173f 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_of_fde.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cie_of_fde.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_cie_of_fde.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_cie_of_fde.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cu_die_offset.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cu_die_offset.3 index ba9c0bd42461..f09463038e68 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cu_die_offset.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_cu_die_offset.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_cu_die_offset.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_cu_die_offset.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_die_infotypes_flag.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_die_infotypes_flag.3 index aceca8512b19..6784cc816392 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_die_infotypes_flag.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_die_infotypes_flag.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_die_infotypes_flag.3,v 1.4 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_die_infotypes_flag.3,v 1.5 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2014 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_elf.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_elf.3 index c328e91c6a52..b17d80338f13 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_elf.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_elf.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_elf.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_elf.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2009 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_at_pc.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_at_pc.3 index 61a32da30a9e..728e87886986 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_at_pc.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_at_pc.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_at_pc.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_at_pc.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs.3 index 4aec0f6fbbba..7bf9cb5f42d1 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_info_for_all_regs.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_info_for_all_regs.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs3.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs3.3 index 67c2a4943104..ec9b4e7b49b4 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs3.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_all_regs3.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_info_for_all_regs3.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_info_for_all_regs3.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 index 7b490b55e50a..e0294a5f8946 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_info_for_cfa_reg3.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_info_for_cfa_reg3.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg.3 index 42b84aa29b7f..abdbb16167f2 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_info_for_reg.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_info_for_reg.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg3.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg3.3 index 3cabfc9ce0b9..7e3396b348bd 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg3.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_info_for_reg3.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_info_for_reg3.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_info_for_reg3.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_instr_bytes.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_instr_bytes.3 index ae450e975509..9af796a968c6 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_instr_bytes.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_instr_bytes.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_instr_bytes.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_instr_bytes.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_list.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_list.3 index 49717b8c54ce..38c313529cc7 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_list.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_list.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_list.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_list.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_n.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_n.3 index 5df32473ddd3..a26794a2d7a8 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_n.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_n.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_n.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_n.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_range.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_range.3 index f4f251012dbe..0262922057c3 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_range.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_fde_range.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_fde_range.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_fde_range.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_form_class.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_form_class.3 index e429b83bc4cb..f78d7b9c3cf4 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_form_class.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_form_class.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_form_class.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_form_class.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_funcs.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_funcs.3 index 6646c8cff0b4..472715f2865d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_funcs.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_funcs.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_funcs.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_funcs.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_globals.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_globals.3 index 7b4ad05b5219..0d24b3f1d875 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_globals.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_globals.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_globals.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_globals.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_loclist_entry.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_loclist_entry.3 index 971b1f596bda..94d6737eb35d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_loclist_entry.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_loclist_entry.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_loclist_entry.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_loclist_entry.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_macro_details.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_macro_details.3 index 39f12b0ed375..27825c56c241 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_macro_details.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_macro_details.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_macro_details.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_macro_details.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_pubtypes.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_pubtypes.3 index eda06b4202c7..19b4d804c896 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_pubtypes.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_pubtypes.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_pubtypes.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_pubtypes.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_ranges.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_ranges.3 index 51c977c523b4..1e180c7bac64 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_ranges.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_ranges.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_ranges.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_ranges.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_relocation_info.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_relocation_info.3 index ed5a80b96812..5ef8145b0aff 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_relocation_info.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_relocation_info.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_relocation_info.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_relocation_info.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_relocation_info_count.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_relocation_info_count.3 index 5bd9260f3380..39f38705531e 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_relocation_info_count.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_relocation_info_count.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_relocation_info_count.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_relocation_info_count.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_section_bytes.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_section_bytes.3 index 9c8277123f53..2e506621f7ec 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_section_bytes.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_section_bytes.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_section_bytes.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_section_bytes.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_section_max_offsets.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_section_max_offsets.3 index 2a6c5614b588..dbb0ce47c330 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_section_max_offsets.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_section_max_offsets.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_section_max_offsets.3,v 1.4 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_section_max_offsets.3,v 1.5 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2014 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_str.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_str.3 index 776f659e6587..d5cc1e952a97 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_str.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_str.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_str.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_str.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_types.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_types.3 index 6127add56e15..8424db0c0383 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_types.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_types.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_types.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_types.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_vars.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_vars.3 index 957c5e59a01f..b69d45e7010c 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_vars.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_vars.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_vars.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_vars.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_weaks.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_weaks.3 index a0dd668c9a69..fe5dbb7a36aa 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_weaks.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_get_weaks.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_get_weaks.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_get_weaks.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_hasattr.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_hasattr.3 index 2c813a4b9f7e..58faca4ee757 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_hasattr.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_hasattr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_hasattr.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_hasattr.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_hasform.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_hasform.3 index 2c1799312691..292c6b6bb2d0 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_hasform.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_hasform.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_hasform.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_hasform.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_highpc.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_highpc.3 index 1a4c949fb1c3..35c96f2097c7 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_highpc.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_highpc.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_highpc.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_highpc.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2010,2014 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_init.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_init.3 index f8294fc36b51..04b395956e2a 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_init.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_init.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_init.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_init.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2009 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_init.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_init.c index 5793a8d9c5c3..f89905bf16ad 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_init.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_init.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_init.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_init.c,v 1.5 2024/03/03 17:37:31 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -29,7 +29,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_init.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_init.c,v 1.5 2024/03/03 17:37:31 christos Exp $"); ELFTC_VCSID("Id: dwarf_init.c 2073 2011-10-27 03:30:47Z jkoshy"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_lineno.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_lineno.3 index 9be4ed9e10c4..1bec951a417f 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_lineno.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_lineno.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_lineno.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_lineno.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_lineno.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_lineno.c index 2144f9df4f9d..e71a106b195b 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_lineno.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_lineno.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_lineno.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_lineno.c,v 1.5 2024/03/03 17:37:31 christos Exp $ */ /*- * Copyright (c) 2009,2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_lineno.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_lineno.c,v 1.5 2024/03/03 17:37:31 christos Exp $"); ELFTC_VCSID("Id: dwarf_lineno.c 2983 2014-02-09 00:24:31Z kaiwang27"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_lne_end_sequence.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_lne_end_sequence.3 index fba4313ab3b5..cfeca0606712 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_lne_end_sequence.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_lne_end_sequence.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_lne_end_sequence.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_lne_end_sequence.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_lne_set_address.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_lne_set_address.3 index ddf221e711bb..6d8e65e36407 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_lne_set_address.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_lne_set_address.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_lne_set_address.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_lne_set_address.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist.3 index c82298c61a85..fb63d2eebe55 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_loclist.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_loclist.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist.c index 9b5dc4079719..675da55536dd 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_loclist.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_loclist.c,v 1.5 2024/03/03 17:37:31 christos Exp $ */ /*- * Copyright (c) 2009,2014 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_loclist.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_loclist.c,v 1.5 2024/03/03 17:37:31 christos Exp $"); ELFTC_VCSID("Id: dwarf_loclist.c 3066 2014-06-06 19:36:06Z kaiwang27"); static int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist_from_expr.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist_from_expr.3 index 906a5dbfd0f3..7cd4c7845da1 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist_from_expr.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_loclist_from_expr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_loclist_from_expr.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_loclist_from_expr.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011,2014 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_macinfo.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_macinfo.c index e6f0555f0008..2f8410961edf 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_macinfo.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_macinfo.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_macinfo.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_macinfo.c,v 1.5 2024/03/03 17:37:31 christos Exp $ */ /*- * Copyright (c) 2009,2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_macinfo.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_macinfo.c,v 1.5 2024/03/03 17:37:31 christos Exp $"); ELFTC_VCSID("Id: dwarf_macinfo.c 2074 2011-10-27 03:34:33Z jkoshy"); char * diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_nametbl.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_nametbl.m4 index 5a8d97d2d5d2..5f68700ced1f 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_nametbl.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_nametbl.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_nametbl.m4,v 1.3 2016/02/20 02:43:41 christos Exp $ */ - +dnl $NetBSD: dwarf_nametbl.m4,v 1.4 2024/03/03 17:37:31 christos Exp $ /*- * Copyright (c) 2009,2011 Kai Wang * All rights reserved. @@ -25,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: dwarf_nametbl.m4 2074 2011-10-27 03:34:33Z jkoshy + * Id: dwarf_nametbl.m4 2074 2011-10-27 03:34:33Z jkoshy */ define(`MAKE_NAMETBL_API',` diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_die.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_die.3 index 45412817d769..7977799ff8b2 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_die.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_die.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_new_die.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_new_die.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_expr.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_expr.3 index 7343e668b882..a1a49ca06548 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_expr.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_expr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_new_expr.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_new_expr.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_fde.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_fde.3 index ab4586e27eeb..838d25bb1c08 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_fde.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_new_fde.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_new_fde.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_new_fde.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_next_cu_header.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_next_cu_header.3 index 6eb0e076a840..64e946d0b924 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_next_cu_header.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_next_cu_header.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: dwarf_next_cu_header.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_next_cu_header.3,v 1.6 2024/03/03 17:37:31 christos Exp $ .\" -.\" Copyright (c) 2010,2014 Kai Wang +.\" Copyright (c) 2010,2014,2023 Kai Wang .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,15 +24,16 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" Id: dwarf_next_cu_header.3 3963 2022-03-12 16:07:32Z jkoshy +.\" Id: dwarf_next_cu_header.3 4013 2023-10-14 22:40:50Z kaiwang27 .\" -.Dd December 21, 2014 +.Dd October 15, 2023 .Dt DWARF_NEXT_CU_HEADER 3 .Os .Sh NAME .Nm dwarf_next_cu_header , .Nm dwarf_next_cu_header_b , -.Nm dwarf_next_cu_header_c +.Nm dwarf_next_cu_header_c , +.Nm dwarf_next_cu_header_d .Nd step through compilation units in a DWARF debug context .Sh LIBRARY .Lb libdwarf @@ -75,23 +76,42 @@ .Fa "Dwarf_Unsigned *cu_next_offset" .Fa "Dwarf_Error *err" .Fc +.Ft int +.Fo dwarf_next_cu_header_d +.Fa "Dwarf_Debug dbg" +.Fa "Dwarf_Bool is_info" +.Fa "Dwarf_Unsigned *cu_length" +.Fa "Dwarf_Half *cu_version" +.Fa "Dwarf_Off *cu_abbrev_offset" +.Fa "Dwarf_Half *cu_pointer_size" +.Fa "Dwarf_Half *cu_offset_size" +.Fa "Dwarf_Half *cu_extension_size" +.Fa "Dwarf_Sig8 *type_signature" +.Fa "Dwarf_Unsigned *type_offset" +.Fa "Dwarf_Unsigned *cu_next_offset" +.Fa "Dwarf_Half *cu_type" +.Fa "Dwarf_Error *err" +.Fc .Sh DESCRIPTION These functions are used to step through compilation or type units associated with a DWARF debug context, optionally returning information about the unit. .Pp Function -.Fn dwarf_next_cu_header_c +.Fn dwarf_next_cu_header_d is the API recommended for new application code. Function +.Fn dwarf_next_cu_header_c +can not return the unit type defined by the DWARF5 standard. +Function .Fn dwarf_next_cu_header and .Fn dwarf_next_cu_header_b can only operate on compilation units associated with the .Dq \&.debug_info section. -They are less general than function -.Fn dwarf_next_cu_header_c , +The earlier revisions are less general than function +.Fn dwarf_next_cu_header_d , and are deprecated for use by new application code. .Pp Argument @@ -163,11 +183,22 @@ or the offset of the next type unit header in the .Dq \&.debug_types section. Argument +.Fa cu_type +should point to a location that will be set to the +type of the compilation unit. +Argument .Fa err should point to a location that will hold an error descriptor in case of an error. .Pp Function +.Fn dwarf_next_cu_header_c +is identical to function +.Fn dwarf_next_cu_header_d +except that it does not provide argument +.Fa cu_type . +.Pp +Function .Fn dwarf_next_cu_header_b is identical to function .Fn dwarf_next_cu_header_c @@ -197,7 +228,8 @@ may be used for any of the arguments .Fa cu_extension_size , .Fa type_signature , .Fa type_offset , -.Fa cu_next_offset +.Fa cu_next_offset , +.Fa cu_type and .Fa err if the caller is not interested in the respective value. @@ -214,7 +246,7 @@ Subsequent calls to the function will iterate through the remaining compilation units in the section. On stepping past the last compilation unit in the section, function -.Fn dwarf_next_cu_header_c +.Fn dwarf_next_cu_header_d returns .Dv DW_DLV_NO_ENTRY and resets its internal state. @@ -227,7 +259,7 @@ an internal pointer associated with the context will point to the first .Dq \&.debug_types section found in the debug object. The first call to function -.Fn dwarf_next_cu_header_c +.Fn dwarf_next_cu_header_d for the debug context with argument .Fa is_info set to 0 will return information about the first @@ -238,7 +270,7 @@ Subsequent calls to the function will iterate through the remaining type units in the section. On stepping past the last type unit in the debug context, function -.Fn dwarf_next_cu_header_c +.Fn dwarf_next_cu_header_d returns .Dv DW_DLV_NO_ENTRY and resets its internal state. @@ -255,7 +287,7 @@ can be called to move the internal pointer to the next .Dq \&.debug_types section. As a result, subsequent calls of the function -.Fn dwarf_next_cu_header_c +.Fn dwarf_next_cu_header_d will operate on the new .Dq \&.debug_types section. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_next_types_section.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_next_types_section.3 index b8964a77844b..9d7e053fe458 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_next_types_section.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_next_types_section.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_next_types_section.3,v 1.4 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_next_types_section.3,v 1.5 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2014 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_object_init.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_object_init.3 index 81cec35d3aaf..ffd002ad0dcd 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_object_init.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_object_init.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_object_init.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_object_init.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_arange.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_arange.c index f8cf33f69cb3..df6be26631cd 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_arange.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_arange.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_arange.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_arange.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_arange.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_arange.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_arange.c 2074 2011-10-27 03:34:33Z jkoshy"); Dwarf_Unsigned diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_attr.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_attr.c index 45a24bd11601..f2cc6b7dca24 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_attr.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_attr.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_attr.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_attr.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009 Kai Wang @@ -28,8 +28,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_attr.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: dwarf_pro_attr.c 2074 2011-10-27 03:34:33Z jkoshy"); +__RCSID("$NetBSD: dwarf_pro_attr.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: dwarf_pro_attr.c 3802 2020-02-07 02:13:19Z emaste"); Dwarf_P_Attribute dwarf_add_AT_location_expr(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, @@ -49,8 +49,10 @@ dwarf_add_AT_location_expr(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, at->at_attrib = attr; at->at_expr = loc_expr; - if (_dwarf_expr_into_block(loc_expr, error) != DW_DLE_NONE) + if (_dwarf_expr_into_block(loc_expr, error) != DW_DLE_NONE) { + free(at); return (DW_DLV_BADADDR); + } at->u[0].u64 = loc_expr->pe_length; at->u[1].u8p = loc_expr->pe_block; if (loc_expr->pe_length <= UCHAR_MAX) diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_die.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_die.c index c6f09eab25ba..28d445ea7a10 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_die.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_die.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_die.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_die.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_die.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_die.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_die.c 2074 2011-10-27 03:34:33Z jkoshy"); Dwarf_Unsigned diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_expr.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_expr.c index cafece85cf68..26ab6302bd5f 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_expr.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_expr.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_expr.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_expr.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,8 +28,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_expr.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: dwarf_pro_expr.c 2074 2011-10-27 03:34:33Z jkoshy"); +__RCSID("$NetBSD: dwarf_pro_expr.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: dwarf_pro_expr.c 3801 2020-02-07 02:05:54Z emaste"); static struct _Dwarf_P_Expr_Entry * _dwarf_add_expr(Dwarf_P_Expr expr, Dwarf_Small opcode, Dwarf_Unsigned val1, @@ -39,10 +39,10 @@ _dwarf_add_expr(Dwarf_P_Expr expr, Dwarf_Small opcode, Dwarf_Unsigned val1, Dwarf_Debug dbg; int len; - dbg = expr != NULL ? expr->pe_dbg : NULL; + dbg = expr->pe_dbg; - if (_dwarf_loc_expr_add_atom(expr->pe_dbg, NULL, NULL, opcode, val1, - val2, &len, error) != DW_DLE_NONE) + if (_dwarf_loc_expr_add_atom(dbg, NULL, NULL, opcode, val1, val2, &len, + error) != DW_DLE_NONE) return (NULL); assert(len > 0); @@ -70,7 +70,7 @@ _dwarf_expr_into_block(Dwarf_P_Expr expr, Dwarf_Error *error) Dwarf_Debug dbg; int len, pos, ret; - dbg = expr != NULL ? expr->pe_dbg : NULL; + dbg = expr->pe_dbg; if (expr->pe_block != NULL) { free(expr->pe_block); @@ -91,7 +91,7 @@ _dwarf_expr_into_block(Dwarf_P_Expr expr, Dwarf_Error *error) pos = 0; STAILQ_FOREACH(ee, &expr->pe_eelist, ee_next) { assert((Dwarf_Unsigned) pos < expr->pe_length); - ret = _dwarf_loc_expr_add_atom(expr->pe_dbg, + ret = _dwarf_loc_expr_add_atom(dbg, &expr->pe_block[pos], &expr->pe_block[expr->pe_length], ee->ee_loc.lr_atom, ee->ee_loc.lr_number, ee->ee_loc.lr_number2, &len, error); diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_finish.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_finish.c index 0d96f7dd32f8..e1b9a6b2d340 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_finish.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_finish.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_finish.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_finish.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_finish.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_finish.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_finish.c 2074 2011-10-27 03:34:33Z jkoshy"); Dwarf_Unsigned diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_frame.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_frame.c index e8f9ae90096a..a5aaffbfc807 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_frame.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_frame.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_frame.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_frame.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_frame.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_frame.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_frame.c 2074 2011-10-27 03:34:33Z jkoshy"); Dwarf_P_Fde diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_funcs.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_funcs.m4 index 3753a30638f6..6fd5882e09c2 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_funcs.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_funcs.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_pro_funcs.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_pro_funcs.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2010 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_funcs.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_funcs.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_funcs.m4 2074 2011-10-27 03:34:33Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_init.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_init.c index ac6be0c1b81c..a25eed4885f9 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_init.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_init.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_init.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_init.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_init.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_init.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_init.c 2074 2011-10-27 03:34:33Z jkoshy"); Dwarf_P_Debug diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_lineno.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_lineno.c index 4525d339d534..5f7d7177ebda 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_lineno.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_lineno.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_lineno.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_lineno.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_lineno.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_lineno.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_lineno.c 2973 2013-12-23 06:46:16Z kaiwang27"); Dwarf_Unsigned diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_macinfo.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_macinfo.c index 1626a55c663c..c07d3095df1d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_macinfo.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_macinfo.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_macinfo.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_macinfo.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_macinfo.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_macinfo.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_macinfo.c 2074 2011-10-27 03:34:33Z jkoshy"); static int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_nametbl.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_nametbl.m4 index 8d9b2c03c4e1..f9a77129819e 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_nametbl.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_nametbl.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_pro_nametbl.m4,v 1.3 2016/02/20 02:43:41 christos Exp $ */ - +dnl $NetBSD: dwarf_pro_nametbl.m4,v 1.4 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2010 Kai Wang * All rights reserved. @@ -25,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: dwarf_pro_nametbl.m4 2074 2011-10-27 03:34:33Z jkoshy + * Id: dwarf_pro_nametbl.m4 2074 2011-10-27 03:34:33Z jkoshy */ define(`MAKE_NAMETBL_PRO_API',` diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_pubnames.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_pubnames.m4 index 194edab53ab2..5e0abb3ab415 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_pubnames.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_pubnames.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_pro_pubnames.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_pro_pubnames.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2010 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_pubnames.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_pubnames.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_pubnames.m4 2074 2011-10-27 03:34:33Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_reloc.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_reloc.c index d66305df64aa..a6bf19f49187 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_reloc.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_reloc.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_reloc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_reloc.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_reloc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_reloc.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_reloc.c 2074 2011-10-27 03:34:33Z jkoshy"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_sections.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_sections.c index 948e46f21f55..80d937d1c1ad 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_sections.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_sections.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_pro_sections.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_pro_sections.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_sections.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_sections.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_sections.c 2074 2011-10-27 03:34:33Z jkoshy"); Dwarf_Signed diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_types.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_types.m4 index 72db6378da80..6849260aa72a 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_types.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_types.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_pro_types.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_pro_types.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2010 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_types.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_types.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_types.m4 2074 2011-10-27 03:34:33Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_vars.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_vars.m4 index f76dbac35b6b..930b01ce8f25 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_vars.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_vars.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_pro_vars.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_pro_vars.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2010 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_vars.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_vars.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_vars.m4 2074 2011-10-27 03:34:33Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_weaks.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_weaks.m4 index 6fc68e787776..8f38412b1b44 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_weaks.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pro_weaks.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_pro_weaks.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_pro_weaks.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2010 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pro_weaks.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pro_weaks.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pro_weaks.m4 2074 2011-10-27 03:34:33Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_producer_init.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_producer_init.3 index 7eabc5f39e00..5fe356237470 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_producer_init.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_producer_init.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_producer_init.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_producer_init.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_producer_set_isa.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_producer_set_isa.3 index 96523b371a08..d87b2db00404 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_producer_set_isa.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_producer_set_isa.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_producer_set_isa.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_producer_set_isa.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pubnames.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pubnames.m4 index aeeb1dc8cb3d..a2aea9a26e0a 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pubnames.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pubnames.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_pubnames.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_pubnames.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2009 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pubnames.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pubnames.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pubnames.m4 2074 2011-10-27 03:34:33Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pubtypes.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pubtypes.m4 index 86ecdbef0ea5..a06ed55ce5a7 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_pubtypes.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_pubtypes.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_pubtypes.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_pubtypes.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2009 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_pubtypes.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_pubtypes.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_pubtypes.m4 2074 2011-10-27 03:34:33Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_ranges.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_ranges.c index 99382ed7af59..1b39d41b73de 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_ranges.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_ranges.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_ranges.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_ranges.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009,2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_ranges.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_ranges.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_ranges.c 3029 2014-04-21 23:26:02Z kaiwang27"); static int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_reloc.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_reloc.c index 5ae65173138b..5ec0e993f6a7 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_reloc.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_reloc.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_reloc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_reloc.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_reloc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_reloc.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_reloc.c 3161 2015-02-15 21:43:36Z emaste"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_reset_section_bytes.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_reset_section_bytes.3 index 90379a5f9386..b877636d92a2 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_reset_section_bytes.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_reset_section_bytes.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_reset_section_bytes.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_reset_section_bytes.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_sections.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_sections.c index 3d5b82e51afd..c028e0b141c1 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_sections.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_sections.c @@ -1,4 +1,5 @@ -/* $NetBSD: dwarf_sections.c,v 1.3 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_sections.c,v 1.4 2024/03/03 17:37:32 christos Exp $ */ + /*- * Copyright (c) 2014 Kai Wang * All rights reserved. @@ -27,14 +28,14 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_sections.c,v 1.3 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: dwarf_sections.c 3226 2015-06-23 13:00:16Z emaste"); +__RCSID("$NetBSD: dwarf_sections.c,v 1.4 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: dwarf_sections.c 3902 2020-11-24 21:17:41Z jkoshy"); #define SET(N, V) \ do { \ if ((N) != NULL) \ *(N) = (V); \ - } while (0) + } while (/* CONSTCOND */ 0) int dwarf_get_section_max_offsets_b(Dwarf_Debug dbg, Dwarf_Unsigned *debug_info, diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_set_frame_cfa_value.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_set_frame_cfa_value.3 index b142cd1f292c..881273f9d85b 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_set_frame_cfa_value.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_set_frame_cfa_value.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_set_frame_cfa_value.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_set_frame_cfa_value.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_set_reloc_application.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_set_reloc_application.3 index 9dd427342567..97681d5a5553 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_set_reloc_application.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_set_reloc_application.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_set_reloc_application.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_set_reloc_application.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_seterrarg.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_seterrarg.3 index e8b4f4008bbc..155ed410cc34 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_seterrarg.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_seterrarg.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_seterrarg.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_seterrarg.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_seterror.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_seterror.c index f77f18433879..98d2eaddee87 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_seterror.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_seterror.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_seterror.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_seterror.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Joseph Koshy @@ -28,14 +28,14 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_seterror.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: dwarf_seterror.c 2075 2011-10-27 03:47:28Z jkoshy"); +__RCSID("$NetBSD: dwarf_seterror.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: dwarf_seterror.c 3902 2020-11-24 21:17:41Z jkoshy"); #define _SET_FIELD(R, F, V) \ do { \ (R) = (F); \ (F) = (V); \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) #define SET_FIELD(D, R, F) \ do { \ @@ -43,7 +43,7 @@ ELFTC_VCSID("Id: dwarf_seterror.c 2075 2011-10-27 03:47:28Z jkoshy"); _SET_FIELD(R, (D)->dbg_##F, F); \ else \ _SET_FIELD(R, _libdwarf.F, F); \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) Dwarf_Handler dwarf_seterrhand(Dwarf_Debug dbg, Dwarf_Handler errhand) diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_srcfiles.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_srcfiles.3 index f04aced45b13..5662aef25f72 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_srcfiles.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_srcfiles.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_srcfiles.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_srcfiles.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_srclines.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_srclines.3 index c6499fce9acb..222efdb73230 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_srclines.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_srclines.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_srclines.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_srclines.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_start_macro_file.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_start_macro_file.3 index c8682b357b5b..0b54285e8942 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_start_macro_file.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_start_macro_file.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_start_macro_file.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_start_macro_file.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_str.c b/external/bsd/elftoolchain/dist/libdwarf/dwarf_str.c index 3f9ebdcc4838..c668cebdd745 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_str.c +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_str.c @@ -1,4 +1,4 @@ -/* $NetBSD: dwarf_str.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: dwarf_str.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_str.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_str.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_str.c 3295 2016-01-08 22:08:10Z jkoshy"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_tag.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_tag.3 index 446867b54fdc..5b9bde537663 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_tag.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_tag.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_tag.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_tag.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2010 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_transform_to_disk_form.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_transform_to_disk_form.3 index 7e6a48ea81f9..3b7f4a3abc6a 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_transform_to_disk_form.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_transform_to_disk_form.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_transform_to_disk_form.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_transform_to_disk_form.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_types.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_types.m4 index 2263a9a056d8..c26647679512 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_types.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_types.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_types.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_types.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2009 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_types.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_types.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_types.m4 2697 2012-11-24 17:12:36Z kaiwang27"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_undef_macro.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_undef_macro.3 index 907ee244a986..1f803a291fa5 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_undef_macro.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_undef_macro.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_undef_macro.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_undef_macro.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_vars.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_vars.m4 index 8a6972898164..bf0603277453 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_vars.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_vars.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_vars.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_vars.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2009 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_vars.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_vars.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_vars.m4 2075 2011-10-27 03:47:28Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_vendor_ext.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_vendor_ext.3 index 0c24fa622f98..a4d39791bdd2 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_vendor_ext.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_vendor_ext.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_vendor_ext.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_vendor_ext.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2011 Kai Wang .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_weaks.m4 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_weaks.m4 index 6eaa94186df3..006e5e7f2f20 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_weaks.m4 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_weaks.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: dwarf_weaks.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ - +dnl $NetBSD: dwarf_weaks.m4,v 1.5 2024/03/03 17:37:32 christos Exp $ /*- * Copyright (c) 2009 Kai Wang * All rights reserved. @@ -28,7 +27,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: dwarf_weaks.m4,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: dwarf_weaks.m4,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: dwarf_weaks.m4 2075 2011-10-27 03:47:28Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/dwarf_whatattr.3 b/external/bsd/elftoolchain/dist/libdwarf/dwarf_whatattr.3 index 4a30d8138ac3..2cc2cabbb625 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/dwarf_whatattr.3 +++ b/external/bsd/elftoolchain/dist/libdwarf/dwarf_whatattr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: dwarf_whatattr.3,v 1.5 2022/03/14 20:50:48 jkoshy Exp $ +.\" $NetBSD: dwarf_whatattr.3,v 1.6 2024/03/03 17:37:32 christos Exp $ .\" .\" Copyright (c) 2010 Joseph Koshy .\" All rights reserved. diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf.c index 840e72d025c8..3ad6972ddd60 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf.c 3161 2015-02-15 21:43:36Z emaste"); struct _libdwarf_globals _libdwarf = { diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf.h b/external/bsd/elftoolchain/dist/libdwarf/libdwarf.h index 0329d5c07909..29246be9017d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf.h +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf.h @@ -1,8 +1,8 @@ -/* $NetBSD: libdwarf.h,v 1.3 2016/02/20 02:43:41 christos Exp $ */ +/* $NetBSD: libdwarf.h,v 1.4 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2011,2014 Kai Wang + * Copyright (c) 2009-2011,2014,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: libdwarf.h 3295 2016-01-08 22:08:10Z jkoshy + * Id: libdwarf.h 4019 2023-10-22 03:06:17Z kaiwang27 */ #ifndef _LIBDWARF_H_ @@ -128,6 +128,10 @@ typedef struct { char signature[8]; } Dwarf_Sig8; +typedef struct { + unsigned char fd_data[16]; +} Dwarf_Form_Data16; + typedef struct { Dwarf_Unsigned bl_len; Dwarf_Ptr bl_data; @@ -337,6 +341,9 @@ enum { DW_DLE_ARANGE_OFFSET_BAD, /* Invalid arange offset. */ DW_DLE_DEBUG_MACRO_INCONSISTENT,/* Invalid macinfo data. */ DW_DLE_ELF_SECT_ERR, /* Application callback failed. */ + DW_DLE_DIR_COUNT_BAD, /* Invalid directory count. */ + DW_DLE_FILE_COUNT_BAD, /* Invalid filename count. */ + DW_DLE_LNCT_DESC_BAD, /* Invalid LNCT descriptor. */ DW_DLE_NUM /* Max error number. */ }; @@ -442,6 +449,7 @@ enum Dwarf_ISA { DW_ISA_X86, DW_ISA_X86_64, DW_ISA_AARCH64, + DW_ISA_RISCV, DW_ISA_MAX }; @@ -600,6 +608,7 @@ int dwarf_get_MACINFO_name(unsigned, const char **); int dwarf_get_OP_name(unsigned, const char **); int dwarf_get_ORD_name(unsigned, const char **); int dwarf_get_TAG_name(unsigned, const char **); +int dwarf_get_UT_name(unsigned, const char **); int dwarf_get_VIRTUALITY_name(unsigned, const char **); int dwarf_get_VIS_name(unsigned, const char **); int dwarf_get_abbrev(Dwarf_Debug, Dwarf_Unsigned, Dwarf_Abbrev *, @@ -762,6 +771,10 @@ int dwarf_next_cu_header_c(Dwarf_Debug, Dwarf_Bool, Dwarf_Unsigned *, Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, Dwarf_Half *, Dwarf_Half *, Dwarf_Sig8 *, Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Error *); +int dwarf_next_cu_header_d(Dwarf_Debug, Dwarf_Bool, + Dwarf_Unsigned *, Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, + Dwarf_Half *, Dwarf_Half *, Dwarf_Sig8 *, Dwarf_Unsigned *, + Dwarf_Unsigned *, Dwarf_Half *, Dwarf_Error *); int dwarf_next_types_section(Dwarf_Debug, Dwarf_Error *); int dwarf_object_finish(Dwarf_Debug, Dwarf_Error *); int dwarf_object_init(Dwarf_Obj_Access_Interface *, Dwarf_Handler, diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_abbrev.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_abbrev.c index 99b4d9c0d84f..ca5c0a039ec1 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_abbrev.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_abbrev.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_abbrev.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_abbrev.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -29,8 +29,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_abbrev.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_abbrev.c 3136 2014-12-24 16:04:38Z kaiwang27"); +__RCSID("$NetBSD: libdwarf_abbrev.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_abbrev.c 4008 2023-10-12 18:17:06Z kaiwang27"); int _dwarf_abbrev_add(Dwarf_CU cu, uint64_t entry, uint64_t tag, uint8_t children, @@ -62,15 +62,14 @@ _dwarf_abbrev_add(Dwarf_CU cu, uint64_t entry, uint64_t tag, uint8_t children, HASH_ADD(ab_hh, cu->cu_abbrev_hash, ab_entry, sizeof(ab->ab_entry), ab); - if (abp != NULL) - *abp = ab; - + *abp = ab; return (DW_DLE_NONE); } int _dwarf_attrdef_add(Dwarf_Debug dbg, Dwarf_Abbrev ab, uint64_t attr, - uint64_t form, uint64_t adoff, Dwarf_AttrDef *adp, Dwarf_Error *error) + uint64_t form, int64_t ic, uint64_t adoff, Dwarf_AttrDef *adp, + Dwarf_Error *error) { Dwarf_AttrDef ad; @@ -87,6 +86,7 @@ _dwarf_attrdef_add(Dwarf_Debug dbg, Dwarf_Abbrev ab, uint64_t attr, /* Initialise the attribute definition structure. */ ad->ad_attrib = attr; ad->ad_form = form; + ad->ad_const = ic; ad->ad_offset = adoff; /* Add the attribute definition to the list in the abbrev. */ @@ -112,15 +112,14 @@ _dwarf_abbrev_parse(Dwarf_Debug dbg, Dwarf_CU cu, Dwarf_Unsigned *offset, uint64_t aboff; uint64_t adoff; uint64_t tag; + int64_t ic; uint8_t children; int ret; assert(abp != NULL); ds = _dwarf_find_section(dbg, ".debug_abbrev"); - assert(ds != NULL); - - if (*offset >= ds->ds_size) + if (ds == NULL || *offset >= ds->ds_size) return (DW_DLE_NO_ENTRY); aboff = *offset; @@ -147,9 +146,19 @@ _dwarf_abbrev_parse(Dwarf_Debug dbg, Dwarf_CU cu, Dwarf_Unsigned *offset, adoff = *offset; attr = _dwarf_read_uleb128(ds->ds_data, offset); form = _dwarf_read_uleb128(ds->ds_data, offset); + if (form == DW_FORM_implicit_const) { + /* + * DWARF5 7.5.3: atrribute definition with the form + * DW_FORM_implicit_const contains a third part, a + * signed LEB128 value indicating a constant value. + * No value is needed to store in the .debug_info + * as a result. + */ + ic = _dwarf_read_sleb128(ds->ds_data, offset); + } if (attr != 0) if ((ret = _dwarf_attrdef_add(dbg, *abp, attr, - form, adoff, NULL, error)) != DW_DLE_NONE) + form, ic, adoff, NULL, error)) != DW_DLE_NONE) return (ret); } while (attr != 0); diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_arange.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_arange.c index fac90879ea37..c0d67e49e94f 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_arange.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_arange.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_arange.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_arange.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009-2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_arange.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_arange.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_arange.c 3029 2014-04-21 23:26:02Z kaiwang27"); void diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_attr.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_attr.c index 68c92f31ff15..c2f2272e4aef 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_attr.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_attr.c @@ -1,8 +1,8 @@ -/* $NetBSD: libdwarf_attr.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_attr.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2011 Kai Wang + * Copyright (c) 2009-2011,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,8 +29,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_attr.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_attr.c 3064 2014-06-06 19:35:55Z kaiwang27"); +__RCSID("$NetBSD: libdwarf_attr.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_attr.c 4019 2023-10-22 03:06:17Z kaiwang27"); int _dwarf_attr_alloc(Dwarf_Die die, Dwarf_Attribute *atp, Dwarf_Error *error) @@ -103,7 +103,6 @@ _dwarf_attr_init(Dwarf_Debug dbg, Dwarf_Section *ds, uint64_t *offsetp, uint64_t form, int indirect, Dwarf_Error *error) { struct _Dwarf_Attribute atref; - Dwarf_Section *str; int ret; ret = DW_DLE_NONE; @@ -152,10 +151,12 @@ _dwarf_attr_init(Dwarf_Debug dbg, Dwarf_Section *ds, uint64_t *offsetp, break; case DW_FORM_data4: case DW_FORM_ref4: + case DW_FORM_ref_sup4: atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 4); break; case DW_FORM_data8: case DW_FORM_ref8: + case DW_FORM_ref_sup8: atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 8); break; case DW_FORM_indirect: @@ -172,6 +173,8 @@ _dwarf_attr_init(Dwarf_Debug dbg, Dwarf_Section *ds, uint64_t *offsetp, break; case DW_FORM_ref_udata: case DW_FORM_udata: + case DW_FORM_loclistx: + case DW_FORM_rnglistx: atref.u[0].u64 = _dwarf_read_uleb128(ds->ds_data, offsetp); break; case DW_FORM_sdata: @@ -186,9 +189,7 @@ _dwarf_attr_init(Dwarf_Debug dbg, Dwarf_Section *ds, uint64_t *offsetp, break; case DW_FORM_strp: atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, dwarf_size); - str = _dwarf_find_section(dbg, ".debug_str"); - assert(str != NULL); - atref.u[1].s = (char *) str->ds_data + atref.u[0].u64; + atref.u[1].s = _dwarf_strtab_get_table(dbg) + atref.u[0].u64; break; case DW_FORM_ref_sig8: atref.u[0].u64 = 8; @@ -199,6 +200,66 @@ _dwarf_attr_init(Dwarf_Debug dbg, Dwarf_Section *ds, uint64_t *offsetp, /* This form has no value encoded in the DIE. */ atref.u[0].u64 = 1; break; + case DW_FORM_strx: + atref.u[0].u64 = _dwarf_read_uleb128(ds->ds_data, offsetp); + /* TODO: .debug_str_offsets */ + break; + case DW_FORM_addrx: + atref.u[0].u64 = _dwarf_read_uleb128(ds->ds_data, offsetp); + /* TODO: .debug_addr */ + break; + case DW_FORM_strp_sup: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, dwarf_size); + /* TODO: supplementary object file. */ + break; + case DW_FORM_data16: + atref.u[0].u64 = 16; + atref.u[1].u8p = _dwarf_read_block(ds->ds_data, offsetp, + atref.u[0].u64); + break; + case DW_FORM_line_strp: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, dwarf_size); + atref.u[1].s = _dwarf_strtab_get_line_table(dbg) + + atref.u[0].u64; + break; + case DW_FORM_implicit_const: + /* DWARF5 7.5.3 Implicit constant stored in attrdef. + This form has no value encoded in the DIE. */ + atref.u[0].s64 = ad->ad_const; + break; + case DW_FORM_strx1: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 1); + /* TODO: .debug_str_offsets */ + break; + case DW_FORM_strx2: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 1); + /* TODO: .debug_str_offsets */ + break; + case DW_FORM_strx3: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 3); + /* TODO: .debug_str_offsets */ + break; + case DW_FORM_strx4: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 4); + /* TODO: .debug_str_offsets */ + break; + case DW_FORM_addrx1: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 1); + /* TODO: .debug_addr */ + break; + case DW_FORM_addrx2: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 2); + /* TODO: .debug_addr */ + break; + case DW_FORM_addrx3: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 3); + /* TODO: .debug_addr */ + break; + case DW_FORM_addrx4: + atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 4); + /* TODO: .debug_addr */ + break; + default: DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); ret = DW_DLE_ATTR_FORM_BAD; diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_die.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_die.c index 847650be3044..ca81f18dface 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_die.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_die.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_die.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_die.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -29,8 +29,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_die.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_die.c 3039 2014-05-18 15:10:56Z kaiwang27"); +__RCSID("$NetBSD: libdwarf_die.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_die.c 4008 2023-10-12 18:17:06Z kaiwang27"); int _dwarf_die_alloc(Dwarf_Debug dbg, Dwarf_Die *ret_die, Dwarf_Error *error) @@ -346,7 +346,7 @@ _dwarf_die_gen_recursive(Dwarf_P_Debug dbg, Dwarf_CU cu, Dwarf_Rel_Section drs, return (ret); STAILQ_FOREACH(at, &die->die_attr, at_next) { ret = _dwarf_attrdef_add(dbg, ab, at->at_attrib, - at->at_form, 0, NULL, error); + at->at_form, 0, 0, NULL, error); if (ret != DW_DLE_NONE) return (ret); } diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_elf_access.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_elf_access.c index ce76b1a1b863..d5a85c3e1ba9 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_elf_access.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_elf_access.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_elf_access.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_elf_access.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_elf_access.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_elf_access.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_elf_access.c 2070 2011-10-27 03:05:32Z jkoshy"); int diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_elf_init.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_elf_init.c index e1250145c162..33d57bcb8519 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_elf_init.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_elf_init.c @@ -1,7 +1,7 @@ -/* $NetBSD: libdwarf_elf_init.c,v 1.5 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_elf_init.c,v 1.6 2024/03/03 17:37:32 christos Exp $ */ /*- - * Copyright (c) 2009 Kai Wang + * Copyright (c) 2009,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -28,8 +28,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_elf_init.c,v 1.5 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_elf_init.c 3161 2015-02-15 21:43:36Z emaste"); +__RCSID("$NetBSD: libdwarf_elf_init.c,v 1.6 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_elf_init.c 4016 2023-10-15 05:39:46Z kaiwang27"); static const char *debug_name[] = { ".debug_abbrev", @@ -42,6 +42,7 @@ static const char *debug_name[] = { ".eh_frame", ".debug_macinfo", ".debug_str", + ".debug_line_str", ".debug_loc", ".debug_pubtypes", ".debug_ranges", @@ -53,55 +54,81 @@ static const char *debug_name[] = { }; static void -_dwarf_elf_write_reloc(Dwarf_Debug dbg, Elf_Data *symtab_data, int endian, - void *buf, uint64_t offset, GElf_Xword r_info, GElf_Sxword r_addend, - int is_rel) +_dwarf_elf_apply_rel_reloc(Dwarf_Debug dbg, void *buf, uint64_t bufsize, + Elf_Data *rel_data, Elf_Data *symtab_data, int endian) { + Dwarf_Unsigned type; + GElf_Rel rel; GElf_Sym sym; - int size; + size_t symndx; + uint64_t offset; + uint64_t addend; + int size, j; - if (gelf_getsym(symtab_data, GELF_R_SYM(r_info), &sym) == NULL) - return; - if ((size = _dwarf_get_reloc_size(dbg, GELF_R_TYPE(r_info))) == 0) - return; /* Unknown or non-absolute relocation. */ - if (is_rel) { - uint64_t roffset = offset; + j = 0; + while (gelf_getrel(rel_data, j++, &rel) != NULL) { + symndx = GELF_R_SYM(rel.r_info); + type = GELF_R_TYPE(rel.r_info); + + if (gelf_getsym(symtab_data, symndx, &sym) == NULL) + continue; + + size = _dwarf_get_reloc_size(dbg, type); + if (size == 0) + continue; /* Unknown or non-absolute relocation. */ + + offset = rel.r_offset; + if (offset + size >= bufsize) + continue; if (endian == ELFDATA2MSB) - r_addend = _dwarf_read_msb(buf, &roffset, size); + addend = _dwarf_read_msb(buf, &offset, size); else - r_addend = _dwarf_read_lsb(buf, &roffset, size); + addend = _dwarf_read_lsb(buf, &offset, size); + + offset = rel.r_offset; + if (endian == ELFDATA2MSB) + _dwarf_write_msb(buf, &offset, sym.st_value + addend, + size); + else + _dwarf_write_lsb(buf, &offset, sym.st_value + addend, + size); } - if (endian == ELFDATA2MSB) - _dwarf_write_msb(buf, &offset, sym.st_value + r_addend, size); - else - _dwarf_write_lsb(buf, &offset, sym.st_value + r_addend, size); } static void -_dwarf_elf_apply_rel_reloc(Dwarf_Debug dbg, void *buf, Elf_Data *rel_data, - Elf_Data *symtab_data, int endian) -{ - GElf_Rel rel; - int j; - - j = 0; - while (gelf_getrel(rel_data, j++, &rel) != NULL) - _dwarf_elf_write_reloc(dbg, symtab_data, endian, buf, - rel.r_offset, rel.r_info, 0, 1); -} - -static void -_dwarf_elf_apply_rela_reloc(Dwarf_Debug dbg, void *buf, Elf_Data *rel_data, - Elf_Data *symtab_data, int endian) +_dwarf_elf_apply_rela_reloc(Dwarf_Debug dbg, void *buf, uint64_t bufsize, + Elf_Data *rel_data, Elf_Data *symtab_data, int endian) { + Dwarf_Unsigned type; GElf_Rela rela; - int j; + GElf_Sym sym; + size_t symndx; + uint64_t offset; + int size, j; j = 0; - while (gelf_getrela(rel_data, j++, &rela) != NULL) - _dwarf_elf_write_reloc(dbg, symtab_data, endian, buf, - rela.r_offset, rela.r_info, rela.r_addend, 0); + while (gelf_getrela(rel_data, j++, &rela) != NULL) { + symndx = GELF_R_SYM(rela.r_info); + type = GELF_R_TYPE(rela.r_info); + + if (gelf_getsym(symtab_data, symndx, &sym) == NULL) + continue; + + offset = rela.r_offset; + size = _dwarf_get_reloc_size(dbg, type); + if (size == 0) + continue; /* Unknown or non-absolute relocation. */ + if (offset + size >= bufsize) + continue; + + if (endian == ELFDATA2MSB) + _dwarf_write_msb(buf, &offset, + sym.st_value + rela.r_addend, size); + else + _dwarf_write_lsb(buf, &offset, + sym.st_value + rela.r_addend, size); + } } static int @@ -153,10 +180,12 @@ _dwarf_elf_relocate(Dwarf_Debug dbg, Elf *elf, Dwarf_Elf_Data *ed, size_t shndx, memcpy(ed->ed_alloc, ed->ed_data->d_buf, ed->ed_data->d_size); if (sh.sh_type == SHT_REL) - _dwarf_elf_apply_rel_reloc(dbg, ed->ed_alloc, + _dwarf_elf_apply_rel_reloc(dbg, + ed->ed_alloc, ed->ed_data->d_size, rel, symtab_data, eh.e_ident[EI_DATA]); else - _dwarf_elf_apply_rela_reloc(dbg, ed->ed_alloc, + _dwarf_elf_apply_rela_reloc(dbg, + ed->ed_alloc, ed->ed_data->d_size, rel, symtab_data, eh.e_ident[EI_DATA]); return (DW_DLE_NONE); diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_error.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_error.c index 9e9adb5fda5c..07dc71cd955b 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_error.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_error.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_error.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_error.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Joseph Koshy @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_error.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_error.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_error.c 2070 2011-10-27 03:05:32Z jkoshy"); void diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_frame.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_frame.c index 4aa92681e719..cd777e0aa3ee 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_frame.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_frame.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_frame.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_frame.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009-2011,2014 Kai Wang @@ -28,8 +28,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_frame.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_frame.c 3106 2014-12-19 16:00:58Z kaiwang27"); +__RCSID("$NetBSD: libdwarf_frame.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_frame.c 3804 2020-02-07 02:13:34Z emaste"); static int _dwarf_frame_find_cie(Dwarf_FrameSec fs, Dwarf_Unsigned offset, @@ -145,6 +145,8 @@ _dwarf_frame_parse_lsb_cie_augment(Dwarf_Debug dbg, Dwarf_Cie cie, augdata_p = cie->cie_augdata; while (*aug_p != '\0') { switch (*aug_p) { + case 'S': + break; case 'L': /* Skip one augment in augment data. */ augdata_p++; @@ -469,9 +471,9 @@ _dwarf_frame_section_init(Dwarf_Debug dbg, Dwarf_FrameSec *frame_sec, if (length > ds->ds_size - offset || (length == 0 && !eh_frame)) { - DWARF_SET_ERROR(dbg, error, - DW_DLE_DEBUG_FRAME_LENGTH_BAD); - return (DW_DLE_DEBUG_FRAME_LENGTH_BAD); + ret = DW_DLE_DEBUG_FRAME_LENGTH_BAD; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; } /* Check terminator for .eh_frame */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_info.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_info.c index e0f1af99debd..69a4c87e5a80 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_info.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_info.c @@ -1,8 +1,8 @@ -/* $NetBSD: libdwarf_info.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_info.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2010,2011,2014 Kai Wang + * Copyright (c) 2010,2011,2014,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,8 +29,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_info.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_info.c 3136 2014-12-24 16:04:38Z kaiwang27"); +__RCSID("$NetBSD: libdwarf_info.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_info.c 4013 2023-10-14 22:40:50Z kaiwang27"); int _dwarf_info_first_cu(Dwarf_Debug dbg, Dwarf_Error *error) @@ -204,17 +204,49 @@ _dwarf_info_load(Dwarf_Debug dbg, Dwarf_Bool load_all, Dwarf_Bool is_info, dbg->dbg_types_off = next_offset; /* Initialise the compilation unit. */ - cu->cu_length = length; - cu->cu_length_size = (dwarf_size == 4 ? 4 : 12); - cu->cu_version = dbg->read(ds->ds_data, &offset, 2); - cu->cu_abbrev_offset = dbg->read(ds->ds_data, &offset, - dwarf_size); + cu->cu_length = length; + cu->cu_length_size = (dwarf_size == 4 ? 4 : 12); + cu->cu_version = dbg->read(ds->ds_data, &offset, 2); + + /* Verify the DWARF version is supported. */ + if (cu->cu_version < 2 || cu->cu_version > 5) { + DWARF_SET_ERROR(dbg, error, DW_DLE_VERSION_STAMP_ERROR); + ret = DW_DLE_VERSION_STAMP_ERROR; + break; + } + + if (cu->cu_version == 5) { + /* + * DWARF5 has unit_type, abbrev_offset and pointer_size + * fields are reordered. + */ + cu->cu_unit_type = dbg->read(ds->ds_data, &offset, 1); + cu->cu_pointer_size = dbg->read(ds->ds_data, &offset, + 1); + cu->cu_abbrev_offset = dbg->read(ds->ds_data, &offset, + dwarf_size); + } else { + /* DWARF4 or lower. */ + cu->cu_unit_type = is_info ? DW_UT_compile : DW_UT_type; + cu->cu_abbrev_offset = dbg->read(ds->ds_data, &offset, + dwarf_size); + cu->cu_pointer_size = dbg->read(ds->ds_data, &offset, + 1); + } + cu->cu_abbrev_offset_cur = cu->cu_abbrev_offset; - cu->cu_pointer_size = dbg->read(ds->ds_data, &offset, 1); - cu->cu_next_offset = next_offset; + cu->cu_next_offset = next_offset; + + /* DWARF5 Section 7.5.1.2 defines the dwo_id field. */ + if (cu->cu_unit_type == DW_UT_skeleton || + cu->cu_unit_type == DW_UT_split_compile) { + /* TODO: the ID is implementation defined. */ + cu->cu_dwo_id = dbg->read(ds->ds_data, &offset, 8); + } /* .debug_types extra fields. */ - if (!is_info) { + if (!is_info || cu->cu_unit_type == DW_UT_type || + cu->cu_unit_type == DW_UT_split_type) { memcpy(cu->cu_type_sig.signature, (char *) ds->ds_data + offset, 8); offset += 8; @@ -228,12 +260,6 @@ _dwarf_info_load(Dwarf_Debug dbg, Dwarf_Bool load_all, Dwarf_Bool is_info, else STAILQ_INSERT_TAIL(&dbg->dbg_tu, cu, cu_next); - if (cu->cu_version < 2 || cu->cu_version > 4) { - DWARF_SET_ERROR(dbg, error, DW_DLE_VERSION_STAMP_ERROR); - ret = DW_DLE_VERSION_STAMP_ERROR; - break; - } - cu->cu_1st_offset = offset; offset = next_offset; diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_init.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_init.c index 4a407c423ba8..b9026c628a7c 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_init.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_init.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_init.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_init.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009,2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_init.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_init.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_init.c 3136 2014-12-24 16:04:38Z kaiwang27"); static int diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_lineno.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_lineno.c index ba01d249db7c..4722fb2959dc 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_lineno.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_lineno.c @@ -1,7 +1,7 @@ -/* $NetBSD: libdwarf_lineno.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_lineno.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- - * Copyright (c) 2009,2010 Kai Wang + * Copyright (c) 2009,2010,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -28,17 +28,42 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_lineno.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_lineno.c 3164 2015-02-19 01:20:12Z kaiwang27"); +__RCSID("$NetBSD: libdwarf_lineno.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_lineno.c 4019 2023-10-22 03:06:17Z kaiwang27"); + +static int +_dwarf_lineno_make_fullpath(Dwarf_Debug dbg, Dwarf_LineInfo li, + Dwarf_LineFile lf, const char *compdir, Dwarf_Error *error) +{ + const char *dirname; + int slen; + + /* Make full pathname if need. */ + if (*lf->lf_fname != '/') { + dirname = compdir; + if (lf->lf_dirndx > 0) + dirname = li->li_incdirs[lf->lf_dirndx - 1]; + if (dirname != NULL) { + slen = strlen(dirname) + strlen(lf->lf_fname) + 2; + if ((lf->lf_fullpath = malloc(slen)) == NULL) { + DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); + return (DW_DLE_MEMORY); + } + snprintf(lf->lf_fullpath, slen, "%s/%s", dirname, + lf->lf_fname); + } + } + + return (DW_DLE_NONE); +} static int _dwarf_lineno_add_file(Dwarf_LineInfo li, uint8_t **p, const char *compdir, Dwarf_Error *error, Dwarf_Debug dbg) { Dwarf_LineFile lf; - const char *dirname; uint8_t *src; - int slen; + int ret; src = *p; @@ -57,21 +82,10 @@ _dwarf_lineno_add_file(Dwarf_LineInfo li, uint8_t **p, const char *compdir, return (DW_DLE_DIR_INDEX_BAD); } - /* Make full pathname if need. */ - if (*lf->lf_fname != '/') { - dirname = compdir; - if (lf->lf_dirndx > 0) - dirname = li->li_incdirs[lf->lf_dirndx - 1]; - if (dirname != NULL) { - slen = strlen(dirname) + strlen(lf->lf_fname) + 2; - if ((lf->lf_fullpath = malloc(slen)) == NULL) { - free(lf); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - snprintf(lf->lf_fullpath, slen, "%s/%s", dirname, - lf->lf_fname); - } + ret = _dwarf_lineno_make_fullpath(dbg, li, lf, compdir, error); + if (ret != DW_DLE_NONE) { + free(lf); + return (ret); } lf->lf_mtime = _dwarf_decode_uleb128(&src); @@ -250,6 +264,175 @@ prog_fail: #undef ADDRESS } +struct lnct { + unsigned type; + unsigned form; +}; + + +static int +_dwarf_lineno_parse_lnct_desc(Dwarf_Debug dbg, int fmt, struct lnct **lnct, + uint8_t *data, uint64_t *offsetp, Dwarf_Error *error) +{ + int i; + + if (fmt == 0) { + *lnct = NULL; + return (DW_DLE_NONE); + } + + if ((*lnct = calloc(fmt, sizeof(struct lnct))) == NULL) { + DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); + return (DW_DLE_MEMORY); + } + for (i = 0; i < fmt; i++) { + (*lnct)[i].type = _dwarf_read_uleb128(data, offsetp); + (*lnct)[i].form = _dwarf_read_uleb128(data, offsetp); + } + + return (DW_DLE_NONE); +} + +static int +_dwarf_lineno_lnct_path(Dwarf_Debug dbg, char **fname, unsigned form, + uint8_t *data, uint64_t size, uint64_t *offsetp, int dwarf_size, + Dwarf_Error *error) +{ + Dwarf_Unsigned sp; + int ret; + + ret = DW_DLE_NONE; + + switch (form) { + case DW_FORM_string: + *fname = _dwarf_read_string(data, size, offsetp); + break; + case DW_FORM_strp: + sp = dbg->read(data, offsetp, dwarf_size); + *fname = _dwarf_strtab_get_table(dbg) + sp; + break; + case DW_FORM_line_strp: + sp = dbg->read(data, offsetp, dwarf_size); + *fname = _dwarf_strtab_get_line_table(dbg) + sp; + break; + case DW_FORM_strp_sup: + sp = dbg->read(data, offsetp, dwarf_size); + *fname = NULL; /* TODO: support sup string table. */ + break; + default: + ret = DW_DLE_LNCT_DESC_BAD; + DWARF_SET_ERROR(dbg, error, ret); + break; + } + + return (ret); +} + +static int +_dwarf_lineno_lnct_dirndx(Dwarf_Debug dbg, Dwarf_Unsigned *dirndx, + unsigned form, uint8_t *data, uint64_t *offsetp, Dwarf_Error *error) +{ + int ret; + + ret = DW_DLE_NONE; + + switch (form) { + case DW_FORM_data1: + *dirndx = dbg->read(data, offsetp, 1); + break; + case DW_FORM_data2: + *dirndx = dbg->read(data, offsetp, 2); + break; + case DW_FORM_udata: + *dirndx = _dwarf_read_uleb128(data, offsetp); + break; + default: + ret = DW_DLE_LNCT_DESC_BAD; + DWARF_SET_ERROR(dbg, error, ret); + break; + } + + return (ret); +} + +static int +_dwarf_lineno_lnct_timestamp(Dwarf_Debug dbg, Dwarf_Unsigned *ts, + unsigned form, uint8_t *data, uint64_t *offsetp, Dwarf_Error *error) +{ + int ret; + + ret = DW_DLE_NONE; + + switch (form) { + case DW_FORM_udata: + *ts = _dwarf_read_uleb128(data, offsetp); + break; + case DW_FORM_data4: + *ts = dbg->read(data, offsetp, 4); + break; + case DW_FORM_data8: + *ts = dbg->read(data, offsetp, 8); + break; + case DW_FORM_block: + /* TODO: Not supported. */ + default: + ret = DW_DLE_LNCT_DESC_BAD; + DWARF_SET_ERROR(dbg, error, ret); + break; + } + + return (ret); +} + +static int +_dwarf_lineno_lnct_size(Dwarf_Debug dbg, Dwarf_Unsigned *sz, unsigned form, + uint8_t *data, uint64_t *offsetp, Dwarf_Error *error) +{ + int ret; + + ret = DW_DLE_NONE; + + switch (form) { + case DW_FORM_udata: + *sz = _dwarf_read_uleb128(data, offsetp); + break; + case DW_FORM_data1: + *sz = dbg->read(data, offsetp, 1); + break; + case DW_FORM_data2: + *sz = dbg->read(data, offsetp, 2); + break; + case DW_FORM_data4: + *sz = dbg->read(data, offsetp, 4); + break; + case DW_FORM_data8: + *sz = dbg->read(data, offsetp, 8); + break; + default: + ret = DW_DLE_LNCT_DESC_BAD; + DWARF_SET_ERROR(dbg, error, ret); + break; + } + + return (ret); +} + +static int +_dwarf_lineno_lnct_md5(Dwarf_Debug dbg, Dwarf_Form_Data16 *md5, + unsigned form, uint8_t *data, uint64_t *offsetp, Dwarf_Error *error) +{ + + if (form != DW_FORM_data16) { + DWARF_SET_ERROR(dbg, error, DW_DLE_LNCT_DESC_BAD); + return (DW_DLE_LNCT_DESC_BAD); + } + + memcpy(md5->fd_data, data + *offsetp, 16); + offsetp += 16; + + return (DW_DLE_NONE); +} + int _dwarf_lineno_init(Dwarf_Die die, uint64_t offset, Dwarf_Error *error) { @@ -259,10 +442,11 @@ _dwarf_lineno_init(Dwarf_Die die, uint64_t offset, Dwarf_Error *error) Dwarf_Attribute at; Dwarf_LineInfo li; Dwarf_LineFile lf, tlf; + struct lnct *lnct; const char *compdir; uint64_t length, hdroff, endoff; uint8_t *p; - int dwarf_size, i, ret; + int dwarf_size, fmt, i, j, ret; cu = die->die_cu; assert(cu != NULL); @@ -282,6 +466,8 @@ _dwarf_lineno_init(Dwarf_Die die, uint64_t offset, Dwarf_Error *error) if (at != NULL) { switch (at->at_form) { case DW_FORM_strp: + case DW_FORM_strp_sup: + case DW_FORM_line_strp: compdir = at->u[1].s; break; case DW_FORM_string: @@ -314,11 +500,15 @@ _dwarf_lineno_init(Dwarf_Die die, uint64_t offset, Dwarf_Error *error) */ li->li_length = length; endoff = offset + length; - li->li_version = dbg->read(ds->ds_data, &offset, 2); /* FIXME: verify version */ + li->li_version = dbg->read(ds->ds_data, &offset, 2); + if (li->li_version == 5) { + (void) dbg->read(ds->ds_data, &offset, 1); /* TODO */ + (void) dbg->read(ds->ds_data, &offset, 1); /* TODO */ + } li->li_hdrlen = dbg->read(ds->ds_data, &offset, dwarf_size); hdroff = offset; li->li_minlen = dbg->read(ds->ds_data, &offset, 1); - if (li->li_version == 4) + if (li->li_version >= 4) li->li_maxop = dbg->read(ds->ds_data, &offset, 1); li->li_defstmt = dbg->read(ds->ds_data, &offset, 1); li->li_lbase = dbg->read(ds->ds_data, &offset, 1); @@ -347,67 +537,210 @@ _dwarf_lineno_init(Dwarf_Die die, uint64_t offset, Dwarf_Error *error) li->li_oplen[i] = dbg->read(ds->ds_data, &offset, 1); /* - * Check how many strings in the include dir string array. + * Directory and filename parser for DWARF4 and below. */ - length = 0; - p = ds->ds_data + offset; - while (*p != '\0') { - while (*p++ != '\0') - ; - length++; - } - li->li_inclen = length; + if (li->li_version <= 4) { - /* Sanity check. */ - if (p - ds->ds_data > (int) ds->ds_size) { - ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - - if (length != 0) { - if ((li->li_incdirs = malloc(length * sizeof(char *))) == - NULL) { - ret = DW_DLE_MEMORY; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; + /* + * Check how many strings in the include dir string array. + */ + length = 0; + p = ds->ds_data + offset; + while (*p != '\0') { + while (*p++ != '\0') + ; + length++; } - } + li->li_inclen = length; - /* Fill in include dir array. */ - i = 0; - p = ds->ds_data + offset; - while (*p != '\0') { - li->li_incdirs[i++] = (char *) p; - while (*p++ != '\0') - ; - } - - p++; - - /* - * Process file list. - */ - while (*p != '\0') { - ret = _dwarf_lineno_add_file(li, &p, compdir, error, dbg); - if (ret != DW_DLE_NONE) - goto fail_cleanup; + /* Sanity check. */ if (p - ds->ds_data > (int) ds->ds_size) { ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; DWARF_SET_ERROR(dbg, error, ret); goto fail_cleanup; } + + if (length != 0) { + if ((li->li_incdirs = malloc(length * sizeof(char *))) == + NULL) { + ret = DW_DLE_MEMORY; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; + } + } + + /* Fill in include dir array. */ + i = 0; + p = ds->ds_data + offset; + while (*p != '\0') { + li->li_incdirs[i++] = (char *) p; + while (*p++ != '\0') + ; + } + + p++; + + /* + * Process file list. + */ + while (*p != '\0') { + ret = _dwarf_lineno_add_file(li, &p, compdir, error, dbg); + if (ret != DW_DLE_NONE) + goto fail_cleanup; + if (p - ds->ds_data > (int) ds->ds_size) { + ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; + } + } + + p++; + + /* Sanity check. */ + if (p - ds->ds_data - hdroff != li->li_hdrlen) { + ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; + } + + goto lnprog; } - p++; + /* + * DWARF5 has completely overhauled the dir/source file information + * fields, which are incompatible with DWARF4 or lower. + */ - /* Sanity check. */ - if (p - ds->ds_data - hdroff != li->li_hdrlen) { - ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; + lnct = NULL; + fmt = dbg->read(ds->ds_data, &offset, 1); + if ((ret = _dwarf_lineno_parse_lnct_desc(dbg, fmt, &lnct, ds->ds_data, + &offset, error)) != DW_DLE_NONE) + goto fail_cleanup; + + li->li_inclen = dbg->read(ds->ds_data, &offset, 1); + if (li->li_inclen == 0) { + if (fmt > 0) { + free(lnct); + ret = DW_DLE_DIR_COUNT_BAD; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; + } + + goto file_entries; + } + + if (fmt == 0) { + ret = DW_DLE_DIR_COUNT_BAD; DWARF_SET_ERROR(dbg, error, ret); goto fail_cleanup; } + if ((li->li_incdirs = malloc(length * sizeof(char *))) == NULL) { + free(lnct); + ret = DW_DLE_MEMORY; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; + } + for (i = 0; i < li->li_inclen; i++) { + for (j = 0; j < fmt; j++) { + if (lnct[j].type != DW_LNCT_path) { + free(lnct); + ret = DW_DLE_LNCT_DESC_BAD; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; + } + ret = _dwarf_lineno_lnct_path(dbg, &li->li_incdirs[i], + lnct[j].form, ds->ds_data, ds->ds_size, &offset, + dwarf_size, error); + if (ret != DW_DLE_NONE) { + free(lnct); + goto fail_cleanup; + } + } + } + if (lnct) + free(lnct); + +file_entries: + + lnct = NULL; + fmt = dbg->read(ds->ds_data, &offset, 1); + if ((ret = _dwarf_lineno_parse_lnct_desc(dbg, fmt, &lnct, ds->ds_data, + &offset, error)) != DW_DLE_NONE) + goto fail_cleanup; + + li->li_lflen = dbg->read(ds->ds_data, &offset, 1); + if (li->li_lflen == 0) { + if (fmt > 0) { + free(lnct); + ret = DW_DLE_FILE_COUNT_BAD; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; + } + + p = ds->ds_data + offset; + goto lnprog; + } + + for (i = 0; i < li->li_lflen; i++) { + if ((lf = malloc(sizeof(struct _Dwarf_LineFile))) == NULL) { + free(lnct); + ret = DW_DLE_MEMORY; + DWARF_SET_ERROR(dbg, error, ret); + goto fail_cleanup; + } + for (j = 0; j < fmt; j++) { + switch (lnct[j].type) { + case DW_LNCT_path: + ret = _dwarf_lineno_lnct_path(dbg, + &lf->lf_fname, lnct[j].form, ds->ds_data, + ds->ds_size, &offset, dwarf_size, error); + break; + case DW_LNCT_directory_index: + ret = _dwarf_lineno_lnct_dirndx(dbg, + &lf->lf_dirndx, lnct[j].form, ds->ds_data, + &offset, error); + break; + case DW_LNCT_timestamp: + ret = _dwarf_lineno_lnct_timestamp(dbg, + &lf->lf_mtime, lnct[j].form, ds->ds_data, + &offset, error); + break; + case DW_LNCT_size: + ret = _dwarf_lineno_lnct_size(dbg, + &lf->lf_size, lnct[j].form, ds->ds_data, + &offset, error); + break; + case DW_LNCT_MD5: + ret = _dwarf_lineno_lnct_md5(dbg, + &lf->lf_md5, lnct[j].form, ds->ds_data, + &offset, error); + break; + default: + ret = DW_DLE_LNCT_DESC_BAD; + DWARF_SET_ERROR(dbg, error, ret); + break; + } + if (ret != DW_DLE_NONE) { + free(lf); + free(lnct); + goto fail_cleanup; + } + } + ret = _dwarf_lineno_make_fullpath(dbg, li, lf, compdir, error); + if (ret != DW_DLE_NONE) { + free(lf); + free(lnct); + goto fail_cleanup; + } + STAILQ_INSERT_TAIL(&li->li_lflist, lf, lf_next); + } + if (lnct) + free(lnct); + + p = ds->ds_data + offset; + +lnprog: /* * Process line number program. */ diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_loc.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_loc.c index 6a1f0618392c..3faea5a9d216 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_loc.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_loc.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_loc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_loc.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -29,7 +29,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_loc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_loc.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_loc.c 3070 2014-06-23 03:08:33Z kaiwang27"); /* diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_loclist.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_loclist.c index c1ba8773d143..d2947324916e 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_loclist.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_loclist.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_loclist.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_loclist.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009,2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_loclist.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_loclist.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_loclist.c 3061 2014-06-02 00:42:41Z kaiwang27"); static int diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_macinfo.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_macinfo.c index 6cebdc79d4c3..074e8d738477 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_macinfo.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_macinfo.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_macinfo.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_macinfo.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009-2011 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_macinfo.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_macinfo.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_macinfo.c 2974 2013-12-23 06:46:22Z kaiwang27"); #define _FILEINDEX_STACK_SIZE 16384 diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_nametbl.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_nametbl.c index 5e3028813220..d2edf72598b8 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_nametbl.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_nametbl.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_nametbl.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_nametbl.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009,2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_nametbl.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_nametbl.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_nametbl.c 3029 2014-04-21 23:26:02Z kaiwang27"); void diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_ranges.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_ranges.c index 11fe7723260a..466ef713f8df 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_ranges.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_ranges.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_ranges.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_ranges.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2009 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_ranges.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_ranges.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_ranges.c 2972 2013-12-23 06:46:04Z kaiwang27"); static int diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_reloc.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_reloc.c index 92b8f4e97051..f81d267b3748 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_reloc.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_reloc.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_reloc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_reloc.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,51 +28,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_reloc.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_reloc.c 3198 2015-05-14 18:36:19Z emaste"); - -#ifndef R_386_32 -#define R_386_32 1 -#endif -#ifndef R_X86_64_64 -#define R_X86_64_64 1 -#endif -#ifndef R_X86_64_32 -#define R_X86_64_32 10 -#endif -#ifndef R_SPARC_UA32 -#define R_SPARC_UA32 23 -#endif -#ifndef R_SPARC_UA64 -#define R_SPARC_UA64 54 -#endif -#ifndef R_PPC_ADDR32 -#define R_PPC_ADDR32 1 -#endif -#ifndef R_ARM_ABS32 -#define R_ARM_ABS32 2 -#endif -#ifndef R_MIPS_32 -#define R_MIPS_32 2 -#endif -#ifndef R_MIPS_64 -#define R_MIPS_64 18 -#endif -#ifndef R_IA_64_DIR32LSB -#define R_IA_64_DIR32LSB 0x25 -#endif -#ifndef R_IA_64_DIR64LSB -#define R_IA_64_DIR64LSB 0x27 -#endif -#ifndef R_IA_64_SECREL32LSB -#define R_IA_64_SECREL32LSB 0x65 -#endif -#ifndef R_AARCH64_ABS64 -#define R_AARCH64_ABS64 257 -#endif -#ifndef R_AARCH64_ABS32 -#define R_AARCH64_ABS32 258 -#endif +__RCSID("$NetBSD: libdwarf_reloc.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_reloc.c 3741 2019-06-07 06:32:01Z jkoshy"); Dwarf_Unsigned _dwarf_get_reloc_type(Dwarf_P_Debug dbg, int is64) @@ -90,11 +47,13 @@ _dwarf_get_reloc_type(Dwarf_P_Debug dbg, int is64) case DW_ISA_SPARC: return (is64 ? R_SPARC_UA64 : R_SPARC_UA32); case DW_ISA_PPC: - return (R_PPC_ADDR32); + return (is64 ? R_PPC64_ADDR64 : R_PPC_ADDR32); case DW_ISA_ARM: return (R_ARM_ABS32); case DW_ISA_MIPS: return (is64 ? R_MIPS_64 : R_MIPS_32); + case DW_ISA_RISCV: + return (is64 ? R_RISCV_64 : R_RISCV_32); case DW_ISA_IA64: return (is64 ? R_IA_64_DIR64LSB : R_IA_64_DIR32LSB); default: @@ -141,12 +100,24 @@ _dwarf_get_reloc_size(Dwarf_Debug dbg, Dwarf_Unsigned rel_type) if (rel_type == R_PPC_ADDR32) return (4); break; + case EM_PPC64: + if (rel_type == R_PPC_ADDR32) + return (4); + else if (rel_type == R_PPC64_ADDR64) + return (8); + break; case EM_MIPS: if (rel_type == R_MIPS_32) return (4); else if (rel_type == R_MIPS_64) return (8); break; + case EM_RISCV: + if (rel_type == R_RISCV_32) + return (4); + else if (rel_type == R_RISCV_64) + return (8); + break; case EM_IA_64: if (rel_type == R_IA_64_SECREL32LSB) return (4); diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_rw.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_rw.c index 2339f1797050..36bda1101019 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_rw.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_rw.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_rw.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_rw.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) @@ -29,8 +29,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_rw.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_rw.c 3286 2015-12-31 16:45:46Z emaste"); +__RCSID("$NetBSD: libdwarf_rw.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_rw.c 4007 2023-10-12 18:17:02Z kaiwang27"); uint64_t _dwarf_read_lsb(uint8_t *data, uint64_t *offsetp, int bytes_to_read) @@ -47,7 +47,10 @@ _dwarf_read_lsb(uint8_t *data, uint64_t *offsetp, int bytes_to_read) ret |= ((uint64_t) src[6]) << 48 | ((uint64_t) src[7]) << 56; /* FALLTHROUGH */ case 4: - ret |= ((uint64_t) src[2]) << 16 | ((uint64_t) src[3]) << 24; + ret |= ((uint64_t) src[3]) << 24; + /* FALLTHROUGH */ + case 3: + ret |= ((uint64_t) src[2]) << 16; /* FALLTHROUGH */ case 2: ret |= ((uint64_t) src[1]) << 8; @@ -79,7 +82,10 @@ _dwarf_decode_lsb(uint8_t **data, int bytes_to_read) ret |= ((uint64_t) src[6]) << 48 | ((uint64_t) src[7]) << 56; /* FALLTHROUGH */ case 4: - ret |= ((uint64_t) src[2]) << 16 | ((uint64_t) src[3]) << 24; + ret |= ((uint64_t) src[3]) << 24; + /* FALLTHROUGH */ + case 3: + ret |= ((uint64_t) src[2]) << 16; /* FALLTHROUGH */ case 2: ret |= ((uint64_t) src[1]) << 8; @@ -111,6 +117,10 @@ _dwarf_read_msb(uint8_t *data, uint64_t *offsetp, int bytes_to_read) case 2: ret = src[1] | ((uint64_t) src[0]) << 8; break; + case 3: + ret = src[2] | ((uint64_t) src[1]) << 8; + ret |= ((uint64_t) src[0]) << 16; + break; case 4: ret = src[3] | ((uint64_t) src[2]) << 8; ret |= ((uint64_t) src[1]) << 16 | ((uint64_t) src[0]) << 24; @@ -146,6 +156,10 @@ _dwarf_decode_msb(uint8_t **data, int bytes_to_read) case 2: ret = src[1] | ((uint64_t) src[0]) << 8; break; + case 3: + ret = src[2] | ((uint64_t) src[1]) << 8; + ret |= ((uint64_t) src[0]) << 16; + break; case 4: ret = src[3] | ((uint64_t) src[2]) << 8; ret |= ((uint64_t) src[1]) << 16 | ((uint64_t) src[0]) << 24; @@ -158,7 +172,6 @@ _dwarf_decode_msb(uint8_t **data, int bytes_to_read) break; default: return (0); - break; } *data += bytes_to_read; @@ -293,7 +306,7 @@ _dwarf_read_sleb128(uint8_t *data, uint64_t *offsetp) } while ((b & 0x80) != 0); if (shift < 64 && (b & 0x40) != 0) - ret |= (-1 << shift); + ret |= (~0UL << shift); return (ret); } @@ -423,7 +436,7 @@ _dwarf_decode_sleb128(uint8_t **dp) } while ((b & 0x80) != 0); if (shift < 64 && (b & 0x40) != 0) - ret |= (-1 << shift); + ret |= (~0UL << shift); *dp = src; diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_sections.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_sections.c index aa81d31ef3e3..48aaab25293d 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_sections.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_sections.c @@ -1,4 +1,4 @@ -/* $NetBSD: libdwarf_sections.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_sections.c,v 1.5 2024/03/03 17:37:32 christos Exp $ */ /*- * Copyright (c) 2010 Kai Wang @@ -28,7 +28,7 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_sections.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); +__RCSID("$NetBSD: libdwarf_sections.c,v 1.5 2024/03/03 17:37:32 christos Exp $"); ELFTC_VCSID("Id: libdwarf_sections.c 3041 2014-05-18 15:11:03Z kaiwang27"); #define _SECTION_INIT_SIZE 128 diff --git a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_str.c b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_str.c index 46e0f14978cd..115f1e999fb2 100644 --- a/external/bsd/elftoolchain/dist/libdwarf/libdwarf_str.c +++ b/external/bsd/elftoolchain/dist/libdwarf/libdwarf_str.c @@ -1,7 +1,7 @@ -/* $NetBSD: libdwarf_str.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $ */ +/* $NetBSD: libdwarf_str.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- - * Copyright (c) 2009,2010 Kai Wang + * Copyright (c) 2009,2010,2023 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -28,8 +28,8 @@ #include "_libdwarf.h" -__RCSID("$NetBSD: libdwarf_str.c,v 1.4 2022/05/01 17:20:47 jkoshy Exp $"); -ELFTC_VCSID("Id: libdwarf_str.c 2070 2011-10-27 03:05:32Z jkoshy"); +__RCSID("$NetBSD: libdwarf_str.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: libdwarf_str.c 4016 2023-10-15 05:39:46Z kaiwang27"); #define _INIT_DWARF_STRTAB_SIZE 1024 @@ -55,7 +55,7 @@ _dwarf_strtab_add(Dwarf_Debug dbg, char *string, uint64_t *off, if (off != NULL) *off = dbg->dbg_strtab_size; - strncpy(&dbg->dbg_strtab[dbg->dbg_strtab_size], string, len - 1); + memcpy(&dbg->dbg_strtab[dbg->dbg_strtab_size], string, len - 1); dbg->dbg_strtab_size += len; dbg->dbg_strtab[dbg->dbg_strtab_size - 1] = '\0'; @@ -71,6 +71,15 @@ _dwarf_strtab_get_table(Dwarf_Debug dbg) return (dbg->dbg_strtab); } +char * +_dwarf_strtab_get_line_table(Dwarf_Debug dbg) +{ + + assert(dbg != NULL); + + return (dbg->dbg_line_strtab); +} + int _dwarf_strtab_init(Dwarf_Debug dbg, Dwarf_Error *error) { @@ -97,6 +106,11 @@ _dwarf_strtab_init(Dwarf_Debug dbg, Dwarf_Error *error) memcpy(dbg->dbg_strtab, ds->ds_data, ds->ds_size); } else dbg->dbg_strtab = (char *) ds->ds_data; + + ds = _dwarf_find_section(dbg, ".debug_line_str"); + if (ds != NULL) { + dbg->dbg_line_strtab = (char *) ds->ds_data; + } } else { /* DW_DLC_WRITE */ diff --git a/external/bsd/elftoolchain/dist/libelf/_libelf.h b/external/bsd/elftoolchain/dist/libelf/_libelf.h index 33e80b7d50e4..bbe05dd67c9f 100644 --- a/external/bsd/elftoolchain/dist/libelf/_libelf.h +++ b/external/bsd/elftoolchain/dist/libelf/_libelf.h @@ -1,4 +1,4 @@ -/* $NetBSD: _libelf.h,v 1.3 2016/02/20 02:43:42 christos Exp $ */ +/* $NetBSD: _libelf.h,v 1.4 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008-2011 Joseph Koshy @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: _libelf.h 3174 2015-03-27 17:13:41Z emaste + * Id: _libelf.h 3902 2020-11-24 21:17:41Z jkoshy */ #ifndef __LIBELF_H_ @@ -37,10 +37,6 @@ #include "_elftc.h" -#ifndef roundup2 -#define roundup2(x, m) (((x) + (m) - 1) & ~((m) - 1)) -#endif - /* * Library-private data structures. */ @@ -48,6 +44,9 @@ #define LIBELF_MSG_SIZE 256 struct _libelf_globals { + int libelf_arch; + unsigned int libelf_byteorder; + int libelf_class; int libelf_error; int libelf_fillchar; unsigned int libelf_version; @@ -66,7 +65,7 @@ extern struct _libelf_globals _libelf; #define LIBELF_SET_ERROR(E, O) do { \ LIBELF_PRIVATE(error) = LIBELF_ERROR(ELF_E_##E, (O)); \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) #define LIBELF_ADJUST_AR_SIZE(S) (((S) + 1U) & ~1U) @@ -93,7 +92,7 @@ struct _Elf { Elf_Kind e_kind; /* ELF_K_* */ Elf *e_parent; /* non-NULL for archive members */ unsigned char *e_rawfile; /* uninterpreted bytes */ - size_t e_rawsize; /* size of uninterpreted bytes */ + off_t e_rawsize; /* size of uninterpreted bytes */ unsigned int e_version; /* file version */ /* @@ -165,6 +164,7 @@ enum { ELF_TOMEMORY }; + /* * The LIBELF_COPY macros are used to copy fields from a GElf_* * structure to their 32-bit counterparts, while checking for out of @@ -180,7 +180,7 @@ enum { return (0); \ } \ (DST)->NAME = (SRC)->NAME & 0xFFFFFFFFU; \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) #define LIBELF_COPY_S32(DST, SRC, NAME) do { \ if ((SRC)->NAME > INT32_MAX || \ @@ -189,17 +189,19 @@ enum { return (0); \ } \ (DST)->NAME = (int32_t) (SRC)->NAME; \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) /* * Function Prototypes. */ +typedef int _libelf_translator_function(unsigned char *_dst, size_t dsz, + unsigned char *_src, size_t _cnt, int _byteswap); + #ifdef __cplusplus extern "C" { #endif -unsigned int _libelf_host_byteorder(void); struct _Libelf_Data *_libelf_allocate_data(Elf_Scn *_s); Elf *_libelf_allocate_elf(void); Elf_Scn *_libelf_allocate_scn(Elf *_e, size_t _ndx); @@ -210,12 +212,12 @@ Elf_Arsym *_libelf_ar_process_bsd_symtab(Elf *_ar, size_t *_dst); Elf_Arsym *_libelf_ar_process_svr4_symtab(Elf *_ar, size_t *_dst); long _libelf_checksum(Elf *_e, int _elfclass); void *_libelf_ehdr(Elf *_e, int _elfclass, int _allocate); +int _libelf_elfmachine(Elf *_e); unsigned int _libelf_falign(Elf_Type _t, int _elfclass); size_t _libelf_fsize(Elf_Type _t, int _elfclass, unsigned int _version, size_t count); -int (*_libelf_get_translator(Elf_Type _t, int _direction, int _elfclass)) - (unsigned char *_dst, size_t dsz, unsigned char *_src, - size_t _cnt, int _byteswap); +_libelf_translator_function *_libelf_get_translator(Elf_Type _t, + int _direction, int _elfclass, int _elfmachine); void *_libelf_getphdr(Elf *_e, int _elfclass); void *_libelf_getshdr(Elf_Scn *_scn, int _elfclass); void _libelf_init_elf(Elf *_e, Elf_Kind _kind); @@ -226,14 +228,14 @@ size_t _libelf_msize(Elf_Type _t, int _elfclass, unsigned int _version); void *_libelf_newphdr(Elf *_e, int _elfclass, size_t _count); Elf *_libelf_open_object(int _fd, Elf_Cmd _c, int _reporterror); struct _Libelf_Data *_libelf_release_data(struct _Libelf_Data *_d); -Elf *_libelf_release_elf(Elf *_e); +void _libelf_release_elf(Elf *_e); Elf_Scn *_libelf_release_scn(Elf_Scn *_s); int _libelf_setphnum(Elf *_e, void *_eh, int _elfclass, size_t _phnum); int _libelf_setshnum(Elf *_e, void *_eh, int _elfclass, size_t _shnum); int _libelf_setshstrndx(Elf *_e, void *_eh, int _elfclass, size_t _shstrndx); Elf_Data *_libelf_xlate(Elf_Data *_d, const Elf_Data *_s, - unsigned int _encoding, int _elfclass, int _direction); + unsigned int _encoding, int _elfclass, int _elfmachine, int _direction); int _libelf_xlate_shtype(uint32_t _sht); #ifdef __cplusplus } diff --git a/external/bsd/elftoolchain/dist/libelf/_libelf_ar.h b/external/bsd/elftoolchain/dist/libelf/_libelf_ar.h index 3d5d4ad64a54..5d0785926665 100644 --- a/external/bsd/elftoolchain/dist/libelf/_libelf_ar.h +++ b/external/bsd/elftoolchain/dist/libelf/_libelf_ar.h @@ -1,4 +1,4 @@ -/* $NetBSD: _libelf_ar.h,v 1.3 2016/02/20 02:43:42 christos Exp $ */ +/* $NetBSD: _libelf_ar.h,v 1.4 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2010 Joseph Koshy @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: _libelf_ar.h 3013 2014-03-23 06:16:59Z jkoshy + * Id: _libelf_ar.h 3013 2014-03-23 06:16:59Z jkoshy */ #ifndef __LIBELF_AR_H_ diff --git a/external/bsd/elftoolchain/dist/libelf/_libelf_config.h b/external/bsd/elftoolchain/dist/libelf/_libelf_config.h index e3f721732ff2..fa648210ad1b 100644 --- a/external/bsd/elftoolchain/dist/libelf/_libelf_config.h +++ b/external/bsd/elftoolchain/dist/libelf/_libelf_config.h @@ -1,4 +1,4 @@ -/* $NetBSD: _libelf_config.h,v 1.5 2016/02/20 02:43:42 christos Exp $ */ +/* $NetBSD: _libelf_config.h,v 1.6 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2008-2011 Joseph Koshy @@ -25,108 +25,9 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: _libelf_config.h 3396 2016-02-10 21:50:05Z emaste + * Id: _libelf_config.h 3975 2022-04-30 20:10:58Z jkoshy */ -#if defined(__APPLE__) || defined(__DragonFly__) - -#if defined(__amd64__) -#define LIBELF_ARCH EM_X86_64 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 -#elif defined(__i386__) -#define LIBELF_ARCH EM_386 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS32 -#endif - -#endif /* __DragonFly__ */ - -#ifdef __FreeBSD__ - -/* - * Define LIBELF_{ARCH,BYTEORDER,CLASS} based on the machine architecture. - * See also: . - */ - -#if defined(__amd64__) - -#define LIBELF_ARCH EM_X86_64 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__aarch64__) - -#define LIBELF_ARCH EM_AARCH64 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__arm__) - -#define LIBELF_ARCH EM_ARM -#if defined(__ARMEB__) /* Big-endian ARM. */ -#define LIBELF_BYTEORDER ELFDATA2MSB -#else -#define LIBELF_BYTEORDER ELFDATA2LSB -#endif -#define LIBELF_CLASS ELFCLASS32 - -#elif defined(__i386__) - -#define LIBELF_ARCH EM_386 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS32 - -#elif defined(__ia64__) - -#define LIBELF_ARCH EM_IA_64 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__mips__) - -#define LIBELF_ARCH EM_MIPS -#if defined(__MIPSEB__) -#define LIBELF_BYTEORDER ELFDATA2MSB -#else -#define LIBELF_BYTEORDER ELFDATA2LSB -#endif -#define LIBELF_CLASS ELFCLASS32 - -#elif defined(__powerpc__) - -#define LIBELF_ARCH EM_PPC -#define LIBELF_BYTEORDER ELFDATA2MSB -#define LIBELF_CLASS ELFCLASS32 - -#elif defined(__riscv64) - -#define LIBELF_ARCH EM_RISCV -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__sparc__) - -#define LIBELF_ARCH EM_SPARCV9 -#define LIBELF_BYTEORDER ELFDATA2MSB -#define LIBELF_CLASS ELFCLASS64 - -#else -#error Unknown FreeBSD architecture. -#endif -#endif /* __FreeBSD__ */ - -/* - * Definitions for Minix3. - */ -#ifdef __minix - -#define LIBELF_ARCH EM_386 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS32 - -#endif /* __minix */ - #if defined(__NetBSD__) || defined(HAVE_NBTOOL_CONFIG_H) #include @@ -149,45 +50,33 @@ #endif /* __NetBSD__ || HAVE_NBTOOL_CONFIG_H */ -#if defined(__OpenBSD__) - -#include - -#define LIBELF_ARCH ELF_TARG_MACH -#define LIBELF_BYTEORDER ELF_TARG_DATA -#define LIBELF_CLASS ELF_TARG_CLASS - -#endif - /* - * GNU & Linux compatibility. - * - * `__linux__' is defined in an environment runs the Linux kernel and glibc. - * `__GNU__' is defined in an environment runs a GNU kernel (Hurd) and glibc. - * `__GLIBC__' is defined for an environment that runs glibc over a non-GNU - * kernel such as GNU/kFreeBSD. + * Downstream projects can replace the following placeholder with a custom + * definition of LIBELF_BYTEORDER, if the host's native byte order cannot + * be determined using the compilation environment. */ +/* @LIBELF-DEFINE-HOST-BYTEORDER@ */ #ifndef HAVE_NBTOOL_CONFIG_H -#if defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) +#if !defined(LIBELF_BYTEORDER) -#if defined(__linux__) +/* + * Use the __BYTE_ORDER__ and __ORDER_{LITTLE|BIG}_ENDIAN__ macros to + * determine the host's byte order. These macros are predefined by the + * GNU and CLANG C compilers. + */ +#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) -#include "native-elf-format.h" - -#define LIBELF_CLASS ELFTC_CLASS -#define LIBELF_ARCH ELFTC_ARCH -#define LIBELF_BYTEORDER ELFTC_BYTEORDER - -#endif /* defined(__linux__) */ - -#if LIBELF_CLASS == ELFCLASS32 -#define Elf_Note Elf32_Nhdr -#elif LIBELF_CLASS == ELFCLASS64 -#define Elf_Note Elf64_Nhdr +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define LIBELF_BYTEORDER ELFDATA2LSB #else -#error LIBELF_CLASS needs to be one of ELFCLASS32 or ELFCLASS64 +#define LIBELF_BYTEORDER ELFDATA2MSB #endif -#endif /* defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) */ +#else + +#error unknown host byte order + +#endif /* defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) */ +#endif /* !defined(LIBELF_BYTEORDER) */ #endif /* HAVE_NBTOOL_CONFIG_H */ diff --git a/external/bsd/elftoolchain/dist/libelf/elf.3 b/external/bsd/elftoolchain/dist/libelf/elf.3 index 77b2f7a3deef..05b27dd45a4a 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf.3,v 1.5 2021/03/08 20:55:06 jkoshy Exp $ +.\" $NetBSD: elf.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006-2008,2011,2019 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf.c b/external/bsd/elftoolchain/dist/libelf/elf.c index 18f5d95481b6..98148499bb7d 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf.c +++ b/external/bsd/elftoolchain/dist/libelf/elf.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008,2011 Joseph Koshy @@ -26,28 +26,18 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf.c 2225 2011-11-26 18:55:54Z jkoshy"); +__RCSID("$NetBSD: elf.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf.c 3977 2022-05-01 06:45:34Z jkoshy"); struct _libelf_globals _libelf = { + .libelf_byteorder = LIBELF_BYTEORDER, .libelf_error = 0, .libelf_fillchar = 0, .libelf_version = EV_NONE }; - -unsigned int -_libelf_host_byteorder(void) -{ - static union { - uint32_t val; - uint8_t bytes[4]; - } byte_order_check = { - .val = 0xdeadbeef, - }; - - return (byte_order_check.bytes[0] == 0xef ? ELFDATA2LSB : ELFDATA2MSB); -} diff --git a/external/bsd/elftoolchain/dist/libelf/elf_begin.3 b/external/bsd/elftoolchain/dist/libelf/elf_begin.3 index 0070f287e602..6de9e8ea657f 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_begin.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_begin.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_begin.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_begin.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008-2011 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_begin.c b/external/bsd/elftoolchain/dist/libelf/elf_begin.c index cf60bbaf6183..86c0ff772ff5 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_begin.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_begin.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_begin.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_begin.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008-2011 Joseph Koshy @@ -26,12 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_begin.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_begin.c 2364 2011-12-28 17:55:25Z jkoshy"); +__RCSID("$NetBSD: elf_begin.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf_begin.c 3977 2022-05-01 06:45:34Z jkoshy"); Elf * elf_begin(int fd, Elf_Cmd c, Elf *a) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_cntl.3 b/external/bsd/elftoolchain/dist/libelf/elf_cntl.3 index 7fa2c97282df..bc9a23f33b15 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_cntl.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_cntl.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_cntl.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_cntl.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_cntl.c b/external/bsd/elftoolchain/dist/libelf/elf_cntl.c index d7752a9fc7f7..0ad0b710df03 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_cntl.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_cntl.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_cntl.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_cntl.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_cntl.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_cntl.c 2225 2011-11-26 18:55:54Z jkoshy"); +__RCSID("$NetBSD: elf_cntl.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf_cntl.c 3977 2022-05-01 06:45:34Z jkoshy"); int elf_cntl(Elf *e, Elf_Cmd c) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_data.c b/external/bsd/elftoolchain/dist/libelf/elf_data.c index c0fffc4874c7..3f7bf8cb3c0a 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_data.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_data.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_data.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_data.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008,2011 Joseph Koshy @@ -30,6 +30,8 @@ # include "nbtool_config.h" #endif +#include + #include #include #include @@ -38,8 +40,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: elf_data.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_data.c 3258 2015-11-20 18:59:43Z emaste"); +__RCSID("$NetBSD: elf_data.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf_data.c 3977 2022-05-01 06:45:34Z jkoshy"); Elf_Data * elf_getdata(Elf_Scn *s, Elf_Data *ed) @@ -49,9 +51,8 @@ elf_getdata(Elf_Scn *s, Elf_Data *ed) int elfclass, elftype; size_t count, fsz, msz; struct _Libelf_Data *d; - uint64_t sh_align, sh_offset, sh_size; - int (*xlate)(unsigned char *_d, size_t _dsz, unsigned char *_s, - size_t _c, int _swap); + uint64_t sh_align, sh_offset, sh_size, raw_size; + _libelf_translator_function *xlate; d = (struct _Libelf_Data *) ed; @@ -67,7 +68,8 @@ elf_getdata(Elf_Scn *s, Elf_Data *ed) return (&d->d_data); if (d != NULL) - return (&STAILQ_NEXT(d, d_next)->d_data); + return (STAILQ_NEXT(d, d_next) ? + &STAILQ_NEXT(d, d_next)->d_data : NULL); if (e->e_rawfile == NULL) { /* @@ -99,9 +101,10 @@ elf_getdata(Elf_Scn *s, Elf_Data *ed) return (NULL); } + raw_size = (uint64_t) e->e_rawsize; if ((elftype = _libelf_xlate_shtype(sh_type)) < ELF_T_FIRST || elftype > ELF_T_LAST || (sh_type != SHT_NOBITS && - sh_offset + sh_size > (uint64_t) e->e_rawsize)) { + (sh_offset > raw_size || sh_size > raw_size - sh_offset))) { LIBELF_SET_ERROR(SECTION, 0); return (NULL); } @@ -124,7 +127,8 @@ elf_getdata(Elf_Scn *s, Elf_Data *ed) count = (size_t) (sh_size / fsz); - msz = _libelf_msize(elftype, elfclass, e->e_version); + if ((msz = _libelf_msize(elftype, elfclass, e->e_version)) == 0) + return (NULL); if (count > 0 && msz > SIZE_MAX / count) { LIBELF_SET_ERROR(RANGE, 0); @@ -158,10 +162,11 @@ elf_getdata(Elf_Scn *s, Elf_Data *ed) d->d_flags |= LIBELF_F_DATA_MALLOCED; - xlate = _libelf_get_translator(elftype, ELF_TOMEMORY, elfclass); + xlate = _libelf_get_translator(elftype, ELF_TOMEMORY, elfclass, + _libelf_elfmachine(e)); if (!(*xlate)(d->d_data.d_buf, (size_t) d->d_data.d_size, e->e_rawfile + sh_offset, count, - e->e_byteorder != _libelf_host_byteorder())) { + e->e_byteorder != LIBELF_PRIVATE(byteorder))) { _libelf_release_data(d); LIBELF_SET_ERROR(DATA, 0); return (NULL); @@ -222,7 +227,7 @@ elf_rawdata(Elf_Scn *s, Elf_Data *ed) int elf_class; uint32_t sh_type; struct _Libelf_Data *d; - uint64_t sh_align, sh_offset, sh_size; + uint64_t sh_align, sh_offset, sh_size, raw_size; if (s == NULL || (e = s->s_elf) == NULL || e->e_rawfile == NULL) { LIBELF_SET_ERROR(ARGUMENT, 0); @@ -260,8 +265,9 @@ elf_rawdata(Elf_Scn *s, Elf_Data *ed) return (NULL); } + raw_size = (uint64_t) e->e_rawsize; if (sh_type != SHT_NOBITS && - sh_offset + sh_size > (uint64_t) e->e_rawsize) { + (sh_offset > raw_size || sh_size > raw_size - sh_offset)) { LIBELF_SET_ERROR(SECTION, 0); return (NULL); } diff --git a/external/bsd/elftoolchain/dist/libelf/elf_end.3 b/external/bsd/elftoolchain/dist/libelf/elf_end.3 index 3b50338b378c..f1110f43a9fd 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_end.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_end.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_end.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_end.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_end.c b/external/bsd/elftoolchain/dist/libelf/elf_end.c index 056179239b90..94707c651e51 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_end.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_end.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_end.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_end.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008-2009,2011 Joseph Koshy @@ -42,8 +42,8 @@ #include #endif -__RCSID("$NetBSD: elf_end.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_end.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_end.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf_end.c 3977 2022-05-01 06:45:34Z jkoshy"); int elf_end(Elf *e) @@ -90,14 +90,14 @@ elf_end(Elf *e) free(e->e_rawfile); #if ELFTC_HAVE_MMAP else if (e->e_flags & LIBELF_F_RAWFILE_MMAP) - (void) munmap(e->e_rawfile, e->e_rawsize); + (void) munmap(e->e_rawfile, (size_t) e->e_rawsize); #endif } sv = e; if ((e = e->e_parent) != NULL) e->e_u.e_ar.e_nchildren--; - sv = _libelf_release_elf(sv); + _libelf_release_elf(sv); } return (0); diff --git a/external/bsd/elftoolchain/dist/libelf/elf_errmsg.3 b/external/bsd/elftoolchain/dist/libelf/elf_errmsg.3 index 7aa278e64563..908c6865dcc4 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_errmsg.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_errmsg.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_errmsg.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_errmsg.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_errmsg.c b/external/bsd/elftoolchain/dist/libelf/elf_errmsg.c index dc85924b49bf..647883ce5bf6 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_errmsg.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_errmsg.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_errmsg.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_errmsg.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008,2011 Joseph Koshy @@ -26,14 +26,16 @@ * SUCH DAMAGE. */ +#include + #include #include #include #include "_libelf.h" -__RCSID("$NetBSD: elf_errmsg.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_errmsg.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_errmsg.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf_errmsg.c 3977 2022-05-01 06:45:34Z jkoshy"); /* * Retrieve a human readable translation for an error message. diff --git a/external/bsd/elftoolchain/dist/libelf/elf_errno.c b/external/bsd/elftoolchain/dist/libelf/elf_errno.c index 78178d44f112..90ee45e79183 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_errno.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_errno.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_errno.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_errno.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008,2011 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_errno.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_errno.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_errno.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); int elf_errno(void) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_fill.3 b/external/bsd/elftoolchain/dist/libelf/elf_fill.3 index 7ad16d15fb63..73abf56fa113 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_fill.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_fill.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_fill.3,v 1.4 2021/03/08 20:55:06 jkoshy Exp $ +.\" $NetBSD: elf_fill.3,v 1.5 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_fill.c b/external/bsd/elftoolchain/dist/libelf/elf_fill.c index ae3f5292f47a..eb93a938aac9 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_fill.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_fill.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_fill.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_fill.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_fill.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_fill.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_fill.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); void elf_fill(int fill) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_flag.c b/external/bsd/elftoolchain/dist/libelf/elf_flag.c index 31e30cea0e1a..db6d956f1deb 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_flag.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_flag.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_flag.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_flag.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008-2009,2011 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_flag.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_flag.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_flag.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); unsigned int elf_flagarhdr(Elf_Arhdr *a, Elf_Cmd c, unsigned int flags) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_flagdata.3 b/external/bsd/elftoolchain/dist/libelf/elf_flagdata.3 index 323e67cf408a..dad1aba57c0f 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_flagdata.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_flagdata.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_flagdata.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_flagdata.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006-2008,2011 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getarhdr.3 b/external/bsd/elftoolchain/dist/libelf/elf_getarhdr.3 index de63e7c6442b..9a755ba09a59 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getarhdr.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getarhdr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getarhdr.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getarhdr.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getarhdr.c b/external/bsd/elftoolchain/dist/libelf/elf_getarhdr.c index 9c1714c6b22e..cc3152c6d085 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getarhdr.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_getarhdr.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_getarhdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_getarhdr.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008,2010 Joseph Koshy @@ -26,12 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_getarhdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_getarhdr.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_getarhdr.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf_getarhdr.c 3977 2022-05-01 06:45:34Z jkoshy"); Elf_Arhdr * elf_getarhdr(Elf *e) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getarsym.3 b/external/bsd/elftoolchain/dist/libelf/elf_getarsym.3 index ce638dca56aa..677f6dbb647b 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getarsym.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getarsym.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getarsym.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getarsym.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getarsym.c b/external/bsd/elftoolchain/dist/libelf/elf_getarsym.c index 913b52ac4a1a..9fc371fafe2b 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getarsym.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_getarsym.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_getarsym.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_getarsym.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_getarsym.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_getarsym.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_getarsym.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); Elf_Arsym * elf_getarsym(Elf *ar, size_t *ptr) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getbase.3 b/external/bsd/elftoolchain/dist/libelf/elf_getbase.3 index 1da93dbeaf0c..a6c67e784ef9 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getbase.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getbase.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getbase.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getbase.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008,2010 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getbase.c b/external/bsd/elftoolchain/dist/libelf/elf_getbase.c index 9779fb0ff294..7c3cca92799e 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getbase.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_getbase.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_getbase.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_getbase.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_getbase.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_getbase.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_getbase.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); off_t elf_getbase(Elf *e) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getdata.3 b/external/bsd/elftoolchain/dist/libelf/elf_getdata.3 index 047f08ba6559..14aa132830fd 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getdata.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getdata.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getdata.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getdata.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008,2010-2011 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getident.3 b/external/bsd/elftoolchain/dist/libelf/elf_getident.3 index b80e846a40a6..0814f24855c9 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getident.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getident.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getident.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getident.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getident.c b/external/bsd/elftoolchain/dist/libelf/elf_getident.c index ee30255eed2e..5fda8fd8fd2c 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getident.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_getident.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_getident.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_getident.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -29,7 +29,6 @@ #if HAVE_NBTOOL_CONFIG_H # include "nbtool_config.h" #endif - #include #include @@ -38,8 +37,7 @@ #include "_libelf.h" -__RCSID("$NetBSD: elf_getident.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_getident.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_getident.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); char * elf_getident(Elf *e, size_t *sz) @@ -63,7 +61,7 @@ elf_getident(Elf *e, size_t *sz) else if (e->e_kind == ELF_K_ELF) *sz = EI_NIDENT; else - *sz = e->e_rawsize; + *sz = (size_t) e->e_rawsize; } return ((char *) e->e_rawfile); diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getphdrnum.3 b/external/bsd/elftoolchain/dist/libelf/elf_getphdrnum.3 index bc1e50159ea7..7d8464f6ca12 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getphdrnum.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getphdrnum.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getphdrnum.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getphdrnum.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getphnum.3 b/external/bsd/elftoolchain/dist/libelf/elf_getphnum.3 index 96118bd727aa..96e5dd6a68dc 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getphnum.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getphnum.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getphnum.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getphnum.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getscn.3 b/external/bsd/elftoolchain/dist/libelf/elf_getscn.3 index b0c6345bd0cb..201336b675f3 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getscn.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getscn.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getscn.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getscn.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006-2008,2018 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getshdrnum.3 b/external/bsd/elftoolchain/dist/libelf/elf_getshdrnum.3 index 9bb223a70928..3c1b77151ece 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getshdrnum.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getshdrnum.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getshdrnum.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getshdrnum.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getshdrstrndx.3 b/external/bsd/elftoolchain/dist/libelf/elf_getshdrstrndx.3 index 74e9c7a4b615..2fa5ca1f5579 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getshdrstrndx.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getshdrstrndx.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getshdrstrndx.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getshdrstrndx.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getshnum.3 b/external/bsd/elftoolchain/dist/libelf/elf_getshnum.3 index 84cb7d759019..2e08e8b78602 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getshnum.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getshnum.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getshnum.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getshnum.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_getshstrndx.3 b/external/bsd/elftoolchain/dist/libelf/elf_getshstrndx.3 index 68361a0e6189..255486287453 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_getshstrndx.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_getshstrndx.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_getshstrndx.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_getshstrndx.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_hash.3 b/external/bsd/elftoolchain/dist/libelf/elf_hash.3 index 8ec5fcb6a49a..0035fe54f9b5 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_hash.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_hash.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_hash.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_hash.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_hash.c b/external/bsd/elftoolchain/dist/libelf/elf_hash.c index 864d427ed26d..d2ff44f7bcb1 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_hash.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_hash.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_hash.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_hash.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_hash.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_hash.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_hash.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); /* * This elf_hash function is defined by the System V ABI. diff --git a/external/bsd/elftoolchain/dist/libelf/elf_kind.3 b/external/bsd/elftoolchain/dist/libelf/elf_kind.3 index 3fd5935000fe..e188a4f5627c 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_kind.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_kind.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_kind.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_kind.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_kind.c b/external/bsd/elftoolchain/dist/libelf/elf_kind.c index f77f56ada20a..3370f76b4920 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_kind.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_kind.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_kind.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_kind.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_kind.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_kind.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_kind.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); Elf_Kind elf_kind(Elf *e) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_memory.3 b/external/bsd/elftoolchain/dist/libelf/elf_memory.3 index 6f9b861f4af1..86e810c338b3 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_memory.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_memory.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_memory.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_memory.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_memory.c b/external/bsd/elftoolchain/dist/libelf/elf_memory.c index f0cf45e1a192..8750ee103438 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_memory.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_memory.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_memory.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_memory.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_memory.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_memory.c 3013 2014-03-23 06:16:59Z jkoshy"); +__RCSID("$NetBSD: elf_memory.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); Elf * elf_memory(char *image, size_t sz) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_next.3 b/external/bsd/elftoolchain/dist/libelf/elf_next.3 index b9cd393b02e1..2890e90166e8 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_next.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_next.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_next.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_next.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_next.c b/external/bsd/elftoolchain/dist/libelf/elf_next.c index 29a65ebb2486..ef9edfde7395 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_next.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_next.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_next.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_next.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -38,8 +38,7 @@ #include "_libelf.h" -__RCSID("$NetBSD: elf_next.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_next.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_next.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); Elf_Cmd elf_next(Elf *e) @@ -69,5 +68,19 @@ elf_next(Elf *e) parent->e_u.e_ar.e_next = (next >= (off_t) parent->e_rawsize) ? (off_t) 0 : next; + /* + * Return an error if the 'e_next' field falls outside the current + * file. + * + * This check is performed after updating the parent descriptor's + * 'e_next' field so that the next call to elf_begin(3) will terminate + * traversal of a too-small archive even if client code forgets to + * check the return value from elf_next(3). + */ + if (next > (off_t) parent->e_rawsize) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (ELF_C_NULL); + } + return (ELF_C_READ); } diff --git a/external/bsd/elftoolchain/dist/libelf/elf_open.3 b/external/bsd/elftoolchain/dist/libelf/elf_open.3 index b9214b3bf120..351e6a7974a7 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_open.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_open.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_open.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_open.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2012 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_open.c b/external/bsd/elftoolchain/dist/libelf/elf_open.c index d4d6f5668f50..58cd1a81ca5e 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_open.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_open.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_open.c,v 1.3 2016/02/20 02:43:42 christos Exp $ */ +/* $NetBSD: elf_open.c,v 1.4 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2011 Joseph Koshy @@ -26,12 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_open.c,v 1.3 2016/02/20 02:43:42 christos Exp $"); -ELFTC_VCSID("Id"); +__RCSID("$NetBSD: elf_open.c,v 1.4 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf_open.c 3977 2022-05-01 06:45:34Z jkoshy"); /* * Extension API: open a file for reading, ignoring parse errors. diff --git a/external/bsd/elftoolchain/dist/libelf/elf_phnum.c b/external/bsd/elftoolchain/dist/libelf/elf_phnum.c index b5d0b6c94ac9..aa7f7a9ca8dc 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_phnum.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_phnum.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_phnum.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_phnum.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,13 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include #include "_libelf.h" -__RCSID("$NetBSD: elf_phnum.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_phnum.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_phnum.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); static int _libelf_getphdrnum(Elf *e, size_t *phnum) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_rand.3 b/external/bsd/elftoolchain/dist/libelf/elf_rand.3 index 518759029cb1..118aa01a8fb2 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_rand.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_rand.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_rand.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_rand.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_rand.c b/external/bsd/elftoolchain/dist/libelf/elf_rand.c index 939aa3cb24db..aa35a5c536ad 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_rand.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_rand.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_rand.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_rand.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,22 +26,32 @@ * SUCH DAMAGE. */ +#include + #include #include #include "_libelf.h" -__RCSID("$NetBSD: elf_rand.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_rand.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_rand.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); off_t elf_rand(Elf *ar, off_t offset) { struct ar_hdr *arh; + off_t offset_of_member; if (ar == NULL || ar->e_kind != ELF_K_AR || (offset & 1) || offset < SARMAG || - (size_t) offset + sizeof(struct ar_hdr) >= ar->e_rawsize) { + offset >= ar->e_rawsize) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return 0; + } + + offset_of_member = offset + (off_t) sizeof(struct ar_hdr); + + if (offset_of_member <= 0 || /* Numeric overflow. */ + offset_of_member >= ar->e_rawsize) { LIBELF_SET_ERROR(ARGUMENT, 0); return 0; } diff --git a/external/bsd/elftoolchain/dist/libelf/elf_rawfile.3 b/external/bsd/elftoolchain/dist/libelf/elf_rawfile.3 index 943131260b2f..44eb708e0ff2 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_rawfile.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_rawfile.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_rawfile.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_rawfile.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_rawfile.c b/external/bsd/elftoolchain/dist/libelf/elf_rawfile.c index fc75020397ef..6fa9924ca0ec 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_rawfile.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_rawfile.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_rawfile.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_rawfile.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,20 +26,19 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_rawfile.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_rawfile.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_rawfile.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); char * elf_rawfile(Elf *e, size_t *sz) { - size_t size; unsigned char *ptr; - size = e ? e->e_rawsize : 0; ptr = NULL; if (e == NULL) @@ -48,7 +47,7 @@ elf_rawfile(Elf *e, size_t *sz) LIBELF_SET_ERROR(SEQUENCE, 0); if (sz) - *sz = size; + *sz = e ? (size_t) e->e_rawsize : 0; return ((char *) ptr); } diff --git a/external/bsd/elftoolchain/dist/libelf/elf_scn.c b/external/bsd/elftoolchain/dist/libelf/elf_scn.c index e9addf27ad12..67fa7f9a97f6 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_scn.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_scn.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_scn.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_scn.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008-2010 Joseph Koshy @@ -43,8 +43,7 @@ #include "_libelf.h" -__RCSID("$NetBSD: elf_scn.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_scn.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: elf_scn.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); /* * Load an ELF section table and create a list of Elf_Scn structures. @@ -59,22 +58,22 @@ _libelf_load_section_headers(Elf *e, void *ehdr) int ec, swapbytes; unsigned char *src; size_t fsz, i, shnum; - int (*xlator)(unsigned char *_d, size_t _dsz, unsigned char *_s, - size_t _c, int _swap); + _libelf_translator_function *xlator; assert(e != NULL); assert(ehdr != NULL); assert((e->e_flags & LIBELF_F_SHDRS_LOADED) == 0); #define CHECK_EHDR(E,EH) do { \ - if (shoff > e->e_rawsize || \ + uintmax_t rawsize = (uintmax_t) e->e_rawsize; \ + if (shoff > (uintmax_t) e->e_rawsize || \ fsz != (EH)->e_shentsize || \ shnum > SIZE_MAX / fsz || \ - fsz * shnum > e->e_rawsize - shoff) { \ + fsz * shnum > rawsize - shoff) { \ LIBELF_SET_ERROR(HEADER, 0); \ return (0); \ } \ - } while (0) + } while (/* CONSTCOND */ 0) ec = e->e_class; fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, (size_t) 1); @@ -92,9 +91,10 @@ _libelf_load_section_headers(Elf *e, void *ehdr) CHECK_EHDR(e, eh64); } - xlator = _libelf_get_translator(ELF_T_SHDR, ELF_TOMEMORY, ec); + xlator = _libelf_get_translator(ELF_T_SHDR, ELF_TOMEMORY, ec, + _libelf_elfmachine(e)); - swapbytes = e->e_byteorder != _libelf_host_byteorder(); + swapbytes = e->e_byteorder != LIBELF_PRIVATE(byteorder); if (shoff > SSIZE_MAX) { LIBELF_SET_ERROR(HEADER, 0); return (0); diff --git a/external/bsd/elftoolchain/dist/libelf/elf_shnum.c b/external/bsd/elftoolchain/dist/libelf/elf_shnum.c index 57aa7a98ee29..340550dfb1df 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_shnum.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_shnum.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_shnum.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_shnum.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,13 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include #include "_libelf.h" -__RCSID("$NetBSD: elf_shnum.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_shnum.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_shnum.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); static int _libelf_getshdrnum(Elf *e, size_t *shnum) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_shstrndx.c b/external/bsd/elftoolchain/dist/libelf/elf_shstrndx.c index 4141f2c161fb..51d65f154ddc 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_shstrndx.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_shstrndx.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_shstrndx.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_shstrndx.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,13 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include #include "_libelf.h" -__RCSID("$NetBSD: elf_shstrndx.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_shstrndx.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_shstrndx.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); static int _libelf_getshdrstrndx(Elf *e, size_t *strndx) diff --git a/external/bsd/elftoolchain/dist/libelf/elf_strptr.3 b/external/bsd/elftoolchain/dist/libelf/elf_strptr.3 index fe8beaad7e88..c0afea5bb1fb 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_strptr.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_strptr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_strptr.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_strptr.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_strptr.c b/external/bsd/elftoolchain/dist/libelf/elf_strptr.c index 165dccf47385..92d9e8752047 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_strptr.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_strptr.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_strptr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_strptr.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -30,6 +30,7 @@ # include "nbtool_config.h" #endif +#include #include #include @@ -37,8 +38,7 @@ #include "_libelf.h" -__RCSID("$NetBSD: elf_strptr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_strptr.c 2990 2014-03-17 09:56:58Z jkoshy"); +__RCSID("$NetBSD: elf_strptr.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); /* * Convert an ELF section#,offset pair to a string pointer. diff --git a/external/bsd/elftoolchain/dist/libelf/elf_types.m4 b/external/bsd/elftoolchain/dist/libelf/elf_types.m4 index 7a458d1b3389..adc767747177 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_types.m4 +++ b/external/bsd/elftoolchain/dist/libelf/elf_types.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: elf_types.m4,v 1.3 2016/02/20 02:43:42 christos Exp $ */ - +dnl $NetBSD: elf_types.m4,v 1.4 2024/03/03 17:37:33 christos Exp $ /*- * Copyright (c) 2006,2008 Joseph Koshy * All rights reserved. @@ -25,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: elf_types.m4 321 2009-03-07 16:59:14Z jkoshy + * Id: elf_types.m4 321 2009-03-07 16:59:14Z jkoshy */ /* diff --git a/external/bsd/elftoolchain/dist/libelf/elf_update.3 b/external/bsd/elftoolchain/dist/libelf/elf_update.3 index bbfba9f8677c..448522fc3809 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_update.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_update.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_update.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_update.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006-2011 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_update.c b/external/bsd/elftoolchain/dist/libelf/elf_update.c index 25a3d7f1faaf..87136f2a6ccb 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_update.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_update.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_update.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_update.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006-2011 Joseph Koshy @@ -30,6 +30,7 @@ # include "nbtool_config.h" #endif +#include #include #include @@ -47,8 +48,8 @@ #include #endif -__RCSID("$NetBSD: elf_update.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_update.c 3190 2015-05-04 15:23:08Z jkoshy"); +__RCSID("$NetBSD: elf_update.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); +ELFTC_VCSID("Id: elf_update.c 3977 2022-05-01 06:45:34Z jkoshy"); /* * Layout strategy: @@ -149,7 +150,7 @@ _libelf_compute_section_extents(Elf *e, Elf_Scn *s, off_t rc) assert(sh_type != SHT_NULL && sh_type != SHT_NOBITS); elftype = _libelf_xlate_shtype(sh_type); - if (elftype > ELF_T_LAST) { + if (elftype < ELF_T_FIRST || elftype > ELF_T_LAST) { LIBELF_SET_ERROR(SECTION, 0); return (0); } @@ -228,11 +229,17 @@ _libelf_compute_section_extents(Elf *e, Elf_Scn *s, off_t rc) return (0); } + /* + * The data buffer's ELF type, ELF class and ELF version + * should be supported. + */ + if ((msz = _libelf_msize(d->d_type, ec, e->e_version)) == 0) + return (0); + /* * The buffer's size should be a multiple of the * memory size of the underlying type. */ - msz = _libelf_msize(d->d_type, ec, e->e_version); if (d->d_size % msz) { LIBELF_SET_ERROR(DATA, 0); return (0); @@ -591,7 +598,7 @@ _libelf_resync_elf(Elf *e, struct _Elf_Extent_List *extents) (size_t) 1)); \ (E)->e_shentsize = (uint16_t) _libelf_fsize(ELF_T_SHDR, \ (EC), _version, (size_t) 1); \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) if (ec == ELFCLASS32) INITIALIZE_EHDR(eh32, ec, eh_version); @@ -719,8 +726,8 @@ _libelf_resync_elf(Elf *e, struct _Elf_Extent_List *extents) static off_t _libelf_write_scn(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) { - int ec; off_t rc; + int ec, em; Elf_Scn *s; int elftype; Elf_Data *d, dst; @@ -754,6 +761,8 @@ _libelf_write_scn(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) sh_off = s->s_offset; assert(sh_off % _libelf_falign(elftype, ec) == 0); + em = _libelf_elfmachine(e); + /* * If the section has a `rawdata' descriptor, and the section * contents have not been modified, use its contents directly. @@ -804,7 +813,8 @@ _libelf_write_scn(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) d = &ld->d_data; - msz = _libelf_msize(d->d_type, ec, e->e_version); + if ((msz = _libelf_msize(d->d_type, ec, e->e_version)) == 0) + return ((off_t) -1); if ((uint64_t) rc < sh_off + d->d_off) (void) memset(nf + rc, @@ -816,6 +826,7 @@ _libelf_write_scn(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) assert(d->d_buf != NULL); assert(d->d_version == e->e_version); assert(d->d_size % msz == 0); + assert(msz != 0); nobjects = (size_t) (d->d_size / msz); @@ -824,8 +835,8 @@ _libelf_write_scn(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) dst.d_buf = nf + rc; dst.d_size = fsz; - if (_libelf_xlate(&dst, d, e->e_byteorder, ec, ELF_TOFILE) == - NULL) + if (_libelf_xlate(&dst, d, e->e_byteorder, ec, em, ELF_TOFILE) + == NULL) return ((off_t) -1); rc += (off_t) fsz; @@ -841,7 +852,7 @@ _libelf_write_scn(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) static off_t _libelf_write_ehdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) { - int ec; + int ec, em; void *ehdr; size_t fsz, msz; Elf_Data dst, src; @@ -855,7 +866,10 @@ _libelf_write_ehdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) assert(ehdr != NULL); fsz = _libelf_fsize(ELF_T_EHDR, ec, e->e_version, (size_t) 1); - msz = _libelf_msize(ELF_T_EHDR, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_EHDR, ec, e->e_version)) == 0) + return ((off_t) -1); + + em = _libelf_elfmachine(e); (void) memset(&dst, 0, sizeof(dst)); (void) memset(&src, 0, sizeof(src)); @@ -868,7 +882,7 @@ _libelf_write_ehdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) dst.d_buf = nf; dst.d_size = fsz; - if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, ELF_TOFILE) == + if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, ELF_TOFILE) == NULL) return ((off_t) -1); @@ -882,20 +896,22 @@ _libelf_write_ehdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) static off_t _libelf_write_phdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) { - int ec; + int ec, em; void *ehdr; Elf32_Ehdr *eh32; Elf64_Ehdr *eh64; Elf_Data dst, src; - size_t fsz, phnum; + size_t fsz, msz, phnum; uint64_t phoff; assert(ex->ex_type == ELF_EXTENT_PHDR); ec = e->e_class; - ehdr = _libelf_ehdr(e, ec, 0); - phnum = e->e_u.e_elf.e_nphdr; + ehdr = _libelf_ehdr(e, ec, 0); + assert(ehdr != NULL); + + phnum = e->e_u.e_elf.e_nphdr; assert(phnum > 0); if (ec == ELFCLASS32) { @@ -906,6 +922,8 @@ _libelf_write_phdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) phoff = eh64->e_phoff; } + em = _libelf_elfmachine(e); + assert(phoff > 0); assert(ex->ex_start == phoff); assert(phoff % _libelf_falign(ELF_T_PHDR, ec) == 0); @@ -913,19 +931,20 @@ _libelf_write_phdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) (void) memset(&dst, 0, sizeof(dst)); (void) memset(&src, 0, sizeof(src)); + if ((msz = _libelf_msize(ELF_T_PHDR, ec, e->e_version)) == 0) + return ((off_t) -1); fsz = _libelf_fsize(ELF_T_PHDR, ec, e->e_version, phnum); assert(fsz > 0); src.d_buf = _libelf_getphdr(e, ec); src.d_version = dst.d_version = e->e_version; src.d_type = ELF_T_PHDR; - src.d_size = phnum * _libelf_msize(ELF_T_PHDR, ec, - e->e_version); + src.d_size = phnum * msz; dst.d_size = fsz; dst.d_buf = nf + ex->ex_start; - if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, ELF_TOFILE) == + if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, ELF_TOFILE) == NULL) return ((off_t) -1); @@ -939,19 +958,22 @@ _libelf_write_phdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) static off_t _libelf_write_shdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) { - int ec; + int ec, em; void *ehdr; Elf_Scn *scn; uint64_t shoff; Elf32_Ehdr *eh32; Elf64_Ehdr *eh64; - size_t fsz, nscn; + size_t fsz, msz, nscn; Elf_Data dst, src; assert(ex->ex_type == ELF_EXTENT_SHDR); ec = e->e_class; + ehdr = _libelf_ehdr(e, ec, 0); + assert(ehdr != NULL); + nscn = e->e_u.e_elf.e_nscn; if (ec == ELFCLASS32) { @@ -962,6 +984,8 @@ _libelf_write_shdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) shoff = eh64->e_shoff; } + em = _libelf_elfmachine(e); + assert(nscn > 0); assert(shoff % _libelf_falign(ELF_T_SHDR, ec) == 0); assert(ex->ex_start == shoff); @@ -969,8 +993,11 @@ _libelf_write_shdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) (void) memset(&dst, 0, sizeof(dst)); (void) memset(&src, 0, sizeof(src)); + if ((msz = _libelf_msize(ELF_T_SHDR, ec, e->e_version)) == 0) + return ((off_t) -1); + src.d_type = ELF_T_SHDR; - src.d_size = _libelf_msize(ELF_T_SHDR, ec, e->e_version); + src.d_size = msz; src.d_version = dst.d_version = e->e_version; fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, (size_t) 1); @@ -984,8 +1011,8 @@ _libelf_write_shdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) dst.d_size = fsz; dst.d_buf = nf + ex->ex_start + scn->s_ndx * fsz; - if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, - ELF_TOFILE) == NULL) + if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, + ELF_TOFILE) == NULL) return ((off_t) -1); } @@ -1082,7 +1109,7 @@ _libelf_write_elf(Elf *e, off_t newsize, struct _Elf_Extent_List *extents) if (e->e_flags & LIBELF_F_RAWFILE_MMAP) { assert(e->e_rawfile != NULL); assert(e->e_cmd == ELF_C_RDWR); - if (munmap(e->e_rawfile, e->e_rawsize) < 0) { + if (munmap(e->e_rawfile, (size_t) e->e_rawsize) < 0) { LIBELF_SET_ERROR(IO, errno); goto error; } @@ -1107,12 +1134,14 @@ _libelf_write_elf(Elf *e, off_t newsize, struct _Elf_Extent_List *extents) assert((e->e_flags & LIBELF_F_RAWFILE_MALLOC) || (e->e_flags & LIBELF_F_RAWFILE_MMAP)); if (e->e_flags & LIBELF_F_RAWFILE_MALLOC) { + assert((e->e_flags & LIBELF_F_RAWFILE_MMAP) == 0); free(e->e_rawfile); e->e_rawfile = newfile; newfile = NULL; } #if ELFTC_HAVE_MMAP else if (e->e_flags & LIBELF_F_RAWFILE_MMAP) { + assert((e->e_flags & LIBELF_F_RAWFILE_MALLOC) == 0); if ((e->e_rawfile = mmap(NULL, (size_t) newsize, PROT_READ, MAP_PRIVATE, e->e_fd, (off_t) 0)) == MAP_FAILED) { @@ -1123,7 +1152,7 @@ _libelf_write_elf(Elf *e, off_t newsize, struct _Elf_Extent_List *extents) #endif /* ELFTC_HAVE_MMAP */ /* Record the new size of the file. */ - e->e_rawsize = (size_t) newsize; + e->e_rawsize = newsize; } else { /* File opened in ELF_C_WRITE mode. */ assert(e->e_rawfile == NULL); diff --git a/external/bsd/elftoolchain/dist/libelf/elf_version.3 b/external/bsd/elftoolchain/dist/libelf/elf_version.3 index 103916525c1b..8eb48c4ec4b3 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_version.3 +++ b/external/bsd/elftoolchain/dist/libelf/elf_version.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: elf_version.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: elf_version.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/elf_version.c b/external/bsd/elftoolchain/dist/libelf/elf_version.c index 14c145991c68..fe05964b5eec 100644 --- a/external/bsd/elftoolchain/dist/libelf/elf_version.c +++ b/external/bsd/elftoolchain/dist/libelf/elf_version.c @@ -1,4 +1,4 @@ -/* $NetBSD: elf_version.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: elf_version.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,13 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: elf_version.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: elf_version.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: elf_version.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); unsigned int elf_version(unsigned int v) diff --git a/external/bsd/elftoolchain/dist/libelf/gelf.3 b/external/bsd/elftoolchain/dist/libelf/gelf.3 index 37317c31c050..4bf90de351ed 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf.3,v 1.4 2021/03/08 20:55:06 jkoshy Exp $ +.\" $NetBSD: gelf.3,v 1.5 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf.h b/external/bsd/elftoolchain/dist/libelf/gelf.h index b59dcc5c4294..f8933e017797 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf.h +++ b/external/bsd/elftoolchain/dist/libelf/gelf.h @@ -1,4 +1,4 @@ -/* $NetBSD: gelf.h,v 1.3 2016/02/20 02:43:42 christos Exp $ */ +/* $NetBSD: gelf.h,v 1.4 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: gelf.h 3174 2015-03-27 17:13:41Z emaste + * Id: gelf.h 3174 2015-03-27 17:13:41Z emaste */ #ifndef _GELF_H_ diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_cap.c b/external/bsd/elftoolchain/dist/libelf/gelf_cap.c index 473910343ae9..38ea61b5d4d0 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_cap.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_cap.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_cap.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_cap.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -39,8 +39,7 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_cap.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_cap.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_cap.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); GElf_Cap * gelf_getcap(Elf_Data *ed, int ndx, GElf_Cap *dst) @@ -76,9 +75,8 @@ gelf_getcap(Elf_Data *ed, int ndx, GElf_Cap *dst) return (NULL); } - msz = _libelf_msize(ELF_T_CAP, ec, e->e_version); - - assert(msz > 0); + if ((msz = _libelf_msize(ELF_T_CAP, ec, e->e_version)) == 0) + return (NULL); if (msz * (size_t) ndx >= d->d_data.d_size) { LIBELF_SET_ERROR(ARGUMENT, 0); @@ -136,8 +134,8 @@ gelf_update_cap(Elf_Data *ed, int ndx, GElf_Cap *gc) return (0); } - msz = _libelf_msize(ELF_T_CAP, ec, e->e_version); - assert(msz > 0); + if ((msz = _libelf_msize(ELF_T_CAP, ec, e->e_version)) == 0) + return (0); if (msz * (size_t) ndx >= d->d_data.d_size) { LIBELF_SET_ERROR(ARGUMENT, 0); diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_checksum.3 b/external/bsd/elftoolchain/dist/libelf/gelf_checksum.3 index ccc8e9021d36..60d5d3cc3c7b 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_checksum.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_checksum.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_checksum.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_checksum.3,v 1.6 2024/03/03 17:37:33 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_checksum.c b/external/bsd/elftoolchain/dist/libelf/gelf_checksum.c index 69b23465d4a8..958f41e9cc83 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_checksum.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_checksum.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_checksum.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_checksum.c,v 1.5 2024/03/03 17:37:33 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,13 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include #include "_libelf.h" -__RCSID("$NetBSD: gelf_checksum.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_checksum.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: gelf_checksum.c,v 1.5 2024/03/03 17:37:33 christos Exp $"); long elf32_checksum(Elf *e) diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_dyn.c b/external/bsd/elftoolchain/dist/libelf/gelf_dyn.c index 6195de2f65f2..17ba4d227f78 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_dyn.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_dyn.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_dyn.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_dyn.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -39,8 +39,7 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_dyn.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_dyn.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_dyn.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); GElf_Dyn * gelf_getdyn(Elf_Data *ed, int ndx, GElf_Dyn *dst) @@ -76,9 +75,9 @@ gelf_getdyn(Elf_Data *ed, int ndx, GElf_Dyn *dst) return (NULL); } - msz = _libelf_msize(ELF_T_DYN, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_DYN, ec, e->e_version)) == 0) + return (NULL); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { @@ -136,9 +135,9 @@ gelf_update_dyn(Elf_Data *ed, int ndx, GElf_Dyn *ds) return (0); } - msz = _libelf_msize(ELF_T_DYN, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_DYN, ec, e->e_version)) == 0) + return (0); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_ehdr.c b/external/bsd/elftoolchain/dist/libelf/gelf_ehdr.c index 8d5b2348828a..f0933fc6ab8b 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_ehdr.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_ehdr.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_ehdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_ehdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -41,8 +41,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_ehdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_ehdr.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_ehdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_ehdr.c 3977 2022-05-01 06:45:34Z jkoshy"); Elf32_Ehdr * elf32_getehdr(Elf *e) diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_fsize.3 b/external/bsd/elftoolchain/dist/libelf/gelf_fsize.3 index 1a7298a3c812..46a2bf8167f1 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_fsize.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_fsize.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_fsize.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_fsize.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_fsize.c b/external/bsd/elftoolchain/dist/libelf/gelf_fsize.c index 095faf8ef79b..725423a7b8f5 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_fsize.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_fsize.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_fsize.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_fsize.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,13 +26,15 @@ * SUCH DAMAGE. */ +#include + #include #include #include "_libelf.h" -__RCSID("$NetBSD: gelf_fsize.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_fsize.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: gelf_fsize.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_fsize.c 3977 2022-05-01 06:45:34Z jkoshy"); size_t elf32_fsize(Elf_Type t, size_t c, unsigned int v) diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getcap.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getcap.3 index 38b0c8e184ed..f3974118381e 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getcap.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getcap.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getcap.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getcap.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getclass.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getclass.3 index 9c070dc822b1..1c6dd137a828 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getclass.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getclass.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getclass.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getclass.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getclass.c b/external/bsd/elftoolchain/dist/libelf/gelf_getclass.c index 6b090613c83b..bf395a0fb596 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getclass.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getclass.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_getclass.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_getclass.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: gelf_getclass.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_getclass.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: gelf_getclass.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_getclass.c 3977 2022-05-01 06:45:34Z jkoshy"); int gelf_getclass(Elf *e) diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getdyn.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getdyn.3 index 37851ce72015..1d3763792e4a 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getdyn.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getdyn.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getdyn.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getdyn.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getehdr.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getehdr.3 index 84b7c0bb7504..67f4189ed6d9 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getehdr.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getehdr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getehdr.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getehdr.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getmove.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getmove.3 index e5a3028d61c5..7f528c765fca 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getmove.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getmove.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getmove.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getmove.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getphdr.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getphdr.3 index 3d0ddcdf4c1a..e457a045b5e7 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getphdr.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getphdr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getphdr.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getphdr.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006-2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getrel.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getrel.3 index c5f6bbbd8b32..6103b467ab1f 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getrel.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getrel.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getrel.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getrel.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getrela.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getrela.3 index 8d76352d4ad8..af9f903f8091 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getrela.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getrela.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getrela.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getrela.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getshdr.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getshdr.3 index e043d1689434..c8e327e12657 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getshdr.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getshdr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getshdr.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getshdr.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getsym.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getsym.3 index 56324845f403..bbd1a18ac407 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getsym.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getsym.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getsym.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getsym.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getsyminfo.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getsyminfo.3 index 4d68df230485..9daeb3c0df08 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getsyminfo.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getsyminfo.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getsyminfo.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getsyminfo.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_getsymshndx.3 b/external/bsd/elftoolchain/dist/libelf/gelf_getsymshndx.3 index 76b15b85e730..d79855cefab6 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_getsymshndx.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_getsymshndx.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_getsymshndx.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_getsymshndx.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008,2020 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_move.c b/external/bsd/elftoolchain/dist/libelf/gelf_move.c index adc815758c78..2b24d9729eee 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_move.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_move.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_move.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_move.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -39,8 +39,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_move.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_move.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_move.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_move.c 3977 2022-05-01 06:45:34Z jkoshy"); GElf_Move * gelf_getmove(Elf_Data *ed, int ndx, GElf_Move *dst) @@ -76,9 +76,9 @@ gelf_getmove(Elf_Data *ed, int ndx, GElf_Move *dst) return (NULL); } - msz = _libelf_msize(ELF_T_MOVE, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_MOVE, ec, e->e_version)) == 0) + return (NULL); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { @@ -139,9 +139,9 @@ gelf_update_move(Elf_Data *ed, int ndx, GElf_Move *gm) return (0); } - msz = _libelf_msize(ELF_T_MOVE, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_MOVE, ec, e->e_version)) == 0) + return (0); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_newehdr.3 b/external/bsd/elftoolchain/dist/libelf/gelf_newehdr.3 index 195a361142e6..817466c222f8 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_newehdr.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_newehdr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_newehdr.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_newehdr.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006-2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_newphdr.3 b/external/bsd/elftoolchain/dist/libelf/gelf_newphdr.3 index 996e6321d4b2..a621a6a50d90 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_newphdr.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_newphdr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_newphdr.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_newphdr.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006-2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_phdr.c b/external/bsd/elftoolchain/dist/libelf/gelf_phdr.c index c640f454b12c..80166c1c13d5 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_phdr.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_phdr.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_phdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_phdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,6 +26,8 @@ * SUCH DAMAGE. */ +#include + #include #include #include @@ -33,8 +35,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_phdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_phdr.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_phdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_phdr.c 3977 2022-05-01 06:45:34Z jkoshy"); Elf32_Phdr * elf32_getphdr(Elf *e) @@ -56,10 +58,17 @@ gelf_getphdr(Elf *e, int index, GElf_Phdr *d) Elf64_Ehdr *eh64; Elf32_Phdr *ep32; Elf64_Phdr *ep64; + size_t phnum; if (d == NULL || e == NULL || ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) || - (e->e_kind != ELF_K_ELF) || index < 0) { + (e->e_kind != ELF_K_ELF) || index < 0 || + elf_getphdrnum(e, &phnum) < 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((size_t)index >= phnum) { LIBELF_SET_ERROR(ARGUMENT, 0); return (NULL); } @@ -69,11 +78,6 @@ gelf_getphdr(Elf *e, int index, GElf_Phdr *d) ((ep32 = _libelf_getphdr(e, ELFCLASS32)) == NULL)) return (NULL); - if (index >= eh32->e_phnum) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - ep32 += index; d->p_type = ep32->p_type; @@ -90,11 +94,6 @@ gelf_getphdr(Elf *e, int index, GElf_Phdr *d) (ep64 = _libelf_getphdr(e, ELFCLASS64)) == NULL) return (NULL); - if (index >= eh64->e_phnum) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - ep64 += index; *d = *ep64; @@ -128,13 +127,15 @@ gelf_newphdr(Elf *e, size_t count) int gelf_update_phdr(Elf *e, int ndx, GElf_Phdr *s) { - int ec, phnum; + int ec; + size_t phnum; void *ehdr; Elf32_Phdr *ph32; Elf64_Phdr *ph64; if (s == NULL || e == NULL || e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) || + elf_getphdrnum(e, &phnum) < 0) { LIBELF_SET_ERROR(ARGUMENT, 0); return (0); } @@ -147,12 +148,7 @@ gelf_update_phdr(Elf *e, int ndx, GElf_Phdr *s) if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) return (0); - if (ec == ELFCLASS32) - phnum = ((Elf32_Ehdr *) ehdr)->e_phnum; - else - phnum = ((Elf64_Ehdr *) ehdr)->e_phnum; - - if (ndx < 0 || ndx > phnum) { + if (ndx < 0 || (size_t)ndx > phnum) { LIBELF_SET_ERROR(ARGUMENT, 0); return (0); } diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_rel.c b/external/bsd/elftoolchain/dist/libelf/gelf_rel.c index 49fcd7a76083..54a667f1b02a 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_rel.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_rel.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_rel.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_rel.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -39,8 +39,7 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_rel.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_rel.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_rel.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); GElf_Rel * gelf_getrel(Elf_Data *ed, int ndx, GElf_Rel *dst) @@ -76,9 +75,9 @@ gelf_getrel(Elf_Data *ed, int ndx, GElf_Rel *dst) return (NULL); } - msz = _libelf_msize(ELF_T_REL, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_REL, ec, e->e_version)) == 0) + return (NULL); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { @@ -138,9 +137,9 @@ gelf_update_rel(Elf_Data *ed, int ndx, GElf_Rel *dr) return (0); } - msz = _libelf_msize(ELF_T_REL, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_REL, ec, e->e_version)) == 0) + return (0); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { @@ -153,7 +152,7 @@ gelf_update_rel(Elf_Data *ed, int ndx, GElf_Rel *dr) LIBELF_COPY_U32(rel32, dr, r_offset); - if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0UL) || + if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0U) || ELF64_R_TYPE(dr->r_info) > ELF32_R_TYPE(~0U)) { LIBELF_SET_ERROR(RANGE, 0); return (0); diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_rela.c b/external/bsd/elftoolchain/dist/libelf/gelf_rela.c index 83cb11399f2d..d08d14db5902 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_rela.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_rela.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_rela.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_rela.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -39,8 +39,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_rela.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_rela.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_rela.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_rela.c 3977 2022-05-01 06:45:34Z jkoshy"); GElf_Rela * gelf_getrela(Elf_Data *ed, int ndx, GElf_Rela *dst) @@ -76,9 +76,9 @@ gelf_getrela(Elf_Data *ed, int ndx, GElf_Rela *dst) return (NULL); } - msz = _libelf_msize(ELF_T_RELA, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_RELA, ec, e->e_version)) == 0) + return (NULL); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { @@ -139,9 +139,9 @@ gelf_update_rela(Elf_Data *ed, int ndx, GElf_Rela *dr) return (0); } - msz = _libelf_msize(ELF_T_RELA, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_RELA, ec, e->e_version)) == 0) + return (0); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { @@ -154,7 +154,7 @@ gelf_update_rela(Elf_Data *ed, int ndx, GElf_Rela *dr) LIBELF_COPY_U32(rela32, dr, r_offset); - if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0UL) || + if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0U) || ELF64_R_TYPE(dr->r_info) > ELF32_R_TYPE(~0U)) { LIBELF_SET_ERROR(RANGE, 0); return (0); diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_shdr.c b/external/bsd/elftoolchain/dist/libelf/gelf_shdr.c index b00eae2628e6..002c7668e51e 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_shdr.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_shdr.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_shdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_shdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -40,8 +40,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_shdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_shdr.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_shdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_shdr.c 3977 2022-05-01 06:45:34Z jkoshy"); Elf32_Shdr * elf32_getshdr(Elf_Scn *s) diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_sym.c b/external/bsd/elftoolchain/dist/libelf/gelf_sym.c index e017ba5b025c..8317fd303ba5 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_sym.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_sym.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_sym.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_sym.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -39,8 +39,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_sym.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_sym.c 3177 2015-03-30 18:19:41Z emaste"); +__RCSID("$NetBSD: gelf_sym.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_sym.c 3977 2022-05-01 06:45:34Z jkoshy"); GElf_Sym * gelf_getsym(Elf_Data *ed, int ndx, GElf_Sym *dst) @@ -76,9 +76,9 @@ gelf_getsym(Elf_Data *ed, int ndx, GElf_Sym *dst) return (NULL); } - msz = _libelf_msize(ELF_T_SYM, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_SYM, ec, e->e_version)) == 0) + return (NULL); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { @@ -138,9 +138,9 @@ gelf_update_sym(Elf_Data *ed, int ndx, GElf_Sym *gs) return (0); } - msz = _libelf_msize(ELF_T_SYM, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_SYM, ec, e->e_version)) == 0) + return (0); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_syminfo.c b/external/bsd/elftoolchain/dist/libelf/gelf_syminfo.c index 38ce73723b72..2858bbda5758 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_syminfo.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_syminfo.c @@ -1,4 +1,4 @@ -/* $NetBSD: gelf_syminfo.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_syminfo.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -37,8 +37,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_syminfo.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_syminfo.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: gelf_syminfo.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_syminfo.c 3977 2022-05-01 06:45:34Z jkoshy"); GElf_Syminfo * gelf_getsyminfo(Elf_Data *ed, int ndx, GElf_Syminfo *dst) @@ -74,9 +74,9 @@ gelf_getsyminfo(Elf_Data *ed, int ndx, GElf_Syminfo *dst) return (NULL); } - msz = _libelf_msize(ELF_T_SYMINFO, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_SYMINFO, ec, e->e_version)) == 0) + return (NULL); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { @@ -135,9 +135,9 @@ gelf_update_syminfo(Elf_Data *ed, int ndx, GElf_Syminfo *gs) return (0); } - msz = _libelf_msize(ELF_T_SYMINFO, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_SYMINFO, ec, e->e_version)) == 0) + return (0); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= d->d_data.d_size) { diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_symshndx.c b/external/bsd/elftoolchain/dist/libelf/gelf_symshndx.c index f078a4296bdf..c797c12fa890 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_symshndx.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_symshndx.c @@ -1,7 +1,7 @@ -/* $NetBSD: gelf_symshndx.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_symshndx.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- - * Copyright (c) 2006,2008 Joseph Koshy + * Copyright (c) 2006,2008,2020 Joseph Koshy * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,8 +37,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: gelf_symshndx.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_symshndx.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: gelf_symshndx.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_symshndx.c 3977 2022-05-01 06:45:34Z jkoshy"); GElf_Sym * gelf_getsymshndx(Elf_Data *d, Elf_Data *id, int ndx, GElf_Sym *dst, @@ -57,9 +57,16 @@ gelf_getsymshndx(Elf_Data *d, Elf_Data *id, int ndx, GElf_Sym *dst, if (gelf_getsym(d, ndx, dst) == 0) return (NULL); - if (lid == NULL || (scn = lid->d_scn) == NULL || - (e = scn->s_elf) == NULL || (e != ld->d_scn->s_elf) || - shindex == NULL) { + if (shindex == NULL) + return (dst); + + if (lid == NULL) { + *shindex = 0; + return (dst); + } + + if ((scn = lid->d_scn) == NULL || + (e = scn->s_elf) == NULL || (e != ld->d_scn->s_elf)) { LIBELF_SET_ERROR(ARGUMENT, 0); return (NULL); } @@ -78,9 +85,9 @@ gelf_getsymshndx(Elf_Data *d, Elf_Data *id, int ndx, GElf_Sym *dst, return (NULL); } - msz = _libelf_msize(ELF_T_WORD, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_WORD, ec, e->e_version)) == 0) + return (NULL); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= id->d_size) { @@ -130,9 +137,9 @@ gelf_update_symshndx(Elf_Data *d, Elf_Data *id, int ndx, GElf_Sym *gs, return (0); } - msz = _libelf_msize(ELF_T_WORD, ec, e->e_version); + if ((msz = _libelf_msize(ELF_T_WORD, ec, e->e_version)) == 0) + return (0); - assert(msz > 0); assert(ndx >= 0); if (msz * (size_t) ndx >= id->d_size) { diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_update_ehdr.3 b/external/bsd/elftoolchain/dist/libelf/gelf_update_ehdr.3 index f808f7da5c93..b94c5372ea2d 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_update_ehdr.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_update_ehdr.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_update_ehdr.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_update_ehdr.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_xlate.c b/external/bsd/elftoolchain/dist/libelf/gelf_xlate.c index e9e7b7080019..25c529df7bce 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_xlate.c +++ b/external/bsd/elftoolchain/dist/libelf/gelf_xlate.c @@ -1,7 +1,7 @@ -/* $NetBSD: gelf_xlate.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: gelf_xlate.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- - * Copyright (c) 2006,2008 Joseph Koshy + * Copyright (c) 2006,2008,2018 Joseph Koshy * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,37 +26,43 @@ * SUCH DAMAGE. */ +#include + #include #include #include #include "_libelf.h" -__RCSID("$NetBSD: gelf_xlate.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: gelf_xlate.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: gelf_xlate.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: gelf_xlate.c 3977 2022-05-01 06:45:34Z jkoshy"); Elf_Data * elf32_xlatetof(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) { - return _libelf_xlate(dst, src, encoding, ELFCLASS32, ELF_TOFILE); + return _libelf_xlate(dst, src, encoding, ELFCLASS32, EM_NONE, + ELF_TOFILE); } Elf_Data * elf64_xlatetof(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) { - return _libelf_xlate(dst, src, encoding, ELFCLASS64, ELF_TOFILE); + return _libelf_xlate(dst, src, encoding, ELFCLASS64, EM_NONE, + ELF_TOFILE); } Elf_Data * elf32_xlatetom(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) { - return _libelf_xlate(dst, src, encoding, ELFCLASS32, ELF_TOMEMORY); + return _libelf_xlate(dst, src, encoding, ELFCLASS32, EM_NONE, + ELF_TOMEMORY); } Elf_Data * elf64_xlatetom(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) { - return _libelf_xlate(dst, src, encoding, ELFCLASS64, ELF_TOMEMORY); + return _libelf_xlate(dst, src, encoding, ELFCLASS64, EM_NONE, + ELF_TOMEMORY); } Elf_Data * @@ -65,7 +71,7 @@ gelf_xlatetom(Elf *e, Elf_Data *dst, const Elf_Data *src, { if (e != NULL) return (_libelf_xlate(dst, src, encoding, e->e_class, - ELF_TOMEMORY)); + _libelf_elfmachine(e), ELF_TOMEMORY)); LIBELF_SET_ERROR(ARGUMENT, 0); return (NULL); } @@ -76,7 +82,7 @@ gelf_xlatetof(Elf *e, Elf_Data *dst, const Elf_Data *src, { if (e != NULL) return (_libelf_xlate(dst, src, encoding, e->e_class, - ELF_TOFILE)); + _libelf_elfmachine(e), ELF_TOFILE)); LIBELF_SET_ERROR(ARGUMENT, 0); return (NULL); } diff --git a/external/bsd/elftoolchain/dist/libelf/gelf_xlatetof.3 b/external/bsd/elftoolchain/dist/libelf/gelf_xlatetof.3 index 3ccd14c71272..cab4f15702ab 100644 --- a/external/bsd/elftoolchain/dist/libelf/gelf_xlatetof.3 +++ b/external/bsd/elftoolchain/dist/libelf/gelf_xlatetof.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gelf_xlatetof.3,v 1.5 2022/03/12 21:37:55 jkoshy Exp $ +.\" $NetBSD: gelf_xlatetof.3,v 1.6 2024/03/03 17:37:34 christos Exp $ .\" .\" Copyright (c) 2006,2008,2018 Joseph Koshy. All rights reserved. .\" diff --git a/external/bsd/elftoolchain/dist/libelf/libelf.h b/external/bsd/elftoolchain/dist/libelf/libelf.h index ee90d7081b84..2452460959f5 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf.h +++ b/external/bsd/elftoolchain/dist/libelf/libelf.h @@ -1,4 +1,4 @@ -/* $NetBSD: libelf.h,v 1.5 2016/02/20 02:43:42 christos Exp $ */ +/* $NetBSD: libelf.h,v 1.6 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008-2010 Joseph Koshy @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Id: libelf.h 3174 2015-03-27 17:13:41Z emaste + * Id: libelf.h 3984 2022-05-06 11:22:42Z jkoshy */ #ifndef _LIBELF_H_ @@ -36,7 +36,11 @@ #endif -#if HAVE_NBTOOL_CONFIG_H +#ifdef BUILTIN_ELF_HEADERS +# include +# include +# include "elfdefinitions.h" +#elif HAVE_NBTOOL_CONFIG_H # include #elif defined(__NetBSD__) # include @@ -46,7 +50,7 @@ # include # include #else -# error "Unsupported platform" + #error "No valid elf headers" #endif /* Library private data structures */ @@ -222,6 +226,7 @@ int elf_getshdrnum(Elf *_elf, size_t *_dst); int elf_getshnum(Elf *_elf, size_t *_dst); /* Deprecated */ int elf_getshdrstrndx(Elf *_elf, size_t *_dst); int elf_getshstrndx(Elf *_elf, size_t *_dst); /* Deprecated */ +unsigned int elf_getversion(Elf *_elf); unsigned long elf_hash(const void *_name); Elf_Kind elf_kind(Elf *_elf); Elf *elf_memory(char *_image, size_t _size); diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_align.c b/external/bsd/elftoolchain/dist/libelf/libelf_align.c index cde528fab307..ef1007cc1612 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_align.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_align.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_align.c,v 1.5 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_align.c,v 1.6 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -38,8 +38,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_align.c,v 1.5 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_align.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_align.c,v 1.6 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_align.c 3977 2022-05-01 06:45:34Z jkoshy"); struct align { unsigned int a32; @@ -59,6 +59,10 @@ struct align { .a32 = __alignof__(int32_t), \ .a64 = __alignof__(int64_t) \ } +#elif defined(__lint__) +#define MALIGN(N) { .a32 = 0, .a64 = 0 } +#define MALIGN64(N) { .a32 = 0, .a64 = 0 } +#define MALIGN_WORD(N) { .a32 = 0, .a64 = 0 } #else #error Need the __alignof__ builtin. #endif @@ -116,7 +120,7 @@ static struct align falign[ELF_T_NUM] = { [ELF_T_LWORD] = FALIGN(8,8), [ELF_T_MOVE] = FALIGN(8,8), [ELF_T_MOVEP] = UNSUPPORTED(), - [ELF_T_NOTE] = FALIGN(1,1), + [ELF_T_NOTE] = FALIGN(4,4), [ELF_T_OFF] = FALIGN(4,8), [ELF_T_PHDR] = FALIGN(4,8), [ELF_T_REL] = FALIGN(4,8), diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_allocate.c b/external/bsd/elftoolchain/dist/libelf/libelf_allocate.c index d368b947db46..1001b17e4f7f 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_allocate.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_allocate.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_allocate.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_allocate.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008,2010 Joseph Koshy @@ -34,6 +34,8 @@ * Internal APIs */ +#include + #include #include #include @@ -42,34 +44,27 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_allocate.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_allocate.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_allocate.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_allocate.c 3977 2022-05-01 06:45:34Z jkoshy"); Elf * _libelf_allocate_elf(void) { Elf *e; - if ((e = malloc(sizeof(*e))) == NULL) { + if ((e = calloc((size_t) 1, sizeof(*e))) == NULL) { LIBELF_SET_ERROR(RESOURCE, errno); return NULL; } e->e_activations = 1; - e->e_hdr.e_rawhdr = NULL; e->e_byteorder = ELFDATANONE; e->e_class = ELFCLASSNONE; e->e_cmd = ELF_C_NULL; e->e_fd = -1; - e->e_flags = 0; e->e_kind = ELF_K_NONE; - e->e_parent = NULL; - e->e_rawfile = NULL; - e->e_rawsize = 0; e->e_version = LIBELF_PRIVATE(version); - (void) memset(&e->e_u, 0, sizeof(e->e_u)); - return (e); } @@ -90,31 +85,25 @@ _libelf_init_elf(Elf *e, Elf_Kind kind) } } -#define FREE(P) do { \ - if (P) \ - free(P); \ - } while (/*CONSTCOND*/0) - - -Elf * +void _libelf_release_elf(Elf *e) { Elf_Arhdr *arh; switch (e->e_kind) { case ELF_K_AR: - FREE(e->e_u.e_ar.e_symtab); + free(e->e_u.e_ar.e_symtab); break; case ELF_K_ELF: switch (e->e_class) { case ELFCLASS32: - FREE(e->e_u.e_elf.e_ehdr.e_ehdr32); - FREE(e->e_u.e_elf.e_phdr.e_phdr32); + free(e->e_u.e_elf.e_ehdr.e_ehdr32); + free(e->e_u.e_elf.e_phdr.e_phdr32); break; case ELFCLASS64: - FREE(e->e_u.e_elf.e_ehdr.e_ehdr64); - FREE(e->e_u.e_elf.e_phdr.e_phdr64); + free(e->e_u.e_elf.e_ehdr.e_ehdr64); + free(e->e_u.e_elf.e_phdr.e_phdr64); break; } @@ -122,8 +111,8 @@ _libelf_release_elf(Elf *e) if (e->e_flags & LIBELF_F_AR_HEADER) { arh = e->e_hdr.e_arhdr; - FREE(arh->ar_name); - FREE(arh->ar_rawname); + free(arh->ar_name); + free(arh->ar_rawname); free(arh); } @@ -134,8 +123,6 @@ _libelf_release_elf(Elf *e) } free(e); - - return (NULL); } struct _Libelf_Data * diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_ar.c b/external/bsd/elftoolchain/dist/libelf/libelf_ar.c index 6f67f3bf21a0..47a298b563d4 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_ar.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_ar.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_ar.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_ar.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008,2010 Joseph Koshy @@ -41,8 +41,8 @@ #include "_libelf.h" #include "_libelf_ar.h" -__RCSID("$NetBSD: libelf_ar.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_ar.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_ar.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_ar.c 3977 2022-05-01 06:45:34Z jkoshy"); #define LIBELF_NALLOC_SIZE 16 @@ -73,7 +73,7 @@ ELFTC_VCSID("Id: libelf_ar.c 3174 2015-03-27 17:13:41Z emaste"); * table where the actual file name of the object starts. Strings in * the string table are padded to start on even addresses. * - * In the BSD format, file names can be upto 16 characters. File + * In the BSD format, file names can be up to 16 characters. File * names shorter than 16 characters are padded to 16 characters using * (ASCII) space characters. File names with embedded spaces and file * names longer than 16 characters are stored immediately after the @@ -132,8 +132,16 @@ _libelf_ar_gethdr(Elf *e) arh = (struct ar_hdr *) (uintptr_t) e->e_hdr.e_rawhdr; assert((uintptr_t) arh >= (uintptr_t) parent->e_rawfile + SARMAG); - assert((uintptr_t) arh <= (uintptr_t) parent->e_rawfile + - parent->e_rawsize - sizeof(struct ar_hdr)); + + /* + * There needs to be enough space remaining in the file for the + * archive header. + */ + if ((uintptr_t) arh > (uintptr_t) parent->e_rawfile + + (uintptr_t) parent->e_rawsize - sizeof(struct ar_hdr)) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } if ((eh = malloc(sizeof(Elf_Arhdr))) == NULL) { LIBELF_SET_ERROR(RESOURCE, 0); @@ -208,8 +216,8 @@ Elf * _libelf_ar_open_member(int fd, Elf_Cmd c, Elf *elf) { Elf *e; - off_t next; size_t nsz, sz; + off_t next, end; struct ar_hdr *arh; char *member, *namelen; @@ -226,6 +234,17 @@ _libelf_ar_open_member(int fd, Elf_Cmd c, Elf *elf) assert((next & 1) == 0); + /* + * There needs to be enough space in the file to contain an + * ar(1) header. + */ + end = next + (off_t) sizeof(struct ar_hdr); + if ((uintmax_t) end < (uintmax_t) next || /* Overflow. */ + end > (off_t) elf->e_rawsize) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + arh = (struct ar_hdr *) (elf->e_rawfile + next); /* @@ -237,6 +256,17 @@ _libelf_ar_open_member(int fd, Elf_Cmd c, Elf *elf) return (NULL); } + /* + * Check if the archive member that follows will fit in the + * containing archive. + */ + end += (off_t) sz; + if (end < next || /* Overflow. */ + end > (off_t) elf->e_rawsize) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + /* * Adjust the size field for members in BSD archives using * extended naming. @@ -289,13 +319,14 @@ _libelf_ar_open_member(int fd, Elf_Cmd c, Elf *elf) #define GET_LONG(P, V)do { \ memcpy(&(V), (P), sizeof(long)); \ (P) += sizeof(long); \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) Elf_Arsym * _libelf_ar_process_bsd_symtab(Elf *e, size_t *count) { Elf_Arsym *symtab, *sym; - unsigned int n, nentries; + unsigned int n; + size_t nentries; unsigned char *end, *p, *p0, *s, *s0; const size_t entrysize = 2 * sizeof(long); long arraysize, fileoffset, stroffset, strtabsize; @@ -352,7 +383,7 @@ _libelf_ar_process_bsd_symtab(Elf *e, size_t *count) GET_LONG(p, fileoffset); if (stroffset < 0 || fileoffset < 0 || - (size_t) fileoffset >= e->e_rawsize) + (off_t) fileoffset >= e->e_rawsize) goto symtaberror; s = s0 + stroffset; @@ -399,7 +430,7 @@ symtaberror: (V) += (P)[1]; (V) <<= 8; \ (V) += (P)[2]; (V) <<= 8; \ (V) += (P)[3]; \ - } while (0) + } while (/* CONSTCOND */ 0) #define INTSZ 4 @@ -443,7 +474,7 @@ _libelf_ar_process_svr4_symtab(Elf *e, size_t *count) goto symtaberror; GET_WORD(p, off); - if (off >= e->e_rawsize) + if ((off_t) off >= e->e_rawsize) goto symtaberror; sym->as_off = (off_t) off; diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_ar_util.c b/external/bsd/elftoolchain/dist/libelf/libelf_ar_util.c index dfd210a186ef..2e94b53582ff 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_ar_util.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_ar_util.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_ar_util.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_ar_util.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2009,2010 Joseph Koshy @@ -40,8 +40,8 @@ #include "_libelf.h" #include "_libelf_ar.h" -__RCSID("$NetBSD: libelf_ar_util.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_ar_util.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_ar_util.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_ar_util.c 3977 2022-05-01 06:45:34Z jkoshy"); /* * Convert a string bounded by `start' and `start+sz' (exclusive) to a @@ -277,7 +277,7 @@ _libelf_ar_open(Elf *e, int reporterror) if (_libelf_ar_get_number((char *) (ARH).ar_size, \ sizeof((ARH).ar_size), 10, &(SZ)) == 0) \ goto error; \ - } while (0) + } while (/* CONSTCOND */ 0) READ_AR_HEADER(s, arh, sz, end); diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_checksum.c b/external/bsd/elftoolchain/dist/libelf/libelf_checksum.c index 20881c908acc..2964ab04ee1c 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_checksum.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_checksum.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_checksum.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_checksum.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: libelf_checksum.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_checksum.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_checksum.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_checksum.c 3977 2022-05-01 06:45:34Z jkoshy"); static unsigned long _libelf_sum(unsigned long c, const unsigned char *s, size_t size) diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_convert.m4 b/external/bsd/elftoolchain/dist/libelf/libelf_convert.m4 index c633227929e7..6d98c08ea8be 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_convert.m4 +++ b/external/bsd/elftoolchain/dist/libelf/libelf_convert.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: libelf_convert.m4,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ - +dnl $NetBSD: libelf_convert.m4,v 1.5 2024/03/03 17:37:34 christos Exp $ /*- * Copyright (c) 2006-2011 Joseph Koshy * All rights reserved. @@ -38,8 +37,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_convert.m4,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_convert.m4 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_convert.m4,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_convert.m4 3977 2022-05-01 06:45:34Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ @@ -539,8 +538,8 @@ divert(0) * C macros to byte swap integral quantities. */ -#define SWAP_BYTE(X) do { (void) &(X); } while (/*CONSTCOND*/0) -#define SWAP_IDENT(X) do { (void) &(X); } while (/*CONSTCOND*/0) +#define SWAP_BYTE(X) do { (void) (X); } while (/*CONSTCOND*/0) +#define SWAP_IDENT(X) do { (void) (X); } while (/*CONSTCOND*/0) #define SWAP_HALF(X) do { \ uint16_t _x = (uint16_t) (X); \ uint32_t _t = _x & 0xFFU; \ @@ -591,48 +590,39 @@ divert(0) (P) = _p + 1; \ } while (/*CONSTCOND*/0) #define WRITE_HALF(P,X) do { \ - union { \ - uint16_t val; \ - uint8_t bytes[2]; \ - } _t; \ - unsigned char *const _p = (void *) (P); \ - _t.val = (X); \ - _p[0] = _t.bytes[0]; \ - _p[1] = _t.bytes[1]; \ - (P) = (void *)(_p + 2); \ + uint16_t _t = (X); \ + unsigned char *const _p = (unsigned char *) (P); \ + const unsigned char *const _q = (unsigned char *) &_t; \ + _p[0] = _q[0]; \ + _p[1] = _q[1]; \ + (P) = _p + 2; \ } while (/*CONSTCOND*/0) -#define WRITE_WORD(P,X) do { \ - union { \ - uint32_t val; \ - uint8_t bytes[4]; \ - } _t; \ - unsigned char *const _p = (void *) (P); \ - _t.val = (X); \ - _p[0] = _t.bytes[0]; \ - _p[1] = _t.bytes[1]; \ - _p[2] = _t.bytes[2]; \ - _p[3] = _t.bytes[3]; \ - (P) = (void *)(_p + 4); \ +#define WRITE_WORD(P,X) do { \ + uint32_t _t = (uint32_t) (X); \ + unsigned char *const _p = (unsigned char *) (P); \ + const unsigned char *const _q = (unsigned char *) &_t; \ + _p[0] = _q[0]; \ + _p[1] = _q[1]; \ + _p[2] = _q[2]; \ + _p[3] = _q[3]; \ + (P) = _p + 4; \ } while (/*CONSTCOND*/0) #define WRITE_ADDR32(P,X) WRITE_WORD(P,X) #define WRITE_OFF32(P,X) WRITE_WORD(P,X) #define WRITE_SWORD(P,X) WRITE_WORD(P,X) #define WRITE_WORD64(P,X) do { \ - union { \ - uint64_t val; \ - uint8_t bytes[8]; \ - } _t; \ - unsigned char *const _p = (void *) (P); \ - _t.val = (X); \ - _p[0] = _t.bytes[0]; \ - _p[1] = _t.bytes[1]; \ - _p[2] = _t.bytes[2]; \ - _p[3] = _t.bytes[3]; \ - _p[4] = _t.bytes[4]; \ - _p[5] = _t.bytes[5]; \ - _p[6] = _t.bytes[6]; \ - _p[7] = _t.bytes[7]; \ - (P) = (void *)(_p + 8); \ + uint64_t _t = (uint64_t) (X); \ + unsigned char *const _p = (unsigned char *) (P); \ + const unsigned char *const _q = (unsigned char *) &_t; \ + _p[0] = _q[0]; \ + _p[1] = _q[1]; \ + _p[2] = _q[2]; \ + _p[3] = _q[3]; \ + _p[4] = _q[4]; \ + _p[5] = _q[5]; \ + _p[6] = _q[6]; \ + _p[7] = _q[7]; \ + (P) = _p + 8; \ } while (/*CONSTCOND*/0) #define WRITE_ADDR64(P,X) WRITE_WORD64(P,X) #define WRITE_LWORD(P,X) WRITE_WORD64(P,X) @@ -839,7 +829,7 @@ _libelf_cvt_GNUHASH64_tom(unsigned char *dst, size_t dsz, unsigned char *src, if (dsz < srcsz) /* Destination lacks space. */ return (0); - nchains = srcsz / sizeof(uint32_t); + nchains = (uint32_t) (srcsz / sizeof(uint32_t)); chains = (uint32_t *) (uintptr_t) dst; for (n = 0; n < nchains; n++) { @@ -920,7 +910,7 @@ _libelf_cvt_GNUHASH64_tof(unsigned char *dst, size_t dsz, unsigned char *src, if (dsz < srcsz) return (0); - nchains = srcsz / sizeof(uint32_t); + nchains = (uint32_t) (srcsz / sizeof(uint32_t)); for (n = 0; n < nchains; n++) { t32 = *s32++; if (byteswap) @@ -989,6 +979,7 @@ _libelf_cvt_NOTE_tom(unsigned char *dst, size_t dsz, unsigned char *src, if (count < sz || dsz < sz) /* Buffers are too small. */ return (0); + /* Copy the remainder of the note as-is. */ (void) memcpy(dst, src, sz); src += sz; @@ -1038,10 +1029,12 @@ _libelf_cvt_NOTE_tof(unsigned char *dst, size_t dsz, unsigned char *src, WRITE_WORD(dst, type); src += sizeof(Elf_Note); + count -= sizeof(Elf_Note); if (count < sz) sz = count; + /* Copy the remainder of the note as-is. */ (void) memcpy(dst, src, sz); src += sz; @@ -1088,17 +1081,19 @@ CONVERTER_NAMES(ELF_TYPE_LIST) } }; -int (*_libelf_get_translator(Elf_Type t, int direction, int elfclass)) - (unsigned char *_dst, size_t dsz, unsigned char *_src, size_t _cnt, - int _byteswap) +/* + * Return a translator function for the specified ELF section type, conversion + * direction, ELF class and ELF machine. + */ +_libelf_translator_function * +_libelf_get_translator(Elf_Type t, int direction, int elfclass, int elfmachine) { assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); assert(direction == ELF_TOFILE || direction == ELF_TOMEMORY); + assert(t >= ELF_T_FIRST && t <= ELF_T_LAST); - if (t >= ELF_T_NUM || - (elfclass != ELFCLASS32 && elfclass != ELFCLASS64) || - (direction != ELF_TOFILE && direction != ELF_TOMEMORY)) - return (NULL); + /* TODO: Handle MIPS64 REL{,A} sections (ticket #559). */ + (void) elfmachine; return ((elfclass == ELFCLASS32) ? (direction == ELF_TOFILE ? cvt[t].tof32 : cvt[t].tom32) : diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_data.c b/external/bsd/elftoolchain/dist/libelf/libelf_data.c index be89f0f0655a..6af863e0f956 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_data.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_data.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_data.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_data.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,12 +26,14 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: libelf_data.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_data.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_data.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_data.c 3977 2022-05-01 06:45:34Z jkoshy"); int _libelf_xlate_shtype(uint32_t sht) @@ -92,8 +94,14 @@ _libelf_xlate_shtype(uint32_t sht) * OS, processor and user-defined section types) are * legal, but since we do not know anything more about * their semantics, we return a type of ELF_T_BYTE. + * + * The ELF specification uses 32 bit unsigned values for + * denoting section types, and defines SHT_HIUSER to be + * 0xFFFFFFFFUL (i.e., UINT32_MAX). Consequently, we only + * need to check that 'sht' is greater than or equal to + * SHT_LOOS. */ - if (sht >= SHT_LOOS && sht <= SHT_HIUSER) + if (sht >= SHT_LOOS) return (ELF_T_BYTE); /* diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_ehdr.c b/external/bsd/elftoolchain/dist/libelf/libelf_ehdr.c index 1df04ae76279..a4a766bc472e 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_ehdr.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_ehdr.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_ehdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_ehdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -39,8 +39,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_ehdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_ehdr.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_ehdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_ehdr.c 3977 2022-05-01 06:45:34Z jkoshy"); /* * Retrieve counts for sections, phdrs and the section string table index @@ -50,18 +50,22 @@ static int _libelf_load_extended(Elf *e, int ec, uint64_t shoff, uint16_t phnum, uint16_t strndx) { - Elf_Scn *scn; size_t fsz; - int (*xlator)(unsigned char *_d, size_t _dsz, unsigned char *_s, - size_t _c, int _swap); + Elf_Scn *scn; uint32_t shtype; + _libelf_translator_function *xlator; assert(STAILQ_EMPTY(&e->e_u.e_elf.e_scn)); fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, 1); assert(fsz > 0); - if (e->e_rawsize < shoff + fsz) { /* raw file too small */ + if (shoff + fsz < shoff) { /* Numeric overflow. */ + LIBELF_SET_ERROR(HEADER, 0); + return (0); + } + + if ((uint64_t) e->e_rawsize < shoff + fsz) { LIBELF_SET_ERROR(HEADER, 0); return (0); } @@ -74,10 +78,11 @@ _libelf_load_extended(Elf *e, int ec, uint64_t shoff, uint16_t phnum, return (0); } - xlator = _libelf_get_translator(ELF_T_SHDR, ELF_TOMEMORY, ec); - (*xlator)((void *) &scn->s_shdr, sizeof(scn->s_shdr), + xlator = _libelf_get_translator(ELF_T_SHDR, ELF_TOMEMORY, ec, + _libelf_elfmachine(e)); + (*xlator)((unsigned char *) &scn->s_shdr, sizeof(scn->s_shdr), (unsigned char *) e->e_rawfile + shoff, (size_t) 1, - e->e_byteorder != _libelf_host_byteorder()); + e->e_byteorder != LIBELF_PRIVATE(byteorder)); #define GET_SHDR_MEMBER(M) ((ec == ELFCLASS32) ? scn->s_shdr.s_shdr32.M : \ scn->s_shdr.s_shdr64.M) @@ -114,7 +119,7 @@ _libelf_load_extended(Elf *e, int ec, uint64_t shoff, uint16_t phnum, eh->e_machine = EM_NONE; \ eh->e_type = ELF_K_NONE; \ eh->e_version = LIBELF_PRIVATE(version); \ - } while (/*CONSTCOND*/0) + } while (/* CONSTCOND */ 0) void * _libelf_ehdr(Elf *e, int ec, int allocate) @@ -157,14 +162,13 @@ _libelf_ehdr(Elf *e, int ec, int allocate) fsz = _libelf_fsize(ELF_T_EHDR, ec, e->e_version, (size_t) 1); assert(fsz > 0); - if (e->e_cmd != ELF_C_WRITE && e->e_rawsize < fsz) { + if (e->e_cmd != ELF_C_WRITE && e->e_rawsize < (off_t) fsz) { LIBELF_SET_ERROR(HEADER, 0); return (NULL); } - msz = _libelf_msize(ELF_T_EHDR, ec, EV_CURRENT); - - assert(msz > 0); + if ((msz = _libelf_msize(ELF_T_EHDR, ec, EV_CURRENT)) == 0) + return (NULL); if ((ehdr = calloc((size_t) 1, msz)) == NULL) { LIBELF_SET_ERROR(RESOURCE, 0); @@ -185,14 +189,11 @@ _libelf_ehdr(Elf *e, int ec, int allocate) if (e->e_cmd == ELF_C_WRITE) return (ehdr); - xlator = _libelf_get_translator(ELF_T_EHDR, ELF_TOMEMORY, ec); - (*xlator)((void *)ehdr, msz, e->e_rawfile, (size_t) 1, - e->e_byteorder != _libelf_host_byteorder()); + xlator = _libelf_get_translator(ELF_T_EHDR, ELF_TOMEMORY, ec, + _libelf_elfmachine(e)); + (*xlator)((unsigned char*) ehdr, msz, e->e_rawfile, (size_t) 1, + e->e_byteorder != LIBELF_PRIVATE(byteorder)); - /* - * If extended numbering is being used, read the correct - * number of sections and program header entries. - */ if (ec == ELFCLASS32) { phnum = ((Elf32_Ehdr *) ehdr)->e_phnum; shnum = ((Elf32_Ehdr *) ehdr)->e_shnum; @@ -212,12 +213,19 @@ _libelf_ehdr(Elf *e, int ec, int allocate) return (NULL); } - if (shnum != 0 || shoff == 0LL) { /* not using extended numbering */ + /* + * If extended numbering is being used, read the correct + * number of sections and program header entries. + */ + if ((shnum == 0 && shoff != 0) || phnum == PN_XNUM || strndx == SHN_XINDEX) { + if (_libelf_load_extended(e, ec, shoff, phnum, strndx) == 0) + return (NULL); + } else { + /* not using extended numbering */ e->e_u.e_elf.e_nphdr = phnum; e->e_u.e_elf.e_nscn = shnum; e->e_u.e_elf.e_strndx = strndx; - } else if (_libelf_load_extended(e, ec, shoff, phnum, strndx) == 0) - return (NULL); + } return (ehdr); } diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_elfmachine.c b/external/bsd/elftoolchain/dist/libelf/libelf_elfmachine.c index 81cbf9451455..2e21f48cb7f3 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_elfmachine.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_elfmachine.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_elfmachine.c,v 1.1.1.1 2024/03/03 14:41:47 christos Exp $ */ +/* $NetBSD: libelf_elfmachine.c,v 1.2 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2018 Joseph Koshy @@ -26,6 +26,10 @@ * SUCH DAMAGE. */ +#if HAVE_NBTOOL_CONFIG_H +# include "nbtool_config.h" +#endif + #include #include @@ -33,10 +37,9 @@ #include "_libelf.h" +__RCSID("$NetBSD: libelf_elfmachine.c,v 1.2 2024/03/03 17:37:34 christos Exp $"); ELFTC_VCSID("Id: libelf_elfmachine.c 3977 2022-05-01 06:45:34Z jkoshy"); -__RCSID("$NetBSD: libelf_elfmachine.c,v 1.1.1.1 2024/03/03 14:41:47 christos Exp $"); - /* * A convenience helper that returns the ELF machine architecture for * a ELF descriptor. diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_extended.c b/external/bsd/elftoolchain/dist/libelf/libelf_extended.c index 4c64f17097cc..0d37e2bc9542 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_extended.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_extended.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_extended.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_extended.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -37,8 +37,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_extended.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_extended.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_extended.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_extended.c 3977 2022-05-01 06:45:34Z jkoshy"); /* * Retrieve section #0, allocating a new section if needed. @@ -66,7 +66,7 @@ _libelf_setshnum(Elf *e, void *eh, int ec, size_t shnum) assert(scn->s_ndx == SHN_UNDEF); if (ec == ELFCLASS32) - scn->s_shdr.s_shdr32.sh_size = shnum; + scn->s_shdr.s_shdr32.sh_size = (Elf32_Word) shnum; else scn->s_shdr.s_shdr64.sh_size = shnum; @@ -96,9 +96,9 @@ _libelf_setshstrndx(Elf *e, void *eh, int ec, size_t shstrndx) assert(scn->s_ndx == SHN_UNDEF); if (ec == ELFCLASS32) - scn->s_shdr.s_shdr32.sh_link = shstrndx; + scn->s_shdr.s_shdr32.sh_link = (Elf32_Word) shstrndx; else - scn->s_shdr.s_shdr64.sh_link = shstrndx; + scn->s_shdr.s_shdr64.sh_link = (Elf64_Word) shstrndx; (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); @@ -125,9 +125,9 @@ _libelf_setphnum(Elf *e, void *eh, int ec, size_t phnum) assert(scn->s_ndx == SHN_UNDEF); if (ec == ELFCLASS32) - scn->s_shdr.s_shdr32.sh_info = phnum; + scn->s_shdr.s_shdr32.sh_info = (Elf32_Word) phnum; else - scn->s_shdr.s_shdr64.sh_info = phnum; + scn->s_shdr.s_shdr64.sh_info = (Elf64_Word) phnum; (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_fsize.m4 b/external/bsd/elftoolchain/dist/libelf/libelf_fsize.m4 index 3d1b6032c8fb..97bb9e2d9a2c 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_fsize.m4 +++ b/external/bsd/elftoolchain/dist/libelf/libelf_fsize.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: libelf_fsize.m4,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ - +dnl $NetBSD: libelf_fsize.m4,v 1.5 2024/03/03 17:37:34 christos Exp $ /*- * Copyright (c) 2006,2008-2011 Joseph Koshy * All rights reserved. @@ -26,12 +25,14 @@ * SUCH DAMAGE. */ +#include + #include #include "_libelf.h" -__RCSID("$NetBSD: libelf_fsize.m4,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_fsize.m4 2225 2011-11-26 18:55:54Z jkoshy"); +__RCSID("$NetBSD: libelf_fsize.m4,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_fsize.m4 3977 2022-05-01 06:45:34Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_memory.c b/external/bsd/elftoolchain/dist/libelf/libelf_memory.c index 4af3f925fa9f..24957d08402f 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_memory.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_memory.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_memory.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_memory.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2011 Joseph Koshy @@ -30,6 +30,8 @@ # include "nbtool_config.h" #endif +#include + #include #include #include @@ -37,8 +39,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_memory.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_memory.c 3013 2014-03-23 06:16:59Z jkoshy"); +__RCSID("$NetBSD: libelf_memory.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_memory.c 3977 2022-05-01 06:45:34Z jkoshy"); /* * Create an ELF descriptor for a memory image, optionally reporting @@ -61,7 +63,7 @@ _libelf_memory(unsigned char *image, size_t sz, int reporterror) e->e_cmd = ELF_C_READ; e->e_rawfile = image; - e->e_rawsize = sz; + e->e_rawsize = (off_t) sz; #undef LIBELF_IS_ELF #define LIBELF_IS_ELF(P) ((P)[EI_MAG0] == ELFMAG0 && \ @@ -85,7 +87,7 @@ _libelf_memory(unsigned char *image, size_t sz, int reporterror) if (error != ELF_E_NONE) { if (reporterror) { LIBELF_PRIVATE(error) = LIBELF_ERROR(error, 0); - (void) _libelf_release_elf(e); + _libelf_release_elf(e); return (NULL); } } else { diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_msize.m4 b/external/bsd/elftoolchain/dist/libelf/libelf_msize.m4 index 11316364004c..914e74e83b40 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_msize.m4 +++ b/external/bsd/elftoolchain/dist/libelf/libelf_msize.m4 @@ -1,5 +1,4 @@ -/* $NetBSD: libelf_msize.m4,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ - +dnl $NetBSD: libelf_msize.m4,v 1.5 2024/03/03 17:37:34 christos Exp $ /*- * Copyright (c) 2006,2008-2011 Joseph Koshy * All rights reserved. @@ -38,8 +37,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_msize.m4,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_msize.m4 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_msize.m4,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_msize.m4 3977 2022-05-01 06:45:34Z jkoshy"); /* WARNING: GENERATED FROM __file__. */ @@ -96,6 +95,14 @@ static struct msize msize[ELF_T_NUM] = { MSIZES(ELF_TYPE_LIST) }; +/* + * Returns the memory size of the specified ELF type 't' of ELF + * class 'ec' and ELF version 'version'. + * + * If the specified combination of ELF type, class, and version is + * unsupported then a value of 0 will be returned and the appropriate + * library error code set. + */ size_t _libelf_msize(Elf_Type t, int elfclass, unsigned int version) { @@ -111,5 +118,10 @@ _libelf_msize(Elf_Type t, int elfclass, unsigned int version) sz = (elfclass == ELFCLASS32) ? msize[t].msz32 : msize[t].msz64; + if (sz == 0) { + LIBELF_SET_ERROR(UNIMPL, 0); + return (0); + } + return (sz); } diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_open.c b/external/bsd/elftoolchain/dist/libelf/libelf_open.c index 758d661c9cab..05020069e8b9 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_open.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_open.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_open.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_open.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008-2011 Joseph Koshy @@ -30,6 +30,7 @@ # include "nbtool_config.h" #endif +#include #include #include @@ -45,8 +46,8 @@ #include #endif -__RCSID("$NetBSD: libelf_open.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_open.c 3007 2014-03-22 08:10:14Z jkoshy"); +__RCSID("$NetBSD: libelf_open.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_open.c 3977 2022-05-01 06:45:34Z jkoshy"); #define _LIBELF_INITSIZE (64*1024) @@ -162,7 +163,7 @@ _libelf_open_object(int fd, Elf_Cmd c, int reporterror) if (c == ELF_C_WRITE) { if ((e = _libelf_allocate_elf()) != NULL) { _libelf_init_elf(e, ELF_K_ELF); - e->e_byteorder = _libelf_host_byteorder(); + e->e_byteorder = LIBELF_PRIVATE(byteorder); e->e_fd = fd; e->e_cmd = c; if (!S_ISREG(mode)) diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_phdr.c b/external/bsd/elftoolchain/dist/libelf/libelf_phdr.c index 14c3ae9c6d51..3ecd4254cc6a 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_phdr.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_phdr.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_phdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_phdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -39,8 +39,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_phdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_phdr.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_phdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_phdr.c 3977 2022-05-01 06:45:34Z jkoshy"); void * _libelf_getphdr(Elf *e, int ec) @@ -51,8 +51,7 @@ _libelf_getphdr(Elf *e, int ec) Elf32_Ehdr *eh32; Elf64_Ehdr *eh64; void *ehdr, *phdr; - int (*xlator)(unsigned char *_d, size_t _dsz, unsigned char *_s, - size_t _c, int _swap); + _libelf_translator_function *xlator; assert(ec == ELFCLASS32 || ec == ELFCLASS64); @@ -87,14 +86,18 @@ _libelf_getphdr(Elf *e, int ec) assert(fsz > 0); + if (phoff + fsz < phoff) { /* Numeric overflow. */ + LIBELF_SET_ERROR(HEADER, 0); + return (NULL); + } + if ((uint64_t) e->e_rawsize < (phoff + fsz)) { LIBELF_SET_ERROR(HEADER, 0); return (NULL); } - msz = _libelf_msize(ELF_T_PHDR, ec, EV_CURRENT); - - assert(msz > 0); + if ((msz = _libelf_msize(ELF_T_PHDR, ec, EV_CURRENT)) == 0) + return (NULL); if ((phdr = calloc(phnum, msz)) == NULL) { LIBELF_SET_ERROR(RESOURCE, 0); @@ -107,9 +110,10 @@ _libelf_getphdr(Elf *e, int ec) e->e_u.e_elf.e_phdr.e_phdr64 = phdr; - xlator = _libelf_get_translator(ELF_T_PHDR, ELF_TOMEMORY, ec); + xlator = _libelf_get_translator(ELF_T_PHDR, ELF_TOMEMORY, ec, + _libelf_elfmachine(e)); (*xlator)(phdr, phnum * msz, e->e_rawfile + phoff, phnum, - e->e_byteorder != _libelf_host_byteorder()); + e->e_byteorder != LIBELF_PRIVATE(byteorder)); return (phdr); } @@ -134,9 +138,8 @@ _libelf_newphdr(Elf *e, int ec, size_t count) assert(ec == ELFCLASS32 || ec == ELFCLASS64); assert(e->e_version == EV_CURRENT); - msz = _libelf_msize(ELF_T_PHDR, ec, e->e_version); - - assert(msz > 0); + if ((msz = _libelf_msize(ELF_T_PHDR, ec, e->e_version)) == 0) + return (NULL); newphdr = NULL; if (count > 0 && (newphdr = calloc(count, msz)) == NULL) { diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_shdr.c b/external/bsd/elftoolchain/dist/libelf/libelf_shdr.c index 612b5b5013ab..92515747b1b4 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_shdr.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_shdr.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_shdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_shdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -26,13 +26,15 @@ * SUCH DAMAGE. */ +#include + #include #include #include "_libelf.h" -__RCSID("$NetBSD: libelf_shdr.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_shdr.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_shdr.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_shdr.c 3977 2022-05-01 06:45:34Z jkoshy"); void * _libelf_getshdr(Elf_Scn *s, int ec) diff --git a/external/bsd/elftoolchain/dist/libelf/libelf_xlate.c b/external/bsd/elftoolchain/dist/libelf/libelf_xlate.c index c179593ced0e..a6b67bab9861 100644 --- a/external/bsd/elftoolchain/dist/libelf/libelf_xlate.c +++ b/external/bsd/elftoolchain/dist/libelf/libelf_xlate.c @@ -1,4 +1,4 @@ -/* $NetBSD: libelf_xlate.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $ */ +/* $NetBSD: libelf_xlate.c,v 1.5 2024/03/03 17:37:34 christos Exp $ */ /*- * Copyright (c) 2006,2008 Joseph Koshy @@ -37,8 +37,8 @@ #include "_libelf.h" -__RCSID("$NetBSD: libelf_xlate.c,v 1.4 2022/05/01 19:41:35 jkoshy Exp $"); -ELFTC_VCSID("Id: libelf_xlate.c 3174 2015-03-27 17:13:41Z emaste"); +__RCSID("$NetBSD: libelf_xlate.c,v 1.5 2024/03/03 17:37:34 christos Exp $"); +ELFTC_VCSID("Id: libelf_xlate.c 3977 2022-05-01 06:45:34Z jkoshy"); /* * Translate to/from the file representation of ELF objects. @@ -54,14 +54,15 @@ ELFTC_VCSID("Id: libelf_xlate.c 3174 2015-03-27 17:13:41Z emaste"); Elf_Data * _libelf_xlate(Elf_Data *dst, const Elf_Data *src, unsigned int encoding, - int elfclass, int direction) + int elfclass, int elfmachine, int direction) { int byteswap; size_t cnt, dsz, fsz, msz; uintptr_t sb, se, db, de; + _libelf_translator_function *xlator; if (encoding == ELFDATANONE) - encoding = _libelf_host_byteorder(); + encoding = LIBELF_PRIVATE(byteorder); if ((encoding != ELFDATA2LSB && encoding != ELFDATA2MSB) || dst == NULL || src == NULL || dst == src) { @@ -91,9 +92,8 @@ _libelf_xlate(Elf_Data *dst, const Elf_Data *src, unsigned int encoding, (src->d_type, (size_t) 1, src->d_version)) == 0) return (NULL); - msz = _libelf_msize(src->d_type, elfclass, src->d_version); - - assert(msz > 0); + if ((msz = _libelf_msize(src->d_type, elfclass, src->d_version)) == 0) + return (NULL); if (src->d_size % (direction == ELF_TOMEMORY ? fsz : msz)) { LIBELF_SET_ERROR(DATA, 0); @@ -141,14 +141,15 @@ _libelf_xlate(Elf_Data *dst, const Elf_Data *src, unsigned int encoding, dst->d_type = src->d_type; dst->d_size = dsz; - byteswap = encoding != _libelf_host_byteorder(); + byteswap = encoding != LIBELF_PRIVATE(byteorder); if (src->d_size == 0 || (db == sb && !byteswap && fsz == msz)) return (dst); /* nothing more to do */ - if (!(_libelf_get_translator(src->d_type, direction, elfclass)) - (dst->d_buf, dsz, src->d_buf, cnt, byteswap)) { + xlator = _libelf_get_translator(src->d_type, direction, elfclass, + elfmachine); + if (!xlator(dst->d_buf, dsz, src->d_buf, cnt, byteswap)) { LIBELF_SET_ERROR(DATA, 0); return (NULL); } diff --git a/external/bsd/elftoolchain/dist/tools/netbsd-base-system-import.sh b/external/bsd/elftoolchain/dist/tools/netbsd-base-system-import.sh index efcdf566c6dc..decdefc76c8f 100755 --- a/external/bsd/elftoolchain/dist/tools/netbsd-base-system-import.sh +++ b/external/bsd/elftoolchain/dist/tools/netbsd-base-system-import.sh @@ -46,7 +46,7 @@ while getopts "$options" var; do '?') err "Unknown option: '-$OPTARG'.";; ':') err "Option '-$OPTARG' expects an argument.";; esac - shift $((OPTIND - 1)) +# shift $((OPTIND - 1)) done [ -n "${srcdir}" ] || err "Option -s must be specified." @@ -95,7 +95,7 @@ c \ }' -e \ '/@ELFTC-USE-DOWNSTREAM-VCSID@/ { c \ -__RCSID("$NetBSD: netbsd-base-system-import.sh,v 1.1 2022/05/04 11:07:43 jkoshy Exp $"); +__RCSID("$NetBSD: netbsd-base-system-import.sh,v 1.2 2024/03/03 17:37:34 christos Exp $"); }' -e \ '/@ELFTC-INCLUDE-SYS-CDEFS@/ { c \ @@ -130,7 +130,7 @@ compare_and_move_or_diff() { # Manual pages need a CVS ID, and renaming of their SVN IDs. handle_manual_page() { - echo '.\" $NetBSD: netbsd-base-system-import.sh,v 1.1 2022/05/04 11:07:43 jkoshy Exp $' > ${srctmp} + echo '.\" $NetBSD: netbsd-base-system-import.sh,v 1.2 2024/03/03 17:37:34 christos Exp $' > ${srctmp} echo '.\"' >> ${srctmp} rename_svn_id < ${srcdir}/${1} >> ${srctmp} @@ -140,7 +140,7 @@ handle_manual_page() { # M4 files need a NetBSD RCS Id prepended, and any embedded # VCS IDs transformed. handle_m4_file() { - echo 'dnl $NetBSD: netbsd-base-system-import.sh,v 1.1 2022/05/04 11:07:43 jkoshy Exp $' > ${srctmp} + echo 'dnl $NetBSD: netbsd-base-system-import.sh,v 1.2 2024/03/03 17:37:34 christos Exp $' > ${srctmp} transform_placeholders < ${srcdir}/${1} | \ rename_svn_id >> ${srctmp} diff --git a/external/bsd/elftoolchain/lib/libdwarf/Makefile b/external/bsd/elftoolchain/lib/libdwarf/Makefile index 5ffbb9ccd1f4..63e42753ef51 100644 --- a/external/bsd/elftoolchain/lib/libdwarf/Makefile +++ b/external/bsd/elftoolchain/lib/libdwarf/Makefile @@ -82,6 +82,7 @@ GENSRCS= dwarf_pubnames.c dwarf_pubtypes.c dwarf_weaks.c \ dwarf_pro_funcs.c dwarf_pro_types.c \ dwarf_pro_vars.c CLEANFILES= ${GENSRCS} +CPPFLAGS+= -DBUILTIN_ELF_HEADERS CPPFLAGS+= -I. -I${SRCDIR} -I${TOP}/common -I${TOP}/libelf LIBDPLIBS+= elf ${.CURDIR}/../libelf