2018-01-31  Joel Brobecker  <brobecker@adacore.com>

	* version.in: Set GDB version number to 8.1.
	* PROBLEMS: Likewise.

2018-01-27  Eli Zaretskii  <eliz@gnu.org>

	Avoid compilation errors in MinGW native builds

	The error is triggered by including python-internal.h, and the
	error message is:

	     In file included from d:\usr\lib\gcc\mingw32\6.3.0\include\c++\math.h:36:0,
		      from build-gnulib/import/math.h:27,
		      from d:/usr/Python26/include/pyport.h:235,
		      from d:/usr/Python26/include/Python.h:58,
		      from python/python-internal.h:94,
		      from python/py-arch.c:24:
	     d:\usr\lib\gcc\mingw32\6.3.0\include\c++\cmath:1157:11: error: '::hypot' has not been declared
	using ::hypot;
		^~~~~

	This happens because Python headers define 'hypot' to expand t
	'_hypot' in the Windows builds.
	* python/python-internal.h (_hypot) [__MINGW32__]: Define back to
	'hypoth'.  This avoids a compilation error.

2018-01-24  Pedro Alves  <palves@redhat.com>

	GCC PR libstdc++/83906
	* gdbtypes.c (operator==(const dynamic_prop &,
	const dynamic_prop &)): New.
	(operator==(const range_bounds &, const range_bounds &)): New.
	(check_types_equal): Use them instead of memcmp.
	* gdbtypes.h (operator==(const dynamic_prop &,
	const dynamic_prop &)): Declare.
	(operator!=(const dynamic_prop &, const dynamic_prop &)): Declare.
	(operator==(const range_bounds &, const range_bounds &)): Declare.
	(operator!=(const range_bounds &, const range_bounds &)): Declare.

2018-01-22  Maciej W. Rozycki  <macro@mips.com>

	* MAINTAINERS: Update my company e-mail address.

2018-01-22  Pedro Alves  <palves@redhat.com>
	    Sergio Durigan Junior  <sergiodj@redhat.com>

	* typeprint.c (whatis_exp): Initialize "val" in the "whatis type"
	case.

2018-01-17  Sergio Durigan Junior  <sergiodj@redhat.com>

	* compile/compile.c (compile_to_object): Convert "triplet_rx"
	to "std::string".

2018-01-17  Eldar Abusalimov  <eldar.abusalimov@jetbrains.com>

	PR gdb/21559
	* configure.ac: Include <sys/types.h> prior to <sys/user.h> when
	checking for fs_base/gs_base fields in struct user_regs_struct.
	* configure: Regenerate.

2018-01-17  Yao Qi  <yao.qi@linaro.org>

	* aarch64-linux-tdep.c (aarch64_linux_gcc_target_options): New
	function.
	(aarch64_linux_init_abi): Install it to gdbarch hook
	gcc_target_options.

2018-01-12  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* infrun.c (keep_going_pass_signal): Clear step-over info when
	insert_breakpoints fails.

2018-01-12  Joel Brobecker  <brobecker@adacore.com>

	* version.in: Set GDB version number to 8.0.91.DATE-git.
	* PROBLEMS: Likewise.

2018-01-12  Joel Brobecker  <brobecker@adacore.com>

	GDB 8.0.91 released.

2018-01-12  Joel Brobecker  <brobecker@adacore.com>

	* version.in: Set GDB version number to 8.0.91.
	* PROBLEMS: Likewise.

2018-01-12  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Rename "Changes since 8.0" into "Changes in 8.1".

2018-01-11  Pedro Alves  <palves@redhat.com>

	PR gdb/22583
	* infrun.c (resume): Rename to ...
	(resume_1): ... this.
	(resume): Reimplement as wrapper around resume_1.

2018-01-11  Pedro Alves  <palves@redhat.com>

	PR remote/22597
	* remote.c (remote_parse_stop_reply): Default to the last-set
	general thread instead of to 'magic_null_ptid'.

2018-01-10  Pedro Alves  <palves@redhat.com>

	* language.h (language_get_symbol_name_matcher): Rename ...
	(get_symbol_name_matcher): ... this.
	* language.c (language_get_symbol_name_matcher): Ditto.
	* dictionary.c, linespec.c, minsyms.c, psymtab.c, symtab.c: All
	callers adjusted.

2018-01-10  Pedro Alves  <palves@redhat.com>

	PR gdb/22670
	* dwarf2read.c
	(gdb_index_symbol_name_matcher::gdb_index_symbol_name_matcher):
	Adjust to use language_get_symbol_name_matcher instead of
	language_defn::la_get_symbol_name_matcher.
	* language.c (language_get_symbol_name_matcher): If in Ada mode
	and the lookup name is a verbatim match, return Ada's matcher.
	* language.h (language_get_symbol_name_matcher): Adjust comment.
	(ada_lookup_name_info::verbatim_p):: New method.

2018-01-10  Pedro Alves  <palves@redhat.com>

	PR gdb/22670
	* ada-lang.c (ada_collect_symbol_completion_matches): If the
	minsym's language is language_auto or language_cplus, pass down
	language_ada instead.
	* symtab.c (compare_symbol_name): Don't frob symbol language here.

2018-01-10  Pedro Alves  <palves@redhat.com>

	PR gdb/22670
	* minsyms.c (linkage_name_str): New function.
	(iterate_over_minimal_symbols): Use it.

2018-01-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* gdb/gnu-nat.c: Include <elf.h> and <link.h>.
	(gnu_xfer_auxv): New function.
	(gnu_xfer_partial): Call gnu_xfer_auxv when `object' is
	TARGET_OBJECT_AUXV.

2018-01-08  Yao Qi  <yao.qi@linaro.org>
	    Simon Marchi  <simon.marchi@ericsson.com>

	* Makefile.in (COMMON_SFILES): Remove selftest-arch.c and
	common/selftest.c.
	(COMMON_OBS): Remove selftest.o.
	* configure.ac: Append selftest-arch.c and common/selftest.c to
	CONFIG_SRCS.  Append selftest-arch.o and selftest.o to COMMON_OBS.
	* configure: Re-generated.
	* maint.c (maintenance_selftest): Wrap selftests::run_tests with
	GDB_SELF_TEST.
	(maintenance_info_selftests): Likewise.

2018-01-05  Pedro Alves  <palves@redhat.com>

	PR gdb/18653
	* common/signals-state-save-restore.c
	(save_original_signals_state): New parameter 'quiet'.  Warn if we
	find a custom handler preinstalled, instead of internal erroring.
	But only warn if !quiet.
	* common/signals-state-save-restore.h
	(save_original_signals_state): New parameter 'quiet'.
	* main.c (captured_main_1): Move save_original_signals_state call
	after option handling, and pass QUIET.

2018-01-05  Pedro Alves  <palves@redhat.com>

	* spu-tdep.c (spu_catch_start): Pass
	symbol_name_match_type::SEARCH_NAME to block_lookup_symbol.

2018-01-05  Pedro Alves  <palves@redhat.com>

	PR gdb/22670
	* ada-lang.c (literal_symbol_name_matcher): New function.
	(ada_get_symbol_name_matcher): Use it for
	symbol_name_match_type::SEARCH_NAME.
	* block.c (block_lookup_symbol): New parameter 'match_type'.  Pass
	it down instead of assuming symbol_name_match_type::FULL.
	* block.h (block_lookup_symbol): New parameter 'match_type'.
	* c-valprint.c (print_unpacked_pointer): Use
	lookup_symbol_search_name instead of lookup_symbol.
	* compile/compile-object-load.c (get_out_value_type): Pass down
	symbol_name_match_type::SEARCH_NAME.
	* cp-namespace.c (cp_basic_lookup_symbol): Pass down
	symbol_name_match_type::FULL.
	* cp-support.c (cp_get_symbol_name_matcher): Handle
	symbol_name_match_type::SEARCH_NAME.
	* infrun.c (insert_exception_resume_breakpoint): Use
	lookup_symbol_search_name.
	* p-valprint.c (pascal_val_print): Use lookup_symbol_search_name.
	* psymtab.c (maintenance_check_psymtabs): Use
	symbol_name_match_type::SEARCH_NAME and SYMBOL_SEARCH_NAME.
	* stack.c (print_frame_args): Use lookup_symbol_search_name and
	SYMBOL_SEARCH_NAME.
	* symtab.c (lookup_local_symbol): Don't demangle the lookup name
	if symbol_name_match_type::SEARCH_NAME.
	(lookup_symbol_in_language): Pass down
	symbol_name_match_type::FULL.
	(lookup_symbol_search_name): New.
	(lookup_language_this): Pass down
	symbol_name_match_type::SEARCH_NAME.
	(lookup_symbol_aux, lookup_local_symbol): New parameter
	'match_type'.  Pass it down.
	* symtab.h (symbol_name_match_type::SEARCH_NAME): New enumerator.
	(lookup_symbol_search_name): New declaration.
	(lookup_symbol_in_block): New 'match_type' parameter.

2018-01-05  Pedro Alves  <palves@redhat.com>

	PR gdb/22670
	* ada-lang.c (ada_lookup_encoded_symbol): Reimplement in terms of
	ada_lookup_symbol.
	(ada_lookup_symbol): Reimplement in terms of
	ada_lookup_symbol_list, bits factored out from
	ada_lookup_encoded_symbol.

2018-01-05  Joel Brobecker  <brobecker@adacore.com>

	GDB 8.1 branch created (5219ac6237c272b938c28517bf371429260c71e7):
	* version.in: Bump version to 8.0.90.DATE-git.

2018-01-03  Xavier Roirand  <roirand@adacore.com>

	* ada-lang.h (ada_exception_catchpoint_kind) <ada_catch_handlers>:
	Add field.
	* ada-lang.c (struct exception_support_info) <catch_handlers_sym>:
	Add field.
	(default_exception_support_info) <catch_handlers_sym>: Add field.
	(exception_support_info_fallback) <catch_handlers_sym>: Add field.
	(ada_exception_name_addr_1): Add "catch handlers" handling.
	(ada_exception_catchpoint_cond_string) <ex>: New parameter.
	Update all callers.
	(create_excep_cond_exprs) <ex>: Add parameter.
	(re_set_exception): Update create_excep_cond_exprs call.
	(print_it_exception, print_one_exception, print_mention_exception)
	(print_recreate_exception): Add "catch handler" handling.
	(allocate_location_catch_handlers, re_set_catch_handlers)
	(check_status_catch_handlers, print_it_catch_handlers)
	(print_one_catch_handlers, print_mention_catch_handlers)
	(print_recreate_catch_handlers): New function.
	(catch_handlers_breakpoint_ops): New variable.
	(catch_ada_exception_command_split) <is_catch_handlers_cmd>:
	Add parameter.  Add "catch handler" handling.
	(ada_exception_sym_name, ada_exception_breakpoint_ops):
	Add "catch handler" handling.
	(ada_exception_catchpoint_cond_string): Add "catch handler"
	handling.
	(create_ada_exception_catchpoint): Update create_excep_cond_exprs
	call.
	(catch_ada_handlers_command): New function.
	(initialize_ada_catchpoint_ops): Initialize "catch handlers"
	operations structure.
	(_initialize_ada_language): Add "catch handlers" command entry.
	* NEWS: Document "catch handlers" feature.

2018-01-02  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_value_slice_from_ptr): Take array stride into
	account when creating the array type of the slice.
	(ada_value_slice): Likewise.

2018-01-02  Joel Brobecker  <brobecker@adacore.com>

	* gdbtypes.h (enum dynamic_prop_node_kind) <DYN_PROP_BYTE_STRIDE>:
	New enum value.
	(create_array_type_with_stride): Add byte_stride_prop parameter.
	* gdbtypes.c (create_array_type_with_stride) <byte_stride_prop>:
	New parameter.  Update all callers in this file.
	(array_type_has_dynamic_stride): New function.
	(is_dynamic_type_internal, resolve_dynamic_array): Add handling
	of arrays with dynamic byte strides.
	* dwarf2read.c (read_array_type): Add support for dynamic
	DW_AT_byte_stride attributes.

2018-01-02  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2read.c (read_unspecified_type): Treat
	DW_TAG_enumeration_type DIEs from Ada units as stubs.

2018-01-01  Joel Brobecker  <brobecker@adacore.com>

	Update copyright year range in all GDB files.

2018-01-01  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (BY_HAND): Remove gdb/testsuite/gdb.base/step-line.inp
	and gdb/testsuite/gdb.base/step-line.c.

2018-01-01  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (main): Dump the contents of
	MULTIPLE_COPYRIGHT_HEADERS (separately) from BY_HAND,
	even if BY_HAND is empty.

2018-01-01  Joel Brobecker  <brobecker@adacore.com>

	* top.c (print_gdb_version): Update Copyright year in version
	message.

2018-01-01  Joel Brobecker  <brobecker@adacore.com>

	* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2017.

For older changes see ChangeLog-2017.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
coding: utf-8
End:
