]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/ChangeLog
hurd: unwinding support over signal trampolines
[thirdparty/binutils-gdb.git] / gdb / ChangeLog
index 79995c93be09a354d54a04707cbfaaca0402aef3..b2ddb1bef78d4cb43a1e5d147346f7ec11a1b37e 100644 (file)
@@ -1,3 +1,892 @@
+2020-05-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * i386-gnu-tdep.c: Include "gdbcore.h"
+       (gnu_sigtramp_code, i386_gnu_sc_reg_offset): New arrays.
+       (GNU_SIGTRAMP_LEN, GNU_SIGTRAMP_TAIL,
+       I386_GNU_SIGCONTEXT_THREAD_STATE_OFFSET): New macros
+       (i386_gnu_sigtramp_start, i386_gnu_sigtramp_p,
+       i386_gnu_sigcontext_addr): New functions
+       (i386gnu_init_abi): Register i386_gnu_sigtramp_p,
+       i386_gnu_sigcontext_addr, and i386_gnu_sc_reg_offset in the gdbarch
+       tdep.
+
+2020-05-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * gnu-nat.c (gnu_nat_target::create_inferior): Move push_target call
+       before fork_inferior call. Avoid calling it if target_is_pushed returns
+       true.
+
+2020-05-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * gnu-nat.h (gnu_target): New variable declaration.
+       * i386-gnu-nat.c (_initialize_i386gnu_nat): Initialize
+       gnu_target.
+       * gnu-nat.c (gnu_target): New variable.
+       (inf_validate_procs): Pass gnu_target to thread_change_ptid,
+       add_thread_silent, and add_thread calls.
+       (gnu_nat_target::create_inferior): Pass gnu_target to
+       add_thread_silent, thread_change_ptid call.
+       (gnu_nat_target::detach): Pass gnu_target to detach_inferior
+       call.
+
+2020-05-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * gnu-nat.c (gnu_xfer_auxv): Remove unused `res' variable.
+       (gnu_nat_target::find_memory_regions): Remove unused
+       `old_address' variable.
+
+2020-05-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * gnu-nat.c: Include "gdbarch.h".
+
+2020-05-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * reply_mig_hack.awk (Error return): Cast function through
+       void *, to bypass compiler function call check.
+
+2020-05-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * config/i386/i386gnu.mn (%_reply_S.c): Add dependency on
+       $(srcdir)/reply_mig_hack.awk.
+
+2020-05-30  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * gnu-nat.h (gnu_debug_flag): Set type to bool.
+
+2020-05-30  Jonny Grant  <jg@jguk.org>
+
+       * configure.ac (ACX_BUGURL): change bug URL to https.
+
+2020-05-30  Pedro Alves  <palves@redhat.com>
+
+       * cp-support.c (replace_typedefs_template): New.
+       (replace_typedefs_qualified_name): Handle
+       DEMANGLE_COMPONENT_TEMPLATE.
+
+2020-05-29  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/comp-unit.c, dwarf2/comp-unit.h, dwarf2/index-cache.c,
+       dwarf2/index-cache.h, dwarf2/index-write.c,
+       dwarf2/index-write.h, dwarf2/line-header.c,
+       dwarf2/line-header.h, dwarf2/macro.c, dwarf2/macro.h,
+       dwarf2/read.c, dwarf2/read.h: Rename struct dwarf2_per_objfile
+       variables and fields from `dwarf2_per_objfile` to just
+       `per_objfile` throughout.
+
+2020-05-28  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/loc.c (class dwarf_evaluate_loc_desc)
+       <push_dwarf_reg_entry_value>: Add comment.
+
+2020-05-28  Kevin Buettner  <kevinb@redhat.com>
+           Keith Seitz  <keiths@redhat.com>
+
+       * python/python.c (do_start_initialization): Call PyEval_SaveThread
+       instead of PyEval_ReleaseLock.
+       (class gdbpy_gil): Move to earlier in file.
+       (finalize_python): Set gdb_python_initialized.
+       (gdbpy_check_quit_flag): Acquire GIL via gdbpy_gil.  Return early
+       when not initialized.
+
+2020-05-28  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/loc.c (class dwarf_evaluate_loc_desc)
+       <push_dwarf_reg_entry_value>: Remove assert.  Override
+       per_objfile with caller_per_objfile.
+
+2020-05-28  Tom de Vries  <tdevries@suse.de>
+
+       * dwarf2/read.c (dw2_symtab_iter_next, dw2_expand_marked_cus): Limit
+       PR gold/15646 workaround to symbol kind "type".
+
+2020-05-27  Tom Tromey  <tromey@adacore.com>
+
+       * dwarf2/read.c (load_partial_dies): Use add_partial_symbol.
+
+2020-05-27  Tom Tromey  <tromey@adacore.com>
+
+       * dwarf2/abbrev.h (struct abbrev_table) <lookup_abbrev>: Inline.
+       Use htab_find_with_hash.
+       <add_abbrev>: Remove "abbrev_number" parameter.
+       * dwarf2/abbrev.c (abbrev_table::add_abbrev): Remove
+       "abbrev_number" parameter.  Use htab_find_slot_with_hash.
+       (hash_abbrev): Add comment.
+       (abbrev_table::lookup_abbrev): Move to header file.
+       (abbrev_table::read): Update.
+
+2020-05-27  Tom Tromey  <tromey@adacore.com>
+
+       * dwarf2/read.c (struct partial_die_info) <name>: Declare new
+       method.
+       <canonical_name>: New member.
+       <raw_name>: Rename from "name".
+       (partial_die_info): Initialize canonical_name.
+       (scan_partial_symbols): Check raw_name.
+       (partial_die_parent_scope, partial_die_full_name)
+       (add_partial_symbol, add_partial_subprogram)
+       (add_partial_enumeration, load_partial_dies): Use "name" method.
+       (partial_die_info::name): New method.
+       (partial_die_info::read, guess_partial_die_structure_name)
+       (partial_die_info::fixup): Update.
+
+2020-05-27  Tom Tromey  <tromey@adacore.com>
+
+       * dwarf2/attribute.h (struct attribute) <form_is_ref>: Inline.
+       <get_ref_die_offset>: Inline.
+       <get_ref_die_offset_complaint>: New method.
+       * dwarf2/attribute.c (attribute::form_is_ref): Move to header.
+       (attribute::get_ref_die_offset_complaint): Rename from
+       get_ref_die_offset.  Just issue complaint.
+
+2020-05-27  Hannes Domani  <ssbssa@yahoo.de>
+
+       * cli/cli-cmds.c (shell_escape): Move exit_status_set_internal_vars.
+
+2020-05-27  Hannes Domani  <ssbssa@yahoo.de>
+
+       * exec.c (exec_file_attach): Use errno value of first openp failure.
+
+2020-05-27  Hannes Domani  <ssbssa@yahoo.de>
+
+       * nat/windows-nat.c (windows_thread_info::~windows_thread_info):
+       Don't close thread handle.
+
+2020-05-27  Tom Tromey  <tom@tromey.com>
+           Simon Marchi  <simon.marchi@efficios.com>
+
+       * objfiles.h (struct objfile) <partial_symtabs>: Now a
+       shared_ptr.
+       * dwarf2/read.h (struct dwarf2_per_objfile) <partial_symtabs>: New
+       member.
+       * dwarf2/read.c (dwarf2_per_bfd_bfd_data_key,
+       dwarf2_per_bfd_objfile_data_key>: New globals.
+       (dwarf2_has_info): Use shared dwarf2_per_bfd if possible.
+       (dwarf2_get_section_info): Use get_dwarf2_per_objfile.
+       (dwarf2_initialize_objfile): Consider cases where per_bfd can be
+       shared.
+       (dwarf2_build_psymtabs): Set objfile::partial_symtabs and
+       short-circuit when sharing.
+       (dwarf2_build_psymtabs): Set dwarf2_per_objfile::partial_symtabs.
+       (dwarf2_psymtab::expand_psymtab): Use free_cached_comp_units.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_per_bfd) <line_header_hash>: Move
+       to...
+       (struct dwarf2_per_objfile) <line_header_hash>: ... here.
+       * dwarf2/read.c (handle_DW_AT_stmt_list): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (struct mapped_index_base) <symbol_name_at,
+       build_name_components, find_name_components_bounds>:
+       Add per_objfile parameter.
+       (struct mapped_index) <symbol_name_at>: Likewise.
+       (struct mapped_debug_names): Remove constructor.
+       <dwarf2_per_objfile>: Remove field.
+       <namei_to_name, symbol_name_at>: Add per_objfile parameter.
+       (mapped_index_base::find_name_components_bounds,
+       mapped_index_base::build_name_components,
+       dw2_expand_symtabs_matching_symbol): Likewise.
+       (class mock_mapped_index) <symbol_name_at>: Likewise.
+       (check_match): Likewise.
+       (check_find_bounds_finds): Likewise.
+       (test_mapped_index_find_name_component_bounds): Update.
+       (CHECK_MATCH): Update.
+       (dw2_expand_symtabs_matching): Update.
+       (class dw2_debug_names_iterator) <dw2_debug_names_iterator>: Add
+       per_objfile parameter.
+       <find_vec_in_debug_names>: Likewise.
+       <m_per_objfile>: New field.
+       (mapped_debug_names::namei_to_name): Add dwarf2_per_objfile
+       parameter.
+       (dw2_debug_names_iterator::find_vec_in_debug_names): Likewise.
+       (dw2_debug_names_iterator::next): Update.
+       (dw2_debug_names_lookup_symbol): Update.
+       (dw2_debug_names_expand_symtabs_for_function): Update.
+       (dw2_debug_names_map_matching_symbols): Update.
+       (dw2_debug_names_expand_symtabs_matching): Update.
+       (dwarf2_read_debug_names): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_cu): Forward-declare.
+       (struct dwarf2_per_bfd) <free_cached_comp_units>: Remove,
+       move to dwarf2_per_objfile.
+       <read_in_chain>: Remove.
+       (struct dwarf2_per_objfile) <get_cu, set_cu, remove_cu,
+       remove_all_cus, age_comp_units>: New methods.
+       <m_dwarf2_cus>: New member.
+       (struct dwarf2_per_cu_data) <cu>: Remove.
+       * dwarf2/read.c (struct dwarf2_cu) <read_in_chain>: Remove.
+       (age_cached_comp_units, free_one_cached_comp_unit): Remove,
+       moved to methods of dwarf2_per_objfile.
+       (dwarf2_clear_marks): Remove.
+       (dwarf2_queue_item::~dwarf2_queue_item): Update.
+       (dwarf2_per_bfd::~dwarf2_per_bfd): Don't free dwarf2_cus.
+       (dwarf2_per_bfd::free_cached_comp_units): Remove.
+       (dwarf2_per_objfile::remove_all_cus): New.
+       (class free_cached_comp_units) <~free_cached_comp_units>:
+       Update.
+       (load_cu): Update.
+       (dw2_do_instantiate_symtab): Adjust.
+       (fill_in_sig_entry_from_dwo_entry): Adjust.
+       (cutu_reader::init_tu_and_read_dwo_dies): Update.
+       (cutu_reader::cutu_reader): Likewise.
+       (cutu_reader::keep): Use dwarf2_per_objfile::set_cu.
+       (cutu_reader::cutu_reader): Use dwarf2_per_objfile::get_cu.
+       (process_psymtab_comp_unit): Use dwarf2_per_objfile::remove_cu
+       and dwarf2_per_objfile::age_comp_units.
+       (load_partial_comp_unit): Update.
+       (maybe_queue_comp_unit): Use dwarf2_per_objfile::get_cu.
+       (process_queue): Likewise.
+       (find_partial_die): Use dwarf2_per_objfile::get_cu instead of cu
+       backlink.
+       (dwarf2_read_addr_index): Likewise.
+       (follow_die_offset): Likewise.
+       (dwarf2_fetch_die_loc_sect_off): Likewise.
+       (dwarf2_fetch_constant_bytes): Likewise.
+       (dwarf2_fetch_die_type_sect_off): Likewise.
+       (follow_die_sig_1): Likewise.
+       (load_full_type_unit): Likewise.
+       (read_signatured_type): Likewise.
+       (dwarf2_cu::dwarf2_cu): Don't set cu field.
+       (dwarf2_cu::~dwarf2_cu): Remove.
+       (dwarf2_per_objfile::get_cu): New.
+       (dwarf2_per_objfile::set_cu): New.
+       (age_cached_comp_units): Rename to...
+       (dwarf2_per_objfile::age_comp_units): ... this.  Adjust
+       to std::unordered_map.
+       (free_one_cached_comp_unit): Rename to...
+       (dwarf2_per_objfile::remove_cu): ... this.  Adjust
+       to std::unordered_map.
+       (dwarf2_per_objfile::~dwarf2_per_objfile): New.
+       (dwarf2_mark_helper): Use dwarf2_per_objfile::get_cu, expect
+       a dwarf2_per_objfile in data.
+       (dwarf2_mark): Pass dwarf2_per_objfile in data to htab_traverse.
+       (dwarf2_clear_marks): Remove.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (class cutu_reader) <cutu_reader>: Replace
+       `int use_existing_cu` parameter with `dwarf2_cu *existing_cu`.
+       (init_tu_and_read_dwo_dies): Likewise.
+       (cutu_reader::init_tu_and_read_dwo_dies): Likewise.
+       (cutu_reader::cutu_reader): Likewise.
+       (load_partial_comp_unit): Likewise.
+       (process_psymtab_comp_unit): Update.
+       (build_type_psymtabs_1): Update.
+       (process_skeletonless_type_unit): Update.
+       (load_full_comp_unit): Update.
+       (find_partial_die): Update.
+       (dwarf2_read_addr_index): Update.
+       (read_signatured_type): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.h (struct dwarf2_per_cu_data) <m_header,
+       m_header_read_in>: New fields.
+       <get_header>: New method.
+       * dwarf2/read.c (per_cu_header_read_in): Remove.
+       (dwarf2_per_cu_data::get_header): New.
+       (dwarf2_per_cu_data::addr_size): Update.
+       (dwarf2_per_cu_data::offset_size): Update.
+       (dwarf2_per_cu_data::ref_addr_size): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.c (load_cu): Return dwarf2_cu.
+       (dw2_do_instantiate_symtab): Update.
+       (queue_and_load_all_dwo_tus): Change parameter from
+       dwarf2_per_cu_data to dwarf2_cu.
+       (dwarf2_fetch_die_loc_sect_off): Update.
+       (dwarf2_fetch_constant_bytes): Update.
+       (dwarf2_fetch_die_type_sect_off): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.c (process_full_comp_unit,
+       process_full_type_unit): Remove per_cu, per_objfile paramters.
+       Add dwarf2_cu parameter.
+       (process_queue): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.c (create_cu_from_index_list): Replace
+       dwarf2_per_objfile parameter with dwarf2_per_bfd.
+       (create_cus_from_index_list): Likewise.
+       (create_cus_from_index): Likewise.
+       (create_signatured_type_table_from_index): Likewise.
+       (create_cus_from_debug_names_list): Likewise.
+       (create_cus_from_debug_names): Likewise.
+       (dwarf2_read_gdb_index): Update.
+       (dwarf2_read_debug_names): Update.
+
+2020-05-27  Tom Tromey  <tom@tromey.com>
+           Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_per_objfile)
+       <get_type_for_signatured_type, set_type_for_signatured_type>:
+       New methods.
+       <m_type_map>: New member.
+       (struct signatured_type) <type>: Remove.
+       * dwarf2/read.c
+       (dwarf2_per_objfile::get_type_for_signatured_type,
+       dwarf2_per_objfile::set_type_for_signatured_type): New.
+       (get_signatured_type): Use new methods.
+
+2020-05-27  Tom Tromey  <tom@tromey.com>
+           Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct type_unit_group_unshareable): New.
+       (struct dwarf2_per_objfile) <type_units>: New member.
+       <get_type_unit_group_unshareable>: New method.
+       * dwarf2/read.c (struct type_unit_group) <compunit_symtab,
+       num_symtabs, symtabs>: Remove; move to
+       type_unit_group_unshareable.
+       (dwarf2_per_objfile::get_type_unit_group_unshareable): New.
+       (process_full_type_unit, dwarf2_cu::setup_type_unit_groups)
+       (dwarf2_cu::setup_type_unit_groups): Use type_unit_group_unshareable.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_per_cu_data):
+       <dwarf2_per_objfile>: Remove.
+       * dwarf2/read.c (create_cu_from_index_list): Don't assign
+       dwarf2_per_objfile.
+       (create_signatured_type_table_from_index): Likewise.
+       (create_signatured_type_table_from_debug_names): Likewise.
+       (create_debug_type_hash_table): Likewise.
+       (fill_in_sig_entry_from_dwo_entry): Likewise.
+       (create_type_unit_group): Likewise.
+       (read_comp_units_from_section): Likewise.
+       (create_cus_hash_table): Likewise.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (process_psymtab_comp_unit): Remove reference to
+       dwarf2_per_cu_data::dwarf2_per_objfile.
+       (compute_compunit_symtab_includes): Likewise.
+       (dwarf2_cu::start_symtab): Likewise.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.h (dwarf2_get_die_type): Add dwarf2_per_objfile
+       parameter.
+       * dwarf2/read.c (get_die_type_at_offset): Likewise.
+       (read_namespace_alias): Update.
+       (lookup_die_type): Update.
+       (dwarf2_get_die_type): Add dwarf2_per_objfile parameter.
+       * dwarf2/loc.c (class dwarf_evaluate_loc_desc) <get_base_type>:
+       Update.
+       (disassemble_dwarf_expression): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_queue_item): Add
+       dwarf2_per_objfile parameter, assign new parameter.
+       <per_objfile>: New field.
+       * dwarf2/read.c (free_one_cached_comp_unit): Add
+       dwarf2_per_objfile parameter.
+       (queue_comp_unit): Likewise.
+       (dw2_do_instantiate_symtab): Update.
+       (process_psymtab_comp_unit): Update.
+       (maybe_queue_comp_unit): Add dwarf2_per_objfile parameter.
+       (process_imported_unit_die): Update.
+       (queue_and_load_dwo_tu): Update.
+       (follow_die_offset): Update.
+       (follow_die_sig_1): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_per_cu_data) <objfile>: Remove.
+       * dwarf2/read.c (dwarf2_compute_name): Pass per_objfile down.
+       (read_call_site_scope): Assign per_objfile.
+       (dwarf2_per_cu_data::objfile): Remove.
+       * gdbtypes.h (struct call_site) <per_objfile>: New member.
+       * dwarf2/loc.h (dwarf2_evaluate_loc_desc): Add
+       dwarf2_per_objfile parameter.
+       * dwarf2/loc.c (dwarf2_evaluate_loc_desc_full): Add
+       dwarf2_per_objfile parameter.
+       (dwarf_expr_reg_to_entry_parameter): Add output
+       dwarf2_per_objfile parameter.
+       (locexpr_get_frame_base): Update.
+       (class dwarf_evaluate_loc_desc) <get_tls_address>: Update.
+       <push_dwarf_reg_entry_value>: Update.
+       <call_site_to_target_addr>: Update.
+       (dwarf_entry_parameter_to_value): Add dwarf2_per_objfile
+       parameter.
+       (value_of_dwarf_reg_entry): Update.
+       (rw_pieced_value): Update.
+       (indirect_synthetic_pointer): Update.
+       (dwarf2_evaluate_property): Update.
+       (dwarf2_loc_desc_get_symbol_read_needs): Add dwarf2_per_objfile
+       parameter.
+       (locexpr_read_variable): Update.
+       (locexpr_get_symbol_read_needs): Update.
+       (loclist_read_variable): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (dwarf2_fetch_die_loc_sect_off,
+       dwarf2_fetch_die_loc_cu_off, dwarf2_fetch_constant_bytes,
+       dwarf2_fetch_die_type_sect_off): Add dwarf2_per_objfile
+       parameter.
+       * dwarf2/read.c (dwarf2_fetch_die_loc_sect_off,
+       dwarf2_fetch_die_loc_cu_off, dwarf2_fetch_constant_bytes,
+       dwarf2_fetch_die_type_sect_off): Add dwarf2_per_objfile
+       parameter.
+       * dwarf2/loc.c (indirect_synthetic_pointer, per_cu_dwarf_call,
+       sect_variable_value): Add dwarf2_per_objfile parameter.
+       (class dwarf_evaluate_loc_desc) <dwarf_call,
+       dwarf_variable_value>: Update.
+       (fetch_const_value_from_synthetic_pointer): Add
+       dwarf2_per_objfile parameter.
+       (fetch_const_value_from_synthetic_pointer): Update.
+       (coerced_pieced_ref): Update.
+       (class symbol_needs_eval_context) <dwarf_call,
+       dwarf_variable_value>: Update.
+       (dwarf2_compile_expr_to_ax): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/loc.c (allocate_piece_closure): Add dwarf2_per_objfile
+       parameter.
+       (dwarf2_evaluate_loc_desc_full): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (dwarf2_read_addr_index): Add dwarf2_per_objfile
+       parameter.
+       * dwarf2/read.c (dwarf2_read_addr_index): Likewise.
+       * dwarf2/loc.c (decode_debug_loclists_addresses): Add
+       dwarf2_per_objfile parameter.
+       (decode_debug_loc_dwo_addresses): Likewise.
+       (dwarf2_find_location_expression): Update.
+       (class dwarf_evaluate_loc_desc) <get_addr_index>: Update.
+       (locexpr_describe_location_piece): Add dwarf2_per_objfile
+       parameter.
+       (disassemble_dwarf_expression): Add dwarf2_per_objfile
+       parameter.
+       (locexpr_describe_location_1): Likewise.
+       (locexpr_describe_location): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_per_cu_data) <text_offset>:
+       Remove.
+       * dwarf2/read.c (dwarf2_per_cu_data::text_offset): Remove.
+       * dwarf2/loc.c (dwarf2_find_location_expression): Update.
+       (dwarf2_compile_property_to_c): Update.
+       (dwarf2_compile_expr_to_ax): Add dwarf2_per_objfile parameter,
+       use text offset from objfile.
+       (locexpr_tracepoint_var_ref): Update.
+       (locexpr_generate_c_location): Update.
+       (loclist_describe_location): Update.
+       (loclist_tracepoint_var_ref): Update.
+       * dwarf2/compile.h (compile_dwarf_bounds_to_c): Add
+       dwarf2_per_objfile parameter.
+       * dwarf2/loc2c.c (do_compile_dwarf_expr_to_c): Likewise,
+       use text offset from objfile.
+       (compile_dwarf_expr_to_c): Add dwarf2_per_objfile parameter.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/expr.h (struct dwarf_expr_context)
+       <dwarf_expr_context>: Add dwarf2_per_objfile parameter.
+       <offset>: Remove.
+       <per_objfile>: New member.
+       * dwarf2/expr.c (dwarf_expr_context::dwarf_expr_context): Add
+       dwarf2_per_objfile parameter.  Don't set offset, set
+       per_objfile.
+       (dwarf_expr_context::execute_stack_op): Use offset from objfile.
+       * dwarf2/frame.c (dwarf2_frame_find_fde): Return (by parameter)
+       a dwarf2_per_objfile object instead of an offset.
+       (class dwarf_expr_executor) <dwarf_expr_executor>: Add
+       constructor.
+       (execute_stack_op): Add dwarf2_per_objfile parameter, pass it
+       to dwarf2_expr_executor constructor.  Don't set offset.
+       (dwarf2_fetch_cfa_info): Update.
+       (struct dwarf2_frame_cache) <text_offset>: Remove.
+       <per_objfile>: New field.
+       (dwarf2_frame_cache): Update.
+       (dwarf2_frame_prev_register): Update.
+       * dwarf2/loc.c (class dwarf_evaluate_loc_desc)
+       <dwarf_evaluate_loc_desc>: Add constructor.
+       (dwarf2_evaluate_loc_desc_full): Update.
+       (dwarf2_locexpr_baton_eval): Update.
+       (class symbol_needs_eval_context) <symbol_needs_eval_context>:
+       Add constructor.
+       (dwarf2_loc_desc_get_symbol_read_needs): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_per_cu_data) <addr_type,
+       addr_sized_int_type>: Move to dwarf2_cu.
+       <int_type>: Move to dwarf2_per_objfile.
+       (struct dwarf2_per_objfile) <int_type>: Move here.
+       * dwarf2/read.c (struct dwarf2_cu) <addr_type,
+       addr_sized_int_type>: Move here.
+       (read_func_scope): Update.
+       (read_array_type): Update.
+       (read_tag_string_type): Update.
+       (attr_to_dynamic_prop): Update.
+       (dwarf2_per_cu_data::int_type): Rename to...
+       (dwarf2_per_objfile::int_type): ... this.
+       (dwarf2_per_cu_data::addr_sized_int_type): Rename to...
+       (dwarf2_cu::addr_sized_int_type): ... this.
+       (read_subrange_type): Update.
+       (dwarf2_per_cu_data::addr_type): Rename to...
+       (dwarf2_cu::addr_type): ... this.
+       (set_die_type): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (queue_and_load_all_dwo_tus): Access per_objfile
+       data through per_cu->cu.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (lookup_dwo_comp_unit): Change
+       dwarf2_per_cu_data parameter fo dwarf2_cu.
+       (lookup_dwo_type_unit): Likewise.
+       (read_cutu_die_from_dwo): Likewise.
+       (lookup_dwo_unit): Likewise.
+       (open_and_init_dwo_file): Likewise.
+       (lookup_dwo_cutu): Likewise.
+       (lookup_dwo_comp_unit): Likewise.
+       (lookup_dwo_type_unit): Likewise.
+       (cutu_reader::init_tu_and_read_dwo_dies): Update.
+       (cutu_reader::cutu_reader): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (process_full_comp_unit): Add dwarf2_per_objfile
+       parameter.
+       (process_full_type_unit): Likewise.
+       (process_queue): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (recursively_compute_inclusions): Add
+       dwarf2_per_objfile parameter.
+       (compute_compunit_symtab_includes): Likewise.
+       (process_cu_includes): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (create_partial_symtab): Add dwarf2_per_objfile
+       parameter.
+       (create_type_unit_group): Update.
+       (process_psymtab_comp_unit_reader): Update.
+       (build_type_psymtabs_reader): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (cutu_reader::keep): Access dwarf2_per_objfile
+       object through m_this_cu->cu.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.c (queue_and_load_dwo_tu): Expect a dwarf2_cu as
+       the info parameter.
+       (queue_and_load_all_dwo_tus): Pass per_cu->cu.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.c (class cutu_reader) <cutu_reader>: Add
+       per_objfile parameter.
+       (load_full_type_unit): Add per_objfile parameter.
+       (read_signatured_type): Likewise.
+       (load_full_comp_unit): Likewise.
+       (load_cu): Likewise.
+       (dw2_do_instantiate_symtab): Likewise.
+       (dw2_get_file_names): Likewise.
+       (dw2_map_symtabs_matching_filename): Update.
+       (dw_expand_symtabs_matching_file_matcher): Update.
+       (dw2_map_symbol_filenames): Update.
+       (process_psymtab_comp_unit): Add per_objfile parameter.
+       (build_type_psymtabs_1): Update.
+       (process_skeletonless_type_unit): Update.
+       (dwarf2_build_psymtabs_hard): Update.
+       (load_partial_comp_unit): Add per_objfile parameter.
+       (scan_partial_symbols): Update.
+       (load_full_comp_unit): Add per_objfile parameter.
+       (process_imported_unit_die): Update.
+       (create_cus_hash_table): Update.
+       (find_partial_die): Update.
+       (dwarf2_read_addr_index): Update.
+       (follow_die_offset): Update.
+       (dwarf2_fetch_die_loc_sect_off): Update.
+       (dwarf2_fetch_constant_bytes): Update.
+       (dwarf2_fetch_die_type_sect_off): Update.
+       (follow_die_sig_1): Update.
+       (load_full_type_unit): Add per_objfile parameter.
+       (read_signatured_type): Likewise.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (lookup_dwo_unit): Use bfd_get_filename instead
+       of objfile_name.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.h (struct dwarf2_per_bfd) <obfd>: New member.
+       (dwarf2_get_dwz_file): Replace parameter with dwarf2_per_bfd.
+       * dwarf2/read.c (dwarf2_per_bfd::dwarf2_per_bfd): Assign obfd
+       field.
+       (dwarf2_get_dwz_file): Replace parameter with dwarf2_per_bfd.
+       (create_cus_from_index): Update.
+       (dwarf2_read_gdb_index): Update.
+       (create_cus_from_debug_names): Update.
+       (dwarf2_read_debug_names): Update.
+       (get_abbrev_section_for_cu): Update.
+       (create_all_comp_units): Update.
+       (read_attribute_value): Update.
+       (get_debug_line_section): Update.
+       * dwarf2/index-cache.c (index_cache::store): Update.
+       * dwarf2/index-write.c (save_gdb_index_command): Update.
+       * dwarf2/macro.c (dwarf_decode_macro_bytes): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.h (struct dwarf2_per_cu_data) <per_bfd>: New
+       member.
+       * dwarf2/read.c (dwarf2_per_bfd::allocate_per_cu): Initialize
+       dwarf2_per_cu_data::per_bfd.
+       (dwarf2_per_bfd::allocate_signatured_type): Likewise.
+       (create_type_unit_group): Likewise.
+       (queue_comp_unit): Remove reference to
+       per_cu->dwarf2_per_objfile.
+       (maybe_queue_comp_unit): Likewise.
+       (fill_in_sig_entry_from_dwo_entry): Assign new field.
+       (create_cus_hash_table): Assign new field.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c: Replace
+       dwarf2_cu->per_cu->dwarf2_per_objfile references with
+       dwarf2_cu->per_objfile throughout.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (dw2_do_instantiate_symtab): Add per_objfile
+       parameter, don't use per_cu->dwarf2_per_objfile.
+       (dw2_instantiate_symtab): Likewise.
+       (dw2_find_last_source_symtab): Update.
+       (dw2_map_expand_apply): Update.
+       (dw2_lookup_symbol): Update.
+       (dw2_expand_symtabs_for_function): Update.
+       (dw2_expand_all_symtabs): Update.
+       (dw2_expand_symtabs_with_fullname): Update.
+       (dw2_expand_symtabs_matching_one): Add per_objfile parameter,
+       don't use per_cu->dwarf2_per_objfile.
+       (dw2_expand_marked_cus): Update.
+       (dw2_find_pc_sect_compunit_symtab): Update.
+       (dw2_debug_names_lookup_symbol): Update.
+       (dw2_debug_names_expand_symtabs_for_function): Update.
+       (dw2_debug_names_map_matching_symbols): Update.
+       (dwarf2_psymtab::expand_psymtab): Update.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (struct dwarf2_cu) <dwarf2_cu>: Add parameter.
+       <per_objfile>: New member.
+       (class cutu_reader) <init_tu_and_read_dwo_dies>: Add parameter.
+       (cutu_reader::init_tu_and_read_dwo_dies): Add parameter, update
+       call to dwarf2_cu.
+       (cutu_reader::cutu_reader): Update.
+       (dwarf2_cu::dwarf2_cu): Add parameter, initialize per_objfile.
+
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_per_bfd) <die_type_hash>: Move to
+       struct dwarf2_per_objfile.
+       (struct dwarf2_per_objfile) <die_type_hash>: Move from struct
+       dwarf2_per_bfd.
+       * dwarf2/read.c (set_die_type): Update.
+       (get_die_type_at_offset): Update.
+
+2020-05-27  Tom Tromey  <tom@tromey.com>
+           Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.h (struct dwarf2_per_bfd) <num_psymtabs>: New
+       method.
+       (struct dwarf2_per_objfile) <resize_symtabs, symtab_set_p,
+       get_symtab, set_symtab>: New methods.
+       <m_symtabs>: New field.
+       (struct dwarf2_psymtab): Derive from partial_symtab.
+       <readin_p, get_compunit_symtab>: Declare methods.
+       * dwarf2/read.c (dwarf2_per_objfile::symtab_set_p,
+       dwarf2_per_objfile::get_symtab, dwarf2_per_objfile::set_symtab):
+       New methods.
+       (struct dwarf2_per_cu_quick_data) <compunit_symtab>: Remove.
+       (dw2_do_instantiate_symtab, dw2_instantiate_symtab)
+       (dw2_map_expand_apply, dw2_map_symtabs_matching_filename)
+       (dw2_symtab_iter_next, dw2_print_stats)
+       (dw2_expand_symtabs_with_fullname)
+       (dw2_expand_symtabs_matching_one)
+       (dw_expand_symtabs_matching_file_matcher)
+       (dw2_find_pc_sect_compunit_symtab, dw2_map_symbol_filenames)
+       (dw2_debug_names_iterator::next)
+       (dw2_debug_names_map_matching_symbols)
+       (fill_in_sig_entry_from_dwo_entry, dwarf2_psymtab::read_symtab)
+       (process_queue, dwarf2_psymtab::expand_psymtab): Update.
+       (dwarf2_psymtab::readin_p, dwarf2_psymtab::get_compunit_symtab):
+       New methods.
+       (get_compunit_symtab, process_full_comp_unit)
+       (process_full_type_unit): Update.
+       (dwarf2_build_psymtabs, dwarf2_initialize_objfile, add_type_unit): Call
+
+2020-05-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * dwarf2/read.h (dwarf2_per_objfile): Rename to dwarf2_per_bfd,
+       then introduce a new dwarf2_per_objfile type.
+       <read_line_string>: Move to the new dwarf2_per_objfile type.
+       <objfile>: Likewise.
+       (dwarf2_per_bfd): Rename dwarf2_per_objfile to this.
+       * dwarf2/read.c: Replace references to dwarf2_per_objfile with
+       dwarf2_per_objfile->per_bfd.
+       (dwarf2_per_objfile::dwarf2_per_objfile): Rename to...
+       (dwarf2_per_bfd::dwarf2_per_bfd): ... this.
+       (dwarf2_per_objfile::free_cached_comp_units): Rename to...
+       (dwarf2_per_bfd::free_cached_comp_units): ... this.
+       (dwarf2_has_info): Allocate dwarf2_per_bfd.
+       (dwarf2_per_objfile::locate_sections): Rename to...
+       (dwarf2_per_bfd::locate_sections): ... this.
+       (dwarf2_per_objfile::get_cutu): Rename to...
+       (dwarf2_per_bfd::get_cutu): ... this.
+       (dwarf2_per_objfile::get_cu): Rename to...
+       (dwarf2_per_bfd::get_cu): ... this.
+       (dwarf2_per_objfile::get_tu): Rename to...
+       (dwarf2_per_bfd::get_tu): ... this.
+       (dwarf2_per_objfile::allocate_per_cu): Rename to...
+       (dwarf2_per_bfd::allocate_per_cu): ... this.
+       (dwarf2_per_objfile::allocate_signatured_type): Rename to...
+       (dwarf2_per_bfd::allocate_signatured_type): ... this.
+       (get_gdb_index_contents_ftype): Change parameter from
+       dwarf2_per_objfile to dwarf2_per_bfd.
+       * dwarf2/macro.c, dwarf2/index-write.c: Replace references to
+       dwarf2_per_objfile with dwarf2_per_objfile->per_bfd.
+
+2020-05-27  Tom Tromey  <tom@tromey.com>
+           Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/loc.c (struct piece_closure) <per_objfile>: New member.
+       (allocate_piece_closure): Set "per_objfile" member.
+       (dwarf2_find_location_expression, dwarf2_locexpr_baton_eval)
+       (locexpr_describe_location, loclist_describe_location): Use new
+       member.
+       * dwarf2/read.c (read_call_site_scope)
+       (mark_common_block_symbol_computed, attr_to_dynamic_prop)
+       (dwarf2_const_value_attr, dwarf2_fetch_die_loc_sect_off)
+       (fill_in_loclist_baton, dwarf2_symbol_mark_computed,
+       handle_data_member_location): Set per_objfile member.
+       * dwarf2/loc.h (struct dwarf2_locexpr_baton) <per_objfile>: New
+       member.
+       (struct dwarf2_loclist_baton) <per_objfile>: New member.
+
+2020-05-27  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.h (struct dwarf2_per_objfile) <allocate_per_cu,
+       allocate_signatured_type>: Declare new methods.
+       <m_num_psymtabs>: New member.
+       (struct dwarf2_per_cu_data) <index>: New member.
+       * dwarf2/read.c (dwarf2_per_objfile::allocate_per_cu)
+       (dwarf2_per_objfile::allocate_signatured_type): New methods.
+       (create_cu_from_index_list): Use allocate_per_cu.
+       (create_signatured_type_table_from_index)
+       (create_signatured_type_table_from_debug_names)
+       (create_debug_type_hash_table, add_type_unit)
+       (read_comp_units_from_section): Use allocate_signatured_type.
+
+2020-05-27  Tom Tromey  <tom@tromey.com>
+
+       * psymtab.c (partial_map_expand_apply)
+       (psym_find_pc_sect_compunit_symtab, psym_lookup_symbol)
+       (psym_lookup_global_symbol_language)
+       (psymtab_to_symtab, psym_find_last_source_symtab, dump_psymtab)
+       (psym_print_stats, psym_expand_symtabs_for_function)
+       (psym_map_symbol_filenames, psym_map_matching_symbols)
+       (psym_expand_symtabs_matching)
+       (partial_symtab::read_dependencies, maintenance_info_psymtabs)
+       (maintenance_check_psymtabs): Update.
+       * psympriv.h (struct partial_symtab) <readin_p,
+       get_compunit_symtab>: Add objfile parameter.
+       (struct standard_psymtab) <readin_p, get_compunit_symtab>:
+       Likewise.
+       * dwarf2/read.c (struct dwarf2_include_psymtab) <readin_p,
+       get_compunit_symtab>: Likewise.
+       (dwarf2_psymtab::expand_psymtab): Pass objfile argument.
+
+2020-05-27  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.h (struct dwarf2_per_objfile) <obstack>: New
+       member.
+       * dwarf2/read.c (delete_file_name_entry): Fix comment.
+       (create_cu_from_index_list)
+       (create_signatured_type_table_from_index)
+       (create_signatured_type_table_from_debug_names)
+       (dw2_get_file_names_reader, dwarf2_initialize_objfile)
+       (dwarf2_create_include_psymtab)
+       (create_debug_type_hash_table, add_type_unit)
+       (create_type_unit_group, read_comp_units_from_section)
+       (dwarf2_compute_name, create_cus_hash_table)
+       (create_dwp_hash_table, create_dwo_unit_in_dwp_v1)
+       (create_dwo_unit_in_dwp_v2, open_and_init_dwp_file): Use new
+       obstack.
+       (dw2_get_real_path): Likewise.  Change argument to
+       dwarf2_per_objfile.
+
+2020-05-27  Luis Machado  <luis.machado@linaro.org>
+
+       PR tdep/26000
+       * arm-tdep.c (thumb_analyze_prologue): Fix instruction matching
+       for ldrd (immediate).
+
+2020-05-26  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+       * command.h: Add comment giving the name of class_tui.
+       * cli/cli-cmds.c (_initialize_cli_cmds): If TUI defined,
+       create the fake command for the help for class_tui.
+
+2020-05-26  Tom Tromey  <tromey@adacore.com>
+
+       * ada-lang.c (ada_print_array_index): Change type.  Call val_atr.
+       (ada_value_ptr_subscript): Don't call pos_atr on the lower bound.
+       (val_atr): New function.
+       (value_val_atr): Use it.
+       * ada-valprint.c (print_optional_low_bound): Change low bound
+       handling for enums.
+       (val_print_packed_array_elements): Don't call discrete_position.
+       * gdbtypes.c (get_discrete_bounds) <TYPE_CODE_RANGE>: Call
+       discrete_position for enum types.
+       * language.c (default_print_array_index): Change type.
+       * language.h (struct language_defn) <la_print_array_index>: Add
+       index_type parameter, change type of index_value.
+       (LA_PRINT_ARRAY_INDEX): Add index_type parameter.
+       (default_print_array_index): Update.
+       * valprint.c (maybe_print_array_index): Don't call
+       value_from_longest.  Update.
+       (value_print_array_elements): Don't call discrete_position.
+
+2020-05-26  Tom Tromey  <tromey@adacore.com>
+
+       * ada-lang.c (value_val_atr): Handle TYPE_CODE_RANGE.
+       * gdbtypes.c (discrete_position): Handle TYPE_CODE_RANGE.
+
+2020-05-25  Cristiano De Alti  <cristiano_dealti@hotmail.com>
+
+       PR gdb/13519
+       * avr-tdep.c (avr_integer_to_address): Return data or code
+       address accordingly to the second 'type' argument of the
+       function.
+
+2020-05-25  Michael Weghorn  <m.weghorn@posteo.de>
+
+       * infcmd.c, inferior.h: (construct_inferior_arguments):
+       Moved function from here to gdbsupport/common-inferior.{h,cc}
+
 2020-05-23  Tom Tromey  <tom@tromey.com>
 
        Revert commit eca1f90c: