freebsd-dev/contrib/elftoolchain/libdwarf
Justin Hibbits d9a48fc632 Add missing powerpc64 relocation support to libdwarf
Summary:
Due to missing relocation support in libdwarf for powerpc64, handling of dwarf
info on unlinked objects was bogus.

Examining raw dwarf data on objects compiled on ppc64 with a modern compiler
(in-tree gcc tends to hide the issue, since it only rarely generates relocations
in .debug_info and uses DW_FORM_str instead of DW_FORM_strp for everything), you
will find that the dwarf data appears corrupt, with repeated references to the
compiler version where things like types and function names should appear.

This happens because the 0 offset of .debug_str contains the compiler version,
and without applying the relocations, *all* indirect strings in .dwarf_info will
end up pointing to it.

This corruption then propogates to the CTF data, as ctfconvert relies on
libdwarf to read the dwarf info, for every compiled object (when building a
kernel.)

However, if you examine the dwarf data on a compiled executable, it will appear
correct, because during final link the relocations get applied and baked in by
the linker.

Submitted by:	Brandon Bergren
Reviewed By:	emaste
Differential Revision: https://reviews.freebsd.org/D20367
2019-05-29 02:02:56 +00:00
..
_libdwarf.h Update ELF Tool Chain to upstream rev 3400 2016-02-12 20:54:02 +00:00
dwarf_abbrev.c
dwarf_add_arange.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_comp_dir.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_const_value_string.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_dataref.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_flag.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_location_expr.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_name.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_producer.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_ref_address.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_reference.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_signed_const.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_string.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_AT_targ_address.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_die_to_debug.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_directory_decl.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_expr_addr.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_expr_gen.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_fde_inst.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_file_decl.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_frame_cie.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_frame_fde.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_funcname.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_line_entry.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_pubname.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_typename.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_varname.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_add_weakname.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_arange.c
dwarf_attr.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_attr.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
dwarf_attrlist.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_attroffset.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_attrval_signed.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_attrval.c Update ELF Tool Chain to upstream r3520 2017-04-17 23:56:48 +00:00
dwarf_child.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_cu.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
dwarf_dealloc.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_dealloc.c
dwarf_def_macro.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_die_abbrev_code.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_die_link.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_die.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
dwarf_diename.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_dieoffset.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_dump.c Add DW_LANG_* definitions from DWARF 4 and 5. 2018-06-09 14:50:38 +00:00
dwarf_end_macro_file.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_errmsg.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_errmsg.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
dwarf_errno.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_expand_frame_instructions.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_expr_current_offset.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_expr_into_block.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_fde_cfa_offset.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_find_macro_value_start.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_finish.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_finish.c
dwarf_form.c
dwarf_formaddr.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_formblock.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_formexprloc.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_formflag.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_formref.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_formsig8.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_formstring.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_formudata.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_frame.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
dwarf_funcs.m4
dwarf_get_abbrev_children_flag.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_abbrev_code.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_abbrev_entry.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_abbrev_tag.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_abbrev.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_address_size.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_arange_info.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_arange.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_aranges.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_AT_name.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_cie_index.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_cie_info.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_cie_of_fde.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_cu_die_offset.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_die_infotypes_flag.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_elf.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_at_pc.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_info_for_all_regs3.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_info_for_all_regs.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_info_for_cfa_reg3.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_info_for_reg3.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_info_for_reg.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_instr_bytes.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_list.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_n.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_fde_range.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_form_class.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_funcs.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_globals.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_loclist_entry.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_macro_details.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_pubtypes.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_ranges.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_relocation_info_count.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_relocation_info.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_section_bytes.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_section_max_offsets.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_str.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_types.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_vars.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_get_weaks.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_hasattr.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_hasform.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_highpc.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_init.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_init.c
dwarf_lineno.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_lineno.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
dwarf_lne_end_sequence.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_lne_set_address.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_loclist_from_expr.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_loclist.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_loclist.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
dwarf_macinfo.c
dwarf_nametbl.m4
dwarf_new_die.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_new_expr.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_new_fde.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_next_cu_header.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_next_types_section.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_object_init.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_pro_arange.c
dwarf_pro_attr.c
dwarf_pro_die.c
dwarf_pro_expr.c
dwarf_pro_finish.c
dwarf_pro_frame.c
dwarf_pro_funcs.m4
dwarf_pro_init.c
dwarf_pro_lineno.c
dwarf_pro_macinfo.c
dwarf_pro_nametbl.m4
dwarf_pro_pubnames.m4
dwarf_pro_reloc.c
dwarf_pro_sections.c
dwarf_pro_types.m4
dwarf_pro_vars.m4
dwarf_pro_weaks.m4
dwarf_producer_init.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_producer_set_isa.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_pubnames.m4
dwarf_pubtypes.m4
dwarf_ranges.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
dwarf_reloc.c Update elftoolchain to upstream revision 3163 2015-02-17 15:19:58 +00:00
dwarf_reset_section_bytes.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_sections.c Update to ELF Tool Chain r3250 2015-10-09 17:46:05 +00:00
dwarf_set_frame_cfa_value.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_set_reloc_application.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_seterrarg.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_seterror.c
dwarf_srcfiles.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_srclines.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_start_macro_file.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_str.c Update ELF Tool Chain to upstream rev 3400 2016-02-12 20:54:02 +00:00
dwarf_tag.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_transform_to_disk_form.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_types.m4
dwarf_undef_macro.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_vars.m4
dwarf_vendor_ext.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf_weaks.m4
dwarf_whatattr.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf.3 Update to ELF Tool Chain r3668 2019-01-10 14:35:23 +00:00
dwarf.h Add DW_LANG_* definitions from DWARF 4 and 5. 2018-06-09 14:50:38 +00:00
libdwarf_abbrev.c Update to ELF Tool Chain r3475 2016-05-20 17:24:34 +00:00
libdwarf_arange.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
libdwarf_attr.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
libdwarf_die.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
libdwarf_elf_access.c
libdwarf_elf_init.c Update to ELF Tool Chain r3475 2016-05-20 17:24:34 +00:00
libdwarf_error.c
libdwarf_frame.c Update ELF Tool Chain to r3614 2018-04-27 13:59:24 +00:00
libdwarf_info.c Update elftoolchain to upstream rev 3136 2014-12-30 03:25:42 +00:00
libdwarf_init.c Update elftoolchain to upstream rev 3136 2014-12-30 03:25:42 +00:00
libdwarf_lineno.c Prepend DW_AT_comp_dir to relative line number directory table entries. 2019-03-27 19:32:21 +00:00
libdwarf_loc.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
libdwarf_loclist.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
libdwarf_macinfo.c
libdwarf_nametbl.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
libdwarf_ranges.c
libdwarf_reloc.c Add missing powerpc64 relocation support to libdwarf 2019-05-29 02:02:56 +00:00
libdwarf_rw.c Update ELF Tool Chain to upstream rev 3400 2016-02-12 20:54:02 +00:00
libdwarf_sections.c Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00
libdwarf_str.c
libdwarf.c Update elftoolchain to upstream revision 3163 2015-02-17 15:19:58 +00:00
libdwarf.h Update ELF Tool Chain to r3614 2018-04-27 13:59:24 +00:00
Makefile Update ELF Tool Chain to r3614 2018-04-27 13:59:24 +00:00
os.NetBSD.mk Update ELF Tool Chain to upstream rev 3400 2016-02-12 20:54:02 +00:00
Version.map Update elftoolchain to upstream rev 3130 2014-12-24 03:13:16 +00:00