2012-08-17  Joel Brobecker  <brobecker@adacore.com>

	* version.in: Update GDB version number to 7.5.

2012-08-16  Tom Tromey  <tromey@redhat.com>

	PR python/14386:
	* varobj.c (update_dynamic_varobj_children): Don't call
	PyIter_Check.

2012-08-06  Tom Tromey  <tromey@redhat.com>

	* dwarf2-frame.c (clear_pointer_cleanup): New function.
	(dwarf2_frame_cache): Use it.
	* frame-unwind.h (frame_sniffer_ftype): Document prologue
	cache initialization constraint.

2012-08-06  Tom Tromey  <tromey@redhat.com>

	PR cli/14392:
	* cli/cli-cmds.c (list_command): Filter 'sals_end'.

2012-08-03  Tom Tromey  <tromey@redhat.com>

	* dwarf2-frame.c (dwarf2_frame_cache): Call do_cleanups before
	return.

2012-08-02  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* inf-child.c (inf_child_fileio_pwrite): If pwrite fails, fall back
	to attempting lseek/write.
	(inf_child_fileio_pread): Likewise for pread.

2012-08-01  Richard Henderson  <rth@redhat.com>

	* configure.tgt (m32c-*-*) [gdb_target_obs]: Remove prologue-value.o.
	(mep-*-*) [gdb_target_obs]: Likewise.

2012-08-01  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* arm-linux-nat.c (arm_linux_hw_breakpoint_initialize): Do not
	attempt to 4-byte-align HW breakpoint addresses for Thumb.

2012-07-31  Andreas Schwab  <schwab@linux-m68k.org>

	* ppc-linux-tdep.c (ppc_linux_init_abi): Register
	linux_get_siginfo_type.

2012-07-31  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* infcall.c (call_function_by_hand): Move BP_ADDR comment to
	AT_ENTRY_POINT.
	(call_function_by_hand) <ON_STACK>: Call write_memory with
	gdbarch_breakpoint_from_pc, if possible.
	(call_function_by_hand) <AT_ENTRY_POINT>: The BP_ADDR comment is moved
	here.

2012-07-30  Keith Seitz  <keiths@redhat.com>

	* linespec.c (linespec_lexer_lex_number): A number followed
	by quotes is a valid number, too.

2012-07-26  Keith Seitz  <keiths@redhat.com>

	* linespec.c (linespec_lexer_lex_number): The input
	is also a valid number if the next character is a comma
	or colon.

2012-07-25  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* configure.tgt: Add v850*-*-rtems*.

2012-07-25  Hui Zhu  <hui_zhu@mentor.com>

	* linespec.c (linespec_lexer_lex_number): Update comments,
	change the return and add check to make sure the input is
	the decimal numbers.
	(linespec_lexer_lex_one): If linespec_lexer_lex_number return
	false, call linespec_lexer_lex_string.

2012-07-24  Marc Khouzam  <marc.khouzam@ericsson.com>

	* breakpoint.c (create_breakpoint): Store condition for pending
	breakpoints.

2012-07-23  Keith Seitz  <keiths@redhat.com>

	* linespec.c (convert_linespec_to_sal): Don't add
	any symbols to the result vector if symbol_to_sal
	returns zero.

2012-07-20  Doug Evans  <dje@google.com>

	* NEWS: Document new options "set/show use-deprecated-index-sections",
	and delete reference to --use-deprecated-index-sections.
	* symfile.h (use_deprecated_index_sections): Delete.
	* dwarf2read.c (use_deprecated_index_sections): Make static.
	(read_index_from_section): Update wording of how to load
	deprecated index sections.
	(_initialize_dwarf2_read): New options
	"set/show use-deprecated-index-sections".
	* main.c (captured_main): Delete --use-deprecated-index-sections.

2012-07-18  Joel Brobecker  <brobecker@adacore.com>

	* version.in: Set version to 7.4.91.20120718-cvs.

2012-07-18  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.4.91 released.

2012-07-18  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Replace "Changes since GDB 7.4" with "Changes in GDB 7.5".

2012-07-18  Joel Brobecker  <brobecker@adacore.com>

	* version.in: Update GDB version number to 7.4.91.

2012-07-18  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac (development): Set to false.
	* configure: Regenerate.

2012-07-18  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.5 branch created (branch timestamp: 2012-07-18 03:22 UTC)
	* version.in: Bump version to 7.4.90.20120718-cvs.

2012-07-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR 11914
	* f-valprint.c (info_common_command): New variable frame_id.
	Reinitialize FI form FRAME_ID after each print_variable_and_value.
	* printcmd.c (print_variable_and_value): Extend function comment.
	Add comment for invalidated FRAME.
	* stack.c (backtrace_command_1): New variable frame_id.  Reinitialize
	FI form FRAME_ID after each print_frame_local_vars.
	(struct print_variable_and_value_data): Change frame to frame_id.
	(do_print_variable_and_value): New variable frame, initialize it from
	p->frame_id.  Add comment for invalidated FRAME.
	(print_frame_local_vars, print_frame_arg_vars): New function comment.
	Update CB_DATA.FRAME to CB_DATA.FRAME_ID initialization.  Add comment
	for invalidated FRAME.

2012-07-16  Marc Khouzam  <marc.khouzam@ericsson.com>
	    Pedro Alves  <palves@redhat.com>

	* linux-nat.c (linux_nat_detach): Don't unregister from the event
	loop.

2012-07-16  Tom Tromey  <tromey@redhat.com>

	* jv-typeprint.c (c_type_print_varspec_suffix): Don't declare.

2012-07-15  Doug Evans  <dje@google.com>

	* dwarf2read.c (stmt_list_hash): New struct.
	(type_unit_group): Embed "per_cu" member, remove pointer.
	New union member "t", move member "tus" into it, all uses updated.
	New member "hash", replaces member "line_offset, all uses updated.
	(quick_file_names): Replace member "offset" with "hash", all uses
	updated.
	(hash_stmt_list_entry, eq_stmt_list_entry): New functions.
	(hash_file_name_entry, eq_file_name_entry): Call them.
	(hash_type_unit_group, eq_type_unit_group): Ditto.
	(dw2_get_cu, dw2_get_primary_cu): Replace assert with a better one.
	(dw2_get_file_names_reader): Fix file name table calculation for TUs.
	(dw2_get_file_names): Update.
	(create_type_unit_group): Replace "per_cu" arg with "cu".
	All callers updated.  Fix "quick" (.gdb_index) handling.
	(get_type_unit_group): Replace "per_cu" arg with "cu".
	All callers updated.
	(build_type_unit_groups): Don't reset tu_stats.

	* symtab.c (filename_seen_cache): Delete members "tab_alloc_size",
	"tab_cur_size".  Change member "tab" to be a htab_t.
	(create_filename_seen_cache): Update.
	(clear_filename_seen_cache, delete_filename_seen_cache): Update.
	(filename_seen): Update.

2012-07-13  Doug Evans  <dje@google.com>

	* symtab.c (filename_seen): Update comment.

2012-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Doug Evans  <dje@google.com>

	* buildsym.c (end_symtab_1): Split it to ...
	(end_symtab_get_static_block): ... this ...
	(end_symtab_from_static_block): ... and this function.
	(end_symtab, end_expandable_symtab): Call them.
	* buildsym.h (end_symtab_get_static_block)
	(end_symtab_from_static_block): New declarations.
	* dwarf2read.c (process_full_comp_unit): New variable static_block.
	Set its valid CU ranges.

2012-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2loc.c (disassemble_dwarf_expression): Handle
	DW_OP_GNU_parameter_ref.

2012-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2read.c (read_call_site_scope): Do not gdb_assert for invalid
	read-in CALL_SITE_PARAMETER_PARAM_OFFSET.

2012-07-13  Doug Evans  <dje@google.com>

	* symtab.c (output_source_filename): Delete unnecessary forward decl.
	(filename_seen_cache): New struct.
	(INITIAL_FILENAME_SEEN_CACHE_SIZE): New macro.
	(create_filename_seen_cache): New function.
	(clear_filename_seen_cache, delete_filename_seen_cache): New functions.
	(filename_seen): Delete arg "first".  New arg "cache".  All callers
	updated.
	(output_source_filename_data): New struct.
	(output_source_filename): Delete arg "first".  New arg "data".
	All callers updated.
	(sources_info): Delete local "first".  New locals "data", "cleanups".
	Rewrite to use filename_seen_cache.
	(add_partial_filename_data): Delete member "first".  New member
	"filename_seen_cache".  All uses updated.
	(make_source_files_completion_list): Rewrite to use
	filename_seen_cache.

2012-07-12  Doug Evans  <dje@google.com>

	* psymtab.c (map_symbol_filenames_psymtab): Skip shared psymtabs.

2012-07-10  Doug Evans  <dje@google.com>

	PR gdb/13498
	* dwarf2read.c (dwarf2_per_objfile): New members n_type_unit_groups,
	all_type_unit_groups, type_unit_groups, tu_stats.
	(dwarf2_per_cu_data): Move "imported_symtabs" into new union "s".
	All uses updated.  Add type_unit_group to union "s".
	(type_unit_group): New struct.
	(IS_TYPE_UNIT_GROUP): New macro.
	(abbrev_table): Delete unused member "section".
	(dw2_do_instantiate_symtab): Early exit if type_unit_group.
	(dw2_get_cu): Assert not used with type_unit_group.
	(dw2_get_primary_cu): New function.
	(dw2_build_type_unit_groups_reader): New function.
	(dw2_build_type_unit_groups): New function.
	(dw2_get_file_names): Assert not called on type units.
	(dw2_map_symtabs_matching_filename): Call dw2_build_type_unit_groups.
	Redo loop to iterate over type unit groups instead of type units.
	(dw2_expand_symtabs_matching, dw2_map_symbol_filenames): Ditto.
	(read_abbrev_offset): New function.
	(init_cutu_and_read_dies): New arg "abbrev_table".  All callers
	updated.
	(create_partial_symtab): New function.
	(process_psymtab_comp_unit_reader): Assert not used with type units.
	Call create_partial_symtab.
	(process_psymtab_type_unit): Delete.
	(hash_type_unit_group, eq_type_unit_group): New functions.
	(allocate_type_unit_groups_table): New function.
	(NO_STMT_LIST_TYPE_UNIT_PSYMTAB): New macro.
	(NO_STMT_LIST_TYPE_UNIT_PSYMTAB_SIZE): New macro.
	(create_type_unit_group, get_type_unit_group): New functions.
	(tu_abbrev_offset): New struct.
	(sort_tu_by_abbrev_offset): New function.
	(add_type_unit_group_to_table): New function.
	(build_type_unit_groups): New function.
	(build_type_psymtabs_reader): New function.
	(build_type_psymtab_dependencies): New function.
	(build_type_psymtabs): Rewrite.
	(scan_partial_symbols): Flag an error if a DW_TAG_imported_unit
	is seen in a type unit.
	(process_queue): Move symtab expansion debugging printfs here.
	Call process_full_type_unit for type units.
	(compute_symtab_includes): Assert not called for type units.
	(process_cu_includes): Don't call compute_symtab_includes for
	type units.
	(process_full_type_unit): New function.
	(process_imported_unit_die): Flag an error if called for type units.
	(handle_DW_AT_stmt_list): Delete arg "want_line_info".  All callers
	updated.  Assert not called for type units.
	(read_file_scope): Call dwarf2_start_symtab.
	(setup_type_unit_groups): New function.
	(read_type_unit_scope): Rewrite.
	(abbrev_table_read_table): Initialize abbrev_table->offset.
	(abbrev_table_free_cleanup): New function.
	(dwarf2_start_symtab): New function.
	(load_full_type_unit): Assert not called for type unit groups.
	* buildsym.c (finish_block_internal): New arg "expandable".
	All callers updated.
	(start_symtab): Move most contents to ...
	(restart_symtab): ... here.  New function.
	(reset_symtab_globals): New function.
	(end_symtab_1): Renamed from end_symtab.  New arg "expandable".
	Call reset_symtab_globals.
	(end_symtab, end_expandable_symtab): New functions.
	(set_missing_symtab, augment_type_symtab): New functions.
	* buildsym.h (end_expandable_symtab): Declare.
	(augment_type_symtab, restart_symtab): Declare.
	* psympriv.h (struct partial_symtab): New member "anonymous".
	* psymtab.c (partial_map_symtabs_matching_filename): Ignore
	anonymous psymtabs.
	(read_psymtabs_with_filename): Ditto.
	(map_symbol_filenames_psymtab, psymtab_to_fullname): Ditto.
	(expand_symtabs_matching_via_partial): Ditto.
	(dump_psymtab): Update.
	* dictionary.c (dict_add_pending): New function.
	* dictionary.h (dict_add_pending): Declare.

2012-07-09  Doug Evans  <dje@google.com>

	* buildsym.c (start_subfile): Remove unnecessary check for
	name == NULL.

	* psymtab.c (allocate_psymtab): Use host_address_to_string.

	* dwarf2read.c (load_full_type_unit): Simplify.

	* dwarf2read.c (dwarf2_per_objfile): Change type of all_type_units
	to struct signatured_type **.  All uses updated.

	* dwarf2read.c (dwarf2_attr_no_follow): Delete unused arg "cu".
	All callers updated.

2012-07-09  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (check_parameter_typelist): New function.
	(parameter_typelist): Call it.
	* eval.c (make_params): Handle '(void)' case.
	* gdbtypes.c (lookup_function_type_with_arguments): Handle
	'(void)' case.

2012-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* common/linux-ptrace.c: Include gdb_assert.h.
	<__i386__> (linux_ptrace_test_ret_to_nx_instr): New declaration.
	<__i386__>: Include sys/reg.h, sys/mman.h, signal.h, sys/wait.h and
	stdint.h.
	(linux_ptrace_test_ret_to_nx, linux_ptrace_init_warnings): New
	functions.
	* common/linux-ptrace.h (linux_ptrace_init_warnings): New declarations.
	* linux-nat.c (linux_child_post_attach)
	(linux_child_post_startup_inferior): Call linux_ptrace_init_warnings.

2012-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-thread-db.c (thread_db_find_new_threads_silently): Do not apply
	nptl <2.7 bug workaround for core files.

2012-07-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-nat.c (resume_lwp, linux_nat_resume): Remove LP->SIGINFO
	clearing.
	(save_siginfo): Remove.
	(stop_wait_callback, linux_nat_filter_event): Remove the save_siginfo
	call.
	(resume_stopped_resumed_lwps): Remove LP->SIGINFO clearing.
	(linux_nat_get_siginfo): Use PTRACE_GETSIGINFO.
	* linux-nat.h (struct lwp_info): Remove field siginfo.

2012-07-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup for the next patch.
	* arm-linux-nat.c (arm_linux_stopped_data_address): Change variable
	siginfo_p to siginfo, update its users incl. the linux_nat_get_siginfo
	call for it.
	* ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise.
	(ia64_linux_stopped_data_address):
	* linux-nat.c (linux_nat_get_siginfo): Add parameter siginfo, change
	the return value.
	* linux-nat.h (linux_nat_get_siginfo): Likewise.
	* ppc-linux-nat.c (ppc_linux_stopped_data_address): Change variable
	siginfo_p to siginfo, update its users incl. the linux_nat_get_siginfo
	call for it.

2012-07-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR 14321
	* findcmd.c (parse_find_args): New variable pattern_buf_size_need.
	Increase buffer sizes to 2x we need, not just 2x of the previous size.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (DOTDOTDOT): New token.
	(func_mod, exp): Use parameter_typelist.
	(parameter_typelist): New production.
	(tokentab3): Add "..." token.
	* eval.c (make_params): Handle varargs.
	* gdbtypes.c (lookup_function_type_with_arguments): Handle
	varargs.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	PR exp/9608:
	* c-exp.y (%union) <tvec>: Change type.
	(func_mod): Now uses <tvec> type.
	(exp): Update for tvec change.
	(direct_abs_decl): Push the typelist.
	(func_mod): Return a typelist.
	(nonempty_typelist): Update for tvec change.
	* gdbtypes.c (lookup_function_type_with_arguments): New function.
	* gdbtypes.h (lookup_function_type_with_arguments): Declare.
	* parse.c (pop_type_list): New function.
	(push_typelist): New function.
	(follow_types): Handle tp_function_with_arguments.
	* parser-defs.h (type_ptr): New typedef.  Define a VEC.
	(enum type_pieces) <tp_function_with_arguments>: New constant.
	(union type_stack_elt) <typelist_val>: New field.
	(push_typelist): Declare.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (%union) <type_stack>: New field.
	(abs_decl, direct_abs_decl): Use <type_stack> type.  Update.
	(ptr_operator_ts): New production.
	(ptype): Update.
	* parse.c (type_stack_reserve): New function.
	(check_type_stack_depth): Use it.
	(pop_type_stack, append_type_stack, push_type_stack)
	(get_type_stack, type_stack_cleanup): New functions.
	(follow_types): Handle tp_type_stack.
	(_initialize_parse): Simplify initialization.
	* parser-defs.h (enum type_pieces) <tp_type_stack>: New
	constant.
	(union type_stack_elt) <stack_val>: New field.
	(get_type_stack, append_type_stack, push_type_stack)
	(type_stack_cleanup): Declare.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	* parser-defs.h (type_stack, type_stack_size, type_stack_depth):
	Remove.
	(struct type_stack): New.
	* parse.c (type_stack, type_stack_size, type_stack_depth):
	Remove.
	(type_stack): New global.
	(parse_exp_in_context, check_type_stack_depth)
	(insert_into_type_stack, insert_type, push_type, push_type_int)
	(insert_type_address_space, pop_type, pop_type_int)
	(_initialize_parse): Update.

2012-07-06  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (func_mod, direct_abs_decl, abs_decl, ptr_operator):
	Remove %type.

2012-07-06  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* c-lang.c (c_printstr): Remove ununsed variable WIDTH.

2012-07-06  Siddhesh Poyarekar  <siddhesh@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cp-valprint.c (cp_print_value): Replace potentially unsafe
	alloca with xmalloc/xfree.

2012-07-06  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-07-05  Doug Evans  <dje@google.com>

	* dwarf2read.c (dw2_expand_symtabs_matching): Fix typo.

2012-07-05  Hui Zhu  <hui_zhu@mentor.com>

	* ax-gdb.c (cli/cli-utils.h): New include.
	(linespec.h): Ditto.
	(agent_eval_command_one): New function.
	(agent_command_1): Ditto.
	(agent_command): Call function agent_command_1.
	(agent_eval_command): Ditto.
	(_initialize_ax_gdb): Change help for "maint agent"
	and "maint agent-eval".

2012-07-05  Hui Zhu  <hui_zhu@mentor.com>

	* breakpoint.c (check_for_argument): Move to file cli/cli-utils.c.
	* cli/cli-utils.c (check_for_argument): New function.
	* cli/cli-utils.h (check_for_argument): Ditto.

2012-07-04  H.J. Lu  <hongjiu.lu@intel.com>

	* NEWS: Mention x32 ABI support.

2012-07-04  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-tdep.c (amd64_x32_init_abi): Set sp_regnum_from_eax to
	AMD64_RSP_REGNUM and pc_regnum_from_eax to AMD64_RIP_REGNUM.

	* i386-tdep.c (i386_gdbarch_init): Initialize sp_regnum_from_eax
	and pc_regnum_from_eax to -1.  Update SP regnum from
	sp_regnum_from_eax and PC regnum from pc_regnum_from_eax if
	needed.

	* i386-tdep.h (gdbarch_tdep): Add sp_regnum_from_eax and
	pc_regnum_from_eax.

2012-07-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix 'warning: parameter has incomplete type' with gcc-3.4.6.
	* dwarf2expr.h: Include gdbtypes.h.
	(enum call_site_parameter_kind, union call_site_parameter_u): Remove
	these forward declarations.
	(cu_offset, sect_offset): Move these ...
	* gdbtypes.h: Remove include dwarf2expr.h.
	(cu_offset, sect_offset): ... here.

2012-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.c (linux_sigtramp_code): Renamed to ...
	(amd64_linux_sigtramp_code): This.
	(amd64_x32_linux_sigtramp_code): New.
	(LINUX_SIGTRAMP_LEN): Updated.
	(amd64_linux_sigtramp_start): Check x32 sigtramp.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-thread-db.c (thread_db_new_objfile): Fix comment typos.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove check for gnu/libc-version.h.
	* linux-thread-db.c <HAVE_GNU_LIBC_VERSION_H>: Remove include of
	gnu/libc-version.h.
	(enable_thread_event_reporting) <HAVE_GNU_LIBC_VERSION_H>: Remove
	variables libc_version, libc_major and libc_minor.  Replace sscanf by
	inferior_has_bug.  Extend the comment.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-thread-db.c (inferior_has_bug): New function.
	(thread_db_find_new_threads_silently): Return boolean as checked by
	inferior_has_bug, describe it in the comments.
	(try_thread_db_load_1): Move call to thread_db_find_new_threads_silently
	earlier.  Abort the initialization if it returned non-zero.
	(thread_db_new_objfile): Exclude debug files.
	(thread_db_find_new_threads_2): Preinitialize ERR.  Check errors also
	if UNTIL_NO_NEW,

2012-07-02  Doug Evans  <dje@google.com>

	* dwarf2read.c (maybe_queue_comp_unit): Move definition next to others
	related to queue management.

	* dwarf2read.c (create_debug_types_hash_table): Use "debug dwarf2-read"
	instead of "debug dwarf2-die" in debugging printfs.
	(create_debug_info_hash_table_reader): Ditto.
	(create_debug_info_hash_table): Ditto.
	(init_dwo_file): Ditto.
	(init_cutu_and_read_dies): Add debugging printf.
	(init_cutu_and_read_dies_no_follow): Ditto.
	(process_psymtab_comp_unit_reader): Ditto.

2012-07-02  Stan Shebs  <stan@codesourcery.com>

	Add target-side support for dynamic printf.
	* NEWS: Mention the additional style.
	* breakpoint.h (struct bp_target_info): New fields tcommands, persist.
	(struct bp_location): New field cmd_bytecode.
	* breakpoint.c: Include format.h.
	(disconnected_dprintf): New global.
	(parse_cmd_to_aexpr): New function.
	(build_target_command_list): New function.
	(insert_bp_location): Call it.
	(remove_breakpoints_pid): Skip dprintf breakpoints.
	(print_one_breakpoint_location): Ditto.
	(dprintf_style_agent): New global.
	(dprintf_style_enums): Add dprintf_style_agent.
	(update_dprintf_command_list): Add agent case.
	(agent_printf_command): New function.
	(_initialize_breakpoint): Add new commands.
	* common/ax.def (printf): New bytecode.
	* ax.h (ax_string): Declare.
	* ax-gdb.h (gen_printf): Declare.
	* ax-gdb.c: Include cli-utils.h, format.h.
	(gen_printf): New function.
	(maint_agent_print_command): New function.
	(_initialize_ax_gdb): Add maint agent-printf command.
	* ax-general.c (ax_string): New function.
	(ax_print): Add printf disassembly.
	* Makefile.in (SFILES): Add format.c
	(COMMON_OBS): Add format.o.
	* common/format.h: New file.
	* common/format.c: New file.
	* printcmd.c: Include format.h.
	(ui_printf): Call parse_format_string.
	* remote.c (remote_state): New field breakpoint_commands.
	(PACKET_BreakpointCommands): New enum.
	(remote_breakpoint_commands_feature): New function.
	(remote_protocol_features): Add new BreakpointCommands entry.
	(remote_can_run_breakpoint_commands): New function.
	(remote_add_target_side_commands): New function.
	(remote_insert_breakpoint): Call it.
	(remote_insert_hw_breakpoint): Ditto.
	(_initialize_remote): Add new packet configuration for
	target-side breakpoint commands.
	* target.h (struct target_ops): New field
	to_can_run_breakpoint_commands.
	(target_can_run_breakpoint_commands): New macro.
	* target.c (update_current_target): Handle
	to_can_run_breakpoint_commands.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Execute -ix and -iex only after system and user gdbinit files.
	* main.c (captured_main): Move CMDARG_INIT_FILE and CMDARG_INIT_COMMAND
	processing down after gdbinit files.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Add fnmatch-gnu module.
	* gnulib/Makefile.in (aclocal_m4_deps): Add new files and remove one.
	* gnulib/configure.ac (AC_INIT): Use now import/memmem.c.
	* gnulib/aclocal.m4: Regenerate.
	* gnulib/config.in: Regenerate.
	* gnulib/configure: Regenerate.
	* gnulib/import/dummy.c: Remove.
	* gnulib/import/Makefile.am: Regenerate.
	* gnulib/import/Makefile.in: Likewise.
	* gnulib/import/m4/gnulib-cache.m4: Likewise.
	* gnulib/import/m4/gnulib-comp.m4: Likewise.
	* gnulib/import/alloca.c: New file.
	* gnulib/import/alloca.in.h: Likewise.
	* gnulib/import/config.charset: Likewise.
	* gnulib/import/fnmatch.c: Likewise.
	* gnulib/import/fnmatch.in.h: Likewise.
	* gnulib/import/fnmatch_loop.c: Likewise.
	* gnulib/import/localcharset.c: Likewise.
	* gnulib/import/localcharset.h: Likewise.
	* gnulib/import/m4/alloca.m4: Likewise.
	* gnulib/import/m4/codeset.m4: Likewise.
	* gnulib/import/m4/configmake.m4: Likewise.
	* gnulib/import/m4/fcntl-o.m4: Likewise.
	* gnulib/import/m4/fnmatch.m4: Likewise.
	* gnulib/import/m4/glibc21.m4: Likewise.
	* gnulib/import/m4/localcharset.m4: Likewise.
	* gnulib/import/m4/locale-fr.m4: Likewise.
	* gnulib/import/m4/locale-ja.m4: Likewise.
	* gnulib/import/m4/locale-zh.m4: Likewise.
	* gnulib/import/m4/mbrtowc.m4: Likewise.
	* gnulib/import/m4/mbsinit.m4: Likewise.
	* gnulib/import/m4/mbsrtowcs.m4: Likewise.
	* gnulib/import/m4/mbstate_t.m4: Likewise.
	* gnulib/import/m4/stdbool.m4: Likewise.
	* gnulib/import/m4/wchar_h.m4: Likewise.
	* gnulib/import/m4/wctype_h.m4: Likewise.
	* gnulib/import/m4/wint_t.m4: Likewise.
	* gnulib/import/mbrtowc.c: Likewise.
	* gnulib/import/mbsinit.c: Likewise.
	* gnulib/import/mbsrtowcs-impl.h: Likewise.
	* gnulib/import/mbsrtowcs-state.c: Likewise.
	* gnulib/import/mbsrtowcs.c: Likewise.
	* gnulib/import/ref-add.sin: Likewise.
	* gnulib/import/ref-del.sin: Likewise.
	* gnulib/import/stdbool.in.h: Likewise.
	* gnulib/import/streq.h: Likewise.
	* gnulib/import/strnlen1.c: Likewise.
	* gnulib/import/strnlen1.h: Likewise.
	* gnulib/import/verify.h: Likewise.
	* gnulib/import/wchar.in.h: Likewise.
	* gnulib/import/wctype.in.h: Likewise.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support shell wildcards for 'set auto-load safe-path'.
	* auto-load.c: Include fnmatch.h.
	(filename_is_in_dir): Rename to ...
	(filename_is_in_pattern_1, filename_is_in_pattern): ... here and split
	it.  Update function comment.  Rename dir_len to pattern_len.  New
	variables filename_len, pattern and filename.  Add more DEBUG_AUTO_LOAD
	messages.  Use gdb_filename_fnmatch.
	(filename_is_in_auto_load_safe_path_vec): Rename variable dir to
	pattern.
	(_initialize_auto_load): Extend the "set auto-load safe-path" help text.
	* defs.h (gdb_filename_fnmatch): New declaration.
	* utils.c: Include fnmatch.h.
	(gdb_filename_fnmatch): New function.

2012-07-02  Sergio Durigan Junior  <sergiodj@redhat.com>

	* breakpoint.c (BREAK_ARGS_HELP): Include help message for the new
	`-probe' and `-probe-stap' options.

2012-07-01  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c: Removed always_inserted_auto, always_inserted_on,
	always_inserted_off, and always_inserted_enums.
	Change always_inserted_mode's type to 'enum auto_boolean'.
	(show_always_inserted_mode, breakpoint_always_inserted_mode): Update
	callers.
	(_initialize_breakpoint): Call add_setshow_auto_boolean_cmd instead
	of add_setshow_enum_cmd.
	* infrun.c: Remove can_use_displaced_stepping_auto,
	can_use_displaced_stepping_on, can_use_displaced_stepping_off, and
	can_use_displaced_stepping_enum.
	Change can_use_displaced_stepping's type to 'enum auto_boolean'.
	(show_can_use_displaced_stepping, use_displaced_stepping): Update callers.
	(_initialize_infrun): Call add_setshow_auto_boolean_cmd instead of
	add_setshow_enum_cmd.

2012-06-30  Doug Evans  <dje@google.com>

	* dwarf2read.c (signatured_type): Make "per_cu" member first.
	(init_cutu_and_read_dies): Handle rereading a DWO CU while it's
	currently being read.  Propagate DW_AT_comp_dir to DWO DIE.

2012-06-29  Doug Evans  <dje@google.com>

	* linespec.c: #include "stack.h".
	(decode_line_with_current_source): Moved here from symtab.c and
	renamed from decode_line_spec.  All callers updated.
	(decode_line_with_last_displayed): Moved here from breakpoint.c and
	renamed from decode_line_spec_1.  All callers updated.
	* linespec.h (decode_line_with_current_source): Move declaration here
	from symtab.h and renamed from decode_line_spec.
	(decode_line_with_last_displayed): Move declaration here from symtab.h
	and renamed from decode_line_spec_1.
	* macrocmd.c: #include "linespec.h".
	* symtab.c: Remove #include "linespec.h".

2012-06-28  Doug Evans  <dje@google.com>

	* dwarf2read.c (get_cu_length): New function.
	(offset_in_cu_p, error_check_comp_unit_head): Call it.
	(create_debug_types_hash_table): Ditto.
	(init_cutu_and_read_dies): Ditto.
	(init_cutu_and_read_dies_no_follow): Ditto.

	* dwarf2read.c (dwarf2_find_base_address): Move definition.

	* dwarf2read.c (ABBREV_HASH_SIZE): Remove enclosing #ifndef/#endif.
	(struct abbrev_table): Define.
	(dwarf2_cu): Replace members dwarf2_abbrevs, abbrev_obstack with
	abbrev_table.
	(init_cutu_and_read_dies): Update.
	(abbrev_table_alloc_abbrev): New function.  Replaces
	dwarf_alloc_abbrev.  All callers updated.
	(abbrev_table_add_abbrev): New function.
	(abbrev_table_lookup_abbrev): New function.  Replaces
	dwarf2_lookup_abbrev.  All callers updated.
	(abbrev_table_read_table): New function.  Contents moved here from
	dwarf2_read_abbrevs.
	(dwarf2_read_abbrevs): Call it.
	(abbrev_table_free): New function.
	(dwarf2_free_abbrev_table): Call it.

2012-06-28  Stan Shebs  <stan@codesourcery.com>

	* osdata.c (info_osdata_command): Filter out "Title" columns
	from non-MI uses.
	* common/linux-osdata.c (struct osdata_type): Add title field.
	(osdata_table): Add titles to each entry.
	(linux_command_xfer_osdata): Add a column for title data.

2012-06-28  Stan Shebs  <stan@codesourcery.com>

	Make logging work for MI.
	* NEWS: Mention it.
	* interps.h (interp_set_logging_ftype): New typedef.
	(struct interp_procs): New field set_logging_proc.
	(current_interp_set_logging): Declare.
	* interps.c (current_interp_set_logging): New function.
	* cli/cli-logging.c: Include interps.h.
	(set_logging_redirect): Call current_interp_set_logging.
	(pop_output_files): Ditto.
	(handle_redirections): Ditto, plus skip ui-out redirect if MI.
	* mi/mi-console.h (mi_console_set_raw): Declare.
	* mi/mi-console.c (mi_console_set_raw): New function.
	* mi/mi-interp.c (saved_raw_stdout): New global.
	(mi_set_logging): New function.
	(_initialize_mi_interp): Add it to interp procs.

2012-06-28  Doug Evans  <dje@google.com>

	* symtab.c (lookup_symbol_aux_objfile): Use
	ALL_OBJFILE_PRIMARY_SYMTABS.

	* gdbtypes.c (lookup_typename): Rename local variable "tmp" to "type".

2012-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* common/buffer.c: Include inttypes.h and stdint.h.
	(buffer_xml_printf): Use PRId64, PRIu64, PRIx64 and PRIo64.

2012-06-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	* gdbthread.h (ALL_THREADS): New macro.
	(thread_list): Declare.
	* infrun.c (handle_inferior_event) <spurious signal>: Don't keep
	going, but instead fall through to the stepping handling.
	* linux-nat.c (resume_lwp): New parameter 'signo'.  Resume with
	the passed in signal.  Adjust debug output.
	(resume_callback): Rename to ...
	(linux_nat_resume_callback): ... this.  Pass the thread's last
	stop signal, if in "pass" state.
	(linux_nat_resume): Adjust to rename.
	(stop_wait_callback): New assertion.  Don't respawn signals;
	instead let the LWP remain with SIGNALLED set.
	(linux_nat_wait_1): Remove flushing of pending SIGSTOPs.
	* remote.c (append_pending_thread_resumptions): New.
	(remote_vcont_resume): Call it.
	* target.h (target_resume): Extend comment.

2012-06-28  Iain Sandoe  <iain@codesourcery.com>

	* auxv.c (fprint_target_auxv): Handle extended cache data tags.

2012-06-27  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_cu): Add ranges_base.
	Delete have_addr_base, unused.  All uses updated.
	(init_cutu_and_read_dies): Process DW_AT_GNU_ranges_base.
	(dwarf2_get_pc_bounds): Add ranges_base.
	(dwarf2_record_block_ranges): Ditto.

2012-06-27  Tom Tromey  <tromey@redhat.com>

	PR macros/7961:
	* varobj.c (varobj_create): Update.
	(varobj_set_value): Update.
	* tracepoint.c (validate_actionline): Update.
	(encode_actions_1): Update.
	* parse.c (parse_exp_1): Add 'pc' argument.
	(parse_exp_in_context): Add 'pc' argument.  Change how
	expression_context_pc is set.
	(parse_expression): Update.
	(parse_field_expression): Update.
	* expression.h (parse_exp_1): Update.
	* eval.c (parse_to_comma_and_eval): Update.
	* breakpoint.c (set_breakpoint_condition): Update.
	(update_watchpoint): Update.
	(init_breakpoint_sal): Update
	(find_condition_and_thread): Update.
	(watch_command_1): Update.
	(update_breakpoint_locations): Update.
	* ada-lang.c (ada_read_renaming_var_value): Update.
	(create_excep_cond_exprs): Update.

2012-06-27  Doug Evans  <dje@google.com>

	* dwarf2read.c (per_cu_header_read_in): Simplify, and handle
	type units.

2012-06-26  Doug Evans  <dje@google.com>

	* dwarf2read.c (read_and_check_comp_unit_head): Delete unnecessary
	prototype.
	(error_check_comp_unit_head): New arg abbrev_section.  All callers
	updated.
	(read_and_check_comp_unit_head): Ditto.
	(read_and_check_type_unit_head): Ditto.

2012-06-26  Siva Chandra Reddy  <sivachandra@google.com>

	New attribute 'last' for gdb.Symtab_and_line.
	* NEWS (Python Scripting): Add entry about the new attribute.
	* python/py-symtab.c (salpy_get_last): New function which
	implements the get method for the 'last' attribute of
	gdb.Symtab_and_line.
	(sal_object_getset): Add entry for the 'last' attribute.

2012-06-26  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwo_section_names): Add macinfo_dwo, macro_dwo.
	(dwo_sections): Add macinfo, macro.
	(dwarf2_locate_dwo_sections): Watch for macro sections.
	(dwarf_decode_macros): Remove args lh, abfd, section, section_name.
	All callers updated.  Handle DWO files.

	* NEWS: Mention new options "set debug dwarf2-read" and
	"set debug symtab-create".
	* dwarf2read.c (dwarf2_read_debug): New static global.
	(dwarf2_build_psymtabs_hard): Add debugging printfs.
	(process_queue): Ditto.
	(process_full_comp_unit): Ditto.
	(_initialize_dwarf2_read): Add new option "set debug dwarf2-read".
	* elfread.c (elf_symfile_read): Add debugging printf.
	* minsyms.c (install_minimal_symbols): Ditto.
	* psymtab.c (allocate_psymtab): Ditto.
	* symfile.c (allocate_symtab): Ditto.
	* symtab.c (symtab_create_debug): New global.
	(_initialize_symtab): Add new option "set debug symtab-create".
	* symtab.h (symtab_create_debug): Declare.

	* dwarf2read.c (lookup_dwo_comp_unit): Enhance comment.
	(lookup_dwo_type_unit): Ditto.

2012-06-26  Roland McGrath  <roland@hack.frob.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c: Include <sys/user.h>.
	(ps_get_thread_area): Use PTRACE_PEEKUSER to get fs_base/gs_base
	if HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE or
	HAVE_STRUCT_USER_REGS_STRUCT_GS_BASE is defined.

	* configure.ac: Check if the fs_base and gs_base members of
	`struct user_regs_struct' exist.
	* config.in: Regenerated.
	* configure: Likewise.

2012-06-25  Michael Eager  <eager@eagercon.com>

	PR python/14291
	* python/python.c (gdbpy_write): Check for interrupted output. 

2012-06-25  Greta Yorsh  <greta.yorsh@arm.com>

	* arm-tdep.c (arm_in_function_epilogue_p): Recognize POP with a single
	register as a stack alignment in ARM mode.

2012-06-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Update gnulib to GIT commit a39f53ccb70a613e647e1019fb4c63645220267e.
	* gnulib/config.in: Regenerate.
	* gnulib/configure: Likewise.
	* gnulib/import/m4/extensions.m4: Update it.
	* gnulib/import/m4/gnulib-common.m4: Likewise.
	* gnulib/import/m4/memmem.m4: Likewise.
	* gnulib/import/m4/mmap-anon.m4: Likewise.
	* gnulib/import/m4/multiarch.m4: Likewise.
	* gnulib/import/stdint.in.h: Likewise.

2012-06-24  Yao Qi  <yao@codesourcery.com>

	* corefile.c (write_memory_with_notification): New.
	* gdbcore.h: Declare write_memory_with_notification.
	* ada-lang.c (ada_value_assign): Replace 'write_memory' and
	'observer_notify_memory_changed' with 'write_memory_with_notification'.
	* valops.c (value_assign): Likewise.
	* python/py-inferior.c (infpy_write_memory): Call
	'write_memory_with_notification'.

2012-06-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cc-with-index.sh: Use also -ex "set auto-load no".

2012-06-23  Doug Evans  <dje@google.com>

	PR 14125
	* NEWS: Document additions to .gdb_index.
	* dwarf2read.c: #include "gdb/gdb-index.h".
	(DW2_GDB_INDEX_SYMBOL_STATIC_SET_VALUE): New macro.
	(DW2_GDB_INDEX_SYMBOL_KIND_SET_VALUE): New macro.
	(DW2_GDB_INDEX_CU_SET_VALUE): New macro.
	(dwarf2_read_index): Recognize version 7.
	(dw2_do_expand_symtabs_matching): New args want_specific_block,
	block_kind, domain): All callers updated.
	(dw2_find_symbol_file): Handle new index CU values.
	(dw2_expand_symtabs_matching): Match symbol kind if requested.
	(add_index_entry): New args is_static, kind.  All callers updated.
	(offset_type_compare, uniquify_cu_indices): New functions
	(symbol_kind): New function.
	(write_psymtabs_to_index): Remove duplicate CU values.
	(write_psymtabs_to_index): Write .gdb_index version 7.

2012-06-22  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac (build_warnings): Add -Wdeclaration-after-statement.
	* configure: Regenerate.

2012-06-20  Yao Qi  <yao@codesourcery.com>

	* python/py-inferior.c: Update comments of infpy_read_memory
	and infpy_write_memory.

2012-06-19  Tom Tromey  <tromey@redhat.com>

	PR exp/9514:
	* parser-defs.h (insert_type, insert_type_address_space): Declare.
	(push_type_address_space): Remove.
	* parse.c (insert_into_type_stack): New function.
	(insert_type): Likewise.
	(insert_type_address_space): Rename from push_type_address_space.
	Insert tp_space_identifier.
	* c-exp.y (ptr_operator): New production.
	(abs_decl): Use ptr_operator.
	(space_identifier): Call insert_type_address_space.
	(ptype): Don't use const_or_volatile_or_space_identifier.
	(const_or_volatile_noopt): Call insert_type.
	(conversion_type_id, conversion_declarator): New productions.
	(operator): Use conversion_type_id.

2012-06-18  Doug Evans  <dje@google.com>

	* symtab.h (minimal_symbol): New member created_by_gdb.
	* elfread.c (elf_symtab_read): Set created_by_gdb for @plt minsym
	created by gdb.
	* symtab.c (lookup_symbol_in_objfile_from_linkage_name): New function.
	(search_symbols): Call it instead of lookup_symbol.
	Skip symbols created by gdb.  Only scan minsyms if nfiles == 0.

	* dwarf2expr.c (execute_stack_op): Handle DW_OP_GNU_const_index.
	Adjust address for DW_OP_GNU_addr_index.
	* dwarf2expr.h (dwarf_expr_context): Update comment.
	* dwarf2loc.c (locexpr_describe_location_piece): New arg per_cu,
	all callers updated.  Handle TLS vars described with
	DW_OP_GNU_const_index.
	(disassemble_dwarf_expression): Handle DW_OP_GNU_addr_index
	and DW_OP_GNU_const_index.
	* dwarf2read.c (decode_locdesc): Handle DW_OP_GNU_addr_index.

	* block.c (find_block_in_blockvector): Make explicit the fact that we
	ignore GLOBAL_BLOCK.

2012-06-18  Tom Tromey  <tromey@redhat.com>

	* c-exp.y (operator): Remove trailing space after "delete" and
	"delete[]".

2012-06-18  Mark Kettenis  <kettenis@gnu.org>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	Switch i386 and derived targets to ON_STACK.
	* amd64-dicos-tdep.c (amd64_dicos_push_dummy_code): Remove.
	(amd64_dicos_init_abi): Remove its installment.
	* dicos-tdep.c (dicos_init_abi): Remove the
	set_gdbarch_call_dummy_location call.  Update the comment here.
	* i386-dicos-tdep.c (i386_dicos_push_dummy_code): Remove.
	(i386_dicos_init_abi): Remove its installment.
	* i386-tdep.c (i386_push_dummy_code): New function.
	(i386_gdbarch_init): Call set_gdbarch_call_dummy_location, install
	i386_push_dummy_code.

2012-06-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Remove stale dummy frames.
	* breakpoint.c: Include dummy-frame.h.
	(longjmp_breakpoint_ops): New variable.
	(update_breakpoints_after_exec, breakpoint_init_inferior): Delete also
	bp_longjmp_call_dummy.
	(bpstat_what, bptype_string, print_one_breakpoint_location)
	(init_bp_location): Support bp_longjmp_call_dummy.
	(set_longjmp_breakpoint): Use longjmp_breakpoint_ops.  Comment why.
	(set_longjmp_breakpoint_for_call_dummy)
	(check_longjmp_breakpoint_for_call_dummy, longjmp_bkpt_dtor): New
	functions.
	(initialize_breakpoint_ops): Initialize longjmp_breakpoint_ops.
	* breakpoint.h (enum bptype): New item bp_longjmp_call_dummy.  Delete
	FIXME comment and extend the other comment for bp_call_dummy.
	(set_longjmp_breakpoint_for_call_dummy)
	(check_longjmp_breakpoint_for_call_dummy): New declarations.
	* dummy-frame.c: Include gdbthread.h.
	(pop_dummy_frame_bpt): New function.
	(pop_dummy_frame): Call pop_dummy_frame_bpt.
	(dummy_frame_discard): New function.
	(cleanup_dummy_frames): Update the comment about longjmps.
	* dummy-frame.h (dummy_frame_discard): New declaration.
	* gdbthread.h (struct thread_info): Extend initiating_frame comment.
	* infcall.c (call_function_by_hand): New variable longjmp_b.  Call
	set_longjmp_breakpoint_for_call_dummy.  Chain its breakpoints with BPT.
	* infrun.c (handle_inferior_event) <BPSTAT_WHAT_CLEAR_LONGJMP_RESUME>:
	Add case 4 comment.  Call check_longjmp_breakpoint_for_call_dummy and
	keep_going if IS_LONGJMP and there is no other reason to stop.

2012-06-18  Greta Yorsh  <Greta.Yorsh@arm.com>

	* remote-sim.c (sim_command_completer): Initialize
	variable 'result'.

2012-06-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2expr.c (execute_stack_op): Support DW_OP_GNU_parameter_ref.
	* dwarf2loc.c (call_site_parameter_matches): Support
	CALL_SITE_PARAMETER_PARAM_OFFSET.
	(needs_dwarf_reg_entry_value): Push stub value.
	* dwarf2read.c (read_call_site_scope): New variable origin.  Support
	CALL_SITE_PARAMETER_PARAM_OFFSET and its DW_AT_abstract_origin.
	* gdbtypes.h (enum call_site_parameter_kind): New item
	CALL_SITE_PARAMETER_PARAM_OFFSET.
	(struct call_site.parameter.u): New field param_offset.

2012-06-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup: Generalize call_site.parameter key.
	* dwarf2expr.c (execute_stack_op) <DW_OP_GNU_entry_value>: Remove
	variable dwarf_reg.  New variable kind_u.  Update parameters to
	push_dwarf_reg_entry_value.
	(ctx_no_push_dwarf_reg_entry_value): Update parameters.
	* dwarf2expr.h (enum call_site_parameter_kind)
	(union call_site_parameter_u): Forward declarations.
	(struct dwarf_expr_context_funcs): Update parameters and their
	description for push_dwarf_reg_entry_value.
	(ctx_no_push_dwarf_reg_entry_value): Update parameters.
	* dwarf2loc.c (call_site_parameter_matches): New function.
	(dwarf_expr_reg_to_entry_parameter): Update parameters and their
	description.  Use call_site_parameter_matches.
	(dwarf_expr_push_dwarf_reg_entry_value, value_of_dwarf_reg_entry):
	Update parameters and their description.
	(value_of_dwarf_block_entry): Remove variables dwarf_reg and fb_offset.
	New variable kind_u.  Adjust the caller for updated parameters.
	(needs_dwarf_reg_entry_value): Update parameters.
	* dwarf2read.c (read_call_site_scope): New variable loc.  Use it
	instead of attr.  Update for the changed fields of struct
	call_site_parameter.
	* gdbtypes.h: Include dwarf2expr.h.
	(enum call_site_parameter_kind): New.
	(struct call_site.parameter): New field kind.  Wrap dwarf_reg and
	fb_offset into new union u.

2012-06-16  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-tdep.c (amd64_x32_analyze_stack_align): New function.
	(amd64_analyze_prologue): Call amd64_x32_analyze_stack_align
	for x32.

2012-06-16  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c (compat_x32_clock_t): New.
	(compat_x32_siginfo_t): Likewise.
	(compat_x32_siginfo_from_siginfo): Likewise.
	(siginfo_from_compat_x32_siginfo): Likewise.
	(amd64_linux_siginfo_fixup): Call compat_x32_siginfo_from_siginfo
	and siginfo_from_compat_x32_siginfo for x32.

2012-06-15  Hui Zhu  <hui_zhu@mentor.com>

	* tracepoint.c (tfile_xfer_partial): Add a lseek.

2012-06-15  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c (ps_get_thread_area): Check bits_per_word
	instead of gdbarch_ptr_bit.
	* amd64-nat.c (amd64_native_gregset_reg_offset): Likewise.
	(amd64_supply_native_gregset): Likewise.
	(amd64_collect_native_gregset): Likewise.
	* amd64-tdep.c (amd64_supply_fxsave): Likewise.
	(amd64_supply_xsave): Likewise.
	(amd64_collect_fxsave): Likewise.
	(amd64_collect_xsave): Likewise.

2012-06-15  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c (AMD64_LINUX_X32_DS): New.
	(amd64_linux_read_description): Check DS segment register for
	x32 process.

2012-06-15  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dw2_find_symbol_file): Unconditionally use
	init_cutu_and_read_dies.

2012-06-15  Iain Sandoe <iain@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-06-15  Tom Tromey  <tromey@redhat.com>

	* valops.c (value_find_oload_method_list): Now static.
	* value.h (value_find_oload_method_list): Don't declare.

2012-06-15  Tom Tromey  <tromey@redhat.com>

	* valops.c (find_overload_match): Use value_ind.

2012-06-15  Maciej W. Rozycki  <macro@codesourcery.com>

	* infrun.c (handle_inferior_event): Correct indentation.

2012-06-14  Doug Evans  <dje@google.com>

	* dwarf2loc.c (debug_loc_kind): Add DEBUG_LOC_START_LENGTH.
	(DEBUG_LOC_START_END): Renamed from DEBUG_LOC_NORMAL.
	All uses updated.
	(decode_debug_loc_dwo_addresses): New arg "byte_order".  All callers
	updated.  Handle DEBUG_LOC_START_LENGTH.
	(dwarf2_find_location_expression): Handle DEBUG_LOC_START_LENGTH.
	(loclist_describe_location): Ditto.

2012-06-14  Maciej W. Rozycki  <macro@codesourcery.com>

	PR backtrace/13866
	* infrun.c (handle_inferior_event): Re-fetch frame and gdbarch
	after hiding inline functions.

2012-06-13  Joel Brobecker  <brobecker@adacore.com>

	* inf-ttrace.c (_initialize_hppa_hpux_nat): Rename into
	_initialize_inf_ttrace.

2012-06-13  Joel Brobecker  <brobecker@adacore.com>

	* ia64-hpux-nat.c (_initialize_ia64_hpux_nat): Renames
	_initialize_hppa_hpux_nat.

2012-06-13  Joel Brobecker  <brobecker@adacore.com>

	* remote-sim.c (sim_command_completer): Change type of return
	value to "VEC (char_ptr) *".  Adjust implementation accordingly.

2012-06-13  Mark Kettenis  <kettenis@gnu.org>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR tdep/14222
	* i386-tdep.c (i386_push_dummy_call): Unconditionally align the
	stack on a 16-byte boundary.

2012-06-13  Kaushik Srenevasan  <kaushik@twitter.com>

	* jit.c (finalize_symtab): Set function's return type to 'void' by
	default.

2012-06-13  Mark Kettenis  <kettenis@gnu.org>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.c (amd64_linux_init_abi_common): New function.
	Move bits common to both the classic LP64 and the new x32 ILP32
	ABI here.
	(amd64_linux_init_abi): Call amd64_linux_init_abi_common.
	(amd64_x32_linux_init_abi): New function.
	(_initialize_amd64_linux_tdep): Register osabi for bfd_mach_x64_32
	subtype.

	* i386-tdep.h (i386_pseudo_register_name): New prototype.
	* i386-tdep.c (i386_pseudo_register_name): Make public.
	* amd64-tdep.h (amd64_x32_init_abi): New prototype.
	* amd64-tdep.c (amd64_dword_names): Add "eip".
	(amd64_x32_pseudo_register_type): New function
	(amd64_x32_init_abi): New function.

2012-06-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR build/14003
	* inferior.h (struct inferior_suspend_state): Comment out.
	(struct inferior): Comment out the field suspend.
	* infrun.c (struct infcall_suspend_state): Comment out the field
	inferior_suspend.
	(save_infcall_suspend_state, restore_infcall_suspend_state): Comment
	out its assignment.

2012-06-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR c++/14177 - Fix parsing TYPENAME:: in parentheses.
	* c-exp.y (classify_inner_name): Remove caller assumptions in the
	function comment.  Return ERROR for unresolved cases.  Implement
	returning proper NAME.
	(yylex): Accept also NAME from classify_inner_name.
	* cp-namespace.c (cp_lookup_nested_type): Rename to ...
	(cp_lookup_nested_symbol): ... here.  Return any found symbol, not just
	LOC_TYPEDEF type.
	* cp-support.h (cp_lookup_nested_type): Update its declaration.

2012-06-13  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (condition_completer): New function.
	(_initialize_breakpoint): Use it.
	* value.c (complete_internalvar): New function.
	* value.h (complete_internalvar): Declare.

2012-06-13  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c (ada_make_symbol_completion_list): Return a VEC.
	* breakpoint.c (catch_syscall_completer): Return a VEC.
	* cli/cli-cmds.c (complete_command): Update.
	* cli/cli-decode.c (complete_on_cmdlist): Return a VEC.
	(complete_on_enum): Likewise.
	* command.h: Include gdb_vecs.h.
	(completer_ftype): Change return type.
	(complete_on_cmdlist, complete_on_enum): Likewise.
	* completer.c (noop_completer, filename_completer)
	(location_completer): Return a VEC.
	(add_struct_fields): Remove 'nextp' argument.  Change 'output'
	to a VEC.
	(expression_completer, complete_line_internal, complete_line)
	(command_completer): Return a VEC.
	(gdb_completion_word_break_characters, line_completion_function):
	Update.
	* completer.h: Include gdb_vecs.h.
	(complete_line, noop_completer, filename_completer)
	(expression_completer, location_completer, command_completer):
	Update.
	* f-lang.c (f_word_break_characters): Return a VEC.
	* interps.c (interpreter_completer): Return a VEC.
	* language.h (struct language_defn)
	<la_make_symbol_completion_list>: Return a VEC.
	* python/py-cmd.c (cmdpy_completer): Return a VEC.
	* symtab.c (free_completion_list): Take a VEC.
	(return_val_size, return_val_index): Remove.
	(return_val): Now a VEC.
	(completion_list_add_name): Update.
	(default_make_symbol_completion_list_break_on)
	(default_make_symbol_completion_list, make_symbol_completion_list)
	(make_symbol_completion_list_fn, make_file_symbol_completion_list):
	Return a VEC.
	(add_filename_to_list): Update.
	(struct add_partial_filename_data) <list_used, list_alloced>: Remove.
	<list>: Now a VEC.
	(maybe_add_partial_symtab_filename): Update.
	(make_source_files_completion_list): Return a VEC.
	* symtab.h (default_make_symbol_completion_list_break_on)
	(default_make_symbol_completion_list, make_symbol_completion_list)
	(make_symbol_completion_list_fn, make_file_symbol_completion_list)
	(make_source_files_completion_list): Update.

2012-06-13  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (add_catch_command): Use completer_ftype.
	* breakpoint.h: Include command.h.
	(add_catch_command): Use completer_ftype.
	* cli/cli-decode.c (set_cmd_completer): Use completer_ftype.
	* cli/cli-decode.h (struct cmd_list_element) <completer>:
	Use completer_ftype.
	* command.h (completer_ftype): New typedef.
	(set_cmd_completer): Use it.
	* python/py-cmd.c (struct cmdpy_completer) <completer>: Use
	completer_ftype.

2012-06-13  Pedro Alves  <palves@redhat.com>

	Partial revert of previous change.

	* serial.c (scb_base): New global.
	(serial_for_fd): New.
	(serial_open, serial_fdopen_ops): Link new serial in open serials
	chain.
	(do_serial_close): Unlink serial from the open serials chain.

2012-06-12  Pedro Alves  <palves@redhat.com>

	* infrun.c (infrun_thread_stop_requested_callback): Don't switch
	threads here.
	(prepare_for_detach): No longer context switch here in non-stop
	mode.
	(fetch_inferior_event): Ditto.
	(handle_inferior_event) <STOP_QUIETLY || NO_STOP_QUIETLY>: Switch
	to the event thread before removing breakpoints.  Switch to the
	event thread before inserting breakpoints and resuming.
	(handle_inferior_event) <TARGET_WAITKIND_SPURIOUS>: Switch to the
	event thread before resuming.
	(handle_inferior_event) <stepping_past_singlestep_breakpoint>:
	Switch to the event thread before removing breakpoints.

2012-06-12  Eli Zaretskii  <eliz@gnu.org>

	* infcmd.c (construct_inferior_arguments) [__MINGW32__]: Quote
	special characters correctly for the Windows shells.  See
	http://sourceware.org/ml/gdb/2012-06/msg00047.html for the bug
	report.
	[!__MINGW32__]: Remove extra double quote character from special
	characters.

2012-06-11  Stan Shebs  <stan@codesourcery.com>

	* ui-out.h: Remove #if 0 declarations.
	* ui-out.c: Remove #if 0 functions.

2012-06-11  Pedro Alves  <palves@redhat.com>

	* ser-base.c (run_async_handler_and_reschedule): New.
	(fd_event, push_event): Use it.
	* serial.c (serial_open, serial_fdopen_ops): Set the initial
	reference count to 1.
	(do_serial_close): Set the bufp field to NULL.  Use serial_unref
	instead of xfree.
	(serial_is_open, serial_ref, serial_unref): New.
	* serial.h (serial_open): Adjust comment.
	(serial_is_open): Declare.
	(serial_close): Adjust comment.
	(serial_ref, serial_unref) Declare.
	(struct serial): New field 'refcnt'.

2012-06-11  Pedro Alves  <palves@redhat.com>

	Remove #if 0'd "connect" command, and unnecessary associated
	refcounting and serial reuse bits.

	* serial.h (struct serial): Remove fields 'next' and 'refcnt'.
	* serial.c (last_serial_opened): Delete.
	(scb_base): Delete.
	(serial_open): Adjust.
	(serial_for_fd): Delete.
	(serial_fdopen_ops, do_serial_close): Adjust.
	(serial_fdopen_ops): Adjust.

2012-06-11  Pedro Alves  <palves@redhat.com>

	* serial.c (do_serial_close): Remove early return when SCB is
	null.

2012-06-11  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dw2_get_file_names_reader): Ignore partial units.

2012-06-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix regression by the "ambiguous linespec" series.
	* breakpoint.c (parse_breakpoint_sals): New variable cursal.  Use
	get_last_displayed_symtab and get_last_displayed_line and depending
	on CURSAL.

2012-06-11  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dw2_get_primary_filename_reader): New function.
	(dw2_find_symbol_file): Use it.

2012-06-11  Michael Eager  <eager@eagercon.com>

	* mips-linux-tdep.c (mips_gdb_signal_from_target): New
	* mips-linux-tdep.h (mips_signals): New

2012-06-11  Tom Tromey  <tromey@redhat.com>

	* infrun.c (handle_inferior_event)
	<BPSTAT_WHAT_SET_LONGJMP_RESUME>: Don't delete the step-resume
	breakpoint.
	<BPSTAT_WHAT_CLEAR_LONGJMP_RESUME>: Remove longjmp logic; use
	exception logic in all cases.  Update comments.
	(insert_longjmp_resume_breakpoint): Set the exception resume
	breakpoint.

2012-06-11  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_push_dummy_code): Handle microMIPS code.

2012-06-09  Siva Chandra Reddy  <sivachandra@google.com>

	* valarith.c (binop_types_user_defined_p): Fix a typo.

2012-06-08  Yao Qi  <yao@codesourcery.com>
            Chung-Lin Tang <cltang@codesourcery.com>

	* arch-utils.c (default_return_in_first_hidden_param_p): New.
	* arch-utils.h: Declare.
	* gdbarch.sh: Add return_in_first_hidden_param_p.
	* gdbarch.c, gdbarch.h: Regenerated.
	* infcall.c (call_function_by_hand): Call
	gdbarch_return_in_first_hidden_param_p instead of
	language_pass_by_reference.

	* m68k-tdep.c (m68k_return_in_first_hidden_param_p): New.
	(m68k_gdbarch_init): Install m68k_return_in_first_hidden_param_p.
	* sh-tdep.c (sh_return_in_first_hidden_param_p): New.
	(sh_gdbarch_init): Install sh_return_in_first_hidden_param_p.
	* tic6x-tdep.c (tic6x_push_dummy_call): Remove local variable
	`cplus_return_struct_by_reference'.
	(tic6x_return_value): Handle language cplusplus.
	(tic6x_return_in_first_hidden_param_p): New.
	(tic6x_gdbarch_init): Install tic6x_return_in_first_hidden_param_p.

2012-06-07  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_cu): Add comment.

2012-06-06  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_pseudo_register_type): Remove tdep local
	variable.
	(mips_eabi_push_dummy_call): Likewise.
	(mips_n32n64_push_dummy_call): Likewise.
	(mips_o32_push_dummy_call): Likewise.
	(mips_o64_push_dummy_call): Likewise.

2012-06-06  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_convert_register_p): Correct coding style.

2012-06-06  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_pseudo_register_type): Use
	mips_float_register_p.

2012-06-06  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event): Remove calls to
	reinit_frame_cache that follow a context_switch call.

2012-06-06  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event) <deferred_step_ptid>: Use
	context_switch and remove stale comment.

2012-06-06  Pedro Alves  <palves@redhat.com>

	* infrun.c (struct execution_control_state): Remove
	`new_thread_event' field.
	(handle_inferior_event): Simplify new threads handling; don't
	resume the inferior if we find a new thread.

2012-06-06  Thomas Schwinge  <thomas@codesourcery.com>

	* NEWS: Document the deprecation of SH's 'regs' command.
	* inferior.h (all_registers_info): Add function declaration.
	* sh-tdep.c (sh_show_regs): Remove variable.
	(sh_generic_show_regs, sh3_show_regs, sh2e_show_regs, sh2a_show_regs)
	(sh2a_nofpu_show_regs, sh3e_show_regs, sh3_dsp_show_regs)
	(sh4_show_regs, sh4_nofpu_show_regs, sh_dsp_show_regs)
	(sh_show_regs_command): Remove functions.
	(sh_gdbarch_init): Don't set sh_show_regs.
	(_initialize_sh_tdep): Make the 'regs' command an deprecated alias to
	'info all-registers'.
	* sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs)
	(sh64_show_regs): Remove functions.
	* sh64-tdep.h (sh64_show_regs): Remove function declaration.

2012-06-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure.ac: Move development=true below AC_INIT.
	* configure: Regenerate.

2012-06-05  Stan Shebs  <stan@codesourcery.com>

	* mi/mi-interp.c (mi_interpreter_init): Set raw_stdout from
	gdb_stdout.

2012-06-05  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* corefile.c (read_memory, read_stack, write_memory): Accept LEN
	argument as ssize_t.
	* gdbcore.h (read_memory, read_stack, write_memory): Likewise.
	* remote.c (remote_write_bytes_aux, remote_write_bytes): Likewise.
	* target.c (target_read_stack, target_write_memory)
	(target_write_raw_memory): Likewise.
	* target.h (target_read_stack, target_write_memory)
	(target_write_raw_memory): Likewise.

2012-06-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* symfile-mem.c: Change gdb_static_assert to ssize_t.
	(target_read_memory_bfd): Cast gdb_assert LEN to ssize_t.
	* target.c (target_read_memory): Change LEN to ssize_t.
	* target.h (target_read_memory): Change LEN to ssize_t.

2012-06-05  Pedro Alves  <palves@redhat.com>

	PR backtrace/13866

	* breakpoint.c (until_break_command): Only fetch the selected
	frame after decode_line_1.

2012-06-05  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>

	* solib-svr4.c (enable_break): Don't fallback to setting the solib
	event breakpoint at _start, __start or main if a program
	interpreter is not found.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* windows-tdep.h (windows_iterate_over_objfiles_in_search_order):
	Add declaration.
	* windows-tdep.c: #include "objfiles.h".
	(windows_iterate_over_objfiles_in_search_order): New function.
	* amd64-windows-tdep.c (amd64_windows_init_abi): Set
	iterate_over_objfiles_in_search_order gdbarch method to
	windows_iterate_over_objfiles_in_search_order.
	* i386-cygwin-tdep.c (i386_cygwin_init_abi): Likewise.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* gdbarch.sh: Add generation of
	"iterate_over_objfiles_in_search_order_cb_ftype" typedef in
	gdbarch.h.  Add include of "objfiles.h" in gdbarch.c.
	(iterate_over_objfiles_in_search_order): New gdbarch method.
	* gdbarch.h, gdbarch.c: Regenerate.
	* objfiles.h (default_iterate_over_objfiles_in_search_order):
	Add declaration.
	* objfiles.c (default_iterate_over_objfiles_in_search_order):
	New function.
	* symtab.c (lookup_symbol_aux_objfile): New function, extracted
	out of lookup_symbol_aux_symtabs.
	(lookup_symbol_aux_symtabs): Replace extracted-out code by
	call to lookup_symbol_aux_objfile.
	(struct global_sym_lookup_data): New type.
	(lookup_symbol_global_iterator_cb): New function.
	(lookup_symbol_global): Search for symbol using
	gdbarch_iterate_over_objfiles_in_search_order and
	lookup_symbol_global_iterator_cb.
	* findvar.c (struct minsym_lookup_data): New type.
	(minsym_lookup_iterator_cb): New function.
	(default_read_var_value) [case LOC_UNRESOLVED]: Resolve the
	symbol's address via gdbarch_iterate_over_objfiles_in_search_order
	and minsym_lookup_iterator_cb.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	Revert the following patch:
	* findvar.c (default_read_var_value): For LOC_UNRESOLVED symbols,
	try locating the symbol in the symbol's own objfile first, before
	extending the search to all objfiles.
	* symtab.c (lookup_symbol_aux_objfile): New function, extracted
	out of lookup_symbol_aux_symtabs.
	(lookup_symbol_aux_symtabs): Add new parameter "exclude_objfile".
	Replace extracted-out code by call to lookup_symbol_aux_objfile.
	Do not search EXCLUDE_OBJFILE.
	(lookup_static_symbol_aux): Update call to lookup_symbol_aux_symtabs.
	(lookup_symbol_global): Search for matches in the block's objfile
	first, before searching all other objfiles.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (find_condition_and_thread): Stop parsing
	as soon as the first invalid keyword is found.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (EXCLUDE_LIST): Add 'gdb/CONTRIBUTE' to list.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* config/djgpp/djcheck.sh: Add copyright header.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (update_files, main): Fix path to update-copyright
	script.

2012-06-05  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (MULTIPLE_COPYRIGHT_HEADERS): New constant.
	(main): Add MULTIPLE_COPYRIGHT_HEADERS to the list of files
	for which a reminder to update by hand is printed.

2012-06-04  Doug Evans  <dje@google.com>

	* buildsym.c (make_blockvector): Add comment.

2012-06-04  Pedro Alves  <palves@redhat.com>

	* arch-utils.c (default_gdb_signal_from_target): Delete.
	* arch-utils.h (default_gdb_signal_from_target): Delete.
	* corelow.c (core_open) <signal mapping>: Extended comment.  Check
	gdbarch_gdb_signal_from_target_p.
	* gdbarch.sh (gdb_signal_from_target): Make it an M method (with
	predicate).
	* gdbarch.h: Regenerate.
	* gdbarch.c: Regenerate.

2012-06-04  Pedro Alves  <palves@redhat.com>

	* gdbarch.sh (gdb_signal_from_target): Mention that the
	implementation of the method must be host independent.
	* gdbarch.h: Regenerate.

2012-06-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* symfile-mem.c: 3 new gdb_static_assert for target_read_memory_bfd
	parameters.
	(target_read_memory_bfd): New function.
	(symbol_file_add_from_memory): Use it.

2012-06-03  Doug Evans  <dje@google.com>

	* symtab.c (lookup_global_symbol_from_objfile): Only scan blockvector
	of primary symtab.
	(basic_lookup_transparent_type): Ditto.

	* objfiles.h (ALL_OBJFILE_PRIMARY_SYMTABS): New macro.
	(ALL_PRIMARY_SYMTABS): Use it.
	(ALL_PSPACE_PRIMARY_SYMTABS): Ditto.
	* dwarf2read.c (dw2_find_symbol_file): Ditto.
	* linespec.c (iterate_over_all_matching_symtabs): Ditto.
	* symtab.c (lookup_symbol_aux_objfile): Ditto.
	(basic_lookup_transparent_type): Ditto.

2012-06-02  Sergio Durigan Junior  <sergiodj@redhat.com>

	* symtab.c (symbol_demangled_name): New variable `dem_name'.  Use
	it to optimize resolution of demangled name.

2012-06-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure.ac (development): Define new variable.
	Call AC_CHECK_LIB for mcheck if $development.
	(ERROR_ON_WARNING): Enable it by default only if $development.
	* config.in: Regenerate.
	* configure: Regenerate.

2012-06-01  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* target.c (target_read_memory): Make LEN argument as size_t.
	* target.h (target_read_memory): Likewise.

2012-06-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* tilegx-linux-tdep.c (tilegx_l): Use ULL for 64-bit values.

2012-05-31  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* ppc-linux-nat.c (have_ptrace_booke_interface): Disable ptrace
	BookE interface for PowerPC server processors if not available
	in the Linux Kernel.

2012-05-31  Keith Seitz  <keiths@redhat.com>

	* linespec.c (decode_objc): Add cleanup to free
	INFO.FILE_SYMTABS.
	(find_linespec_symbols): Add cleanup to free CLASSES.
	* symfile.c (find_separate_debug_file_by_debuglink): Add
	cleanup to free DEBUGLINK.
	* ui-out.c (clear_header_list): No need to check if
	HEADER_NEXT.COLHDR is NULL.
	Free HEADER_NEXT.COL_NAME.

2012-05-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* ada-lang.c (standard_lookup): Prevent uninitialized variable
	warning.

2012-05-30  Jeff Kenton  <jkenton@tilera.com>

	* configure.host (gdb_host_cpu): Handle tilegx*.
	(gdb_host): Handle tilegx-*-linux*.
	* tilegx-linux-nat.c: New file.
	* config/tilegx/linux.mh: New file.

2012-05-30  Jeff Kenton  <jkenton@tilera.com>

	* Makefile.in (ALL_TARGET_OBJS): Add tilegx-tdep.o and
	tilegx-linux-tdep.o.
	(ALLDEPFILES): Add tilegx-linux-nat.c, tilegx-tdep.c and
	tilegx-linux-tdep.c.
	* configure.tgt: Handle tilegx-*-linux*.
	* tilegx-tdep.h: New file.
	* tilegx-tdep.c: New file.
	* tilegx-linux-tdep.c: New file.
	* regformats/reg-tilegx.dat: New file.

2012-05-30  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* ppc-linux-nat.c (ppc_linux_can_use_hw_breakpoint): fix
	accounting of hw watchpoints on ppc.

2012-05-30  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>

	* source.c (openp): Expand tilde in path entries.

2012-05-29  Doug Evans  <dje@google.com>

	* buildsym.c (block_compar): Fix comment.
	(end_symtab): Fix and clarify some comments.

	* stabsread.h (cleanup_undefined_stabs_types): Renamed from
	cleanup_undefined_types.
	* stabsread.c (cleanup_undefined_stabs_types): Ditto.
	All callers updated.

2012-05-29  Tom Tromey  <tromey@redhat.com>

	* symfile.c (symfile_bfd_open): Don't close desc if bfd_fopen
	fails.
	* solib.c (solib_bfd_fopen): Don't close fd if bfd_fopen fails.
	* exec.c (exec_file_attach): Don't close scratch_chan if bfd_fopen
	fails.
	* dwarf2read.c (try_open_dwo_file): Don't close fd if bfd_fopen
	fails.

2012-05-29  Tristan Gingold  <gingold@adacore.com>

	* solib-darwin.c (dyld_all_image_addr, dyld_all_image): Move into...
	(struct darwin_info): ... New struct.
	(solib_darwin_pspace_data): New variable.
	(darwin_pspace_data_cleanup): New function.
	(get_darwin_info): Likewise.
	(darwin_dyld_version_ok, darwin_load_image_infos)
	(darwin_solib_get_all_image_info_addr_at_init)
	(darwin_solib_read_all_image_info_addr): Add info argument.
	Adjust code.
	(darwin_current_sos): Use per pspace structure.
	(darwin_solib_create_inferior_hook): Likewise.
	(darwin_clear_solib): Likewise.
	(_initialize_darwin_solib): Initialize solib_darwin_pspace_data.

2012-05-28  Pedro Alves  <palves@redhat.com>

	* infrun.c (wait_for_inferior): Move ecss and ecs locals to the
	block that uses them.  Clear ecss before handling each event.

2012-05-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* solib-svr4.c (svr4_current_sos): New comment on
	svr4_current_sos_via_xfer_libraries fall back.

2012-05-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* psymtab.c (lookup_symbol_aux_psymtabs): New variable stab_best.  Use
	it as a fallback for TYPE_IS_OPAQUE.
	* symfile.h (struct quick_symbol_functions): Mention TYPE_OPAQUE
	symbols for lookup_symbol.

2012-05-24  John Steele Scott  <toojays@toojays.net>

	PR symtab/13277: Resolving opaque structures in ICC generated binaries.
	* dwarf2read.c (struct dwarf2_cu) <producer_is_icc>: New field.
	(producer_is_gxx_lt_4_6): Move the checking and caching to...
	(check_producer): ... this new function, which also checks for ICC
	and caches the result.
	(producer_is_icc): New function.
	(read_structure_type): Don't set TYPE_STUB_SUPPORTED if the
	producer was ICC.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR gdb/7205

	* arch-utils.c (default_gdb_signal_to_host): Rename to ...
	(default_gdb_signal_to_target): ... this.  Add comment.
	(default_gdb_signal_from_host): Rename to ...
	(default_gdb_signal_from_target): ... this.  Add comment.
	* arch-utils.h (default_gdb_signal_to_host): Rename to ...
	(default_gdb_signal_to_target): ... this.
	(default_gdb_signal_from_host): Rename to ...
	(default_gdb_signal_from_target): ... this.
	* corelow.c (core_open): Adjust to naming change.  Replace comment.
	* gdbarch.sh (gdb_signal_from_host): Rename to ...
	(gdb_signal_from_target): ... this.  Adjust to
	default_gdb_signal_from_host naming change.  Extend comment.
	(gdb_signal_to_host): Rename to ...
	(gdb_signal_to_target): ... this.  Adjust to
	default_gdb_signal_to_host naming change.
	* gdbarch.h, gdbarch.c: Renegerate.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR gdb/7205

        Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR gdb/7205

	Replace target_signal with gdb_signal throughout.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR tui/14159

	* tui/tui-hooks.c (tui_query_hook): Pre-compute the question
	string, instead of reusing the va_list argument.

2012-05-24  Tom Tromey  <tromey@redhat.com>

	* cp-support.h (cp_finalize_namespace, cp_initialize_namespace):
	Remove.

2012-05-23  Doug Evans  <dje@google.com>

	* symtab.c (search_symbols): Formatting fixes.
	(print_symbol_info): Formatting fixes.

	* dwarf2-frame.c (execute_cfa_program): Update to handle long long ->
	int64_t change to leb128 API.
	(read_encoded_value, decode_frame_entry_1): Ditto.
	* dwarf2expr.c (safe_read_uleb128, safe_read_sleb128): Ditto.
	(dwarf_block_to_dwarf_reg, dwarf_block_to_dwarf_reg_deref): Ditto.
	(dwarf_block_to_fb_offset, dwarf_block_to_sp_offset): Ditto.
	(execute_stack_op): Ditto.
	* dwarf2expr.h (gdb_read_uleb128, gdb_read_sleb128): Ditto.
	(safe_read_uleb128, safe_read_sleb128): Ditto.
	* dwarf2loc.c (decode_debug_loc_dwo_addresses): Ditto.
	(dwarf2_compile_expr_to_ax): Ditto.
	(locexpr_describe_location_piece): Ditto.
	(disassemble_dwarf_expression): Ditto.
	(locexpr_describe_location_1): Ditto.

2012-05-23  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* Makefile.in (SUBDIR_MI_OBS): Add mi-cmd-info.o.
	(SUBDIR_MI_SRCS): Add mi-cmd-info.c.
	(mi-cmd-info.o): New rule.
	* osdata.h (info_osdata_command): New declaration.
	* osdata.c (info_osdata_command): Change to non-static.
	* mi/mi-cmds.h (mi_cmd_info_os): New declaration.
	* mi/mi-cmds.c (mi_cmds): Add -info-os MI command.
	* mi/mi-cmd-info.c: New file.

2012-05-23  Doug Evans  <dje@google.com>

	* symtab.c (search_symbols): Pass NULL for file_matcher to
	expand_symtabs_matching if there are no files to match.

	* gdbtypes.c (lookup_typename): Simplify.

2012-05-23  Pedro Alves  <palves@redhat.com>

	* arch-utils.h (default_target_signal_to_host): Delete.
	* arch-utils.c (default_target_signal_to_host): Delete.
	* gdbarch.sh (target_signal_to_host): Remove.
	* gdbarch.h, gdbarch.c: Regenerate.

2012-05-22  Doug Evans  <dje@google.com>

	* dwarf2-frame.c (struct dwarf2_cie): Make initial_instructions, end
	"const gdb_byte *".
	(struct dwarf2_fde): Make instructions, end "const gdb_byte *".
	(execute_cfa_program): Update to match API of leb128 functions.
	(read_1_byte, read_4_bytes, read_8_bytes): Make buf parameter
	"const gdb_byte *".
	(read_unsigned_leb128, read_signed_leb128): Delete.
	(read_initial_length): Change type of buf argument to
	"const gdb_byte *".
	(read_encoded_value): Update to match API of leb128 functions.
	(decode_frame_entry): Change result to "const gdb_byte *", and
	similarly for "start" parameter.
	(decode_frame_entry_1): Ditto.  Use new leb128 reader functions.
	(dwarf2_build_frame_info): Change local frame_ptr to
	"const gdb_byte *".
	* dwarf2expr.c (safe_read_uleb128, safe_read_sleb128): Replaces
	read_uleb128, read_sleb128.  All callers updated.
	(safe_skip_leb128): New function.
	(dwarf_block_to_dwarf_reg): Update to match API of leb128 functions.
	Call gdb_read_uleb128, gdb_skip_leb128 instead of read_uleb128.
	(dwarf_block_to_dwarf_reg_deref): Update to match API of leb128
	functions.  Call gdb_read_uleb128, gdb_read_sleb128 instead of
	read_uleb128, read_sleb128.
	(dwarf_block_to_fb_offset, dwarf_block_to_sp_offset): Ditto.
	(execute_stack_op): Update to match API of leb128 functions.
	* dwarf2expr.h: #include "leb128.h".
	(read_uleb128, read_sleb128): Delete.
	(gdb_read_uleb128, gdb_read_sleb128, gdb_skip_leb128): New functions.
	(safe_read_uleb128, safe_read_sleb128, safe_skip_leb128): Declare.
	* dwarf2loc.c (debug_loc_kind): New enum.
	(decode_debug_loc_addresses): New function.
	(decode_debug_loc_dwo_addresses): New function.
	(dwarf2_find_location_expression): Rewrite.
	(dwarf2_compile_expr_to_ax): Update to match API of leb128 functions.
	(locexpr_describe_location_piece): Ditto.
	(disassemble_dwarf_expression): Ditto.
	(locexpr_describe_location_1): Ditto.
	(loclist_describe_location): Rewrite.
	* dwarf2loc.h (dwarf2_loclist_baton): New member "from_dwo".
	* dwarf2read.c (die_reader_specs): New member "buffer_end".
	(dwarf2_section_buffer_overflow_complaint): Renamed from
	dwarf2_macros_too_long_complaint.  All callers updated.
	(skip_leb128): Delete.
	(init_cu_die_reader): Initialize reader->buffer_end.
	(skip_one_die): Replace call to skip_leb128 with safe_skip_leb128.
	(skip_form_bytes): New arg buffer_end.  All callers updated.
	Replace call to skip_leb128 with gdb_skip_leb128.
	(skip_unknown_opcode): New arg mac_end.  All callers updated.
	(fill_in_loclist_baton): Initialize baton->from_dwo.

2012-05-22  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-linux-nat.c (mips_linux_read_description): Use a more
	verbose error message.

2012-05-22  Maciej W. Rozycki  <macro@codesourcery.com>

	* NEWS: Add MIPS/Linux DSP support.
	* mips-linux-tdep.c: Document post-2.6.12 o32 sigcontext layout.
	(SIGCONTEXT_DSPCTL): New macro.
	(SIGCONTEXT_HI1, SIGCONTEXT_LO1): Likewise.
	(SIGCONTEXT_HI2, SIGCONTEXT_LO2): Likewise.
	(SIGCONTEXT_HI3, SIGCONTEXT_LO3): Likewise.
	(N64_SIGCONTEXT_HI1, N64_SIGCONTEXT_HI2): Likewise.
	(N64_SIGCONTEXT_HI3): Likewise.
	(N64_SIGCONTEXT_LO1, N64_SIGCONTEXT_LO2): Likewise.
	(N64_SIGCONTEXT_LO3): Likewise.
	(N64_SIGCONTEXT_DSPCTL): Likewise.
	(N64_SIGCONTEXT_FPCSR): Clarify definition.
	(mips_linux_o32_sigframe_init): Handle DSP registers.
	(mips_linux_n32n64_sigframe_init): Likewise.

2012-05-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* common/buffer.c (buffer_grow): ARI fix: Remove unneeded
	call to abort.

2012-05-22  Pedro Alves  <palves@redhat.com>

	* target.h (store_waitstatus): Move declaration ...
	* inf-child.h (store_waitstatus): ... here.
	* target.c: Move inclusion of gdb_wait.h, and ...
	(store_waitstatus): ... this ...
	* inf-child.c: ... here.
	* linux-nat.c: Include inf-child.h.
	* rs6000-nat.c: Include inf-child.h.
	* spu-linux-nat.c: Include inf-child.h.

2012-05-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* tracepoint.c (start_tracing): Add missing i18n markup.
	(stop_tracing, set_trace_user): Ditto.
	(set_trace_notes, set_trace_stop_notes): Ditto.

2012-05-21  Tom Tromey  <tromey@redhat.com>

	PR c++/7173:
	* gnu-v3-abi.c (gnuv3_baseclass_offset): Return early for Java
	types.
	* value.h (value_cast_pointers): Update.
	* valops.c (value_cast_pointers): Add 'subclass_check' argument.
	(value_cast): Update.
	(update_search_result): New function.
	(do_search_struct_field): New, from search_struct_field.  Check
	for ambiguous results.
	(search_struct_field): Rewrite.
	* infcall.c (value_arg_coerce): Update.
	* eval.c (evaluate_subexp_standard) <STRUCTOP_MEMBER>: Use
	value_cast_pointers.
	* ada-lang.c (ada_convert_actual): Update.

2012-05-21  Tom Tromey  <tromey@redhat.com>

	* macroexp.c (macro_stringify): Terminate the string.

2012-05-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS (--with-auto-load-dir): Prepend $debugdir to the default path.
	Describe it.
	* auto-load.c (auto_load_expand_dir_vars): New function.
	(auto_load_safe_path_vec_update): Use it, remove the
	substitute_path_component call thanks to it.
	(auto_load_objfile_script): Remove the debug_file_directory processing.
	Use auto_load_expand_dir_vars, remove the substitute_path_component
	call thanks to it.
	* configure: Regenerate.
	* configure.ac (--with-auto-load-dir): Prepend $debugdir to the default
	path.  Escape $ also for $debugdir.
	(--with_auto_load_safe_path): Escape $ also for $debugdir.
	* utils.c (substitute_path_component): Accept also DIRNAME_SEPARATOR.

2012-05-20  Doug Evans  <dje@google.com>

	* dwarf2read.c (recursively_find_pc_sect_symtab): Initialize "s"
	before use.  Check for symtab->includes == NULL before scanning it.

2012-05-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_reg3_to_reg): Optimize storage.

2012-05-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* NEWS: Add microMIPS support and "set mips compression",
	"show mips compression" commands.
	* mips-tdep.h (mips_isa): New enum.
	(gdbarch_tdep): Add mips_isa.
	(mips_pc_is_mips16): Update prototype.
	(mips_pc_is_mips, mips_pc_is_micromips): New prototypes.
	* mips-tdep.c (mips_compression_mips16): New variable.
	(mips_compression_micromips): Likewise.
	(mips_compression_strings): Likewise.
	(mips_compression_string): Likewise.
	(is_mips16_isa, is_micromips_isa): New functions.
	(is_mips16_addr): Rename to...
	(is_compact_addr): ... this.
	(unmake_mips16_addr): Likewise to...
	(unmake_compact_addr): ... this.
	(make_mips16_addr): Likewise to...
	(make_compact_addr): ... this.
	(is_mips_addr, is_mips16_addr, is_micromips_addr): New
	functions.
	(mips_elf_make_msymbol_special): Handle microMIPS code.
	(msymbol_is_special): Rename to...
	(msymbol_is_mips16): ... this.
	(mips_make_symbol_special, mips_pc_is_mips16): Update
	accordingly.
	(msymbol_is_mips, msymbol_is_micromips): New functions.
	(mips16_to_32_reg): Rename to...
	(mips_reg3_to_reg): ... this.
	(mips_pc_is_mips, mips_pc_is_micromips): New functions.
	(mips_pc_isa): Likewise.
	(mips_read_pc, mips_unwind_pc, mips_write_pc): Handle microMIPS
	code.
	(mips_fetch_instruction): Pass return status instead of printing
	an error message if requested.  Handle microMIPS code.  Bail out
	on an invalid ISA.
	(micromips_op): New macro.
	(b0s4_imm, b0s5_imm, b0s5_reg, b0s7_imm, b0s10_imm): Likewise.
	(b1s9_imm, b2s3_cc, b4s2_regl, b5s5_op, b5s5_reg): Likewise.
	(b6s4_op, b7s3_reg): Likewise.
	(b0s6_op, b0s11_op, b0s12_imm, b0s16_imm, b0s26_imm): Likewise.
	(b6s10_ext, b11s5_reg, b12s4_op): Likewise.
	(mips_insn_size): New function.
	(mips32_next_pc): Update mips_fetch_instruction call.
	(micromips_relative_offset7): New function.
	(micromips_relative_offset10): Likewise.
	(micromips_relative_offset16): Likewise.
	(micromips_pc_insn_size): Likewise.
	(micromips_bc1_pc): Likewise.
	(micromips_next_pc): Likewise.
	(unpack_mips16): Update mips_fetch_instruction call.
	(extended_mips16_next_pc): Update according to change to
	mips16_to_32_reg.
	(mips_next_pc): Update mips_pc_is_mips16 call.  Handle microMIPS
	code.
	(mips16_scan_prologue): Update mips_fetch_instruction call.
	Update according to change to mips16_to_32_reg.
	(mips_insn16_frame_sniffer): Update mips_pc_is_mips16 call.
	(mips_insn16_frame_base_sniffer): Likewise.
	(micromips_decode_imm9): New function.
	(micromips_scan_prologue): Likewise.
	(mips_micro_frame_cache): Likewise.
	(mips_micro_frame_this_id): Likewise.
	(mips_micro_frame_prev_register): Likewise.
	(mips_micro_frame_sniffer): Likewise.
	(mips_micro_frame_unwind): New variable.
	(mips_micro_frame_base_address): New function.
	(mips_micro_frame_base): New variable.
	(mips_micro_frame_base_sniffer): New function.
	(mips32_scan_prologue): Update mips_fetch_instruction call.
	(mips_insn32_frame_sniffer): Check for the standard MIPS ISA
	rather than for MIPS16.
	(mips_insn32_frame_base_sniffer): Likewise.
	(mips_addr_bits_remove): Handle microMIPS code.
	(deal_with_atomic_sequence): Rename to...
	(mips_deal_with_atomic_sequence): ... this.  Update the type
	of the variable used to hold an instruction.  Remove the ISA bit
	check.  Update mips_fetch_instruction call.
	(micromips_deal_with_atomic_sequence): New function.
	(deal_with_atomic_sequence): Likewise.
	(mips_about_to_return): Handle microMIPS code.  Update
	mips_fetch_instruction call.
	(heuristic_proc_start): Check for the standard MIPS ISA rather
	than for MIPS16.  Update mips_pc_is_mips16 and
	mips_fetch_instruction calls.  Handle microMIPS code.
	(mips_push_dummy_code): Handle microMIPS code.
	(mips_eabi_push_dummy_call): Likewise.
	(mips_o32_return_value): Update mips_pc_is_mips16 call.
	(mips_o64_push_dummy_call): Handle microMIPS code.
	(mips_o64_return_value): Update mips_pc_is_mips16 call.
	(is_delayed): Remove function.
	(mips_single_step_through_delay): Replace the call to is_delayed
	with mips32_instruction_has_delay_slot.  Correct MIPS16 handling.
	Handle microMIPS code.
	(mips_skip_prologue): Update mips_pc_is_mips16 call.  Handle
	microMIPS code.
	(mips32_in_function_epilogue_p): Update mips_fetch_instruction
	call.
	(micromips_in_function_epilogue_p): New function.
	(mips16_in_function_epilogue_p): Update mips_fetch_instruction
	call.
	(mips_in_function_epilogue_p): Update mips_pc_is_mips16 call.
	Handle microMIPS.
	(gdb_print_insn_mips): Likewise.
	(mips_breakpoint_from_pc): Likewise.
	(mips_remote_breakpoint_from_pc): New function.
	(mips32_instruction_has_delay_slot): Simplify making use of the
	updated mips_fetch_instruction interface.
	(micromips_instruction_has_delay_slot): New function.
	(mips16_instruction_has_delay_slot): Simplify making use of the
	updated mips_fetch_instruction interface.
	(mips_adjust_breakpoint_address): Check for the standard MIPS
	ISA rather than for MIPS16 ISA.  Update for unmake_compact_addr 
	calls.  Handle microMIPS code.
	(mips_get_mips16_fn_stub_pc): Update mips_fetch_instruction call.
	(mips_skip_trampoline_code): Handle microMIPS code.
	(global_mips_compression): New function.
	(mips_gdbarch_init): Handle the compressed ISA setting from ELF
	file flags.  Register the microMIPS remote breakpoint handler
	and heuristic frame unwinder.
	(show_mips_compression): New function.
	(_initialize_mips_tdep): Add the "set mips compression" and
	"show mips compression" commands.

2012-05-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* ada-lang.c:
	* ada-tasks.c:
	* ada-varobj.c:
	* amd64-darwin-tdep.c:
	* arm-symbian-tdep.c:
	* arm-tdep.c:
	* avr-tdep.c:
	* ax-gdb.c:
	* bfin-linux-tdep.c:
	* breakpoint.c:
	* c-valprint.c:
	* cli/cli-cmds.c:
	* coffread.c:
	* cp-support.c:
	* cris-tdep.c:
	* dwarf2-frame-tailcall.c:
	* dwarf2-frame.c:
	* dwarf2expr.c:
	* dwarf2loc.c:
	* dwarf2read.c:
	* elfread.c:
	* eval.c:
	* expprint.c:
	* f-valprint.c:
	* frv-tdep.c:
	* h8300-tdep.c:
	* hppa-hpux-tdep.c:
	* hppa-tdep.c:
	* hppanbsd-tdep.c:
	* i386-nto-tdep.c:
	* i386-tdep.c:
	* i387-tdep.c:
	* ia64-tdep.c:
	* jit.c:
	* linespec.c:
	* linux-tdep.c:
	* lm32-tdep.c:
	* m2-valprint.c:
	* m32c-tdep.c:
	* m32r-rom.c:
	* m32r-tdep.c:
	* m68k-tdep.c:
	* m68klinux-tdep.c:
	* mi/mi-main.c:
	* microblaze-tdep.c:
	* mips-linux-tdep.c:
	* mips-tdep.c:
	* mn10300-tdep.c:
	* p-valprint.c:
	* parse.c:
	* ppc-linux-tdep.c:
	* ppc-sysv-tdep.c:
	* printcmd.c:
	* python/py-finishbreakpoint.c:
	* python/py-inferior.c:
	* python/py-infthread.c:
	* python/py-type.c:
	* python/python.c:
	* remote-fileio.c:
	* remote-m32r-sdi.c:
	* remote-mips.c:
	* reverse.c:
	* rl78-tdep.c:
	* rs6000-aix-tdep.c:
	* rs6000-tdep.c:
	* s390-tdep.c:
	* score-tdep.c:
	* sh64-tdep.c:
	* skip.c:
	* solib-darwin.c:
	* solib-dsbt.c:
	* solib-frv.c:
	* sparc-tdep.c:
	* spu-multiarch.c:
	* spu-tdep.c:
	* stack.c:
	* symfile.c:
	* symtab.c:
	* tic6x-tdep.c:
	* tracepoint.c:
	* v850-tdep.c:
	* valarith.c:
	* valprint.c:
	* value.c:
	* xcoffread.c:
	* xtensa-tdep.c:
	* ada-lang.c:
	* ada-tasks.c:
	* ada-varobj.c:
	* amd64-darwin-tdep.c:
	* arm-symbian-tdep.c:
	* arm-tdep.c: Delete unused variables.

2012-05-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Rename $ddir to $datadir.
	* NEWS (--with-auto-load-dir): Rename $ddir to $datadir.
	* auto-load.c (auto_load_safe_path_vec_update)
	(auto_load_gdb_datadir_changed, auto_load_objfile_script): Likewise.
	* configure: Regenerate.
	* configure.ac (--with-auto-load-dir, --with-auto-load-safe-path):
	Likewise.  Remove the 'use $ddir' help string.

2012-05-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* auto-load.c (show_auto_load_safe_path): Accept any combination of
	DIRNAME_SEPARATOR and IS_DIR_SEPARATOR for wild-match.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	PR exp/13907:
	* valprint.h (struct value_print_options) <symbol_print>: New
	field.
	* valprint.c (user_print_options): Add default for symbol_print.
	(show_symbol_print): New function.
	(generic_val_print): Respect symbol_print.
	(_initialize_valprint): Add "print symbol" setting.
	* f-valprint.c (f_val_print): Respect symbol_print.
	* c-valprint.c (c_val_print): Respect symbol_print.
	* NEWS: Update.
	* printcmd.c (print_address_symbolic): Return int.  Ignore some
	zero-size symbols.
	(print_address_demangle): Return int.
	* defs.h: (print_address_symbolic): Return int.
	* value.h (print_address_demangle): Return int.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* valprint.c (val_print_string): Don't print leading space.
	* p-valprint.c (pascal_val_print) <TYPE_CODE_PTR>: Optionally
	print space before string or vtbl.
	* m2-valprint.c (print_unpacked_pointer): Optionally print space
	before string.
	* jv-valprint.c (java_value_print): Print space before string.
	* go-valprint.c (print_go_string): Print space before string.
	* f-valprint.c (f_val_print) <TYPE_CODE_PTR>: Optionally print
	space before string.
	* c-valprint.c (c_val_print) <TYPE_CODE_PTR>: Optionally print
	space before string or vtbl.
	* auxv.c (fprint_target_auxv): Print space after address.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* printcmd.c (print_address_demangle): Remove special case for 0.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* printcmd.c (print_address_demangle): Add 'opts' argument.
	* p-valprint.c (pascal_val_print): Update.
	* jv-valprint.c (java_val_print): Update.
	* value.h: Update.
	* valprint.c (generic_val_print): Update.
	(print_function_pointer_address): Add 'options' argument.  Remove
	'addressprint' argument.  Update.
	* m2-valprint.c (print_unpacked_pointer): Update.
	* gnu-v3-abi.c (print_one_vtable): Update.
	(gnuv3_print_method_ptr): Update.
	* f-valprint.c (f_val_print): Update.
	* cp-valprint.c (cp_print_value_fields): Update.
	* valprint.h (print_function_pointer_address): Update.
	* c-valprint.c (c_val_print): Update.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* psymtab.c (find_pc_sect_symtab_from_partial): Return the symtab
	directly corresponding to the found psymtab.
	* dwarf2read.c (recursively_find_pc_sect_symtab): New function.
	(dw2_find_pc_sect_symtab): Use it.
	* block.h (blockvector_contains_pc): Declare.
	* block.c (find_block_in_blockvector): New function.
	(blockvector_for_pc_sect): Use it.
	(blockvector_contains_pc): New function.

2012-05-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.h (mips_write_pc): New prototype.
	* mips-tdep.c (mips_write_pc): Make external, add description.
	* mips-linux-tdep.c (mips_linux_write_pc): Use mips_write_pc,
	add description.

2012-05-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_read_pc): Use gdbarch_pc_regnum instead of
	mips_regnum->pc.
	(mips_unwind_pc, mips_write_pc): Likewise.
	(mips_gdbarch_init): Remove a comment on gdbarch_pc_regnum and
	gdbarch_read_pc.

2012-05-17  Joel Brobecker  <brobecker@adacore.com>

	* procfs.c (procfs_find_new_threads, procfs_pid_to_str,
	proc_warn, proc_error, proc_get_status, proc_flags,
	proc_why, proc_what, proc_nsysarg, proc_sysargs,
	proc_set_run_on_last_close, proc_unset_run_on_last_close,
	proc_unset_inherit_on_fork, proc_set_async, proc_unset_async,
	proc_stop_process, proc_wait_for_stop, proc_run_process,
	proc_set_traced_signals, proc_set_traced_faults,
	proc_set_traced_sysentry, proc_set_traced_sysexit,
	proc_set_held_signals, proc_get_held_signals,
	proc_get_traced_signals, proc_get_traced_faults,
	proc_get_traced_sysentry, proc_get_traced_sysexit,
	proc_clear_current_fault, proc_set_current_signal,
	proc_clear_current_signal, proc_get_gregs, proc_get_fpregs,
	proc_set_gregs, proc_set_fpregs, proc_kill, proc_parent_pid,
	proc_get_nthreads, proc_get_nthreads, proc_get_nthreads,
	proc_get_current_thread, proc_get_current_thread,
	proc_get_current_thread, proc_update_threads,
	proc_update_threads, proc_update_threads, proc_update_threads,
	proc_iterate_over_threads, procfs_find_new_threads,
	procfs_pid_to_str): Make static.  Remove advance declaration.
	(proc_cursig): Make static.  Conditionalized defintion on
	PROCFS_DONT_PIOCSSIG_CURSIG being defined.
	(proc_syscall, proc_set_kill_on_last_close,
	proc_unset_kill_on_last_close, proc_set_inherit_on_fork,
	proc_get_pending_signals, proc_get_signal_actions,
	proc_trace_signal, proc_ignore_signal): Delete.

2012-05-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* coffread.c (cs_section_address): Passing proper argument for
	`bfd_get_section_vma'.
	* dwarf2read.c (dwarf2_locate_sections): Likewise, for
	`bfd_get_section_flags'.
	* remote.c (remote_trace_set_readonly_regions): Likewise, for
	`bfd_get_section_vma'.

2012-05-16  Tom Tromey  <tromey@redhat.com>

	PR macros/13205:
	* macrotab.h: (macro_define_special): Declare.
	(enum macro_special_kind): New.
	(struct macro_definition) <argc, replacement>: Update comments.
	* macrotab.c (new_macro_definition): Unconditionally set 'argc'.
	(macro_define_object_internal): New function.
	(macro_define_object): Use it.
	(macro_define_special): New function.
	(fixup_definition): New function.
	(macro_lookup_definition, foreach_macro_in_scope)
	(foreach_macro): Use fixup_definition.
	* macroexp.h (macro_stringify): Declare.
	* macroexp.c (free_buffer_return_text): New function.
	(stringify): Constify "arg".
	(macro_stringify): New function.
	* dwarf2read.c (macro_start_file): Call macro_define_special.

2012-05-16  Maciej W. Rozycki  <macro@codesourcery.com>
            Maciej W. Rozycki  <macro@mips.com>

	* breakpoint.h (bp_location): Add related_address member.
	* inferior.h (get_return_value): Take a pointer to struct value
	instead of struct type for the function requested.
	* value.h (using_struct_return): Likewise.
	* gdbarch.sh (return_value): Take a pointer to struct value
	instead of struct type for the function requested.
	* breakpoint.c (set_breakpoint_location_function): Initialize
	related_address for bp_gnu_ifunc_resolver breakpoints.
	* elfread.c (elf_gnu_ifunc_resolver_return_stop): Pass the
	requested function's address to gdbarch_return_value.
	* eval.c (evaluate_subexp_standard): Pass the requested
	function's address to using_struct_return.
	* infcall.c (call_function_by_hand): Pass the requested
	function's address to using_struct_return and
	gdbarch_return_value.
	* infcmd.c (get_return_value): Take a pointer to struct value
	instead of struct type for the function requested.
	(print_return_value): Update accordingly.
	(finish_command_continuation): Likewise.
	* stack.c (return_command): Pass the requested function's
	address to using_struct_return and gdbarch_return_value.
	* value.c (using_struct_return): Take a pointer to struct value
	instead of struct type for the function requested.  Pass the
	requested function's address to gdbarch_return_value.
	* python/py-finishbreakpoint.c (finish_breakpoint_object):
	New function_value member, replacing function_type.
	(bpfinishpy_dealloc): Update accordingly.
	(bpfinishpy_pre_stop_hook): Likewise.
	(bpfinishpy_init): Likewise.  Record the requested function's
	address.
	* mips-tdep.c (mips_fval_reg): New enum.
	(mips_o32_push_dummy_call): For MIPS16 FP doubles do not swap
	words put in GP registers.
	(mips_o64_push_dummy_call): Update a comment.
	(mips_o32_return_value): Take a pointer to struct value instead
	of struct type for the function requested and use it to check if
	using the MIPS16 calling convention.  Return the designated
	general purpose registers for floating-point values returned in
	MIPS16 mode.
	(mips_o64_return_value): Likewise.
	* ppc-tdep.h (ppc_sysv_abi_return_value): Update prototype.
	(ppc_sysv_abi_broken_return_value): Likewise.
	(ppc64_sysv_abi_return_value): Likewise.
	* alpha-tdep.c (alpha_return_value): Take a pointer to struct
	value instead of struct type for the function requested.
	* amd64-tdep.c (amd64_return_value): Likewise.
	* amd64-windows-tdep.c (amd64_windows_return_value): Likewise.
	* arm-tdep.c (arm_return_value): Likewise.
	* avr-tdep.c (avr_return_value): Likewise.
	* bfin-tdep.c (bfin_return_value): Likewise.
	* cris-tdep.c (cris_return_value): Likewise.
	* frv-tdep.c (frv_return_value): Likewise.
	* h8300-tdep.c (h8300_return_value): Likewise.
	(h8300h_return_value): Likewise.
	* hppa-tdep.c (hppa32_return_value): Likewise.
	(hppa64_return_value): Likewise.
	* i386-tdep.c (i386_return_value): Likewise.
	* ia64-tdep.c (ia64_return_value): Likewise.
	* iq2000-tdep.c (iq2000_return_value): Likewise.
	* lm32-tdep.c (lm32_return_value): Likewise.
	* m32c-tdep.c (m32c_return_value): Likewise.
	* m32r-tdep.c (m32r_return_value): Likewise.
	* m68hc11-tdep.c (m68hc11_return_value): Likewise.
	* m68k-tdep.c (m68k_return_value): Likewise.
	(m68k_svr4_return_value): Likewise.
	* m88k-tdep.c (m88k_return_value): Likewise.
	* mep-tdep.c (mep_return_value): Likewise.
	* microblaze-tdep.c (microblaze_return_value): Likewise.
	* mn10300-tdep.c (mn10300_return_value): Likewise.
	* moxie-tdep.c (moxie_return_value): Likewise.
	* mt-tdep.c (mt_return_value): Likewise.
	* ppc-linux-tdep.c (ppc_linux_return_value): Likewise.
	* ppc-sysv-tdep.c (ppc_sysv_abi_return_value): Likewise.
	(ppc_sysv_abi_broken_return_value): Likewise.
	(ppc64_sysv_abi_return_value): Likewise.
	* ppcnbsd-tdep.c (ppcnbsd_return_value): Likewise.
	* rl78-tdep.c (rl78_return_value): Likewise.
	* rs6000-aix-tdep.c (rs6000_return_value): Likewise.
	* rx-tdep.c (rx_return_value): Likewise.
	* s390-tdep.c (s390_return_value): Likewise.
	* score-tdep.c (score_return_value): Likewise.
	* sh-tdep.c (sh_return_value_nofpu): Likewise.
	(sh_return_value_fpu): Likewise.
	* sh64-tdep.c (sh64_return_value): Likewise.
	* sparc-tdep.c (sparc32_return_value): Likewise.
	* sparc64-tdep.c (sparc64_return_value): Likewise.
	* spu-tdep.c (spu_return_value): Likewise.
	* tic6x-tdep.c (tic6x_return_value): Likewise.
	* v850-tdep.c (v850_return_value): Likewise.
	* vax-tdep.c (vax_return_value): Likewise.
	* xstormy16-tdep.c (xstormy16_return_value): Likewise.
	* xtensa-tdep.c (xtensa_return_value): Likewise.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.

2012-05-15  Tom Tromey  <tromey@redhat.com>

	* python/python.c (gdbpy_find_pc_line): Use gdb_py_ulongest.

2012-05-15  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (init_breakpoint_sal): Add quotes around part
	of command in two error message.

2012-05-15  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (init_breakpoint_sal): Remove trailing spaces.

2012-05-15  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (find_condition_and_thread): Minor reformatting.

2012-05-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS (show auto-load scripts-directory): Add forgotten command.

2012-05-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* spu-tdep.c (spu_catch_start): Update create_breakpoint caller
	parameters.

2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-tdep.c: Include features/i386/x32.c and
	features/i386/x32-avx.c.
	(_initialize_amd64_tdep): Call initialize_tdesc_x32 and
	initialize_tdesc_x32_avx.

2012-05-14  Stan Shebs  <stan@codesourcery.com>

	Add dynamic printf.
	* breakpoint.h (enum bptype): New type bp_dprintf.
	(struct breakpoint): New field extra_string.
	(struct breakpoint_ops): Add arg to create_breakpoints_sal.
	(create_breakpoint): Add extra_string arg.
	* breakpoint.c (dprintf_breakpoint_ops): New.
	(is_breakpoint): Add bp_dprintf.
	(bpstat_what): Add dprintf case.
	(bptype_string): Ditto.
	(print_one_breakpoint_location): Ditto.
	(init_bp_location): Ditto.
	(bkpt_print_mention): Ditto.
	(dprintf_style_enums): New array.
	(dprintf_style): New global.
	(dprintf_function): New global.
	(dprintf_channel): New global.
	(update_dprintf_command_list): New function.
	(update_dprintf_commands): New function.
	(init_breakpoint_sal): Add extra_string argument, handle it.
	(create_breakpoint_sal): Add extra_string argument.
	(create_breakpoints_sal): Add extra_string argument, update callers.
	(find_condition_and_thread): Add extra argument.
	(create_breakpoint): Add extra_string argument, record it.
	(dprintf_command): New function.
	(break_command_1): Add arg to create_breakpoint call.
	(handle_gnu_v3_exceptions): Ditto.
	(trace_command): Ditto.
	(ftrace_command): Ditto.
	(strace_command): Ditto.
	(bkpt_print_mention): Add dprintf case.
	(create_breakpoint_sal_default): Add extra_string argument.
	(_initialize_breakpoint): Add new commands.
	* mi/mi-cmd-break.c (mi_cmd_break_insert): Add arg to call.
	* python/py-breakpoint.c (bppy_init): Ditto.
	* python/py-finishbreakpoint.c (bpfinishpy_init): Ditto.

2012-05-14  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_push_dummy_code): Correct description typo.

2012-05-14  Siva Chandra Reddy  <sivachandra@google.com>

	* python/python.c (gdbpy_find_pc_line): Use ULONGEST instead of
	unsigned long long.

2012-05-13  Siva Chandra Reddy  <sivachandra@google.com>

	Add a new function gdb.find_pc_line to the Python API.
	* NEWS (Python Scripting): Add entry about the new function.
	* python/python.c (gdbpy_find_pc_line): New function which
	implements gdb.find_pc_line.
	(GdbMethods): Add entry for the new function.

2012-05-12  Pedro Alves  <palves@redhat.com>

	* amd64-linux-tdep.c (_initialize_amd64_linux_tdep): Call
	initialize_tdesc_x32_linux and initialize_tdesc_x32_avx_linux.

2012-05-12  Eli Zaretskii  <eliz@gnu.org>

	* inferior.c: Include completer.h
	(initialize_inferiors): Set completer of add-inferior to
	filename_completer.

2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.c (amd64_linux_core_read_description): Check
	gdbarch_ptr_bit for x32 core dump.

2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.c: Include features/i386/x32-linux.c
	and features/i386/x32-avx-linux.c.

2012-05-11  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* NEWS: Describe new info os commands.
	* common/linux-osdata.c (PID_T, TIME_T): Define.
	(MAX_PID_T_STRLEN): New.
	(linux_common_core_of_thread): Add comment.  Change to use PID_T and
	MAX_PID_T_STRLEN.
	(command_from_pid): Add comment.  Change to use PID_T.
	(commandline_from_pid):  Change to use PID_T.
	(user_from_pid): Add comment.
	(get_process_owner): Add comment. Change to use PID_T and
	MAX_PID_T_STRLEN.
	(get_number_of_cpu_cores): Add comment.
	(get_cores_used_by_process): Add comment.  Change to use PID_T and
	MAX_PID_T_STRLEN.
	(linux_xfer_osdata_processes): Change to use PID_T and
	MAX_PID_T_STRLEN.
	(compare_processes): New function.
	(linux_xfer_osdata_processgroups): New function.
	(linux_xfer_osdata_threads): Change to use PID_T.
	(linux_xfer_osdata_fds): New function.
	(format_socket_state, print_sockets): New functions.
	(union socket_addr): New union.
	(linux_xfer_osdata_isockets): New function.
	(time_from_time_t, group_from_gid): New functions.
	(linux_xfer_osdata_shm): New function.
	(linux_xfer_osdata_sem): New function.
	(linux_xfer_osdata_msg): New function.
	(linux_xfer_osdata_modules): New function.
	(osdata_table): Add new entries.
	* common/buffer.c (buffer_xml_printf): Add support for long and
	long long format specifiers.

2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-tdep.h (tdesc_x32_linux): New.
	(tdesc_x32_avx_linux): Likewise.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Implement multi-component --with-auto-load-dir.
	* NEWS (set auto-load scripts-directory, --with-auto-load-dir): New
	entries.
	(--with-auto-load-safe-path): Update the default value description.
	* auto-load.c (auto_load_dir, set_auto_load_dir, show_auto_load_dir):
	New.
	(auto_load_objfile_script): Add DEBUG_AUTO_LOAD output.  Remove
	GDB_DATADIR NULL check.  Replace GDB_DATADIR/auto-load by
	AUTO_LOAD_DIR.  Support $ddir and multiple components in it.
	(_initialize_auto_load): Initialize also auto_load_dir.  Install new
	"set auto-load scripts-directory".
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (--with-auto-load-dir): New configure option.
	(--auto-load-safe-path): Change the default to --with-auto-load-dir.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Provide $ddir substitution for --with-auto-load-safe-path.
	* NEWS (--with-auto-load-safe-path, --without-auto-load-safe-path): New
	entries.
	* auto-load.c: Include observer.h.
	(auto_load_safe_path_vec_update): Call substitute_path_component for
	each component.  New variable ddir_subst.
	(auto_load_gdb_datadir_changed): New function.
	(set_auto_load_safe_path): Rename DEFAULT_AUTO_LOAD_SAFE_PATH to
	AUTO_LOAD_SAFE_PATH.  New comment.
	(_initialize_auto_load): Rename DEFAULT_AUTO_LOAD_SAFE_PATH to
	AUTO_LOAD_SAFE_PATH.  Install auto_load_gdb_datadir_changed.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (--auto-load-safe-path): Rename
	DEFAULT_AUTO_LOAD_SAFE_PATH to AUTO_LOAD_SAFE_PATH.  Default to
	GDB_DATADIR/auto-load.
	* defs.h (substitute_path_component): New declaration.
	* top.c: Include observer.h.
	(set_gdb_datadir): New function.
	(init_main): Install it for "set data-directory".
	* utils.c (substitute_path_component): New function.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Make auto-load handle multiple components of DEBUG_FILE_DIRECTORY.
	* auto-load.c (auto_load_objfile_script): Remove check for NULL
	DEBUG_FILE_DIRECTORY.  Handle multiple components of
	DEBUG_FILE_DIRECTORY.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (recursively_write_psymbols): New function.
	(write_psymtabs_to_index): Use it.

	* dwarf2read.c (struct dwarf2_queue_item) <pretend_language>: New
	field.
	(load_cu, dw2_do_instantiate_symtab, process_psymtab_comp_unit)
	(load_partial_comp_unit): Update.
	(queue_comp_unit): Add argument 'pretend_language'.
	(process_queue): Update.
	(psymtab_to_symtab_1): Skip dependencies that have a user.
	(load_partial_comp_unit_reader): Give meaning to the 'data'
	argument.
	(load_full_comp_unit): Add 'pretend_language' argument.
	(process_full_comp_unit): Add 'pretend_language' argument.  Set
	language on CU.
	(process_imported_unit_die, read_file_scope, read_type_unit_scope):
	Update.
	(maybe_queue_comp_unit): Add 'pretend_language' argument.
	(follow_die_offset, follow_die_sig, read_signatured_type_reader):
	Update.
	(prepare_one_comp_unit): Add 'pretend_language' argument.

	* dwarf2read.c: (dwarf2_per_cu_ptr): New typedef.
	(struct dwarf2_per_objfile) <just_read_cus>: New field.
	(struct dwarf2_per_cu_data) <imported_symtabs>: New field.
	(dw2_do_instantiate_symtab): Check whether symtab was read in
	before queueing.
	(dw2_instantiate_symtab): Add assertion.  Call
	process_cu_includes.
	(process_psymtab_comp_unit): Compute 'dependencies' for psymtab.
	(partial_symtab_p): New typedef.
	(set_partial_user): New function.
	(dwarf2_build_psymtabs_hard): Use set_partial_user.
	(scan_partial_symbols): Add imported CU to imported_symtabs.
	(dwarf2_psymtab_to_symtab): Call process_cu_includes.
	(psymtab_to_symtab_1): Do nothing if psymtab is readin.
	(get_symtab, recursively_compute_inclusions)
	(compute_symtab_includes, process_cu_includes)
	(process_imported_unit_die): New functions.
	(process_die) <DW_TAG_imported_unit>: New case.
	(dwarf2_per_objfile_free): Free 'imported_symtabs'.

	* dwarf2read.c (struct dwarf2_per_cu_data) <psymtab>: Update
	comment.
	(struct partial_die_info) <locdesc>: Remove.
	<d>: New field.
	(process_psymtab_comp_unit): Add 'read_partial' argument.
	Update.
	(process_type_comp_unit, dwarf2_build_psymtabs_hard): Update.
	(scan_partial_symbols): Handle DW_TAG_imported_unit.
	(add_partial_symbol): Update.
	(process_die): Handle DW_TAG_partial_unit.
	(read_file_scope): Update comment.
	(load_partial_dies): Handle DW_TAG_imported_unit.
	(read_partial_die): Handle DW_TAG_partial_unit, DW_AT_import.
	(determine_prefix, dwarf2_name): Handle DW_TAG_partial_unit.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* cc-with-dwz.sh: New file.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* symtab.h (struct symtab) <includes, user>: New fields.
	* block.h (struct block_iterator) <d, idx, which>: New fields.
	* block.c (initialize_block_iterator, find_iterator_symtab)
	(block_iterator_step, block_iter_name_step)
	(block_iter_match_step): New functions.
	(block_iterator_first, block_iterator_next)
	(block_iter_name_first, block_iter_name_next)
	(block_iter_match_first, block_iter_match_next): Rewrite.
	(get_block_symtab): New function.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* jv-lang.c (get_java_class_symtab): Use allocate_global_block,
	set_block_symtab.
	* jit.c (finalize_symtab): Use allocate_global_block,
	set_block_symtab.
	* buildsym.c (finish_block_internal): New function, from old
	finish_block.
	(finish_block): Rewrite.
	(end_symtab): Use finish_block_internal, set_block_symtab.
	* block.h (struct global_block): New.
	(allocate_global_block, set_block_symtab): Declare.
	* block.c (allocate_global_block, set_block_symtab): New
	functions.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* psymtab.c (partial_map_expand_apply): Add assertion.
	(partial_map_symtabs_matching_filename): Skip included psymtabs.
	(psymtab_to_symtab): Find unshared psymtab.
	(dump_psymtab): Print including psymtabs.
	(recursively_search_psymtabs): New function.
	(expand_symtabs_matching_via_partial): Use it.
	* psympriv.h (struct partial_symtab) <user, searched_flag>: New
	fields.
	(enum psymtab_search_status): New.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* tracepoint.c (scope_info): Update.
	* symtab.c (lookup_block_symbol, iterate_over_symbols)
	(find_pc_sect_symtab, search_symbols)
	(default_make_symbol_completion_list_break_on)
	(make_file_symbol_completion_list): Update.
	* symmisc.c (dump_symtab_1): Update.
	* stack.c (print_frame_args, iterate_over_block_locals)
	(print_frame_labels, iterate_over_block_arg_vars): Update.
	* python/py-block.c (block_object) <dict>: Remove.
	<block>: New field.
	<iter>: Change type.
	(blpy_iter): Update.
	(blpy_block_syms_iternext): Update.
	* psymtab.c (map_block): Use block iterators.
	* objfiles.c (objfile_relocate1): Use ALL_DICT_SYMBOLS.
	* mi/mi-cmd-stack.c (list_args_or_locals): Update.
	* mdebugread.c (parse_symbol, mylookup_symbol): Update.
	* infrun.c (check_exception_resume): Update.
	* cp-support.c (make_symbol_overload_list_block): Update.
	* coffread.c (patch_opaque_types): Update.
	* buildsym.c (finish_block, end_symtab): Use ALL_DICT_SYMBOLS.
	* block.h (struct block_iterator): New.
	(block_iterator_first, block_iterator_next, block_iter_name_first)
	(block_iter_name_next, block_iter_match_first)
	(block_iter_match_next): Declare.
	(ALL_BLOCK_SYMBOLS): Redefine.
	* block.c (block_iterator_first, block_iterator_next)
	(block_iter_name_first, block_iter_name_next)
	(block_iter_match_first, block_iter_match_next): New functions.
	* ada-lang.c (ada_add_block_symbols)
	(ada_make_symbol_completion_list): Use block iterator.

2012-05-10  Tom Tromey  <tromey@redhat.com>

	* psymtab.c (PSYMTAB_TO_SYMTAB): Remove.
	(find_pc_sect_symtab_from_partial, lookup_symbol_aux_psymtabs)
	(lookup_partial_symbol, find_last_source_symtab_from_partial)
	(read_psymtabs_with_filename, map_matching_symbols_psymtab)
	(expand_symtabs_matching_via_partial, maintenance_check_symtabs):
	Update.

2012-05-10  Joel Brobecker  <brobecker@adacore.com>

	* config/djgpp/fnchange.lst: Add entries for print-file-var-lib1.c,
	print-file-var-lib2.c, print-file-var-main.c and
	print-file-var.exp (located in gdb/testsuite/gdb.base).

2012-05-10  Joel Brobecker  <brobecker@adacore.com>

	* findvar.c (default_read_var_value): For LOC_UNRESOLVED symbols,
	try locating the symbol in the symbol's own objfile first, before
	extending the search to all objfiles.
	* symtab.c (lookup_symbol_aux_objfile): New function, extracted
	out of lookup_symbol_aux_symtabs.
	(lookup_symbol_aux_symtabs): Add new parameter "exclude_objfile".
	Replace extracted-out code by call to lookup_symbol_aux_objfile.
	Do not search EXCLUDE_OBJFILE.
	(lookup_static_symbol_aux): Update call to lookup_symbol_aux_symtabs.
	(lookup_symbol_global): Search for matches in the block's objfile
	first, before searching all other objfiles.

2012-05-10  Tristan Gingold  <gingold@adacore.com>

	* printcmd.c (set_command): Add pre/post inc/dec.

2012-05-09  Frank Ch. Eigler  <fche@redhat.com>

	* gdb.1: Document -ex option.

2012-05-09  Joel Brobecker  <brobecker@adacore.com>

	* infcall.c (call_function_by_hand): Remove AT_SYMBOL handling.
	* inferior.h (AT_SYMBOL): Delete.

2012-05-09  Joel Brobecker  <brobecker@adacore.com>

	* mips-tdep.c (mips_push_dummy_code): New function.
	(mips_gdbarch_init): Set the gdbarch call_dummy_location to
	ON_STACK and install mips_push_dummy_code as our gdbarch
	push_dummy_code routine.

2012-05-09  Pedro Alves  <palves@redhat.com>

	* target.c (set_maintenance_target_async_permitted): Rename to ...
	(set_target_async_command): ... this.
	(show_maintenance_target_async_permitted): Rename to ...
	(show_target_async_command): ... this.
	(initialize_targets): Adjust.

2012-05-08  Doug Evans  <dje@google.com>

	* go-exp.y (classify_name): Add missing assignment of fields of
	yylval.ssym.

2012-05-08  Eli Zaretskii  <eliz@gnu.org>

	Display the ">" prompt in interactive mode while reading canned
	commands, even when the current interpreter is MI.

	* interps.c (interp_set_temp): New function.

	* interps.h (interp_set_temp): Add prototype.

	* cli/cli-script.c (restore_interp): New cleanup function.
	(read_command_lines): Temporarily override the current interpreter
	with CLI and arrange for restoring the original one.

2012-05-12  Joel Sherrill <joel.sherrill@oarcorp.com>

	* microblaze-rom.c (_initialize_picobug_rom): Add prototype.

2012-05-07  Sergio Durigan Junior  <sergiodj@redhat.com>

	* probe.c (parse_probes): Move conditional to check for
	debuginfo files from here...
	* stap-probe.c (stap_get_probes): ... to here.

2012-05-07  Mark Kettenis  <kettenis@gnu.org>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-tdep.c (amd64_analyze_prologue): Additionally check for
	`movl %esp, %ebp' for the X32 ABI.

2012-05-07  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf_tag_name): Return const char *.  Use
	get_DW_TAG_name.
	(dwarf_attr_name): Return const char *.  Use get_DW_AT_name.
	(dwarf_form_name): Return const char *.  Use get_DW_FORM_name.
	(dwarf_stack_op_name): Remove.
	(dwarf_cfi_name): Return const char *.  Use get_DW_ATE_name.
	(decode_locdesc): Use get_DW_OP_name.
	* dwarf2loc.c (unimplemented): Use get_DW_OP_name.
	(dwarf2_compile_expr_to_ax): Likewise.
	(disassemble_dwarf_expression): Likewise.
	* dwarf2expr.h: (dwarf_stack_op_name): Remove.

2012-05-07  Chung-Lin Tang  <cltang@codesourcery.com>

	* sh-linux-tdep.c: Include trad-frame.h and tramp-frame.h.
	(sh_linux_sigtramp_cache): New function.
	(sh_linux_sigreturn_init): New function.
	(sh_linux_rt_sigreturn_init): New function.
	(SH_MOVW,SH_TRAP,SH_OR_R0_R0): New symbols for instruction
	patterns.
	(SH_NR_SIGRETURN,SH_NR_RT_SIGRETURN): New symbols for sigreturn
	syscall codes.
	(sh_linux_sigreturn_tramp_frame): New tramp_frame definition.
	(sh_linux_rt_sigreturn_tramp_frame): Likewise.
	(sh_linux_init_abi): Add init calls to register new tramp_frame
	definitions under 32-bit SH, update comments.

2012-05-07  Pedro Alves  <palves@redhat.com>

	PR gdb/10952

	* amd64-linux-tdep.c: Include glibc-tdep.h.
	(amd64_linux_init_abi): Install glibc_skip_solib_resolver as
	gdbarch_skip_solib_resolver callback.

2012-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* auto-load.c (set_auto_load_safe_path): Reset AUTO_LOAD_SAFE_PATH
	back to DEFAULT_AUTO_LOAD_SAFE_PATH if it is being set to "".
	(show_auto_load_safe_path): Check any-directory by comparison with "/".
	(add_auto_load_safe_path): Change the error message.
	(_initialize_auto_load): Change the "safe-path" help text.
	* configure: Regenerate
	* configure.ac (--without-auto-load-safe-path): Set
	WITH_AUTO_LOAD_SAFE_PATH to /.

2012-05-05  Sergio Durigan Junior  <sergiodj@redhat.com>

	* stap-probe.h: Do not include unecessary `probe.h'.

2012-05-05  Alan Modra  <amodra@gmail.com>

	* elfread.c (elf_symtab_read): Use bfd_abs_section_ptr and
	bfd_und_section_ptr.
	* machoread.c (macho_symtab_add_minsym): Use bfd_abs_section_ptr
	and bfd_com_section_ptr.

2012-05-04  Joel Brobecker  <brobecker@adacore.com>

	* MAINTAINERS (Past Maintainers): Add Chris Faylor.

2012-05-04  Joel Brobecker  <brobecker@adacore.com>

	* windows-nat.h (segment_register_p_ftype): New typedef.
	(windows_set_segment_register_p): Add declaration.
	* windows-nat.c (segment_register_p): New static global.
	(windows_set_segment_register_p): New function.
	(do_windows_fetch_inferior_registers): Add special handling
	for segment registers.
	* amd64-windows-nat.c: #include "amd64-tdep.h".
	(amd64_windows_segment_register_p): New function.
	(_initialize_amd64_windows_nat): Call windows_set_segment_register_p.
	* i386-windows-nat.c: #include "i386-tdep.h".
	(i386_windows_segment_register_p): New function.
	(_initialize_i386_windows_nat): Call windows_set_segment_register_p.

2012-05-04  Tristan Gingold  <gingold@adacore.com>

	* printcmd.c (set_command): Emit a warning if the expression is not
	an assignment.

2012-05-03  Joel Brobecker  <brobecker@adacore.com>

	* nto-procfs.c (procfs_find_new_threads, procfs_pid_to_str):
	Make static.

2012-05-03  Sergio Durigan Junior  <sergiodj@redhat.com>

	* stap-probe.c (stap_is_operator): Change declaration.
	(stap_get_opcode): Change return value.
	(stap_parse_argument_1): Update calls to `stap_get_opcode' and
	`stap_parse_argument_1'.

2012-05-03  Pedro Alves  <pedro@codesourcery.com>

	* infrun.c (displaced_step_fixup): Add "displaced:" prefix to
	debug log.

2012-05-03  Siva Chandra Reddy  <sivachandra@google.com>

	Add two new methods global_block and static_block to gdb.Symtab
	objects.
	* NEWS (Python scripting): Add entry about the new methods.
	* python/py-symtab.c (stpy_global_block): New function which
	implements the gdb.Symtab.global_block() method.
	(stpy_static_block): New function which implements the
	gdb.Symtab.static_block() method.
	(symtab_object_methods): Add entries for the two new methods.

2012-05-03  Doug Evans  <dje@google.com>

	* dwarf2read.c (dw2_find_symbol_file): Don't crash if there are no
	files.

2012-05-03  Yao Qi  <yao@codesourcery.com>

	* i386-tdep.c (i386_fetch_pointer_argument): Remove extra
	space.
	(i386_process_record): Ditto.

2012-05-02  Joel Brobecker  <brobecker@adacore.com>

	* infcall.c (unwind_on_signal_p): Make static.

2012-05-02  Joel Brobecker  <brobecker@adacore.com>

	* sol-thread.c (solaris_pid_to_str): Make static.
	(_initialize_sol_thread): Add prototype.

2012-05-02  Joel Brobecker  <brobecker@adacore.com>

	* sol-thread.c (procfs_pid_to_str): Delete extern declaration.

2012-05-02  Christopher Faylor  <me.cygwin2012@cgf.cx>

	* MAINTAINERS: Remove myself.

2012-05-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix --without-auto-load-safe-path for MS-Windows host platform.
	* auto-load.c (filename_is_in_dir): Return 1 for DIR_LEN 0.

2012-05-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb_curses.h: Undefine KEY_EVENT before including curses
	headers.  Move "#undef MOUSE_MOVED" before any curses header
	inclusion.

2012-05-02  Sergio Durigan Junior  <sergiodj@gmail.com>

	* features/i386/i386-mmx-linux.c: Regenerate.
	* features/rs6000/powerpc-32.c: Likewise.
	* features/rs6000/powerpc-32l.c: Likewise.
	* features/rs6000/powerpc-403.c: Likewise.
	* features/rs6000/powerpc-403gc.c: Likewise.
	* features/rs6000/powerpc-405.c: Likewise.
	* features/rs6000/powerpc-505.c: Likewise.
	* features/rs6000/powerpc-601.c: Likewise.
	* features/rs6000/powerpc-602.c: Likewise.
	* features/rs6000/powerpc-603.c: Likewise.
	* features/rs6000/powerpc-604.c: Likewise.
	* features/rs6000/powerpc-64.c: Likewise.
	* features/rs6000/powerpc-64l.c: Likewise.
	* features/rs6000/powerpc-750.c: Likewise.
	* features/rs6000/powerpc-860.c: Likewise.
	* features/rs6000/powerpc-e500.c: Likewise.
	* features/rs6000/powerpc-e500l.c: Likewise.
	* features/rs6000/powerpc-isa205-32l.c: Likewise.
	* features/rs6000/powerpc-isa205-64l.c: Likewise.
	* features/rs6000/rs6000.c: Likewise.

2012-05-02  Sergio Durigan Junior  <sergiodj@gmail.com>

	* i386-tdep.c (i386_stap_parse_special_token) <s>: Remove unused
	variable.
	* stap-probe.c (stap_parse_single_operand) <reg_suffix,
	reg_ind_suffix, reg_suffix_len, reg_ind_suffix_len>: Likewise.
	(stap_parse_argument) <e>: Likewise.
	(handle_stap_probe) <byte_order>: Likewise.

2012-04-30  Doug Evans  <dje@google.com>

	* dwarf2read.c (init_cutu_and_read_dies): Renamed from
	init_and_read_dies_worker.  All callers updated.
	(init_cu_and_read_dies, init_tu_and_read_dies): Delete.  All calls
	replaced with init_cutu_and_read_dies.
	(load_partial_comp_unit): Pass 1 for use_existing_cu.
	(find_partial_die): Remove FIXME.  Don't free current CU.

2012-04-30  Sterling Augustine  <saugustine@google.com>

	* contrib: New directory.
	* contrib/test_pubnames_and_indexes.py: New file.

2012-04-30  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf_decode_macros): New arg section_name.
	All callers updated.
	(init_cu_die_reader): Verify the section is non-empty.
	(dwarf_decode_line_header): Don't dereference section->asection
	until we know the section is present.

2012-04-29  Sergio Durigan Junior  <sergiodj@redhat.com>

	* tracepoint.c (start_tracing, stop_tracing): Checking for NULL
	probes.

2012-04-29  Yao Qi  <yao@codesourcery.com>

	* gdb-code-style.el: New hook gdb-markup-hook
	and gdb-comment-hook.

2012-04-28  Doug Evans  <dje@google.com>

	Initial support for Fission.  http://gcc.gnu.org/wiki/DebugFission
	* symfile.c (default_symfile_relocate): Use sectp->owner instead of
	objfile->obfd.
	* symfile.h (dwarf2_debug_sections): New member addr.
	* dwarf2expr.c (execute_stack_op): New case DW_OP_GNU_addr_index.
	(ctx_no_get_addr_index): New function.
	* dwarf2expr.h (dwarf_expr_context_funcs): New member get_addr_index.
	(ctx_no_get_addr_index): Declare.
	* dwarf2-frame.c (dwarf2_frame_ctx_funcs): Update.
	* dwarf2loc.c (dwarf_expr_get_addr_index): New function.
	(dwarf_expr_ctx_funcs): Update.
	(needs_get_addr_index): New function.
	(needs_frame_ctx_funcs): Update.
	* dwarf2loc.h (dwarf2_read_addr_index): Declare.
	* dwarf2read.c: #include "gdbcore.h".
	(dwarf2_per_objfile): New members addr, dwo_files.
	(dwarf2_elf_names): Add entry for addr.
	(struct dwo_section_names): New type.
	(dwo_section_names): New static global.
	(dwarf2_cu): New members dwo_unit, addr_base, have_addr_base.
	(dwarf2_per_cu_data): New member is_debug_types, all boolean uses of
	old debug_types_section member updated to use this.
	Rename member debug_types_section to info_or_types_section,
	all uses updated.
	(signatured_type): Rename member type_offset to type_offset_in_tu,
	all uses updated.  New member type_offset_in_section.
	(struct dwo_sections): New type.
	(struct dwo_unit): New type.
	(struct dwo_file): New type.
	(die_reader_specs): New member dwo_file.
	(dwarf2_locate_sections): Watch for .debug_addr.
	(zlib_decompress_section): Use sectp->owner instead of objfile->obfd.
	(dwarf2_read_section): Get bfd of section from bfd's asection,
	instead of objfile.
	(create_cus_from_index): Initialize the_cu->info_or_types_section.
	(create_signatured_type_table_from_index): Initialize
	sig_type->info_or_types_section.
	(dw2_get_file_names): Statement lists for type units with DWO files
	live in the DWO file.
	(create_debug_types_hash_table): New function.
	(create_all_type_units): Rewrite.
	(init_cu_die_reader): New arg dwo_file, all callers updated.
	(init_and_read_dies_worker): Get section from
	this_cu->info_or_types_section.  Set sig_type->type_offset_in_section.
	Watch for DW_AT_GNU_dwo_name and if present lookup the file and
	continue reading the CU/TU from there.
	(init_cutu_and_read_dies_no_follow): New arg dwo_file, all callers
	updated.  Get section from this_cu->info_or_types_section.
	(create_all_comp_units): Initialize this_cu->info_or_types_section.
	(skip_one_die): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(hash_dwo_file, eq_dwo_file): New functions.
	(allocate_dwo_file_hash_table): New function.
	(hash_dwo_unit, eq_dwo_unit): New functions.
	(allocate_dwo_unit_table): New function.
	(dwarf2_locate_dwo_sections): New function.
	(struct create_dwo_info_table_data): New type.
	(create_debug_info_hash_table_reader): New function.
	(create_debug_info_hash_table): New function.
	(try_open_dwo_file, open_dwo_file, init_dwo_file): New function.
	(lookup_dwo_file): New function.
	(lookup_dwo_comp_unit, lookup_dwo_type_unit): New functions.
	(free_dwo_file, free_dwo_file_cleanup): New functions.
	(free_dwo_file_from_slot, free_dwo_files): New functions.
	(dwarf2_get_pc_bounds): Handle DW_FORM_GNU_addr_index.
	(dwarf2_record_block_ranges): Ditto.
	(read_partial_die): Ditto.
	(process_enumeration_scope): Update to use type_offset_in_section.
	(read_full_die_1): New function.
	(read_full_die): Rewrite.
	(read_attribute_value): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(read_addr_index_1, read_addr_index): New functions.
	(read_addr_index_from_leb128): New function.
	(struct dwarf2_read_addr_index_data): New type.
	(dwarf2_read_addr_index_reader): New function.
	(dwarf2_read_addr_index): New function.
	(read_str_index): New function.
	(leb128_size): New function.
	(dwarf_decode_line_header): Delete arg abfd, all callers updated.
	If processing a type unit from a DWO file, get the line section
	from the DWO file.
	(var_decode_location): Watch for DW_OP_GNU_addr_index.
	(dwarf2_const_value_attr): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(lookup_die_type): Check whether section offset of type's die is
	known before looking it up.  Remove assert.  Condition can
	legimately happen for inter-cu type references.
	(dwarf_attr_name): Handle Fission attributes.
	(dwarf_form_name): Handle Fission forms.
	(dump_die_shallow): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(follow_die_sig): Update to use type_offset_in_section.
	(decode_locdesc): New case DW_OP_GNU_addr_index.
	(skip_form_bytes): New cases DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index.
	(cu_debug_loc_section): New function.
	(fill_in_loclist_baton, dwarf2_symbol_mark_computed): Call it.
	(dwarf2_per_objfile_free): Unmap .debug_addr section.
	Free DWO files if present.
	* xcoffread.c (dwarf2_xcoff_names): Add .debug_addr.

	Refactor DIE reading.
	* dwarf2read.c (dwarf2_per_objfile): Replace members
	debug_info_type_hash and debug_types_type_hash with die_type_hash.
	(die_reader_specs): New member "die_section".  Temporarily make
	member "buffer" non-const, pending constifying all info_ptr uses.
	(die_reader_func_ftype): New typedef.
	(dw2_get_file_names_reader): New function.
	(dw2_get_file_names): Rewrite.
	(read_and_check_type_unit_head): Rename arg type_offset to
	type_offset_in_tu.
	(create_all_type_units): Improve debugging message.
	Improve dummy type unit check.
	(init_cu_die_reader): New arg "section".  All callers updated.
	(init_and_read_dies_worker): New function.
	(init_cu_and_read_dies, init_tu_and_read_dies): New functions.
	(init_cutu_and_read_dies_no_follow): New function.
	(init_cutu_and_read_dies_simple): New function.
	(process_psymtab_comp_unit_reader): New function.
	(process_psymtab_comp_unit): Delete args section,
	is_debug_types_section.  Rewrite.  All callers updated.
	(process_psymtab_type_unit): Renamed from process_type_comp_unit.
	All callers updated.  Rewrite.
	(load_partial_comp_unit_reader): New function.
	(load_partial_comp_unit): Rewrite.
	(skip_children): New arg reader.  Delete args buffer, cu.
	All callers updated.
	(skip_one_die): New arg reader.  Delete args buffer, cu.
	All callers updated.
	(locate_pdi_sibling): New arg reader.  Delete args buffer, abfd, cu.
	All callers updated.
	(load_full_comp_unit_reader): New function.
	(load_full_comp_unit): Rewrite.
	(read_comp_unit): Delete.
	(read_die_and_children_1): Delete, contents moved ...
	(read_die_and_children): ... here.
	(dwarf2_read_abbrevs): New arg abbrev_section.  All callers updated.
	(load_partial_dies): New arg reader.  Delete args abfd, buffer, cu.
	All callers updated.
	(read_partial_die): New arg reader.  Delete args abfd, buffer, cu.
	All callers updated.
	(find_partial_die): Rewrite load_all_dies support.
	(read_attribute_value): New arg reader.  Delete args abfd, cu.
	All callers updated.
	(read_attribute): New arg reader.  Delete args abfd, cu.
	All callers updated.
	(load_full_type_unit): Add assert.
	(read_signatured_type_reader): New function.
	(read_signatured_type): Rewrite.
	(free_stack_comp_unit): Remove call to age_cached_comp_units.
	(free_one_cached_comp_unit): Change target_cu arg to target_per_cu.
	All callers updated.  Set per_cu->cu = NULL after freeing it.
	(dwarf2_per_cu_offset_and_type): Renamed from dwarf2_offset_and_type.
	(per_cu_offset_and_type_hash): Renamed from offset_and_type_hash.
	(per_cu_offset_and_type_eq): Renamed from offset_and_type_eq.
	(set_die_type): Update.
	(get_die_type_at_offset): Update.
	(read_file_scope): Call prepare_one_comp_unit.
	(read_type_unit_scope): Ditto.
	(prepare_one_comp_unit): Set producer if present.

2012-04-28  Sergio Durigan Junior  <sergiodj@redhat.com>

	* probe.c (compile_rx_or_error): Silence ARI warning about missing
	 gettext function on `error'.

2012-04-27  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_read_index): Don't use index if symbol table
	is empty.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (struct breakpoint_objfile_data)
	<longjmp_searched>,<longjmp_probes>,<exception_searched>,
	<exception_probes>: New fields.
	(free_breakpoint_probes): New function.
	(create_longjmp_master_breakpoint): Prefer SystemTap probe over
	`_Unwind_DebugHook'.
	(create_exception_master_breakpoint): Likewise.
	(_initialize_breakpoint): Registering cleanup for SystemTap probes.
	* infrun.c: Including necessary header files for handling SystemTap
	probes.
	(handle_inferior_event): Handling longjmp breakpoint and exceptions
	via SystemTap probes.
	(check_exception_resume): Remove `func' argument.  Handle exception
	unwinding breakpoint set via a SystemTap probe.
	(insert_exception_resume_from_probe): New function.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (SFILES): Add `probe' and `stap-probe'.
	(COMMON_OBS): Likewise.
	(HFILES_NO_SRCDIR): Add `probe'.
	* NEWS: Mention support for static and SystemTap probes.
	* amd64-tdep.c (amd64_init_abi): Initializing proper fields used by
	SystemTap probes' arguments parser.
	* arm-linux-tdep.c: Including headers needed to perform the parsing
	of SystemTap probes' arguments.
	(arm_stap_is_single_operand): New function.
	(arm_stap_parse_special_token): Likewise.
	(arm_linux_init_abi): Initializing proper fields used by SystemTap
	probes' arguments parser.
	* ax-gdb.c (require_rvalue): Removing static declaration.
	(gen_expr): Likewise.
	* ax-gdb.h (gen_expr): Declaring function.
	(require_rvalue): Likewise.
	* breakpoint.c: Include `gdb_regex.h' and `probe.h'.
	(bkpt_probe_breakpoint_ops): New variable.
	(momentary_breakpoint_from_master): Set the `probe' value.
	(add_location_to_breakpoint): Likewise.
	(break_command_1): Using proper breakpoint_ops according to the
	argument passed by the user in the command line.
	(bkpt_probe_insert_location): New function.
	(bkpt_probe_remove_location): Likewise.
	(bkpt_probe_create_sals_from_address): Likewise.
	(bkpt_probe_decode_linespec): Likewise.
	(tracepoint_probe_create_sals_from_address): Likewise.
	(tracepoint_probe_decode_linespec): Likewise.
	(tracepoint_probe_breakpoint_ops): New variable.
	(trace_command): Using proper breakpoint_ops according to the
	argument passed by the user in the command line.
	(initialize_breakpoint_ops): Initializing breakpoint_ops for
	static probes on breakpoints and tracepoints.
	* breakpoint.h (struct bp_location) <probe>: New field.
	* cli-utils.c (skip_spaces_const): New function.
	(extract_arg): Likewise.
	* cli-utils.h (skip_spaces_const): Likewise.
	(extract_arg): Likewise.
	* coffread.c (coff_sym_fns): Add `sym_probe_fns' value.
	* configure.ac: Append `stap-probe.o' to be generated when ELF
	support is present.
	* configure: Regenerate.
	* dbxread.c (aout_sym_fns): Add `sym_probe_fns' value.
	* elfread.c: Include `probe.h' and `arch-utils.h'.
	(probe_key): New variable.
	(elf_get_probes): New function.
	(elf_get_probe_argument_count): Likewise.
	(elf_evaluate_probe_argument): Likewise.
	(elf_compile_to_ax): Likewise.
	(elf_symfile_relocate_probe): Likewise.
	(stap_probe_key_free): Likewise.
	(elf_probe_fns): New variable.
	(elf_sym_fns): Add `sym_probe_fns' value.
	(elf_sym_fns_lazy_psyms): Likewise.
	(elf_sym_fns_gdb_index): Likewise.
	(_initialize_elfread): Initialize objfile cache for static
	probes.
	* gdb_vecs.h (struct probe): New forward declaration.
	(probe_p): New VEC declaration.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* gdbarch.sh (stap_integer_prefix): New variable.
	(stap_integer_suffix): Likewise.
	(stap_register_prefix): Likewise.
	(stap_register_suffix): Likewise.
	(stap_register_indirection_prefix): Likewise.
	(stap_register_indirection_suffix): Likewise.
	(stap_gdb_register_prefix): Likewise.
	(stap_gdb_register_suffix): Likewise.
	(stap_is_single_operand): New function.
	(stap_parse_special_token): Likewise.
	(struct stap_parse_info): Forward declaration.
	* i386-tdep.c: Including headers needed to perform the parsing
	of SystemTap probes' arguments.
	(i386_stap_is_single_operand): New function.
	(i386_stap_parse_special_token): Likewise.
	(i386_elf_init_abi): Initializing proper fields used by SystemTap
	probes' arguments parser.
	* i386-tdep.h (i386_stap_is_single_operand): New function.
	(i386_stap_parse_special_token): Likewise.
	* machoread.c (macho_sym_fns): Add `sym_probe_fns' value.
	* mipsread.c (ecoff_sym_fns): Likewise.
	* objfiles.c (objfile_relocate1): Support relocation for static
	probes.
	* parse.c (prefixify_expression): Remove static declaration.
	(initialize_expout): Likewise.
	(reallocate_expout): Likewise.
	* parser-defs.h (initialize_expout): Declare function.
	(reallocate_expout): Likewise.
	(prefixify_expression): Likewise.
	* ppc-linux-tdep.c: Including headers needed to perform the parsing
	of SystemTap probes' arguments.
	(ppc_stap_is_single_operand): New function.
	(ppc_stap_parse_special_token): Likewise.
	(ppc_linux_init_abi): Initializing proper fields used by SystemTap
	probes' arguments parser.
	* probe.c: New file, for generic statically defined probe support.
	* probe.h: Likewise.
	* s390-tdep.c: Including headers needed to perform the parsing of
	SystemTap probes' arguments.
	(s390_stap_is_single_operand): New function.
	(s390_gdbarch_init): Initializing proper fields used by SystemTap
	probes' arguments parser.
	* somread.c (som_sym_fns): Add `sym_probe_fns' value.
	* stap-probe.c: New file, for SystemTap probe support.
	* stap-probe.h: Likewise.
	* symfile.h: Include `gdb_vecs.h'.
	(struct sym_probe_fns): New struct.
	(struct sym_fns) <sym_probe_fns>: New field.
	* symtab.c (init_sal): Initialize `probe' field.
	* symtab.h (struct probe): Forward declaration.
	(struct symtab_and_line) <probe>: New field.
	* tracepoint.c (start_tracing): Adjust semaphore on breakpoints
	locations.
	(stop_tracing): Likewise.
	* xcoffread.c (xcoff_sym_fns): Add `sym_probe_fns' value.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* ax-gdb.c (gen_expr): Clean up code to handle internal variables
	and to compile agent expressions.
	* infrun.c (siginfo_make_value): New argument `ignore'.
	(siginfo_funcs): New struct.
	(_initialize_infrun): New argument when calling
	`create_internalvar_type_lazy'.
	* thread.c (thread_id_make_value): New argument `ignore'.
	(thread_funcs): New struct.
	(_initialize_thread): New argument when calling
	`create_internalvar_type_lazy'.
	* tracepoint.c (sdata_make_value): New argument `ignore'.
	(sdata_funcs): New struct.
	(_initialize_tracepoint): New argument when calling
	`create_internalvar_type_lazy'.
	* value.c (make_value): New struct.
	(create_internalvar_type_lazy): New argument `data'.
	(compile_internalvar_to_ax): New function.
	(value_of_internalvar): Properly handling `make_value' case.
	(clear_internalvar): Likewise.
	(show_convenience): Adding `TRY_CATCH' block.
	* value.h (internalvar_make_value): Delete, replace by...
	(struct internalvar_funcs): ... this.
	(create_internalvar_type_lazy) <fun>: Delete argument.
	(create_internalvar_type_lazy) <funcs>, <data>: New arguments.
	(compile_internalvar_to_ax): New function.
	* windows-tdep.c (tlb_make_value): New argument `ignore'.
	(tlb_funcs): New struct.
	(_initialize_windows_tdep): New argument when calling
	`create_internalvar_type_lazy'.

2012-04-27  Mark Wielaard  <mjw@redhat.com>

	* dwarf2read.c (dwarf2_get_pc_bounds): Check DW_AT_high_pc form to
	see whether it is an address or a constant offset from DW_AT_low_pc.
	(dwarf2_record_block_ranges): Likewise.
	(read_partial_die): Likewise.

2012-04-26  Mark Wielaard  <mjw@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-04-26  Maciej W. Rozycki  <macro@codesourcery.com>

	* proc-utils.h (proc_prettyprint_signalset): New prototype.
	(proc_prettyprint_signal): Likewise.
	(proc_prettyprint_faultset): Likewise.
	(proc_prettyprint_fault): Likewise.
	(proc_prettyprint_actionset): Likewise.
	(proc_prettyprint_flags): Move to new proc-flags.c section.
	(proc_prettyfprint_flags): New prototype.
	* procfs.c (proc_nsysarg, proc_sysargs): Add prototypes.
	(proc_syscall, proc_cursig): Likewise.
	(proc_set_kill_on_last_close): Likewise.
	(proc_unset_kill_on_last_close): Likewise.
	(proc_set_watchpoint): Make static.
	(proc_delete_dead_threads): Likewise.
	(procfs_set_watchpoint): Likewise.
	(_initialize_procfs): Add prototype.
	* proc-events.c: Include proc-utils.h.
	(init_syscall_table): Make static.
	* proc-api.c (_initialize_proc_api): Add prototype.
	* proc-flags.c: Include proc-utils.h.

2012-04-26  Maciej W. Rozycki  <macro@codesourcery.com>

	* configure.ac: Add AC_ARG_PROGRAM.
	* configure: Regenerate.

2012-04-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix DW_AT_lower_bound defaults for DWARF-4+.
	* dwarf2read.c (read_subrange_type): Remove initialization of low and
	high.  New variable low_default_is_valid.  Implement DWARF-4+
	DW_AT_lower_bound defaults.  Print complaint for DW_AT_lower_bound with
	no default by the DWARF standard.

2012-04-26  Maciej W. Rozycki  <macro@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>

	* infrun.c (handle_inferior_event): Move the check for return
	trampolines ahead of the check for function trampolines.
	* mips-tdep.h (MIPS_S2_REGNUM, MIPS_GP_REGNUM): New macros.
	* mips-tdep.c (mips_str_mips16_call_stub): New variable.
	(mips_str_mips16_ret_stub): Likewise.
	(mips_str_call_fp_stub): Likewise.
	(mips_str_call_stub): Likewise.
	(mips_str_fn_stub): Likewise.
	(mips_str_pic): Likewise.
	(mips_in_frame_stub): New function.
	(mips_unwind_pc): Return the return address rather than the PC
	if the PC of an intermediate frame is inside a call thunk.
	(mips_is_stub_suffix): New function.
	(mips_is_stub_mode): Likewise.
	(mips_get_mips16_fn_stub_pc): Likewise.
	(mips_skip_mips16_trampoline_code): Update to handle all the
	currently generated stub types.  Don't recurse into __fn_stub
	thunks.  Remove heuristics to handle stubs beyond etext/_etext.
	Use cooked register accesses.
	(mips_in_return_stub): Reintroduce function.
	(mips_skip_trampoline_code): Traverse trampolines recursively.
	(mips_gdbarch_init): Handle MIPS16 return trampolines.

2012-04-26  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.4.1 released.

2012-04-26  Jonathan Larmour  <jifl@eCosCentric.com>

	* arm-tdep.h (VFP_REGISTER_SIZE): Define.
	* features/arm-with-m-vfp-d16.xml: New file. Describes
	Cortex-M with VFPv4-sp-d16 FPU register layout.
	* features/Makefile (WHICH): Add arm-with-m-vfp-d16.
	* features/arm-with-m-vfp-d16.c: New. Generated from above.
	* arm-tdep.c: Include arm-with-m-vfp-d16.c.
	(arm-register_g_packet_guesses): Add vfp-d16 guess.
	(_initialise_arm_tdep): Initialize arm-with-m-vfp-d16 tdesc.

2012-04-25  Doug Evans  <dje@google.com>

	* cli/cli-decode.c (print_doc_line): Use stream instead of
	current_uiout.

2012-04-25  Sergio Durigan Junior  <sergiodj@redhat.com>

	* features/arm-with-iwmmxt.c: Regenerate.
	* features/arm-with-m-fpa-layout.c: Likewise.
	* features/arm-with-m.c: Likewise.
	* features/arm-with-neon.c: Likewise.
	* features/arm-with-vfpv2.c: Likewise.
	* features/arm-with-vfpv3.c: Likewise.
	* features/mips-dsp-linux.c: Likewise.
	* features/mips-linux.c: Likewise.
	* features/mips64-dsp-linux.c: Likewise.
	* features/mips64-linux.c: Likewise.
	* features/s390-linux32.c: Likewise.
	* features/s390-linux32v1.c: Likewise.
	* features/s390-linux32v2.c: Likewise.
	* features/s390-linux64.c: Likewise.
	* features/s390-linux64v1.c: Likewise.
	* features/s390-linux64v2.c: Likewise.
	* features/s390x-linux64.c: Likewise.
	* features/s390x-linux64v1.c: Likewise.
	* features/s390x-linux64v2.c: Likewise.
	* features/tic6x-c62x-linux.c: Likewise.
	* features/tic6x-c62x.c: Likewise.
	* features/tic6x-c64x-linux.c: Likewise.
	* features/tic6x-c64x.c: Likewise.
	* features/tic6x-c64xp-linux.c: Likewise.
	* features/tic6x-c64xp.c: Likewise.
	* target-descriptions.c: Only generate `field_type' and `type'
	variables when needed.

2012-04-25  Fredrik Hederstierna  <fredrikh.hederstierna@securitas-direct.com>

	* cli/cli-cmds.c (cd_command): Use memmove instead of strcpy.

2012-04-25  Doug Evans  <dje@google.com>

	Initial pass at Go language support.
	* NEWS: Mention Go.
	* Makefile.in (SFILES): Add go-exp.y, go-lang.c, go-typeprint.c,
	go-valprint.c.
	(COMMON_OBS): Add go-lang.o, go-val.print.o, go-typeprint.o.
	(YYFILES): Add go-exp.c.
	(YYOBJ): Add go-exp.o.
	(local-maintainer-clean): Delete go-exp.c.
	* defs.h (enum language): Add language_go.
	* dwarf2read.c: #include "go-lang.h".
	(fixup_go_packaging): New function.
	(process_full_comp_unit): Call it when processing Go CUs.
	(dwarf2_physname): Add Go support.
	(read_file_scope): Handle missing language spec for GNU Go.
	(set_cu_language): Handle DW_LANG_Go.
	* go-exp.y: New file.
	* go-lang.h: New file.
	* go-lang.c: New file.
	* go-typeprint.c: New file.
	* go-valprint.c: New file.
	* symtab.c: #include "go-lang.h".
	(symbol_set_language): Handle language_go.
	(symbol_find_demangled_name, symbol_set_names): Ditto.
	(symbol_natural_name, demangle_for_lookup, find_main_name): Ditto.

2012-04-24  Jim Meyering  <meyering@redhat.com>

	avoid a few strncpy-induced buffer overruns
	* procfs.c (procfs_make_note_section): Be sure to NUL-terminate
	fname and psargs before trying to concatenate.
	* tui/tui-stack.c (tui_get_function_from_frame): NUL-terminate
	"name" before applying strchr.

2012-04-25  Siva Chandra Reddy  <sivachandra@google.com>

	* CONTRIBUTE: Use unified diff instead of context diff when
	generating patches.

2012-04-24  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_about_to_return): Remove dead MIPS16 support
	code.  Handle JR.HB correctly.

2012-04-24  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c
	(is_mips16_addr, unmake_mips16_addr, make_mips16_addr): Group
	with the other MIPS16 helpers.

2012-04-24  Sergio Durigan Junior  <sergiodj@redhat.com>

	* observer.sh: Conditionally declare `args', thus cleaning up
	unused instances of this variable.

2012-04-24  Yao Qi  <yao@codesourcery.com>

	Revert this patch to allow breakpoint always-inserted
	in record target.
	2011-12-05  Pedro Alves  <pedro@codesourcery.com>
        * breakpoint.c: Include record.h.
        (breakpoints_always_inserted_mode): Return false when the record
        target is in use.

	* breakpoint.c (iterate_over_bp_locations): New.
	* breakpoint.h: Declare.
	New typedef walk_bp_location_callback.
	* record.c (record_open): Call record_init_record_breakpoints.
	(record_sync_record_breakpoints): New.
	(record_init_record_breakpoints): New.
	* NEWS: Mention supporting breakpoint always-inserted mode in
	record target.

2012-04-24  Marc Khouzam  <marc.khouzam@ericsson.com>

	* mi/mi-main.c (mi_cmd_execute): Choose a live thread not just
	any thread.

2012-04-24  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (ep_is_catchpoint): Renamed to ...
	(is_catchpoint): ... it.
	(print_one_breakpoint_location): Caller update.
	* breakpoint.h: Update declaration.

2012-04-23  David S. Miller  <davem@davemloft.net>

	* configure.tgt (sparc-*-linux*): Set build_gdbserver to yes.

2012-04-23  Tom Tromey  <tromey@redhat.com>

	* buildsym.c (add_free_pendings): Remove.
	* buildsym.h (add_free_pendings): Remove.

2012-04-23  Doug Evans  <dje@google.com>

	* dwarf2read.c (partial_die_full_name): Record DW_FORM_ref_addr in
	attr.u.unsnd instead of attr.u.addr.
	(read_attribute_value) Ditto for cases DW_FORM_ref_addr,
	DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_reg8,
	DW_FORM_ref_udata.
	(dump_die_shallow): Update cases DW_FORM_ref_addr,
	DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4.  Add cases DW_FORM_ref8,
	DW_FORM_ref_udata.
	(dwarf2_get_ref_die_offset): Use DW_UNSND for reference attributes.

2012-04-23  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_n32n64_return_value): Fix coding style.
	(mips_o32_return_value): Likewise.
	(mips_o64_return_value): Likewise.

2012-04-21  Paul Hilfinger  <hilfinger@adacore.com>

	* ada-lang.c (ada_evaluate_subexp): Add cases for
        TYPE_CODE_INTERNAL_FUNCTION and for TYPE_GNU_IFUNC, following
        their treatment in eval.c.

2012-04-21  David S. Miller  <davem@davemloft.net>

	* sparc-tdep.c (X_DISP10): Define.
	(sparc_analyze_control_transfer): Handle compare-and-branch.

2012-04-21  Jonathan Larmour  <jifl@eCosCentric.com>

	* features/Makefile (WHICH): Add arm-with-m and arm-with-m-fpa-layout.
	* arm-tdep.c (arm_register_g_packet_guesses): Fix comment.

2012-04-20  Nigel Stephens  <nigel@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_float_register_p): New function.
	(mips_convert_register_float_case_p): Use mips_float_register_p.
	(mips_register_type): Likewise.
	(mips_print_register): Likewise.
	(print_gp_register_row): Likewise.
	(mips_print_registers_info): Likewise.

2012-04-20  Shun-Yen Lu  <dark.asparagus@gmail.com>

	* mips-tdep.c (mips_elf_make_msymbol_special): Fix identification
	of mips16 symbols.

2012-04-20  Andrew Pinski  <apinski@cavium.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-04-20  Sergio Durigan Junior  <sergiodj@redhat.com>

	* MAINTAINERS: Update my e-mail address.

2012-04-20  Pedro Alves  <palves@redhat.com>

	* acx_configure_dir.m4 (ACX_CONFIGURE_DIR): Handle absolute
	$srcdir.
	* configure: Regenerate.

2012-04-20  Sergio Durigan Junior  <sergiodj@redhat.com>

	* cp-support.h: Include `gdb_vecs.h'.  Delete `const_char_ptr' VEC
	declaration.
	* gdb_vecs.h: Declare `const_char_ptr' VEC.

2012-04-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compilation compatibility with python-2.4
	* python/py-type.c (convert_field): Cast ADDRSTRING for
	PyObject_SetAttrString as non-const.  New comment.

2012-04-19  Tom Tromey  <tromey@redhat.com>

	* top.c (quit_target): Use all_cleanups.
	* main.c (captured_command_loop): Use all_cleanups.
	* exceptions.c (throw_exception): Use all_cleanups.

2012-04-19  Pedro Alves  <palves@redhat.com>

	* Makefile.in (GNULIB_BUILDDIR): New.
	(LIBGNU, INCGNU, GNULIB_H): Adjust.
	(SUBDIRS): Add $(GNULIB_BUILDDIR).
	(CLEANDIRS). Remove gnulib/import.
	(REQUIRED_SUBDIRS): Replace gnulib/import with $(GNULIB_BUILDDIR).
	(all-lib): Ditto.
	(distclean): Remove the $(GNULIB_BUILDDIR) directory.
	(gnulib/import/Makefile): Replace gnulib/import with
	$(GNULIB_BUILDDIR).  Set CONFIG_FILES to just Makefile.
	(ACLOCAL_AMFLAGS): Remove '-I gnulib/import/m4'.
	(aclocal_m4_deps): Remove the gnulib dependencies.  Add
	acx_configure_dir.m4.
	* acinclude.m4: Include acx_configure_dir.m4.
	* acx_configure_dir.m4: New file.
	* aclocal.m4: Regenerate.
	* configure.ac: Remove gl_EARLY, gl_INIT and AM_INIT_AUTOMAKE
	calls.	Configure gnulib using ACX_CONFIGURE_DIR.
	(GNULIB): New variable.
	(GNULIB_STDINT_H): Adjust.
	(AC_OUTPUT): Don't output gnulib/Makefile.
	* gdb/defs.h: Include build-gnulib/config.h.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

	* gnulib/Makefile.in: New file.
	* gnulib/configure.ac: New file.
	* gnulib/aclocal.m4: New file.
	* gnulib/config.in: New file.
	* gnulib/configure: New file.
	* gnulib/: Re-run gnulib-tool to adjust.

2012-04-19  Doug Evans  <dje@google.com>

	* cleanups.h (struct cleanup): Move to cleanups.c.
	(make_cleanup_dtor_ftype): New typedef.
	(make_cleanup_dtor): Use it.
	(ALL_CLEANUPS): Replace with ...
	(all_cleanups): ... this.  Declare.  All uses updated.
	* cleanups.c: #include "gdb_assert.h".
	(sentinel_cleanup): New static global.
	(SENTINEL_CLEANUP): Define.
	(cleanup_chain, final_cleanup_chain): Initialize to SENTINEL_CLEANUP.
	(make_my_cleanup2): Assert result is non-NULL.
	(all_cleanups): New function.
	(save_my_cleanups): Initialize new chain to SENTINEL_CLEANUP instead
	of NULL.

2012-04-19  Pedro Alves  <palves@redhat.com>

	* Makefile.in (HFILES_NO_SRCDIR): Remove gnulib/wchar.in.h.
	Adjust paths to gnulib imported files.

2012-04-19  Pedro Alves  <palves@redhat.com>

	* gnulib/: Move whole directory ...
	* gnulib/import/: ... here, and re-rerun gnulib-tool to adjust.
	* Makefile.in (LIBGNU, INCGNU, GNULIB_H, CLEANDIRS)
	(REQUIRED_SUBDIRS, all-lib, gnulib/Makefile, ACLOCAL_AMFLAGS)
	(aclocal_m4_deps): Adjust.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.ac: Adjust AC_OUTPUT output.

2012-04-19  Yao Qi  <yao@codesourcery.com>

	* Makefile.in (SFILES): Add common/vec.c and remove vec.c.
	(vec.o): New rule.
	* vec.c: Move it ...
	* common/vec.c: ... here.
	* vec.h: Move it ...
	* common/vec.h: ... here.

2012-04-19  Yao Qi  <yao@codesourcery.com>

	* gdb-code-style.el: New.

2012-04-18  Pedro Alves  <palves@redhat.com>

	Update gnulib from latest git.
	(639ea5ae15e39fe48d43e04864b2997301e4b969)

	* gnulib/Makefile.am: Update.
	* gnulib/dummy.c: Update.
	* gnulib/extra/arg-nonnull.h: Update.
	* gnulib/extra/c++defs.h: Update.
	* gnulib/extra/update-copyright: Update.
	* gnulib/extra/warn-on-use.h: Update.
	* gnulib/inttypes.in.h: Update.
	* gnulib/m4/00gnulib.m4: Update.
	* gnulib/m4/extensions.m4: Update.
	* gnulib/m4/gnulib-cache.m4: Update.
	* gnulib/m4/gnulib-common.m4: Update.
	* gnulib/m4/gnulib-comp.m4: Update.
	* gnulib/m4/gnulib-tool.m4: Update.
	* gnulib/m4/include_next.m4: Update.
	* gnulib/m4/inttypes-pri.m4: Update.
	* gnulib/m4/inttypes.m4: Update.
	* gnulib/m4/longlong.m4: Update.
	* gnulib/m4/memchr.m4: Update.
	* gnulib/m4/memmem.m4: Update.
	* gnulib/m4/mmap-anon.m4: Update.
	* gnulib/m4/multiarch.m4: Update.
	* gnulib/m4/onceonly.m4: Update.
	* gnulib/m4/stddef_h.m4: Update.
	* gnulib/m4/stdint.m4: Update.
	* gnulib/m4/string_h.m4: Update.
	* gnulib/m4/warn-on-use.m4: Update.
	* gnulib/m4/wchar_h.m4: Update.
	* gnulib/m4/wchar_t.m4: Update.
	* gnulib/m4/wint_t.m4: Update.
	* gnulib/memchr.c: Update.
	* gnulib/memmem.c: Update.
	* gnulib/stddef.in.h: Update.
	* gnulib/stdint.in.h: Update.
	* gnulib/str-two-way.h: Update.
	* gnulib/string.in.h: Update.
	* gnulib/wchar.in.h: Update.

	* gnulib/extra/arg-nonnull.h: Delete.
	* gnulib/extra/c++defs.h: Delete.
	* gnulib/extra/warn-on-use.h: Delete.
	* gnulib/m4/wchar_h.m4: Delete.
	* gnulib/m4/wint_t.m4: Delete.
	* gnulib/wchar.in.h: Delete.

	* gnulib/extra/snippets/arg-nonnull.h: New.
	* gnulib/extra/snippets/c++defs.h: New.
	* gnulib/extra/snippets/warn-on-use.h: New.

	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
	* gnulib/Makefile.in: Regenerate.

2012-04-18  Pedro Alves  <palves@redhat.com>

	Reimport the update-copyright module from gnulib
	(250b80067c1e1d8faa0c42fb572f721975b929c5).

	* configure: Regenerate.
	* gnulib/Makefile.am: Update.
	* gnulib/Makefile.in: Regenerate.
	* gnulib/extra/update-copyright: Update.
	* gnulib/m4/gnulib-cache.m4: Update.
	* gnulib/m4/gnulib-comp.m4: Update.

2012-04-18  Tristan Gingold  <gingold@adacore.com>

	* configure.ac (aix): Put -lpthread into libs.
	* configure: Regenerate.

2012-04-18  Tom Tromey  <tromey@redhat.com>

	* linespec.c (convert_linespec_to_sals): Don't use
	SYMBOL_OBJ_SECTION.
	(compare_msymbols): Arguments are minsym_and_objfile, not
	minimal_symbol*.  Don't use SYMBOL_OBJ_SECTION.

2012-04-18  Pedro Alves  <palves@redhat.com>

	Revert gnulib/ part of:
	2011-01-01  Joel Brobecker  <brobecker@adacore.com>
	Copyright year update in most files (performed by copyright.sh).

2012-04-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix 64-bit constants on 32-bit hosts.
	* dwarf2read.c (read_unsigned_leb128): Change declaration return type
	from unsigned long to ULONGEST.
	(read_signed_leb128): Change declaration return type from long to
	LONGEST.
	(dwarf2_const_value_attr): Change declaration parameter value from long
	to LONGEST.
	(dwarf2_compute_name): Change variable value from long to LONGEST.
	(read_unsigned_leb128): Change return type, variable result and some
	casts from unsigned long to ULONGEST.
	(read_signed_leb128): Change return type, variable result and some
	casts from long to LONGEST.
	(dwarf2_const_value_data, dwarf2_const_value_attr): Change parameter
	value from long to LONGEST.
	(dwarf2_const_value): Change variable value from long to LONGEST.
	* symmisc.c (print_symbol): Change SYMBOL_VALUE format strings to use
	plongest and hex_string.
	* symtab.h (struct general_symbol_info): Change ivalue from long to
	LONGEST, remove the comment.
	* tracepoint.c (validate_actionline, collect_symbol, scope_info):
	Change SYMBOL_VALUE format strings to use plongest and hex_string.

2012-04-18  Siddhesh Poyarekar  <siddhesh@redhat.com>

	PR symtab/7259:
	* ada-exp.y (convert_char_literal): Use TYPE_FIELD_ENUMVAL.
	* ada-lang.c (ada_discrete_type_high_bound)
	(ada_discrete_type_low_bound): Fix function comment.  Use
	TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	(ada_identical_enum_types_p): Use TYPE_FIELD_ENUMVAL.
	(pos_atr, value_val_atr): Use TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	* ada-typeprint.c (print_enum_type): Change variable lastval to LONGEST.
	Use TYPE_FIELD_ENUMVAL.
	* ada-valprint.c (print_optional_low_bound, ada_print_scalar)
	(ada_val_print_1): Use TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	* c-typeprint.c (c_type_print_base): Move variable lastval to inner
	block, change it to LONGEST.  Use TYPE_FIELD_ENUMVAL for
	TYPE_CODE_ENUM.
	* coffread.c (coff_read_enum_type): Use SET_FIELD_ENUMVAL.
	* dwarf2read.c (process_enumeration_scope): Likewise.
	* gdb-gdb.py (TypeFlagsPrinter): Use field.enumval instead of
	field.bitpos.
	(class StructMainTypePrettyPrinter): Support also
	FIELD_LOC_KIND_ENUMVAL.
	* gdbtypes.c (get_discrete_bounds): Use TYPE_FIELD_ENUMVAL for
	TYPE_CODE_ENUM.
	(recursive_dump_type): Use TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	(copy_type_recursive): Support also FIELD_LOC_KIND_ENUMVAL.
	* gdbtypes.h (enum field_loc_kind): New FIELD_LOC_KIND_ENUMVAL.
	(struct main_type.flds_bnds.fields.loc): Adjust bitpos comment.  New
	field enumval.
	(struct main_type.flds_bnds.bields): Adjust loc_kind and bitsize to
	accommodate enumval.
	(struct call_site): Adjust loc_kind to accommodate enumval.
	(FIELD_ENUMVAL, FIELD_ENUMVAL_LVAL, SET_FIELD_ENUMVAL)
	(TYPE_FIELD_ENUMVAL): New macros.
	* m2-typeprint.c (m2_enum): Use TYPE_FIELD_ENUMVAL.
	* mdebugread.c (parse_symbol): Use TYPE_FIELD_ENUMVAL for
	TYPE_CODE_ENUM.
	* p-typeprint.c (pascal_type_print_base): Likewise.
	* python/lib/gdb/printing.py (class FlagEnumerationPrinter): Use
	enumval.
	* python/lib/gdb/types.py (make_enum_dict): Likewise.
	* python/py-type.c (convert_field): New variable addrstring.  Use
	TYPE_FIELD_ENUMVAL for TYPE_CODE_ENUM.
	(check_types_equal): Support also FIELD_LOC_KIND_ENUMVAL.
	* stabsread.c (read_enum_type): Use SET_FIELD_ENUMVAL.
	* typepint.c (print_type_scalar): Use TYPE_FIELD_ENUMVAL for
	TYPE_CODE_ENUM.
	* valprint.c (generic_val_print): Likewise.

2012-04-17  Doug Evans  <dje@google.com>

	* dwarf2read.c (lookup_signatured_type): Return NULL instead of 0.

	* dwarf2read.c: Whitespace fixes.
	(lookup_signatured_type): Tweak comment.
	(get_die_type_at_offset): Fix comment.

2012-04-17  Joel Brobecker  <brobecker@adacore.com>

	* xcoffread.c (xcoff_secnum_to_sections): New function.
	(secnum_to_section, secnum_to_bfd_section): Reimplement
	using xcoff_secnum_to_sections.  Rename "secnum" parameter
	into "n_scnum".
	(RECORD_MINIMAL_SYMBOL): Delete.
	(record_minimal_symbol): New function.
	(scan_xcoff_symtab): Replace uses of RECORD_MINIMAL_SYMBOL
	by call to record_minimal_symbol and set misc_func_recorded
	to 1.  Set last_csect_sec to the XCOFF section index instead
	of GDB's section_offset index.  Update calls to
	prim_record_minimal_symbol_and_info to pass the BFD section
	as well.

2012-04-17  Joel Brobecker  <brobecker@adacore.com>

	* xcoffread.c (read_xcoff_symtab): Delete variables
	last_csect_val and last_csect_sec and associated code.

2012-04-17  Doug Evans  <dje@google.com>

	* cleanups.c (make_my_cleanup,make_my_cleanup2): Make static.
	(discard_my_cleanups,save_my_cleanups,restore_my_cleanups): Ditto.
	* cleanups.h (make_my_cleanup,make_my_cleanup2): Delete
	(discard_my_cleanups,save_my_cleanups,restore_my_cleanups): Delete.

	* cleanups.h: New file.
	* cleanups.c: New file.
	* Makefile.in (SFILES): Add cleanups.c.
	(HFILES_NO_SRCDIR): Add cleanups.h.
	(COMMON_OBS): Add cleanups.o.
	* defs.h (struct cleanup): Moved to cleanups.h.
	(do_cleanups,do_final_cleanups): Ditto.
	(discard_cleanups,discard_final_cleanups): Ditto
	(make_cleanup,make_cleanup_dtor,make_final_cleanup): Ditto.
	(save_cleanups,save_final_cleanups): Ditto.
	(restore_cleanups,restore_final_cleanups): Ditto.
	(null_cleanup): Ditto.
	(make_my_cleanup,make_my_cleanup2): Ditto.
	(discard_my_cleanups,save_my_cleanups,restore_my_cleanups): Ditto.
	* utils.c (cleanup_chain,final_cleanup_chain): Moved to cleanups.c.
	(do_cleanups,do_final_cleanups): Ditto.
	(discard_cleanups,discard_final_cleanups): Ditto
	(make_cleanup,make_cleanup_dtor,make_final_cleanup): Ditto.
	(save_cleanups,save_final_cleanups): Ditto.
	(restore_cleanups,restore_final_cleanups): Ditto.
	(null_cleanup): Ditto.
	(make_my_cleanup,make_my_cleanup2): Ditto.
	(discard_my_cleanups,save_my_cleanups,restore_my_cleanups): Ditto.

	* utils.c (make_cleanup_freeargv): Use make_cleanup instead of
	make_my_cleanup.
	(make_cleanup_dyn_string_delete): Ditto.
	(make_cleanup_ui_file_delete): Ditto.
	(make_cleanup_ui_out_redirect_pop): Ditto.
	(make_cleanup_free_section_addr_info): Ditto.
	(make_cleanup_restore_integer): Ditto.
	(make_cleanup_unpush_target): Ditto.
	(make_cleanup_value_free_to_mark): Ditto.
	(make_cleanup_value_free): Ditto.
	(make_cleanup_free_so): Ditto.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	New option "set debug auto-load".
	* NEWS: New commands "set debug auto-load" and "show debug auto-load".
	* auto-load.c (debug_auto_load, show_debug_auto_load: New.
	(auto_load_safe_path_vec_update)
	(filename_is_in_auto_load_safe_path_vec): Call fprintf_unfiltered
	if DEBUG_AUTO_LOAD.
	(file_is_auto_load_safe): New parameters debug_fmt and ....
	Call fprintf_unfiltered if DEBUG_AUTO_LOAD.
	(source_gdb_script_for_objfile): Extend the file_is_auto_load_safe
	caller by explanatory string.
	(_initialize_auto_load): Register "set debug auto-load".
	* auto-load.h (file_is_auto_load_safe): New parameters debug_fmt
	and ....
	* linux-thread-db.c (try_thread_db_load_from_pdir_1)
	(try_thread_db_load_from_dir): Extend the file_is_auto_load_safe caller
	by explanatory string.
	* main.c (captured_main): Likewise.
	* python/py-auto-load.c (gdbpy_load_auto_script_for_objfile)
	(source_section_scripts): Likewise.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	New option "set auto-load safe-path".
	* NEWS: New commands "set auto-load safe-path"
	and "show auto-load safe-path".
	* auto-load.c: Include gdb_vecs.h, readline/tilde.h and completer.h.
	(auto_load_safe_path, auto_load_safe_path_vec)
	(auto_load_safe_path_vec_update, set_auto_load_safe_path)
	(show_auto_load_safe_path, add_auto_load_safe_path, filename_is_in_dir)
	(filename_is_in_auto_load_safe_path_vec, file_is_auto_load_safe): New.
	(source_gdb_script_for_objfile): New variable is_safe.  Call
	file_is_auto_load_safe.  Return if it is not.
	(struct loaded_script): New field loaded.
	(maybe_add_script): Add parameter loaded.  Initialize SLOT with it.
	(print_script): Use LOADED indicator instead of FULL_PATH.  Change
	output "Missing" to "No".
	(_initialize_auto_load): New variable cmd.  Initialize
	auto_load_safe_path.  Register "set auto-load safe-path",
	"show auto-load safe-path" and "add-auto-load-safe-path".
	* auto-load.h (maybe_add_script): Add parameter loaded.
	(file_is_auto_load_safe): New declaration.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: New parameters --with-auto-load-safe-path
	and --without-auto-load-safe-path.
	* linux-thread-db.c (try_thread_db_load_from_pdir_1)
	(try_thread_db_load_from_dir): Check file_is_auto_load_safe first.
	* main.c (captured_main): Check file_is_auto_load_safe for
	LOCAL_GDBINIT.
	* python/py-auto-load.c (gdbpy_load_auto_script_for_objfile): New
	variable is_safe.  Call file_is_auto_load_safe.  Return if it is not.
	(source_section_scripts): Call file_is_auto_load_safe.  Return if it is
	not.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	auto-load: Implementation.
	* NEWS: New descriptions for "info auto-load",
	"info auto-load gdb-scripts", "info auto-load python-scripts",
	"info auto-load local-gdbinit" and "info auto-load libthread-db".
	Deprecate "info auto-load-scripts", "set auto-load-scripts on|off"
	and "show auto-load-scripts".  New description for "set auto-load",
	"show auto-load", "set auto-load gdb-scripts",
	"show auto-load gdb-scripts", "set auto-load python-scripts",
	"show auto-load python-scripts", "set auto-load local-gdbinit",
	"show auto-load local-gdbinit", "set auto-load libthread-db" and
	"show auto-load libthread-db".
	* auto-load.c: Remove include python/python-internal.h.  Add includes
	exceptions.h, cli/cli-script.h, gdbcmd.h, cli/cli-decode.h and
	cli/cli-setshow.h.
	(GDB_AUTO_FILE_NAME, source_gdb_script_for_objfile)
	(auto_load_gdb_scripts, show_auto_load_gdb_scripts): New.
	(gdbpy_global_auto_load): Rename to ...
	(global_auto_load): ... here.
	(auto_load_local_gdbinit, auto_load_local_gdbinit_pathname)
	(auto_load_local_gdbinit_loaded, show_auto_load_local_gdbinit)
	(script_language_gdb, source_gdb_script_for_objfile): New.
	(struct loaded_script): New field language.
	(hash_loaded_script_entry, eq_loaded_script_entry): Calculate also
	LANGUAGE.
	(maybe_add_script): Add parameter language.  Drop redundant
	entry.full_path initialization.  Initialize entry.language and
	(*slot)->language.
	(auto_load_objfile_script): Change parameter suffix to language.
	Remove the call of maybe_add_script.
	Call language->source_script_for_objfile.
	(load_auto_scripts_for_objfile, struct collect_matching_scripts_data):
	New.
	(collect_matching_scripts): Adjust it for
	struct collect_matching_scripts_data.
	(auto_load_info_scripts_pattern_nl): New variable.
	(info_auto_load_scripts): Rename to ...
	(auto_load_info_scripts): ... here, add parameter language.  Adjust it
	for struct collect_matching_scripts_data.
	(info_auto_load_gdb_scripts, info_auto_load_local_gdbinit)
	(set_auto_load_cmd, auto_load_set_cmdlist_get, show_auto_load_cmd)
	(auto_load_show_cmdlist_get, info_auto_load_cmd)
	(auto_load_info_cmdlist_get): New.
	(_initialize_auto_load): Move add_info of "auto-load-scripts" to
	python/py-auto-load.c.  New installment for "set auto-load gdb-scripts",
	"info auto-load gdb-scripts", "set auto-load local-gdbinit" and
	"info auto-load local-gdbinit".
	* auto-load.h (struct script_language): New.
	(gdbpy_global_auto_load): Rename to ...
	(global_auto_load): ... here.
	(auto_load_local_gdbinit, auto_load_local_gdbinit_pathname)
	(auto_load_local_gdbinit_loaded): New declarations.
	(maybe_add_script): New parameter language.
	(auto_load_objfile_script): Change parameter suffix to language.
	(load_auto_scripts_for_objfile, auto_load_info_scripts_pattern_nl)
	(auto_load_info_scripts, auto_load_set_cmdlist_get)
	(auto_load_show_cmdlist_get, auto_load_info_cmdlist_get): New
	declarations.
	* linux-thread-db.c: Include auto-load.h and ctype.h.
	(auto_load_thread_db, show_auto_load_thread_db): New.
	(struct thread_db_info): New field filename.
	(delete_thread_db_info): Call xfree for FILENAME.
	(try_thread_db_load): Initialize FILENAME.
	(try_thread_db_load_from_pdir, try_thread_db_load_from_dir): Return
	if !AUTO_LOAD_THREAD_DB.
	(info_auto_load_libthread_db_compare, info_auto_load_libthread_db): New.
	(_initialize_thread_db): Install auto_load_thread_db
	as "set auto-load libthread-db" and install info_auto_load_libthread_db
	as "info auto-load libthread-db".
	* main.c (captured_main): Rename gdbpy_global_auto_load to
	global_auto_load.  Initialize AUTO_LOAD_LOCAL_GDBINIT_PATHNAME and
	AUTO_LOAD_LOCAL_GDBINIT_LOADED.
	(print_gdb_help): Extend the help for 'local init file'.
	* python/py-auto-load.c: Remove a comment about gdb scripts extension.
	(GDBPY_AUTO_SECTION_NAME): Extend the comment it is Python specific.
	(auto_load_scripts): Rename to ...
	(auto_load_python_scripts): ... here, update the comment.
	(gdbpy_load_auto_script_for_objfile): New declaration.
	(show_auto_load_python_scripts, script_language_python)
	(gdbpy_load_auto_script_for_objfile): New.
	(source_section_scripts): Refactor the code.
	(load_auto_scripts_for_objfile): Rename to ...
	(gdbpy_load_auto_scripts_for_objfile): ... here, update the
	auto_load_objfile_script caller, drop GDBPY_GLOBAL_AUTO_LOAD checking.
	(info_auto_load_python_scripts): New.
	(gdbpy_initialize_auto_load): New variables cmd and cmd_name.
	Rename "set auto-load-scripts" to "set auto-load python-scripts".
	Register "set auto-load-scripts" as its deprecated alias.  Register
	"info auto-load python-scripts".  Register "info auto-load-scripts" as
	its deprecated alias.
	(load_auto_scripts_for_objfile): Rename to ...
	(gdbpy_load_auto_scripts_for_objfile): ... here.
	* python/python.h (load_auto_scripts_for_objfile): Rename to ...
	(gdbpy_load_auto_scripts_for_objfile): ... here.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	auto-load: Move files.
	* Makefile.in (SFILES): Add auto-load.c.
	(HFILES_NO_SRCDIR): Add auto-load.h.
	(COMMON_OBS): Add auto-load.o.
	(distclean): Change .gdbinit for gdb-gdb.gdb.
	* auto-load.c: New file, with parts from python/py-auto-load.c.
	* auto-load.h: New file, with parts from python/python.h.
	* configure: Regenerate.
	* configure.ac (AC_OUTPUT): Change .gdbinit for gdb-gdb.gdb.
	* gdb-gdb.gdb.in: New file, renamed from gdbinit.in.
	* gdbinit.in: Remove file, rename it to gdb-gdb.gdb.in.
	* main.c: Include auto-load.h.
	* python/py-auto-load.c: Move include filenames.h, gdb_regex.h,
	command.h, observer.h and progspace.h to auto-load.c.  Add include
	auto-load.h.
	(gdbpy_global_auto_load, struct auto_load_pspace_info)
	(struct loaded_script, auto_load_pspace_data)
	(auto_load_pspace_data_cleanup, get_auto_load_pspace_data)
	(hash_loaded_script_entry, eq_loaded_script_entry)
	(init_loaded_scripts_info, get_auto_load_pspace_data_for_loading)
	(maybe_add_script): Move to auto-load.c.
	(source_section_scripts): Change maybe_add_script parameters passing,
	use script_not_found_warning_print.
	(clear_section_scripts, auto_load_objfile_script)
	(auto_load_new_objfile, loaded_script_ptr)
	(DEF_VEC_P (loaded_script_ptr), collect_matching_scripts, print_script)
	(sort_scripts_by_name, info_auto_load_scripts): Move to auto-load.c.
	(gdbpy_initialize_auto_load): Move auto_load_pspace_data,
	auto_load_new_objfile and info_auto_load_scripts initizations to
	auto-load.c.
	* python/python.h (gdbpy_global_auto_load): Move to auto-load.h.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* charset.c (find_charset_names): Remove variables ix and elt.
	Use free_char_ptr_vec.
	* elfread.c (build_id_to_debug_filename): New variables debugdir_vec,
	back_to and ix.  Use dirnames_to_char_ptr_vec.  Remove variable
	debugdir_end.  New variable debugdir_len.
	* gdb_vecs.h (free_char_ptr_vec, make_cleanup_free_char_ptr_vec)
	(dirnames_to_char_ptr_vec_append, dirnames_to_char_ptr_vec): New
	declarations.
	* progspace.c (clear_program_space_solib_cache): Remove variables ix
	and elt.  Use free_char_ptr_vec.
	* source.c (add_path): Remove variables argv, arg and argv_index.
	New variables dir_vec, back_to, ix and name.
	Use dirnames_to_char_ptr_vec_append.  Use freeargv instead of
	make_cleanup_freeargv.  Remove variable separator.  Simplify the code
	no longer expecting DIRNAME_SEPARATOR.
	(openp): Remove variable p, p1 and len.  New variables dir_vec,
	back_to, ix and dir.  Use dirnames_to_char_ptr_vec.  Simplify the code
	no longer expecting DIRNAME_SEPARATOR.
	* symfile.c (find_separate_debug_file): New variables debugdir_vec,
	back_to and ix.  Use dirnames_to_char_ptr_vec.  Remove variable
	debugdir_end.
	* utils.c (free_char_ptr_vec, do_free_char_ptr_vec)
	(make_cleanup_free_char_ptr_vec, dirnames_to_char_ptr_vec_append)
	(dirnames_to_char_ptr_vec): New functions.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* source.c (add_path): Remove always true conditional 'p == 0' and
	unindent its code block.

2012-04-17  Pedro Alves  <palves@redhat.com>

	* gdbtypes.h (FIELD_BITPOS): Rename to ...
	(FIELD_BITPOS_LVAL): ... this.
	(FIELD_BITPOS): New.
	(SET_FIELD_BITPOS): Adjust to use FIELD_BITPOS_LVAL.
	* dwarf2read.c (dwarf2_add_field): Use SET_FIELD_BITPOS.
	* gdbtypes.c (append_composite_type_field_aligned): Adjust to use
	SET_FIELD_BITPOS.
	* gnu-v3-abi.c (build_gdb_vtable_type): Adjust to use
	SET_FIELD_BITPOS.
	* stabsread.c (read_cpp_abbrev, read_one_struct_field)
	(read_baseclasses): Adjust to use SET_FIELD_BITPOS.
	* target-descriptions.c (tdesc_gdb_type): Adjust to use
	SET_FIELD_BITPOS.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Do not rely on FIELD_LOC_KIND_BITPOS being zero.
	* ada-lang.c (ada_template_to_fixed_record_type_1): Replace
	TYPE_FIELD_BITPOS used as lvalue by SET_FIELD_BITPOS.
	* gdbtypes.c (append_flags_type_flag): Likewise, twice.
	* jv-lang.c (java_link_class_type): Likewise, once.
	* stabsread.c (read_enum_type): Likewise.

2012-04-16  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (agent_run_command): Add one more parameter `len'.
	Update callers.
	* common/agent.h: Update declaration.
	* linux-nat.c (linux_child_static_tracepoint_markers_by_strid):
	Update.
	(linux_child_static_tracepoint_markers_by_strid): Ditto.

2012-04-14  Anton Gorenkov <xgsa@yandex.ru>

	PR mi/13393
	* value.c (value_actual_type): New function.
	* value.h (value_actual_type): New declaration.
	* varobj.c (update_type_if_necessary): New function.
	(varobj_create): Call value_actual_type instead of
	value_type.
	(install_dynamic_child): distinct changed and type changed MI variable
	objects.
	(update_dynamic_varobj_children): Updated for install_dynamic_child
	change.  All callers updated.
	(varobj_update): Support for MI variable object type change if
	the value changed and RTTI is used to determine the type.
	(create_child_with_value): Call value_actual_type instead of
	value_type.
	(adjust_value_for_child_access): Extended with a new parameter which
	specify whether the given value should be casted to enclosing type.
	All callers updated.

2012-04-14  Yao Qi  <yao@codesourcery.com>

	Import gnulib module inttypes from git
	(250b80067c1e1d8faa0c42fb572f721975b929c5)
	* Makefile.in (HFILES_NO_SRCDIR): Add gnulib/inttypes.in.h.
	(aclocal_m4_deps): Add gnulib/m4/inttypes.m4 and
	gnulib/m4/inttypes-pri.m4
	* aclocal.m4, config.in, configure: Regenerated.
	* gnulib/Makefile.am: Update.
	* gnulib/Makefile.in: Update.
	* gnulib/m4/gnulib-cache.m4: Update.
	* gnulib/m4/gnulib-comp.m4: Update.
	* gnulib/inttypes.in.h: New.
	* gnulib/m4/inttypes-pri.m4: New.
	* gnulib/m4/inttypes.m4: New.

2012-04-13  Luis Machado  <lgustavo@codesourcery.com>

	* infrun.c (resume): Update PC address to the real PC after
	preparing to do displaced stepping.

2012-04-12  Doug Evans  <dje@google.com>

	* dwarf2read.c (lookup_signatured_type): Remove arg "objfile", unused.
	All callers updated.

2012-04-12  Mark Kettenis  <kettenis@gnu.org>

	* i386bsd-nat.c (_initialize_i386bsd_nat): Add missing prototype.

2012-04-12  Doug Evans  <dje@google.com>

	* dwarf2read.c (create_all_type_units): Renamed from
	create_debug_types_hash_table.  All callers updated.

	* dwarf2read.c (create_signatured_type_table_from_index): Rename
	local type_sig to sig_type, type_offset to type_offset_in_tu.
	(hash_signatured_type): Renamed from hash_type_signature,
	all callers updated.
	(eq_signatured_type): Renamed from eq_type_signature,
	all callers updated.
	(create_debug_types_hash_table): Rename local type_sig to sig_type.
	(process_enumeration_scope): Ditto.
	(lookup_signatured_type_at_offset): Ditto.
	(load_full_type_unit, read_signatured_type): Ditto.

2012-04-12  Yao Qi  <yao@codesourcery.com>

	* remote.c (async_remote_interrupt): Correct function name in
	debug message.
	(async_remote_interrupt_twice): Ditto.

2012-04-11  Yuanhui Zhang  <asmwarrior@gmail.com>

	* source.c (find_and_open_source): Consistently pass resulting
	full path through xfullpath.

2012-04-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Provide more specific displaced-stepping memory error message.
	* infrun.c (displaced_step_prepare): New variable status.  Call
	target_read_memory instead of read_memory, provide more specific
	error message.

2012-04-11  Tristan Gingold  <gingold@adacore.com>

	PR gdb/13901
	* darwin-nat.c (darwin_execvp): Revert previous patch.

2012-04-11  Tristan Gingold  <gingold@adacore.com>

	PR gdb/13901
	* darwin-nat.c (darwin_resume_thread): Call darwin_set_sstep only
	in case of change.

2012-04-11  Tristan Gingold  <gingold@adacore.com>

	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Fix
	warning.

2012-04-11  Siva Chandra Reddy  <sivachandra@google.com>

	New command 'explore' which helps explore values and types in
	scope.
	* NEWS: Add an entry about the new 'explore' command.
	* data-directory/Makefile.in: Add gdb/command/explore.py
	* python/lib/gdb/command/explore.py: Implemention of the 'explore'
	command using the GDB Python API.

2012-04-10  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_skip_pic_trampoline_code): Correct sign
	extension in jump target calculation.

2012-04-10  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips32_next_pc): Handle JALX.

2012-04-10  Yao Qi  <yao@codesourcery.com>

	* Makefile.in (gnulib/Makefile): Remove duplicated dependency.

2012-04-10  Yao Qi  <yao@codesourcery.com>

	* Makefile.in (aclocal_m4_deps): Add gnulib/m4/gnulib-cache.m4
	and gnulib/m4/gnulib-tool.m4.

2012-04-10  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_per_cu_data). Clarify comment.
	(load_partial_dies): Clarify comment.
	(find_partial_die): Support rereading type units.
	Clarify CU handling, if we know offset is in CU, don't search for the
	containing CU.  Add comment regarding memory waste.

2012-04-10  H.J. Lu  <hongjiu.lu@intel.com>

	* features/Makefile (WHICH): Add i386/x32, i386/x32-linux,
	i386/x32-avx and i386/x32-avx-linux.
	(i386/x32-expedite): New.
	(i386/x32-linux-expedite): Likewise.
	(i386/x32-avx-expedite): Likewise.
	(i386/x32-avx-linux-expedite): Likewise.
	($(outdir)/i386/x32.dat): Likewise.
	($(outdir)/i386/x32-linux.dat): Likewise.
	($(outdir)/i386/x32-avx.dat): Likewise.
	($(outdir)/i386/x32-avx-linux.dat): Likewise.

	* features/i386/x32-avx-linux.xml: New file.
	* features/i386/x32-avx.xml: Likewise.
	* features/i386/x32-core.xml: Likewise.
	* features/i386/x32-linux.xml: Likewise.
	* features/i386/x32.xml: Likewise.

	* features/i386/x32-avx-linux.c: New.  Generated.
	* features/i386/x32-avx.c: Likewise.
	* features/i386/x32-linux.c: Likewise.
	* features/i386/x32.c: Likewise.
	* regformats/i386/x32-avx-linux.dat: Likewise.
	* regformats/i386/x32-avx.dat: Likewise.
	* regformats/i386/x32-linux.dat: Likewise.
	* regformats/i386/x32.dat: Likewise.

2012-04-10  Tristan Gingold  <gingold@adacore.com>

	* darwin-nat.c (darwin_kill_inferior): Always use the no ptrace
	code to kill the inferior.

2012-04-09  Mark Kettenis  <kettenis@gnu.org>

	* ada-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* c-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* cp-name-parser.y (yyss, yysslim, yyssp, yystacksize, yyvs)
	(yyvsp): New defines.
	* f-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* jv-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* m2-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* objc-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.
	* p-exp.y (yyss, yysslim, yyssp, yystacksize, yyvs, yyvsp): New
	defines.

2012-04-09  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_arguments)
	(sparc64_store_arguments): Fix coding style.

2012-04-07  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_arguments): Fix handling of
	complex floats, adjust some related comments and tighten a related
	assertion.
	(sparc64_extract_return_value): Handle complex floats.

2012-04-07  Doug Evans  <dje@google.com>

	* dwarf2read.c (load_partial_dies): Change condition to assert.

2012-04-06  Doug Evans  <dje@google.com>

	* amd64-tdep.c (amd64_analyze_prologue): Recognize both variations of
	"mov %rsp,%rbp".

2012-04-05  Kevin Buettner  <kevinb@redhat.com>

	* v850-tdep.c (E_NUM_OF_V850_REGS, E_NUM_OF_V850E_REGS): Fix
	fencepost error.
	(v850_frame_cache): Use gdbarch_num_regs() instead of E_NUM_REGS.
	(v850_gdbarch_init): Set `num_regs' as appropriate for the
	architecture.

2012-04-05  Keith Seitz  <keiths@redhat.com>

	* linespec.c (decode_compound): Remove.
	(enum offset_relative_sign): New enum.
	(struct line_offset): New struct.
	(struct linespec): New struct.
	(struct linespec_state): Move file_symtabs,
	user_filename, and user_function into struct linespec.
	Make result an anonymous struct holding vectors of
	symbolp and minsym_and_objfile_d.
	Add language member.
	(enum ls_token_type): New enum.
	(linespec_keywords): New array.
	(struct ls_token): New struct.
	(struct ls_parser): New struct.
	(linespec_lexer_lex_number): New function.
	(linespec_lexer_lex_keyword): New function.
	(is_ada_operator): New function.
	(skip_quote_char): New function.
	(copy_token_string): New function.
	(is_closing_quote_enclosed): New function.
	(find_parameter_list_end): New function.
	(linespec_lexer_lex_string): New function.
	(linespec_lexer_lex_one): New function.
	(linespec_lexer_consume_token): New function.
	(linespec_lexer_peek_token): New function.
	(cplusplus_error): Remove unused function.
	(find_methods): Update comment.
	(find_toplevel_char): Return const.
	(is_objc_method_format): Remove unused function.
	(find_toplevel_string): New function.
	(is_linespec_boundary): Remove.
	(symbol_not_found_error): New function.
	(find_method_overload_end): Remove function.
	(unexpected_linespec_error): New function.
	(keep_name_info): Remove.
	(linespec_parse_line_offset): New function.
	(linespec_parse_basic): New function.
	(canonicalize_linespec): New function.
	(decode_line_internal): Remove.
	(create_sals_line_offset): New function adapted from
	decode_all_digits.
	(convert_linespec_to_sals): New function.
	(parse_linespec): New function.
	(linespec_parser_new): New function.
	(linespec_state_destructor): Change parameter type to
	struct linespec_state *.
	Add language parameter.
	Remove freeing of moved members.
	(linespec_parser_delete): New function.
	(decode_line_full): Use parse_linespec and linespec_parser_new.
	(decode_line_1): Likewise.
	(decode_indirect): Rename to ...
	(linespec_expression_to_pc): ... this and rewrite
	to simply find CORE_ADDR, storing this result for later
	conversion to SALs.
	(locate_first_half): Remove.
	(deocde_objc): Add parameter LS.
	Initialize new struct collect_info members.
	Handle minimal symbols, too.
	(decode_compound): Delete.
	(lookup_prefix_sym): Rewrite.
	(compare_msymbols): New function.
	(find_method): Rewrite.
	Do not call cplusplus_error.
	(symtabs_from_filename): Rewrite.
	(collect_function_symbols): Delete.
	(find_function_symbols): Rewrite without ARGPTR-style
	processing.
	(decode_all_digits): Delete. (Rewritten as create_sals_line_offset.)
	(decode_dollar): Adapted and renamed to ...
	(linespec_parse_variable): ... this.
	(find_linespec_symbols): New function.
	(decode_label): Adapted and renamed to ...
	(find_label_symbols): ... this.
	(decode_digits_list_mode): Add and use LS argument.
	(decode_digits_ordinary): Likewise.
	(collect_symbols): Do not collect SALs, just symbols and msymbols.
	If in list mode, allow any symbol class.  Otherwise, only
	permit LOC_BLOCK symbols.
	(minsym_found): Update comments.
	(search_minsyms_for_name): Do not convert the matching symbol
	into a SAL.  Simply push the symbol and objfile into the
	result vector.
	(decode_variable): Delete. Contents adapted into
	find_linespec_symbols.

	* cp-support.c (SKIP_SPACE): Remove.
	(operator_tokens): Remove unused global.
	(cp_validate_operator): Remove.
	* cp-support.h (cp_validate_operator): Remove declaration.

2012-04-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cp-valprint.c (cp_print_value_fields): Check valprint_check_validity
	for TYPE_VPTR_FIELDNO.
	* valprint.c (valprint_check_validity): Make it global, move the
	function comment ...
	* value.h (valprint_check_validity): ... to this new declaration.

2012-04-02  Tristan Gingold  <gingold@adacore.com>

	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Use
	the STATE32 api for i386 state.
	(i386_darwin_store_inferior_registers): Likewise.

2012-04-02  Tristan Gingold  <gingold@adacore.com>

	* i386-darwin-tdep.c (i386_darwin_thread_state_reg_offset): Fix
	SS offset.
	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Fix
	format_string.

2012-04-02  Tristan Gingold  <gingold@adacore.com>

	PR gdb/13901
	* darwin-nat.c (darwin_execvp): Set binary preference.

2012-04-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS (set breakpoint condition-evaluation): Use imperative mood.

2012-03-30  Tom Tromey  <tromey@redhat.com>

	* python/python.c (gdbpy_decode_line): Move cleanup creation out
	of TRY_CATCH.  Fix error handling.
	* python/py-value.c (convert_value_from_python): Move 'old'
	declaration to innermost scope.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_make_symbol_completion_list): Rename parameters
	"wild_match" and "encoded" into "wild_match_p" and "encoded_p".
	Adjust code accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (symbol_completion_add): Rename parameter
	"encoded" into "encoded_p".  Ajust code and documentation
	accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (symbol_completion_add): Rename parameter
	"wild_match" into wild_match_p.  Update code and documentation
	accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (symbol_completion_match): Rename parameter
	"encoded" into "encoded_p".  Ajust code and documentation
	accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (symbol_completion_match): Rename parameter
	"wild_match" into "wild_match_p".  Adjust code and function
	documentation accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_lookup_encoded_symbol): Rename parameter
	"symbol_info" into "info".  Adjust code accordingly.
	(ada_lookup_symbol): Likewise.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_lookup_symbol_list): Minor reformatting
	of this function's documentation.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_lookup_symbol_list): Rename "wild_match"
	variable into "wild_match_p".  Adjust code accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_add_local_symbols): Rename "wild_match"
	parameter into "wild_match_p".  Adjust code accordingly.
	Document this parameter in the function description.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (add_symbols_from_enclosing_procs): Rename
	"wild_match" parameter to "wild_match_p" (-Wshadow).

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_lookup_simple_minsym): Remove trailing spaces
	in function documentation.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	-Wshadow warning fix.
	* ada-lang.c (ada_lookup_simple_minsym): Rename wild_match local
	variable into wild_match_p.  Adjust code accordingly.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>
	    Andrey Smirnov  <andrew.smirnov@gmail.com>

	* ada-valprint.c (ada_val_print_1): Move the code handling
	TYPE_CODE_ENUM inside its own lexical block.  Declare
	variables len and val there, instead of in the function's
	top level block.  Avoid declaring deref_val again in a way
	that shadows another variable of the same name declared
	in one of the up-level blocks.  Just re-use the up-level
	variable instead.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_lookup_encoded_symbol): Now returns void.
	Replace block_found argument by symbol_info.  Adjust
	implementation accordingly.  Add function documentation.
	(ada_lookup_symbol): Adjust to new ada_lookup_encoded_symbol.
	Fix documentation.
	* ada-lang.h (ada_lookup_encoded_symbol): Update declaration.
	* ada-exp.y (write_object_renaming): Adjust to new
	ada_lookup_encoded_symbol API.

2012-03-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (struct ada_symbol_info): Reformat.  Improve
	documentation.

2012-03-28  Rathish C  <rathish.c@kpitcummins.com>

	* v850-tdep.c: Add the enum values for mpu and fpu registers.
	(v850_register_name): Add the mpu and fpu register names.
	(v850e_register_name): Add the mpu and fpu register names.
	(v850e2_register_name): New function.
	(v850_gdbarch_init): Add case for bfd_mach_v850e2 and
	bfd_mach_v850e2v3.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Add entry for Ada varobj support.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* varobj.c (default_value_is_changeable_p): New function,
	extracted from varobj_value_is_changeable_p.  Add declaration.
	(ada_value_is_changeable_p): New function, extracted from
	varobj_value_is_changeable_p.  Add declaration.
	(struct language_specific): New field "value_is_changeable_p".
	(languages): Add entries for new field.
	(varobj_create): Set language before calling install_new_value.
	(varobj_value_is_changeable_p): Reimplement to call the varobj's
	"value_is_changeable_p" language callback.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* ada-varobj.h, ada-varobj.c: New files.
	* Makefile.in (SFILES): Add ada-varobj.c.
	(HFILES_NO_SRCDIR): Add ada-varobj.h.
	(COMMON_OBS): Add ada-varobj.o.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* varobj.c (ada_value_has_mutated): Add declaration.  New function.
	(struct language_specific): New field "value_has_mutated".
	(languages): Set field "value_has_mutated" in each entry of array.
	(varobj_value_has_mutated): New function.
	(varobj_udpdate): Add handling of type mutation.
	(value_of_root): Add handling of type mutation.
	(ada_value_has_mutated): New function.

2012-03-28  Pedro Alves  <palves@redhat.com>

	* ia64-linux-nat.c (supply_fpregset, ia64_linux_fetch_register):
	Always supply $fr0 as 0.0 and $fr1 as 1.0.

2012-03-28  Tom Tromey  <tromey@redhat.com>

	* python/py-inferior.c (infpy_read_memory): Remove cleanups and
	explicitly free 'buffer' on exit paths.  Decref 'membuf_object'
	before returning.

2012-03-28  Tom Tromey  <tromey@redhat.com>

	* .dir-locals.el: New file.

2012-03-28  Pedro Alves  <palves@redhat.com>

	* ia64-linux-nat.c (u_offsets): Map IA64_EC_REGNUM to PT_AR_EC.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* ia64-linux-nat.c (ia64_linux_fetch_register): Add special
	handling for r0.

2012-03-27  Pedro Alves  <palves@redhat.com>

	Eliminate struct ui_stream.

	* ui-out.h (struct ui_stream): Delete.
	(ui_out_field_stream): Adjust prototype.
	(ui_out_stream_new, ui_out_stream_delete)
	(make_cleanup_ui_out_stream_delete): Delete declarations.
	* ui-out.c (ui_out_field_stream): Change prototype to take a
	ui_file instead of a ui_stream.  Adjust.
	(ui_out_stream_new, ui_out_stream_delete, do_stream_delete)
	(make_cleanup_ui_out_stream_delete): Delete.
	* breakpoint.c (print_breakpoint_location)
	(print_one_detail_ranged_breakpoint, print_it_watchpoint): Use
	ui_file/mem_fileopen instead of ui_stream/ui_out_stream_new.
	* disasm.c (dump_insns): Ditto.
	(do_mixed_source_and_assembly, do_assembly_only): Adjust
	prototype.
	(gdb_disassembly): Use ui_file/mem_fileopen instead of
	ui_stream/ui_out_stream_new.
	* infcmd.c (print_return_value): Ditto.
	* osdata.c (info_osdata_command): Don't allocate a local
	ui_stream.
	* stack.c (print_frame_arg, print_frame_args, print_frame): Use
	ui_file/mem_fileopen instead of ui_stream/ui_out_stream_new.
	* tracepoint.c (print_one_static_tracepoint_marker): Don't
	allocate a local ui_stream.
	* mi/mi-cmd-stack.c (list_arg_or_local): Use ui_file/mem_fileopen
	instead of ui_stream/ui_out_stream_new.
	(list_args_or_locals): Don't allocate a local ui_stream.
	* mi/mi-main.c (get_register, mi_cmd_data_evaluate_expression)
	(mi_cmd_data_read_memory): Use ui_file/mem_fileopen instead of
	ui_stream/ui_out_stream_new.
	* cli/cli-setshow.c (do_setshow_command): Ditto.

2012-03-27  Oza Pawandeep  <oza.pawandeep@gmail.com>

	* arm-linux-tdep.c (arm_linux_init_abi): Call
	set_gdbarch_process_record.  Initialize `arm_swi_record' field.
	* arm-tdep.c (arm_process_record): New function.
	(deallocate_reg_mem): New function.
	(decode_insn): New function.
	(thumb_record_branch): New function.
	(thumb_record_ldm_stm_swi(): New function.
	(thumb_record_misc): New function.
	(thumb_record_ld_st_stack): New function.
	(thumb_record_ld_st_imm_offset): New function.
	(thumb_record_ld_st_reg_offset(): New function.
	(thumb_record_add_sub_cmp_mov): New function.
	(thumb_record_shift_add_sub): New function.
	(arm_record_coproc_data_proc): New function.
	(arm_record_coproc): New function.
	(arm_record_b_bl): New function.
	(arm_record_ld_st_multiple): New function.
	(arm_record_ld_st_reg_offset): New function.
	(arm_record_ld_st_imm_offset): New function.
	(arm_record_data_proc_imm): New function.
	(arm_record_data_proc_misc_ld_str): New function.
	(arm_record_extension_space): New function.
	(arm_record_strx): New function.
	(sbo_sbz): New function.
	(struct insn_decode_record): New structure for arm insn record.
	(REG_ALLOC): New macro for reg allocations.
	(MEM_ALLOC): New macro for memory allocations.
	* arm-tdep.h (struct gdbarch_tdep): New field 'arm_swi_record'.

2012-03-27  Andreas Schwab  <schwab@linux-m68k.org>

	* m68klinux-nat.c (fetch_register): Fix strict-aliasing violation.
	(store_register): Likewise.

2012-03-26  Oza Pawandeep  <oza.pawandeep@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-03-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS (set breakpoint condition-evaluation): Change "gdb" to "host".
	Describe also the option "auto".

2012-03-22  Richard Henderson  <rth@redhat.com>

	* sparc-linux-nat.c (_initialize_sparc_linux_nat): Fix prototype.
	* sparc-nat.c (sparc_xfer_wcookie): Make static.

2012-03-22  Richard Henderson  <rth@redhat.com>

	* jit.c (jit_read_code_entry): Compute alignment and offset of
	int64_t member before computing entry_size.

2012-03-22  Siva Chandra Reddy  <sivachandra@google.com>

	Python scripting: Add new method Value.referenced_value to
	gdb.Value which can dereference pointer as well as reference
	values.
	* NEWS: Add entry under 'Python scripting' about the new method
	Value.referenced_value on gdb.Value objects.
	* python/py-value.c (valpy_referenced_value): New function
	defining a new method on gdb.Value objects which can dereference
	pointer and reference values.

2012-03-22  Siva Chandra Reddy  <sivachandra@google.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-03-21  Kevin Buettner  <kevinb@redhat.com>

	* symtab.c (skip_prologue_sal): Change test to check for "main()"
	in addition to "main".

2012-03-21  Joel Brobecker  <brobecker@adacore.com>

	* expression.h (op_name): Add declaration.
	* expprint.c (op_name): Remove declaration.  Make non-static.
	* ax-gdb.c (gen_expr): Use op_name instead of op_string.

2012-03-21  Thomas Schwinge  <thomas@codesourcery.com>

	* amd64-linux-nat.c (amd64_linux_siginfo_fixup): Use siginfo_t instead
	of struct siginfo.
	* arm-linux-nat.c (arm_linux_stopped_data_address): Likewise.
	* ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise.
	* linux-nat.c (linux_nat_siginfo_fixup, siginfo_fixup)
	(linux_xfer_siginfo, linux_nat_set_siginfo_fixup)
	(linux_nat_get_siginfo): Likewise.
	* linux-nat.h (struct lwp_info, linux_nat_set_siginfo_fixup)
	(linux_nat_get_siginfo): Likewise.
	* linux-tdep.c (linux_get_siginfo_type): Likewise.
	* ppc-linux-nat.c (ppc_linux_stopped_data_address): Likewise.
	* procfs.c (gdb_siginfo_t): Likewise.

2012-03-21  Mike Frysinger  <vapier@gentoo.org>

	* .gitignore: Ignore more files.

2012-03-20  Pedro Alves  <palves@redhat.com>

	* remote.c (remote_start_remote): Clear `rs->starting_up' on early
	returns.

2012-03-20  Yao Qi  <yao@codesourcery.com>

	* amd64-tdep.c (amd64_displaced_step_copy_insn): Complete missing "}" in
	comment.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanupp: Use cu_offset and sect_offset compile time type checking.
	* dwarf2expr.c (add_piece, dwarf_get_base_type, execute_stack_op)
	(ctx_no_dwarf_call, ctx_no_get_base_type): Use cu_offset and
	sect_offset.
	* dwarf2expr.h (cu_offset, sect_offset): New types.
	(struct dwarf_expr_context_funcs) <dwarf_call>
	(struct dwarf_expr_context_funcs) <get_base_type>: Use cu_offset and
	sect_offset.
	(struct dwarf_expr_context) <len>: Improve the comment.
	(struct dwarf_expr_piece, ctx_no_dwarf_call, ctx_no_get_base_type): Use
	cu_offset and sect_offset.
	* dwarf2loc.c (per_cu_dwarf_call, dwarf_expr_dwarf_call)
	(dwarf_expr_get_base_type, needs_frame_dwarf_call)
	(dwarf2_compile_expr_to_ax, disassemble_dwarf_expression): Likewise.
	* dwarf2loc.h: Include dwarf2expr.h.
	(dwarf2_fetch_die_location_block, dwarf2_get_die_type): Use cu_offset
	and sect_offset.
	* dwarf2read.c (struct dwarf2_per_objfile) <debug_types_type_hash>:
	Improve the comment.
	(struct comp_unit_head, struct dwarf2_cu, struct dwarf2_per_cu_data)
	(struct signatured_type, struct line_header, struct partial_die_info)
	(struct die_info, find_partial_die, dwarf2_get_ref_die_offset)
	(lookup_signatured_type_at_offset, dwarf2_find_containing_comp_unit)
	(get_die_type_at_offset, create_cus_from_index)
	(create_signatured_type_table_from_index, dw2_get_file_names)
	(offset_in_cu_p, read_comp_unit_head, error_check_comp_unit_head)
	(read_and_check_comp_unit_head, read_and_check_type_unit_head)
	(create_debug_types_hash_table, process_psymtab_comp_unit)
	(load_partial_comp_unit, create_all_comp_units)
	(partial_die_parent_scope, partial_die_full_name, skip_one_die)
	(load_full_comp_unit, dwarf2_physname, read_import_statement)
	(inherit_abstract_dies, read_func_scope, read_call_site_scope)
	(dwarf2_add_member_fn, process_enumeration_scope, read_module_type)
	(read_typedef, die_hash, die_eq, read_full_die, dwarf2_read_abbrevs)
	(load_partial_dies, read_partial_die, find_partial_die_in_comp_unit)
	(find_partial_die, read_attribute_value, lookup_die_type)
	(dump_die_shallow, store_in_ref_table): Use cu_offset and sect_offset.
	(is_ref_attr): New function comment.
	(dwarf2_get_ref_die_offset): New function comment, new variable retval.
	Use cu_offset and sect_offset.
	(follow_die_offset, follow_die_ref, dwarf2_fetch_die_location_block)
	(dwarf2_get_die_type, follow_die_sig, lookup_signatured_type_at_offset)
	(load_full_type_unit, read_signatured_type, per_cu_header_read_in)
	(dwarf2_find_containing_comp_unit, struct dwarf2_offset_and_type)
	(offset_and_type_hash, offset_and_type_eq, set_die_type)
	(get_die_type_at_offset, partial_die_hash, partial_die_eq)
	(write_one_signatured_type, write_psymtabs_to_index): Use cu_offset and
	sect_offset.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* python/py-auto-load.c (source_section_scripts): New variable back_to.
	Turn fclose and xfree calls into make_cleanup_fclose and make_cleanup
	with xfree.
	(auto_load_objfile_script): Turn fclose into make_cleanup_fclose.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS: Describe new options --init-command=FILE, -ix and
	--init-eval-command=COMMAND, -iex.
	* main.c (struct cmdarg): New enum items CMDARG_INIT_FILE and
	CMDARG_INIT_COMMAND.
	(captured_main): New enum items OPT_IX and OPT_IEX.  Add
	"init-command", "init-eval-command", "ix" and "iex" to the variable
	long_options.  Handle OPT_IX and OPT_IEX.  Process them from CMDARG_VEC.
	New comment for CMDARG_FILE and CMDARG_COMMAND processing.
	(print_gdb_help): Describe --init-command=FILE, -ix and
	--init-eval-command=COMMAND, -iex.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* main.c (struct cmdarg): Move it here from main.  Add more comments.
	(cmdarg_s, VEC (cmdarg_s)): New.
	(main): Move struct cmdarg from here.  New variables cmdarg_vec and
	cmdarg_p.  Remove variables cmdsize and ncmd and their initialization.
	Install cleanup for cmdarg_vec.  Update filling for options 'x' and
	'X'.  Replace cmdarg processing by cmdarg_vec processing.  Remove xfree
	of CMDARG.

2012-03-19  Tom Tromey  <tromey@redhat.com>

	* gnu-v3-abi.c (gnuv3_print_vtable): Initialize 'result_vec'.

2012-03-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR symtab/13777
	* dwarf2read.c (process_full_comp_unit): Set LOCATIONS_VALID only for
	GCC >=4.5.

2012-03-16  Chris January  <chris.january@allinea.com>

	* tui-tui.win.c (tui_resize_all): Use erase and clearok instead
	of clear.

2012-03-16  Chris January  <chris.january@allinea.com>

	* source.c (add_path): Use memmove instead of strcpy because the
	strings overlap.

2012-03-16  Joel Brobecker  <brobecker@adacore.com>

	* value.h (set_value_parent): Add declaration.
	* value.c (set_value_parent): New function.
	(value_address): If VALUE->PARENT is not NULL, then use it as
	the base address instead of VALUE->LOCATION.address.
	* ada-lang.c (ada_value_primitive_packed_val): Keep V's address
	the same as OBJ's address.  Adjust V's offset accordingly.
	Set V's parent.

2012-03-16  Gary Benson  <gbenson@redhat.com>

	PR breakpoints/10738
	* dwarf2read.c (use_deprecated_index_sections): New global.
	(struct partial_die_info): New member may_be_inlined.
	(read_partial_die): Set may_be_inlined where appropriate.
	(add_partial_subprogram): Add partial symbols for partial
	DIEs that may be inlined.
	(new_symbol_full): Add inlined subroutines to the current
	scope.
	(write_psymtabs_to_index): Bump version number.
	(dwarf2_read_index): Read only version 6 indices unless
	use_deprecated_index_sections is set.
	* linespec.c (symbol_and_data_callback): New structure.
	(iterate_inline_only): New function.
	(iterate_over_all_matching_symtabs): New argument
	"include_inline".  If nonzero, also call the callback for
	symbols representing inlined subroutines.
	(lookup_prefix_sym): Pass extra argument to the above.
	(find_function_symbols): Likewise.
	(add_matching_symbols_to_info): Likewise.
	* NEWS: Mention that GDB can now set breakpoints on inlined
	functions.

2012-03-16  Pierre Muller  <muller@ics.u-strasbg.fr>

	* p-typeprint.c (pascal_type_print_method_args):
	Fix display of parameter of methods.

2012-03-16  Pierre Muller  <muller@ics.u-strasbg.fr>

	* amd64-windows-nat.c (_initialize_amd64_windows_nat):
	Add missing prototype.

2012-03-16  Yao Qi  <yao@codesourcery.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix false compilation warning.
	* gnu-v3-abi.c (print_one_vtable): Initialize ADDR.

2012-03-15  Jonathan Larmour  <jifl@eCosCentric.com>
	    Pedro Alves  <pedro@codesourcery.com>

	* arm-tdep.c: Include "remote.h" and "features/arm-with-m-fpa-layout.c".
	(arm_register_g_packet_guesses): New function.
	(arm_gdbarch_init): Don't force a target description with
	registers when the executable is detected as M-profile.  Instead
	set gdbarch->tdep->is_m.  Register `g' packet guesses.
	(_initialize_arm_tdep): Initialize the new target description.
	* features/arm-with-m-fpa-layout.xml: New description.
	* features/arm-with-m-fpa-layout.c: New, generated.

2012-03-15  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (breakpoint_xfer_memory): Add assertion.
	Update function description.
	(insert_bp_location): Do not wipe bl->target_info out.
	* mem-break.c: #include "gdb_string.h".
	(default_memory_insert_breakpoint): Do not call target_read_memory
	with a pointer to the breakpoint's shadow_contents buffer.  Use
	a local buffer instead.
	* m32r-tdep.c (m32r_memory_insert_breakpoint): Ditto.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention "info vtbl", not "info vtable".
	* cp-support.c (info_vtbl_command): Fix comment.
	(_initialize_cp_support): Fix text.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* cp-valprint.c (cp_print_value_fields): Use
	print_function_pointer_address for vtable slot.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* gnu-v3-abi.c (struct value_and_voffset): New.
	(hash_value_and_voffset, eq_value_and_voffset)
	(compare_value_and_voffset, compute_vtable_size)
	(print_one_vtable, gnuv3_print_vtable): New functions.
	(init_gnuv3_ops): Initialize 'print_vtable' field.
	* cp-support.c (info_vtbl_command): New function.
	(_initialize_cp_support): Add "info vtbl".
	* cp-abi.h (cplus_print_vtable): Declare.
	(struct cp_abi_ops) <print_vtable>: New field.
	* cp-abi.c (cplus_print_vtable): New function.
	* NEWS: Update.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* d-lang.c (d_language_defn) <la_iterate_over_symbols>: Set to
	iterate_over_symbols.

2012-03-14  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf_stack_op_name): Add DW_OP_GNU_encoded_addr,
	DW_OP_GNU_parameter_ref.

2012-03-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix double prompt of 'interpreter-exec mi'.
	* mi/mi-interp.c (mi_execute_command_input_handler): New prototype.
	(mi_interpreter_resume): use it.
	(mi_execute_command_input_handler): New function.
	* mi/mi-main.c (mi_execute_command): Move prompt printing to
	mi_execute_command_input_handler.

2012-03-13  Josh Matthews  <josh@joshmatthews.net>  (tiny change)

	* darwin-nat-info.c (_initialize_darwin_info_commands): Add
	prototype.
	(darwin_debug_port_info): Make static.
	* darwin-nat.c (_initialize_darwin_inferior): Add prototype.
	* machoread.c (_initialize_machoread): Add prototype.
	* i386-darwin-nat.c (i386_darwin_dr_set, i386_darwin_dr_get)
	(i386_darwin_set_control, i386_darwin_get_control)
	i386_darwin_dr_set_addr, i386_darwin_get_addr)
	i386_darwin_get_status, i386_darwin_get_control):
	Comment out with HW_WATCHPOINT_NOT_YET_ENABLED macro.

2012-03-13  Joel Brobecker  <brobecker@adacore.com>

	* ax-gdb.c (gen_usual_unary): Remove special handling of
	enum and bool types.

2012-03-13  Joel Brobecker  <brobecker@adacore.com>

	* ax-gdb.c (gen_fetch): Add handling for TYPE_CODE_RANGE types.

2012-03-13  Joel Brobecker  <brobecker@adacore.com>

	* aix-thread.c (supply_fprs): Make more consistent with fill_fprs.

2012-03-13  Chris January  <chris.january@allinea.com>

	* aix-thread.c (fill_sprs): Store the floating point registers
	at the correct offsets into vals.

2012-03-13  Doug Evans  <dje@google.com>

	* NEWS: Mention symbol-reloading has been deleted.
	* symfile.c (symbol_reloading): Delete.
	(show_symbol_reloading): Delete.
	(_initialize_symfile): Delete set/show symbol-reloading.

	* dwarf2read.c (load_partial_comp_unit): Defer adding cu to
	read_in_chain until we have successfully read it in.
	(load_full_comp_unit): Ditto.
	(read_signatured_type): Add comment.

2012-03-13  Chris January  <chris.january@allinea.com>

	* stabsread.c (fix_common_block): Change type of valu argument
	to CORE_ADDR.

2012-03-13  Chris January  <chris.january@allinea.com>

	* rs6000-tdep.c (skip_prologue): Support the oril r29, r1, 0x0
	instruction.

2012-03-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* common/linux-procfs.c (linux_proc_get_int): New, from
	linux_proc_get_tgid, change its LWPID type to pid_t, add parameter
	field.
	(linux_proc_get_tgid): Only call linux_proc_get_int.
	(linux_proc_get_tracerpid): New.
	(linux_proc_pid_has_state): New, from linux_proc_pid_is_zombie.
	(linux_proc_pid_is_stopped, linux_proc_pid_is_zombie): Only call
	linux_proc_pid_has_state.
	* common/linux-procfs.h (linux_proc_get_tracerpid): New declaration.
	* common/linux-ptrace.c: Include linux-procfs.h and buffer.h.
	(linux_ptrace_attach_warnings): New.
	* common/linux-ptrace.h (struct buffer, linux_ptrace_attach_warnings):
	New declaration.
	* linux-nat.c: Include exceptions.h, linux-ptrace.h and buffer.h.
	(linux_nat_attach): New variables ex, buffer, message and message_s.
	Wrap to_attach by TRY_CATCH and call linux_ptrace_attach_warnings.

2012-03-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (linux-ptrace.o): New.
	* common/linux-procfs.c (linux_proc_pid_is_zombie): New,
	from linux-nat.c.
	* common/linux-procfs.h (linux_proc_pid_is_zombie): New declaration.
	* common/linux-ptrace.c: New file.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Add linux-ptrace.o.
	* config/arm/linux.mh: Likewise.
	* config/i386/linux.mh: Likewise.
	* config/i386/linux64.mh: Likewise.
	* config/ia64/linux.mh: Likewise.
	* config/m32r/linux.mh: Likewise.
	* config/m68k/linux.mh: Likewise.
	* config/mips/linux.mh: Likewise.
	* config/pa/linux.mh: Likewise.
	* config/powerpc/linux.mh: Likewise.
	* config/powerpc/ppc64-linux.mh: Likewise.
	* config/powerpc/spu-linux.mh: Likewise.
	* config/s390/s390.mh: Likewise.
	* config/sparc/linux.mh: Likewise.
	* config/sparc/linux64.mh: Likewise.
	* config/xtensa/linux.mh: Likewise.
	* linux-nat.c (linux_lwp_is_zombie): Remove, move it to
	common/linux-procfs.c.
	(wait_lwp): Rename linux_lwp_is_zombie to linux_proc_pid_is_zombie.

2012-03-13  Hui Zhu  <teawater@gmail.com>
	    Pedro Alves  <palves@redhat.com>

	* breakpoint.c (init_breakpoint_sal): New flags parameter.  Handle
	CREATE_BREAKPOINT_FLAGS_INSERTED.
	(create_breakpoint_sal, create_breakpoints_sal)
	(base_breakpoint_create_breakpoints_sal)
	(tracepoint_create_breakpoints_sal)
	(strace_marker_create_breakpoints_sal): New flags parameter.  Pass
	down.
	(break_command_1, handle_gnu_v3_exceptions, trace_command)
	(ftrace_command, strace_command): Adjust.
	(create_tracepoint_from_upload): Pass
	CREATE_BREAKPOINT_FLAGS_INSERTED.
	* breakpoint.h (enum breakpoint_create_flags): New.
	(create_breakpoint): New flags parameter.
	* mi/mi-cmd-break.c (mi_cmd_break_insert): Adjust.
	* python/py-breakpoint.c (bppy_init): Adjust.
	* python/py-finishbreakpoint.c (bpfinishpy_init): Adjust.
	* spu-tdep.c (spu_catch_start): Adjust.

2012-03-13  Pedro Alves  <palves@redhat.com>
	    Hui Zhu  <teawater@gmail.com>
	    Yao Qi  <yao@codesourcery.com>

	* remote.c (struct remote_state): New field `starting_up'.
	(remote_start_remote): Set and clear it.
	(remote_can_download_tracepoint): If starting up, return false.

2012-03-13  Yao Qi  <yao@codesourcery.com>

	* inferior.h (struct inferior): Remove fields any_syscall_count,
	syscalls_counts and total_syscalls_count.  Move them to new
	struct catch_syscall_inferior_data in breakpoint.c.
	* breakpoint.c: Call DEF_VEC_I(int).
	(struct catch_syscall_inferior_data): New.
	(get_catch_syscall_inferior_data): New.
	(catch_syscall_inferior_data_cleanup): New.
	(insert_catch_syscall): Update to access data in
	struct catch_syscall_inferior_data.
	(insert_catch_syscall): Likewise.
	(remove_catch_syscall): Likewise.
	(remove_catch_syscall): Likewise.
	(is_syscall_catchpoint_enabled): Likewise.
	(add_catch_command): Likewise.
	(_initialize_breakpoint): Register cleanup.
	* breakpoint.h: Removed DEF_VEC_I(int).
	* dwarf2loc.c: Call DEF_VEC_I(int).
	* mi/mi-main.c: Likewise.

2012-03-12  Mark Kettenis  <kettenis@gnu.org>

	* inf-ptrace.c (inf_ptrace_post_attach): Make static.

2012-03-12  Chris January  <chris.january@allinea.com>

	* aix-thread.c (_initialize_aix_thread): Add prototype.
	* rs6000-nat.c (_initialize_rs6000_nat): Ditto.
	* xcoffsolib.c (_initialize_xcoffsolib): Ditto.

2012-03-12  Joel Brobecker  <brobecker@adacore.com>

	* amd64bsd-nat.c: Move #include of "amd64bsd-nat.h" after
	include of "amd64-nat.h".

2012-03-12  Tom Tromey  <tromey@redhat.com>

	* buildsym.c (record_pending_block): Now static.
	* buildsym.h: (record_pending_block): Remove.

2012-03-12  Andreas Tobler  <andreast@fgznet.ch>

	* amd64bsd-nat.c: Include amd64bsd-nat.h.

2012-03-09  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (struct dwarf2_cu) <checked_producer,
	producer_is_gxx_lt_4_6>: New fields.
	(producer_is_gxx_lt_4_6): Use and update producer cache fields.

2012-03-09  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf2_attr): Avoid tail-recursive call.

2012-03-08  Joel Brobecker  <brobecker@adacore.com>

	* ravenscar-sparc-thread.c (_initialize_ravenscar_sparc): Add
	prototype.

2012-03-08  Joel Brobecker  <brobecker@adacore.com>

	* ravenscar-thread.c (_initialize_ravenscar): Add prototype.

2012-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* arm-linux-nat.c (get_thread_id): Make it static.
	* xtensa-linux-nat.c (get_thread_id): Likewise.

2012-03-08  Joel Brobecker  <brobecker@adacore.com>

	* server.c (process_point_options): If a conditional expression
	is found, only print a message if remote_debug is nonzero.

2012-03-08  Luis Machado  <lgustavo@codesourcery.com>

	* ax-gdb.c (gen_fetch): Fail gracefully and use error instead
	of internal error for unknown/unsupported types.

2012-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix CU relative vs. absolute DIE offsets.
	* dwarf2loc.h (dwarf2_fetch_die_location_block): Rename parameter
	offset to offset_in_cu.
	* dwarf2read.c (process_enumeration_scope): Add CU offset to
	TYPE_OFFSET.
	(dwarf2_fetch_die_location_block): Rename parameter offset to
	offset_in_cu.  New variable offset, add CU offset to OFFSET_IN_CU.

2012-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libunwind-frame.c: Rename to ...
	* ia64-libunwind-tdep.c: ... here.
	* libunwind-frame.h: Rename to ...
	* ia64-libunwind-tdep.h: ... here.
	* Makefile.in (HFILES_NO_SRCDIR): Rename libunwind-frame.h to
	ia64-libunwind-tdep.h.
	(ALLDEPFILES): Rename libunwind-frame.c to ia64-libunwind-tdep.c.
	* README (--with-libunwind): Rename to ...
	(--with-libunwind-ia64): ... here, note it is ia64 specific now.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: New option --with-libunwind-ia64, make the
	AS_HELP_STRING ia64 specific.  Deprecate option --with-libunwind.
	Remove AC_DEFINE for HAVE_LIBUNWIND.
	* ia64-libunwind-tdep.c: Make the file top comment ia64 specific.
	Rename libunwind-frame.h #include to ia64-libunwind-tdep.h.
	Rename libunwind-frame in the general comment.
	* ia64-libunwind-tdep.h: Make the file top comment ia64 specific.
	Rename symbol LIBUNWIND_FRAME_H to IA64_TDEP_LIBUNWIND_FRAME_H.
	Move forward declarations inside #ifndef.  Rename libunwind-frame in
	the general comment.
	* ia64-tdep.c: Rename libunwind-frame.h #include to
	ia64-libunwind-tdep.h.
	(ia64_gdb2uw_regnum, ia64_uw2gdb_regnum, ia64_is_fpreg)
	(ia64_libunwind_descr): Rename libunwind-frame to
	ia64-libunwind-tdep in these function comments.
	* ia64-tdep.h: Rename libunwind-frame.h #include to
	ia64-libunwind-tdep.h.
	* ia64-vms-tdep.c (ia64_vms_libunwind_descr): Rename libunwind-frame to
	ia64-libunwind-tdep in that data comment.

2012-03-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libunwind-frame.h (struct frame_unwind): New declaration.

2012-03-08  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (_initialize_breakpoint): Fix error in help of
	"set breakpoint condition-evaluation" command.

2012-03-08  Tristan Gingold  <gingold@adacore.com>

	* sparc-stub.c: Move to stubs/
	* sh-stub.c: Likewise.
	* m68k-stub.c: Likewise.
	* m32r-stub.c: Likewise.
	* i386-stub.c: Likewise.

2012-03-08  Andreas Schwab  <schwab@linux-m68k.org>

	* m68klinux-tdep.c (m68k_linux_init_abi): Register
	linux_get_siginfo_type.

	* m68klinux-nat.c: Include "gdb_proc_service.h".
	(PTRACE_GET_THREAD_AREA): Define.
	(ps_get_thread_area): New function.

2012-03-08  Yao Qi  <yao@codesourcery.com>

	* remote.c (remote_get_noisy_reply): Replace `sprintf' with
	`xsnprintf'.
	(remote_query_attached): Likewise.
	(remote_static_tracepoint_marker_at): Likewise.
	(remote_set_permissions): Likewise.
	(remote_detach_1, extended_remote_attach_1): Likewise.
	(send_g_packet, remote_vkill): Likewise.
	(extended_remote_disable_randomization): Likewise.
	(remote_add_target_side_condition): Likewise.
	(remote_insert_breakpoint): Likewise.
	(remote_remove_breakpoint): Likewise.
	(remote_insert_watchpoint): Likewise.
	(remote_remove_watchpoint): Likewise.
	(remote_insert_hw_breakpoint): Likewise.
	(remote_insert_hw_breakpoint): Likewise.
	(remote_remove_hw_breakpoint): Likewise.
	(remote_download_command_source): Likewise.
	(remote_download_tracepoint): Likewise.
	(remote_download_trace_state_variable): Likewise.
	(remote_disable_tracepoint): Likewise.
	(remote_trace_set_readonly_regions): Likewise.
	(remote_get_tracepoint_status): Likewise.
	(remote_trace_find): Likewise.
	(remote_get_trace_state_variable_value): Likewise.
	(remote_set_disconnected_tracing): Likewise.
	(remote_set_circular_trace_buffer): Likewise.
	(remote_get_min_fast_tracepoint_insn_len): Likewise.
	(remote_use_agent): Likewise.
	(remote_add_target_side_condition): Add one parameter BUF_SIZE.
	Update callers.

2012-03-07  Pedro Alves  <palves@redhat.com>

	* NEWS: Mention QProgramSignals.
	* inferior.h (update_signals_program_target): Declare.
	* infrun.c: (update_signals_program_target): New.
	(handle_command): Update the target of the new program signals
	array changes.
	* remote.c (PACKET_QProgramSignals): New enum.
	(last_program_signals_packet): New global.
	(remote_program_signals): New.
	(remote_start_remote): Update the target with the program signals
	list.
	(remote_protocol_features): Add entry for QPassSignals.
	(remote_open_1): Free anc clear last_program_signals_packet.
	(init_remote_ops): Install remote_program_signals.
	* target.c (update_current_target): Adjust.
	(target_program_signals): New.
	* target.h (struct target_ops) <to_program_signals>: New field.
	(target_program_signals): Declare.

2012-03-07  Pedro Alves  <palves@redhat.com>

	* NEWS: Add subtitle for new z0/z1 conditional breakpoint
	extensions.

2012-03-07  Andreas Schwab  <schwab@linux-m68k.org>

	* m68klinux-nat.c (getregs_supplies): Make static.
	(getfpregs_supplies): Likewise.
	(have_ptrace_getregs): Likewise.

2012-03-06  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2read.c (dwarf2_get_die_type): Pass absolute offset
	in call to get_die_type_at_offset.

2012-03-06  Stan Shebs  <stan@codesourcery.com>

	* mi/mi-cmd-break.c: Enforce coding standards, fix comments.
	* mi/mi-cmd-disas.c: Ditto.
	* mi/mi-cmd-env.c: Ditto.
	* mi/mi-cmd-file.c: Ditto.
	* mi/mi-cmd-stack.c: Ditto.
	* mi/mi-cmd-target.c: Ditto.
	* mi/mi-cmd-var.c: Ditto.
	* mi/mi-cmds.c: Ditto.
	* mi/mi-cmds.h: Ditto.
	* mi/mi-console.c: Ditto.
	* mi/mi-getopt.c: Ditto.
	* mi/mi-getopt.h: Ditto.
	* mi/mi-interp.c: Ditto.
	* mi/mi-main.c: Ditto.
	* mi/mi-out.c: Ditto.
	* mi/mi-parse.c: Ditto.
	* mi/mi-parse.h: Ditto.
	* mi/mi-symbol-cmds.c: Ditto.

	* mi/mi-getopt.h: Move mi_opt struct up.
	* mi/mi-main.c (captured_mi_execute_command): Remove redundant
	return.
	* mi/mi-out.c (_initialize_mi_out): Remove empty initialize.

2012-03-06  Tom Tromey  <tromey@redhat.com>

	* proc-service.c (ps_pglobal_lookup): Set the current program
	space.

2012-03-06  Pedro Alves  <palves@redhat.com>

	* gregset.h [HAVE_SYS_PROCFS_H]: Include <sys/procfs.h>.

2012-03-05  Joel Brobecker  <brobecker@adacore.com>

	* MAINTAINERS: List Maciej W. Rozycki as the mips maintainer.

2012-03-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* common/linux-osdata.c (linux_common_core_of_thread): New function
	comment.
	* linux-nat.c (linux_nat_wait_1): Replace linux_nat_core_of_thread_1
	call by linux_common_core_of_thread.
	(linux_nat_core_of_thread_1): Remove.
	* linux-nat.h (linux_nat_core_of_thread_1): Remove declaration.
	* linux-thread-db.c: Include linux-osdata.h.
	(update_thread_core): Replace linux_nat_core_of_thread_1 call by
	linux_common_core_of_thread.

2012-03-05  Tom Tromey  <tromey@redhat.com>

	* value.c (value_primitive_field): Don't fetch contents for
	non-virtual bases.

2012-03-05  Tom Tromey  <tromey@redhat.com>

	* jv-valprint.c (java_value_print): Correctly compute 'obj_addr'.

2012-03-05  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* s390-nat.c: Include "gregset.h".

2012-03-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libunwind-frame.c (LIBUNWIND_SO): Change .7 to .8.
	[!LIBUNWIND_SO] (LIBUNWIND_SO_7): New #define.
	(libunwind_load): New variable so_error, use it for dlerror.  Try to
	load also LIBUNWIND_SO_7.

2012-03-05  Pedro Alves  <palves@redhat.com>

	* i387-tdep.c (i387_supply_xsave): Assert the xsave section buffer
	is not NULL, and remove resulting dead code.

2012-03-05  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_skip_prologue): Provide an upper limit on the function
	prologue to sh_analyze_prologue.
	(sh_analyze_prologue): Make better use of such an upper limit, and
	generally be more cautious about accessing memory.

2012-03-05  Tom Tromey  <tromey@redhat.com>

	* ia64-vms-tdep.c (_initialize_ia64_vms_tdep): Rename from
	_initialize_ia64_hpux_tdep.

2012-03-05  Pedro Alves  <palves@redhat.com>

	PR gdb/13766

	* i387-tdep.c (i387_supply_xsave): If we have an xsave buffer, and
	the register state is clear, supply explicit zero, instead of
	marking the register unavailable.

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Mention OpenVMS ia64 new target.

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* ia64-tdep.h: Include libunwind-frame.h and libunwind-ia64.h.
	(ia64_unw_accessors, ia64_unw_rse_accessors)
	(ia64_libunwind_descr): Declare.
	* ia64-vms-tdep.c: New file.
	* ia64-tdep.c (ia64_unw_accessors, ia64_unw_rse_accessors)
	(ia64_libunwind_descr): Make them public.
	* configure.tgt: Add ia64-*-*vms*.
	* Makefile.in (ALL_64_TARGET_OBS): Add ia64-vms-tdep.o
	(ALLDEPFILES): Add ia64-vms-tdep.c

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* target.h (target_object): Add TARGET_OBJECT_OPENVMS_UIB.
	* remote.c (PACKET_qXfer_uib): New enum value.
	(remote_protocol_features): Add entry for PACKET_qXfer_uib.
	(remote_xfer_partial): Handle TARGET_OBJECT_OPENVMS_UIB.
	(_initialize_remote): Call add_packet_config_cmd for
	xfer:uib packet.

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* osabi.c (gdb_osabi_names): Add OpenVMS.
	(generic_elf_osabi_sniffer): Likewise.
	* defs.h (gdb_osabi): Add GDB_OSABI_OPENVMS.

2012-03-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Removed unused code.
	* libunwind-frame.c (libunwind_frame_unwind)
	(libunwind_frame_base_address): Remove.
	* libunwind-frame.h (libunwind_frame_base_address): Remove declaration.

2012-03-04  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (gdb_connect_sync_socket): Add _ markup and
	remove trailing new line.
	(agent_run_command, agent_run_command): Add _ markup.
	(agent_capability_check): Likewise.

2012-03-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* breakpoint.c (set_condition_evaluation_mode): Set
	CONDITION_EVALUATION_MODE unconditionally.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (agent_look_up_symbols): Add one parameter 'arg'.
	* common/agent.h: Update declaration.
	* inf-child.c (inf_child_use_agent): New.
	(inf_child_can_use_agent): New.
	(inf_child_target): Initialize fields `to_use_agent'
	and `to_can_use_agent'.
	* agent.c (agent_new_objfile): New.
	(_initialize_agent): Add agent_new_objfile to new_objfile
	observer.

	* linux-nat.c (linux_child_static_tracepoint_markers_by_strid):
	New.
	(linux_target_install_ops): Initialize field
	`to_static_tracepoint_markers_by_strid'.
	* remote.c (free_current_marker): Move it to ...
	* tracepoint.c (free_current_marker): ... here.  New.
	(cleanup_target_stop): New.
	* tracepoint.h: Declare free_current_marker.
	* NEWS: Add one entry about `info static-tracepoint-marker'.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (agent_loaded_p): New.
	(agent_look_up_symbols): New global.
	* common/agent.h: Declare agent_loaded_p.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* common/agent.c (struct ipa_sym_addresses) <addr_capability>: New.
	(agent_capability_check, agent_capability_invalidate): New.
	(symbol_list): New array element.
	* common/agent.h (enum agent_capa): New.
	* target.c (target_pre_inferior): Call agent_capability_invalidate.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* target.h (struct target_ops) <to_use_agent>: New field.
	(struct target_ops) <to_can_use_agent>: New field.
	(target_use_agent, target_can_use_agent): New macro.
	* target.c (update_current_target): Update.
	* remote.c: New enum `PACKET_QAgent'.
	(remote_protocol_features): Add a new element.
	(remote_use_agent, remote_can_use_agent): New.
	(init_remote_ops): Initialize field `can_use_agent' with
	remote_can_use_agent.  Intiailize field `use_agent' with
	remote_use_agent.
	* common/agent.c (use_agent): New global.
	* common/agent.h: Declare it.
	* tracepoint.c (info_static_tracepoint_markers_command): Add
	comment.
	* Makefile.in (SFILES): Add common/agent.c and agent.c.
	(COMMON_OBS): Add common/agent.o and agent.o
	(common-agent.o): New rule.
	* agent.c: New.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* common/agent.c: New.
	* common/agent.h: New.
	* configure.ac: Add `sys/socket.h' and `sys/un.h' to
	AC_CHECK_HEADERS.
	* configure, configh.in: Regenerated.

2012-03-02  Kevin Buettner  <kevinb@redhat.com>

	* sh-tdep.c (sh_frame_cache): Don't fetch the FPSCR register
	unless it exists for this architecture.

2012-03-02  Joel Brobecker  <brobecker@adacore.com>

	* language.h (struct language_defn): New "method" la_read_var_value.
	* findvar.c: #include "language.h".
	(default_read_var_value): Renames read_var_value.  Rewrite
	function description.
	(read_var_value): New function.
	* value.h (default_read_var_value): Add prototype.
	* ada-lang.c (ada_read_renaming_var_value, ada_read_var_value):
	New functions.
	(ada_language_defn): Add entry for la_read_var_value.
	* c-lang.c, d-lang.c, f-lang.c, jv-lang.c, language.c,
	* m2-lang.c, objc-lang.c, opencl-lang.c, p-lang.c: Update
	language_defn structures to add entry for new la_read_var_value
	field.

2012-03-02  Tom Tromey  <tromey@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	PR breakpoints/13776:
	* breakpoint.c (breakpoint_init_inferior): Delete step-resume
	breakpoints.
	(delete_longjmp_breakpoint_at_next_stop): New.
	* breakpoint.h (delete_longjmp_breakpoint_at_next_stop): Declare.
	* target.c (generic_mourn_inferior): Call mark_breakpoints_out
	before deleting the inferior.  Add comments.
	* thread.c (clear_thread_inferior_resources): Don't delete lonjmp
	breakpoints immediately, but only on next stop.  Move that code
	next to where we mark other breakpoints for deletion.

2012-03-02  Joel Brobecker  <brobecker@adacore.com>

	* mips-linux-nat.c (mips_linux_read_description): Add missing i18n
	marker.
	* mips-tdep.c (mips_linux_reg_names): Improve comment to avoid ARI
	violation.

2012-03-02  Pedro Alves  <palves@redhat.com>

	* linux-thread-db.c (attach_thread): Avoid in_thread_list call.

2012-03-02  Ulrich Weigand  <uweigand@de.ibm.com>

	Fix -Wmissing-prototypes build.
	* ppc-linux-nat.c (ppc_linux_get_hwcap): Make static.
	* remote-sim.c (gdbsim_has_all_memory): Likewise.
	(gdbsim_has_memory): Likewise.

2012-03-02  Yao Qi  <yao@codesourcery.com>

	Fix -Wmissing-prototypes build.
	* charset.c (phony_iconv_open): Make static.
	(phony_iconv_close, phony_iconv): Likewise.
	* i386-linux-nat.c (_initialize_i386_linux_nat): New prototype.
	* i386-windows-nat.c (_initialize_i386_windows_nat): New
	prototype.
	* mingw-hdep.c (_initialize_mingw_hdep): New prototype.
	* ser-mingw.c (create_select_thread): Make static.
	* windows-termcap.c (tgetent): New prototype.
	(tgetnum, tgetflag, tgetstr, tputs, tgoto): Likewise.

2012-03-02  Zhang Yuanhui  <asmwarrior@gmail.com>

	Fix -Wmissing-prototypes build.
	* windows-nat.c (dll_symbol_command, ctrl_c_handler): Make them static.
	(_initialize_windows_nat, _initialize_check_for_gdb_ini)
	(_initialize_loadable): New prototypes.

2012-03-02  Doug Evans  <dje@google.com>

	* dwarf2read.c (load_full_comp_unit): Remove unnecessary reading of
	abbrev table, read_comp_unit will do it.

2012-03-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* alpha-tdep.c (alpha_deal_with_atomic_sequence): Make it static.
	* amd64-darwin-tdep.c (_initialize_amd64_darwin_tdep): New prototype.
	* amd64-windows-tdep.c (_initialize_amd64_windows_tdep): Likewise.
	* arm-symbian-tdep.c (arm_symbian_skip_trampoline_code): Make it static.
	(_initialize_arm_symbian_tdep): New prototype.
	* arm-wince-tdep.c (arm_wince_skip_main_prologue): Make it static.
	* i386-darwin-tdep.c (_initialize_i386_darwin_tdep): New prototype.
	* i386-linux-tdep.c (i386_linux_displaced_step_copy_insn): Make it
	static.
	* lm32-tdep.c (_initialize_lm32_tdep): New prototype.
	* microblaze-linux-tdep.c (_initialize_microblaze_linux_tdep): New
	prototype.
	* microblaze-tdep.c (microblaze_debug, microblaze_fetch_instruction)
	(microblaze_skip_prologue, microblaze_frame_cache): Make them static.
	* mips-linux-tdep.c (mips_linux_regset_from_core_section): Make it
	static.
	* moxie-tdep.c (moxie_process_record): Likewise.
	* remote-mips.c (mips_can_use_watchpoint, mips_insert_watchpoint)
	(mips_remove_watchpoint, mips_stopped_by_watchpoint): Make them static.
	* rl78-tdep.c (rl78_breakpoint_from_pc): Make it static.
	(_initialize_rl78_tdep): New prototype.
	* rx-tdep.c (rx_breakpoint_from_pc): Make it static.
	(_initialize_rx_tdep): New prototype.
	* solib-darwin.c (darwin_in_dynsym_resolve_code): Make it static.
	(_initialize_darwin_solib): New prototype.
	* solib-spu.c: Include solib-spu.h.
	(_initialize_spu_solib): New prototype.
	* spu-multiarch.c (_initialize_spu_multiarch): New prototype.
	* tic6x-tdep.c (tic6x_analyze_prologue, tic6x_skip_prologue)
	(tic6x_breakpoint_from_pc, tic6x_frame_unwind_cache)
	(tic6x_software_single_step): Make it static.
	(_initialize_tic6x_tdep): New prototype.

2012-03-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* cris-tdep.c (cris_can_use_hardware_watchpoint)
	(cris_region_ok_for_watchpoint, cris_stopped_data_address): Remove.

2012-03-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* frv-tdep.c (frv_check_watch_resources, frv_stopped_data_address)
	(frv_have_stopped_data_address): Remove.

2012-03-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix -Wmissing-prototypes build.
	* Makefile.in (HFILES_NO_SRCDIR): Add sh64-tdep.h.
	* sh-tdep.c: Include sh64-tdep.h.
	* sh-tdep.h (sh64_gdbarch_init, sh64_show_regs): Remove declarations.
	* sh64-tdep.c: Include sh64-tdep.h.
	* sh64-tdep.h: New file.

2012-03-01  Maciej W. Rozycki <macro@codesourcery.com>

	* mips-tdep.c (mips32_scan_prologue): Correct indentation.

2012-03-01  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips_gdbarch_init): Only set pc_regnum and
	sp_regnum once the gdbarch_init_osabi hook has been called.

2012-03-01  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips32_bc1_pc): New function.
	(mips32_next_pc): Handle BC1ANY2F, BC1ANY2T, BC1ANY4F, BC1ANY4T,
	BPOSGE32 and BPOSGE64 instructions.
	(deal_with_atomic_sequence): Likewise.
	(mips32_instruction_has_delay_slot): Likewise.

2012-03-01  Maciej W. Rozycki  <macro@mips.com>
	    Chris Dearman  <chris@mips.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* features/mips-dsp.xml: New file.
	* features/mips64-dsp.xml: New file.
	* features/mips-dsp-linux.xml: New file.
	* features/mips64-dsp-linux.xml: New file.
	* features/Makefile (WHICH): Add mips-dsp-linux and
	mips64-dsp-linux.
	(mips-dsp-expedite, mips64-dsp-expedite): New variables.
	* features/mips-dsp-linux.c: New file.
	* features/mips64-dsp-linux.c: New file.
	* regformats/mips-dsp-linux.dat: New file.
	* regformats/mips64-dsp-linux.dat: New file.
	* mips-linux-nat.c (mips_linux_register_addr): Handle DSP
	registers.
	(mips64_linux_register_addr): Likewise.
	(mips64_linux_regsets_fetch_registers): Likewise.
	(mips64_linux_regsets_store_registers): Likewise.
	(mips64_linux_fetch_registers): Update call to
	mips64_linux_regsets_fetch_registers.
	(mips64_linux_store_registers): Update call to
	mips64_linux_regsets_store_registers.
	(mips_linux_read_description): Probe for DSP registers.
	(_initialize_mips_linux_nat): Call initialize_tdesc_mips_dsp_linux
	and initialize_tdesc_mips64_dsp_linux.
	* mips-linux-tdep.c (supply_gregset, mips64_supply_gregset):
	Remove padding of no longer used embedded register slots.
	* mips-linux-tdep.h (DSP_BASE, DSP_CONTROL): New macros.
	(MIPS_RESTART_REGNUM): Redefine enum value.
	* mips-tdep.c (mips_generic_reg_names): Remove trailing null
	strings.
	(mips_tx39_reg_names): Likewise.
	(mips_linux_reg_names): New array of register names for Linux
	targets.
	(mips_register_name): Check for a null pointer in
	mips_processor_reg_names and return an empty string.
	(mips_register_type): Exclude embedded registers for the IRIX
	and Linux ABIs.
	(mips_pseudo_register_type): Likewise.  Use dynamic numbers to
	refer to FP registers, LO, HI, BadVAddr, Cause and PC.  Handle
	DSP registers.
	(mips_stab_reg_to_regnum): Handle DSP accumulators.
	(mips_dwarf_dwarf2_ecoff_reg_to_regnum): Likewise.
	(mips_gdbarch_init): Likewise.  Initialize internal register
	indices for the Linux ABI.  Use dynamic numbers to refer to
	registers, as applicable, while parsing the target description.
	* mips-tdep.h (struct mips_regnum): Add dspacc/dspctl offsets.

2012-03-01  Joel Brobecker  <brobecker@adacore.com>

	* frame.h (read_frame_register_unsigned): Fix typo in function
	description.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* jit-reader.in [!__cplusplus]
	(GDB_DECLARE_GPL_COMPATIBLE_READER): Add missing backslash.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* configure.ac (build_warnings): Add -Wmissing-prototypes.
	* configure: Regenerate.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* amd64-linux-tdep.c (amd64_linux_record_signal): Make static.
	* breakpoint.c (create_exception_master_breakpoint, trace_command)
	(ftrace_command, strace_command): Make static.
	* d-lang.c (_initialize_d_language): Declare.
	* dwarf2expr.c (_initialize_dwarf2expr): Declare.
	* dwarf2loc.c (_initialize_dwarf2loc):
	* dwarf2read.c (process_psymtab_comp_unit): Make static.
	* exec.c (exec_get_section_table): Make static.
	* i386-linux-tdep.c (i386_linux_record_signal): Make static.
	* infcmd.c (ensure_valid_thread, ensure_not_tfind_mode): Make static.
	* inferior.c (remove_inferior_command, add_inferior_command)
	(clone_inferior_command): Make static.
	* linux-nat.c (linux_nat_thread_address_space)
	(linux_nat_core_of_thread): Make static.
	* linux-tdep.c (_initialize_linux_tdep): Declare.
	* objc-lang.c (_initialize_objc_lang): Declare.
	* opencl-lang.c (builtin_opencl_type, opencl_language_arch_info):
	Make static.
	(_initialize_opencl_language): Declare.
	* record.c (_initialize_record): Declare.
	* remote.c (demand_private_info, remote_get_tib_address)
	(remote_supports_cond_tracepoints)
	(remote_supports_fast_tracepoints, remote_get_tracepoint_status):
	Make static.
	* skip.c (_initialize_step_skip): Declare.
	* symtab.c (skip_prologue_using_lineinfo): Make static.
	* tracepoint.c (delete_trace_state_variable)
	(trace_variable_command, delete_trace_variable_command)
	(get_uploaded_tsv, find_matching_tracepoint_location)
	(find_matching_tsv, create_tsv_from_upload, get_traceframe_info):
	Make static.
	* value.c (pack_unsigned_long): Make static.
	* varobj.c (varobj_ensure_python_env): Make static.
	* windows-tdep.c (_initialize_windows_tdep): Declare.
	* xml-syscall.c (make_cleanup_free_syscalls_info): Make static.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* linux-tdep.c (linux_has_shared_address_space): Make static.  Add
	gdbarch parameter.
	(linux_init_abi): Install it as has_shared_address_space gdbarch
	callback.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* observer.c (observer_test_first_notification_function)
	(observer_test_second_notification_function)
	(observer_test_third_notification_function): Add declarations.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* common/signals.c (default_target_signal_to_host)
	(default_target_signal_from_host): Move ...
	* arch-utils.c: ... here.
	* arch-utils.h (default_target_signal_to_host)
	(default_target_signal_from_host): Declare.

	* common/signals.c (target_signal_from_command): Move ...
	* infrun.c: ... here.
	* inferior.h (target_signal_from_command): Declare.
	* target.h (target_signal_from_command)
	(default_target_signal_from_host, default_target_signal_to_host):
	Delete declarations.

	* common/signals.c (_initialize_signals): Delete.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* jit-reader.in (plugin_is_GPL_compatible): Add declarations for
	both __cplusplus and !__cplusplus.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* psymtab.c (find_and_open_source): Delete declaration.
	* source.c (find_and_open_source): Move comment ...
	* source.h (find_and_open_source): ... to this new declaration.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* inline-frame.c: Include inline-frame.h.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* tui/tui-data.c (set_gen_win_origin): Delete.
	* tui/tui-data.h (tui_set_gen_win_origin): Delete declaration.
	* tui/tui-regs.c (tui_last_reg_element_no_in_line): Delete.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* remote.c (encode_actions): Delete declaration.
	* tracepoint.c (encode_actions): Make extern.
	* tracepoint.h (encode_actions): Declare.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* python/py-breakpoint.c: Include python.h.
	* python/py-continueevent.c (create_continue_event_object): Make
	static.
	* python/py-lazy-string.c (stpy_get_type): Make static.
	* python/py-newobjfileevent.c (create_new_objfile_event_object):
	Make static.
	* python/py-utils.c (unicode_to_target_python_string): Make
	static.
	* python/py-value.c: Include python.h.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* inferior.c (delete_threads_of_inferior): Delete.

2012-03-01  Pedro Alves  <palves@redhat.com>

	Import fallback definitions from glibc.

	* gdb_proc_service.h [!HAVE_PROC_SERVICE_H] (struct
	ps_prochandle): Forward declare.
	(ps_err_e): Use glibc's comments.
	[!HAVE_PROC_SERVICE_H] (ps_pdread, ps_pdwrite, ps_ptread)
	(ps_ptwrite, ps_lgetregs, ps_lsetregs, ps_lgetfpregs)
	(ps_lsetfpregs, ps_getpid, ps_get_thread_area, ps_pglobal_lookup)
	(ps_pstop, ps_pcontinue, ps_lstop, ps_lcontinue, ps_lgetxregsize)
	(ps_lgetxregs, ps_lsetxregs, ps_plog): Declare.
	(struct ps_prochandle): Adjust comment.

2012-03-01  Pedro Alves  <palves@redhat.com>

	* ada-lang.c (ada_modulus_from_name): Delete.
	* ada-lex.l (lexer_init): Make static.

2012-03-01  Pedro Alves  <palves@redhat.com>

	PR gdb/13767

	* frame.c (read_frame_register_unsigned): New.
	* frame.h (read_frame_register_unsigned): Declare.
	* i387-tdep.c (print_i387_status_word): New parameter `status_p'.
	Handle it.
	(print_i387_control_word): New parameter `control_p'.  Handle it.
	(i387_print_float_info): Handle unavailable float registers.

2012-03-01  Keith Seitz  <keiths@redhat.com>

	* linespec.c (decode_line_2): Sort the list of methods
	alphabetically before presenting the user with a selection
	menu.

2012-03-01  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_cu): Remove unused members has_form_ref_addr,
	has_namespace_info.
	(dwarf2_read_abbrevs): Remove corresponding initialization.

2012-03-01  Scott J. Goldman <scottjg@vmware.com>

	* NEWS: Mention new python command class gdb.COMMAND_USER.
	* cli/cli-cmds.c (show_user): Print error when used on a python
	command.
	(init_cli_cmds): Update documentation strings for "show user" and
	"set/show max-user-call-depth" to clarify that it does not apply to
	python commands.
	* python/py-cmd.c (cmdpy_init): Treat class_user as a valid class in
	error check.
	(gdbpy_initialize_commands): Add COMMAND_USER as a constant in
	gdb python api.
	* top.c (execute_command): Only execute a user-defined command as a
	legacy macro if c->user_commands is set.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* valprint.h (struct generic_val_print_decorations): New.
	(generic_val_print): Declare.
	* valprint.c (generic_val_print): New function.
	* p-valprint.c (p_decorations): New global.
	(pascal_val_print) <TYPE_CODE_REF, TYPE_CODE_ENUM,
	TYPE_CODE_FLAGS, TYPE_CODE_FUNC, TYPE_CODE_RANGE, TYPE_CODE_INT,
	TYPE_CODE_FLT, TYPE_CODE_VOID, TYPE_CODE_ERROR, TYPE_CODE_UNDEF,
	TYPE_CODE_BOOL, TYPE_CODE_CHAR>: Call generic_val_print.
	* m2-valprint.c (m2_decorations): New global.
	(m2_val_print) <TYPE_CODE_REF, TYPE_CODE_ENUM, TYPE_CODE_FUNC,
	TYPE_CODE_BOOL, TYPE_CODE_RANGE, TYPE_CODE_INT, TYPE_CODE_CHAR,
	TYPE_CODE_FLT, TYPE_CODE_METHOD, TYPE_CODE_VOID, TYPE_CODE_UNDEF,
	TYPE_CODE_ERROR>: Call generic_val_print.
	* f-valprint.c (f_decorations): New global.
	(f_val_print): Use print_function_pointer_address.
	<TYPE_CODE_REF, TYPE_CODE_FUNC, TYPE_CODE_CHAR, TYPE_CODE_FLAGS,
	TYPE_CODE_FLT, TYPE_CODE_VOID, TYPE_CODE_ENUM, TYPE_CODE_RANGE,
	TYPE_CODE_BOOL, TYPE_CODE_COMPLEX, TYPE_CODE_UNDEF>: Call
	generic_val_print.
	* c-valprint.c (c_decorations): New global.
	(c_val_print) <TYPE_CODE_MEMBERPTR, TYPE_CODE_REF, TYPE_CODE_ENUM,
	TYPE_CODE_FLAGS, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_CODE_BOOL,
	TYPE_CODE_RANGE, TYPE_CODE_CHAR, TYPE_CODE_FLT,
	TYPE_CODE_DECFLOAT, TYPE_CODE_VOID, TYPE_CODE_ERROR,
	TYPE_CODE_UNDEF, TYPE_CODE_COMPLEX>: Call generic_val_print.
	* ada-valprint.c (ada_val_print_1) <TYPE_CODE_FLAGS>: Remove
	case.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* valprint.c (val_print): Update.
	* p-valprint (pascal_val_print): Return void.
	* p-lang.h (pascal_val_print): Return void.
	* m2-valprint.c (m2_val_print): Return void.
	* m2-lang.h (m2_val_print): Return void.
	* language.h (struct language_defn) <la_val_print>: Return void.
	* language.c (unk_lang_val_print): Return void.
	* jv-valprint.c (java_val_print): Return void.
	* jv-lang.h (java_val_print): Return void.
	* f-valprint.c (f_val_print): Return void.
	* f-lang.h (f_val_print): Return void.
	* d-valprint.c (d_val_print): Return void.
	(dynamic_array_type): Update.
	* d-lang.h (d_val_print): Return void.
	* c-valprint.c (c_val_print): Return void.
	* c-lang.h (c_val_print): Return void.
	* ada-valprint.c (ada_vada_val_print, ada_val_print_1): Return
	void.
	* ada-lang.h (ada_val_print): Return void.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* value.h (val_print): Return void.
	* valprint.c (val_print): Return void.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* value.h (common_val_print): Return void.
	* valprint.c (common_val_print): Return void.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* value.h (value_print): Return void.
	* valprint.c (value_print): Return void.
	* p-valprint.c (pascal_value_print): Return void.
	* p-lang.h (pascal_value_print): Return void.
	* language.h (struct language_defn) <la_value_print>: Return
	void.
	* language.c (unk_lang_value_print): Return void.
	* jv-valprint.c (java_value_print): Return void.
	* jv-lang.h (java_value_print): Return void.
	* f-valprint.c (c_value_print): Don't declare.
	Include c-lang.h.
	* c-valprint.c (c_value_print): Return void.
	* c-lang.h (c_value_print): Return void.
	* ada-valprint.c (ada_value_print): Return void.
	* ada-lang.h (ada_value_print): Return void.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* value.c (value_primitive_field): Handle virtual base classes.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* gdbtypes.h (struct vbase): Remove.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* c-valprint.c (print_function_pointer_address): Move...
	* valprint.c: ... here.  Make non-static.
	* m2-valprint.c (print_function_pointer_address): Remove.
	* valprint.h (print_function_pointer_address): Declare.

2012-03-01  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Document the fact that one can provide a condition when
	creating an Ada exception catchpoint.

2012-03-01  Tom Tromey  <tromey@redhat.com>

	* valprint.c (val_print_type_code_flags): Fix placement of
	trailing brace.

2012-03-01  Joel Brobecker  <brobecker@adacore.com>

	* copyright.py (MULTILINE_COMMENT_PREFIXES): Delete.
	(update_files): Do not set MULTILINE_COMMENT_PREFIXES
	environment variable before calling update-copyright.

2012-03-01  Joel Brobecker  <brobecker@adacore.com>

	* gnulib/extra/update-copyright: Update to the latest from
	gnulib's git repository.
	* copyright.py: Set UPDATE_COPYRIGHT_USE_INTERVALS environment
	variable to 2 instead of 1.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* varobj.c (c_value_of_variable): Remove dead code.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lex.p (processId): Do not modify already encoded IDs.
	Update function documentation.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (ada_find_renaming_symbol): Replace parameter
	"name" with "struct symbol *name_sym".
	* ada-exp.y (write_var_or_type): Update call to
	ada_find_renaming_symbol.
	"name" with "struct symbol *name_sym". Adjust Implementation
	accordingly.  Adjust the function documentation.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (ada_find_any_symbol, ada_find_any_type): Delete.
	* ada-lang.c (ada_find_any_type): Add advance declaration.
	Make static.  Replace ada_find_any_symbol by
	ada_find_any_type_symbol.
	(ada_find_any_type_symbol): Renames ada_find_any_symbol.
	Improve function description.  Make static.
	(ada_find_renaming_symbol, find_old_style_renaming_symbol):
	Replace ada_find_any_symbol by ada_find_any_type_symbol.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (struct tag_args): Delete.
	(ada_get_tsd_type): Function body moved up in source file.
	(ada_tag_name_1, ada_tag_name_2): Delete.
	(ada_get_tsd_from_tag): New function.
	(ada_tag_name_from_tsd): New function.
	(ada_tag_name): Use a TRY_CATCH block instead of catch_errors
	to determine the tag name.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (ada_get_decoded_value, ada_get_decoded_type): Add
	declaration.
	* ada-lang.c (ada_get_decoded_value, ada_get_decoded_type): New
	function.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_is_ignored_field): Rewrite wrong comment.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_lookup_symbol_list): Only cache the result of
	full searches.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (constrained_packed_array_type): If there is a
	parallel XA type, use it to determine the array index type.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-valprint.c (ada_val_print_1): If our value is a reference
	to an array descriptor, dereference it before converting it
	to a simple array.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_to_fixed_value): Call unwrap_value before
	creating fixed value.
	(ada_value_ind, ada_coerce_ref, assign_component)
	(ada_evaluate_subexp): Remove call to unwrap_value before
	call to ada_to_fixed_value.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (to_fixed_array_type): Set result's type name.

2012-02-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (catch_ada_exception_command_split): Add new
	argument cond_string.  Add support for condition at end of
	"catch exception" commands.
	(ada_decode_exception_location): Add new argument cond_string.
	Update call to catch_ada_exception_command_split.
	(create_ada_exception_catchpoint): Add new argument cond_string.
	Set the breakpoint condition if needed.
	(catch_ada_exception_command): Update call to
	ada_decode_exception_location.
	(ada_decode_assert_location): Add function documentation.
	Add support for condition at end of "catch assert" command.
	(catch_assert_command): Update calls to ada_decode_assert_location
	and create_ada_exception_catchpoint.

2012-02-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix disp-step-syscall.exp: fork: single step over fork.
	* i386-linux-tdep.c (-i386_linux_get_syscall_number): Rename to ...
	(i386_linux_get_syscall_number_from_regcache): ... here, new function
	comment, change parameters gdbarch and ptid to regcache.  Remove
	parameter regcache, initialize gdbarch from regcache here.
	(i386_linux_get_syscall_number, i386_linux_displaced_step_copy_insn):
	New functions.
	(i386_linux_init_abi): Install i386_linux_displaced_step_copy_insn
	instead.
	* i386-tdep.c (i386_syscall_p): Check also for 'sysenter' and
	'syscall'.  Make the 'int' check more strict.

2012-02-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix reverse mode for syscall on AMD CPUs in 32-bit mode.
	* i386-linux-tdep.c (i386_linux_intx80_sysenter_record): Rename to ...
	(i386_linux_intx80_sysenter_syscall_record): ... here.
	(i386_linux_init_abi): Initialize also I386_SYSCALL_RECORD.
	Use the renamed function name.

2012-02-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* arm-linux-tdep.c (arm_linux_copy_svc): Reset stale FRAME.
	* breakpoint.c (until_break_command): Likewise.
	* elfread.c (elf_gnu_ifunc_resolver_stop): Likewise.
	* infcall.c (call_function_by_hand): Likewise.
	* infcmd.c (finish_forward): Likewise.
	* infrun.c (insert_exception_resume_breakpoint): Likewise.

2012-02-28  Tristan Gingold  <gingold@adacore.com>

	* ada-tasks.c (ada_tasks_inferior_data_sniffer): Rework code to
	avoid variable assignments inside condition.

2012-02-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix static analysis issue found by cppcheck.
	* microblaze-tdep.c (microblaze_extract_return_value): Fix
	uninitialized BUF for size 2.

2012-02-27  Chris Dearman  <chris@mips.com>
	    Nathan Froyd  <froydnj@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-tdep.c (mips32_instruction_has_delay_slot): New function.
	(mips16_instruction_has_delay_slot): Likewise.
	(mips_segment_boundary): Likewise.
	(mips_adjust_breakpoint_address): Likewise.
	(mips_gdbarch_init): Use mips_adjust_breakpoint_address.

2012-02-27  Maciej W. Rozycki  <macro@mips.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>

	* infrun.c (handle_inferior_event): Don't proceed through
	shared library trampolines if stepping at the machine
	instruction level.

2012-02-27  Maciej W. Rozycki  <macro@codesourcery.com>

	* mips-linux-tdep.c (mips_linux_init_abi): Set num_pseudo_regs
	too.

2012-02-27  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_make_stub_cache, sh_stub_this_id)
	(sh_stub_unwind_sniffer): New functions.
	(sh_stub_unwind): New variable.
	(sh_gdbarch_init): Wire everything.

2012-02-27  Pedro Alves  <palves@redhat.com>

	* linux-nat.c (pid_is_stopped): Delete, moved to common/.
	(linux_nat_post_attach_wait): Adjust to use
	linux_proc_pid_is_stopped.
	* common/linux-procfs.h (linux_proc_pid_is_stopped): Declare.
	* common/linux-procfs.c (linux_proc_pid_is_stopped): New function,
	based on pid_is_stopped from both linux-nat.c and
	gdbserver/linux-low.c, and renamed.

2012-02-24  Maciej W. Rozycki  <macro@codesourcery.com>

	* remote.c (remote_watchpoint_addr_within_range): New function.
	(init_remote_ops): Use it.

2012-02-24  Maciej W. Rozycki  <macro@codesourcery.com>

	* target.h (target_watchpoint_addr_within_range): Document macro.

2012-02-24  Pedro Alves  <palves@redhat.com>

	* stack.c (set_last_displayed_sal): Issue internal_error instead
	of warning, and issue it after clearing the last displayed sal.

2012-02-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	* breakpoint.c (until_break_command): Install breakpoints after
	all frame manipulations.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* remote.c (remote_supports_cond_breakpoints): New forward
	declaration.
	(remote_add_target_side_condition): New function.
	(remote_insert_breakpoint): Add target-side breakpoint
	conditional if supported.
	(remote_insert_hw_breakpoint): Likewise.
	(init_remote_ops): Set to_supports_evaluation_of_breakpoint_conditions
	hook.

	* target.c (update_current_target): Inherit
	to_supports_evaluation_of_breakpoint_conditions.
	Default to_supports_evaluation_of_breakpoint_conditions to return_zero.

	* target.h (struct target_ops)
	<to_supports_evaluation_of_breakpoint_conditions>: New field.
	(target_supports_evaluation_of_breakpoint_conditions): New #define.

	* breakpoint.c (get_first_locp_gte_addr): New forward declaration.
	(condition_evaluation_both, condition_evaluation_auto,
	condition_evaluation_host, condition_evaluation_target,
	condition_evaluation_enums, condition_evaluation_mode_1,
	condition_evaluation_mode): New	static globals.
	(translate_condition_evaluation_mode): New function.
	(breakpoint_condition_evaluation_mode): New function.
	(gdb_evaluates_breakpoint_condition_p): New function.
	(ALL_BP_LOCATIONS_AT_ADDR): New helper macro.
	(mark_breakpoint_modified): New function.
	(mark_breakpoint_location_modified): New function.
	(set_condition_evaluation_mode): New function.
	(show_condition_evaluation_mode): New function.
	(bp_location_compare_addrs): New function.
	(get_first_location_gte_addr): New helper function.
	(set_breakpoint_condition): Free condition bytecode if locations
	has become unconditional.  Call mark_breakpoint_modified (...).
	(condition_command): Call update_global_location_list (1) for
	breakpoints.
	(breakpoint_xfer_memory): Use is_breakpoint (...).
	(is_breakpoint): New function.
	(parse_cond_to_aexpr): New function.
	(build_target_condition_list): New function.
	(insert_bp_location): Handle target-side conditional
	breakpoints and call build_target_condition_list (...).
	(update_inserted_breakpoint_locations): New function.
	(insert_breakpoint_locations): Handle target-side conditional
	breakpoints.
	(bpstat_check_breakpoint_conditions): Add comment.
	(bp_condition_evaluator): New function.
	(bp_location_condition_evaluator): New function.
	(print_breakpoint_location): Print information on where the condition
	will be evaluated.
	(print_one_breakpoint_location): Likewise.
	(init_bp_location): Call mark_breakpoint_location_modified (...) for
	breakpoint location.
	(force_breakpoint_reinsertion): New functions.
	(update_global_location_list): Handle target-side breakpoint
	conditions.
	Reinsert locations that are already inserted if conditions have
	changed.
	(bp_location_dtor): Free agent expression bytecode.
	(disable_breakpoint): Call mark_breakpoint_modified (...).
	Call update_global_location_list (...) with parameter 1 for breakpoints.
	(disable_command): Call mark_breakpoint_location_modified (...).
	Call update_global_location_list (...) with parameter 1 for breakpoints.
	(enable_breakpoint_disp): Call mark_breakpoint_modified (...).
	(enable_command): mark_breakpoint_location_modified (...).
	(_initialize_breakpoint): Update documentation and add
	condition-evaluation breakpoint subcommand.

	* breakpoint.h: Include ax.h.
	(condition_list): New data structure.
	(condition_status): New enum.
	(bp_target_info) <cond_list>: New field.
	(bp_location) <condition_changed, cond_bytecode>: New fields.
	(is_breakpoint): New prototype.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* remote.c (remote_state) <cond_breakpoints>: New field.
	(PACKET_ConditionalBreakpoints): New enum.
	(remote_cond_breakpoint_feature): New function.
	(remote_protocol_features): Add new ConditionalBreakpoints entry.
	(remote_supports_cond_breakpoints): New function.
	(_initialize_remote): Add new packet configuration for
	target-side conditional breakpoints.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* NEWS: Mention target-side conditional breakpoint support,
	new condition-evaluation breakpoint subcommand and remote
	packet extensions.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* breakpoint.c (bp_location_compare): Sort by pspace before sorting by
	number.

2012-02-24  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_skip_prologue): Use skip_prologue_using_sal.
	(after_prologue): Remove.

2012-02-23  Tom Tromey  <tromey@redhat.com>

	* jv-valprint.c (java_val_print): Remove dead code.

2012-02-23  Tristan Gingold  <gingold@adacore.com>

	* ada-tasks.c (struct ada_tasks_inferior_data): Add
	known_tasks_element and known_tasks_length fields.
	(read_known_tasks_array): Change argument type.  Use pointer type
	and number of elements from DATA.  Adjust.
	(read_known_tasks_list): Likewise.
	(get_known_tasks_addr): Remove.
	(ada_set_current_inferior_known_tasks_addr): Renamed to ...
	(ada_tasks_inferior_data_sniffer): ... this.  Use symtab for element
	type and array length.	Merge former get_known_tasks_addr code.

2012-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR backtrace/13716
	* infcmd.c (finish_forward): New variable frame_id, initialize it, use
	it after set_momentary_breakpoint.

2012-02-22  Sterling Augustine  <saugustine@google.com>

	PR 13689:
	* breakpoint.c (watchpoint_exp_is_constant): Add UNOP_CAST to switch.

2012-02-22  Gary Benson  <gbenson@redhat.com>

	* dwarf2read.c (dwarf2_read_index): Correct misspelling.
	(find_slot_in_mapped_hash): Likewise.

2012-02-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR build/13638
	* configure.ac (MAKEINFO): Replace AC_CHECK_PROG by AC_ARG_VAR.
	(MAKEINFOFLAGS): Replace static string by AC_ARG_VAR.
	* configure: Regenerate.

2012-02-21  Tristan Gingold  <gingold@adacore.com>
	    Pedro Alves  <palves@redhat.com>

	* ia64-tdep.c: Do not include libunwind-ia64.h.
	* libunwind-frame.h: Remove #ifdef HAVE_LIBUNWIND_H guard.
	Include libunwind-ia64.h instead of libunwind.h.
	* configure.ac (--with-libunwind, $enable_libunwind): Don't check
	for libunwind.h existence.
	* configure, config.in: Regenerate.

2012-02-21  Anton Gorenkov  <xgsa@yandex.ru>

	* c-valprint.c (c_value_print): Use value_rtti_indirect_type
	instead of value_rtti_target_type.
	* eval.c (evaluate_subexp_standard): Use value_rtti_indirect_type
	instead of value_rtti_target_type.
	* typeprint.c (whatis_exp): Use value_rtti_indirect_type instead of
	value_rtti_target_type.
	* valops.c (value_ind): Extract function readjust_indirect_value_type.
	(value_rtti_target_type): Rename to ...
	(value_rtti_indirect_type): ... here and make it indirect.  Update
	function comment.
	* value.c (readjust_indirect_value_type): New function.
	(coerce_ref): Support for enclosing type setting for references
	with readjust_indirect_value_type.
	* value.h (readjust_value_type): New declaration.
	(value_rtti_target_type): Rename to ...
	(value_rtti_indirect_type): ... here.

2012-02-21  Anton Gorenkov  <xgsa@yandex.ru>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2012-02-20  Doug Evans  <dje@google.com>

	* objfiles.c (add_to_objfile_sections): Remove outdated comments.
	Rename objfile_p_char parameter to objfilep.
	(build_objfile_section_table): Result is now void.  All callers
	updated.
	* objfiles.h (struct objfile): Tweak comments, whitespace.
	(build_objfile_section_table): Update.

	* elfread.c (elf_symfile_segments): Fix warning text.

2012-02-20  Tom Tromey  <tromey@redhat.com>

	PR gdb/13498:
	* dwarf2read.c (dw2_expand_symtabs_matching): Only visit a
	particular set of file names once.
	(dw2_map_symbol_filenames): Likewise.

2012-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* main.c (write_files): Remove the declaration.
	(external_editor_command): Move the declaration ...
	[GDBTK] (external_editor_command): ... here.  Fix the comment.

2012-02-20  Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dw2_map_symtabs_matching_filename): Remove
	extraneous block.

2012-02-20  Tristan Gingold  <gingold@adacore.com>

	* darwin-nat.h (enum darwin_msg_state): Add comments.

2012-02-20  Tristan Gingold  <gingold@adacore.com>

	* amd64-darwin-tdep.c (x86_darwin_init_abi_64): Fix jb_pc_offset
	value.

2012-20-18  Joel Brobecker  <brobecker@adacore.com>

	* breakpoint.c (watchpoint_exp_is_const): Add missing empty line
	between function description and implementation.

2012-02-17  Tom Tromey  <tromey@redhat.com>

	PR python/12070:
	* python/py-event.c (event_object_getset): New global.
	(event_object_type): Reference it.
	* python/py-type.c (field_object_getset): New global.
	(field_object_type): Reference it.
	* python/python-internal.h (gdb_py_generic_dict): Declare.
	* python/py-utils.c (gdb_py_generic_dict): New function.

2012-02-17  Tristan Gingold  <gingold@adacore.com>

	* solib-darwin.c (darwin_current_sos): Check magic and filetype

2012-02-17  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_is_renesas_calling_convention): Fix handling of
	TYPE_CALLING_CONVENTION annotation.

2012-02-16  Kevin Buettner  <kevinb@redhat.com>

	* MAINTAINERS: Add rx to target ISA section.
	* Makefile.in (ALL_TARGET_OBS): Add rx-tdep.o.
	(ALLDEPFILES): Add rx-tdep.c.

2012-02-16  Tom Tromey  <tromey@redhat.com>

	* symfile.c (symbol_file_add_main_1): Use inferior's
	symfile_flags.
	* solib.c (solib_read_symbols): Use inferior's symfile_flags.
	* linux-nat.c (linux_child_follow_fork): Set symfile_flags on
	inferior.
	* infrun.c (handle_vfork_child_exec_or_exit): Set symfile_flags on
	inferior.
	(follow_exec): Use inferior's symfile_flags.
	* inferior.h (struct inferior) <symfile_flags>: New field.

2012-02-16  Mike Frysinger  <vapier@gentoo.org>

	PR gdb/9734:
	* remote-sim.c (gdbsim_create_inferior): Call error() when
	sim_create_inferior() fails.

2012-02-16  Josh Matthews  <josh@joshmatthews.net>

	* machoread.c: Initialize nbr_syms to avoid warnings-as-errors failure.

2012-02-16  Tom Tromey  <tromey@redhat.com>

	PR c++/13653:
	* thread.c (struct current_thread_cleanup) <was_removable>: New
	field.
	(restore_current_thread_cleanup_dtor): Restore 'removable' field.
	(make_cleanup_restore_current_thread): Initialize new field.

2012-02-15  Kevin Buettner  <kevinb@redhat.com>

	* MAINTAINERS: Add rl78 to target ISA section.
	* Makefile.in (ALL_TARGET_OBS): Add rl78-tdep.o.
	(ALLDEPFILES): Add rl78-tdep.c.
	* NEWS: Mention rl78 as a new target.

2012-02-15  Aleksandar Ristovski  <aristovski@qnx.com>

	* frame.c (find_frame_sal): Initialize sal->pspace field from frame
	data.
	* stack.c (set_last_displayed_sal): Validate that PSPACE is not NULL.

2012-02-15  Tom Tromey  <tromey@redhat.com>

	PR gdb/12659:
	* infcmd.c (registers_info): Print just the current register's
	name.

2012-02-15  Tom Tromey  <tromey@redhat.com>

	* python/py-symbol.c (sympy_value): Use _().

2012-02-15  Pedro Alves  <palves@redhat.com>

	* remote.c (remote_detach_1, extended_remote_attach_1): Tweak
	output to be like native targets'.
	(remote_pid_to_str): Special case the null ptid.

2012-02-14  Stan Shebs  <stan@codesourcery.com>

	* NEWS: Mention enable count command.
	* breakpoint.h (struct breakpoint): New field enable_count.
	* breakpoint.c (enable_breakpoint_disp): Add count argument.
	(enable_breakpoint): Add arg to call.
	(struct disp_data): New struct.
	(do_enable_breakpoint_disp): Interp arg as disp_data and unpack.
	(do_map_enable_once_breakpoint): Create a struct and pass it.
	(do_map_enable_delete_breakpoint): Ditto.
	(do_map_enable_count_breakpoint): New function.
	(enable_count_command): New function.
	(bpstat_stop_status): Decrement enable_count.
	(print_one_breakpoint_location): Report enable count.
	(_initialize_breakpoint): Add enable count command.

2012-02-14  Kevin Buettner  <kevinb@redhat.com>

	* rl78-tdep.c (reggroups.h): Include.
	(RL78_RAW_BANK0_R0_REGNUM, RL78_RAW_BANK0_R1_REGNUM)
	(RL78_RAW_BANK0_R2_REGNUM, RL78_RAW_BANK0_R3_REGNUM)
	(RL78_RAW_BANK0_R4_REGNUM, RL78_RAW_BANK0_R5_REGNUM)
	(RL78_RAW_BANK0_R6_REGNUM, RL78_RAW_BANK0_R7_REGNUM)
	(RL78_RAW_BANK1_R0_REGNUM, RL78_RAW_BANK1_R1_REGNUM)
	(RL78_RAW_BANK1_R2_REGNUM, RL78_RAW_BANK1_R3_REGNUM)
	(RL78_RAW_BANK1_R4_REGNUM, RL78_RAW_BANK1_R5_REGNUM)
	(RL78_RAW_BANK1_R6_REGNUM, RL78_RAW_BANK1_R7_REGNUM)
	(RL78_RAW_BANK2_R0_REGNUM, RL78_RAW_BANK2_R1_REGNUM)
	(RL78_RAW_BANK2_R2_REGNUM, RL78_RAW_BANK2_R3_REGNUM)
	(RL78_RAW_BANK2_R4_REGNUM, RL78_RAW_BANK2_R5_REGNUM)
	(RL78_RAW_BANK2_R6_REGNUM, RL78_RAW_BANK2_R7_REGNUM)
	(RL78_RAW_BANK3_R0_REGNUM, RL78_RAW_BANK3_R1_REGNUM)
	(RL78_RAW_BANK3_R2_REGNUM, RL78_RAW_BANK3_R3_REGNUM)
	(RL78_RAW_BANK3_R4_REGNUM, RL78_RAW_BANK3_R5_REGNUM)
	(RL78_RAW_BANK3_R6_REGNUM, RL78_RAW_BANK3_R7_REGNUM): Add to
	beginning of register list.
	(RL78_BANK0_R0_REGNUM, RL78_BANK0_R1_REGNUM, RL78_BANK0_R2_REGNUM)
	(RL78_BANK0_R3_REGNUM, RL78_BANK0_R4_REGNUM, RL78_BANK0_R5_REGNUM)
	(RL78_BANK0_R6_REGNUM, RL78_BANK0_R7_REGNUM, RL78_BANK1_R0_REGNUM)
	(RL78_BANK1_R1_REGNUM, RL78_BANK1_R2_REGNUM, RL78_BANK1_R3_REGNUM)
	(RL78_BANK1_R4_REGNUM, RL78_BANK1_R5_REGNUM, RL78_BANK1_R6_REGNUM)
	(RL78_BANK1_R7_REGNUM, RL78_BANK2_R0_REGNUM, RL78_BANK2_R1_REGNUM)
	(RL78_BANK2_R2_REGNUM, RL78_BANK2_R3_REGNUM, RL78_BANK2_R4_REGNUM)
	(RL78_BANK2_R5_REGNUM, RL78_BANK2_R6_REGNUM, RL78_BANK2_R7_REGNUM)
	(RL78_BANK3_R0_REGNUM, RL78_BANK3_R1_REGNUM, RL78_BANK3_R2_REGNUM)
	(RL78_BANK3_R3_REGNUM, RL78_BANK3_R4_REGNUM, RL78_BANK3_R5_REGNUM)
	(RL78_BANK3_R6_REGNUM, RL78_BANK3_R7_REGNUM): Move these into
	the pseudo registers.  Rearrange other pseudo registers too so
	that the bank registers appear at the end.
	(rl78_register_type): Account for the fact that the byte sized
	bank registers are now pseudo-registers.
	(rl78_register_name): Rearrange the register name array.  Make
	initial set of raw banked registers inaccessible.
	(rl78_register_reggroup_p, rl78_register_sim_regno): New functions.
	(rl78_pseudo_register_read, rl78_pseudo_register_write): Add
	case for copying bytes back and forth between raw and pseudo
	versions of the banked registers.  Update other cases to reflect
	the changed names.
	(rl78_return_value): Update to account for changed names of
	raw registers.
	(rl78_gdbarch_init): Register rl78_register_reggroup_p() and
	rl78_register_sim_regno().

2012-02-14  Kevin Buettner  <kevinb@redhat.com>

	* rl78-tdep.c (rl78_skip_prologue): Make `const' the type of
	the name parameter being passed to find_pc_partial_function().

2012-02-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* MAINTAINERS: Step down from being ia64 target maintainer.

2012-02-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* ppc-linux-nat.c (fetch_register, store_register): Fix GCC aliasing
	compilation warning.

2012-02-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix crash on loaded shlibs without loaded exec_bfd.
	* exec.c (exec_files_info): Do not crash on NULL EXEC_BFD.
	(set_section_command): Replace exec_bfd by p->bfd.

2012-02-10  Tom Tromey  <tromey@redhat.com>

	* linespec.c (decode_line_internal): Skip symtabs_from_filename
	when we have a C++ qualified name.

2012-02-10  Pedro Alves  <palves@redhat.com>

	* inferior.c (inferior_pid_to_str): New.
	(print_inferior, inferior_command): Use it.

2012-02-10  Pedro Alves  <palves@redhat.com>

	* configure.ac (HAVE_ELF test): Put the old CFLAGS at the end of
	the test CFLAGS.
	* configure: Regenerate.

2012-02-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linespec.c (decode_line_internal): Fix comment correctness.

2012-02-09  Valery Khromov  <valery.khromov@gmail.com>

	PR gdb/12953
	* Makefile.in (HFILES_NO_SRCDIR): Add amd64bsd-nat.h.
	* amd64bsd-nat.c: Add support for debug registers (adapted from
	i386bsd-nat.c).
	[HAVE_PT_GETDBREGS] (amd64bsd_dr_get, amd64bsd_dr_set)
	(amd64bsd_dr_set_control, amd64bsd_dr_set_addr)
	(amd64bsd_dr_get_addr, amd64bsd_dr_get_status)
	(amd64bsd_dr_get_control): New functions.
	* amd64bsd-nat.h: New file (adapted from i386bsd-nat.h).
	* amd64fbsd-nat.c: Include "amd64bsd-nat.h", "i386-nat.h".
	[HAVE_PT_GETDBREGS] (_initialize_amd64fbsd_nat): Add hardware
	watchpoints initialization.
	* config/i386/fbsd64.mh (NATDEPFILES): Add i386-nat.o.

2012-02-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb-gdb.py (StructMainTypePrettyPrinter) <struct_field_img>: Print
	flds_bnds.fields.
	(StructMainTypePrettyPrinter) <bounds_img>: Print flds_bnds.bounds.

2012-02-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* breakpoint.c (bp_location_compare): Fix comment.  Reindent the code.

2012-02-08  Joel Brobecker  <brobecker@adacore.com>

	* language.h (symbol_name_cmp_ftype): Renames
	symbol_name_match_p_ftype.
	(struct language_defn)[la_get_symbol_name_cmp]: Renames
	la_get_symbol_name_match_p.
	* ada-lang.c (ada_get_symbol_name_cmp): Renames
	ada_get_symbol_name_match_p.  Update comment.
	(ada_language_defn)[la_get_symbol_name_cmp]: Update value.
	* linespec.c (struct symbol_matcher_data)[symbol_name_cmp]:
	Renames symbol_name_match_p.  Update field type.
	(iterate_name_matcher, iterate_over_all_matching_symtabs): Adjust.
	* c-lang.c, d-lang.c, f-lang.c, jv-lang.c, m2-lang.c, objc-lang.c,
	opencl-lang.c, p-lang.c: Replace "la_get_symbol_name_match_p" by
	"la_get_symbol_name_cmp" in comments.
	* language.c: Likewise.

2012-02-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* amd64-sol2-tdep.c (amd64_sol2_gregset_reg_offset): Correct
	%eflags offset.
	* i386-sol2-nat.c (amd64_sol2_gregset64_reg_offs)
	(amd64_sol2_gregset32_reg_offs): Likewise.

2012-02-08  Joel Brobecker  <brobecker@adacore.com>

	* solib-darwin.c (darwin_bfd_open): Make sure that the filename
	of the returned BFD is allocated by GDB.

2012-02-07  Tom Tromey  <tromey@redhat.com>

	PR python/12027:
	* python/python-internal.h (frame_object_type): Declare.
	* python/py-symbol.c (sympy_needs_frame): New function.
	(sympy_value): New function.
	(symbol_object_getset): Add "needs_frame".
	(symbol_object_methods): Add "value".
	* python/py-frame.c (frame_object_type): No longer static.

2012-02-07  Tom Tromey  <tromey@redhat.com>

	PR python/13599:
	* python/py-symbol.c (sympy_line): New function.
	(symbol_object_getset): Add "line".

2012-02-07  Tom Tromey  <tromey@redhat.com>

	* charset.c (find_charset_names): Check 'in' against NULL.

2012-02-06  Doug Evans  <dje@google.com>

	* gdbtypes.h (struct main_type): Change type of name,tag_name,
	and fields.name members from char * to const char *.  All uses updated.
	(struct cplus_struct_type): Change type of fn_fieldlists.name member
	from char * to const char *.  All uses updated.
	(type_name_no_tag): Update.
	(lookup_unsigned_typename, lookup_signed_typename): Update.
	* gdbtypes.c (type_name_no_tag): Change result type
	from char * to const char *.  All callers updated.
	(lookup_unsigned_typename, lookup_signed_typename): Change type of
	name parameter from char * to const char *.
	* symtab.h (struct cplus_specific): Change type of demangled_name
	member from char * to const char *.  All uses updated.
	(struct general_symbol_info): Change type of name and
	mangled_lang.demangled_name members from char * to const char *.
	All uses updated.
	(symbol_get_demangled_name, symbol_natural_name): Update.
	(symbol_demangled_name, symbol_search_name): Update.
	* symtab.c (symbol_get_demangled_name): Change result type
	from char * to const char *.  All callers updated.
	(symbol_natural_name, symbol_demangled_name): Ditto.
	(symbol_search_name): Ditto.
	(completion_list_add_name): Change type of symname,sym_text,
	text,word parameters from char * to const char *.
	(completion_list_objc_symbol): Change type of sym_text,
	text,word parameters from char * to const char *.
	* ada-lang.c (find_struct_field): Change type of name parameter
	from char * to const char *.
	(encoded_ordered_before): Similarly for N0,N1 parameters.
	(old_renaming_is_invisible): Similarly for function_name parameter.
	(ada_type_name): Change result type from char * to const char *.
	All callers updated.
	* ada-lang.h (ada_type_name): Update.
	* buildsym.c (hashname): Change type of name parameter
	from char * to const char *.
	* buildsym.h (hashname): Update.
	* dbxread.c (end_psymtab): Change type of include_list parameter
	from char ** to const char **.
	* dwarf2read.c (determine_prefix): Change result type
	from char * to const char *.  All callers updated.
	* f-lang.c (find_common_for_function): Change type of name, funcname
	parameters from char * to const char *.
	* f-lang.c (find_common_for_function): Update.
	* f-valprint.c (list_all_visible_commons): Change type of funcname
	parameters from char * to const char *.
	* gdbarch.sh (static_transform_name): Change type of name parameter
	and result from char * to const char *.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type
	of name parameter from char * to const char *.
	* jv-lang.c (java_primitive_type_from_name): Ditto.
	(java_demangled_signature_length): Similarly for signature parameter.
	(java_demangled_signature_copy): Ditto.
	(java_demangle_type_signature): Ditto.
	* jv-lang.h (java_primitive_type_from_name): Update.
	(java_demangle_type_signature): Update.
	* objc-lang.c (specialcmp): Change type of a,b parameters
	from char * to const char *.
	* p-lang.c (is_pascal_string_type): Change type of arrayname parameter
	from char * to const char *.  All callers updated.
	* p-lang.h (is_pascal_string_type): Update.
	* solib-frv.c (find_canonical_descriptor_in_load_object): Change type
	of name parameter from char * to const char *.
	* sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto.
	* utils.c (fprintf_symbol_filtered): Ditto.
	* defs.h (fprintf_symbol_filtered): Update.
	* sparc-tdep.h (sparc_sol2_static_transform_name): Update.
	* stabsread.h (end_psymtab): Update.
	* stack.c (find_frame_funname): Change type of funname parameter
	from char ** to const char **.
	* stack.h (find_frame_funname): Update.
	* typeprint.c (type_print): Change type of varstring parameter
	from char * to const char *.
	* value.h (type_print): Update.
	* xcoffread.c (xcoff_start_psymtab): Change type of filename parameter
	from char * to const char *.  All callers updated.
	(xcoff_end_psymtab): Change type of include_list parameter
	from char ** to const char **.  All callers updated.
	(swap_sym): Similarly for name parameter.  All callers updated.
	* coffread.c (patch_type): Add (char*) cast to xfree parameter.
	Use xstrdup.
	(process_coff_symbol): Use xstrdup.
	* stabsread.c (stabs_method_name_from_physname): Renamed from
	update_method_name_from_physname.  Change result type from void
	to char *.  All callers updated.
	(read_member_functions): In has_destructor case, store name in objfile
	obstack instead of malloc space.  In !has_stub case, fix mem leak.

2012-02-06  Luca Pizzamiglio  <luca.pizzamiglio@gmail.com>

	* configure: Rebuild.
	* configure.ac: Put -L../bfd and -L../libiberty at the front of
	LDFLAGS.

2012-02-03  Kevin Buettner  <kevinb@redhat.com>

	* configure.tgt (rl78-*-elf): New target.
	* rl78-tdep.c: New file.

2012-02-03  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* remote.c (remote_rcmd): Use getpkt_sane to detect timeout
	and continue the loop.  Add QUIT statement.

2012-02-03  Tom Tromey  <tromey@redhat.com>

	PR gdb/13596:
	* solib.h (gdb_bfd_lookup_symbol_from_symtab): Rename from
	bfd_lookup_symbol_from_symtab.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use
	gdb_bfd_lookup_symbol_from_symtab.

2012-02-03  Joel Brobecker  <brobecker@adacore.com>

	* mi/mi-cmd-stack.c (list_args_or_locals): For argument symbols,
	use SYMBOL_LINKAGE_NAME to find the corresponding non-argument
	symbol.  Add assertion that sym2 is never NULL.

2012-02-02  Doug Evans  <dje@google.com>

	* blockframe.c (find_pc_partial_function_gnu_ifunc): Change type of
	"name" parameter to const char ** from char **.  All callers updated.
	(find_pc_partial_function): Ditto.
	(cache_pc_function_name): Change type to const char * from char *.
	* symtab.h ((find_pc_partial_function_gnu_ifunc): Update.
	(find_pc_partial_function): Update.
	* alpha-tdep.h (struct gdbarch_tdep, member pc_in_sigtramp): Change
	type of "name" parameter to const char * from char *.
	All uses updated.
	* arch-utils.c (generic_in_solib_return_trampoline): Change
	type of "name" parameter to const char * from char *.
	* arch-utils.h (generic_in_solib_return_trampoline): Update.
	* frv-linux-tdep.c (frv_linux_pc_in_sigtramp): Change
	type of "name" parameter to const char * from char *.
	* gdbarch.sh (in_solib_return_trampoline): Ditto.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* hppa-hpux-tdep.c (hppa_hpux_in_solib_return_trampoline): Update.
	* rs6000-tdep.c (rs6000_in_solib_return_trampoline): Update.
	* m32r-linux-tdep.c (m32r_linux_pc_in_sigtramp): Change
	type of "name" parameter to const char * from char *.
	* skip.c (skip_function_pc): Ditto.
	* sparc-sol2-tdep.c (sparc_sol2_pc_in_sigtramp): Ditto.
	* sparc-tdep.h (sparc_sol2_pc_in_sigtramp): Update.
	* sparc64fbsd-tdep.c (sparc64fbsd_pc_in_sigtramp): Ditto.
	* sparc64nbsd-tdep.c (sparc64nbsd_pc_in_sigtramp): Ditto.
	* sparc64obsd-tdep.c (sparc64obsd_pc_in_sigtramp): Ditto.
	* sparcnbsd-tdep.c (sparc32nbsd_pc_in_sigtramp): Ditto.
	* sparcobsd-tdep.c (sparc32obsd_pc_in_sigtramp): Ditto.
	* nbsd-tdep.c (nbsd_pc_in_sigtramp): Similary for "func_name".
	* nbsd-tdep.h (nbsd_pc_in_sigtramp): Update.

2012-02-02  Pedro Alves  <palves@redhat.com>

	* remote.c (remote_get_min_fast_tracepoint_insn_len): Return 0 if
	the current inferior has no execution.  Make sure the current
	remote process matches gdb's current inferior.

2012-02-02  Tom Tromey  <tromey@redhat.com>

	PR gdb/13405:
	* tui/tui-win.c (parse_scrolling_args): Don't write to possibly
	read-only memory.

2012-02-02  Tom Tromey  <tromey@redhat.com>

	PR gdb/9307:
	* symtab.c (lookup_language_this): Set block_found.

2012-02-01  Tom Tromey  <tromey@redhat.com>

	PR gdb/13431:
	* jit.c (struct jit_inferior_data): Rewrite.
	(struct jit_objfile_data): New.
	(get_jit_objfile_data): New function.
	(add_objfile_entry): Update.
	(jit_read_descriptor): Return int.  Replace descriptor_addr
	argument with inf_data.  Update.  Don't call error.
	(jit_breakpoint_re_set_internal): Reorder logic.  Update.  Look up
	descriptor here.
	(jit_inferior_init): Don't look up descriptor.  Don't call error.
	(jit_reset_inferior_data_and_breakpoints)
	(jit_inferior_created_observer): Remove.
	(jit_inferior_exit_hook): Update.
	(jit_executable_changed_observer): Remove.
	(jit_event_handler): Update.
	(free_objfile_data): Reset inferior data if needed.
	(_initialize_jit): Update.

2012-02-01  Tom Tromey  <tromey@redhat.com>

	* jit.c (bfd_open_from_target_memory): Move higher in file.

2012-02-01  Tristan Gingold  <gingold@adacore.com>

	* libunwind-frame.c (libunwind_load): Display message if dlopen
	failed.

2012-02-01  Gary Benson  <gbenson@redhat.com>

	* symtab.h (symbol_found_callback_ftype): New typedef.
	(iterate_over_symbols): Use the above.
	* symtab.c (iterate_over_symbols): Likewise.
	* language.h (language_defn->la_iterate_over_symbols): Likewise.
	* ada-lang.c (ada_iterate_over_symbols): Likewise.
	* linespec.c (iterate_over_all_matching_symtabs): Likewise.
	(iterate_name_matcher): Document return values.
	(collect_one_symbol): Likewise.
	(collect_function_symbols): Likewise.
	(collect_symbols): Likewise.

2012-02-01  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c (resolve_subexp): Update.
	(ada_lookup_symbol_list): Add 'full_search' argument.
	(ada_iterate_over_symbols): Pass 0 as full_search argument to
	ada_lookup_symbol_list.
	(ada_lookup_encoded_symbol): Update.
	(get_var_value): Update.
	* ada-exp.y (block_lookup): Update.
	(write_var_or_type): Update.
	(write_name_assoc): Update.
	* ada-lang.h (ada_lookup_symbol_list): Update.

2012-01-31  Tom Tromey  <tromey@redhat.com>

	* language.h (struct language_defn) <la_iterate_over_symbols>: Fix
	comment.

2012-01-31  Doug Evans  <dje@google.com>

	* symtab.h: Remove outdated comment.
	(SYMBOL_MATCHES_NATURAL_NAME): Delete.

2012-02-01  Josh Matthews  <josh@joshmatthews.net>  (tiny change)

	Fix build error in Darwin port.
	* i386-darwin-nat.c: Include i386-nat.h.

2012-01-30  Tom Tromey  <tromey@redhat.com>

	PR breakpoints/13568:
	* dwarf2read.c (dwarf_decode_macro_bytes): Add 'include_hash'
	argument.  Check for recursive includes.
	(dwarf_decode_macros): Create an include hash.

2012-01-30  Michael Eager  <eager@eagercon.com>

	* configure.tgt (powerpc-*-linux*): Add glibc-tdep.o.
	* ppc-linux-tdep.c: Include glibc-tdep.h.
	(powerpc32_plt_stub, powerpc32_plt_stub_so): Add PLT stub templates.
	(powerpc_linux_in_plt_stub): New function.
	(powerpc_linux_in_dynsym_resolve_code): New function.
	(ppc_skip_trampoline_code): New function.
	(ppc_linux_init_abi): Use PPC specific functions rather than generic.
	Use glibc_skip_solib_resolver.

2012-01-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup: Make 1440 bytes of data segment read-only.
	* arch-utils.c (endian_enum): Make it const char *const [].
	* arm-tdep.c (fp_model_strings, arm_abi_strings, arm_mode_strings):
	Likewise.
	* breakpoint.c (always_inserted_enums): Likewise.
	* cli/cli-cmds.c (script_ext_enums): Likewise.
	* cli/cli-decode.c (add_setshow_enum_cmd, complete_on_enum): Make the
	enumlist parameter const char *const *.
	* cli/cli-decode.h (struct cmd_list_element): Make the enums field
	const char *const *.
	* command.h (complete_on_enum, add_setshow_enum_cmd): Make the enumlist
	parameter const char *const *.
	* cris-tdep.c (cris_modes): Make it const char *const [].
	* filesystem.c (target_file_system_kinds): Likewise.
	* i386-tdep.c (valid_flavors, valid_conventions): Likewise.
	* infrun.c (follow_fork_mode_kind_names, follow_exec_mode_names)
	(can_use_displaced_stepping_enum, scheduler_enums)
	(exec_direction_names): Likewise.
	* language.c (_initialize_language): Make the type_or_range_names and
	case_sensitive_names variables const char *const [].
	* mips-tdep.c (mips_abi_strings): Make it const char *const [].
	* python/python.c (python_excp_enums): Likewise.
	* remote.c (interrupt_sequence_modes): Likewise.
	* rs6000-tdep.c (powerpc_vector_strings): Likewise.
	* serial.c (logbase_enums): Likewise.
	* sh-tdep.c (sh_cc_enum): Likewise.
	* stack.c (print_frame_arguments_choices, print_entry_values_choices):
	Likewise.
	* symtab.c (multiple_symbols_modes): Likewise.
	* tui/tui-win.c (tui_border_kind_enums, tui_border_mode_enums):
	Likewise.
	* utils.c (internal_problem_modes): Likewise.

2012-01-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix the 2012-01-26 regression by la_get_symbol_name_match_p.
	* linespec.c (iterate_name_matcher): Negate the SYMBOL_NAME_MATCH_P
	result.

2012-01-27  Doug Evans  <dje@google.com>

	* configure.ac (with_python): Fix absolute path handling for win32.
	* configure: Regenerate.

2012-01-26  Doug Evans  <dje@google.com>

	* symtab.c: Whitespace cleanup, no code changes.

	* symtab.c (lookup_symbol_in_language): Improve comment.
	(lookup_symbol_aux): Fix comment.

	* psymtab.c (add_psymbol_to_list): Result is now "void".
	* psympriv.h (add_psymbol_to_list): Update.

	* dwarf2read.c (add_partial_symbol): Delete local psym, unused.

2012-01-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Do not open script filenames twice.
	* cli/cli-cmds.c (source_script_from_stream): Pass to
	source_python_script also STREAM.
	* python/py-auto-load.c (source_section_scripts): Pass to
	source_python_script_for_objfile also STREAM.
	(auto_load_objfile_script): Pass to source_python_script_for_objfile
	also INPUT.
	* python/python-internal.h (source_python_script_for_objfile): New
	parameter file, rename parameter file to filename.
	* python/python.c (python_run_simple_file): Call PyRun_SimpleFile
	instead if !_WIN32.  Update the function comment.
	(source_python_script, source_python_script_for_objfile)
	(source_python_script): New parameter file, rename parameter file to
	filename.  Pass FILENAME to python_run_simple_file.
	* python/python.h (source_python_script): New parameter file, rename
	parameter file to filename.

2012-01-26  Pedro Alves  <palves@redhat.com>

	* corelow.c (core_has_fake_pid): Delete.
	(core_close): Delete references to `core_has_fake_pid'.
	(add_to_thread_list): Adjust to mark the inferior's pid as fake.
	(core_open): Delete references to `core_has_fake_pid'.
	(core_pid_to_str): Adjust to check inferior->fake_pid_p instead of
	the removed global.

2012-01-26  Joel Brobecker  <brobecker@adacore.com>

	* symfile.h (struct quick_symbol_functions) [expand_symtabs_matching]:
	Remove language parameter from name_matcher.  Adjust the comment.
	* symtab.c (search_symbols_name_matches, expand_partial_symbol_name):
	Remove language parameter.
	* ada-lang.c (ada_expand_partial_symbol_name): Likewise.
	* linespec.c (iterate_name_matcher): Likewise.
	* dwarf2read.c (dw2_expand_symtabs_matching): Adjust type of
	name_matcher.  Adjust call accordingly.
	* psymtab.c (expand_symtabs_matching_via_partial): Likewise.
	(maintenance_check_symtabs): Adjust type of parameter "fun".
	* psymtab.h (maintenance_check_symtabs): Likewise.

2012-01-26  Joel Brobecker  <brobecker@adacore.com>

	* language.h (symbol_name_match_p_ftype): New typedef.
	(struct language_defn): Replace field la_symbol_name_compare
	by la_get_symbol_name_match_p.
	* ada-lang.c (ada_get_symbol_name_match_p): New function.
	(ada_language_defn): Use it.
	* linespec.c (struct symbol_matcher_data): New type.
	(iterate_name_matcher): Rewrite.
	(iterate_over_all_matching_symtabs): Pass a pointer to
	a symbol_matcher_data struct to expand_symtabs_matching
	instead of just the lookup name.
	* c-lang.c, d-lang.c, jv-lang.c, m2-lang.c, objc-lang.c,
	opencl-lang.c, p-lang.c, language.c: Delete field
	la_symbol_name_compare, and replace by NULL for new field
	la_get_symbol_name_match_p.
	* symfile.h (struct quick_symbol_functions): Update comment.

2012-01-25  Tom Tromey  <tromey@redhat.com>

	* breakpoint.c (bpstat_stop_status): Check 'breakpoint_at' before
	dereferencing.

2012-01-24  Tom Tromey  <tromey@redhat.com>

	PR symtab/12406:
	* solib.c (update_solib_list): Update the program space's
	added_solibs and deleted_solibs fields.
	* progspace.h (struct program_space) <added_solibs,
	deleted_solibs>: New fields.
	(clear_program_space_solib_cache): Declare.
	* progspace.c (release_program_space): Call
	clear_program_space_solib_cache.
	(clear_program_space_solib_cache): New function.
	* infrun.c (handle_inferior_event) <TARGET_WAITKIND_LOADED>: Call
	bpstat_stop_status.  Use handle_solib_event.
	* breakpoint.c: Include gdb_regex.h.
	(print_solib_event): New function.
	(bpstat_print): Use print_solib_event.
	(bpstat_stop_status): Add special case for bp_shlib_event.
	(handle_solib_event): New function.
	(bpstat_what): Use handle_solib_event.
	(struct solib_catchpoint): New.
	(dtor_catch_solib, insert_catch_solib, remove_catch_solib)
	(breakpoint_hit_catch_solib, check_status_catch_solib)
	(print_it_catch_solib, print_one_catch_solib)
	(print_mention_catch_solib, print_recreate_catch_solib): New
	functions.
	(catch_solib_breakpoint_ops): New global.
	(catch_load_or_unload, catch_load_command_1)
	(catch_unload_command_1): New functions.
	(internal_bkpt_check_status): Add special case for
	bp_shlib_event.
	(internal_bkpt_print_it): Use print_solib_event.
	(initialize_breakpoint_ops): Initialize
	catch_solib_breakpoint_ops.
	(_initialize_breakpoint): Register "catch load" and "catch
	unload".
	* breakpoint.h (handle_solib_event): Declare.
	* NEWS: Add entry for "catch load" and "catch unload".

2012-01-24  Tom Tromey  <tromey@redhat.com>

	* ada-lang.c: Include gdb_vecs.h.
	* charset.c: Include gdb_vecs.h.
	* tracepoint.h: Include gdb_vecs.h.
	* gdb_vecs.h: New file.

2012-01-24  Pedro Alves  <pedro@codesourcery.com>

	* breakpoint.c (breakpoint_hit_catch_fork)
	(breakpoint_hit_catch_vfork, breakpoint_hit_catch_syscall)
	(breakpoint_hit_catch_exec): Make use of the `ws' argument.
	* infrun.c (inferior_has_forked, inferior_has_vforked)
	(inferior_has_execd, inferior_has_called_syscall): Delete.
	(handle_syscall_event): Get syscall_number from the execution
	control state's wait status.
	(wait_for_inferior): Don't clear syscall_number.

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

	* breakpoint.c (bpstat_check_location, bpstat_stop_status,
	pc_at_non_inline_function): Add `ws' parameter, and pass it down.
	(breakpoint_hit_catch_fork, breakpoint_hit_catch_vfork)
	(breakpoint_hit_catch_syscall, breakpoint_hit_catch_exec): Add
	`ws' parameter.
	(breakpoint_hit_ranged_breakpoint): Add `ws' parameter.  Return
	false for events other than TARGET_SIGNAL_TRAP.
	(breakpoint_hit_watchpoint, base_breakpoint_breakpoint_hit):
	Add `ws' parameter.
	(bkpt_breakpoint_hit): Add `ws' parameter.  Return false for
	events other than TARGET_SIGNAL_TRAP.
	(tracepoint_breakpoint_hit): Add `ws' parameter.
	* breakpoint.h (struct breakpoint_ops) <breakpoint_hit>: Add `ws'
	parameter.
	(bpstat_stop_status): Same.
	(pc_at_non_inline_function): Same.
	* infrun.c (handle_syscall_event, handle_inferior_event): Adjust
	to pass the current event's waitstatus to bpstat_stop_status
	and pc_at_non_inline_function.

2012-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* cli/cli-cmds.c (source_script_from_stream): Never fclose STREAM.
	Update the function comment for it.
	(source_script_with_search): Call make_cleanup_fclose for STREAM.
	* cli/cli-script.c (script_from_file): Do not call make_cleanup_fclose
	for STREAM.

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

	* breakpoint.c (bpstat_stop_status): Moving clearing print_it
	outside `bs->stop' block.
	(bpstat_what): Rework bp_shlib_event handling.
	(internal_bkpt_check_status): If the breakpoint is a
	bp_shlib_event, then set bs->stop and bs->print if
	stop_on_solib_events is set.

2012-01-24  Gary Benson  <gbenson@redhat.com>

	Delete #if 0'd out code.
	* stack.c (print_frame_label_vars): Remove.
	(catch_info): Likewise.
	(_initialize_stack): Remove "info catch" command.
	* NEWS: Mention the above.

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

	* remote.c (remote_add_inferior): New `fake_pid_p' parameter.  Use
	it.
	(remote_notice_new_inferior): If the remote end doesn't support
	the multiprocess extensions, then the PID is fake.
	(add_current_inferior_and_thread): New.
	(remote_start_remote): Use it.
	(extended_remote_attach_1): Adjust.
	(extended_remote_create_inferior_1): Use
	add_current_inferior_and_thread.

2012-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix watchpoints to be specific for each inferior.
	* breakpoint.c (watchpoint_in_thread_scope): Verify also
	current_program_space.
	* i386-nat.c (i386_inferior_data_cleanup): New.
	(i386_inferior_data_get): Replace variable inf_data_local by an
	inferior_data call.
	(i386_use_watchpoints): Initialize i386_inferior_data.
	* linux-nat.c (linux_nat_iterate_watchpoint_lwps): Use INFERIOR_PTID
	specific iterate_over_lwps.

2012-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix watchpoints across inferior fork.
	* amd64-linux-nat.c (update_debug_registers_callback): Update the
	comment for linux_nat_iterate_watchpoint_lwps.
	(amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use
	linux_nat_iterate_watchpoint_lwps.
	(amd64_linux_prepare_to_resume): New comment on Linux kernel.
	* i386-linux-nat.c (update_debug_registers_callback): Update the
	comment for linux_nat_iterate_watchpoint_lwps.
	(i386_linux_dr_set_control, i386_linux_dr_set_addr): Use
	linux_nat_iterate_watchpoint_lwps.
	(i386_linux_prepare_to_resume): New comment on Linux kernel.
	* i386-nat.c: Include inferior.h.
	(dr_mirror): Remove.
	(i386_inferior_data, struct i386_inferior_data)
	(i386_inferior_data_get): New.
	(i386_debug_reg_state): Use i386_inferior_data_get.
	(i386_cleanup_dregs, i386_update_inferior_debug_regs)
	(i386_insert_watchpoint, i386_remove_watchpoint)
	(i386_stopped_data_address, i386_insert_hw_breakpoint)
	(i386_remove_hw_breakpoint): New variable state, use
	i386_debug_reg_state instead of DR_MIRROR.
	* linux-nat.c (delete_lwp): New declaration.
	(num_lwps): Move here from downwards.
	(delete_lwp_cleanup): New.
	(linux_child_follow_fork): Create new child_lp, call
	linux_nat_new_thread and linux_nat_prepare_to_resume before calling
	PTRACE_DETACH.
	(num_lwps): Move upwards.
	(linux_nat_iterate_watchpoint_lwps): New.
	* linux-nat.h (linux_nat_iterate_watchpoint_lwps_ftype): New.
	(linux_nat_iterate_watchpoint_lwps_ftype): New declaration.

2012-01-24  Joel Brobecker  <brobecker@adacore.com>

	GDB 7.4 released.

2012-01-23  Pedro Alves  <palves@redhat.com>

	* top.c (caution): Rename to ...
	(confirm): ... this.
	(show_caution): Rename to ...
	(show_confirm): ... this.
	(quit_cover): Adjust.
	(init_main): Adjust.
	* top.h (caution): Rename to ...
	(confirm): ... this.
	* utils.c (internal_vproblem, defaulted_query): Adjust.

2012-01-23  Pedro Alves  <palves@redhat.com>

	* top.c (caution): Update comment.
	(execute_command): Don't consider the current value of `caution'.

2012-01-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cli/cli-cmds.c (find_and_open_script): Handle failure of fdopen.

2012-01-23  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* inf-child.c: Include "gdb_stat.h" instead of <sys/stat.h>.
	* linux-tdep.c (linux_info_proc): Avoid ARI coding style warning.
	* target.c (target_fileio_pwrite): Remove buffer address from
	debug output.
	(target_fileio_pread): Likewise.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* NEWS: Document remote "info proc" and "generate-core-file".

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdbarch.sh (find_memory_regions): New callback.
	* gdbarch.c, gdbarch.h: Regenerate.

	* gcore.c (gcore_memory_sections): Try gdbarch find_memory_regions
	callback before falling back to target method.

	* linux-nat.c (read_mapping, linux_nat_find_memory_regions): Remove.
	(linux_target_install_ops): No longer install it.

	* linux-tdep.c (linux_find_memory_regions): New function.
	(linux_init_abi): Install it.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdbarch.sh (make_corefile_notes): New architecture callback.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Likewise.

	* gcore.c (write_gcore_file): Try gdbarch_make_corefile_notes
	before target_make_corefile_notes.  If NULL is returned, the
	target does not support core file generation.

	* linux-nat.c: Include "linux-tdep.h".
	(find_signalled_thread, find_stop_signal): Remove.
	(linux_nat_do_thread_registers): Likewise.
	(struct linux_nat_corefile_thread_data): Likewise.
	(linux_nat_corefile_thread_callback): Likewise.
	(iterate_over_spus): Likewise.
	(struct linux_spu_corefile_data): Likewise.
	(linux_spu_corefile_callback): Likewise.
	(linux_spu_make_corefile_notes): Likewise.
	(linux_nat_collect_thread_registers): New function.
	(linux_nat_make_corefile_notes): Replace contents by call to
	linux_make_corefile_notes passing linux_nat_collect_thread_registers
	as native-only callback.

	* linux-tdep.h: Include "bfd.h".
	(struct regcache): Add forward declaration.
	(linux_collect_thread_registers_ftype): New typedef.
	(linux_make_corefile_notes): Add prototype.
	* linux-tdep.c: Include "gdbthread.h", "gdbcore.h", "regcache.h",
	"regset.h", and "elf-bfd.h".
	(find_signalled_thread, find_stop_signal): New functions.
	(linux_spu_make_corefile_notes): Likewise.
	(linux_collect_thread_registers): Likewise.
	(struct linux_corefile_thread_data): New data structure.
	(linux_corefile_thread_callback): New funcion.
	(linux_make_corefile_notes): Likewise.
	(linux_make_corefile_notes_1): Likewise.
	(linux_init_abi): Install it.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdbarch.sh (info_proc): New callback.
	* gdbarch.c, gdbarch.h: Regenerate.

	* infcmd.c (info_proc_cmd_1): Try gdbarch info_proc callback
	before falling back to the target info_proc callback.

	* linux-nat.c: Do not include "cli/cli-utils.h".
	(linux_nat_info_proc): Remove.
	(linux_target_install_ops): No longer install it.

	* linux-tdep.c: Include "cli/cli-utils.h" and <ctype.h>.
	(read_mapping): New function.
	(linux_info_proc): Likewise.
	(linux_init_abi): Install it.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* defs.h (enum info_proc_what): Moved here from linux-nat.c
	* infcmd.c: (info_proc_cmd_1): New function.
	(info_proc_cmd): New function, moved here from equivalent routine
	orignally in linux-nat.c.
	(info_proc_cmd_mappings): Likewise.
	(info_proc_cmd_stat): Likewise.
	(info_proc_cmd_status): Likewise.
	(info_proc_cmd_cwd): Likewise.
	(info_proc_cmd_cmdline): Likewise.
	(info_proc_cmd_exe): Likewise.
	(info_proc_cmd_all): Likewise.
	(_initialize_infcmd): Install "info proc" command and subcommands.

	* target.h (struct target_ops): Add to_info_proc.
	(target_info_proc): Add prototype.
	* target.c (target_info_proc): New function.

	* procfs.c (procfs_info_proc): Add prototype.
	(info_proc_cmd): Rename into ...
	(procfs_info_proc): ... this.  Update argument types as appropriate
	for a to_info_proc implementation.  Handle "what" argument.
	(procfs_target): Install procfs_info_proc.
	(_initialize_procfs): No longer install "info proc" command.

	* linux-nat.c: (enum info_proc_what): Remove.
	(linux_nat_info_proc_cmd_1): Rename into ...
	(linux_nat_info_proc): ... this.  Update argument types as appropriate
	for a to_info_proc implementation.
	(linux_nat_info_proc_cmd): Remove.
	(linux_nat_info_proc_cmd_mappings): Likewise.
	(linux_nat_info_proc_cmd_stat): Likewise.
	(linux_nat_info_proc_cmd_status): Likewise.
	(linux_nat_info_proc_cmd_cwd): Likewise.
	(linux_nat_info_proc_cmd_cmdline): Likewise.
	(linux_nat_info_proc_cmd_exe): Likewise.
	(linux_nat_info_proc_cmd_all): Likewise.
	(linux_target_install_ops): Install linux_nat_info_proc.
	(_initialize_linux_nat): No longer install "info proc" command
	and subcommands.

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* configure.ac [AC_CHECK_FUNCS]: Check for readlink.
	* config.in, configure: Regenerate.

	* target.h (struct target_ops): Add to_fileio_readlink.
	(target_fileio_readlink): Add prototype.
	* target.c (target_fileio_readlink): New function.

	* inf-child.c: Conditionally include <sys/param.h>.
	(inf_child_fileio_readlink): New function.
	(inf_child_target): Install it.

	* remote.c (PACKET_vFile_readlink): New enum value.
	(remote_hostio_readlink): New function.
	(init_remote_ops): Install it.
	(_initialize_remote): Handle vFile:readlink packet type.

2012-01-20  Pedro Alves  <palves@redhat.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* configure.ac [AC_CHECK_FUNCS]: Check for pread and pwrite.
	* config.in, configure: Regenerate.

	* target.h (struct target_ops): Add to_fileio_open, to_fileio_pwrite,
	to_fileio_pread, to_fileio_close, to_fileio_unlink.
	(target_fileio_open): Add prototype.
	(target_fileio_pwrite): Likewise.
	(target_fileio_pread): Likewise.
	(target_fileio_close): Likewise.
	(target_fileio_unlink): Likewise.
	(target_fileio_read_alloc): Likewise.
	(target_fileio_read_stralloc): Likewise.

	* target.c: Include "gdb/fileio.h".
	(target_read_stralloc): Accept trailing, but not embedded NUL bytes.
	(default_fileio_target): New function.
	(target_fileio_open): Likewise.
	(target_fileio_pwrite): Likewise.
	(target_fileio_pread): Likewise.
	(target_fileio_close): Likewise.
	(target_fileio_unlink): Likewise.
	(target_fileio_close_cleanup): Likewise.
	(target_fileio_read_alloc_1): Likewise.
	(target_fileio_read_alloc): Likewise.
	(target_fileio_read_stralloc): Likewise.

	* inf-child.c: Include "gdb/fileio.h", <sys/types.h>, <sys/stat.h>,
	<fcntl.h>, and <unistd.h>.
	(inf_child_fileio_open_flags_to_host): New function.
	(inf_child_errno_to_fileio_error): Likewise.
	(inf_child_fileio_open): Likewise.
	(inf_child_fileio_pwrite): Likewise.
	(inf_child_fileio_pread): Likewise.
	(inf_child_fileio_close): Likewise.
	(inf_child_fileio_unlink): Likewise.
	(inf_child_target): Install to_fileio routines.

	* remote.c (init_remote_ops): Install to_fileio routines.

2012-01-20  Pedro Alves  <palves@redhat.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* remote.c (remote_multi_process_p): Only check for multi-process
	protocol feature, do not check for extended protocol.
	(remote_supports_multi_process): Check for extended protocol here.
	(set_general_process): Likewise.
	(extended_remote_kill): Likewise.
	(remote_pid_to_str): Likewise.
	(remote_query_supported): Always query multiprocess mode.

2012-01-20  Pedro Alves  <palves@redhat.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* inferior.h (struct inferior): Add fake_pid_p.
	* inferior.c (exit_inferior_1): Clear fake_pid_p.
	* remote.c (remote_start_remote): Set fake_pid_p if we have to use
	magic_null_ptid since the remote side doesn't provide a real PID.

2012-01-19  Tom Tromey  <tromey@redhat.com>

	* NEWS: Combine the two Python sections.

2012-01-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* target.h (target_close): Update comment on the target's unpush state.

2012-01-19  Pedro Alves  <palves@redhat.com>

	* linux-nat.c (linux_nat_close): Call linux_nat_is_async_p and
	linux_nat_async directly instead of going through the target
	vector.
	* target.c (unpush_target): Close target after unpushing it, not
	before.

2012-01-19  Gary Benson  <gbenson@redhat.com>

	* mdebugread.c (sort_blocks): Replace integer constants with ones
	derived from FIRST_LOCAL_BLOCK.

2012-01-18  Paul Pluzhnikov  <ppluzhnikov@google.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR gdb/9538
	* symfile.c (find_separate_debug_file): New function.
	(terminate_after_last_dir_separator): Likewise.
	(find_separate_debug_file_by_debuglink): Also try realpath.
	* configure.ac (AC_CHECK_FUNCS): Add lstat.
	* configure: Regenerate.
	* config.in: Regenerate.

2012-01-18  Doug Evans  <dje@google.com>

	* Makefile.in (TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE): Delete.
	(main.o): Remove rule.
	* configure.ac (BINDIR): Define with AC_DEFINE_DIR.
	(--with-sysroot): Rewrite.
	* configure: Regenerate.
	* config.in: Regenerate.

2012-01-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* parse.c (initialize_expout): New function.
	(reallocate_expout): Likewise.
	(parse_exp_in_context): Use `initialize_expout' and
	`reallocate_expout' when appropriate.

2012-01-18  Pedro Alves  <palves@redhat.com>

	* record.c (struct record_breakpoint, record_breakpoint_p)
	(record_breakpoints): New.
	(record_insert_breakpoint, record_remove_breakpoint): Manage
	record breakpoints list.  Only remove breakpoints from the
	inferior if they had been inserted there in the first place.

2012-01-17  Doug Evans  <dje@google.com>

	* linespec.c (decode_line_internal): Don't call symtabs_from_filename
	if we know we don't have a file name to look for.

2012-01-17  Pedro Alves  <palves@redhat.com>

	* dwarf2-frame.c (dwarf2_frame_cfa): Throw NOT_AVAILABLE_ERROR, if
	the frame's stop reason is UNWIND_UNAVAILABLE.

2012-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compilation error.
	* m2-exp.y (yyerror): Use ANSI C prototype.

2012-01-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* f-exp.y (parse_number): Convert prototype from K&R to ANSI C.
	(growbuf_by_size): Likewise.
	(yyerror): Likewise.
	* m2-exp.y (make_qualname): Remove function (was #if 0'ed).
	(modblock): Remove variable (was #if 0'ed).
	(parse_number): Convert prototype from K&R to ANSI C.
	(yyerror): Likewise.
	* objc-exp.y (parse_number): Likewise.
	(yyerror): Likewise.
	(yylex): Remove #if 0'ed code.
	* p-exp.y (uptok): Convert prototype from K&R to ANSI C.
	(yyerror): Likewise.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	* NEWS: Add item.
	* symtab.h (compare_filenames_for_search): Declare.
	* symtab.c (compare_filenames_for_search): New function.
	(iterate_over_some_symtabs): Use it.
	* symfile.h (struct quick_symbol_functions)
	<map_symtabs_matching_filename>: Change spec.
	* psymtab.c (partial_map_symtabs_matching_filename): Use
	compare_filenames_for_search.  Update for new spec.
	* dwarf2read.c (dw2_map_symtabs_matching_filename): Use
	compare_filenames_for_search.  Update for new spec.
	* breakpoint.c (clear_command): Use compare_filenames_for_search.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	PR python/13281:
	* gdbtypes.h (TYPE_FLAG_ENUM): New macro.
	(struct main_type) <flag_flag_enum>: New field.
	* dwarf2read.c (process_enumeration_scope): Detect "flag" enums.
	* NEWS: Add entries.
	* c-valprint.c (c_val_print) <TYPE_CODE_ENUM>: Handle "flag"
	enums.
	* python/lib/gdb/printing.py (_EnumInstance): New class.
	(FlagEnumerationPrinter): Likewise.

2012-01-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* breakpoint.c (create_sals_from_address_default): New function.
	(create_breakpoints_sal_default): Likewise.
	(decode_linespec_default): Likewise.
	(is_marker_spec): Removed.
	(strace_marker_p): New function.
	(init_breakpoint_sal): Using `strace_marker_p' instead of
	`is_marker_spec'.
	(create_breakpoint): Call method `create_sals_from_address' from
	breakpoint_ops, replacing code that created SALs conditionally
	on the type of the breakpoint.  Call method `create_breakpoints_sal',
	replacing code that created breakpoints conditionally on the type
	wanted.
	(base_breakpoint_create_sals_from_address): New function.
	(base_breakpoint_create_breakpoints_sal): Likewise.
	(base_breakpoint_decode_linespec): Likewise.
	(base_breakpoint_ops): Add methods
	`base_breakpoint_create_sals_from_address',
	`base_breakpoint_create_breakpoints_sal' and
	`base_breakpoint_decode_linespec'.
	(bkpt_create_sals_from_address): New function.
	(bkpt_create_breakpoints_sal): Likewise.
	(bkpt_decode_linespec): Likewise.
	(tracepoint_create_sals_from_address): Likewise.
	(tracepoint_create_breakpoints_sal): Likewise.
	(tracepoint_decode_linespec): Likewise.
	(strace_marker_create_sals_from_address): Likewise.
	(strace_marker_create_breakpoints_sal): Likewise.
	(strace_marker_decode_linespec): Likewise.
	(strace_marker_breakpoint_ops): New variable.
	(addr_string_to_sals): Remove `marker_spec'.  Call method
	`decode_linespec' from breakpoint_ops, replacing code that decoded
	an address string into a SAL.  Use `strace_marker_p' instead of
	`marker_spec'.
	(strace_command): Decide whether we are dealing with a static
	tracepoint with marker or not.  Use the appropriate breakpoint_ops.
	(initialize_breakpoint_ops): Initialize new fields of breakpoint_ops.
	* breakpoint.h (linespec_result, linespec_sals): New forward
	declarations.
	(breakpoint_ops) <create_sals_from_address>,
	<create_breakpoints_sal>, <decode_linespec>: New methods.

2012-01-14  Doug Evans  <dje@google.com>

	* NEWS: Update text for "maint set python print-stack".
	It is deprecated in gdb 7.4 and deleted in 7.5.

2012-01-13  Eli Zaretskii  <eliz@gnu.org>

	* gdb_curses.h (MOUSE_MOVED) [__MINGW32__]: Undefine before
	including curses.h.

2012-01-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure: Regenerate.
	* config.in: Regenerate.

2012-01-12  Keith Seitz  <keiths@redhat.com>

	PR mi/10586
	* varobj.c (ANONYMOUS_STRUCT_NAME): Define.
	(ANONYMOUS_UNION_NAME): Define.
	(is_path_expr_parent): New function.
	(get_path_expr_parent): New function.
	(is_anonymous_child): New function.
	(create_child_with_value): If the child is anonymous and without
	a name, assign an object name to it.
	(c_describe_child): Use get_path_expr_parent to determine
	the parent expression.
	If there field represents an anonymous struct or union and
	has no name, set an appropriate display name and expression.
	(cplus_describe_child): Likewise.

2012-01-12  Pedro Alves  <palves@redhat.com>

	* i386-tdep.c (i386_frame_cache_1): Also mark the frame base as
	available when %ebp is found to be zero (outermost).

2012-01-11  Andreas Tobler  <andreast@fgznet.ch>

	* common/gdb_assert.h (gdb_static_assert): Rename static_assert to
	an internal gdb_static_assert.
	* mi/mi-common.c: Rename static_assert to gdb_static_assert.

2012-01-11  Tom Tromey  <tromey@redhat.com>

	PR gdb/9598:
	* breakpoint.c (_initialize_breakpoint): Fix help for "catch
	catch" and "catch throw".

2012-01-11  Paul Hilfinger  <hilfingr@adacore.com>

	* blockframe.c (block_innermost_frame): Start search from selected
	frame, if present, or otherwise the current frame.

	* c-exp.y (variable): Update innermost_block for
	'block COLONCOLON NAME' clause.
	* m2-exp.y (variable): Ditto.
	* objc-exp.y (variable): Ditto.

2012-01-10  Tom Tromey  <tromey@redhat.com>

	PR python/13199:
	* python/python.c (finish_python_initialization): Set sys.argv.

2012-01-10  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf_decode_lines): Remove arg "abfd".  New arg
	"want_line_info".  All callers updated.
	(dwarf_decode_lines_1): New function.
	(handle_DW_AT_stmt_list): Add function comment.
	New arg "want_line_info".  All callers updated.
	(read_file_scope,read_type_unit_scope): Move comment from
	handle_DW_AT_stmt_list to here.

2012-01-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix regression after libiberty/ update for GCC PR 6057 and others.
	* c-exp.y (operator) <OPERATOR DELETE>
	(operator) <OPERATOR DELETE '[' ']'>: Add trailing space.
	* cp-name-parser.y (fill_comp, make_operator, make_dtor)
	(make_builtin_type, make_name): New variable i, add gdb_assert.
	(operator) <OPERATOR NEW>: Update ARGS to 3.
	(operator) <OPERATOR DELETE>: Add trailing space.
	(operator) <OPERATOR NEW '[' ']'>: Update ARGS to 3.
	(operator) <OPERATOR DELETE '[' ']'>: Add trailing space.
	* cp-support.c (cp_canonicalize_string): Check NULL from
	cp_comp_to_string, call warning and return.

2012-01-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix duplicate .o files after omitting libbfd.a.
	* Makefile.in (ALL_TARGET_OBS): Remove corelow.o.
	(SFILES): Add corelow.c.
	(COMMON_OBS): Add corelow.o.
	(ALLDEPFILES): Remove corelow.c.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Remove corelow.o.
	* config/alpha/alpha-osf3.mh: Likewise.
	* config/alpha/fbsd.mh: Likewise.
	* config/arm/nbsdaout.mh: Likewise.
	* config/arm/nbsdelf.mh: Likewise.
	* config/i386/i386gnu.mh: Likewise.
	* config/ia64/hpux.mh: Likewise.
	* config/ia64/linux.mh: Likewise.
	* config/m32r/linux.mh: Likewise.
	* config/m68k/linux.mh: Likewise.
	* config/mips/irix5.mh: Likewise.
	* config/mips/irix6.mh: Likewise.
	* config/pa/hpux.mh: Likewise.
	* config/pa/linux.mh: Likewise.
	* config/powerpc/aix.mh: Likewise.
	* config/sparc/linux.mh: Likewise.
	* config/sparc/linux64.mh: Likewise.
	* config/sparc/sol2.mh: Likewise.
	* config/vax/vax.mh: Likewise.
	* configure.tgt (alpha*-*-freebsd* alpha*-*-kfreebsd*-gnu)
	(alpha*-*-netbsd*, alpha*-*-knetbsd*-gnu, alpha*-*-openbsd*)
	(am33_2.0*-*-linux*, arm*-wince-pe, arm*-*-mingw32ce*, arm*-*-linux*)
	(arm*-*-openbsd*, cris*, frv-*-*, hppa*-*-hpux*, hppa*-*-netbsd*)
	(hppa*-*-openbsd*, i[34567]86-*-dicos*, i[34567]86-*-freebsd*)
	(i[34567]86-*-kfreebsd*-gnu, i[34567]86-*-netbsd*)
	(i[34567]86-*-knetbsd*-gnu, i[34567]86-*-openbsd*, i[34567]86-*-nto*)
	(i[34567]86-*-solaris2.1[0-9]*, x86_64-*-solaris2.1[0-9]*)
	(i[34567]86-*-solaris*, i[34567]86-*-linux*, i[34567]86-*-cygwin*)
	(i[34567]86-*-mingw32*, m68*-*-netbsd*, m68*-*-knetbsd*-gnu)
	(m68*-*-openbsd*, m88*-*-openbsd*, microblaze*-linux-*)
	(microblaze*-*-linux*, mips*-*-linux*, mips*-*-netbsd*)
	(mips*-*-knetbsd*-gnu, mips64*-*-openbsd*, powerpc-*-netbsd*)
	(powerpc-*-knetbsd*-gnu, powerpc-*-openbsd*, powerpc-*-linux*)
	(powerpc64-*-linux*, s390*-*-*, score-*-*, sh*-*-linux*)
	(sh*-*-netbsdelf*, sh*-*-knetbsd*-gnu, sh*-*-openbsd*)
	(sparc*-*-freebsd*, sparc*-*-kfreebsd*-gnu, sparc-*-netbsd*)
	(sparc-*-knetbsd*-gnu, sparc64-*-netbsd*, sparc64-*-knetbsd*-gnu)
	(sparc-*-openbsd*, sparc64-*-openbsd*, tic6x-*-*linux, vax-*-netbsd*)
	(vax-*-knetbsd*-gnu, vax-*-openbsd*, x86_64-*-dicos*, x86_64-*-linux*)
	(x86_64-*-freebsd*, x86_64-*-kfreebsd*-gnu, x86_64-*-netbsd*)
	(x86_64-*-knetbsd*-gnu, x86_64-*-openbsd*, xtensa*-*-linux*): Remove
	corelow.o from gdb_target_obs.
	* corefile.c (core_target): Update the comment on NULL value.
	(core_file_command): Replace error by gdb_assert on CORE_TARGET.
	* corelow.c (sniff_core_bfd): Call error instead of warning on zero
	MATCHES.  Drop YUMMY set on NULL.
	(core_close): Do not call exit_inferior_silent on zero PID.  Do not
	reclaim CORE_DATA if it is already NULL.

2012-01-09  Doug Evans  <dje@google.com>

	* gdbtypes.c (safe_parse_type): Initialize type to keep gcc happy.
	* varobj.c (varobj_set_value): Initialize val,value to keep gcc happy.

2012-01-09  Keith Seitz  <keiths@redhat.com>

	* breakpoint.c (wrapper.h): Don't include.

2012-01-09  Keith Seitz  <keiths@redhat.com>

	* Makefile.in (SFILES): Remove wrapper.c.
	(HFILES_NO_SRCDIR): Remove wrapper.h.
	(COMMON_OBS): Remove wrapper.o.
	* cli/cli-interp.c: Don't inlude wrapper.h.
	* corelow.c: Likewise.
	(core_open): Replace gdb_target_find_new_threads with
	TRY_CATCH around target_find_new_threads.
	* eval.c (fetch_subexp_value): Likewise for value_fetch_lazy.
	* gdbtypes.c (safe_parse_type): Likewise for parse_and_eval_type.
	* varobj.c (varobj_create): Likewise for parse_exp_1 and
	evaluate_expression.
	(varobj_set_value): Likewise for evaluate_expression and
	value_assign.
	(install_new_variable): Likewise for value_fetch_lazy.
	(adjust_value_for_child_access): Likewise for value_ind.
	(c_describe_child): Likewise for value_subscript and
	value_ind.
	(c_value_of_root): Likewise for evaluate_expression.
	* wrapper.c: Remove.
	* wrapper.h: Remove.

2012-01-09  Doug Evans  <dje@google.com>

	* dwarf2read.c (read_and_check_comp_unit_head): Renamed from
	partial_read_comp_unit_head.  Replace "buffer", "buffer_size" and
	"abfd" args with "section".  All callers updated.
	Error checking code moved ...
	(error_check_comp_unit_head): ... here.  New function.
	(read_and_check_type_unit_head): Renamed from read_type_unit_head.
	Delete arg "abfd".  New arg "type_offset".  All callers updated.
	(create_debug_types_hash_table): Simplify by using
	read_and_check_type_unit_head.

	* parser-defs.h (namecopy): Delete.
	* parse.c (namecopy, namecopy_size): Move into copy_name.

2012-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Partially fix duplicate .o files after omitting libbfd.a.
	* config/alpha/alpha-osf3.mh (NATDEPFILES): Remove solib.o.
	* config/i386/nbsdaout.mh (NATDEPFILES): Remove solib.o.
	* config/i386/obsdaout.mh (NATDEPFILES): Remove solib.o.
	* config/m68k/nbsdaout.mh (NATDEPFILES): Remove solib.o.
	* config/m68k/obsd.mh (NATDEPFILES): Remove solib.o.
	* config/powerpc/aix.mh (NATDEPFILES): Remove xcoffread.o.
	* config/vax/nbsdaout.mh (NATDEPFILES): Remove solib.o.

2012-01-09  Pedro Alves  <palves@redhat.com>

	* MAINTAINERS: Update my email address.

2012-01-08  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_per_objfile): Rename n_type_comp_units to
	n_type_units.  Rename type_comp_units to all_type_units.
	All uses updated.
	(add_signatured_type_cu_to_table): Renamed from
	add_signatured_type_cu_to_list.  All callers updated.

	* gdbtypes.h (struct cplus_struct_type): Delete member
	nfn_fields_total.  All uses removed.

2012-01-06  Doug Evans  <dje@google.com>

	* dwarf2read.c: Move FIXME from dwarf2_build_psymtabs_hard
	to top of file.
	(dwarf2_find_comp_unit): Delete.
	(process_psymtab_comp_unit): Make result "void".
	Delete args buffer, info_ptr, buffer_size, and replace with
	"section".  All callers updated.
	(dwarf2_build_psymtabs_hard): Simplify.

2012-01-06  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* ada-lang.c (ada_exception_name_addr): Add `volatile' keyword
	before `struct gdb_exception'.
	* breakpoint.c (update_global_location_list_nothrow)
	(update_breakpoint_locations, enable_breakpoint_disp): Likewise.
	* cp-abi.c (value_rtti_type): Likewise.
	* cp-support.c (cp_validate_operator): Likewise.
	* infrun.c (insert_exception_resume_breakpoint)
	(check_exception_resume, keep_going): Likewise.
	* mi-interp.c (mi_breakpoint_created)
	(mi_breakpoint_modified): Likewise.
	* rs6000-aix-tdep.c (rs6000_convert_from_func_ptr_addr): Likewise.
	* solib-ia64-hpux.c (ia64_hpux_at_dld_breakpoint_p)
	(ia64_hpux_handle_dld_breakpoint_1): Likewise.

2012-01-05  Doug Evans  <dje@google.com>

	* dwarf2read.c (statement_prologue): Delete, unused.

	* dwarf2read.c (dwarf2_per_cu_addr_size): Make result type an int.
	* dwarf2loc.h (dwarf2_per_cu_addr_size): Update.

	* dwarf2read.c (comp_unit_header): Delete, unused.

2012-01-05  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.tgt [s390*-*-*] (gdb_target_obs): Add corelow.o.
	* config/s390/s390.mh (NATDEPFILES): Remove corelow.o.

2012-01-05  Khoo Yit Phang  <khooyp@cs.umd.edu>

	* infrun.c (normal_stop): Don't skip calling the normal_stop
	observers if the thread was doing a multi-step, but stopped for
	some reason other than stepping.

2012-01-05  Pedro Alves  <alves.ped@gmail.com>

	* cli/cli-decode.h: Add comments.
	(CMD_LIST_AMBIGUOUS): Moved to command.h
	(add_cmd, add_alias_cmd, add_prefix_cmd, add_abbrev_prefix_cmd)
	(set_cmd_cfunc, set_cmd_sfunc, set_cmd_completer, cmd_cfunc_eq)
	(set_cmd_context, get_cmd_context, lookup_cmd, lookup_cmd_1)
	(deprecate_cmd, deprecated_cmd_warning, lookup_cmd_composition)
	(add_com, add_com_alias, add_info, add_info_alias)
	(complete_on_cmdlist, complete_on_enum, help_list): Remove
	declarations.
	* command.h: Add and adjust comments.
	(CMD_LIST_AMBIGUOUS): Moved here.
	(help_cmd, help_cmd_list): Delete declarations.

2012-01-04  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_read_abbrevs): Delete arg "abfd".
	All callers updated.
	(load_full_type_unit): Renamed from read_signatured_type_at_offset.
	Replace all arguments with "per_cu".  All callers updated.

	* dwarf2read.c (dwarf2_per_cu_data): Remove outdated comment.

	* dwarf2read.c (init_one_comp_unit): Delete arg "objfile".
	New arg "per_cu".  All callers updated.

	Delete #if 0'd out code.
	* language.c (binop_result_type): Delete.
	(simple_type, ordered_type, same_type, integral_type): Delete.
	(numeric_type, character_type, string_type, boolean_type): Delete.
	(float_type, structured_type): Delete.
	* language.h: Update.

2012-01-04  Tom Tromey  <tromey@redhat.com>

	* python/py-value.c (valpy_binop): Initialize 'res_val'.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* corefile.c (close_exec_file): Delete.
	(reopen_exec_file): Remove commented out code that seems related
	to close_exec_file, which is being deleted here.
	* inferior.h (close_exec_file): Delete.
	* fork-child.c (fork_inferior): Remove call to fork_inferior.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c: #include "cli/cli-utils.h".
	(get_selections): Use skip_spaces.
	(ada_get_next_arg): Use skip_spaces and skip_to_space.
	(catch_ada_exception_command_split): Use skip_spaces.
	(ada_decode_assert_location): Likewise.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* linespec.c (decode_line_internal): Check for C++ or Java
	compound constructs only if the current language is C, C++
	or Java.

2012-01-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Revert:
	2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
		    Joel Brobecker  <brobecker@adacore.com>
	Fix regression for gdb.cp/gdb2495.exp with gcc-4.7.
	* arch-utils.c (displaced_step_at_entry_point): Incrase BP_LEN skip to
	3 times.
	* infcall.c (call_function_by_hand) <AT_SYMBOL>: Move it upwards and
	fall through into AT_ENTRY_POINT.
	(call_function_by_hand) <AT_ENTRY_POINT>: New variable bp_len.  Adjust
	DUMMY_ADDR with it.
	* ppc-linux-tdep.c (ppc_linux_displaced_step_location): Increase
	PPC_INSN_SIZE skip to 3 times.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* linespec.c (add_minsym): Preserve function descriptors.

2012-01-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* breakpoint.c (all_locations_are_pending): Consider locations
	in program spaces executing during startup pending as well.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	Copyright year update in most files of the GDB Project.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* copyright.sh: Delete.
	* copyright.py: Rewrite.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* gnulib/extra/update-copyright: New file, imported from gnulib.

2012-01-04  Joel Brobecker  <brobecker@adacore.com>

	* README (Copyright and License Notices): New section.

2012-01-03  Tom Tromey  <tromey@redhat.com>

	PR python/12533:
	* python/py-value.c (valpy_dereference, valpy_get_address
	valpy_get_dynamic_type, valpy_lazy_string, valpy_do_cast)
	(valpy_getitem, valpy_call, valpy_binop, valpy_negative)
	(valpy_absolute, valpy_richcompare): Free intermediate values.

2011-01-03  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c: Reformat the copyright notice.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (ALL_TARGET_OBS): Remove solib-target.o.
	* configure.tgt (arm*-wince-pe, arm*-*-mingw32ce*, arm*-*-symbianelf*)
	(i[34567]86-*-dicos*, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
	(x86_64-*-dicos*, x86_64-*-mingw*): Remove solib-target.o.
	Revert this part of:
	2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	Build gdb directly from *.o files not using libgdb.a.
	* Makefile.in (COMMON_OBS): Remove solib-target.o.

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

	* gdb/common/gdb_thread_db.h, gdb/dbxread.c, gdb/environ.c,
	gdb/gcore.h, gdb/rs6000-tdep.h, gdb/s390-nat.c, gdb/tic6x-tdep.c:
	Reformat the copyright header.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Revert this part of:
	2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	Remove the gdbtui binary.
	* gdb.c (main): Remove args.interpreter_p initialization.
	* main.c (captured_main): Set INTERPRETER_P directly by INTERP_CONSOLE.
	* main.h (struct captured_main_args): Remove interpreter_p.

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

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

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

	* top.c (print_gdb_version): Update copyright year.

2012-01-02  Yao Qi  <yao@codesourcery.com>

	* inf-ptrace.c (inf_ptrace_xfer_partial): Reindent.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	Fix regression for gdb.cp/gdb2495.exp with gcc-4.7.
	* arch-utils.c (displaced_step_at_entry_point): Incrase BP_LEN skip to
	3 times.
	* infcall.c (call_function_by_hand) <AT_SYMBOL>: Move it upwards and
	fall through into AT_ENTRY_POINT.
	(call_function_by_hand) <AT_ENTRY_POINT>: New variable bp_len.  Adjust
	DUMMY_ADDR with it.
	* ppc-linux-tdep.c (ppc_linux_displaced_step_location): Increase
	PPC_INSN_SIZE skip to 3 times.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* amd64-linux-nat.c (update_debug_registers_callback): New comment on
	the return value.
	* i386-linux-nat.c (update_debug_registers_callback): Likewise.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Build gdb directly from *.o files not using libgdb.a.
	* Makefile.in (SUBDIR_TUI_OBS): Remove duplicate tui.o.
	(COMMON_OBS): Remove solib-target.o.
	(LIBGDB_OBS, libgdb.a): Move it before the gdb$(EXEEXT) rule.
	(gdb$(EXEEXT)): Replace libgdb.a with $(LIBGDB_OBS).
	(LIBGDB_OBS, libgdb.a): Move it above.
	* configure.tgt (alpha*-*-linux*, alpha*-*-freebsd*)
	(alpha*-*-kfreebsd*-gnu, alpha*-*-netbsd*, alpha*-*-knetbsd*-gnu)
	(alpha*-*-openbsd*, am33_2.0*-*-linux*, arm*-wince-pe)
	(arm*-*-mingw32ce*, arm*-*-linux*, arm*-*-netbsd*, arm*-*-knetbsd*-gnu)
	(arm*-*-openbsd*, cris*, frv-*-*, hppa*-*-hpux*, hppa*-*-linux*)
	(hppa*-*-netbsd*, hppa*-*-openbsd*, i[34567]86-*-darwin*)
	(i[34567]86-*-dicos*, i[34567]86-*-freebsd*, i[34567]86-*-kfreebsd*-gnu)
	(i[34567]86-*-netbsd*, i[34567]86-*-knetbsd*-gnu, i[34567]86-*-openbsd*)
	(i[34567]86-*-nto*, i[34567]86-*-solaris2.1[0-9]*)
	(x86_64-*-solaris2.1[0-9]*, i[34567]86-*-solaris*, i[34567]86-*-linux*)
	(i[34567]86-*-gnu*, ia64-*-linux*, m32r*-*-linux*, m68*-*-linux*)
	(m68*-*-netbsd*, m68*-*-knetbsd*-gnu, m68*-*-openbsd*)
	(microblaze*-linux-*, microblaze*-*-linux*, mips*-sgi-irix5*)
	(mips*-sgi-irix6*, mips*-*-linux*, mips*-*-netbsd*)
	(mips*-*-knetbsd*-gnu, mips64*-*-openbsd*, powerpc-*-netbsd*)
	(powerpc-*-knetbsd*-gnu, powerpc-*-openbsd*, powerpc-*-aix*, rs6000-*-*)
	(powerpc-*-linux*, powerpc64-*-linux*, powerpc*-*-*, s390*-*-*)
	(sh*-*-linux*, sh*-*-netbsdelf*, sh*-*-knetbsd*-gnu, sh*-*-openbsd*)
	(sparc-*-linux*, sparc64-*-linux*, sparc*-*-freebsd*)
	(sparc*-*-kfreebsd*-gnu, sparc-*-netbsd*, sparc-*-knetbsd*-gnu)
	(sparc64-*-netbsd*, sparc64-*-knetbsd*-gnu, sparc-*-openbsd*)
	(sparc64-*-openbsd*, sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*)
	(sparc-*-solaris2*, sparcv9-*-solaris2*, sparc64-*-solaris2*)
	(vax-*-netbsd*, vax-*-knetbsd*-gnu, x86_64-*-darwin*, x86_64-*-dicos*)
	(x86_64-*-linux*, x86_64-*-freebsd*, x86_64-*-kfreebsd*-gnu)
	(x86_64-*-netbsd*, x86_64-*-knetbsd*-gnu, x86_64-*-openbsd*)
	(xtensa*-*-linux*, xtensa*): Remove solib.o from gdb_target_obs.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Remove the gdbtui binary.
	* .gitignore (/gdbtui): Remove.
	* Makefile.in (TUI): Remove.
	(SUBDIR_TUI_OBS): Remove tui-main.o.
	(SUBDIR_TUI_SRCS): Remove tui/tui-main.c.
	(all-tui, install-tui, uninstall-tui, $(TUI)$(EXEEXT), clean-tui)
	(tui-main.o): Remove.
	(all_object_files): Remove tui-main.o.
	* NEWS: New note for the gdbtui removal.
	* configure: Rebuilt.
	* configure.ac: No longer add all-tui, clean-tui, install-tui and
	uninstall-tui to CONFIG_ALL, CONFIG_CLEAN, CONFIG_INSTALL and
	CONFIG_UNINSTALL respectively.
	* gdb.c (main): Remove args.interpreter_p initialization.
	* main.c (captured_main): Set INTERPRETER_P directly by INTERP_CONSOLE.
	* main.h (struct captured_main_args): Remove interpreter_p.
	* tui/tui-main.c: Remove.

2012-01-01  Doug Evans  <dje@google.com>

	* dwarf2read.c (dwarf2_compute_name): Simplify objfile references.
	(dwarf2_physname, read_import_statement): Ditto.
	(read_call_site_scope, dwarf2_record_block_ranges): Ditto.
	(process_structure_scope read_subroutine_type): Ditto.
	(read_typedef, load_partial_dies, read_partial_die): Ditto.
	(find_partial_die, dwarf_decode_lines, lookup_die_type): Ditto.
	(dwarf2_fetch_die_location_block): Ditto.
	(dwarf_decode_macros, dwarf2_symbol_mark_computed): Ditto.

	* dwarf2read.c (read_signatured_type): Delete `objfile' arg.
	All callers updated.
	(load_full_comp_unit, queue_comp_unit, process_queue): Ditto.
	(dw2_do_instantiate_symtab, dw2_instantiate_symtab): Ditto.
	(process_psymtab_comp_unit, load_partial_comp_unit): Ditto.

	* dwarf2read.c (load_cu): Move assert to more useful location.

	* dwarf2read.c (free_heap_comp_unit): Renamed from free_one_comp_unit.
	All callers updated.

	* dwarf2read.c (dwarf2_per_objfile): Add comment.
	(dwarf2_elf_names): Minor reformat.
	(dwarf2_per_cu_data): Tweak comment.
	(dwarf2_read_section): Fix comment.
	(create_all_comp_units): Fix comment.
	(load_full_comp_unit): Fix comment.
	(process_full_comp_unit): Fix comment.
	(read_signatured_type): Fix comment.

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