2012-11-30  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (print_one_breakpoint_location): Combine two
	blocks handling 'hit count' together.

2012-11-30  Yao Qi  <yao@codesourcery.com>

	* infrun.c (error_is_running, ensure_not_running): Move them
	to ...
	* infcmd.c (error_is_running, ensure_not_running): ... here.
	Make them 'static'.
	* inferior.h: Remove declarations of error_is_running and
	ensure_not_running.

2012-11-30  Yao Qi  <yao@codesourcery.com>

	* tic6x-linux-tdep.c (tic6x_register_sigcontext_offset): Don't
	check REGNUM >= 0.

2012-11-30  Yao Qi  <yao@codesourcery.com>

	* infrun.c: Make the declaration of 'init_infwait_state'
	static.
	(init_infwait_state): Make it 'static'.

2012-11-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* python/python.c (finalize_python): Cast unused PyGILState_Ensure
	return value to void to avoid compiler warning.

2012-11-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* opencl-lang.c (opencl_print_type): New function.
	(opencl_language_arch_info): Install it.

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

	* contrib/ari/gdb_ari.sh: Remove rules for xasprintf and
	xvasprintf.
	* common/common-utils.c (xasprintf, xvasprintf): Remove.
	* common/common-utils.h (xasprintf, xvasprintf): Remove.

2012-11-29  Jerome Guitton  <guitton@adacore.com>

	* ada-lang.c (ada_is_interface_tag): New function.
	(ada_is_ignored_field): Add interface tags to the list
	of ignored fields.

2012-11-29  Jerome Guitton  <guitton@adacore.com>

        * ada-lang.h (ada_tag_value_at_base_address): New function
	declaration.
	* ada-lang.c (is_ada95_tag, ada_tag_value_at_base_address):
	New functions.
	(ada_to_fixed_type_1, ada_evaluate_subexp): Let ada_tag_base_address
	relocate the class-wide value if need be.
	(ada_value_struct_elt, ada_value_ind, ada_coerce_ref):
	Let ada_tag_value_at_base_address relocate the class-wide access/ref
	before dereferencing it.
	* ada-valprint.c (ada_val_print_1): Relocate to base address
	before displaying the content of an interface-wide ref.

2012-11-29  Jerome Guitton  <guitton@adacore.com>

	* ada-lang.c (ada_evaluate_subexp): Unwrap only in EVAL_NORMAL.

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

	GDB 7.5.1 released.

2012-11-29  Yao Qi  <yao@codesourcery.com>
	    Tom Tromey  <tromey@redhat.com>

	* eval.c (evaluate_subexp_standard): Get the correct pointer
	type for TYPE_CODE_MEMBERPTR.

2012-11-28  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* rs6000-tdep.c (gdb_print_insn_powerpc): Remove info->mach checking,
	since now it is being done by binutils' powerpc_init_dialect().

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

	PR gdb/14290:
	* solib-darwin.c (gdb_bfd_mach_o_fat_extract): New function.
	(darwin_solib_get_all_image_info_addr_at_init, darwin_bfd_open):
	Use it.
	* gdb_bfd.h (gdb_bfd_mark_parent): Declare.
	* gdb_bfd.c (gdb_bfd_mark_parent): New function.
	(gdb_bfd_openr_next_archived_file): Use it.

2012-11-28  Markus Metzger <markus.t.metzger@intel.com>

	* configure.ac: Check for linux/perf_event.h.
	* config.in: Regenerated.
	* configure: Regenerated.

2012-11-28  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (_initialize_breakpoint): Call add_alias_cmd to
	abbreviate 'delete tracepoints' to 'delete tr'.
	* corefile.c (_initialize_core): Call add_alias_cmd to
	abbreviate 'set gnutarget' to 'set g'.
	* value.c (_initialize_values): Call add_alias_cmd to abbreviate
	'show convenience' to 'show conv'.

2012-11-27  Joel Brobecker  <brobecker@adacore.com>

	* sparc-sol2-nat.c (supply_gregset): Fix first parameter in
	call to sparc_supply_fpregset.
	(fill_fpregset): Fix first parameter in call to
	sparc_collect_fpregset.

2012-11-27  Daniel Jacobowitz  <dan@codesourcery.com>
	    Kazu Hirata  <kazu@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* objfiles.c (init_entry_point_info): Call
	gdbarch_convert_from_func_ptr_addr and
	gdbarch_addr_bits_remove here ...
	(entry_point_address_query): ... instead of here.
	* solib-svr4.c (exec_entry_point): Call
	gdbarch_addr_bits_remove.
	* symfile.c (generic_load): Call gdbarch_addr_bits_remove on
	the entry address.

2012-11-27  Daniel Jacobowitz  <dan@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* eval.c (evaluate_subexp_standard): Add handling of
	TYPE_CODE_MEMBERPTR when calling functions.  Correct the
	result of ptype for calling a TYPE_CODE_METHODPTR.

2012-11-27  Yao Qi  <yao@codesourcery.com>

	* symtab.c (symtab_symbol_info): Fix a -Wformat-extra-args
	warning.
	Add i18n markup.

2012-11-26  Alexander Larsson  <alexl@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention mini debuginfo feature.
	* minidebug.c: New file.
	* configure.ac: Check for lzma.
	* configure, config.in: Rebuild.
	* Makefile.in (LIBLZMA): New variable.
	(CLIBS): Include LIBLZMA.
	(SFILES): Mention minidebug.c.
	(COMMON_OBS): Mention minidebug.o.
	* symfile.c (read_symbols): New function.
	(syms_from_objfile, reread_symbols): Call it.
	* symfile.h (find_separate_debug_file_in_section): Declare.

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

	* exec.c (exec_file_attach): Move cleanup after verifying that
	memory has in fact been allocated.

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

	* ada-lang.c (user_select_syms): Use SYMBOL_SYMTAB.
	* dwarf2read.c (dw2_find_symbol_file, fixup_go_packaging): Use
	SYMBOL_SYMTAB.
	* skip.c (skip_info): Use SYMBOL_SYMTAB.

2012-11-26  Maxime Villard  <rustyBSD@gmx.fr>
	    Pedro Alves  <palves@redhat.com>

	* common/linux-osdata.c (linux_xfer_osdata_fds): Decrease buffer
	size parameter passed to readlink by one byte.
	* fbsd-nat.c (fbsd_pid_to_exec_file): Ditto.
	* linux-nat.c (linux_child_pid_to_exec_file): Ditto.
	* nbsd-nat.c (nbsd_pid_to_exec_file): Ditto.
	* inf-child.c (inf_child_fileio_readlink): Decrease local buffer's
	size by one byte.

2012-11-26  Yao Qi  <yao@codesourcery.com>

	* f-valprint.c (f77_create_arrayprint_offset_tbl): Remove
	extraneous parentheses.

2012-11-26  Yao Qi  <yao@codesourcery.com>

	* remote.c (remote_start_remote): Typo fix.

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

	* sparc-tdep.h (struct sparc_fpregset): New data structure.
	(sparc32_sunos4_fpregset, sparc32_bsd_fpregset,
	sparc32_sol2_fpregset): Declare new globals.
	(sparc32_supply_fpregset, sparc32_collect_fpregset): Add new
	'fpregset' argument.
	* sparc64-tdep.h (sparc64_supply_fpregset,
	sparc64_collect_fpregset): Likewise.
	(sparc64_sol2_fpregset, sparc64_bsd_fpregset): Declare new
	globals.
	* sparc-nat.h (struct sparc_fpregset): Add forward declaration.
	(sparc_fpregset): Declare new global.
	(sparc_supply_fpregset, sparc_collect_fpregset): Add new
	'fpregset' argument.
	* sparc-linux-nat.c (supply_fpregset): Pass sparc_fpregset down
	into handler.
	(fill_fpregset): Likewise.
	(_initialize_sparc_linux_nat): Set sparc_fpregset to
	sparc32_bsd_fpregset.
	* sparc-linux-tdep.c (sparc32_linux_supply_core_fpregset): Pass
	sparc32_bsd_fpregset down into handler.
	(sparc32_linux_collect_core_fpregset): Likewise.
	* sparc-nat.c (sparc_fpregset): Define.
	(sparc_supply_fpregset): Add 'fpregset' argument.
	(sparc_collect_fpregset): Likewise.
	(sparc_fetch_inferior_registers): Pass sparc_fpregset down
	into fpregset handler.
	(sparc_store_inferior_registers): Likewise.
	(_initialize_sparc_nat): Set sparc_fpregset to
	sparc32_sunos4_fpregset if NULL.
	* sparc-sol2-nat.c (supply_gregset): Pass sparc_sol2_fpregset
	down into handler.
	(fill_fpregset): Likewise.
	* sparc-sol2-tdep.c (sparc32_sol2_fpregset): Define.
	* sparc-tdep.c (sparc32_supply_fpregset): Add fpregset arg and
	use it to compute offsets.
	(sparc32_collect_fpregset): Likewise.
	(sparc32_sunos4_fpregset, sparc32_bsd_fpregset): Define.
	* sparc64-linux-nat.c (supply_fpregset): Pass sparc64_bsd_fpregset
	down into handler.
	(fill_fpregset): Likewise.
	* sparc64-linux-tdep.c (sparc64_linux_supply_core_fpregset):
	Likewise.
	(sparc64_linux_collect_core_fpregset): Likewise.
	* sparc64-sol2-tdep.c (sparc64_sol2_fpregset): Define.
	* sparc64-tdep.c (sparc64_supply_fpregset): Add fpregset arg and
	use it to compute offsets.
	(sparc64_collect_fpregset): Likewise.
	(sparc64_bsd_fpregset): Define.
	* sparc64fbsd-tdep.c (sparc64fbsd_supply_fpregset): Padd
	sparc64_bsd_fpregset down into handler.
	(sparc64fbsd_collect_fpregset): Likewise.
	* sparc64nbsd-nat.c (sparc64nbsd_supply_fpregset): Add fpregset arg
	and pass sparc{32,64}_bsd_fpregset down into handler.
	(sparc64nbsd_collect_fpregset): Likewise.
	* sparc64nbsd-tdep.c (sparc64nbsd_supply_fpregset): Pass
	sparc64_bsd_fpregset down into handler.
	* sparc64obsd-tdep.c (sparc64obsd_supply_gregset): Likewise.
	* sparcnbsd-nat.c (_initialize_sparcnbsd_nat): Set sparc_fpregset
	to sparc32_bsd_fpregset.
	* sparcnbsd-tdep.c (sparc32nbsd_supply_gregset): Pass
	sparc32_bsd_fpregset down into sparc32_supply_fpregset.
	(sparc32nbsd_supply_fpregset): Likewise.

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

	* gdbtypes.h (struct cplus_struct_type) <localtype_ptr>: Remove
	field.
	(TYPE_LOCALTYPE_PTR, TYPE_LOCALTYPE_FILE, TYPE_LOCALTYPE_LINE):
	Remove.
	* c-typeprint.c (c_type_print_base): Update.

2012-11-21  Yao Qi  <yao@codesourcery.com>

	PR tdep/7438
	* gdbarch.sh (smash_text_address): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.
	* arm-tdep.c (arm_smash_text_address): Remove.
	(arm_gdbarch_init): Don't call set_gdbarch_smash_text_address.
	* hppa-tdep.c (hppa_smash_text_address): Remove.
	(hppa_addr_bits_remove): Rename from hppa_smash_text_address.
	(hppa_gdbarch_init): Don't call set_gdbarch_smash_text_address.
	Caller update.
	* coffread.c (coff_symtab_read): Caller update.
	* dbxread.c (process_one_symbol): Likewise.
	* elfread.c (record_minimal_symbol): Likewise.
	* somread.c (som_symtab_read): Likewise.

2012-11-20  Pierre Muller  <muller@sourceware.org>

	ARI fixes: sprintf rule.
	Replace sprintf function calls for char arrays by
	calls to xsnprintf calls.
	* arm-tdep.c (arm_push_dummy_call): Replace sprintf by xsnprintf.
	(arm_dwarf_reg_to_regnum, arm_return_value): Ditto.
	(arm_neon_quad_read, arm_pseudo_read): Ditto.
	(arm_neon_quad_write, arm_pseudo_write): Ditto.
	* breakpoint.c (condition_completer): Ditto.
	(create_tracepoint_from_upload): Ditto.
	* dwarf2read.c (file_full_name): Ditto.
	* gcore.c (gcore_command): Ditto.
	* gnu-nat.c (proc_string, gnu_pid_to_str): Ditto.
	* go32-nat.c (go32_sysinfo): Ditto.
	* interps.c (interp_set): Ditto.
	* m32c-tdep.c (make_types): Ditto.
	* ppc-linux-nat.c (fetch_register, store_register): Ditto.
	* remote-m32r-sdi.c (m32r_open): Ditto.
	* sol-thread.c (td_err_string): Ditto.
	(td_state_string, solaris_pid_to_str): Ditto.
	* symtab.c (gdb_mangle_name): Ditto.
	* cli/cli-script.c (execute_control_command): Ditto.
	(define_command, document_command): Ditto.
	* tui/tui-io.c (tui_rl_display_match_list): Ditto.
	* tui/tui-stack.c (tui_make_status_line): Ditto.
	* tui/tui-win.c (tui_update_gdb_sizes): Ditto.

2012-11-20  Mike Frysinger  <vapier@gentoo.org>

	* cli/cli-decode.c (complete_on_cmdlist): Add a fourth arg and check
	it when looking at ptr->func.
	* command.h (complete_on_cmdlist): Add a fourth arg.
	* completer.c (complete_line_internal): Add local ignore_help_classes,
	and set it to 1 when reason is not handle_help.  Pass this down to
	lookup_cmd_1 and complete_on_cmdlist.

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

	* completer.c (count_struct_fields): Remove.
	(expression_completer): Don't call count_struct_fields.

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

	* annotate.c (breakpoints_changed): Rename to ...
	(annotate_breakpoints_changed): ... this.
	(annotate_stopped, breakpoint_changed): Adjust caller.
	* annotate.h (breakpoints_changed): Rename to ...
	(annotate_breakpoints_changed): ... this.
	* breakpoint.c (set_breakpoint_condition, breakpoint_set_commands)
	(do_map_commands_command, init_raw_breakpoint, clear_command)
	(set_ignore_count, enable_breakpoint_disp): Adjust callers.

2012-11-20  David S. Miller  <davem@davemloft.net>

	* common/linux-osdata.c (get_number_of_cpu_cores): Delete.
	(linux_xfer_osdata_processes): Fetch _SC_NPROCESSORS_ONLN via
	sysconf.
	(get_cores_used_by_process): Update comment.

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

	* objfiles.c (init_entry_point_info): Remove trailing spaces.

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

	* infrun.c (handle_inferior_event): Pass 'saved_singlestep_ptid'
	to deprecated_context_hook.

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

	* infrun.c (infwait_state): Add static.

2012-11-16  Keith Seitz  <keiths@redhat.com>

	PR c++/13615
	* cp-namespace.c (cp_lookup_symbol_in_namespace): Add SEARCH
	parameter and pass it to lookup_symbol_file.
	(cp_lookup_symbol_imports): Tell cp_lookup_symbol_in_namespace
	to search base classes.
	(cp_lookup_symbol_namespace): Likewise.
	(lookup_namespace_scope): Likewise.
	(lookup_symbol_file): Add SEARCH parameter.
	If SEARCH is non-zero and no symbol is found, lookup the class
	and call cp_lookup_nested_symbol.
	(find_symbol_in_baseclass): New function.
	(cp_lookup_nested_symbol): Do not let
	cp_lookup_symbol_in_namespace search through base classes.
	Do that later when there is no global symbol match.

2012-11-16  Doug Evans  <dje@google.com>

	* main.c (gdb_datadir_provided): New static global.
	(get_init_files): If --data-directory is provided,
	and SYSTEM_GDBINIT lives in data-directory, look for it there.
	* NEWS: Mention it.

2012-11-15  Pierre Muller  <muller@sourceware.org>

	ARI fixes: move gdb_wait and gdb_stat headers to common subdirectory.
	* gdb_stat.h: Delete. Moved to common directory.
	* common/gdb_stat.h: New file.
	* gdb_wait.h: Delete. Moved to common directory.
	* common/gdb_wait.h: New file.
	* Makefile.in (H_FILES_NO_SRC): Adapt to new header
	location.
	* contrib/ari/gdb_ari.sh (wait.h rule): Adapt to new gdb_wait.h
	location.
	(stat.h rule): Adapt to new gdb_stat.h location.
	* common/linux-osdata.c: Include "gdb_stat.h" header instead of
	<sys/stat.h> header.
	* common/linux-ptrace.c: Include "gdb_wait.h" header instead of
	<sys/wait.h> header.

2012-11-15  Pierre Muller  <muller@sourceware.org>

	* configure.ac (AC_HEADER_STAT): Remove.
	* gdb_stat.h (STAT_MACROS_BROKEN): Remove macro use
	and corresponding code.
	* configure: Regenerate.
	* config.in: Regenerate.

2012-11-15  Pierre Muller  <muller@sourceware.org>

	ARI xasprintf rule fixes.
	* dwarf2read.c (create_dwo_in_dwp): Use xstrprintf function
	instead of xasprintf.
	(open_and_init_dwp_file): Ditto.

2012-11-14  Luis Machado  <lgustavo@codesourcery.com>

	* value.c (value_actual_type): Check for TYPE_CODE_STRUCT
	target types.

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

	* configure, config.in: Rebuild.
	* configure.ac: Don't check for ctype.h, time.h.
	* expprint.c: Don't use HAVE_CTYPE_H.

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

	* gdbarch.h, gdbarch.c: Rebuild.
	* gdbarch.sh (set_target_gdbarch): Rename from
	deprecated_target_gdbarch_select_hack.
	* arch-utils.c (gdbarch_update_p): Update.
	(set_gdbarch_from_file): Update.

2012-11-14  Pierre Muller  <muller@sourceware.org>

	* MAINTAINERS (Responsible Maintainers/misc): Add myself
	as responsible of contrib/ari directory.

2012-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* arm-tdep.c (arm_addr_bits_remove): Do not adjust the low
	bit of EXC_RETURN.
	(arm_m_exception_cache, arm_m_exception_this_id)
	(arm_m_exception_prev_register, arm_m_exception_unwind_sniffer)
	(arm_m_exception_unwind): New.
	(arm_gdbarch_init): Register arm_m_exception_unwind.

2012-11-13  Giuseppe Montalto  <giuseppe.montalto@st.com>

	* mi/mi-main.c (mi_cmd_data_write_memory): Handle additional
	parameter COUNT, for pattern filling of memory regions.
	* NEWS: Mention it.

2012-11-13 Markus Metzger <markus.t.metzger@intel.com>

	* disasm.h (DISASSEMBLY_FILENAME): New macro.
	* disasm.c (do_mixed_source_and_assembly): Pass filename flag on
	to print_source_lines ().
	* symtab.h (PRINT_SOURCE_LINES_FILENAME): New print source lines
	flag.
	* source.c (print_source_lines_base): Prefix source line with
	filename if PRINT_SOURCE_LINES_FILENAME flag is set.

2012-11-13 Markus Metzger <markus.t.metzger@intel.com>

	* symtab.h (print_source_lines_flags): New enum.
	* source.c (print_source_lines_base): Change noerror to flags.
	(print_source_lines): Change noerror to flags.

2012-11-13  Pierre Muller  <muller@sourceware.org>

	ARI fixes: Avoid sprintf function use rule.
	* charset.c (convert_between_encodings): Use xsnprintf.
	* cli-out.c (cli_field_int): Likewise.
	* cp-namespace.c (cp_lookup_nested_symbol): Likewise.
	* expprint.c (op_name_standard): Likewise.
	* frv-tdep.c (set_variant_num_gprs): Likewise.
	(set_variant_num_fprs): Likewise.
	* m68hc11-tdep.c (m68hc11_initialize_register_info): Likewise.
	* nto-tdep.c (nto_find_and_open_solib): Likewise.
	(nto_init_solib_absolute_prefix): Likewise.
	* source.c (init_source_path): Likewise.
	(print_source_lines_base): Likewise.
	* valprint.c (print_wchar): Likewise.
	* mi/mi-out.c (mi_field_int): Likewise.
	windows-nat.c (windows_pid_to_exec_file): Likewise.
	(windows_create_inferior): Likewise.
	(_initialize_check_for_gdb_ini): Likewise.

2012-11-12  Joel Brobecker  <brobecker@adacore.com>

	* frame.h (deprecated_frame_register_read): Renames
	frame_register_read.
	* frame.c (deprecated_frame_register_read): Renames
	frame_register_read.  Update all callers.
	* i386-tdep.c: Update all callers of frame_register_read.
	* infcmd.c: Likewise.
	* jit.c: Likewise.
	* mips-tdep.c: Likewise.
	* mt-tdep.c: Likewise.
	* sh64-tdep.c: Likewise.

2012-11-12  Joel Brobecker  <brobecker@adacore.com>

	* frame.h (frame_register_read): Remove FIXME comment.
	* frame.c (frame_register_read): Add suggestion explaining
	which function to use in place of this one.

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

	* python/python.c (start_type_printers): Initialize 'result_obj'.

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

	* NEWS: Update.
	* data-directory/Makefile.in (PYTHON_FILES): Add
	type_printers.py.
	* python/lib/gdb/command/type_printers.py: New file.
	* python/lib/gdb/command/types.py (TypePrinter): New class.
	(_get_some_type_recognizers, get_type_recognizers,
	apply_type_recognizers, register_type_printer): New
	functions.
	* python/py-objfile.c (objfile_object) <type_printers>: New
	field.
	(objfpy_dealloc): Decref new field.
	(objfpy_new): Set new field.
	(objfpy_get_type_printers, objfpy_set_type_printers): New
	functions.
	(objfile_to_objfile_object): Set new field.
	(objfile_getset): Add "type_printers".
	* python/py-progspace.c (pspace_object) <type_printers>: New
	field.
	(pspy_dealloc): Decref new field.
	(pspy_new): Set new field.
	(pspy_get_type_printers, pspy_set_type_printers): New functions.
	(pspace_to_pspace_object): Set new field.
	(pspace_getset): Add "type_printers".
	* python/python.c (start_type_printers, apply_type_printers,
	free_type_printers): New functions.
	(_initialize_python): Set gdb.type_printers.
	* python/python.h (start_type_printers, apply_type_printers,
	free_type_printers): Declare.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update for new fields.
	(do_free_global_table, create_global_typedef_table,
	find_global_typedef): New functions.
	(find_typedef_in_hash): Use find_global_typedef.
	(whatis_exp): Use create_global_typedef_table.  Change cleanup
	handling.
	* typeprint.h (struct type_print_options) <global_typedefs,
	global_printers>: New fields.

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

	* c-typeprint.c (find_typedef_for_canonicalize,
	print_name_maybe_canonical): New functions.
	(c_print_type): Look up type name.
	(cp_type_print_derivation_info): Add flags argument.  Use
	print_name_maybe_canonical.
	(cp_type_print_method_args): Add wrapping.
	(c_type_print_varspec_prefix): Use print_name_maybe_canonical.
	(c_type_print_template_args): New function.
	(c_type_print_base): Change wrapping.  Use
	print_name_maybe_canonical.
	<TYPE_CODE_STRUCT>: Possibly create a typedef hash, and do
	type name lookups.
	* gdbtypes.c (types_equal): No longer static.
	* gdbtypes.h (types_equal): Declare.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update.
	(struct typedef_hash_table): New.
	(hash_typedef_field, eq_typedef_field,
	recursively_update_typedef_hash, add_template_parameters,
	create_typedef_hash, free_typedef_hash, do_free_typedef_hash,
	make_cleanup_free_typedef_hash, copy_typedef_hash_element,
	copy_typedef_hash, find_typedef_in_hash): New functions.
	* typeprint.h (struct type_print_options) <local_typedefs>:
	New field.
	(recursively_update_typedef_hash, add_template_parameters,
	create_typedef_hash, free_typedef_hash,
	make_cleanup_free_typedef_hash, copy_typedef_hash,
	find_typedef_in_hash): Declare.

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

	* cp-support.c (inspect_type,
	replace_typedefs_qualified_name, replace_typedefs): Add
	finder, data arguments.  Call as needed.
	(cp_canonicalize_string_full): New function.
	(cp_canonicalize_string_no_typedefs): Rewrite.
	* cp-support.h (canonicalization_ftype): New typedef.
	(cp_canonicalize_string_full): Declare.

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

	* NEWS: Update.
	* c-typeprint.c (c_type_print_base): Handle print_method and
	print_typedefs flags.
	* gdbcmd.h (setprinttypelist, showprinttypelist): Declare.
	* python/py-type.c (typy_str): Use LA_PRINT_TYPE and raw
	options.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update for new field.s
	(whatis_exp): Parse flags.  Use LA_PRINT_TYPE.
	(setprinttypelist, showprinttypelist, print_methods,
	print_typedefs): New globals.
	(set_print_type, show_print_type, set_print_type_methods,
	show_print_type_methods, set_print_type_typedefs,
	show_print_type_typedefs): New functions.
	(_initialize_typeprint): Update documentation.  Add "print
	type methods" and "print type typedefs" parameters.
	* typeprint.h (struct type_print_options) <print_methods,
	print_typedefs>: New fields.

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

	* c-typeprint.c (cp_type_print_method_args): Add flags
	argument.  Call c_print_type, not type_print.
	(c_type_print_base): Call c_print_type, not type_print.
	Update.

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

	* ada-lang.c (user_select_syms, ada_print_subexp): Pass flags
	to type-printing functions.
	* ada-lang.h (ada_print_type): Add argument.
	* ada-typeprint.c (print_array_type, print_variant_clauses,
	print_variant_part, print_selected_record_field_types,
	print_record_field_types, print_unchecked_union_type,
	print_func_type, ada_print_type): Add flags argument.
	(ada_print_typedef): Update.
	* c-exp.y (OPERATOR conversion_type_id): Update.
	* c-lang.h (c_print_type, c_type_print_base): Update.
	* c-typeprint.c (c_print_type, c_type_print_varspec_prefix,
	c_type_print_modifier, c_type_print_args,
	c_type_print_varspec_suffix, c_type_print_base): Add flags
	argument.
	* cp-valprint.c (cp_print_class_member): Update.
	* dwarf2read.c (dwarf2_compute_name): Update.
	* f-lang.h (f_print_type): Add argument.
	* f-typeprint.c (f_print_type): Add flags argument.
	* gnu-v3-abi.c (gnuv3_print_method_ptr): Update.
	* go-lang.h (go_print_type): Add argument.
	* go-typeprint.c (go_print_type): Add flags argument.
	* jv-lang.h (java_print_type): Add argument.
	* jv-typeprint.c (java_type_print_base, java_print_type): Add
	flags argument.
	* language.c (unk_lang_print_type): Add flags argument.
	* language.h (struct language_defn) <la_print_type>: Add flags
	argument.
	(LA_PRINT_TYPE): Likewise.
	* m2-lang.h (m2_print_type): Add argument.
	* m2-typeprint.c (m2_print_type, m2_range, m2_typedef,
	m2_array, m2_pointer, m2_ref, m2_procedure, m2_long_set,
	m2_unbounded_array, m2_record_fields): Add flags argument.
	* p-lang.h (pascal_print_type, pascal_type_print_base,
	pascal_type_print_varspec_prefix): Add argument.
	* p-typeprint.c (pascal_print_type,
	pascal_type_print_varspec_prefix, pascal_print_func_args,
	pascal_type_print_varspec_suffix, pascal_type_print_base): Add
	flags argument.
	* symmisc.c (print_symbol): Update.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	New globals.
	(type_print): Update.
	* typeprint.h (struct type_print_options): New.
	(type_print_raw_options): Declare.
	(c_type_print_varspec_suffix, c_type_print_args): Add argument.

2012-11-10  Keith Seitz  <keiths@redhat.com>

	* breakpoint.c (clear_command): Add cleanup for
	sals.sals if an argument is given.

	* linespec.c (parse_linespec): Do cleanups after
	parsing a convenience variable.

2012-11-10  Keith Seitz  <keiths@redhat.com>

	PR gdb/14288
	* c-valprint.c (c_val_print): For character arrays
	with "print null" option on, print ellipses if
	the output is truncated and the next character is not \000.
	* valprint.c (MAX_WCHARS): Define.
	(WCHAR_BUFLEN): Likewise.
	(WCHAR_BUFLEN_MAX): Likewise.
	(struct converted_character): New structure.
	(count_next_character): New function.
	(print_converted_chars_to_obstack): New function.
	(generic_printstr): Rewrite using count_next_character
	and print_converted_chars_to_obstack.

2012-11-10  Stephane Carrez  <Stephane.Carrez@gmail.com>

	* tui/tui.c (tui_rl_command_key): Switch to TUI_ONE_COMMAND_MODE
	while executing the gdb command.
	(tui_rl_startup_hook): Do not switch back to TUI_SINGLE_KEY_MODE if we
	are called from prompt_for_continue.
	* tui/tui-io.c (tui_redisplay_readline): Likewise.

2012-11-10  Stephane Carrez  <Stephane.Carrez@gmail.com>

	PR tui/9584

	* tui/tui.c (tui_rl_command_key): Do not call execute_command
	but insert the command to execute in readline's buffer.

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

	* gdbarch.sh (target_gdbarch): Remove macro.
	(get_target_gdbarch): Rename to target_gdbarch.
	* gdbarch.c, gdbarch.h: Rebuild.
	* ada-tasks.c, aix-thread.c, amd64-linux-nat.c, arch-utils.c,
	arm-tdep.c, auxv.c, breakpoint.c, bsd-uthread.c, corefile.c,
	darwin-nat-info.c, dcache.c, dsrec.c, exec.c, fbsd-nat.c,
	filesystem.c, gcore.c, gnu-nat.c, i386-darwin-nat.c, i386-nat.c,
	ia64-vms-tdep.c, inf-ptrace.c, infcmd.c, jit.c, linux-nat.c,
	linux-tdep.c, linux-thread-db.c, m32r-rom.c, memattr.c,
	mep-tdep.c, microblaze-tdep.c, mips-linux-nat.c,
	mips-linux-tdep.c, mips-tdep.c, monitor.c, moxie-tdep.c,
	nto-procfs.c, nto-tdep.c, ppc-linux-nat.c, proc-service.c,
	procfs.c, progspace.c, ravenscar-thread.c, record.c,
	remote-m32r-sdi.c, remote-mips.c, remote-sim.c, remote.c,
	rl78-tdep.c, rs6000-nat.c, rx-tdep.c, s390-nat.c, sol-thread.c,
	solib-darwin.c, solib-dsbt.c, solib-frv.c, solib-ia64-hpux.c,
	solib-irix.c, solib-pa64.c, solib-som.c, solib-spu.c,
	solib-sunos.c, solib-svr4.c, solib.c, spu-linux-nat.c,
	spu-multiarch.c, spu-tdep.c, symfile-mem.c, symfile.c, symtab.c,
	target-descriptions.c, target.c, target.h, tracepoint.c,
	windows-nat.c, windows-tdep.c, xcoffsolib.c, cli/cli-dump.c,
	common/agent.c, mi/mi-interp.c, python/py-finishbreakpoint.c,
	python/py-inferior.c, python/python.c: Update.

2012-11-09  Andrew Burgess  <aburgess@broadcom.com>

	* source.c (print_source_lines_base): Add fullname field giving
	full path to file in mi output.
	* NEWS: Mention the new fullname field.

2012-11-09  Yao Qi  <yao@codesourcery.com>

	* NEWS: Mention the fix to the ambiguity of 'fo' command.

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

	PR gdb/14306

	* infrun.c: Include target-descriptions.h.
	(follow_exec): Fetch new target description.

2012-11-09  Yao Qi  <yao@codesourcery.com>

	* i386-tdep.c (i386_analyze_frame_setup): Handle opcode
	0x8d (lea).

2012-11-09  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c: Declare set_tracepoint_count.
	(install_breakpoint): Call set_tracepoint_count if B is a
	tracepoint.
	(trace_command): Don't call set_tracepoint_count.  Re-indent.
	(strace_command, ftrace_command):
	(create_tracepoint_from_upload): Likewise.

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

	* gdbarch.sh (target_gdbarch) <gdbarch.h>: Reimplement as macro.
	(get_target_gdbarch) <gdbarch.h>: New function.
	(startup_gdbarch) <gdbarch.h>: Declare.
	<gdbarch.c> (target_gdbarch): Delete.
	<gdbarch.c> (deprecated_target_gdbarch_select_hack): Set the
	current inferior's gdbarch.
	<gdbarch.c> (get_target_gdbarch): New function.
	* inferior.c: Include target-descriptions.h.
	(free_inferior): Free target description info.
	(add_inferior_with_spaces): Set the inferior's initial
	architecture.
	(clone_inferior_command): Copy the original inferior's target
	description if it was user specified.
	(initialize_inferiors): Add comment.
	* inferior.h (struct target_desc_info): Forward declare.
	(struct inferior) <gdbarch>: New field.
	* linux-nat.c: Include target-descriptions.h.
	(linux_child_follow_fork): Copy the parent's architecture and
	target description to the child.
	* target-descriptions.c: Include inferior.h.
	(struct target_desc_info): New structure, holding the equivalents
	of ...
	(target_desc_fetched, current_target_desc)
	(target_description_filename): ... these removed globals.
	(get_tdesc_info, target_desc_info_from_user_p)
	(copy_inferior_target_desc_info, target_desc_info_free): New.
	(target_desc_fetched, current_target_desc)
	(target_description_filename): Reimplemented as convenience
	macros.
	(tdesc_filename_cmd_string): New global.
	(set_tdesc_filename_cmd): Copy the string manipulated by the "set
	tdescs filename ..." commands to the per-inferior equivalent.
	(show_tdesc_filename_cmd): Get the value to show from the
	per-inferior description filename.
	(_initilize_target_descriptions): Change the "set/show tdesc
	filename" commands' variable.
	* target-descriptions.h (struct target_desc, struct target_desc_info)
	(struct inferior): Forward declare.
	(target_find_description, target_clear_description)
	(target_current_description): Adjust comments.
	(copy_inferior_target_desc_info, target_desc_info_free)
	(target_desc_info_from_user_p). Declare.

2012-11-08  Stephane Carrez  <Stephane.Carrez@gmail.com>

	* tui/tui-hooks.c (tui_about_to_proceed): New function.
	(tui_target_wait_hook): Remove.
	(tui_install_hooks): Install the about_to_proceed observer.
	(tui_remove_hooks): And remove it here.

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

	* linux-tdep.c (linux_make_siginfo_note): New function.
	(linux_make_corefile_notes): Use it.
	* corelow.c (get_core_siginfo): New function.
	(core_xfer_partial) <TARGET_OBJECT_SIGNAL_INFO>: New case.

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

	PR gdb/14704:
	* gdb_bfd.c (gdb_bfd_ref): Set BFD_DECOMPRESS.
	(zlib_decompress_section): Remove.
	(gdb_bfd_map_section): Only check for compressed section
	in mmap case.  Use bfd_get_full_section_contents.
	* osabi.c (check_note): Add 'sectsize' argument.  Read
	section data.
	(generic_elf_osabi_sniff_abi_tag_sections): Don't read
	section data.  Update for check_note change.
	* xcoffread.c (xcoff_initial_scan): Use
	bfd_get_full_section_contents.
	* py-auto-load.c (auto_load_section_scripts): Use
	bfd_get_full_section_contents.
	* contrib/cc-with-tweaks.sh: Add -Z option.

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

	* python/py-bpevent.c: Include defs.h.
	* python/py-continueevent.c: Include defs.h.
	* python/py-event.c: Include defs.h.
	* python/py-event.h: Don't include defs.h.
	* python/py-events.h: Don't include defs.h.
	* python/py-evts.c: Include defs.h.
	* python/py-exitedevent.c: Include defs.h.
	* python/py-newobjfileevent.c: Include defs.h.
	* python/py-signalevent.c: Include defs.h.
	* python/py-stopevent.c: Include defs.h.
	* python/py-threadevent.c: Include defs.h.

2012-11-08  Pierre Muller  <muller@sourceware.org>

	* update-web-ari.sh (print_heading): Add number of files
	checked.
	(nb_files): New variable counting the number of sources
	files found by gdb_find.sh script.
	(debug_awk): New variable to allow extra debug output.
	(indexes): Add more information if DEBUG_AWK is set.

2012-11-08  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* ppc-linux-tdep.c (ppc64_standard_linkage1, ppc64_standard_linkage2,
	ppc64_standard_linkage3): Mark ld r11 instructions as optional,
	following the change in PLT call stubs on linker.

2012-11-08  Pierre Muller  <muller@sourceware.org>

	* contrib/ari/gdb_ari.sh (LANG, LC_ALL): Use 'C' instead of 'c'
	as default language.
	(AWK): Use = instead of == for sh test to avoid warning.
	(Linux rule): Correct [:digit] into [[:digit:]].
	(__func__ rule): Adapt to "gdb_assert.h" move to common subdirectory.
	(vasprintf rule): Adapt to common subdirectory moves.
	(xasprintf rule): Idem.
	(xvasprintf rule): Idem.
	(var_boolean rule): Accept occurence in == or != test.

	* contrib/ari/gdb_find.sh: Also prune gdbtk directory.

2012-11-08  Stephane Carrez  <Stephane.Carrez@gmail.com>

	* tui/tui-hooks.c (tui_inferior_exit): New function.
	(tui_detach_hook): Remove.
	(tui_install_hooks): Install the inferior exit observer.
	(tui_remove_hooks): Remove it.

2012-11-08  Yao Qi  <yao@codesourcery.com>

	PR gdb/14777.
	* source.c (_initialize_source): Call add_com_alias to abbreviate
	'forward-search' as 'fo'.

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

	* arm-tdep.c: Make defs.h be the first include.
	* coff-pe-read.c: Ditto.
	* gnu-nat.c: Ditto.
	* go32-nat.c: Ditto.
	* i386-nat.c: Ditto.
	* ppcnbsd-nat.c: Ditto.
	* ada-varobj.h: Don't include defs.h.
	* i386-darwin-tdep.h: Ditto.
	* i386-nat.h: Ditto.

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

	* MAINTAINERS: New FSF-appointed maintainers replace the Steering
	Committee.

2012-11-07  Pierre Muller  <muller@sourceware.org>

	* common/linux-osdata.c (dirent.h): ARI fix: Remove.
	File already uses "gdb_dirent.h" header.

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

	* breakpoint.c (get_tracepoint_by_number): Remove 'extern int
	tracepoint_count'.

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

	* target.h (inferior_has_forked, inferior_has_vforked)
	(inferior_has_execd, inferior_has_called_syscall): Remove
	declarations.

2012-11-06  Pierre Muller  <muller@sourceware.org>

	* remote.c (remote_insert_hw_breakpoint): ARI fix,
	add missing internalization markup.

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

	PR gdb/14810

	* breakpoint.c (bpstat_stop_status): Skip disabled locations.

2012-11-06  Pierre Muller  <muller@sourceware.org>

	* contrib/ari/create-web-ari-in-src.sh: Avoid problem if script
	is not executable.

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

	* gnulib/update-gnulib.sh: New script.

2012-11-05  Stephane Carrez  <Stephane.Carrez@gmail.com>

	* MAINTAINERS: Update my email address.

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

	* frame.c (put_frame_register): Don't use temporary buffer.

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

	* inferior.c (exit_inferior_1): Clear 'vfork_parent' in the vfork
	child.  Clear 'pending_detach'.
	* infrun.c (handle_vfork_child_exec_or_exit): Clear
	'pending_detach' in the vfork parent.

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

	Add support for DWP files.  http://gcc.gnu.org/wiki/DebugFissionDWP
	* contrib/cc-with-tweaks.sh: Add -p parameter to invoke dwp.
	* dwarf2read.c: #include "elf-bfd.h".
	(struct dwarf2_per_objfile): New members dwp_checked, dwp_file.
	(dwop_section_names): Renamed from dwo_section names.  All uses
	updated.  Add entries for .debug_cu_index, .debug_tu_index.
	(struct dwo_file): Rename dwo_name to name, dwo_bfd to dbfd.
	All uses updated.
	(struct dwp_sections): New type.
	(struct virtual_dwo_sections): New type.
	(struct dwp_hash_table): New type.
	(struct dwp_file): New type.
	(init_cutu_and_read_dies): Ensure DWO info/types section has been
	read in.  Handle DWOs coming from DWP files.
	(lookup_dwo_file_slot): New function.
	(dwarf2_locate_dwo_sections): Move definition closer to use.
	(create_dwo_debug_info_hash_table_reader): Renamed from
	create_debug_info_hash_table_reader.  All callers updated.
	(create_dwo_debug_info_hash_table): Renamed from
	create_debug_info_hash_table.  All callers updated.
	(create_dwp_hash_table): New function.
	(locate_virtual_dwo_sections, create_dwo_in_dwp): New functions.
	(lookup_dwo_in_dwp): New function.
	(try_open_dwop_file): Renamed from try_open_dwo_file.  New parameter
	is_dwp.  All callers updated.
	(open_dwop_file): Renamed from open_dwo_file.  All callers updated.
	(open_and_init_dwo_file): Renamed from init_dwo_file.
	All callers updated.
	(lookup_dwo_file): Delete.
	(dwarf2_locate_dwp_sections): New function.
	(hash_dwp_loaded_cutus, eq_dwp_loaded_cutus): New functions.
	(allocate_dwp_loaded_cutus_table): New function.
	(open_and_init_dwp_file): New function.
	(lookup_dwo_cutu): New function.
	(lookup_dwo_comp_unit, lookup_dwo_type_unit): Call it.

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

	Fix PR gdb/14617.
	* breakpoint.c (trace_pass_set_count): Call
	observer_notify_breakpoint_modified instead of
	observer_notify_tracepoint_modified.
	* mi/mi-cmd-break.c (mi_cmd_break_passcount): Likewise.

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

	* breakpoint.c (catch_syscall_completer): Pass 'word' as second
	argument to complete_on_enum.

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

	* configure: Rebuild.
	* configure.ac (build_warnings): Add -Wempty-body.
	* m68k-tdep.c (m68k_gdbarch_init): Remove empty 'if'.
	* remote.c (handle_notification): Use braces for empty 'else' body.
	* s390-tdep.c (s390_analyze_prologue): Use braces for empty
	'else' body.
	* sh64-tdep.c (sh64_push_dummy_call): Use braces for empty
	'else' body.
	* solib-som.c (som_relocate_section_addresses): Use braces
	for empty 'else' body.
	* ui-file.c (stdio_file_write): Use braces for empty 'if' body.
	(stdio_file_write_async_safe, stdio_file_fputs): Likewise.

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

	PR gdb/14766

	* infrun.c (handle_inferior_event)
	<TARGET_WAITKIND_EXITED/TARGET_WAITKIND_SIGNALLED>: Switch to
	null_ptid before handling a vfork child exec or exit.  Switch to
	the event ptid afterwards.

2012-11-02  Yao Qi  <yao@codesourcery.com>

	* std-operator.def: Remove OP_LABELED.
	* eval.c: Remove the declaration of 'get_label'.
	(get_label): Remove.
	(evaluate_struct_tuple): Remove code handling OP_LABELED.
	Update comment.
	Remove local variable 'variantno' and related code.
	Replace 'substruct_type' with 'struct_type'.  Replace 'subfieldno'
	with 'fieldno'.
	* expprint.c (print_subexp_standard): Likewise.
	(dump_subexp_body_standard): Likewise.
	* parse.c (operator_length_standard): Likewise.

2012-11-01  Pierre Muller  <muller@ics.u-strasbg.fr>

	Incorporate ARI web page generator into GDB sources.
	* contrib/ari/create-web-ari-in-src.sh: New file.
	* contrib/ari/gdb_ari.sh: New file.
	* contrib/ari/gdb_find.sh: New file.
	* contrib/ari/update-web-ari.sh: New file.

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

	* gdbarch.c: Rebuild.
	* gdbarch.sh: Remove references to gdbarch_swap.
	* corelow.c (core_open): Remove obsolete comment.

2012-10-31  Andrew Burgess  <aburgess@broadcom.com>

	PR cli/14772
	* c-typeprint.c (c_print_type): Don't print a space for vector
	types, this is handled within the suffix.
	(c_type_print_varspec_suffix): Add a space to vector suffix.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* amd64-tdep.c (amd64_relocate_instruction): Use
	store_unsigned_integer instead of memcpy.
	* i386-tdep.c (i386_relocate_instruction): Ditto.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event): Merge handling of
	TARGET_WAITKIND_EXITED and TARGET_WAITKIND_SIGNALLED into a single
	switch case.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event) <TARGET_WAITKIND_SIGNALLED>:
	Remove comment.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* target.c (target_waitstatus_to_string): Handle
	TARGET_WAITKIND_VFORK_DONE.

2012-10-26  Pedro Alves  <palves@redhat.com>

	* infrun.c (handle_inferior_event): Print TARGET_WAITKIND_VFORKED
	as "TARGET_WAITKIND_VFORKED", not "TARGET_WAITKIND_FORKED".

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

	* ravenscar-sparc-thread.c (ravenscar_sparc_fetch_registers):
	Add comments.

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

	* ravenscar-thread.c (ravenscar_wait): Only update the list
	of threads and inferior_ptid if the inferior is still alive.

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

	* ada-lang.c (is_known_support_routine): Use lbasename when
	matching the symtab's filename against
	known_runtime_file_name_patterns.

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

	* ada-lang.c (ada_same_array_size_p): New function.
	(ada_promote_array_of_integrals): New function.
	(coerce_for_assign): Add handling of arrays where the elements
	are integrals of a smaller size than the size of the target
	array element type.

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

	* doublest.c (convert_doublest_to_floatformat): Fix comparison
	against maximum exponent value.

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

	* ada-lang.h (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Add entry for
	"unwind-seh.c".

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

	* ada-lang.c (ada_template_to_fixed_record_type_1): Do not
	strip typedef layer when computing the fixed type's field type,
	only when computing its size.

2012-10-24  Mark Kettenis  <kettenis@gnu.org>

	PR gdb/12783
	* i386-tdep.c (i386_return_value): Handle complex double and long
	double.

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

	* windows-nat.c (windows_create_inferior) [!__CYGWIN__]:
	New local variable args_len.
	Quote the name of the executable when computing the command line.

2012-10-23  Mark Kettenis  <kettenis@gnu.org>

	PR gdb/12796
	PR gdb/12798
	PR gdb/12800
	* amd64-tdep.h (enum amd64_regnum): Add AMD64_ST1_REGNUM and
	AMD64_FTAG_REGNUM.
	* amd64-tdep.c (amd64_classify): Classify complex types.
	(amd64_return_value): Handle the COMPLEX_X87 class.

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

	* rs6000-aix-tdep.c (rs6000_aix_auto_wide_charset): New function.
	(rs6000_aix_init_osabi): Set auto_wide_charset gdbarch method.

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

	* amd64-windows-tdep.c (amd64_windows_auto_wide_charset): New
	function.
	(amd64_windows_init_abi): Set auto_wide_charset gdbarch method
	to amd64_windows_auto_wide_charset.

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

	* event-top.c (mark_async_signal_handler_wrapper): Remove.
	* event-top.h: Remove its declaration.
	(async_request_quit): Call mark_async_signal_handler instead of
	mark_async_signal_handler_wrapper.
	(async_do_nothing, async_disconnect): Likewise.
	(async_stop_sig): Likewise.
	* remote.c (handle_remote_sigint): Likewise.
	(handle_remote_sigint_twice): Likewise.

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

	* event-top.c (sigint_token, sighup_token): Replace 'void *'
	with 'static struct async_signal_handler *'.
	(sighup_token, sigquit_token, sigstp_token): Likewise.

2012-10-22  Ali Anwar  <ali_anwar@codesourcery.com>

	* gdbarch.sh (function_list): Use 'pstring' when printing
	a variable which could return NULL.
	* gdbarch.c: Regenerate.

2012-10-10  Joel Brobecker  <brobecker@adacore.com>
            Tom Tromey  <tromey@redhat.com>

	* rs6000-aix-tdep.c (rs6000_aix_osabi_sniffer): Replace
	inneffective if condition by gdb assertion.  Add function
	description comment.

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

	* parser-defs.h (struct exp_descriptor): Document constraint
	on return value for "op_name" callbacks.

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

	* tracepoint.c (print_one_static_tracepoint_marker): Constify.
	* symtab.c (iterate_over_some_symtabs): Constify.
	* source.h (symtab_to_fullname): Return 'const char *'.
	* source.c (symtab_to_fullname): Return 'const char *'.
	* python/py-symtab.c (stpy_fullname): Constify.
	* cli/cli-cmds.c (edit_command): Constify.
	* breakpoint.c (print_breakpoint_location)
	(update_static_tracepoint): Constify.

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

	* breakpoint.c (compare_breakpoints): Fix comparison.

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

	* valprint.c (generic_emit_char, generic_printstr): Pass size of
	gdb_wchar_t to convert_between_encodings.

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

	* breakpoint.c (invalidate_bp_value_on_memory_change): Add one
	more parameter 'inferior'.
	* corefile.c (write_memory_with_notification): Caller update.

	* mi/mi-cmd-var.c: Include "mi-main.h".
	(mi_cmd_var_assign): Set mi_suppress_notification.data_write_memory
	to 1 and restore it later.
	* mi/mi-cmds.c (mi_cmd mi_cmds): Update for "data-write-memory"
	and "data-write-memory-bytes.
	* mi/mi-interp.c: Include objfiles.h.
	(mi_interpreter_init): Call observer_attach_memory_changed.
	(mi_memory_changed): New.
	* mi/mi-main.h (struct mi_suppress_notification) <memory>:
	New field.

	* NEWS: Mention new MI notification "memory-changed".

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

	* dwarf2loc.c (dwarf_expr_reg_to_entry_parameter): Remove comment.

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

	New option -nh: inhibit loading of ~/.gdbinit.
	* NEWS: Mention -nh.
	* main.c (captured_main): Recognize and process -nh.
	(print_gdb_help): Mention -nh.
	* gdb.1: Mention -nh.  Remove erroneous docs on -nx behavior.

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

	PR backtrace/14646
	PR gdb/14647
	* i386-tdep.h (gdbarch_tdep): Remove sp_regnum_from_eax and
	pc_regnum_from_eax.
	* i386-tdep.c (i386_gdbarch_init): Don't use sp_regnum_from_eax
	nor pc_regnum_from_eax.
	* amd64-tdep.c (amd64_x32_init_abi): Don't set sp_regnum_from_eax
	nor pc_regnum_from_eax.

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

	Fix entry values resolving in inlined frames.
	* dwarf2loc.c (dwarf_expr_reg_to_entry_parameter): Move func_addr,
	gdbarch and caller_frame initialization later.  Skip INLINE_FRAME
	entries of FRAME.

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

	* configure.ac: Build with -DMS_WIN64 if building with Python
	enabled using GCC on amd64-windows.
	* configure: Regenerate.

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

	PR python/14635:
	* python/py-symtab.c (del_objfile_sal): Set 'symtab' field
	to Py_None.

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

	PR python/14634:
	* python/py-symbol.c (sympy_dealloc): Check for NULL symbol.

2012-10-11  Andrew Burgess  <aburgess@broadcom.com>

	* remote-sim.c (gdbsim_create_inferior): Call init_thread_list to
	reset thread numbering back to 1.

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

	PR breakpoints/14643.
	* linespec.c (struct ls_parser): New member keyword_ok.
	(linespec_lexer_lex_string): Add comment.
	(linespec_lexer_lex_one): Ignore keywords if it's the wrong place
	for one.
	(parse_linespec): Set keyword_ok.

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

	* dwarf2read.c (process_psymtab_comp_unit_reader): Remove duplicate
	"0x" prefix on address in log message.

	* dwarf2read.c (read_1_byte): Add const to buf parameter.
	(read_1_signed_byte, read_2_bytes, read_2_signed_bytes): Ditto.
	(read_4_bytes, read_4_signed_bytes, read_8_bytes): Ditto.
	(lookup_dwo_file): Add const to dwo_name parameter.
	(lookup_dwo_comp_unit, lookup_dwo_type_unit): Ditto.

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

	Fix crash during stepping on ppc32.
	* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code): Test NULL
	SYM.

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

	PR symtab/14601
	* buildsym.c (buildsym_init): Reset using_directives to NULL.

2012-10-02  Andrew Burgess  <aburgess@broadcom.com>

	* remote-sim.c (dump_mem): Always dump buffer contents, zero fill
	output and use uint32_t not long to ensure 4 byte size.

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

	* rs6000-nat.c (add_vmap): Set "last" to "next" after having
	unref'ed it.

2012-10-01  Andrew Burgess  <aburgess@broadcom.com>

	* target.c (simple_search_memory): Include access length in
	warning message.

2012-09-28  Nathan Miller  <nathanm2@us.ibm.com>
	    Edjunior Machado  <emachado@linux.vnet.ibm.com>

	PR gdb/13989
	* solib.c (solib_find): Prevent GDB from loading native libraries when
	debugging a cross-target corefile.

2012-09-28  selven  <pcthegreat@gmail.com>

	Make definition match declaration.

	* regcache.c (regcache_register_status): Change return type to
	enum register_status.

2012-09-28  Yao Qi  <yao@codesourcery.com>

	* mi/mi-main.c (mi_cmd_data_write_memory): Call
	write_memory_with_notification instead of write_memory.
	(mi_cmd_data_write_memory_bytes): Call write_memory_with_notification
	instead of target_write_memory.

2012-09-28  Yao Qi  <yao@codesourcery.com>

	* mi/mi-main.c (mi_cmd_data_write_memory_bytes): Emit error
	when the length of content is not an even number.

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

	Fix https://bugzilla.redhat.com/show_bug.cgi?id=849357
	* cp-valprint.c (cp_print_value_fields): Use get_vptr_fieldno.

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

	* sol-thread.c (sol_thread_fetch_registers)
	(sol_thread_store_registers): Delete commented out code.

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

	* sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
	Move these functions to sparc-sol-thread.c.
	* sparc-sol-thread.c: New file.
	* configure.ac: Add sparc-sol-thread.o to CONFIG_OBS and
	sparc-sol-thread.c to CONFIG_SRCS for sparc-solaris native
	configurations.
	* configure: Regenerate.

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

	* sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
	Remove commented-out code.

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

	* sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
	Enable this code for sparc hosts only.

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

	* procfs.h (procfs_find_LDT_entry): Add declaration.
	* sol-thread.c (ps_lgetLDT): Delete local declaration of
	function procfs_find_LDT_entry.

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

	* procfs.c (proc_get_LDT_entry): Make static.

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

	* procfs.c (proc_find_memory_regions): Fix declaration.

2012-09-27  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* amd64-tdep.c (amd64_return_value): Revert previous change
	that used TYPE_LENGTH directly.
	* bfin-tdep.c (bfin_extract_return_value): Likewise.
	(bfin_store_return_value): Likewise.
	* cris-tdep.c (cris_store_return_value): Likewise.
	(cris_extract_return_value): Likewise.
	* h8300-tdep.c (h8300_extract_return_value): Likewise.
	* hppa-tdep.c (hppa64_return_value): Likewise.
	* lm32-tdep.c (lm32_store_return_value): Likewise.
	* microblaze-tdep.c (microblaze_store_return_value): Likewise.
	* spu-tdep.c (spu_value_from_register): Likewise.
	* vax-tdep.c (vax_return_value): Likewise.

2012-09-27  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* gdbtypes.c (lookup_array_range_type): Expand parameters
	LOW_BOUND and HIGH_BOUND to LONGEST.
	(lookup_string_range_type): Likewise.
	* gdbtypes.h (lookup_array_range_type): Likewise.
	(lookup_string_range_type): Likewise.
	* valops.c (value_cstring): Expand parameter LEN to ssize_t.
	Expand HIGHBOUND to ssize_t.
	(value_string): Likewise.
	* value.h (value_cstring): Expand parameter LEN to ssize_t.
	(value_string): Likewise.

2012-09-27  Yao Qi  <yao@codesourcery.com>

	PR breakpoints/13898
	* breakpoint.h (tracepoint_breakpoint_ops): Forward declaration.
	* mi/mi-cmd-break.c (mi_cmd_break_insert): Set breakpoint_ops
	per breakpoint type.

2012-09-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	* procfs.c: Add gdb_bfd header.
	* rs6000-nat.c: Likewise.
	* solib-pa64.c: Likewise.
	* spu-linux-nat.c: Likewise.
	* windows-nat.c: Likewise.

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

	* f-lang.h (BLANK_COMMON_NAME_LOCAL): Remove.

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

	* dwarf2read.c (mark_common_block_symbol_computed): New function.
	(read_common_block): Handle child DIEs with
	DW_AT_data_member_location.
	(new_symbol_full): Add special case for common blocks.

2012-09-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (read_common_block): Rewrite.
	(new_symbol_full): Handle DW_TAG_common_block.
	* f-lang.c (head_common_list, find_common_for_function):
	Remove.
	* f-lang.h (struct common_entry, struct saved_f77_common,
	SAVED_F77_COMMON, SAVED_F77_COMMON_PTR, COMMON_ENTRY,
	COMMON_ENTRY_PTR, head_common_list, find_common_for_function,
	BLANK_COMMON_NAME_LOCAL): Remove.
	(struct common_block): New.
	* f-valprint.c (list_all_visible_commons): Remove.
	(info_common_command_for_block): New function.
	(info_common_command): Use it.
	* stack.c (iterate_over_block_locals): Special case for
	COMMON_BLOCK_DOMAIN.
	* symtab.h (enum domain_enum_tag) <COMMON_BLOCK_DOMAIN>: New
	constant.
	(struct general_symbol_info) <value.common_block>: New field.
	(SYMBOL_VALUE_COMMON_BLOCK): New define.

2012-09-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* f-lang.c (allocate_saved_bf_node,
	allocate_saved_function_node, allocate_saved_f77_common_node,
	allocate_common_entry_node, tail_common_list, current_common,
	saved_bf_list, saved_bf_list_end, current_head_bf_list,
	tmp_bf_ptr, add_common_block, add_common_entry,
	find_first_common_named, patch_common_entries,
	patch_all_commons_by_name, ADD_BF_SYMNUM, clear_bf_list,
	global_remote_debug, get_bf_for_fcn, saved_function_list,
	saved_function_list_end, clear_function_list, struct saved_fcn,
	struct saved_bf_symnum, SAVED_FUNCTION, SAVED_FUNCTION_PTR,
	SAVED_BF, SAVED_BF_PTR): Remove.
	* f-lang.h (tail_common_list, current_common,
	UNINITIALIZED_SECNUM, COMMON_NEEDS_PATCHING,
	BLANK_COMMON_NAME_ORIGINAL, BLANK_COMMON_NAME_MF77,
	DEFAULT_UPPER_BOUND, DEFAULT_LOWER_BOUND, real_main_name,
	real_main_c_value): Remove.
	* f-valprint.c (there_is_a_visible_common_named): Remove.

2012-09-26  Andrew Burgess  <aburgess@broadcom.com>

	* breakpoint.c (update_global_location_list): Ignore previous
	duplicate status of a breakpoint when starting a new scan for
	duplicate breakpoints.

2012-09-26  Karthik Bhat  <kv.bhat@samsung.com>
	PR breakpoints/14419
	* arm-tdep.c (arm_skip_prologue): Extending producer check to
	support LLVM compiler.

2012-09-26  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* amd64-tdep.c (amd64_return_value): Use TYPE_LENGTH directly.
	* bfin-tdep.c (bfin_extract_return_value): Likewise.
	(bfin_store_return_value): Likewise.
	* cris-tdep.c (cris_store_return_value): Likewise.
	(cris_extract_return_value): Likewise.
	* h8300-tdep.c (h8300_extract_return_value): Likewise.
	* hppa-tdep.c (hppa64_return_value): Likewise.
	* lm32-tdep.c (lm32_store_return_value): Likewise.
	* microblaze-tdep.c (microblaze_store_return_value): Likewise.
	* spu-tdep.c (spu_value_from_register): Likewise.
	* vax-tdep.c (vax_return_value): Likewise.

2012-09-26  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* breakpoint.c (invalidate_bp_value_on_memory_change): Expand
	parameter LEN to ssize_t.

2012-09-25  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* ada-valprint.c (ada_val_print_1): Eliminate single-use
	variable LEN.
	* alpha-tdep.c (alpha_extract_return_value): Use TYPE_LENGTH
	directly.
	(alpha_store_return_value): Likewise.
	* amd64-tdep.c (amd64_classify_aggregate): Likewise.
	(amd64_push_arguments): Likewise.
	* ax-gdb.c (gen_trace_static_fields): Likewise.
	(gen_traced_pop): Likewise.
	* bfin-tdep.c (bfin_push_dummy_call): Likewise.
	* breakpoint.c (update_watchpoint): Likewise.
	* findcmd.c (parse_find_args): Use local variable for type
	instead of length.
	* findvar.c (default_read_var_value): Use TYPE_LENGTH directly.
	* h8300-tdep.c (h8300h_extract_return_value): Likewise.
	(h8300_store_return_value): Likewise.
	* i386-darwin-tdep.c (i386_darwin_push_dummy_call): Likewise.
	Use i386_darwin_arg_type_alignment directly.
	* infcall.c (call_function_by_hand): Use TYPE_LENGTH directly.
	* lm32-tdep.c (lm32_push_dummy_call): Likewise.
	* m68hc11-tdep.c (m68hc11_push_dummy_call): Likewise.
	(m68hc11_extract_return_value): Likewise.
	* mep-tdep.c (mep_push_dummy_call): Likewise.
	* printcmd.c (float_type_from_length): Likewise.
	* s390-tdep.c (s390_value_from_register): Likewise.
	* stack.c (read_frame_arg): Likewise.
	* tracepoint.c (encode_actions_1): Likewise.
	* valops.c (value_fetch_lazy): Use local variable for type
	instead of length.  Use TYPE_LENGTH directly.
	* value.c (value_contents_equal): Use TYPE_LENGTH directly.

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

	* symtab.c (skip_prologue_sal): Fix typo in comment.

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

	* linespec.c (create_sals_line_offset): Fix typo in comment.

2012-09-25  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* c-typeprint.c (c_type_print_varspec_suffix): Remove cast and
	use plongest to print the array size.

2012-09-24  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* m2-typeprint.c (m2_enum): Expand LASTVAL to LONGEST.
	* p-valprint.c (pascal_type_print_base): Likewise.

2012-09-22  Yao Qi  <yao@codesourcery.com>

	* remote.c (remote_get_trace_status): Remove setting default
	values of fields of 'ts'.

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

	Fix internal error on canonicalization of clang types.
	* cp-name-parser.y (operator): New comment at make_operator call for
	new, delete, new[] and delete[].
	(exp): Use "sizeof ".  Add new comment at make_operator call.

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

	Fix disassemble without parameters in tailcall frame.
	* cli/cli-cmds.c (disassemble_current_function): Use
	get_frame_address_in_block.

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

	* c-typeprint.c (c_type_print_base) <TYPE_CODE_STRUCT,
	TYPE_CODE_UNION>: Unify, removing a goto.

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

	* c-typeprint.c (cp_type_print_derivation_info): Fix comment.

2012-09-21  Andrew Burgess  <aburgess@broadcom.com>

	* findvar.c (read_frame_register_value): Mark the result value as
	optimized out if any of the input registers have been optimized out.

2012-09-21  Andreas Schwab  <schwab@linux-m68k.org>

	* python/python.c (finalize_python): Only define if HAVE_PYTHON.

2012-09-21  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* eval.c (evaluate_subexp_standard): Eliminate single-use
	variable LOWER.

2012-09-21  Yao Qi  <yao@codesourcery.com>

	* mi/mi-interp.c: Declare mi_record_changed.
	(mi_interpreter_init): Call observer_attach_record_changed.
	(mi_record_changed): New.
	* record.c (record_open): Call observer_notify_record_changed.
	(cmd_record_stop): Call observer_notify_record_changed.
	* NEWS: Mention it.

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

	* NEWS: Update.
	* python/python.c (finalize_python): New function.
	(_initialize_python): Make a final cleanup.

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

	* buildsym.h (param_symbols): Delete, unused.
	(context_stack): Delete member "params", unused.
	* buildsym.c (push_context): Update.
	* dwarf2read.c (read_func_scope): Update.

2012-09-19  Thomas Schwinge  <thomas@codesourcery.com>

	* sh-tdep.c (sh_register_convert_to_virtual)
	(sh_register_convert_to_raw): Add a gdbarch parameter.  Update
	all callers.  Just do a memcpy if not the little-endian case.

	* h8300-tdep.c (h8300_gdbarch_init): Invoke
	set_gdbarch_double_format and set_gdbarch_long_double_format.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Invoke
	set_gdbarch_double_format.
	* sh-tdep.c (sh_gdbarch_init): Likewise.

	* NEWS: Document the removal of SH's 'regs' command.
	* sh-tdep.c (_initialize_sh_tdep): Remove the deprecated 'regs'
	command.

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

	* infcmd.c (_initialize_infcmd): Register `j' as an alias for
	`jump'.

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

	* linespec.c (iterate_over_all_matching_symtabs): Use the correct
	language when iterating over symbols.

2012-09-18  Yao Qi  <yao@codesourcery.com>

	* mi/mi-interp.c: Declare mi_tsv_created and mi_tsv_deleted.
	(mi_interpreter_init): Call observer_attach_tsv_created and
	observer_attach_tsv_deleted.
	(mi_tsv_created, mi_tsv_deleted): New.
	* tracepoint.c (delete_trace_state_variable): Call
	observer_notify_tsv_deleted.
	(trace_variable_command): Call observer_notify_tsv_created.
	(delete_trace_variable_command): Call
	observer_notify_tsv_deleted.
	(create_tsv_from_upload): Call observer_notify_tsv_created.
	* NEWS: Mention it.

2012-09-18  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (tfind_1): Call observer_notify_traceframe_changed
	if traceframe changed.
	* mi/mi-cmds.c (mi_cmd mi_cmds): Adjust for command
	"trace-find".
	* mi/mi-interp.c: Declare 'mi_traceframe_changed'.
	(mi_interpreter_init): Hook mi_traceframe_changed to observer
	'traceframe_changed'.
	(mi_traceframe_changed): New.
	* mi/mi-main.h (struct mi_suppress_notification) <traceframe>:
	New field.
	* NEWS: Mention the new MI notification.

2012-09-17  Mike Wrighton  <wrighton@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add "Mike Wrighton".

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

	* common/linux-ptrace.c: Change __i386__ to __i386__ || __x86_64__.
	(linux_ptrace_test_ret_to_nx): Extend comment for x86_64.  Change
	__i386__ to __i386__ || __x86_64__. Extend code also for __x86_64__.
	Extend code also for PaX support.  Convert all gdb_assert to warning
	calls.

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

	Implement auto-load user conveniences suggested by Doug Evans.
	* auto-load.c: Include top.h.
	(file_is_auto_load_safe): New variable advice_printed.  Print advice.
	(_initialize_auto_load): New variable scripts_directory_help.  Mention
	GDBPY_AUTO_FILE_NAME and GDB_AUTO_FILE_NAME for set auto-load
	scripts-directory.  Document in online help one can use also files for
	set auto-load safe-path.
	* python/py-auto-load.c: (GDBPY_AUTO_FILE_NAME): Move it from here ...
	* python/python.h (GDBPY_AUTO_FILE_NAME): ... to here.

2012-09-17  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* tic6x-tdep.c (tic6x_push_dummy_call): Remove unused definition
	of LEN.

2012-09-17  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* m2-valprint.c (m2_print_array_contents): Eliminate variable
	ELTLEN and use TYPE_LENGTH directly.
	(m2_val_print): Likewise.
	* m68k-tdep.c (m68k_svr4_extract_return_value): Eliminate
	variable LEN and use TYPE_LENGTH directly.
	(m68k_svr4_store_return_value): Likewise.
	* mips-tdep.c (mips_o32_push_dummy_call): Eliminate variable
	ARGLEN and use TYPE_LENGTH directly.
	(mips_o64_push_dummy_call): Likewise.
	* s390-tdep (s390_function_arg_pass_by_reference): Eliminate
	variable LENGTH and use TYPE_LENGTH directly.
	(s390_function_arg_float): Likewise.
	(s390_function_arg_integer): Likewise.
	(s390_push_dummy_call): Likewise.
	(s390_return_value_convention): Likewise.
	* spu-tdep.c (spu_push_dummy_call): Eliminate LEN and use
	TYPE_LENGTH directly.

2012-09-17  Yao Qi  <yao@codesourcery.com>

	* cli/cli-decode.c (add_setshow_zuinteger_unlimited_cmd): New.
	Update comment to add_setshow_integer_cmd.
	* cli/cli-setshow.c (do_set_command): Handle case
	'var_zuinteger_unlimited'.
	(do_show_command): Likewise.
	* cli/cli-cmds.c (init_cmds): Call add_setshow_zuinteger_unlimited_cmd
	for command 'remotetimeout'.
	* command.h (enum var_types): New zuinteger_unlimited.  Update comment
	to var_integer.
	* source.c (_initialize_source): Call add_setshow_zuinteger_unlimited_cmd
	for command 'set listsize'.

2012-09-17  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* infrun.c (restore_infcall_suspend_state): Eliminate single-use
	variable LEN.

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

	PR 14119
	* frame.c (skip_inlined_frames): Skip also TAILCALL_FRAME frames.
	(frame_pop): Drop also TAILCALL_FRAME frames.
	* infcmd.c (finish_command): Ignore also TAILCALL_FRAME frames.

2012-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	PR 14548
	* infrun.c (handle_inferior_event): Do not reverse-continue back to the
	function start if we are already at function start.  Both for
	reverse-next and for reverse-step into function without line number
	info.

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

	Code cleanup - rename 'inline' depth to 'artificial' depth.
	* breakpoint.c (set_momentary_breakpoint): Rename at a caller to
	frame_id_artificial_p, extend the comment.
	* dwarf2-frame-tailcall.c (tailcall_frame_this_id): Rename at a user.
	* frame.c (fprint_frame_id): Rename at a user, change debug output
	text to "artificial=".
	(skip_inlined_frames): Rename to ...
	(skip_artificial_frames): ... here.  Extend the comment.
	(get_stack_frame_id, frame_unwind_caller_id): Rename at a caller.
	(frame_id_inlined_p): Rename to ...
	(frame_id_artificial_p): ... here.  Rename at a user.
	(frame_id_eq, frame_id_inner, frame_unwind_caller_pc)
	(frame_unwind_caller_pc_if_available, frame_unwind_caller_arch): Rename
	at a user.
	* frame.h (struct frame_id): Rename inline_depth to artificial_depth.
	Extend the comment.
	(frame_id_inlined_p): Rename to ...
	(frame_id_artificial_p): ... here.
	* inline-frame.c (inline_frame_this_id): Rename at a user.

2012-09-14  Andrew Burgess  <aburgess@broadcom.com>

	* c-typeprint.c (c_type_print_varspec_suffix): Display the size of
	vector variables using vector_size syntax rather than array
	syntax.

2012-09-14  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* valarith.c (value_concat): Replace unsafe ALLOCA with
	XMALLOC/XFREE.

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

	* gdb.1 (SEE ALSO): Expand pointer to GDB's Texinfo manual.

2012-09-14  Khoo Yit Phang  <khooyp@cs.umd.edu>

	Point contrib/cc-with-tweaks.sh to the build-local data-directory.
	* contrib/cc-with-tweaks.sh (GDB): Add -data-directory
	data-directory as appropriate.

2012-09-14  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* printcmd.c (ui_printf): Eliminate single-use variable
	PARAM_LEN.

2012-09-14  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* valops.c (value_assign): Move observer_notify_target_changed
	below to replace reinit_frame_cache.

2012-09-13  Khoo Yit Phang  <khooyp@cs.umd.edu>

	Refactor Python "gdb" module into a proper Python package, by
	introducing a new "_gdb" module for code implemented in C, and
	using reload/__import__ instead of exec.
	* python/lib/gdb/__init__.py: Import * from _gdb.
	(GdbOutputFile, sys.stdout, GdbOutputErrorFile, sys.stderr,
	prompt_hook, sys.argv): Moved from finish_python_initialization.
	(pretty_printers, PYTHONDIR): Moved from _initialize_python.
	(packages, auto_load_packages): New list and function replacing
	module_dict and auto-loading code, using __file__ instead of
	gdb.PYTHONDIR and reload/__import__ instead of exec.
	(GdbSetPythonDirectory): Replacing function of the same name
	from finish_python_initialization, using reload/__import__ instead
	of exec, as well as call auto_load_packages.
	* python/py-prettyprint.c (find_pretty_printer_from_gdb): Check
	gdb_python_module and not gdb_module.
	* python/python-internal.h (gdb_python_module): Declare.
	* python/python.c (gdb_python_module): New global.
	(before_prompt_hook): Check gdb_python_module and not gdb_module.
	(_initialize_python): Rename gdb module to _gdb.
	Move gdb.PYTHONDIR and gdb.pretty_printer to lib/gdb/__init__.py.
	(finish_python_initialization): Move Python code to
	lib/gdb/__init__.py; instead, set up sys.path and import gdb into
	__main__.

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

	* Makefile.in (COMMON_OBS): Add registry.o.
	* registry.c: New file.
	* registry.h (struct registry_container): Declare.
	(registry_data_callback): New typedef.
	(struct registry_data, struct registry_data_registration, struct
	registry_data_registry): New type.
	(register_data_with_cleanup, registry_alloc_data)
	(registry_callback_adaptor, registry_clear_data)
	(registry_container_free_data, registry_set_data, registry_data):
	Declare.
	(DEFINE_REGISTRY): Refactor structures and functions as shims over
	the new common structures and functions.
	(DECLARE_REGISTRY): Declare struct TAG ## _data.  Use the tagged
	callback typedefs.

2012-09-12  Mike Wrighton  <wrighton@codesourcery.com>

	* remote.c (remote_insert_hw_breakpoint): Throw exception if
	there is an error inserting hardware breakpoints and use the
	error message from the target.

	* breakpoint.c (insert_bp_location, insert_breakpoint_locations):
	Catch this exception and print the error message contained within. Do not
	print the default hardware error breakpoint message in this case.

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

	* dwarf2read.c (dwarf2_read_addr_index): Fix handling the case where
	cu == NULL.

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

	* dwarf2read.c (dw2_do_expand_symtabs_matching): Don't examine
	.gdb_index symbol attributes if there are none.

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

	* symtab.h (struct minimal_symbol) [has_size]: New field.
	(MSYMBOL_SIZE): Adjust to forbid macro from being used as lvalue.
	(SET_MSYMBOL_SIZE, MSYMBOL_HAS_SIZE): New macros.
	* printcmd.c (build_address_symbolic): Only filter out zero-sized
	minimal symbols if the symbol's size is actually known.
	* minsyms.c (prim_record_minimal_symbol_full): Adjust setting
	of msymbol's size field.  Add comment.
	* elfread.c (elf_symtab_read, elf_rel_plt_read): Use
	SET_MSYMBOL_SIZE to set the minimal symbol size.

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

	* minsyms.c (install_minimal_symbols): Use memset to fill entire
	minimal_symbol struct object, rather than setting some of its
	fields one by one.

2012-09-11  Andrew Burgess  <aburgess@broadcom.com>

	* c-typeprint.c (c_type_print_varspec_prefix): Pass through the
	passed_a_ptr flag when displaying typedef types.

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

	* ada-lang.c (coerce_unspec_val_to_type): Make sure that
	the optimized_out flag is preserved.

2012-09-10  Anthony Green  <green@moxielogic.com>

	* moxie-tdep.c (moxie_analyze_prologue): Update for function
	prologue changes in GCC.

2012-09-10  Keith Seitz  <keiths@redhat.com>

	PR gdb/13483
	* gdbtypes.h (BOOL_PTR_CONVERSION_BADNESS): Rename to ...
	(BOOL_CONVERSION_BADNESS): ... this.
	* gdbtypes.c (BOOL_PTR_CONVERSION_BADNESS): Likewise.
	(rank_one_type): Allow all boolean conversions
	permitted by the standard.

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

	* python/py-newobjfileevent.c (create_new_objfile_event_object):
	Don't decref py_objfile.

2012-09-02  Khoo Yit Phang  <khooyp@cs.umd.edu>

	Do not enable -lmcheck by default when Python is enabled with
	threading support.
	* configure.ac: (python_has_threads) New variable, by testing
	if WITH_THREAD is defined in Python.h.
	Move --enable-lmcheck after --with-python.
	Do not enable -lmcheck by default if python_has_threads=yes.
	Warn if --enable-lmcheck and python_has_threads=yes.
	* configure: Regenerate.

2012-08-31  Yao Qi  <yao@codesourcery.com>

	* mi/mi-cmds.c (mi_cmds): New macros DEF_MI_CMD_CLI
	DEF_MI_CMD_MI DEF_MI_CMD_CLI_1 and DEF_MI_CMD_CLI_1.
	Update some commands.
	* mi/mi-cmds.h (struct mi_cmd) <suppress_notification>: New field.
	* mi/mi-main.c (mi_cmd_execute): Set '*parse->cmd->suppress_notification'
	to 1.

2012-08-31  Yao Qi  <yao@codesourcery.com>

	* mi/mi-cmds.c (mi_cmds): Add 'static'.

2012-08-30  Khoo Yit Phang  <khooyp@cs.umd.edu>

	* MAINTAINERS (Write After Approval): Add "Khoo Yit Phang".

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

	* main.c (print_gdb_help): Remove reference to
	--use-deprecated-index-sections.

2012-08-28  Yao Qi  <yao@codesourcery.com>

	* cli/cli-cmds.c (max_user_call_depth): Add 'unsigned'.
	(init_cmds): Call add_setshow_uinteger_cmd for command
	'max-user-call-depth'.
	* cli/cli-script.c (execute_user_command): Add 'unsigned' to the
	declaration of 'max_user_call_depth'.
	* frame.c (backtrace_limit): Add 'unsigned'.
	(_initialize_frame): Call add_setshow_uinteger_cmd for command
	'limit'.
	* remote.c (remoteaddresssize): Add 'unsigned'.
	(remote_address_masked): Change local var 'address_size' to
	'unsigned'.
	(_initialize_remote): Call add_setshow_uinteger_cmd for
	'remoteaddresssize'.
	* top.c (history_size): Add 'unsigned'.
	(show_commands): Change local variables to 'unsigned'.
	(set_history_size_command): Don't check history_size is negative.
	Adjust the condition to call unstifle_history and set history_size
	to UNIT_MAX.

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

	PR gdb/14428

	* infcmd.c (default_print_one_register_info): New, factored out
	from default_print_registers_info.
	(default_print_registers_info): Use it.  Mark value unavailable if
	necessary.
	(registers_info): Print user registers with
	default_print_one_register_info.

2010-08-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR tui/14486
	* tui/tui-source.c (tui_source_is_displayed): Check if TUI_SRC_WIN
	is not NULL before referencing it.

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

	* breakpoint.c (parse_breakpoint_sals) <(*address) == NULL>: New
	variable pc.  Call find_pc_line instead of find_pc_overlay, restore
	original PC for it.

2012-08-27  Eli Zaretskii  <eliz@gnu.org>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* auto-load.c (auto_load_objfile_script): Rename to ...
	(auto_load_objfile_script_1): ... here, change variable realname to
	parameter realname, document it, add return value, add variable retval.
	(auto_load_objfile_script): New function.

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

	* cli/cli-decode.c (print_doc_line): Keep skipping '.' and ',' not
	followed by a whitespace.

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

	PR gdb/14494.
	* dwarf2read.c (dwarf2_locate_sections): Move variable aflag here.
	Move the SEC_HAS_CONTENTS check here - for any NAMES use.
	(dwarf2_locate_sections) <eh_frame>: Move the variable and check from
	here.

2012-08-27  Wei-cheng Wang  <cole945@gmail.com>

	* memattr.c (create_mem_region): Fix memory region overlapping
	checking.

2012-08-24  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* h8300-tdep.c (h8300_push_dummy_call): Replace unsafe alloca
	with xmalloc/cleanup.
	* mt-tdep.c (mt_push_dummy_call): Likewise.
	* tilegx-tdep.c (tilegx_push_dummy_call): Likewise.
	* xstormy16-tdep.c (xstormy16_push_dummy_call): Likewise.

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

	* jv-exp.y (push_expression_name): Add "." at the end of error
	message.

2012-08-23  Khoo Yit Phang <khooyp@cs.umd.edu>

	Document how to return from "python-interactive" to GDB.
	* python/python.c (_initialize_python): Update documentation.

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

	* infrun.c (_initialize_infrun) <handle command help text>:
	Mention that multiple signals are supported.

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

	* infcmd.c (_initialize_infcmd) <signal command>: Fix typo in help
	string.

2012-08-23  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (disconnect_tracing): Call set_tracepoint_num.
	(tfind_1): Don't call registers_changed, set_traceframe_num,
	and clear_traceframe_info.
	Call set_current_traceframe.
	(set_current_traceframe): call set_traceframe_num.

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

	* remote-sim.c (_initialize_remote_sim): Pass NULL argument to
	`register_inferior_data_with_cleanup', fixing regression on PowerPC64.

2012-08-22  Khoo Yit Phang <khooyp@cs.umd.edu>

	Enable readline in Python in a GDB-specific way and block the
	standard Python readline module to prevent conflicts with GDB.
	* Makefile.in (SUBDIR_PYTHON_OBS): Add py-gdb-readline.o.
	(SUBDIR_PYTHON_SRCS): Add python/py-gdb-readline.c.
	(py-gdb-readline.o): Add rule to compile python/py-gdb-readline.c.
	* python/py-gdb-readline.c: New file.
	* python/python-internal.h (gdbpy_initialize_gdb_readline): New
	prototype.
	* python/python.c (_initialize_python): Call
	gdbpy_initialize_gdb_readline.

2012-08-22  Keith Seitz  <keiths@redhat.com>

	* defs.h: Include build-gnulib/config.h

2012-08-22  Joseph Myers  <joseph@codesourcery.com>

	* arm-tdep.c (thumb_get_next_pc_raw): Mask off low bits for bx pc
	and blx pc.

2012-08-22  Khoo Yit Phang <khooyp@cs.umd.edu>

	Add a new "python-interactive" command that starts a standard
	Python interactive prompt with "pi" as alias, and add "py" as
	an alias to "python".
	* NEWS: Mention the new commands.
	* python/python.c (eval_python_command): New function.
	(python_interactive_command): For "python-interactive" with
	arguments, call eval_python_command.  For "python-interactive"
	without arguments, call PyRun_InteractiveLoop.
	(_initialize_python): Add "python-interactive" command with
	"pi" as alias, and add "py" as an alias to "python".

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

	* defs.h (quit_flag): Don't declare.
	(clear_quit_flag, check_quit_flag, set_quit_flag): Declare.
	(QUIT): Use new functions.
	* event-top.c (command_handler): Use clear_quit_flag.
	(handle_sigint): Use set_quit_flag.
	(async_request_quit): Use check_quit_flag.  Don't check
	immediate_quit.
	* exceptions.c (throw_exception): Use clear_quit_flag.
	* main.c (captured_main): Use clear_quit_flag.
	* python/python.c (clear_quit_flag, set_quit_flag)
	(check_quit_flag): New functions.
	* remote-sim.c (gdb_os_poll_quit): Use check_quit_flag,
	clear_quit_flag.
	* remote.c (remote_wait_as): Use check_quit_flag,
	clear_quit_flag.
	(remote_start_remote): Call QUIT.
	* symfile.c (load_progress): Use check_quit_flag.
	* top.c (command_loop): Use clear_quit_flag.
	(command_line_input): Call QUIT.
	* utils.c (quit_flag): Conditionally define.
	(clear_quit_flag, check_quit_flag, set_quit_flag): New
	functions.
	(prompt_for_continue): Call QUIT.  Use quit, not
	async_request_quit.
	* remote-mips.c (mips_expect_timeout): Call QUIT.
	* monitor.c (monitor_expect): Call QUIT.

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

	* event-top.c (sigwinch_token, handle_sigwinch): Remove.
	(async_init_signals): Update.
	* utils.c (init_page_info): Don't use SIGWINCH_HANDLER.
	(SIGWINCH_HANDLER_BODY): Remove.

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

	* jit.c (jit_object_close_impl): Don't malloc the objfile
	name.
	* objfiles.c (allocate_objfile): Don't malloc the objfile
	name.
	(free_objfile): Don't free the objfile name.
	* objfiles.h (struct objfile) <name>: Update comment.
	* symfile.c (reread_symbols): Fix reference counting.  Don't
	malloc objfile name.

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

	* windows-nat.c (windows_make_so): Use gdb_bfd_open.
	* symfile.c (bfd_open_maybe_remote): Use gdb_bfd_open.
	(symfile_bfd_open): Likewise.
	(generic_load): Likewise.
	* solib.c (solib_bfd_fopen): Use gdb_bfd_open.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use
	gdb_bfd_open.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Use gdb_bfd_open.
	* rs6000-nat.c (add_vmap): Use gdb_bfd_open.
	* remote-mips.c (mips_load_srec): Use gdb_bfd_open.
	(pmon_load_fast): Likewise.
	* remote-m32r-sdi.c (m32r_load): Use gdb_bfd_open.
	* procfs.c (insert_dbx_link_bpt_in_file): Use gdb_bfd_open.
	* machoread.c (macho_symfile_read_all_oso): Use gdb_bfd_open.
	(macho_check_dsym): Likewise.
	* m32r-rom.c (m32r_load): Use gdb_bfd_open.
	(m32r_upload_command): Likewise.
	* gdb_bfd.h (gdb_bfd_cache): Declare.
	* gdb_bfd.c (struct gdb_bfd_data): New.
	(gdb_bfd_cache): New global.
	(struct gdb_bfd_cache_search): New.
	(hash_bfd): New function.
	(eq_bfd): Likewise.
	(gdb_bfd_open): Likewise.
	(gdb_bfd_ref): Allocate a gdb_bfd_data and attach to the BFD.
	(gdb_bfd_unref): Remove closed BFD from cache.  Update for
	gdb_bfd_data.
	* exec.c (exec_file_attach): Use gdb_bfd_open.
	* dsrec.c (load_srec): Use gdb_bfd_open.

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

	* dwarf2read.c (macro_start_file): Update.
	* objfiles.c (get_objfile_bfd_data): Initialize macro_cache.
	(free_objfile_per_bfd_storage): Destroy macro_cache.
	(allocate_objfile, free_objfile): Update.
	* objfiles.h (struct objfile_per_bfd_storage) <macro_cache>:
	New field.
	(struct objfile) <macro_cache>: Remove.
	* symfile.c (reread_symbols): Update.
	* symmisc.c (print_symbol_bcache_statistics): Update.
	(print_objfile_statistics): Update.

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

	* elfread.c (elf_symtab_read): Update.
	* objfiles.c (objfiles_bfd_data): New global.
	(get_objfile_bfd_data, free_objfile_per_bfd_storage)
	(objfile_bfd_data_free, set_objfile_per_bfd): New functions.
	(allocate_objfile, free_objfile): Update.
	(_initialize_objfiles): Initialize objfiles_bfd_data.
	* objfiles.h (struct objfile_per_bfd_storage): New.
	(struct objfile) <per_bfd>: New field.
	<filename_cache>: Remove.
	(set_objfile_per_bfd): Declare.
	* symfile.c (reread_symbols): Update.  Call
	set_objfile_per_bfd.
	(allocate_symtab): Update.
	* symmisc.c (print_symbol_bcache_statistics): Update.
	(print_objfile_statistics): Print the size of the BFD obstack.

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

	* gdb_bfd.h: Include registry.h.  Use DECLARE_REGISTRY.
	* gdb_bfd.c: Use DEFINE_REGISTRY.
	(struct gdb_bfd_data): Add REGISTRY_FIELDS.
	(gdb_bfd_ref): Call bfd_alloc_data.
	(gdb_bfd_unref): Call bfd_free_data.

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

	* registry.h (struct registry_fields): New.
	(REGISTRY_FIELDS): Redefine.
	(REGISTRY_ACCESS_FIELD): New macro.
	(DEFINE_REGISTRY): Add ACCESS argument.  Update defined
	functions.

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

	* auto-load.c (_initialize_auto_load): Update.
	* solib-svr4.c (_initialize_svr4_solib): Update
	* solib-dsbt.c (_initialize_dsbt_solib): Update.
	* solib-darwin.c (_initialize_darwin_solib): Update.
	* registry.h: New file.
	* python/py-progspace.c (gdbpy_initialize_pspace): Update.
	* python/py-inferior.c (gdbpy_initialize_inferior): Update.
	* progspace.h: Include registry.h.  Use DECLARE_REGISTRY.
	(register_program_space_data_with_cleanup)
	(register_program_space_data, program_space_alloc_data)
	(clear_program_space_data, set_program_space_data)
	(program_space_data): Don't declare.
	* progspace.c: Use DEFINE_REGISTRY.
	(struct program_space_data, struct
	program_space_data_registration, struct
	program_space_data_registry, program_space_data_registry)
	(register_program_space_data_with_cleanup)
	(register_program_space_data, program_space_alloc_data)
	(program_space_free_data, clear_program_space_data)
	(set_program_space_data, program_space_data): Remove.
	* objfiles.h: Include registry.h.  Use DECLARE_REGISTRY.
	(struct objfile) <data, num_data>: Replace with REGISTRY_FIELDS.
	(register_objfile_data_with_cleanup, register_objfile_data)
	(clear_objfile_data, set_objfile_data, objfile_data): Don't
	declare.
	* objfiles.c: Use DEFINE_REGISTRY.
	(struct objfile_data, struct objfile_data_registration, struct
	objfile_data_registry, objfile_data_registry)
	(register_objfile_data_with_cleanup, register_objfile_data)
	(objfile_alloc_data, objfile_free_data, clear_objfile_data)
	(set_objfile_data, objfile_data): Remove.
	(_initialize_objfiles): Update.
	* jit.c (_initialize_jit): Update.
	* inflow.c (_initialize_inflow): Update.
	* inferior.h: Include registry.h.  Use DECLARE_REGISTRY.
	(struct inferior) <data, num_data>: Replace with REGISTRY_FIELDS.
	(register_inferior_data_with_cleanup, register_inferior_data)
	(clear_inferior_data, set_inferior_data, inferior_data): Don't
	declare.
	* inferior.c: Use DEFINE_REGISTRY.
	(struct inferior_data, struct inferior_data_registration, struct
	inferior_data_registry, inferior_data_registry)
	(register_inferior_data_with_cleanup, register_inferior_data)
	(inferior_alloc_data, inferior_free_data  clear_inferior_data)
	(set_inferior_data, inferior_data): Remove.
	* auxv.c (_initialize_auxv): Update.
	* ada-lang.c (_initialize_ada_language): Update.
	* breakpoint.c (_initialize_breakpoint): Update.
	* i386-nat.c (i386_use_watchpoints): Update.

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

	* exec.c (exec_close, exec_file_attach): Update.
	(add_to_section_table): Initialize 'key' field.
	(add_target_sections, remove_target_sections): Add 'key' argument.
	* exec.h (add_target_sections, remove_target_sections): Add
	'key' argument.
	* solib.c (solib_map_sections, update_solib_list, clear_solib)
	(reload_shared_libraries_1): Update.
	* target.h (struct target_section) <key>: New field.

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

	* cli/cli-cmds.c (filter_sals): Handle nelts == 0 case.

2012-08-21  Pierre Muller  <muller@ics.u-strasbg.fr>

	* symfile.c (allocate_symtab): Use host_address_to_string
	function instead of cast of pointer to long which is not
	compatible with x86_64-w64-mingw32 build.

2012-08-19  Andrew Pinski  <apinski@cavium.com>

	* mips-tdep.c (is_octeon): New function.
	(is_octeon_bbit_op): New function.
	(mips32_next_pc): Handle Octeon's bbit instructions.
	(mips32_instruction_has_delay_slot): Likewise.

2012-08-19  Andrew Pinski  <apinski@cavium.com>

	* mips-tdep.c (mips32_next_pc): Fix line spacing of the comment
	before the function.

2012-08-19  Andrew Pinski  <apinski@cavium.com>

	* mips-tdep.c (mips32_next_pc): Consolidate calls to itype_op.

2012-08-19  Keith Seitz  <keiths@redhat.com>

	PR c++/14365
	* c-typeprint.c (c_type_print_varspec_prefix): Pass
	-1 for SHOW to c_type_print_base for METHODPTR and MEMBERPTR.

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

	* Makefile.in (HFILES_NO_SRCDIR): Fix a typo: golang.h -> go-lang.h.
	The typo broke "make TAGS".

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

	GDB 7.5 released.

2012-08-17  Keith Seitz  <keiths@redhat.com>

	PR c++/13356
	* gdbtypes.c (strict_type_checking): New variable.
	(show_strict_type_checking): New function.
	(rank_one_type): Return NS_POINTER_INTEGER_CONVERSION_BADNESS
	if strict type checking is disabled.
	(_initialize_gdbtypes): Add "check type" subcommand.
	* gdbtypes.h (NS_INTEGER_POINTER_CONVERSION_BADNESS): New struct.

2012-08-17  Keith Seitz  <keiths@redhat.com>

	* language.h (type_mode): Remove.
	(type_check): Remove.
	(struct language_defn): Remove la_type_check.
	(STRICT_TYPE): Remove unused macro.
	(type_error): Remove.
	* language.c (set_type_range_case): Renamed to ...
	(set_range_case): ... this.  Update all callers.
	Remove type_mode/type_check.
	(type_mode): Remove.
	(type_check): Remove.
	(show_type_command): Remove.
	(set_type_command): Remove.
	(language_info): Remove type checking output.
	(type_error): Remove unused function.
	(range_error): Update comment.
	(unknown_language_defn): Remove la_type_check.
	(auto_language_defn): Likewise.
	(local_language_defn): Likewise.
	(_initialize_language): Remove "check type" subcommand.
	* ada-lang.c (ada_language_defn): Remove la_type_check.
	* c-lang.c (c_language_defn): Likewise.
	(cplus_language_defn): Likewise.
	(asm_language_defn): Likewise.
	(minimal_language_defn): Likewise.
	* d-lang.c (d_language_defn): Likewise.
	* f-lang.c (f_language_defn): Likewise.
	* go-lang.c (go_language_defn): Likewise.
	* jv-lang.c (java_language_defn): Likewise.
	* m2-lang.c (m2_language_defn): Likewise.
	* objc-lang.c (objc_language_defn): Likewise.
	* opencl-lang.c (opencl_language_defn): Likewise.
	* p-lang.c (pascal_language_defn): Likewise.

2012-08-16  Mike Frysinger  <vapier@gentoo.org>

	* infcmd.c (_initialize_infcmd): Remove trailing ) in next help text.

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

	* ia64-hpux-nat.c (ia64_hpux_get_register_from_save_state_t):
	New function.
	(ia64_hpux_xfer_memory): Check if inferior_ptid is known before
	using the regache.  Use ia64_hpux_get_register_from_save_state_t
	to access the bsp and bspstore registers if not.

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

	* breakpoint.h (detach_breakpoints): pid parameter is now a ptid.
	* breakpoint.c (detach_breakpoints): Change pid parameter into
	a ptid.  Adjust code accordingly.
	* infrun.c (handle_inferior_event): Delete variable child_pid.
	Update call to detach_breakpoints to pass the child ptid for
	fork events.
	* linux-nat.c (linux_nat_iterate_watchpoint_lwps): Remove
	assert that inferior_ptid's lwp is zero.
	(linux_handle_extended_wait): Update call to detach_breakpoints.
	* inf-ttrace.c (inf_ttrace_follow_fork): Update call to
	detach_breakpoints.

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

	* inf-ttrace.c (inf_ttrace_follow_fork): When following the
	parent, only call detach_breakpoints if tts.tts_event ==
	TTEVT_VFORK.

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

	* dwarf2-frame.c (dwarf2_frame_cache): Use
	get_frame_address_in_block instead of get_frame_pc as
	the bound for executing the frame's FDE.

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

	* gdbtypes.h (enum type_code): Define TYPE_CODE_BITSTRING -1.
	* arm-tdep.c (arm_type_align): Remove code handling TYPE_CODE_BITSTRING.
	* c-typeprint.c (c_type_print_varspec_prefix): Likewise.
	(c_type_print_varspec_suffix): Likewise.
	* eval.c (evaluate_subexp_standard): Likewise.
	* f-typeprint.c (f_type_print_varspec_prefix): Likewise.
	(f_type_print_varspec_suffix): Likewise.
	* gdbtypes.c (is_scalar_type): Likewise.
	(recursive_dump_type): Likewise.
	* infcall.c (value_arg_coerce): Likewise.
	* m2-valprint.c (m2_val_print): Likewise.
	* p-typeprint.c (pascal_type_print_varspec_prefix): Likewise.
	(pascal_type_print_varspec_suffix): Likewise.
	(pascal_type_print_base): Likewise.
	* p-valprint.c (pascal_val_print): Likewise.
	(pascal_val_print): Likewise.
	* valops.c (value_slice): Likewise.
	* valprint.c (scalar_type_p): Likewise.
	* valarith.c (value_bitstring_subscript): Remove.
	(value_concat): Remove code handling TYPE_CODE_BITSTRING.
	Remove comment on TYPE_CODE_BITSTRING.

	* stabsread.c (read_type): Don't set TYPE_CODE (type) to
	TYPE_CODE_BITSTRING.

	* python/py-type.c (pyty_codes): Move ENTRY (TYPE_CODE_BITSTRING) to
	slot 0.

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

	* tracepoint.c (trace_find_none_command): Remove.
	(_initialize_tracepoint): Call add_alias_cmd for "tfind none".

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

	* remote.c (handle_notification): Remove parameter 'length'.
	(putpkt_binary, getpkt_or_notif_sane_1): Caller update.

2012-08-15  Keith Seitz  <keiths@redhat.com>

	* gdbtypes.c (opaque_type_resolution): Make static.
	Add missing comment.
	(overload_debug): Add missing comment.
	(show_opaque_type_resolution): Likewise.
	(show_overload_debug): Likewise.
	(print_bit_vector): Remove unnecessary forward declaration.
	(print_arg_types): Likewise.
	(dump_fn_fieldlists): Likewise.
	(print_cplus_stuff): Likewise.

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

	* gdb_bfd.c (struct gdb_bfd_data) <archive_bfd>: New field.
	(gdb_bfd_ref): Initialize new field.
	(gdb_bfd_unref): Unref the archive BFD.
	(gdb_bfd_openr_next_archived_file): Acquire a reference to the
	parent archive.

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

	PR python/14387:
	* python/py-bpevent.c (create_breakpoint_event_object): Update
	comment.
	* python/py-event.c (evpy_add_attribute): Update comment.
	* python/py-exitedevent.c (create_exited_event_object): Fix
	reference counting and error handling.
	* python/py-newobjfileevent.c (create_new_objfile_event_object):
	Fix reference counting.
	* python/py-signalevent.c (create_signal_event_object): Fix
	reference counting and error handling.
	* python/py-stopevent.c (emit_stop_event): Fix reference
	counting.
	* python/py-threadevent.c (get_event_thread): Return a
	borrowed reference.
	* python/py-type.c (convert_field): Fix reference counting.

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

	* dwarf2read.c (dwarf_decode_macro_bytes)
	<DW_MACRO_GNU_transparent_include>: Use pointer to included data
	as hash key.

2012-08-14  Mike Frysinger  <vapier@gentoo.org>

	* infcmd.c (_initialize_infcmd): Update help text for the signal,
	stepi, nexti, finish, next, step, jump, and continue commands.
	* infrun.c (_initialize_infrun): Update help text for the handle
	command.

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

	* gdbtypes.c (struct extra): Delete, unused.

	* gdbtypes.c: Whitespace cleanup.
	(address_space_name_to_int): Remove "extern" from definition.
	(_initialize_gdbtypes): Declare with initialize_file_ftype.

	* gdbtypes.c (make_pointer_type): Remove redundant setting of
	TYPE_POINTER_TYPE (type).

2012-08-14  Gary Benson  <gbenson@redhat.com>

	* solib-svr4.c (svr4_free_library_list): Use free_so.

2012-08-13  Mike Frysinger  <vapier@gentoo.org>

	* .gitignore: Add go-exp.c.

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

	* value.c (show_convenience): Tweak comment.
	(_initialize_values): Mention convenience functions in the help text
	for "show convenience".

2012-08-13  Yao Qi  <yao@codesourcery.com>

	* std-operator.def: Remove TERNOP_SLICE_COUNT.
	* breakpoint.c (watchpoint_exp_is_const): Remove handling to
	TERNOP_SLICE_COUNT.
	* eval.c (evaluate_subexp_standard): Likewise.
	* expprint.c (print_subexp_standard): Likewise.
	(dump_subexp_body_standard): Likewise.
	* parse.c (operator_length_standard): Likewise.

2012-08-13  Yao Qi  <yao@codesourcery.com>

	* std-operator.def: Remove OP_BITSTRING.
	* breakpoint.c (watchpoint_exp_is_const): Update.
	* eval.c (evaluate_subexp_standard): Remove handling to
	OP_BITSTRING.
	* expprint.c (print_subexp_standard): Likewise.
	(dump_subexp_body_standard): Likewise.
	* parse.c (operator_length_standard): Likewise.
	* valops.c (value_bitstring): Remove.
	* value.h: Remove the declaration of 'value_bitstring'.

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

	* linespec.c (find_methods): Remove unused variables `i1' and
	`name_len'.
	(decode_line_full): Likewise for `arg_start'.

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

	* gdb_bfd.c (gdb_bfd_unref): Remove unused variable `slot'.
	(zlib_decompress_section): Likewise for `section_data'.
	(gdb_bfd_map_section): Likewise for `buf' and `retbuf'.

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

	Add $_memeq, $_regex, $_streq, $_strlen convenience functions.
	* NEWS: Document them.
	* data-directory/Makefile.in (PYTHON_FILES): Add function/__init__.py,
	function/strfns.py.
	* python/py-type.c (typy_array_1): New function.
	(typy_array): Call it.
	(typy_vector): New function.
	(type_object_methods): Add "vector".
	* python/lib/gdb/function/__init__.py: New file.
	* python/lib/gdb/function/strfns.py: New file.

2012-08-10  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* python/py-type.c (convert_field): Use gdb_py_long_from_longest
	for TYPE_FIELD_BITPOS.
	(typy_get_sizeof): Likewise for TYPE_LENGTH.

2012-08-10  Mike Frysinger  <vapier@gentoo.org>

	PR cli/10436:
	* common/vec.h (VEC_merge): Define.
	(DEF_VEC_ALLOC_FUNC_I): Add a merge helper.
	(DEF_VEC_ALLOC_FUNC_P): Likewise.
	(DEF_VEC_ALLOC_FUNC_O): Likewise.
	* completer.c: Include gdb_signals.h.
	(signal_completer): Define.
	* completer.h (signal_completer): Add prototype.
	* infcmd.c (_initialize_infcmd): Assign the command
	completer for "signal" to handle_completer.
	* infrun.c: Include completer.h.
	(handle_completer): Define.
	(_initialize_infrun): Declare a new local variable c.  Store the
	result of add_com("handle") to it.  Assign the command
	completer for "handle" to handle_completer.

2012-08-09  Yao Qi  <yao@codesourcery.com>

	* cli/cli-decode.c (set_cmd_prefix): New.
	(lookup_cmd_for_prefixlist): New.
	(add_prefix_cmd): Call set_cmd_prefix and update field 'prefix'
	of each cmd_list_element in *prefixlist.
	(add_setshow_cmd_full): set_cmd_prefix.
	(add_alias_cmd): Likewise.
	* cli/cli-decode.h (struct cmd_list_element) <prefix>: New field.
	Declare 'auto_boolean_enums'.
	* cli/cli-setshow.c: Include "observer.h".
	(notify_command_param_changed_p): New.
	(add_setshow_auto_boolean_cmd): Move auto_boolean_enums out.
	Remove 'static'.
	(do_setshow_command): Split it to ...
	(do_set_command, do_show_command): ... them.  New.
	(do_set_command): Call observer_notify_command_param_changed if
	notify_command_param_changed_p returns true.
	(cmd_show_list): Caller update.
	* auto-load.c (set_auto_load_cmd): Likewise.
	* remote.c (show_remote_cmd): Likewise.
	* cli/cli-setshow.h: Update declarations.
	* top.c (execute_command): Call do_set_command and do_show_command.

	* NEWS: Mention new MI notification.
	* mi/mi-interp.c: Declare mi_command_param_changed.
	(mi_interpreter_init): Attach mi_command_param_changed to
	observer command_param_changed.
	(mi_command_param_changed): New.
	Remove mi_suppress_breakpoint_notifications.
	Define global variable mi_suppress_notification.
	(mi_breakpoint_created): Update.
	(mi_breakpoint_deleted): Likewise.
	(mi_breakpoint_modified): Likewise.
	* mi/mi-main.c (mi_cmd_execute): Likewise.  Check command
	'gdb-set' and set mi_suppress_notification.
	* mi/mi-main.h: (mi_suppress_notification): New struct.

2012-08-09  Andreas Tobler  <andreast@fgznet.ch>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* fbsd-nat.h (fbsd_find_memory_regions): Use find_memory_region_ftype.

2012-08-09  Yao Qi  <yao@codesourcery.com>

	* cli/cli-cmds.c (enablebreaklist): Move it to breakpoint.c.
	(skiplist): Move it to skip.c.
	(init_cmd_lists): Remove code setting enablebreaklist and
	skiplist to NULL.
	* breakpoint.c (enablebreaklist): Moved from cli/cli-cmds.c.
	* cli/cli-cmds.h: Remove declaration of enablebreaklist and
	skiplist.
	* gdbcmd.h: Likewise.
	* skip.c (_initialize_step_skip): Move 'skiplist' from
	cli/cli-cmds.c.

2012-08-09  Yao Qi  <yao@codesourcery.com>

	* cli/cli-dump.c: Add 'static' to some cmd_list_element variables.
	* gnu-nat.c, symfile.c: Likewise.

2012-08-08  Aaron Gamble  <agamble@google.com>

	* utils.c (prompt_for_continue_wait_time): New static global.
	(make_command_stats_cleanup): Initialize it.
	(report_command_stats): Subtract time waiting for user.
	(prompt_for_continue): Track time waiting for user.
	(defaulted_query): Track time waiting for user.

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

	* eval.c (evaluate_subexp_standard): Fix thinko in handling
	UNOP_MEMVAL_TYPE.
	* expprint.c (print_subexp_standard, case OP_TYPE): New.
	(print_subexp_standard, case UNOP_CAST_TYPE): Don't increment pos.
	(print_subexp_standard, case UNOP_DYNAMIC_CAST): Ditto.
	(print_subexp_standard, case UNOP_REINTERPRET_CAST): Ditto.
	(print_subexp_standard, case UNOP_MEMVAL_TYPE): Ditto.
	(dump_subexp_body_standard, case UNOP_DYNAMIC_CAST): Don't increment
	elt.
	(dump_subexp_body_standard, case UNOP_REINTERPRET_CAST): Ditto.
	(dump_subexp_body_standard, case UNOP_CAST_TYPE): Ditto.
	(dump_subexp_body_standard, case UNOP_MEMVAL_TYPE): Ditto.
	(dump_prefix_expression): Handle OP_TYPE.

2012-08-08  Keith Seitz  <keiths@redhat.com>

	* breakpoint.c (parse_breakpoint_sals): Remove unused variable
	addr_start.

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

	* linux-thread-db.c: #include "gdb_vecs.h".
	(try_thread_db_load_from_pdir_1): New arg "subdir".  All callers
	updated.
	(try_thread_db_load_from_pdir): New arg "subdir".  All callers updated.
	(thread_db_load_search): Use a vector to iterate over path elements.
	Handle text appearing after "$pdir".

	* gdb_string.h: Moved to ...
	* common/gdb_string.h: ... here.
	* common/vec.h: Remove #ifndef GDBSERVER conditional inclusion of
	gdb_string.h and gdb_assert.h.

2012-08-08  Yao Qi  <yao@codesourcery.com>

	* tic6x-tdep.c (tic6x_register_to_value): Remove.
	(tic6x_value_to_register): Likewise.
	(tic6x_gdbarch_init): Don't call set_gdbarch_register_to_value
	and set_gdbarch_value_to_register.

2012-08-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Jean-Marc Saffroy  <saffroy@gmail.com>

	PR 11804
	* defs.h (find_memory_region_ftype): New comment.  New arg modified.
	* fbsd-nat.c (fbsd_find_memory_regions): Add the passed modified value.
	* gcore.c (gcore_create_callback): New function comment.  Add modified
	parameter.  Only write modified regions.  Set SEC_READONLY exactly
	according to MODIFIED.
	(objfile_find_memory_regions): Ignore separate debug info files.  Ass
	the passed modified value to FUNC.
	* gnu-nat.c (gnu_find_memory_regions): Add the passed modified value.
	* linux-tdep.c (linux_find_memory_regions): Try to reads smaps file
	first.  New variables modified and has_anonymous.  Parse the lines of
	smaps file.  Add the passed MODIFIED value to FUNC.
	* procfs.c (find_memory_regions_callback): Add the passed modified
	value.

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 python/14386:
	* varobj.c (update_dynamic_varobj_children): Don't call
	PyIter_Check.

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

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

2012-08-06  Nathaniel Flath  <flat0103@gmail.com>

	* NEWS: New entry for 'cd' default parameters.
	* cli/cli-cmds.c (cd_command): Replace error_no_arg by DIR assignment.

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-02  Yao Qi  <yao@codesourcery.com>

	* dwarf2loc.c (entry_values_debug): Add 'unsigned'.
	(_initialize_dwarf2loc): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* dwarf2loc.h: Update the declaration of 'entry_values_debug'.
	* dwarf2read.c (dwarf2_die_debug): Add 'unsigned'.
	(_initialize_dwarf2_read): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* darwin-nat.c (dwarwin_debug_flag): Add 'unsigned'.
	(_initialize_darwin_inferior): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* frame.c (frame_debug): Add 'unsigned'.
	(_intialize_frame): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* frame.h: Update the declaration of 'frame_debug'.
	* gdbtypes.c (overload_debug): Add 'unsigned'.
	(_initialize_gdbtypes): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* inferior.h: Update declaration of 'debug_infrun'.
	* infrun.c (debug_infrun): Add 'unsigned'.
	(_initialize_infrun): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* jit.c (jit_debug): Add 'unsigned'.
	(_initialize_jit): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* linux-nat.c (debug_linux_nat): Add 'unsigned'.
	(_initialize_linux_nat): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* linux-thread-db.c (libthread_db_debug): Add 'unsigned'.
	(_initialize_thread_db): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* machoread.c (mach_o_debug_level): Add 'unsigned'.
	(_initialize_machoread): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* mi/mi-cmd-var.c: Update the declaration of 'varobjdebug'.
	* microblaze-tdep.c (microblaze_debug_flag): Add 'unsigned'.
	(_initialize_microblaze_tdep): Call add_setshow_zuinteger_cmd
	intead of add_setshow_zinteger_cmd.
	* mips-tdep.c (mips_debug): Add 'unsigned'.
	(_initialize_mips_tdep): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* monitor.c (monitor_debug): Add 'unsigned'.
	(_initialize_remote_monitors): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* observer.c (observer_debug): Add 'unsigned'.
	(_initialize_observer): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* parse.c (expressiondebug): Add 'unsigned'.
	(_initialize_parse): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* record.c (record_debug): Add 'unsigned'.
	(_initialize_record): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* record.h: Update the declaration of 'record_debug'.
	* stap-probe.c (stap_expression_debug): Add 'unsigned'.
	(_initialize_stap_probe): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* serial.c (global_serial_debug_p): Add 'unsigned'.
	(_initialize_serial): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* solib-dsbt.c (solib_dsbt_debug): Add 'unsigned'.
	(_initialize_dsbt_solib): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* solib-frv.c (solib_frv_debug): Add 'unsigned'.
	(_initialize_frv_solib): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* target.c (targetdebug): Add 'unsigned'.
	(initialize_targets): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* valops.c (overload_debug): Add 'unsigned'.
	* varobj.c (varobjdebug): Add 'unsigned'.
	(_initialize_varobj): Call add_setshow_zuinteger_cmd instead of
	add_setshow_zinteger_cmd.
	* xtensa-tdep.c (xtensa_debug_level): Add 'unsigned'.
	(_initialize_xtensa_tdep): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.

	* arch-utils.h: Remove the declaration of 'gdbarch_debug'.
	* gdbarch.sh (gdbarch_debug): Add 'unsigned'.
	(extern void _initialize_gdbarch): Call add_setshow_zuinteger_cmd
	instead of add_setshow_zinteger_cmd.
	* gdbarch.c, gdbarch.h: Re-generated.

2012-08-02  Yao Qi  <yao@codesourcery.com>

	* nto-tdep.c: Don't include cli/cli-decode.h and
	cli/cli-cmds.h.
	(_initialize_nto_tdep): Remove.
	* nto-tdep.h (struct nto_target_ops) <internal_debugging>:
	Remove field.
	Remove macro nto_internal_debugging.

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

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

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-31  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c: Add 'static' for some variables.

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

	* go32-nat.c: Declare _initialize_go32_nat.
	* ser-go32.c: Declare _initialize_ser_dos.
	* top.c (do_chdir_cleanup): Add 'static'.

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

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

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

	* remote-sim.c (gdb_os_poll_quit): Don't check immediate_quit.

2012-07-30  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-30  Andrew Burgess  <aburgess@broadcom.com>

	* varobj.c (varobj_invalidate_iter): All varobj must be marked as
	invalid or reevaluated to prevent prevent references to possibly
	delete'd type objects being left in the varobj.

2012-07-27  Tom Tromey  <tromey@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* copying.awk: Print buffer-read-only and vi ro markers.
	* copying.c: Rebuild.
	* gdbarch.sh (copyright): Print buffer-read-only and vi ro markers.
	* gdbarch.c, gdbarch.h: Rebuild.
	* target-descriptions.c (maint_print_c_tdesc_cmd): Print
	buffer-read-only and vi ro markers.
	* features/arm-with-iwmmxt.c: Rebuild.
	* features/arm-with-m-fpa-layout.c: Rebuild.
	* features/arm-with-m-vfp-d16.c: Rebuild.
	* features/arm-with-m.c: Rebuild.
	* features/arm-with-neon.c: Rebuild.
	* features/arm-with-vfpv2.c: Rebuild.
	* features/arm-with-vfpv3.c: Rebuild.
	* features/i386/amd64-avx-linux.c: Rebuild.
	* features/i386/amd64-avx.c: Rebuild.
	* features/i386/amd64-linux.c: Rebuild.
	* features/i386/amd64.c: Rebuild.
	* features/i386/i386-avx-linux.c: Rebuild.
	* features/i386/i386-avx.c: Rebuild.
	* features/i386/i386-linux.c: Rebuild.
	* features/i386/i386-mmx-linux.c: Rebuild.
	* features/i386/i386-mmx.c: Rebuild.
	* features/i386/i386.c: Rebuild.
	* features/i386/x32-avx-linux.c: Rebuild.
	* features/i386/x32-avx.c: Rebuild.
	* features/i386/x32-linux.c: Rebuild.
	* features/i386/x32.c: Rebuild.
	* features/mips-dsp-linux.c: Rebuild.
	* features/mips-linux.c: Rebuild.
	* features/mips64-dsp-linux.c: Rebuild.
	* features/mips64-linux.c: Rebuild.
	* features/rs6000/powerpc-32.c: Rebuild.
	* features/rs6000/powerpc-32l.c: Rebuild.
	* features/rs6000/powerpc-403.c: Rebuild.
	* features/rs6000/powerpc-403gc.c: Rebuild.
	* features/rs6000/powerpc-405.c: Rebuild.
	* features/rs6000/powerpc-505.c: Rebuild.
	* features/rs6000/powerpc-601.c: Rebuild.
	* features/rs6000/powerpc-602.c: Rebuild.
	* features/rs6000/powerpc-603.c: Rebuild.
	* features/rs6000/powerpc-604.c: Rebuild.
	* features/rs6000/powerpc-64.c: Rebuild.
	* features/rs6000/powerpc-64l.c: Rebuild.
	* features/rs6000/powerpc-7400.c: Rebuild.
	* features/rs6000/powerpc-750.c: Rebuild.
	* features/rs6000/powerpc-860.c: Rebuild.
	* features/rs6000/powerpc-altivec32.c: Rebuild.
	* features/rs6000/powerpc-altivec32l.c: Rebuild.
	* features/rs6000/powerpc-altivec64.c: Rebuild.
	* features/rs6000/powerpc-altivec64l.c: Rebuild.
	* features/rs6000/powerpc-cell32l.c: Rebuild.
	* features/rs6000/powerpc-cell64l.c: Rebuild.
	* features/rs6000/powerpc-e500.c: Rebuild.
	* features/rs6000/powerpc-e500l.c: Rebuild.
	* features/rs6000/powerpc-isa205-32l.c: Rebuild.
	* features/rs6000/powerpc-isa205-64l.c: Rebuild.
	* features/rs6000/powerpc-isa205-altivec32l.c: Rebuild.
	* features/rs6000/powerpc-isa205-altivec64l.c: Rebuild.
	* features/rs6000/powerpc-isa205-vsx32l.c: Rebuild.
	* features/rs6000/powerpc-isa205-vsx64l.c: Rebuild.
	* features/rs6000/powerpc-vsx32.c: Rebuild.
	* features/rs6000/powerpc-vsx32l.c: Rebuild.
	* features/rs6000/powerpc-vsx64.c: Rebuild.
	* features/rs6000/powerpc-vsx64l.c: Rebuild.
	* features/rs6000/rs6000.c: Rebuild.
	* features/s390-linux32.c: Rebuild.
	* features/s390-linux32v1.c: Rebuild.
	* features/s390-linux32v2.c: Rebuild.
	* features/s390-linux64.c: Rebuild.
	* features/s390-linux64v1.c: Rebuild.
	* features/s390-linux64v2.c: Rebuild.
	* features/s390x-linux64.c: Rebuild.
	* features/s390x-linux64v1.c: Rebuild.
	* features/s390x-linux64v2.c: Rebuild.
	* features/tic6x-c62x-linux.c: Rebuild.
	* features/tic6x-c62x.c: Rebuild.
	* features/tic6x-c64x-linux.c: Rebuild.
	* features/tic6x-c64x.c: Rebuild.
	* features/tic6x-c64xp-linux.c: Rebuild.
	* features/tic6x-c64xp.c: Rebuild.

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

	* c-exp.y (classify_name): Avoid assignment in condition.

2012-07-27  Roland Schwingel  <roland.schwingel@onevision.com>

	* amd64-windows-tdep.c: Include "frame.h".
	(amd64_windows_skip_trampoline_code): New function.
	(amd64_windows_init_abi): Add trampoline registration.

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

	* tracepoint.c (cur_traceframe_number): Remove.
	(set_tfile_traceframe): Remove.
	(tfile_trace_find, tfile_fetch_registers): Update callers.
	(tfile_xfer_partial, tfile_get_trace_state_variable_value): Likewise.
	(tfile_open, tfile_trace_find): Likewise.

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

	* thread.c (switch_to_thread): Don't call registers_changed.

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

	* Makefile.in (SFILES): Remove objc-exp.y.
	(YYFILES): Remove objc-exp.c.
	(YYOBJ): Remove objc-exp.o.
	(local-maintainer-clean): Don't mention objc-exp.c.
	* c-exp.y: Include objc-lang.h.
	(%union) <class>: New field.
	(NSSTRING, SELECTOR, CLASSNAME, OBJC_LBRAC): New tokens.
	(exp): Clone subscript production for OBJC_LBRAC.  Add various
	Objective C productions.
	(msglist, msgarglist, msgarg): New productions.
	(array_mod, func_mod, operator): Clone productions for
	OBJC_LBRAC.
	(parse_string_or_char): Handle '@' strings.
	(lex_one_token): Return OBJC_LBRAC.  Recognize @selector.
	(classify_name): Check la_name_of_this.  Recognize ObjC class
	names.
	* objc-exp.y: Remove.
	* objc-lang.c (objc_language_defn): Use c_parse, c_error.
	* objc-lang.h (objc_parse, objc_error): Don't declare.

2012-07-26  Markus Metzger  <markus.t.metzger@intel.com>

	* python/py-inferior.c (infpy_threads): Call update_thread_list ().

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

	* auto-load.c (auto_load_info_scripts): Remove immediate_quit increment
	and decrement.

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

	* copying.c: Rebuild.
	* copying.awk: Don't use immediate_quit.  Use 'no_set_class', not
	'no_class'.

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

	* symmisc.c (print_symbol_bcache_statistics): Use QUIT, not
	immediate_quit.
	(print_objfile_statistics): Likewise.
	(maintenance_print_symbols): Likewise.
	(maintenance_print_msymbols): Likewise.
	(maintenance_print_objfiles): Likewise.
	* psymtab.c (print_partial_symbols): Call QUIT.
	(maintenance_print_psymbols): Likewise.  Don't modify
	immediate_quit.
	* copying.c (show_copying_command): Don't modify immediate_quit.
	(show_warranty_command): Likewise.
	* cli/cli-cmds.c (show_version): Don't modify immediate_quit.

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-26  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Document new --enable-libmcheck/--disable-libmcheck
	configure options.

2012-07-26  Tristan Gingold  <gingold@adacore.com>

	* machoread.c: Include gdb_bfd.h.

2012-07-26  Tristan Gingold  <gingold@adacore.com>

	* dwarf2loc.c (locexpr_describe_location_piece): Use uint64_t for
	offset.

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

	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Expand parameter
	SIZE to size_t.
	(dwarf2_evaluate_loc_desc): Likewise.
	(dwarf2_loc_desc_needs_frame): Likewise.
	(locexpr_describe_location_1): Likewise.
	* dwarf2loc.h (struct dwarf2_locexpr_baton): Make SIZE as
	size_t.
	(struct dwarf2_loclist_baton): Likewise.
	* dwarf2read.c (struct dwarf_block): Likewise.
	(dump_die_shallow): Use pulongest to print dwarf_block.size.
	(decode_locdesc): Expand SIZE and I to size_t.

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

	* contrib/cc-with-tweaks.sh: Put into comment path gdb/contrib/.

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

	* doublest.c (convert_doublest_to_floatformat): If the exponent
	is too small, treat the value as zero.  If the exponent is too
	large, treat the value as infinity.

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

	* configure.ac: Add --enable-lmcheck configure option.
	* configure: Regenerate.

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

	* NEWS: Mention maint info bfds.
	* gdb_bfd.c (all_bfds): New global.
	(gdb_bfd_ref, gdb_bfd_unref): Update all_bfds.
	(print_one_bfd, maintenance_info_bfds, _initialize_gdb_bfd):
	New functions.

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

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

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

	* macrotab.c (macro_bcache_str): Remove cast.

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  Tom Tromey  <tromey@redhat.com>

	* symfile.c (symbol_file_add): Don't open BFD twice.

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

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

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

	* m68k-tdep.c (m68k_reg_struct_return_p): Accept complex types.
	(m68k_return_value): Handle complex types like structures.
	(m68k_svr4_return_value): Likewise.

2012-07-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* gdb_bfd.c (zlib_decompress_section) <!HAVE_ZLIB_H>: Adjust
	parameters to bfd_get_section_name.

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

	* cli/cli-setshow.c: Handle case 'var_uinteger'
	and 'var_zuninteger' together.  Handle case 'var_integer' and
	'var_zinteger' together.

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-23  Keith Seitz  <keiths@redhat.com>

	* linespec.c (decode_objc): Record the function name
	in the linespec.

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

	* rs6000-nat.c (add_vmap): Rewrite archive loop.  Fix reference
	counting.
	* exec.c (exec_close_1): Unconditionally release vmap's BFD.
	(map_vmap): Acquire a reference to the BFD.

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

	* p-valprint.c (pascal_object_print_value): Replace potentially
	unsafe alloca with xmalloc/xfree.
	* valops.c (search_struct_method): Likewise.

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

	* solib-svr4.c (enable_break): Update.
	* bfd-target.h (target_bfd_reopen): Update documentation.

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

	* symfile.c (separate_debug_file_exists): Update.
	(gdb_bfd_open_maybe_remote): Rename from bfd_open_maybe_remote.
	(reread_symbols): Update.
	* elfread.c (build_id_verify): Update.
	* symfile.h (gdb_bfd_open_maybe_remote): Rename from
	bfd_open_maybe_remote.

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

	* gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Fix comment.

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

	* coffread.c (coff_symfile_read): Make a cleanup for 'debugfile'
	and 'abfd'.
	* elfread.c (elf_symfile_read): Make a cleanup for 'debugfile'
	and 'abfd'.
	* jit.c (jit_bfd_try_read_symtab): Make a cleanup for 'nbfd'.
	* machoread.c (macho_add_oso_symfile): Make a cleanup for
	'abfd'.
	(macho_symfile_read): Make a cleanup for 'dsym_bfd'.
	* objfiles.c (allocate_objfile): Acquire a new reference.
	* rs6000-nat.c (add_vmap): Don't acquire a BFD reference.
	* solib.c (solib_read_symbols): Don't acquire a BFD reference.
	* spu-linux-nat.c (spu_symbol_file_add_from_memory): Make
	a cleanup for 'nbfd'.
	* symfile-mem.c (symbol_file_add_from_memory): Make a cleanup
	for 'nbfd'.
	* symfile.c (symbol_file_add_with_addrs_or_offsets): Don't
	make a cleanup for 'abfd'.
	(symbol_file_add): Make a BFD cleanup.

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

	* cli/cli-dump.c (bfd_openr_with_cleanup): Use gdb_bfd_openr.
	(bfd_openw_with_cleanup): Use gdb_bfd_openw.
	* corelow.c (core_open): Use gdb_bfd_fopen.
	* dsrec.c (load_srec): Use gdb_bfd_openr.
	* exec.c (exec_file_attach): Use gdb_bfd_fopen.
	* gcore.c (gcore_memory_sections): Use gdb_bfd_openw.
	* gdb_bfd.c (gdb_bfd_fopen, gdb_bfd_openr, gdb_bfd_openw)
	(gdb_bfd_openr_iovec, gdb_bfd_openr_next_archived_file)
	(gdb_bfd_fdopenr): New functions.
	* gdb_bfd.h (gdb_bfd_fopen, gdb_bfd_openr, gdb_bfd_openw)
	(gdb_bfd_openr_iovec, gdb_bfd_openr_next_archived_file)
	(gdb_bfd_fdopenr): Declare.
	* jit.c (bfd_open_from_target_memory): Use gdb_bfd_openr_iovec.
	* m32-rom.c (m32r_load, m32r_upload_command): Use gdb_bfd_openr.
	* machoread.c (macho_symfile_read_all_oso): Use gdb_bfd_openr,
	gdb_bfd_openr_next_archived_file.
	(macho_check_dsym): Use gdb_bfd_openr.
	(macho_add_oso_symfile): Don't call gdb_bfd_stash_filename.
	* procfs.c (insert_dbx_link_bpt_in_file): Use gdb_bfd_fdopenr.
	* remote-m32r-sdi.c (m32r_load): Use gdb_bfd_openr.
	* remote-mips.c (mips_load_srec, pmon_load_fast): Use
	gdb_bfd_openr.
	* remote.c (remote_bfd_open): Use gdb_bfd_openr_iovec.
	* rs6000-nat.c (add_vmap): Use gdb_bfd_openr, gdb_bfd_fdopenr,
	gdb_bfd_openr_next_archived_file.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Use gdb_bfd_openr.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use
	gdb_bfd_openr.
	* solib-spu.c (spu_bfd_fopen): Use gdb_bfd_openr_iovec.
	* solib.c (solib_bfd_fopen): Use gdb_bfd_fopen.
	* spu-linux-nat.c (spu_bfd_open): Use gdb_bfd_openr_iovec.
	* symfile.c (bfd_open_maybe_remote): Use gdb_bfd_openr.
	(symfile_bfd_open): Use gdb_bfd_fopen.
	(generic_load): Use gdb_bfd_openr.
	* windows-nat.c (windows_make_so): Use gdb_bfd_openr.

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

	* bfd-target.c (target_bfd_reopen): Update.
	* cli/cli-dump.c (bfd_openr_with_cleanup)
	(bfd_openw_with_cleanup): Update.
	* corelow.c (core_open): Update.
	* dsrec.c (load_srec): Update.
	* exec.c (exec_file_attach): Update.
	* gcore.c (create_gcore_bfd): Update.
	* gdb_bfd.c (gdb_bfd_ref): Return void.
	(gdb_bfd_open): Update.
	* gdb_bfd.h (gdb_bfd_ref): Return void.
	Update comments.
	* jit.c (jit_bfd_try_read_symtab): Update.
	* m32r-rom.c (m32r_load, m32r_upload_command): Update.
	* machoread.c (macho_symfile_read_all_oso): Update.
	(macho_check_dsym): Update.
	* procfs.c (insert_dbx_link_bpt_in_file): Update.
	* remote-m32r-sdi.c (m32r_load): Update.
	* remote-mips.c (mips_load_srec, pmon_load_fast): Update.
	* rs6000-nat.c (add_vmap): Update.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Update.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Update.
	* solib-spu.c (spu_bfd_open): Update.
	* solib.c (solib_bfd_fopen, solib_read_symbols): Update.
	* spu-linux-nat.c (spu_bfd_open): Update.
	* symfile.c (bfd_open_maybe_remote, symfile_bfd_open)
	(generic_load): Update.
	* windows-nat.c (windows_make_so): Update.

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

	* sh-tdep.c (sh_treat_as_flt_p): Remove unused variable LEN.

2012-07-20  Jeff Kenton  <jkenton@tilera.com>

	* tilegx-linux-tdep.c (tilegx_linux_sigframe_init): Fix
	SIGTRAMP_FRAME unwinding.

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-20  Pedro Alves  <palves@redhat.com>

	PR threads/11692
	PR gdb/12203

	* infrun.c (handle_inferior_event) <new thread>: Don't special
	case minus_one_ptid.
	<TARGET_WAITKIND_SPURIOUS>: Ditto.
	* linux-thread-db.c (thread_get_info_callback): Don't return early
	if the thread is zombie.
	(thread_from_lwp): Change return type to void.  Rewrite stale
	comment.
	(attach_thread): Don't return early if the thread is zombie,
	instead set its "dying" flag.
	(thread_db_wait): Don't return TARGET_WAITKIND_SPURIOUS anymore.
	(find_new_threads_callback): Don't return early if the thread is
	zombie.

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

	* linux-nat.c (linux_nat_wait): Dump the passed in target options.
	* target.c (target_wait): Likewise.
	(str_comma_list_concat_elem, do_option, target_options_to_string):
	New functions.
	* target.h (target_options_to_string): Declare.

2012-07-20  Jan Kratochvil <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* dwarf2read.c (dwarf_decode_macros)
	<DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt,
	DW_MACRO_GNU_transparent_include_alt>: New cases.
	(dwarf_decode_macro_bytes) <DW_MACRO_GNU_define_indirect,
	DW_MACRO_GNU_undef_indirect>: Examine 'section_is_dwz'.

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

	* dwarf2read.c (try_open_dwo_file): Don't call
	gdb_bfd_stash_filename.

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

	* i386-tdep.c (i386_record_modrm, i386_record_lea_modrm_addr)
	(i386_record_lea_modrm, i386_record_push, i386_record_floats)
	(i386_process_record): Tweak description comments.

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

	* i386-tdep.c (i386_record_modrm, i386_record_lea_modrm_addr)
	(i386_process_record): Use record_read_memory.
	* record.c (record_read_memory): New function.
	(record_arch_list_add_mem, record_exec_insn): Use
	record_read_memory.
	* record.h (record_read_memory): Declare.

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

	* cli/cli-setshow.c (do_setshow_command): Don't check pointer is
	NULL for xfree.

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

	* record.c (record_resume): Ask the target beneath to report all
	signals.

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

	* dwarf2read.c (dwarf2_ranges_read): Ignore ranges starting at zero if
	there's no section at address zero.
	(dwarf2_record_block_ranges): Ditto.

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

	* command.h, remote.c: Fix a typo in comment.

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

	PR exp/13206:
	* ax-gdb.c (gen_expr) <OP_TYPEOF, OP_DECLTYPE>: New cases.
	* breakpoint.c (watchpoint_exp_is_const) <OP_TYPEOF,
	OP_DECLTYPE>: New cases.
	* c-exp.y (TYPEOF, DECLTYPE): New tokens.
	(type_exp): Add new productions.
	(ident_tokens): Add __typeof__, typeof, __typeof, __decltype,
	and decltype.
	* eval.c (evaluate_subexp_standard) <OP_TYPEOF, OP_DECLTYPE>:
	New case.
	* expprint.c (dump_subexp_body_standard) <OP_TYPEOF,
	OP_DECLTYPE>: New case.
	* parse.c (operator_length_standard) <OP_TYPEOF, OP_DECLTYPE>:
	New case.
	* std-operator.def (OP_TYPEOF, OP_DECLTYPE): New constants.
	* varobj.c (varobj_create): Handle OP_TYPEOF, OP_DECLTYPE.

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

	* c-exp.y (enum token_flags): New.
	(struct token) <cxx_only>: Remove.
	<flags>: New field.
	(tokentab3, tokentab2, ident_tokens): Update.
	(lex_one_token): Update.  Handle FLAG_SHADOW.

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

	* ax-gdb.c (gen_expr): Handle UNOP_CAST_TYPE, UNOP_MEMVAL_TYPE.
	* breakpoint.c (watchpoint_exp_is_const): Handle UNOP_CAST_TYPE,
	UNOP_REINTERPRET_CAST, UNOP_DYNAMIC_CAST.
	* c-exp.y (exp): Emit UNOP_MEMVAL_TYPE, UNOP_CAST_TYPE.  Update
	for changes to UNOP_REINTERPRET_CAST, UNOP_DYNAMIC_CAST.  Use
	type_exp production where appropriate.
	* eval.c (evaluate_subexp_standard) <UNOP_CAST_TYPE>: New case.
	<UNOP_DYNAMIC_CAST, UNOP_REINTERPRET_CAST>: Update.
	<UNOP_MEMVAL_TYPE>: New case.
	(evaluate_subexp_for_address) <UNOP_MEMVAL_TYPE>: New case.
	(evaluate_subexp_for_sizeof) <UNOP_MEMVAL_TYPE>: New case.
	* expprint.c (print_subexp_standard) <UNOP_CAST_TYPE>: New case.
	<UNOP_MEMVAL_TYPE>: New case.
	(dump_subexp_body_standard) <UNOP_DYNAMIC_CAST,
	UNOP_REINTERPRET_CAST>: Update.
	<UNOP_CAST_TYPE, UNOP_MEMVAL_TYPE>: New cases.
	* parse.c (operator_length_standard) <UNOP_DYNAMIC_CAST,
	UNOP_REINTERPRET_CAST>: Update.
	<UNOP_CAST_TYPE, UNOP_MEMVAL_TYPE>: New cases.
	* stack.c (return_command): Also check for UNOP_CAST_TYPE.
	* std-operator.def (UNOP_CAST_TYPE, UNOP_MEMVAL_TYPE): New
	constants.

2012-07-19  Yao Qi  <yao@codesourcery.com>
	    Jan Kratochvil <jan.kratochvil@redhat.com>

	* cli/cli-setshow.c (do_setshow_command): Handle case 'var_filename'
	and case 'var_optional_filename' together.
	* infcmd.c (_initialize_infcmd): Call add_setshow_string_noescape_cmd
	instead of add_setshow_optional_filename_cmd for setshow command
	'args'.  Set completer for 'set args'.

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

	* common/gdb_vecs.h: Moved here from ./gdb_vecs.h.
	* common/gdb_vecs.c: New file, contents from utils.c.
	* common/host-defs.h: New file, contents from defs.h.
	* utils.h: New file, contents from defs.h.
	* defs.h: Move all declarations of objects defined in utils.c
	to utils.h (except QUIT() and related).
	#include "utils.h", "host-defs.h".
	* probe.h (probe_p): Move here from gdb_vecs.h.
	* symfile.c: #include "probe.h" instead of "gdb_vecs.h".
	* utils.c (free_char_ptr_vec): Moved to common/gdb_vecs.c.
	(dirnames_to_char_ptr_vec_append, dirnames_to_char_ptr_vec): Ditto.
	* Makefile.in (SFILES): Add common/gdb_vecs.c.
	(HFILES_NO_SRCDIR): Add common/gdb_vecs.h, common/host-defs.h, utils.h.
	(COMMON_OBS): Add gdb_vecs.o.
	(gdb_vecs.o): New rule.

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

	* linespec.c (add_sal_to_sals): Add LITERAL_CANONICAL
	parameter.  If non-zero, use SYMNAME as the canonical name
	for the SaL.
	Update all callers.
	(convert_linespec_to_sals): Use add_sal_to_sals for
	expressions, too.
	(decode_line_full): No need to "fill in missing canonical names"
	anymore. Simply make cleanups for the allocated names.

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

	* linespec.c (struct linespec): Constify expression,
	source_filename, function_name, and label_name.
	(symbol_not_found_error): Make all parameters const.
	(linespec_parser_delete): No need to check for NULL
	when using xfree. Cast const char * to char * for xfree.

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

	* breakpoint.c (invalid_thread_id_error): New function.
	(find_condition_and_thread): Use invalid_thread_id_error.
	(watch_command_1): Likewise.

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

	* cc-with-index.sh, cc-with-dwz.sh: Remove.
	* contrib/cc-with-tweaks.sh: New file.

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

	* dwarf2read.c (struct dwz_file) <gdb_index>: New field.
	(locate_dwz_sections): Recognize .gdb_index.
	(create_cus_from_index_list): New function.
	(create_cus_from_index): Use it.  Handle .dwz data.
	(read_index_from_section): New function, extracted from
	dwarf2_read_index.
	(dwarf2_read_index): Use it.  Read .gdb_index from dwz file,
	if needed.

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

	* dwarf2read.c (struct dwarf2_per_objfile) <dwz_file>: New field.
	(struct dwarf2_per_cu_data) <length>: No longer bitfield.
	<is_dwz>: New field.
	(struct dwz_file): New.
	(struct partial_die_info) <is_dwz, spec_is_dwz>: New fields.
	(locate_dwz_sections, dwarf2_get_dwz_file)
	(get_abbrev_section_for_cu): New functions.
	(error_check_comp_unit_head, read_and_check_comp_unit_head)
	(read_and_check_type_unit_head): Add abbrev_section argument.
	(create_debug_types_hash_table): Update.
	(init_cutu_and_read_dies): Use proper abbrev section.
	(init_cutu_and_read_dies_no_follow): Likewise.
	(set_partial_user): Do nothing if PST==NULL.
	(read_comp_units_from_section): New function.
	(create_all_comp_units): Use it.
	(scan_partial_symbols, partial_die_parent_scope): Update.
	(skip_one_die): Handle DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt.
	(process_imported_unit_die, read_partial_die): Handle .dwz files.
	(find_partial_die): Add offset_in_dwz argument.  Update.
	(guess_partial_die_structure_name, fixup_partial_die): Update.
	(read_attribute_value): Handle DW_FORM_GNU_ref_alt,
	DW_FORM_GNU_strp_alt.
	(read_indirect_string_from_dwz): New function.
	(dwarf2_const_value_attr): Handle DW_FORM_GNU_strp_alt.
	(dump_die_shallow): Handle DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt.
	(is_ref_attr): Handle DW_FORM_GNU_ref_alt.
	(follow_die_offset): Add offset_in_dwz argument.
	(follow_die_ref, dwarf2_fetch_die_location_block): Update.
	(skip_form_bytes): Handle DW_FORM_GNU_strp_alt.
	(dwarf_decode_macro_bytes): Add section_is_dwz argument.
	Handle new macro forms.
	(dwarf_decode_macros): Update.
	(dwarf2_find_containing_comp_unit): Add offset_in_dwz argument.
	(dwarf2_per_objfile_free): Unref dwz_bfd, if it exists
	(lookup_die_type): Handle DW_FORM_GNU_ref_alt.
	(create_debug_types_hash_table): Use correct abbrev section.
	(get_debug_line_section): New function.
	(dwarf_decode_line_header, dwarf_decode_lines_1): Use it.
	(process_full_comp_unit): Pass 'required' argument to
	end_symtab_get_static_block.
	* buildsym.h (end_symtab_get_static_block): Update.
	* buildsym.c (end_symtab_get_static_block): Add 'required'
	argument.
	(end_symtab, end_expandable_symtab): Update.

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

	* dwarf2read.c: Don't include zlib.h or sys/mman.h.
	(pagesize): Remove.
	(struct dwarf2_section_info) <map_addr, map_len>: Remove.
	(zlib_decompress_section): Remove.
	(dwarf2_read_section): Use gdb_bfd_map_section.
	(munmap_section_buffer): Remove.
	(free_dwo_file, dwarf2_per_objfile_free): Don't use
	munmap_section_buffer.
	* gdb_bfd.c: Include zlib.h, sys/mman.h.
	(struct gdb_bfd_section_data): New.
	(free_one_bfd_section): New function.
	(gdb_bfd_close_or_warn): Use free_one_bfd_section.
	(get_section_descriptor, zlib_decompress_section)
	(gdb_bfd_map_section): New functions.
	* gdb_bfd.h (gdb_bfd_map_section): Declare.

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

	* dwarf2read.c (try_open_dwo_file): use gdb_bfd_open.

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

	* gdb_bfd.c (struct gdb_bfd_data): New.
	(gdb_bfd_cache): New global.
	(struct gdb_bfd_cache_search): New.
	(hash_bfd, eq_bfd, gdb_bfd_open): New functions.
	(gdb_bfd_ref, gdb_bfd_unref): Use gdb_bfd_data.
	* gdb_bfd.h (gdb_bfd_open): Declare.

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

	* utils.c (make_cleanup_bfd_unref): Rename from
	make_cleanup_bfd_close.
	* defs.h (make_cleanup_bfd_unref): Rename from
	make_cleanup_bfd_close.
	* cli/cli-dump.c (bfd_openr_with_cleanup): Update.
	(bfd_openw_with_cleanup): Update.
	* corelow.c (core_open): Update.
	* dsrec.c (load_srec): Update.
	* m32r-rom.c (m32r_load, m32r_upload_command): Update.
	* remote-m32r-sdi.c (m32r_load): Update.
	* remote-mips.c (mips_load_srec): Update.
	(pmon_load_fast): Update.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Update.
	(darwin_bfd_open): Update.
	* solib.c (solib_bfd_fopen): Update.
	* symfile-mem.c (symbol_file_add_from_memory): Update.
	* symfile.c (symbol_file_add_with_addrs_or_offsets): Update.
	(symfile_bfd_open): Update.
	(generic_load): Update.

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

	* remote-mips.c (mips_load_srec): Use make_cleanup_bfd_close.
	(pmon_load_fast): Likewise.
	* m32r-rom.c (m32r_load): Use make_cleanup_bfd_close.
	(m32r_upload_command): Likewise.
	* dsrec.c (load_srec): Use make_cleanup_bfd_close.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Use make_cleanup_bfd_close.

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

	* symfile.c (symfile_bfd_open): Don't copy name.  Call
	gdb_bfd_stash_filename.
	(load_command): Open the new BFD before freeing the old.
	(bfd_open_maybe_remote): Call gdb_bfd_stash_filename.
	* symfile-mem.c (symbol_file_add_from_memory): Don't copy name.
	Call gdb_bfd_stash_filename.
	* spu-linux-nat.c (spu_bfd_open): Don't copy name.
	* solib-spu.c (spu_bfd_fopen): Don't copy name.  Call
	gdb_bfd_stash_filename.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Free found_pathname.
	* rs6000-nat.c (add_vmap): Don't copy filename.  Call
	gdb_bfd_stash_filename.
	* remote.c (remote_bfd_open): Call gdb_bfd_stash_filename.
	* machoread.c (macho_add_oso_symfile): Call
	gdb_bfd_stash_filename.
	(macho_symfile_read_all_oso): Arrange to free archive_name.  Call
	gdb_bfd_stash_filename.
	(macho_check_dsym): Don't copy filename.  Call
	gdb_bfd_stash_filename.
	* jit.c (bfd_open_from_target_memory): Don't copy the filename.
	* gdb_bfd.c (gdb_bfd_stash_filename): New function.
	* gdb_bfd.h (gdb_bfd_stash_filename): Declare.
	* gcore.c (create_gcore_bfd): Call gdb_bfd_stash_filename.
	* exec.c (exec_close): Don't free the BFD's filename.
	(exec_file_attach): Don't copy the filename.  Call
	gdb_bfd_stash_filename.
	* corelow.c (core_close): Don't free the BFD's filename.
	(core_open): Call gdb_bfd_stash_filename.
	* corefile.c (reopen_exec_file): Remove #if 0 code.
	* solib.c (solib_bfd_fopen): Call gdb_bfd_stash_filename.  Free
	pathname.
	* dwarf2read.c (try_open_dwo_file): Call gdb_bfd_stash_filename.

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

	* dwarf2read.c (try_open_dwo_file): Use gdb_bfd_ref and
	gdb_bfd_unref.
	(free_dwo_file): Use gdb_bfd_unref.
	* cli/cli-dump.c: Include gdb_bfd.h.
	(bfd_openw_with_cleanup): Use gdb_bfd_ref.
	(bfd_openr_with_cleanup): Likewise.
	* windows-nat.c (windows_make_so): Use gdb_bfd_ref,
	gdb_bfd_unref.
	* utils.c: Include gdb_bfd.h.
	(do_bfd_close_cleanup): Use gdb_bfd_unref.
	* symfile.c: Include gdb_bfd.h.
	(separate_debug_file_exists): Use gdb_bfd_unref.
	(bfd_open_maybe_remote): Use gdb_bfd_ref.
	(symfile_bfd_open): Use gdb_bfd_ref, gdb_bfd_unref.
	(generic_load): Use gdb_bfd_ref.
	(reread_symbols): Use gdb_bfd_unref.
	* symfile-mem.c: Include gdb_bfd.h.
	(symbol_file_add_from_memory): Use make_cleanup_bfd_close.
	* spu-linux-nat.c (spu_bfd_open): Use gdb_bfd_ref, gdb_bfd_unref.
	* solib.c: Include gdb_bfd.h.
	(solib_bfd_fopen): Use gdb_bfd_ref.
	(solib_bfd_open): Use gdb_bfd_unref.
	(free_so_symbols): Use gdb_bfd_unref.
	(reload_shared_libraries_1): Use gdb_bfd_unref.
	* solib-spu.c: Include gdb_bfd.h.
	(spu_bfd_fopen): Use gdb_bfd_ref, gdb_bfd_unref.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use gdb_bfd_ref,
	gdb_bfd_unref.
	* solib-frv.c: Include gdb_bfd.h.
	(enable_break2): Use gdb_bfd_unref.
	* solib-dsbt.c: Include gdb_bfd.h.
	(enable_break2): Use gdb_bfd_unref.
	* solib-darwin.c: Include gdb_bfd.h.
	(darwin_solib_get_all_image_info_addr_at_init): Use gdb_bfd_ref,
	gdb_bfd_unref.
	(darwin_bfd_open): Use gdb_bfd_unref.
	* rs6000-nat.c (add_vmap): Use gdb_bfd_ref, gdb_bfd_unref.
	* remote-mips.c: Include gdb_bfd.h.
	(mips_load_srec): Use gdb_bfd_ref.
	(pmon_load_fast): Use gdb_bfd_ref.
	* remote-m32r-sdi.c: Include gdb_bfd.h.
	(m32r_load): Use gdb_bfd_ref.
	* record.c: Include gdb_bfd.h.
	(record_save_cleanups): Use gdb_bfd_unref.
	(cmd_record_save): Use gdb_bfd_unref.
	* procfs.c (insert_dbx_link_bpt_in_file): Use gdb_bfd_ref,
	gdb_bfd_unref.
	* objfiles.h (gdb_bfd_close_or_warn): Remove.
	(gdb_bfd_ref, gdb_bfd_unref): Move to gdb_bfd.h.
	* objfiles.c: Include gdb_bfd.h.
	(free_objfile): Use gdb_bfd_unref.
	(gdb_bfd_close_or_warn, gdb_bfd_ref, gdb_bfd_unref): Move to
	gdb_bfd.c.
	* machoread.c (macho_add_oso_symfile): Use gdb_bfd_unref.
	(macho_symfile_read_all_oso): Use gdb_bfd_ref, gdb_bfd_unref.
	(macho_check_dsym): Likewise.
	* m32r-rom.c: Include gdb_bfd.h.
	(m32r_load): Use gdb_bfd_ref.
	(m32r_upload_command): Use gdb_bfd_ref.
	* jit.c: Include gdb_bfd.h.
	(jit_bfd_try_read_symtab): Use gdb_bfd_ref, gdb_bfd_unref.
	* gdb_bfd.h: New file.
	* gdb_bfd.c: New file.
	* gcore.c: Include gdb_bfd.h.
	(create_gcore_bfd): Use gdb_bfd_ref.
	(do_bfd_delete_cleanup): Use gdb_bfd_unref.
	(gcore_command): Use gdb_bfd_unref.
	* exec.c: Include gdb_bfd.h.
	(exec_close): Use gdb_bfd_unref.
	(exec_close_1): Use gdb_bfd_unref.
	(exec_file_attach): Use gdb_bfd_ref.
	* elfread.c: Include gdb_bfd.h.
	(build_id_verify): Use gdb_bfd_unref.
	* dsrec.c: Include gdb_bfd.h.
	(load_srec): Use gdb_bfd_ref.
	* corelow.c: Include gdb_bfd.h.
	(core_close): Use gdb_bfd_unref.
	(core_open): Use gdb_bfd_ref.
	* bfd-target.c: Include gdb_bfd.h.
	(target_bfd_xclose): Use gdb_bfd_unref.
	(target_bfd_reopen): Use gdb_bfd_ref.
	* Makefile.in (SFILES): Add gdb_bfd.c.
	(HFILES_NO_SRCDIR): Add gdb_bfd.h.
	(COMMON_OBS): Add gdb_bfd.o.

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

	* breakpoint.c (find_condition_and_thread): Initialize
	TASK and REST.
	(create_breakpiont): find_condition_and_thread will now
	initialize COND_STRING, THREAD, and REST (and TASK).
	(addr_string_to_sals): Likewise.

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

	* infrun.c (handle_inferior_event) <TARGET_WAITKIND_NO_HISTORY>:
	Pull the single step breakpoints out of the target.

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

	* probe.c (probe_safe_evaluate_at_pc): Rename variable `n_probes'.
	* stap-probe.c (compile_probe_arg): Likewise.

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

	* elfread.c (elf_get_probe_argument_count): Remove `objfile' argument.
	(elf_compile_to_ax): Likewise.
	* infrun.c (insert_exception_resume_from_probe): Likewise.
	(check_exception_resume): Remove `objfile' variable.
	* probe.c (find_probe_by_pc): Remove `objfile' argument.
	(struct probe_and_objfile, probe_and_objfile_s): Delete.
	(collect_probes): Adjust return value to `VEC (probe_p) *'.
	(compare_entries): Rename to...
	(compare_probes): ...this.  Adjust function to work with
	`struct probe *'.  Rename variables `ea' and `eb' to `pa' and `pb'
	respectively.
	(gen_ui_out_table_header_info): Adjust `probes' argument to be
	`VEC (probe_p) *'.
	(print_ui_out_info): Adjust argument to be `struct probe *'.
	(info_probes_for_ops): Adjust internal computations to use
	`VEC (probe_p) *'.
	(probe_safe_evaluate_at_pc): Refactor to not pass `objfile' anymore.
	* probe.h (struct probe_ops) <get_probe_argument_count, compile_to_ax,
	gen_info_probes_table_values>: Remove `objfile' argument.
	(struct probe) <objfile>: New field.
	(find_probe_by_pc): Remove `objfile' argument.
	* stap-probe.c (stap_parse_probe_arguments): Likewise.
	(stap_get_probe_argument_count): Likewise.
	(stap_get_arg): Likewise.
	(stap_evaluate_probe_argument): Likewise.
	(stap_compile_to_ax): Likewise.
	(compile_probe_arg): Refactor not to pass `objfile' anymore.
	(handle_stap_probe): Fill `objfile' field from `struct probe'.
	(stap_gen_info_probes_table_header): Remove `objfile' argument.
	* symfile.h (struct sym_probe_fns) <sym_evaluate_probe_argument,
	sym_compile_to_ax>: Likewise.

2012-07-18  Terry Guo  <terry.guo@arm.com>

	PR 14329
	* defs.h (GDB_MI_MSG_WIDTH): New.
	* ser_base (ser_base_read_error_fd): New function.
	(do_ser_base_readchar): Poll error file descriptor as well as
	standard output.
	(generic_readchar): Refactor error handling.

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

	* NEWS: Create a new section for the next release branch.
	Rename the section of the current branch, now that it has
	been cut.

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.5.50.20120718-cvs.

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

	* linespec.c (linespec_parse_line_offset): Make parameter
	const.

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:
