2007-12-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* remote.c (unpack_nibble): Use fromhex.
	* symtab.c (find_line_common): Always set exact_match.

2007-12-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* hppa-linux-nat.c: Use hppa-linux-offsets.h.
	* hppa-linux-offsets.h: New file.

2007-12-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* configure.tgt (*-*-mingw32ce*): Set gdb_osabi to
	GDB_OSABI_WINCE.
	(*-*-mingw* | *-*-cygwin*): Set gdb_osabi to GDB_OSABI_CYGWIN.

2007-12-29  Nick Hudson  <nick.hudson@dsl.pipex.com>

	* i386nbsd-tdep.c: Include "trad-frame.h" and "tramp-frame.h"
	(sigtramp_retcode, i386nbsd_sigtramp_offset, i386nbsd_sigtramp_p):
	Remove
	(i386nbsd_mc_reg_offset): New array.
	(i386nbsd_sigtramp_cache_init): New function.
	(i386nbsd_sigtramp_sc16, i386nbsd_sigtramp_sc2, i386nbsd_sigtramp_si2)
	(i386nbsd_sigtramp_si31, i386nbsd_sigtramp_si4): New signal trampoline
	frame descriptions.
	(i386nbsd_init_abi): Override ABI sigcontext defaults and register
	new signal frame unwinders
	* Makefile.in (i386nbsd-tdep.o): Update dependencies.
	* tramp-frame.h (struct tramp_frame): Allow for 48 instructions

2007-12-29  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (_initialize_ada_language): Attach executable_changed
	observer.

2007-12-28  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_evaluate_subexp): Break two large expressions
	using temporary variables.

2007-12-27  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_value_cast): New function, extracted out from
	the code in ada_evaluate_subexp, case UNOP_CAST.  The code handling
	the obscure case has been removed as we think that it is actually
	unnecessary.
	(ada_evaluate_subexp): Add type case when evaluating an OP_DOUBLE
	or an OP_LONG with a non-null expect_type. Replace extracted-out
	code with call to new ada_value_cast function.

2007-12-27  Paul Hilfinger  <hilfinger@adacore.com>

	* ada-lang.c (ada_evaluate_subexp): Add cases for BINOP_LOGICAL_AND,
	BINOP_LOGICAL_OR, UNOP_LOGICAL_NOT, BINOP_BITWISE_IOR,
	BINOP_BITWISE_XOR, BINOP_BITWISE_AND.
	* language.c (lang_bool_type): Add Ada case.

2007-12-26  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2read.c (read_base_type): Fix obvious &&/|| confusion.

2007-12-26  Luis Machado  <luisgpm@br.ibm.com>

	* dwarf2-frame.c (execute_cfa_program): Call dwarf2_restore_rule
	function to handle required actions for the DW_CFA_restore and
	DW_CFA_restore_extended instructions.
	(dwarf2_restore_rule): New function.

2007-12-24  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_is_character_type): Add recognition of type
	"Wide_Wide_Character".

2007-12-24  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2read.c (read_base_type): Set code to TYPE_CODE_CHAR
	for char and unsigned char types of Ada compilation units.
	* ada-lang.c (ada_is_character_type): Always return true if
	the type code is TYPE_CODE_CHAR.

2007-12-23  Joel Brobecker  <brobecker@adacore.com>

	* infrun.c (handle_inferior_event): Remove code that made us
	stop when stepping into the last line of the current function.

2007-12-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* win32-nat.c: Fix PR gdb/2388.
	(do_win32_fetch_inferior_registers): Do not overwrite debug register
	array dr if debug_registers_changed variable is set.

2007-12-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2read.c (scan_partial_symbols partial_die_parent_scope)
	(add_partial_symbol, pdi_needs_namespace, process_die)
	(is_type_tag_for_partial, load_partial_dies, new_symbol)
	(read_type_die, determine_prefix): Extend the current code of
	`DW_TAG_class_type' also for `DW_TAG_interface_type'.

2007-12-21  Paul N. Hilfinger  <hilfinger@adacore.com>

	* ada-lang.h (ada_renaming_category): New enumerated type.
	(ada_lookup_encoded_symbol): Declare.
	(ada_parse_renaming): Declare.
	(ada_renaming_type,ada_is_object_renaming)
	(ada_simple_renamed_entity): Delete declarations.
	* ada-lang.c (ada_parse_renaming): New function to concentrate
	extraction of information from renaming symbols.
	(parse_old_style_renaming): New function to concentrate
	extraction of old-style (purely type-based) renaming information.
	(renaming_is_visible): Rename to...
	(old_renaming_is_invisible): Rename and change sense of
	renaming_is_visible.
	(remove_out_of_scope_renamings): Rename to...
	(remove_irrelevant_renamings): Renames remove_out_of_scope_renamings
	and augments with additional logic to handle cases where the same
	object renaming is encoded both as a reference variable and an
	encoded renaming.
	(ada_renaming_type,ada_is_object_renaming)
	(ada_simple_renamed_entity): Delete definitions.
	(ada_lookup_encoded_symbol): New function factored out of
	ada_lookup_symbol.
	(ada_lookup_symbol): Reimplement to call ada_lookup_encoded_symbol.
	(wild_match): Don't reject perfect match of prefix.
	(ada_find_renaming_symbol): Factor old-style renaming logic into
	find_old_style_renaming_symbol.
	(find_old_style_renaming_symbol): New name for content of old
	ada_find_renaming_symbol.
	(ada_prefer_type): Reimplement not to use ada_renaming_type.
	* ada-exp.y (write_object_renaming): Change interface.  Reimplement
	to use new arguments and ada_parse_renaming.
	Correct blocks used to find array index.
	(write_var_or_type): Reimplement to use ada_parse_renaming.

2007-12-21  Denis Pilat <denis.pilat@st.com>

	* tui/tui-data.h (MAX_LOCATOR_ELEMENT_LEN): Defined to a bigger
	value or to PATH_MAX when possible.

2007-12-20  Joel Brobecker  <brobecker@adacore.com>

	* rs6000-tdep.h: Remove defs.h #include.
	* Makefile.in (rs6000_tdep_h): Update dependencies.

2007-12-20  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdbtypes.c (gdbtypes_post_init): Change names of decimal float types
	to conform to C extension for decimal float.
	* c-lang.c (enum c_primitive_types): Add entries for Decimal Floating
	Point types.
	(enum cplus_primitive_types): Likewise.
	(c_language_arch_info): Add Decimal Floating Point builtin types to
	the primitive_type_vector.
	(cplus_language_arch_info): Likewise.

2007-12-20  David Ung  <davidu@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_push_dummy_call): Sign-extend
	integers and 32-bit pointers as required by the ABI.

2007-12-20  Joel Brobecker  <brobecker@adacore.com>

	* symtab.h: Remove "defs.h" #include.
	* Makefile.in (symtab_h): Update dependencies.

2007-12-19  Joel Brobecker  <brobecker@adacore.com>

	* symtab.h: #include "defs.h".
	(enum language): Remove opaque declaration.
	* Makefile.in (symtab_h): Update dependencies.

2007-12-19  Joel Brobecker  <brobecker@adacore.com>

	* language.h (enum exp_opcode): Remove commented out forward
	declaration.
	(op_error): Delete declaration.

2007-12-19  Joel Brobecker  <brobecker@adacore.com>

	* infrun.c (handle_inferior_event): Fix spelling in comment.

2007-12-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* minsyms.c (lookup_minimal_symbol): Also check the separate
	debug objfile.
	(lookup_minimal_symbol_text): Likewise.
	(lookup_minimal_symbol_solib_trampoline): Likewise.
	* symtab.c (lookup_global_symbol_from_objfile): Likewise.

2007-12-18  Vladimir Prus  <vladimir@codesourcery.com>

	* mi/mi-main.c (mi_cmd_list_features): Announce
	the 'pending-breakpoints' feature.

2007-12-17  Jim Blandy  <jimb@codesourcery.com>

	* dwarf2read.c (dwarf2_add_field): Correctly scale all byte
	offsets obtained from DW_AT_data_member_location before recording
	them in FIELD_BITPOS (*fp).

	* dwarf2read.c (attr_form_is_section_offset): Doc fixes.

2007-12-17  Nigel Stephens  <nigel@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* utils.c (string_to_core_addr): If the executable format
	indicates that addresses should be sign-extended and there are
	only 8 hex digits in the address, then do so.
	* Makefile.in (utils.o): Depend on $(gdbcore_h).

2007-12-17  Chris Dearman  <chris@mips.com>

	* symfile.c (init_filename_language_table): Recognise .sx as
	an assembler file.

2007-12-17  Joel Brobecker  <brobecker@adacore.com>

	* language.h (enum exp_opcode): Comment out this declaration,
	undoing the previous change.

2007-12-17  Luis Machado  <luisgpm@br.ibm.com>

        * breakpoint.c: (watch_command_1): Parse additional optional
        "thread" parameter to the watchpoint command and set the
        "thread" member of the breakpoint struct.

2007-12-17  Luis Machado  <luisgpm@br.ibm.com>

        * breakpoint.c (bpstat_stop_status): Check an additional
        condition before evaluating an expression value.

2007-12-17  Joel Brobecker  <brobecker@adacore.com>

	* language.h (enum exp_opcode): Add forward declaration.
	(language_string_char_type, language_lookup_primitive_type_by_name):
	Move declaration past declaration of language_defn.

2007-12-16  Daniel Jacobowitz  <dan@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Check for *-*-solaris2.1[[0-9]]* instead of
	*-*-solaris2.1[[0-9]].
	* configure: Regenerate.
	* procfs.c (proc_set_current_signal): If redelivering a signal,
	reuse the current siginfo if possible.

2007-12-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* f-typeprint.c (print_equivalent_f77_float_type): Remove function.
	(f_type_print_base): Output the type names directly for real and
	complex types.

2007-12-16  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (bpstat_have_active_hw_watchpoints):
	Remove
	(bpstat_stop_status): Remove unused variable
	real_breakpoint.
	* breakpoint.h (bpstat_have_active_hw_watchpoints):
	Remove prototype.

2007-12-16  Vladimir Prus  <vladimir@codesourcery.com>

	* target.h (target_pid_or_tid_to_str): Remove.
	* infrun.c (handle_inferior_event):
        Use target_pid_to_str instead of 
	target_pid_or_tid_to_str.
	(normal_stop): Likewise.

2007-12-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2read.c (dwarf_attr_name): Rename `DW_AT_stride_size' to its
	DWARF3 equivalent `DW_AT_bit_stride'.
	Rename `DW_AT_stride' to its DWARF3 equivalent `DW_AT_byte_stride'.

2007-12-16  Joel Brobecker  <brobecker@adacore.com>

	* mi/mi-main.c: Remove code that was commented out in 1999.

2007-12-16  Joel Brobecker  <brobecker@adacore.com>

	* expression.h (parse_expression_in_context): Delete prototype.
	* parse.c (parse_expression_in_context): Delete.

2007-12-14  Vladimir Prus  <vladimir@codesourcery.com>

	Add support for pending breakpoints in MI.
	* gdb.h (gdb_breakpoint): Add parameter pending.
	* breakpoint.c (gdb_breakpoint): Add parameter pending.
	* mi/mi-cmd-break.c (mi_break_insert): Change
	comment to refer to manual.  Add support for
	the -f flag, for pending breakpoint.

2007-12-14  Vladimir Prus  <vladimir@codesourcery.com>
	
	* breakpoint.c (break_command_really): New, copied
	from break_command_1. New parameters COND_STRING, THREAD
	PARSE_CONDITITION_AND_THREAD and PENDING_BREAK_SUPPORT.
	The previous FLAG parameter split into TEMPFLAG and
	HARDWAREFLAG.
	When PARSE_CONDITION_AND_THREAD is not set, duplicate
	the passed condition string.
	(struct captured_breakpoint_args): Remove
	(do_captured_breakpoint): Remove.
	(break_command_1): Relay to break_command_really.
	(gdb_breakpoint): Relay to break_command_really.
	
2007-12-13  Michael Snyder  <msnyder@specifix.com>

	* mips-linux-tdep.c (mips64_fill_gregset): Remove unused variable.

2007-12-13  Jim Blandy  <jimb@codesourcery.com>

	* dwarf2read.c (attr_form_is_constant): New function.
	(dwarf2_add_field): Use it and attr_form_is_section_offset to
	recognize DW_AT_data_member_location attributes.  Use
	dwarf2_get_attr_constant_value when the attribute is a constant.

	* dwarf2read.c (attr_form_is_section_offset): New function.
	(dwarf_add_member_fn, read_common_block, read_partial_die)
	(dwarf2_symbol_mark_computed): Use it, instead of writing it out.

2007-12-12  Jim Blandy  <jimb@codesourcery.com>

	Remove unused support for target-based exception catching.
	* target.h (struct target_ops): Delete
	to_enable_exception_callback and to_get_current_exception_event
	members.
	(target_enable_exception_callback)
	(target_get_current_exception_event): Delete macros.
	* target.c (update_current_target): Remove code to inherit and
	default those members.
	(debug_to_enable_exception_callback)
	(debug_to_get_current_exception_event): Delete functions.
	(setup_target_debug): Don't install those methods.
	* inf-child.c (inf_child_enable_exception_callback)
	(inf_child_get_current_exception_event): Delete dummy functions.
	(inf_child_target): Don't install them in the target vector.
	* breakpoint.h (enum bptype): Delete bp_catch_catch,
	bp_catch_throw.
	* breakpoint.c (cover_target_enable_exception_callback)
	(ep_is_exception_catchpoint, create_exception_catchpoint): Delete
	functions.
	(insert_bp_location, update_breakpoints_after_exec)
	(remove_breakpoint, ep_is_catchpoint, print_it_typical)
	(bpstat_stop_status, bpstat_what)
	(bpstat_get_triggered_catchpoints, print_one_breakpoint_location)
	(user_settable_breakpoint, allocate_bp_location)
	(disable_watchpoints_before_interactive_call_start)
	(enable_watchpoints_after_interactive_call_stop, mention)
	(delete_breakpoint, breakpoint_re_set_one, disable_command)
	(enable_command): Remove exception catchpoint cases.
	(catch_exception_command_1): Don't try target-based exception
	handling.
	* stack.c (catch_info): Call print_frame_label_vars
	unconditionally.
	
2007-12-12  Nigel Stephens  <nigel@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* remote-mips.c (mips_load): Use regcache_set_valid_p() instead
	of setting deprecated_register_valid array directly.

2007-12-07  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (extended_offset): Fix a comment.

2007-12-07  Maciej W. Rozycki  <macro@mips.com>

	* target.c (update_current_target): Inherit to_log_command.
	* target.h (struct target_ops). Add to_log_command.
	(target_log_command): New macro.
	* top.c (execute_command): Call target_log_command() rather than
	serial_log_command().
	* monitor.c (init_base_monitor_ops): Initialize to_log_command.
	* remote-m32r-sdi.c (init_m32r_ops): Likewise.
	* remote-mips.c (_initialize_remote_mips): Likewise.
	* remote.c (init_remote_ops): Likewise.

2007-12-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* infrun.c (init_wait_for_inferior): Reset target_last_wait_ptid.
	(handle_inferior_event): Clear stop_stack_dummy earlier.

2007-12-06  Jim Blandy  <jimb@codesourcery.com>

	* addrmap.c (addrmap_splay_tree_remove): New function.
	(addrmap_mutable_set_empty): Use it.

	* addrmap.c, addrmap.h: Update to GPLv3.

	* addrmap.c (struct addrmap): Make the referenced function table
	const.
	(addrmap_fixed_funcs, addrmap_mutable_funcs): Declare const.
	Don't use designated initializers.

	* addrmap.c (addrmap_fixed_create_fixed, addrmap_mutable_find)
	(addrmap_mutable_relocate): Use internal_error, not abort.

	* NEWS: Mention support for non-contiguous lexical blocks and
	function bodies.

2007-12-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (stab_reg_to_regnum, dwarf_reg_to_regnum)
	( dwarf2_reg_to_regnum, sdb_reg_to_regnum, ecoff_reg_to_regnum): Add
	gdbarch as parameter.
	* gdbarch.{c,h}: Regenerate.

	* xtensa-tdep.c (xtensa_reg_to_regnum): Add gdbarch as parameter.
	Replace current_gdbarch by gdbarch.
	* s390-tdep.c (s390_dwarf_reg_to_regnum): Likewise.
	* rs6000-tdep.c (rs6000_stab_reg_to_regnum)
	(rs6000_dwarf2_reg_to_regnum): Likewise.
	* mips-tdep.c (mips_stab_reg_to_regnum)
	(mips_dwarf_dwarf2_ecoff_reg_to_regnum): Likewise.
	* mep-tdep.c (mep_debug_reg_to_regnum): Likewise.
	* m32c-tdep.c (m32c_debug_info_reg_to_regnum): Likewise.
	* i386-tdep.c (i386_dbx_reg_to_regnum)
	(i386_svr4_reg_to_regnum): Likewise
	* h8300-tdep.c (h8300s_dbg_reg_to_regnum)
	(h8300_dbg_reg_to_regnum): Likewise.
	* amd64-tdep.c (amd64_dwarf_reg_to_regnum): Likewise.
	* arch-utils.c (no_op_reg_to_regnum): Likewise.
	* arch-utils.h (no_op_reg_to_regnum): Likewise.
	* arm-tdep.c (arm_dwarf_reg_to_regnum): Likewise.
	* cris-tdep.c (cris_dwarf2_reg_to_regnum): Likewise.
	* hppa-tdep.c (hppa64_dwarf_reg_to_regnum): Likewise.
	* ia64-tdep.c (ia64_dwarf_reg_to_regnum): Likewise.
	* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.

2007-12-06  Vladimir Prus  <vladimir@codesourcery.com>

	Localize infrun use of remove_breakpoints.
	* infrun.c (handle_inferior_event): Remove
	calls to remove_breakpoints, except where needed to
	communicate change of breakpoint locations to inferior.
	(keep_going): If steppping over breakpoint, remove
	breakpoints.

2007-12-06  Vladimir Prus  <vladimir@codesourcery.com>	
	
	Clarify infrun variable naming.
	* infrun.c (trap_expected): Rename
	to stepping_over_breakpoint.  Document.
	(stepping_past_breakpoint): Remove.
	(stepping_past_breakpoint_ptdi): Renamed
	to deferred_step_ptid.
	(struct execution_control_state): Rename
	the another_trap field to stepping_over_breakpoint.
	(struct inferior_status): Rename the trap_expected
	field to stepping_over_breakpoint.
	(clear_proceed_status, proceed)
	(init_execution_control_state, context_switch)
	(handle_inferior_event, currently_stepping)
	(keep_going, save_inferior_status)
	(restore_inferior_status, prepare_to_proceed): Adjust.
	* gdbthread.h (struct thread_info): Rename the
	trap_expected field to stepping_over_breakpoint.
	* thread.c (load_infrun_state, save_infrun_state):
	Adjust.

2007-12-06  Pierre Muller  <muller@ics.u-strasbg.fr>

	* win32-nat.c: Allow compilation if CORE_ADDR is 8 byte long.
	Add "gdb_stdint.h" dependency required for uintptr_t type use.
	(handle_output_debug_string): Use uintptr_t typecast.
	(handle_exception): Ditto.
	(win32_xfer_memory): Ditto.
	* Makefile.in (win32-nat.o): Add dependency to gdb_stdint header.

2007-12-04  Jim Blandy  <jimb@codesourcery.com>

	Support lexical blocks and function bodies that occupy
	non-contiguous address ranges.
	* addrmap.c, addrmap.h: New files.
	* block.h (struct addrmap): New forward declaration.
	(struct blockvector): New member, 'map'.
	(BLOCKVECTOR_MAP): New accessor macro.
	* block.c: #include "addrmap.h"
	(blockvector_for_pc_sect): If the blockvector we've found has
	an address map, use it instead of searching the blocks.
	* buildsym.c: #include "addrmap.h"
	(pending_addrmap_obstack, pending_addrmap_interesting): New static
	variables.
	(really_free_pendings): If we have a pending addrmap, free it too.
	(record_block_range): New function.
	(make_blockvector): If we have an interesting pending addrmap,
	record it in the new blockvector.
	(start_symtab, buildsym_init): Assert that there is no pending
	addrmap now; we should have cleaned up any addrmaps we'd built
	previously.
	(end_symtab): If there is a pending addrmap left over that didn't
	get included in the blockvector, free it.
	* buildsym.h (struct addrmap): New forward declaration.
	(record_block_range): New prototype.
	* objfiles.c: #include "addrmap.h".
	(objfile_relocate): Relocate the blockvector's address map, if
	present.
	* dwarf2read.c (dwarf2_record_block_ranges): New function.
	(read_func_scope, read_lexical_block_scope): Call it.
	* Makefile.in (SFILES): Add addrmap.c.
	(addrmap_h): New header dependency variable.
	(COMMON_OBS): Add addrmap.o.
	(addrmap.o): New rule.l
	(block.o, objfiles.o, buildsym.o): Depend on $(addrmap_h).

	* block.c (blockvector_for_pc, blockvector_for_pc_sect): Return a
	pointer to the block, not its index in the blockvector.
	(block_for_pc_sect): Use the returned block, instead of looking it
	up ourselves.
	* block.h (blockvector_for_pc, blockvector_for_pc_sect): Update
	declarations.
	* breakpoint.c (resolve_sal_pc): Use returned block, instead of
	looking it up ourselves.
	* stack.c (print_frame_label_vars): Disable function, which
	depends on the block's index.

	* buildsym.c (finish_block): Return the block we've built.
	* buildsym.h (finish_block): Update prototype.

	* defs.h (CORE_ADDR_MAX): New constant.

2007-12-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* coffread.c (decode_type): Use builtin_type_int32 instead
	of FT_INTEGER fundamental type for array range index type.
	(decode_base_type): Use builtin types of current_gdbarch
	instead of fundamental types.

	* dwarf2read.c (struct dwarf2_cu): Remove ftypes member.
	(read_file_scope): Do not initialize ftypes member.
	(dwarf_base_type, dwarf2_fundamental_types): Remove functions.
	(read_array_type): Use builtin_type_int32 instead of FT_INTEGER
	fundamental type for array range index type.
	(read_tag_string_type): Likewise for string range index type.
	Also, do not overwrite FT_CHAR type with new string type.
	(read_base_type): If DW_AT_name is missing, create unnamed type
	with given properties instead of looking for a fundamental type.
	Create new types as TYPE_TARGET_TYPE for DW_ATE_address and
	DW_ATE_complex_float types.
	(read_subrange_type): Create new type to represent missing
	DW_AT_type instead of looking for a fundamental type.
	(die_type): Use builtin type to represent "void" instead of
	looking for a fundamental type.

	* stabsread.c (define_symbol): Use builtin types to represent
	'r' and 'i' floating-point and integer constants.

	* gdbtypes.c (lookup_fundamental_type): Remove.
	* gdbtypes.h (lookup_fundamental_type): Remove prototype.
	(FT_VOID, FT_BOOLEAN, FT_CHAR, FT_SIGNED_CHAR, FT_UNSIGNED_CHAR,
	FT_SHORT, FT_SIGNED_SHORT, FT_UNSIGNED_SHORT, FT_INTEGER,
	FT_SIGNED_INTEGER, FT_UNSIGNED_INTEGER, FT_LONG, FT_SIGNED_LONG,
	FT_UNSIGNED_LONG, FT_LONG_LONG, FT_SIGNED_LONG_LONG,
	FT_UNSIGNED_LONG_LONG, FT_FLOAT, FT_DBL_PREC_FLOAT, FT_EXT_PREC_FLOAT,
	FT_COMPLEX, FT_DBL_PREC_COMPLEX, FT_EXT_PREC_COMPLEX, FT_STRING,
	FT_FIXED_DECIMAL, FT_FLOAT_DECIMAL, FT_BYTE, FT_UNSIGNED_BYTE,
	FT_TEMPLATE_ARG, FT_DECFLOAT, FT_DBL_PREC_DECFLOAT,
	FT_EXT_PREC_DECFLOAT, FT_NUM_MEMBERS): Remove macros.
	* objfiles.c (struct objfile): Remove fundamental_types member.
	* symfile.c (reread_symbols): Do not clear fundamental_types.

	* language.h (struct language_defn): Remove la_fund_type member.
	(create_fundamental_type): Remove.
	* language.c (unk_lang_create_fundamental_type): Remove.
	(unknown_language_defn, auto_language_defn,
	local_language_defn): Adapt initializer.
	* ada-lang.c (ada_create_fundamental_type): Remove.
	(ada_language_defn): Adapt initializer.
	* c-lang.h (c_create_fundamental_type): Remove prototype.
	* c-lang.c (c_create_fundamental_type): Remove.
	(c_language_defn, cplus_language_defn, asm_language_defn,
	minimal_language_defn): Adapt initializer.
	* f-lang.c (f_create_fundamental_type): Remove.
	(f_language_defn): Adapt initializer.
	* jv-lang.c (java_create_fundamental_type): Remove.
	(java_language_defn): Adapt initializer.
	* m2-lang.c (m2_create_fundamental_type): Remove.
	(m2_language_defn): Adapt initializer.
	* objc-lang.c (objc_create_fundamental_type): Remove.
	(objc_language_defn): Adapt initializer.
	* p-lang.h (pascal_create_fundamental_type): Remove prototype.
	* p-lang.c (pascal_create_fundamental_type): Remove.
	(pascal_language_defn): Adapt initializer.
	* scm-lang.c (scm_language_defn): Adapt initializer.

2007-12-04  Maciej W. Rozycki  <macro@mips.com>

	* features/mips-cpu.xml: Specify "regnum" for "r0" explicitly.
	* features/mips64-cpu.xml: Likewise.
	* features/mips-fpu.xml: Specify "regnum" for "f0" explicitly.
	* features/mips64-fpu.xml: Likewise.
	* features/mips-linux.c: Regenerate.
	* features/mips64-linux.c: Regenerate.

2007-12-04  Maciej W. Rozycki  <macro@mips.com>

	* target.h (target_find_new_threads): Fix definition.

2007-12-02  Pierre Muller  <muller@ics.u-strasbg.fr>

	* win32-nat.c (win32_resume): Set the trace bit
	in the thread identified by inferior_ptid.


2007-12-02  Pierre Muller  <muller@ics.u-strasbg.fr>

	* win32-nat.c (open_process_used): New static variable.
	(win32_init_thread_list): Remove call to CloseHandle for thread.
	(win32_delete_thread): Ditto.
	(fake_create_process): Set open_process_used if OpenProcess call is
	successful.
	(get_win32_debug_event): Do not close process handle.
	(do_initial_win32_stuff): Set open_process_used to zero.
	(win32_mourn_inferior): Call CloseHandle for current_process_handle if
	open_process_used is set.
	(win32_kill_inferior): Do not close process and main_thread handles.

2007-11-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* remote.c (remote_cmdlist): New variable.
	(PACKET_vFile_open, PACKET_vFile_pread, PACKET_vFile_pwrite)
	(PACKET_vFile_close, PACKET_vFile_unlink): New constants.
	(remote_buffer_add_string, remote_buffer_add_bytes)
	(remote_buffer_add_int, remote_hostio_parse_result)
	(remote_hostio_send_command, remote_hostio_open, remote_hostio_pwrite)
	(remote_hostio_pread, remote_hostio_close, remote_hostio_unlink)
	(remote_fileio_errno_to_host, remote_hostio_error, fclose_cleanup)
	(remote_hostio_close_cleanup, remote_file_put, remote_file_get)
	(remote_file_delete, remote_put_command, remote_get_command)
	(remote_delete_command, remote_command): New functions.
	(_initialize_remote): Register new packets and commands.
	* Makefile.in (gdb_fileio_h): New variable.
	(remote.o): Update.
	(SUBDIR_MI_OBS): Add mi-cmd-target.o.
	(SUBDIR_MI_SRCS): Add mi/mi-cmd-target.c.
	(mi-cmd-target.o): New rule.
	* mi/mi-cmd-target.c: New file.
	* mi/mi-cmds.c (mi_cmds): Add target-file-delete, target-file-get,
	and target-file-put.
	* mi/mi-cmds.h (mi_cmd_target_file_get, mi_cmd_target_file_put)
	(mi_cmd_target_file_delete): Declare.
	* remote.h (remote_file_put, remote_file_get, remote_file_delete):
	Declare.
	* NEWS: Describe new file transfer support.

2007-11-30  Vladimir Prus  <vladimir@codesourcery.com>

	* infrun.c (handle_inferior_event): Don't
        ignore beakpoints if trap_expected is set.

2007-11-30  Vladimir Prus  <vladimir@codesourcery.com>

	Make insert_breakpoints return void.	
	* breakpoint.h (insert_breakpoints): Change
	return type to void.
	* breakpoint.c (insert_breakpoints): Change
	return type to void.  Rename local return_val
	variable to error.
	* infrun.c (keep_going): Instead of checking
	return value from insert_breakpoints, catch exception.

2007-11-29  Vladimir Prus  <vladimir@codesourcery.com>

	Stop infrun from tracking breakpoint insertion status.

	The checks of breakpoints_inserted before calling
	remove_breakpoints are removed, as remove_breakpoint 
	won't touch uninserted breakpoints. In a number of places,
	we're interested if a breakpoint is inserted at particular 
	PC, and we now use breakpoint_inserted_here_p.  In a few
	places, insert_breakpoints can be called unconditionally, 
	since it won't try to insert already inserted breakpoint.

	* breakpoint.h (regular_breakpoint_inserted_here_p): New
	declaration.
	* breakpoint.c (regular_breakpoint_inserted_here_p): New.
	(breakpoint_inserted_here_p): Use
	regular_breakpoint_inserted_here_p.
	* infrun.c (breakpoints_inserted): Remove.
	(resume): Don't check for breakpoints_inserted before
	remove_hw_watchpoints. Use breakpoint_inserted_here_p.
	(proceed, init_wait_for_inferior): Don't set breakpoints_inserted.
	(handle_inferior_event): Don't use breakpoints_inserted.
	Use breakpoints_meant_to_be_inserted and
	breakpoints_inserted_here_p.
	(insert_step_resume_breakpoint_at_sal, keep_going): Use
	breakpoints_meant_to_be_inserted. Don't set breakpoints_inserted.
	(normal_stop): Don't check for breakpoints_inserted.  Don't
	set breakpoints_inserted.
	(keep_going): Don't check for breakpoints_inserted.
	(insert_step_resume_breakpoint_at_sal): Don't insert
	breakpoints

2007-11-28  Jim Blandy  <jimb@codesourcery.com>

	* breakpoint.c (watch_command_1): When the watchpoint isn't local
	to any frame, initialize watchpoint_frame using null_frame_id, not
	a memset.

2007-11-28  Vladimir Prus  <vladimir@codesourcery.com>

	* infrun.c (resume): Set right thread even if 
	stepping over breakpoint using software single step.

2007-11-28  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-cmd-var.c (print_varobj): Revert change from 2007-08-31.
	(mi_print_value_p): Guard against type = NULL.

2007-11-27  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* dfp.c (decimal_from_string): Remove superfluous newline from
	error string.
	(decimal_to_string): Likewise.
	* printcmd.c (printf_command): Change string buffer to use
	MAX_DECIMAL_STRING constant.
	* value.c (value_from_decfloat): Likewise.

2007-11-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* Makefile.in (ALL_TARGET_OBS): Remove object files that require
	64-bit CORE_ADDR and BFD support, move them to ...
	(ALL_64_TARGET_OBS): ... this new variable.
	* configure.ac: Check for --enable-64-bit-bfd option.  Only add
	64-bit targets with --enable-targets=all if BFD supports 64-bit.
	* configure: Regenerate.

	* i386-cygwin-tdep.c (i386_cygwin_osabi_sniffer): Do not claim
	all elf32-i386 executables, only cygwin core files.

2007-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2read.c (dwarf2_get_pc_bounds): Moved the `DW_AT_ranges' parsing
	code with its variables OBJFILE, CU_HEADER and OBFD into ...
	(dwarf2_ranges_read): ... a new function.
	(read_partial_die): Implemented the parsing of `DW_AT_ranges'.

2007-11-24  Pedro Alves  <pedro_alves@portugalmail.pt>

	* win32-nat.c (DR6_CLEAR_VALUE): New define.
	(thread_info_struct): Rename suspend_count to suspended, to be
	used as a flag.
	(thread_rec): Only suspend the thread if it wasn't suspended by
	gdb before.  Warn if suspending failed.
	(win32_add_thread): Set Dr6 to DR6_CLEAR_VALUE.
	(win32_continue): Set Dr6 to DR6_CLEAR_VALUE.  Update usage of the
	`suspended' flag.  Do ContinueDebugEvent after resuming the
	suspended threads, not before.  Set threads' contexts before
	resuming them, not after.
	(win32_resume): Set Dr6 to DR6_CLEAR_VALUE.

2007-11-23  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (insert_breakpoints)
	(insert_bp_location): Remove stale comments.
	
2007-11-23  Maciej W. Rozycki  <macro@mips.com>

	* mips-linux-tdep.h: Fix some formatting.

2007-11-21  Markus Deuling  <deuling@de.ibm.com>

	* stack.c (print_args_stub): Use get_frame_arch to get at the current
	architecture and replace current_gdbarch.
	(frame_info): Likewise.

2007-11-21  Nick Roberts  <nickrob@snap.net.nz>

	* varobj.c (c_variable_editable, cplus_variable_editable)
	(java_variable_editable, variable_editable): Delete.
	(varobj_editable_p): Replace above functions with one language
	independent function.  Check for an lvalue.
	(varobj_get_attributes, varobj_set_value): Use varobj_editable_p.
	(struct language_specific): Delete variable_editable field.

	* mi-cmd-var.c (mi_cmd_var_assign): Simplify.

	* varobj.h: Add extern for varobj_editable_p.

2007-11-20  Vladimir Prus  <vladimir@codesourcery.com>

	Remove unused breakpoint fields.
	* breakpoint.h (struct breakpoint): Remove
	from_tty and flag fields.
	* breakpoint.c (break_command_1): Don't set
	from_tty and flag field set of breakpoint.
	(create_ada_exception_breakpoint): Don't set
	the from_tty field.

2007-11-20  David Ung  <davidu@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips16_scan_prologue): Handle the MIPS16e SAVE
	instruction.

2007-11-20  Vladimir Prus  <vladimir@codesourcery.com>

	* infrun.c (resume): Clarify logic that
	decides if a single thread must be resumed. Add
	comments.

2007-11-20  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (disable_breakpoints_in_unloaded_shlib):
	Make static.

2007-11-19  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (register_sim_regno): Add gdbarch as parameter.
	* gdbarch.{c,h}: Regenerate.

	* arch-utils.h (legacy_register_sim_regno): Add gdbarch as parameter.
	* score-tdep.c (score_register_sim_regno): Likewise.
	* sim-regno.h (one2one_register_sim_regno): Likewise.

	* arch-utils.c (legacy_register_sim_regno): Add gdbarch as parameter.
	Replace current_gdbarch by gdbarch. 
	* sh-tdep.c (sh_sh2a_register_sim_regno)
	(sh_dsp_register_sim_regno): Likewise.
	* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
	* mips-tdep.c (mips_register_sim_regno): Likewise.
	* m32c-tdep.c (m32c_register_sim_regno): Likewise.
	* frv-tdep.c (frv_register_sim_regno): Likewise.
	* arm-tdep.c (arm_register_sim_regno): Likewise.
	* remote-sim.c (one2one_register_sim_regno): Likewise.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.ac (--enable-targets): New configure option.
	Collect gdb_target_obs of multiple targets into TARGET_OBS.
	Call configure.tgt multiple times, using $targ as operand.
	* configure.tgt: Operate on $targ instead of $target.
	* configure: Regenerate.
	* Makefile.in (ALL_TARGET_OBS): Define.

	* NEWS: Mention --enable-targets option.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* mips-tdep.c (show_mipsfpu_command): Do not crash if called when
	current architecture is not MIPS.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* cli/cli-setshow.c (do_setshow_command): Use dynamically sized buffer
	to construct error message if no argument was supplied.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* i386nbsd-tdep.c (i386nbsd_aout_supply_regset): Remove.
	(i386nbsd_aout_regset_from_core_section): Likewise.
	(i386nbsd_aout_init_abi): Likewise.
	(_initialize_i386nbsd_tdep): Do not register i386nbsd_aout_init_abi.

	* vaxnbsd-tdep.c (vaxnbsd_aout_init_abi): Remove.
	(_initialize_vaxnbsd_tdep): Do not register vaxnbsd_aout_init_abi.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* amd64fsdb-tdep.c (amd64fbsd_sigtramp_start_addr): Use ULL suffix.
	(amd64fbsd_sigtramp_end_addr): Likewise.

	* iq2000-tdep.c (iq2000_pointer_to_address): Fix argument type.
	(iq2000_address_to_pointer): Likewise.
	(iq2000_frame_prev_register): Likewise.
	(iq2000_extract_return_value): Use regcache_cooked_read_unsigned
	instead of regcache_cooked_read into CORE_ADDR variable.
	(iq2000_return_value): Fix argument types.

	* m32r-rom.c (m32r_load_section): Fix printf argument type.
	(m32r_load): Likewise.

	* m68kbsd-tdep.c: Include "gdbtypes.h".
	* Makefile.in: Update dependencies.

	* mn10300-tdep.c (mn10300_frame_unwind_cache): Fix aliasing violation.

	* nto-tdep.c (LM_ADDR): Do not refer to no-longer-existing
	lmo->l_addr_size element.

	* remote-m32r-sdi.c (m32r_xfer_memory): Use paddr to print address.
	(m32r_insert_breakpoint): Likewise.
	(m32r_remove_breakpoint): Likewise.
	(m32r_insert_watchpoint): Likewise.
	(m32r_remove_watchpoint): Likewise.
	(m32r_load): Fix printf argument type.

	* xtensa-tdep.c (xtensa_regset_from_core_section): Fix printf
	argument type.
	(xtensa_frame_this_id): Do not cast pointers to "int" for output.
	(xtensa_frame_prev_register): Likewise.
	(xtensa_push_dummy_call): Likewise.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/alpha/alpha-linux.mt: Remove file.
	* config/alpha/alpha.mt: Remove file.
	* config/alpha/alpha-osf1.mt: Remove file.
	* config/alpha/fbsd.mt: Remove file.
	* config/alpha/nbsd.mt: Remove file.
	* config/alpha/obsd.mt: Remove file.
	* config/arm/embed.mt: Remove file.
	* config/arm/linux.mt: Remove file.
	* config/arm/nbsd.mt: Remove file.
	* config/arm/obsd.mt: Remove file.
	* config/arm/wince.mt: Remove file.
	* config/avr/avr.mt: Remove file.
	* config/cris/cris.mt: Remove file.
	* config/frv/frv.mt: Remove file.
	* config/h8300/h8300.mt: Remove file.
	* config/i386/cygwin.mt: Remove file.
	* config/i386/fbsd64.mt: Remove file.
	* config/i386/fbsd.mt: Remove file.
	* config/i386/i386gnu.mt: Remove file.
	* config/i386/i386.mt: Remove file.
	* config/i386/i386sol2.mt: Remove file.
	* config/i386/linux64.mt: Remove file.
	* config/i386/linux.mt: Remove file.
	* config/i386/mingw.mt: Remove file.
	* config/i386/nbsd64.mt: Remove file.
	* config/i386/nbsd.mt: Remove file.
	* config/i386/nto.mt: Remove file.
	* config/i386/obsd64.mt: Remove file.
	* config/i386/obsd.mt: Remove file.
	* config/i386/sol2-64.mt: Remove file.
	* config/ia64/ia64.mt: Remove file.
	* config/ia64/linux.mt: Remove file.
	* config/iq2000/iq2000.mt: Remove file.
	* config/m32c/m32c.mt: Remove file.
	* config/m32r/linux.mt: Remove file.
	* config/m32r/m32r.mt: Remove file.
	* config/m68hc11/m68hc11.mt: Remove file.
	* config/m68k/linux.mt: Remove file.
	* config/m68k/monitor.mt: Remove file.
	* config/m68k/nbsd.mt: Remove file.
	* config/m68k/obsd.mt: Remove file.
	* config/m88k/obsd.mt: Remove file.
	* config/mep/mep.mt: Remove file.
	* config/mips/embed.mt: Remove file.
	* config/mips/irix5.mt: Remove file.
	* config/mips/irix6.mt: Remove file.
	* config/mips/linux.mt: Remove file.
	* config/mips/nbsd.mt: Remove file.
	* config/mips/obsd64.mt: Remove file.
	* config/mn10300/linux.mt: Remove file.
	* config/mn10300/mn10300.mt: Remove file.
	* config/mt/mt.mt: Remove file.
	* config/pa/hppahpux.mt: Remove file.
	* config/pa/hppa.mt: Remove file.
	* config/pa/linux.mt: Remove file.
	* config/pa/obsd.mt: Remove file.
	* config/powerpc/aix.mt: Remove file.
	* config/powerpc/linux.mt: Remove file.
	* config/powerpc/nbsd.mt: Remove file.
	* config/powerpc/obsd.mt: Remove file.
	* config/powerpc/ppc-eabi.mt: Remove file.
	* config/s390/s390.mt: Remove file.
	* config/score/embed.mt: Remove file.
	* config/sh/embed.mt: Remove file.
	* config/sh/linux.mt: Remove file.
	* config/sh/nbsd.mt: Remove file.
	* config/sh/obsd.mt: Remove file.
	* config/sh/sh64.mt: Remove file.
	* config/sparc/embed.mt: Remove file.
	* config/sparc/fbsd.mt: Remove file.
	* config/sparc/linux64.mt: Remove file.
	* config/sparc/linux.mt: Remove file.
	* config/sparc/nbsd64.mt: Remove file.
	* config/sparc/nbsd.mt: Remove file.
	* config/sparc/obsd64.mt: Remove file.
	* config/sparc/obsd.mt: Remove file.
	* config/sparc/sol2-64.mt: Remove file.
	* config/sparc/sol2.mt: Remove file.
	* config/sparc/sparc64.mt: Remove file.
	* config/sparc/sparc.mt: Remove file.
	* config/spu/spu.mt: Remove file.
	* config/v850/v850.mt: Remove file.
	* config/vax/nbsd.mt: Remove file.
	* config/vax/obsd.mt: Remove file.
	* config/vax/vax.mt: Remove file.
	* config/xstormy16/xstormy16.mt: Remove file.
	* config/xtensa/xtensa.mt: Remove file.

	* configure.tgt (gdb_target_cpu): Remove.  Do not set anywhere.
	(gdb_target): Likewise.
	(gdb_target_obs): Document.  Set for every target to contents
	of TDEPFILES in former .mt makefile fragment.

	* configure.ac (TARGET_OBS): Define.
	(target_makefile_frag, gdb_target_cpu): Do not define.
	* configure: Regenerate.

	* Makefile.in (MT_FLAGS): Remove.
	(GLOBAL_CFLAGS): Update.
	(TARGET_OBS): Substitute from configure.
	(DEPFILES): Remove TDEPFILES, add TARGET_OBS.
	(@target_makefile_frag@): Remove.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/arm/embed.mt (SIM_OBS, SIM): Remove.
	* config/avr/avr.mt (SIM_OBS, SIM): Remove.
	* config/frv/frv.mt (SIM_OBS, SIM): Remove.
	* config/h8300/h8300.mt (SIM_OBS, SIM): Remove.
	* config/iq2000/iq2000.mt (SIM_OBS, SIM): Remove.
	* config/m32c/m32c.mt (SIM_OBS, SIM): Remove.
	* config/m32r/linux.mt (SIM_OBS, SIM): Remove.
	* config/m32r/m32r.mt (SIM_OBS, SIM): Remove.
	* config/m68hc11/m68hc11.mt (SIM_OBS, SIM): Remove.
	* config/mips/embed.mt (SIM_OBS, SIM): Remove.
	* config/mips/linux.mt (SIM_OBS, SIM): Remove.
	* config/mips/nbsd.mt (SIM_OBS, SIM): Remove.
	* config/mn10300/mn10300.mt (SIM_OBS, SIM): Remove.
	* config/powerpc/linux.mt (SIM_OBS, SIM): Remove.
	* config/powerpc/nbsd.mt (SIM_OBS, SIM): Remove.
	* config/powerpc/ppc-sim.mt: Remove file.
	* config/sh/embed.mt (SIM_OBS, SIM): Remove.
	* config/sh/linux.mt (SIM_OBS, SIM): Remove.
	* config/sh/nbsd.mt (SIM_OBS, SIM): Remove.
	* config/sh/sh64.mt (SIM_OBS, SIM): Remove.
	* config/sparc/embed.mt (SIM_OBS, SIM): Remove.
	* config/v850/v850.mt (SIM_OBS, SIM): Remove.
	* config/xstormy16/xstormy16.mt (SIM_OBS, SIM): Remove.

	* configure.tgt (gdb_sim): Document variable.
	(arm*-*-* | thumb*-*-* | strongarm*-*-* | xscale-*-*): Set it.
	(avr-*-*): Likewise.
	(frv-*-*): Likewise.
	(h8300-*-*): Likewise.
	(iq2000-*-*): Likewise.
	(m32c-*-*): Likewise.
	(m32r*-*-linux*): Likewise.
	(m32r*-*-*): Likewise.
	(m68hc11*-*-*|m6811*-*-*): Likewise.
	(mips*-*-*): Likewise.
	(mips*-*-linux*): Likewise.
	(mips*-*-netbsd* | mips*-*-knetbsd*-gnu): Likewise.
	(mn10300-*-*): Likewise.
	(powerpc-*-linux* | powerpc64-*-linux*): Likewise.
	(powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu): Likewise.
	(powerpc*-*-*): Use ppc-eabi target.  Conditionally set gdb_sim.
	(sh*): Set gdb_sim.
	(sh-*-linux*): Likewise.
	(sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu): Likewise.
	(sh64-*-elf*): Likewise.
	(sparc-*-rtems*): Likewise.
	(v850*-*-elf): Likewise.
	(xstormy16-*-*): Likewise.

	* configure.ac (IGNORE_SIM, IGNORE_SIM_OBS): Do not set.
	(SIM, SIM_OBS): Set depending on ${ignore_sim} and ${gdb_sim}.
	* configure: Regenerate.
	* Makefile.in (SIM, SIM_OBS): Substitute from configure.
	(@IGNORE_SIM@, @IGNORE_SIM_OBS@): Remove.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.tgt (gdb_osabi, build_gdbserver): Comment variables.
	(arm*-*-*): Do not set obsolete build_rdi_share variable.

	(*-*-freebsd* | *-*-kfreebsd*-gnu): Remove generic case, replace by ...
	(alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
	(i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu)
	(sparc*-*-freebsd* | sparc*-*-kfreebsd*-gnu): ... specific cases.
	(x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu): Re-sort.

	(xscale-*-*): Merge into arm*-*-* case.
	(fido-*-elf*): Merge into m68*-*-elf* case.
	(m68*-*-aout*, m68*-*-coff*, m68*-*-elf*, m68*-*-rtems*,
	m68*-*-uclinux*): Merge cases.
	(powerpc-*-linux*, powerpc64-*-linux*): Merge cases.
	(sh-*-coff*, sh-*-elf*): Merge into sh* case. 

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.tgt: Reformat main case statement.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.ac (hostfile, targetfile): Remove.
	(GDB_XM_FILE, GDB_TM_FILE): Do not define.
	(xm_h, tm_h): Likewise.
	(DEPRECATED_TM_FILE, XM_FILE): Do not substitute into Makefile.
	* configure, config.in: Regenerate.

	* Makefile.in (xm_h, tm_h): Remove.  Update dependencies.
	(TAGS): Do not consider DEPRECATED_TM_FILE or XM_FILE.
	(clean, local-maintainer-clean): Do not remove xm.h or tm.h.
	* defs.h: Do not include "xm.h" or "tm.h".

	* gdbarch.sh (verify_gdbarch): Do not dump GDB_XM_FILE or GDB_TM_FILE.
	* gdbarch.c: Regenerate.

	* config/score/embed.mt: Remove obsolete comment.

2007-11-16  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (cannot_fetch_register, cannot_store_register): Add gdbarch
	as parameter.
	* gdbarch.{c,h}: Regenerate.

	* alpha-tdep.c (alpha_cannot_fetch_register)
	(alpha_cannot_store_register): Add gdbarch as parameter. Replace 
	current_gdbarch by gdbarch.
	* cris-tdep.c (cris_cannot_fetch_register, cris_cannot_store_register)
	(crisv32_cannot_fetch_register)
	(crisv32_cannot_store_register): Likewise.
	* arch-utils.c (cannot_register_not): Likewise.
	* arch-utils.h (cannot_register_not): Likewise.
	* hppa-tdep.c (hppa32_cannot_store_register)
	(hppa32_cannot_store_register, hppa64_cannot_store_register)
	(hppa64_cannot_fetch_register): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_cannot_fetch_register)
	(mipsnbsd_cannot_store_register): Likewise.

2007-11-16  Markus Deuling  <deuling@de.ibm.com>

	* m32r-rom.c (m32r_supply_register): Use get_regcache_arch to get at
	the current architecture by regcache.
	* ppcnbsd-nat.c (ppcnbsd_supply_pcb): Likewise.
	* ppc-linux-nat.c (fetch_altivec_register, fetch_spe_register)
	(fetch_register, supply_vrregset, fetch_ppc_registers)
	(store_altivec_register, store_spe_register, store_register)
	(fill_vrregset, store_ppc_registers): Likewise.
	* ppcobsd-nat.c (ppcobsd_supply_pcb): Likewise.
	* win32-nat.c (do_win32_fetch_inferior_registers)
	(do_win32_store_inferior_registers): Likewise.
	* procfs.c (procfs_fetch_registers, procfs_store_registers): Likewise.
	* remote-m32r-sdi.c (m32r_fetch_registers)
	(m32r_store_registers): Likewise.
	* remote-sim.c (gdbsim_fetch_register, gdbsim_store_register): Likewise.

	* trad-frame.c (trad_frame_alloc_saved_regs): Replace current_gdbarch by
	gdbarch.
	* user-regs.c (user_reg_map_name_to_regnum): Likewise.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call)
	(do_ppc_sysv_return_value, ppc64_sysv_abi_push_dummy_call)
	(ppc64_sysv_abi_return_value): Likewise.
	* m32c-tdep.c (m32c_register_reggroup_p): Likewise.
	* m2-lang.c (build_m2_types): Likewise.
	* ppc-linux-tdep.c (ppc_linux_sigtramp_cache
	* ppcnbsd-tdep.c (ppcnbsd_sigtramp_cache_init): Likewise.
	* ppcobsd-tdep.c (ppcobsd_sigtramp_frame_cache): Likewise.
	* rs6000-tdep.c (ppc_dwarf2_frame_init_reg): Likewise.

	* m68hc11-tdep.c (m68hc11_frame_unwind_cache): Use get_frame_arch to
	get at the current architecture by frame_info.
	* gcore.c (derive_stack_segment): Likewise.

	* shnbsd-nat.c (GETREGS_SUPPLIES): Add gdbarch parameter.
	(shnbsd_fetch_inferior_registers, shnbsd_store_inferior_registers): Add
	gdbarch to GETREGS_SUPPLIES call.

2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* elfread.c (ST_REGULAR, ST_DYNAMIC, ST_SYNTHETIC): New defines.
	(elf_symtab_read): Rename DYNAMIC argument to TYPE.  Do not access
	ELF-private symbol data when processing synthetic symbols.  Use
	udata.p to get at size of ppc64 synthetic 'dot' symbols.
	(elf_symfile_read): Pass TYPE argument to elf_symtab_read.

2007-11-15  Doug Evans  <dje@google.com>

	* buildsym.h (subfiles): Move ...
	* buildsym.c (subfiles): ... to here and make static.

	* symmisc.c (maintenance_info_symtabs): Print linetable info.

2007-11-15  Markus Deuling  <deuling@de.ibm.com>

	* mipsnbsd-tdep.h (SIZEOF_STRUCT_REG, SIZEOF_STRUCT_FPREG): Remove

2007-11-15  Markus Deuling  <deuling@de.ibm.com>

	* arm-tdep.c (arm_prologue_this_id): Replace LOWEST_PC by its
	expression and use get_frame_arch to replace current_gdbarch by frame's
	architecture.
	* arm-tdep.h (LOWEST_PC): Remove

2007-11-15  Vladimir Prus  <vladimir@codesourcery.com>

	Apply const qualifier to some users of bp_location.
	* breakpoint.h (struct bpstats): Make
	the breakpoint_at field point at const bp_location.
	* breakpoint.c (bpstat_alloc): Accept const
	bp_location.
	(breakpoint_here_p, breakpoint_inserted_here_p)
	(software_breakpoint_inserted_here_p)
	(breakpoint_thread_match, bpstat_stop_status)
	(read_memory_nobpt, bpstat_have_active_hw_watchpoints): Use
	const bp_location for iteration.
	(print_it_typical, print_bp_stop_message): Use
	const bp_location variable.

2007-11-15  Vladimir Prus  <vladimir@codesourcery.com>

	Make mark_breakpoints_out static.
	* breakpoint.h (mark_breakpoints_out): Remove
	declaration.
	* breakpoint.c (mark_breakpoints_out): Make static.

2007-11-15  Vladimir Prus  <vladimir@codesourcery.com>

	Prevent clear_command from directly modifying breakpoint list.
	* Makefile.in (breakpoint_h): Update dependency.
	* breakpoint.c (clear_command): Do not remove
	breakpoints from breakpoint_chain.  Collect breakpoints
	to delete in a vector.
	* breakpoint.h (breakpoint_p): New typedef for pointer to
	breakpoint.  Register vector of breakpoint_p.

2007-11-15  Vladimir Prus  <vladimir@codesourcery.com>

	Remove 'run_cleanup'.
	* defs.h (do_run_cleanups, make_run_cleanup): Remove
	declarations.
	* infcmd.c (run_command_1): Call clear_solib instead
	of do_run_cleanups.
	* jv-lang.c (java_rerun_cleanup): Remove, for lack of
	any use.
	* solib.c (solib_cleanup_queued, do_clear_solib): Remove.
	(update_solib_lib): Don't setup run cleanup.
	(no_shared_libraries): Call clear_solib, not do_clear_solib.
	* utils.c (run_cleanup_chain, make_run_cleanup)
	(do_run_cleanups): Remove.
		
2007-11-15  Vladimir Prus  <vladimir@codesourcery.com>

	Remove CLEAR_SOLIB use.
	* corelow.c (core_close): Don't check for CLEAR_SOLIB.
	* infcmd.c (attach_command): Likewise.
	
2007-11-14  Doug Evans  <dje@google.com>

	* buildsym.c (start_subfile,start_symtab): Doc fixes.

2007-11-13  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* tui/tui-data.c (tui_prev_win): Guard against NULL.

2007-11-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (gdbarch_alloc): Replace current_gdbarch by gdbarch. Remove
	obsolete comment.
	(verify_gdbarch, gdbarch_dump): Likewise.
	(do_read): Update comment.
	(addr_bit, bfd_arch_info, target_desc, long_long_bit, floatformat)
	(ptr_bit, name_of_malloc): Replace current_gdbarch by gdbarch.
	* gdbarch.{c,h}: Regenerate.

2007-11-12  Markus Deuling  <deuling@de.ibm.com>

	* xtensa-tdep.c (ARG_1ST): Replace ARGS_FIRST_REG by its expression.
	(ARGS_FIRST_REG): Remove.
	(areg_numer): New function.
	(xtensa_pseudo_register_read, xtensa_frame_prev_register)
	(xtensa_extract_return_value, xtensa_store_return_value)
	(xtensa_frame_cache): Replace AREG_NUMBER by areg_number.
	(AREG_NUMBER): Remove.
	(XTENSA_IS_ENTRY, ARG_NOF, ARG_1ST): Add gdbarch as parameter.
	(xtensa_frame_cache): Update use of XTENSA_IS_ENTRY.
	(xtensa_push_dummy_call): Update use of ARG_NOF.
	(extract_call_winsize): Add gdbarch as parameter. Replace
	current_gdbarch by gdbarch.
	(xtensa_extract_return_value, xtensa_store_return_value): Update call
	of extract_call_winsize.

2007-11-10  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Add entry for new set/show print frame-args command.

2007-11-09  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (mn10300_dwarf2_reg_to_regnum): Add missing
	register number to map.  Adjust warning check and error/warning
	return value code to match expectations of this function's callers.

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

	* stack.c (print_this_frame_argument_p): Handle arguments passed
	by reference properly.

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

	* stack.c (print_frame_arguments_choices): New static global.
	(print_frame_arguments): Likewise.
	(print_this_frame_argument_p): New function.
	(print_frame_args): Print the argument value only when appropriate.
	(_initialize_task): Add new "set/show print frame-arguments" command.

2007-11-09  Luis Machado  <luisgpm@br.ibm.com>

	* ppc-linux-nat.c (ppc_linux_insert_watchpoint): Move
	saved_dabr_value assignment to the correct position.
		
2007-11-09  Markus Deuling  <deuling@de.ibm.com>

	* arch-utils.c (generic_convert_register_p): Add gdbarch as parameter.
	* arch-utils.h (generic_convert_register_p): Likewise.

2007-11-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (convert_register_p): Add gdbarch as parameter.
	* ia64-tdep.c (ia64_convert_register_p): Likewise.
	* i387-tdep.c (i387_convert_register_p): Likewise.
	* i387-tdep.h (i387_convert_register_p): Likewise.
	* alpha-tdep.c (alpha_convert_register_p): Likewise.
	* gdbarch.{c,h}: Regenerate.

	* rs6000-tdep.c (rs6000_convert_register_p): Add gdbarch as parameter.
	Replace current_gdbarch by gdbarch.
	* mips-tdep.c (mips_convert_register_p): Likewise.
	* m68k-tdep.c (m68k_convert_register_p): Likewise.
	* i386-tdep.c (i386_convert_register_p): Likewise.

2007-11-08  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb_string.h: Include <strings.h>.

2007-11-08  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (break_command_1): Remove
	pending_bp parameter.
	(create_breakpoint): Likewise.
	(create_breakpoints): Likewise. Adjust call to
	create_breakpoint.
	(break_command_1): Likewise. Adjust call to
	create_breakpoints.
	(do_captured_breakpoint): Adjust call to
	create_breakpoints.
	(break_command, tbreak_command, hbreak_command)
	(stopin_command, stopat_command): Adjust call
	to break_command_1.
			
2007-11-07  Joseph Myers  <joseph@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* ppc-sysv-tdep.c (ppc64_sysv_abi_push_dummy_call): Right-align
	struct values smaller than one doubleword; left-align those
	larger.  Pass structs containing a single floating-point value in
	registers.

2007-11-07  Joseph Myers  <joseph@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbtypes.c (floatformats_ibm_long_double): New.
	* gdbtypes.h (floatformats_ibm_long_double): Declare.
	* ia64-tdep.c (floatformat_ia64_ext): Update for addition of
	split_half field.
	* mips-tdep.c (n32n64_floatformat_always_valid,
	floatformat_n32n64_long_double_big, floatformats_n32n64_long):
	Remove.
	(mips_gdbarch_init): Use floatformats_ibm_long_double instead of
	floatformats_n32n64_long.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Use 128-bit IBM long
	double.
	* doublest.c (convert_floatformat_to_doublest,
	convert_doublest_to_floatformat): Handle split floating-point
	formats.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Handle IBM long
	double arguments.
	(ppc64_sysv_abi_push_dummy_call): Likewise.
	(do_ppc_sysv_return_value): Handle IBM long double return.

2007-11-07  Vladimir Prus  <vladimir@codesourcery.com>

	Fix crash when a variable object being deleted
	has any of its children deleted previously.
	
	* varobj.c (delete_variable_1): Don't recurse
	into deleted children.
	
2007-11-07  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (legacy_virtual_frame_pointer): Add gdbarch parameter.
	* gdbarch.{c,h}: Regenerate.
	* arch-utils.c (legacy_virtual_frame_pointer): Add gdbarch parameter.
	Replace current_gdbarch by gdbarch.
	* m32c-tdep.c (m32c_virtual_frame_pointer): Likewise.
	* mips-tdep.c (mips_virtual_frame_pointer): Likewise.
	* spu-tdep.c (spu_virtual_frame_pointer): Likewise.

2007-11-07  Markus Deuling  <deuling@de.ibm.com>

	* shnbsd-tdep.c (shnbsd_supply_gregset, shnbsd_collect_gregset): Use
	get_regcache_arch to get at the current architecture by regcache.
	* xstormy16-tdep.c (xstormy16_frame_prev_register): Use get_frame_arch
	to get at the current architecture by frame_info.
	* fbsd-nat.c (fbsd_make_corefile_notes): Use get_regcache_arch to get
	at the current architecture by regcache.
	* gnu-v3-abi.c (gnuv3_skip_trampoline): Use get_frame_arch to get at
	the current architecture by frame_info.
	(build_gdb_vtable_type): Replace current_gdbarch by gdbarch.
	* aix-thread.c (special_register_p): Add gdbarch as parameter.
	(fetch_regs_kernel_thread, store_regs_kernel_thread): Add gdbarch to
	caller of special_register_p.

2007-11-07  Markus Deuling  <deuling@de.ibm.com>

	* infcall.c (call_function_by_hand): Use get_frame_arch to get at the
	current architecture by frame_info.

2007-11-07  Markus Deuling  <deuling@de.ibm.com>

	* xtensa-tdep.h (SIZEOF_GREGSET, XTENSA_ELF_NGREG) Remove.

2007-11-07  Markus Deuling  <deuling@de.ibm.com>

	* s390-nat.c (supply_gregset, fill_gregset): Use get_regcache_arch to
	get at the current architecture by regcache.
	(SUBOFF): Add gdbarch to macro definition.

2007-11-07  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (breakpoint_from_pc): Add gdbarch parameter.
	* gdbarch.{c,h}: Regenerate.

	* xtensa-tdep.c (xtensa_breakpoint_from_pc): Add gdbarch parameter.
	Replace current_gdbarch by gdbarch.
	* sh-tdep.c (sh_breakpoint_from_pc): Likewise.
	* sh64-tdep.c (sh64_breakpoint_from_pc): Likewise.
	* score-tdep.c (score_breakpoint_from_pc): Likewise.
	* mips-tdep.c (mips_breakpoint_from_pc): Likewise.
	* m32r-tdep.c (m32r_breakpoint_from_pc): Likewise.
	* iq2000-tdep.c (iq2000_breakpoint_from_pc): Likewise.
	* arm-tdep.c (arm_breakpoint_from_pc): Likewise.

	* xstormy16-tdep.c (xstormy16_breakpoint_from_pc): Add gdbarch
	parameter.
	* vax-tdep.c (vax_breakpoint_from_pc): Likewise.
	* v850-tdep.c (v850_breakpoint_from_pc): Likewise.
	* spu-tdep.c (spu_breakpoint_from_pc): Likewise.
	* sparc-tdep.c (sparc_breakpoint_from_pc): Likewise.
	* s390-tdep.c (s390_breakpoint_from_pc): Likewise.
	* mn10300-tdep.c (mn10300_breakpoint_from_pc): Likewise.
	* mt-tdep.c (mt_breakpoint_from_pc): Likewise.
	* mep-tdep.c (mep_breakpoint_from_pc): Likewise.
	* m88k-tdep.c (m88k_breakpoint_from_pc): Likewise.
	* m68hc11-tdep.c (m68hc11_breakpoint_from_pc): Likewise.
	* m32c-tdep.c (m32c_breakpoint_from_pc): Likewise.
	* ia64-tdep.c (ia64_breakpoint_from_pc): Likewise.
	* i386-tdep.c (i386_breakpoint_from_pc): Likewise.
	* hppa-tdep.c (hppa_breakpoint_from_pc): Likewise.
	* h8300-tdep.c (h8300_breakpoint_from_pc): Likewise.
	* frv-tdep.c (frv_breakpoint_from_pc): Likewise.
	* cris-tdep.c (cris_breakpoint_from_pc): Likewise.
	* avr-tdep.c (avr_breakpoint_from_pc): Likewise.
	* alpha-tdep.c (alpha_breakpoint_from_pc): Likewise.
	* m68k-tdep.c (m68k_local_breakpoint_from_pc): Likewise.

	* rs6000-tdep.c (rs6000_breakpoint_from_pc): Add gdbarch parameter.
	Replace current_gdbarch by gdbarch.
	(rs6000_software_single_step): Use get_frame_arch to get at the
	current architecture by frame_info. Add gdbarch to
	rs6000_breakpoint_from_pc call.

2007-11-07  Markus Deuling  <deuling@de.ibm.com>

	* frv-tdep.c (frv_register_name, frv_check_watch_resources): Replace
	macro CURRENT_VARIANT by its expression.
	(CURRENT_VARIANT): Remove.
	(frv_check_watch_resources): Add gdbarch parameter.

2007-11-07  Markus Deuling  <deuling@de.ibm.com>

	* MAINTAINERS (Write After Approval): Add self.

2007-11-05  Ulrich Weigand  <uweigand@de.ibm.com>

	* features/rs6000/power-core.xml: Use uint32 as register type.
	* features/rs6000/power64-core.xml: Use uint64/uint32 as register type.
	* features/rs6000/powerpc-32.c: Regenerate.
	* features/rs6000/powerpc-403.c: Regenerate.
	* features/rs6000/powerpc-403gc.c: Regenerate.
	* features/rs6000/powerpc-505.c: Regenerate.
	* features/rs6000/powerpc-602.c: Regenerate.
	* features/rs6000/powerpc-603.c: Regenerate.
	* features/rs6000/powerpc-604.c: Regenerate.
	* features/rs6000/powerpc-64.c: Regenerate.
	* features/rs6000/powerpc-7400.c: Regenerate.
	* features/rs6000/powerpc-750.c: Regenerate.
	* features/rs6000/powerpc-860.c: Regenerate.
	* features/rs6000/powerpc-e500.c: Regenerate.

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

	* breakpoint.c (set_raw_breakpoint_without_location): Make static.

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

	* breakpoint.h (create_solib_load_event_breakpoint)
	(create_solib_unload_event_breakpoint)
	(create_fork_event_catchpoint, create_vfork_event_catchpoint)
	(create_exec_event_catchpoint): Delete declaration.
	* breakpoint.c (create_solib_load_event_breakpoint)
	(solib_load_unload_1, create_solib_unload_event_breakpoint): Delete.
	(create_fork_event_catchpoint, create_vfork_event_catchpoint)
	(create_exec_event_catchpoint): Make static.

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

	* breakpoint.h (set_breakpoint_sal): Remove declaration.
	* breakpoint.c (set_breakpoint_sal): Delete.

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

	* buildsym.c (finish_block): Remove "#if 1"/"#endif" brackets.
	(make_blockvector): Likewise. Remove FIXME comment.

2007-11-05  Luis Machado  <luisgpm@br.ibm.com>

	* printcmd.c: (printf_command): Add support for new DFP
	modifiers %H, %D and %DD.
	* configure.ac: Add check for DECFLOAT printf support.
	* configure: Regenerated.

2007-11-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbtypes.h (struct cplus_struct_type): Remove runtime_ptr member.
	(TYPE_RUNTIME_PTR, TYPE_VTABLE, TYPE_HAS_VTABLE,
	TYPE_PRIMARY_BASE, TYPE_VIRTUAL_BASE_LIST): Remove macros.
	(HP_ACC_VFUNC_START, HP_ACC_VBASE_START, HP_ACC_TYPEINFO_OFFSET,
	HP_ACC_TOP_OFFSET_OFFSET): Likewise.
	(has_vtable, primary_base_class, virtual_base_list_length,
	virtual_base_list_length_skip_primaries, virtual_base_index,
	virtual_base_index_skip_primaries, class_index_in_primary_list,
	count_virtual_fns): Remove prototypes.
	* gdbtypes.c (has_vtable, primary_base_class, current_vbase_list,
	virtual_base_list_aux, virtual_base_list, virtual_base_list_length,
	virtual_base_list_length_skip_primaries, virtual_base_index,
	virtual_base_index_skip_primaries, class_index_in_primary_list,
	count_virtual_fns): Remove.

	* cp-valprint.c (cp_print_hpacc_virtual_table_entries): Remove.
	(hpacc_vtbl_ptr_name, hpacc_vtbl_ptr_type_name): Remove.
	(cp_print_value_fields): Remove support for HP aCC vtables.
	(cp_print_value): Likewise.
	* c-typeprint.c (c_type_print_base): Likewise.

	* value.h (find_rt_vbase_offset): Remove prototype.
	* valops.c (find_rt_vbase_offset): Remove.
	(search_struct_method): Remove support for HP aCC vtables.
	(find_method_list): Likewise.

2007-11-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* language.h (struct language_defn): Remove la_builtin_type_vector
	and string_char_type members.
	* language.c (language_string_char_type): No longer consult
	la->string_char_type.
	(language_lookup_primitive_type_by_name): No longer consult
	current_language->la_builtin_type_vector.

	* language.c (unknown_language_defn, auto_language_defn,
	local_language_defn): Adapt initializer.
	* ada-lang.c (ada_language_defn): Likewise.
	* c-lang.c (c_language_defn, cplus_language_defn, asm_language_defn,
	minimal_language_defn): Likewise.
	* f-lang.c (f_language_defn): Likewise.
	* jv-lang.c (java_language_defn): Likewise.
	* m2-lang.c (m2_language_defn): Likewise.
	* objc-lang.c (objc_language_defn): Likewise.
	* p-lang.c (pascal_language_defn): Likewise.
	* scm-lang.c (scm_language_defn): Likewise.

2007-11-02  Markus Deuling  <deuling@de.ibm.com>

	* frame.c (frame_id_inner): Add gdbarch parameter. Replace
	current_gdbarch by gdbarch.
	(frame_find_by_id, get_prev_frame_1): Use get_frame_arch to get at the
	current architecture by frame_info.
	* frame.h (frame_id_inner): Add gdbarch parameter.
	* stack.c (return_command): Use get_frame_arch to get at the current
	architecture by frame_info. Update call of frame_id_inner.
	* infrun.c (handle_inferior_event): Likewise.
	* dummy-frame.c (dummy_frame_push):  Use get_regcache_arch to get at the
	current architecture by regcache. Update call of frame_id_inner.

2007-11-02  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (register_name): Add gdbarch parameter.
	* gdbarch.{c,h}: Regenerate.

	* target-descriptions.c (tdesc_register_name): Add gdbarch parameter.
	(tdesc_register_name): Replace current_gdbarch by gdbarch.
	* target-descriptions.h (tdesc_register_name): Add gdbarch parameter.

	* xstormy16-tdep.c (xstormy16_register_name): Add gdbarch parameter.
	* vax-tdep.c (vax_register_name): Add gdbarch parameter.
	* spu-tdep.c (spu_register_name): Add gdbarch parameter.
	* s390-tdep.c (s390_register_name): Add gdbarch parameter.
	* mt-tdep.c (mt_register_name): Add gdbarch parameter.
	(mt_registers_info): Replace current_gdbarch by gdbarch.
	(mt_register_reggroup_p): Add gdbarch to mt_register_name call.
	* mips-tdep.c (mips_register_name): Add gdbarch parameter. Replace
	current_gdbarch by gdbarch.
	(mips_register_name): Add gdbarch to tdesc_register_name call.
	* mep-tdep.c (mep_register_name): Add gdbarch parameter. Replace
	current_gdbarch by gdbarch.
	(mep_register_reggroup_p): Add gdbarch to mep_register_name call.
	* m32c-tdep.c (m32c_register_name): Add gdbarch parameter. Replace
	current_gdbarch by gdbarch.
	* m88k-tdep.c (m88k_register_name): Add gdbarch parameter.
	* m68k-tdep.c (m68k_register_name): Add gdbarch parameter.
	* m32r-tdep.c (m32r_register_name): Add gdbarch parameter.
	(m32r_frame_unwind_cache): Use get_frame_arch to get at the current
	architecture by frame_info.
	* iq2000-tdep.c (iq2000_register_name): Add gdbarch parameter.
	* ia64-tdep.c (ia64_register_name): Add gdbarch parameter.
	* hppa-tdep.c (hppa32_register_name, hppa64_register_name): Add gdbarch
	parameter.
	* h8300-tdep.c (h8300_register_name, h8300s_register_name)
	(h8300sx_register_name): Add gdbarch parameter.
	* cris-tdep.c (cris_register_name, crisv32_register_name): Add
	gdbarch parameter. Replace current_gdbarch by gdbarch.
	(cris_gdbarch_init): Replace current_gdbarch by gdbarch (comment).
	* avr-tdep.c (avr_register_name): Add gdbarch parameter.
	* arm-tdep.c (arm_register_name): Add gdbarch paramete
	* amd64-tdep.c (amd64_register_name): Add gdbarch parameter. Update
	caller.
	* amd64-tdep.h (amd64_register_name): Add gdbarch parameter.
	* amd64-linux-tdep.c (amd64_linux_register_name): Add gdbarch parameter.
	* alpha-tdep.c (alpha_register_name): Add gdbarch parameter.
	(alpha_cannot_fetch_register, alpha_cannot_store_register): Update call
	of alpha_register_name.
	* frv-tdep.c (frv_register_name): Add gdbarch parameter.
	* i386-tdep.c (i386_register_name): Add gdbarch parameter. Replace
	current_gdbarch by gdbarch.
	(i386_register_type): Replace ?current_gdbarch by gdbarch.
	* i386-tdep.h (i386_register_name): Add gdbarch parameter.
	* i386-linux-tdep.c (i386_linux_register_name): Add gdbarch parameter.

	* m68hc11-tdep.c (m68hc11_register_name): Add gdbarch parameter.
	(m68hc11_register_reggroup_p): Add gdbarch to call of
	m68hc11_register_name.
	* mn10300-tdep.c (mn10300_generic_register_name, am33_register_name)
	(am33_2_register_name): Add gdbarch parameter.
	(mn10300_frame_unwind_cache): Use get_frame_arch to get at the current
	architecture by frame_info.
	(mn10300_dump_tdep): Replace current_gdbarch by gdbarch.
	* rs6000-tdep.c (rs6000_register_name): Add gdbarch parameter. Replace
	current_gdbarch by gdbarch.
	* score-tdep.c (score_register_name): Add gdbarch parameter.
	(score_return_value, score_push_dummy_call): Replace current_gdbarch
	by gdbarch.
	* sh64-tdep.c (sh64_register_name): Add gdbarch parameter.
	(sh64_compact_reg_base_num, sh64_register_convert_to_virtual)
	(sh64_register_convert_to_raw, sh64_fv_reg_base_num)
	(sh64_dr_reg_base_num, sh64_fpp_reg_base_num): Add gdbarch parameter
	and update caller. Replace current_gdbarch by gdbarch.
	(sh64_extract_return_value, sh64_store_return_value): Use
	get_regcache_arch to get at the current architecture by regcache.
	* sh-tdep.c (sh_sh_register_name, sh_sh3_register_name)
	(sh_sh3e_register_name, sh_sh2e_register_name, sh_sh2a_register_name)
	(sh_sh2a_nofpu_register_name, sh_sh_dsp_register_name)
	(sh_sh3_dsp_register_name, sh_sh4_register_name)
	(sh_sh4_nofpu_register_name, sh_sh4al_dsp_register_name): Add gdbarch
	parameter.
	(fv_reg_base_num, dr_reg_base_num, sh_justify_value_in_reg)
	(sh_next_flt_argreg): Add gdbarch parameter and update caller. Replace
	current_gdbarch by gdbarch.
	(sh_extract_return_value_fpu, sh_store_return_value_fpu): Use
	get_regcache_arch to get at the current architecture by regcache.
	* sparc-tdep.c (sparc32_register_name): Add gdbarch parameter.
	* sparc64-tdep.c (sparc64_register_name): Add gdbarch parameter.
	* v850-tdep.c (v850_register_name, v850e_register_name): Add gdbarch
	parameter.
	(v850_unwind_sp, v850_unwind_pc): Replace current_gdbarch by gdbarch.
	* xtensa-tdep.c (xtensa_register_name): Add gdbarch parameter. Replace
	current_gdbarch by gdbarch.
	(xtensa_pseudo_register_read, xtensa_pseudo_register_write)
	(xtensa_frame_prev_register): Add gdbarch parameter to
	xtensa_register_name call.

2007-10-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* ppc-linux-tdep.c (ppc_linux_skip_trampoline_code): Fall back to
	find_solib_trampoline_target if PC is not in .plt section.

2007-10-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* elfread.c (elf_symtab_read): When constructing a solib trampoline
	minimal symbol from an undefined dynamic symbol, use proper section.

2007-10-31  Markus Deuling  <deuling@de.ibm.com>

	* arm-linux-nat.c (fetch_register, fetch_regs): Use get_regcache_arch
	to get at the current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* libunwind-frame.c (libunwind_frame_sniffer)
	libunwind_frame_prev_register, libunwind_sigtramp_frame_sniffer)
	(libunwind_frame_cache): Use get_frame_arch to get at the current
	architecture by frame_info.
	(libunwind_get_reg_special): Replace current_gdbarch by gdbarch.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* iq2000-tdep.c (iq2000_frame_prev_register): Use get_frame_arch to get
	at the current architecture by frame_info.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* inf-child.c (inf_child_fetch_inferior_registers): Use 
	get_regcache_arch to get at the current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* inf-ptrace.c (inf_ptrace_fetch_registers)
	(inf_ptrace_fetch_register, inf_ptrace_store_register)
	(inf_ptrace_store_registers): Use get_regcache_arch to get at the
	current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* hpux-thread.c (hpux_thread_fetch_registers)
	(hpux_thread_store_registers): Use get_regcache_arch to get at the
	current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* hppa-tdep.c (hppa_frame_cache): Use get_frame_arch to get at the
	current architecture by frame_info.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* go32-nat.c (fetch_register, go32_fetch_registers, store_register)
	(go32_store_registers): Use get_regcache_arch to get at the current
	architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* gdbtypes.c (gdbtypes_post_init): Replace current_gdbarch by gdbarch.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* frv-linux-tdep.c (frv_linux_sigtramp_frame_cache): Use get_frame_arch
	to get at the current architecture by frame_info.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* f-lang.c (build_fortran_types): Replace current_gdbarch by gdbarch.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* core-regset.c (fetch_core_registers): Use get_regcache_arch to get at
	the current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* corelow.c (get_core_registers): Use get_regcache_arch to get at the
	current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* bsd-uthread.c (bsd_uthread_fetch_registers)
	(bsd_uthread_store_registers): Use get_regcache_arch to get at the
	current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* avr-tdep.c (avr_frame_unwind_cache, avr_frame_prev_register): Use
	get_frame_arch to get at the current architecture by frame_info.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* arm-tdep.c (arm_get_next_pc): Replace current_gdbarch by gdbarch.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* armnbsd-nat.c (arm_supply_gregset, fetch_register, store_register)
	(store_regs): Use get_regcache_arch to get at the current architecture
	by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* arm-linux-tdep.c (arm_linux_supply_gregset): Use get_regcache_arch
	to get at the current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* alphabsd-nat.c (alphabsd_fetch_inferior_registers)
	(alphabsd_store_inferior_registers): Use get_regcache_arch to get at
	the current architecture by regcache.

2007-10-30  Markus Deuling  <deuling@de.ibm.com>

	* ada-lang.c (ada_language_arch_info): Replace current_gdbarch by
	gdbarch.

2007-10-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Check the selected
	soft float and vector ABIs.  Support the generic vector ABI for
	AltiVec types.
	(do_ppc_sysv_return_value): Likewise.  Correct argument types and
	casts.
	(ppc64_sysv_abi_push_dummy_call): Assert that floating point is
	supported.
	* ppc-tdep.h (enum powerpc_vector_abi): New.
	(struct gdbarch_tdep): Add soft_float and vector_abi.
	* rs6000-tdep.c (setpowerpccmdlist, showpowerpccmdlist)
	(powerpc_soft_float_global, powerpc_vector_strings)
	(powerpc_vector_abi_global, powerpc_vector_abi_string): New.
	(rs6000_gdbarch_init): Check for soft-float and vector ABI markings.
	(set_powerpc_command, show_powerpc_command, powerpc_set_soft_float)
	(powerpc_set_vector_abi): New.
	(_initialize_rs6000_tdep): Register "set powerpc" and "show powerpc"
	commands.
	* Makefile.in (elf_ppc_h): New.
	(rs6000-tdep.o): Update.

2007-10-29  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>

	* ppc-linux-tdep.c (ppc32_linux_reg_offsets): Corrected
	swapped offsets and VRSAVE offset.
	(ppc64_linux_reg_offsets): Corrected swapped offsets.
	(ppc32_linux_vrregset): Added.
	(ppc_linux_regset_from_core_section): Added support for
	.reg-ppc-vmx section.
	* ppc-tdep.h (ppc_altivec_support_p): Declare.
	(ppc_supply_vrregset): Declare.
	(ppc_collect_vrregset): Declare.
	* rs6000-tdep.c (ppc_altivec_support_p): Added.
	(ppc_supply_vrregset): Added.
	(ppc_collect_vrregset): Added.
	* corelow.c (get_core_registers): Added support for
	.reg-ppc-vmx section.

2007-10-29  Joel Brobecker  <brobecker@adacore.com>

	GDB 6.7.1 released.

2007-10-26  Jim Blandy  <jimb@codesourcery.com>

	* ax-gdb.h (expr_to_address_and_size): Delete declaration for
	deleted function.

	* tracepoint.c (tracepoint_operation): Report the deletion event
	after we have unlinked the tracepoint from the list, and use the
	proper tracepoint number.

	* ax-gdb.c (expr_to_agent): Delete unused function.
	(expr_to_address_and_size): Delete #if 0'd function.
	* ax-gdb.h (expr_to_agent): Delete declaration.

	* ax-gdb.c (gen_cast): Remove redundant assignment to
	value->type.  Doc fix.

	* ax-general.c (gen_traced_pop, gen_int_literal)
	(gen_usual_arithmetic): Check for typedefs.

2007-10-26  Joel Brobecker  <brobecker@adacore.com>

	* parse.c (prefixify_expression): Minor reformatting.

2007-10-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* version.in: Use dot instead of dash.

2007-10-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-thread-db.c (check_for_thread_db): Only print if info_verbose.

2007-10-25  Pedro Alves  <pedro_alves@portugalmail.pt>

	* memory-map.c (parse_memory_map): Don't use an empty struct
	initializer.

2007-10-25  Pedro Alves  <pedro_alves@portugalmail.pt>

	* signals/signals.c (signals): Update pointer to enum
	target_signal declaration.

2007-10-25  Wu Zhou  <woodzltc@cn.ibm.com>
	    Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
	    Jim Blandy  <jimb@codesourcery.com>

	* dwarf2read.c (read_partial_die): check the value
	of DW_AT_calling_convention in Fortran programs.

2007-10-25  Wu Zhou  <woodzltc@cn.ibm.com> 
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* c-exp.y (YYSTYPE): Add typed_val_decfloat for decimal
	floating point in YYSTYPE union.
	(DECFLOAT) Add token and expression element handling code.
	(parse_number): Parse DFP constants, which end with suffix 'df',
	'dd' or 'dl'.  Return DECFLOAT.
	* eval.c (evaluate_subexp_standard): Call value_from_decfloat to
	handle OP_DECFLOAT.
	* expression.h (enum exp_opcode): Add an opcode (OP_DECFLOAT)
	for DFP constants.
	(union exp_element): Add decfloatconst to represent DFP
	elements, which is 16 bytes by default.
	* parse.c (write_exp_elt_decfloatcst): New function to write a
	decimal float const into the expression.
	(operator_length_standard): Set operator length for OP_DECFLOAT
	to 4.
	* parser-defs.h (write_exp_elt_decfloatcst): Prototype.
	* valarith.c (value_neg): Add code to handle the negation
	operation of DFP values.
	* value.c (value_from_decfloat): New function to get the value
	from a decimal floating point.
	* value.h (value_from_decfloat): Prototype.

2007-10-25  Wu Zhou  <woodzltc@cn.ibm.com> 
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* c-lang.c (c_create_fundamental_type): Create fundamental
	types for DFP.
	* c-typeprint.c (c_type_print_varspec_prefix): Add
	TYPE_CODE_DECFLOAT to no prefix needed case.
	(c_type_print_varspec_suffix): Add TYPE_CODE_DECFLOAT to no
	suffix needed case.
	* c-valprint.c (c_val_print): Call print_decimal_floating to
	print DFP values.
	* dwarf2read.c (read_base_type): Read DW_ATE_decimal_float
	attribute code and return TYPE_CODE_DECFLOAT.
	(dwarf_base_type): Set dwarf2_fundamental_type for DFP values.
	* gdbtypes.c (gdbtypes_post_init): Initialize builtin_decfloat,
	builtin_decdouble and builtin_declong. 
	* gdbtypes.h (enum type_code): Add TYPE_CODE_DECFLOAT as a
	type code for DFP.
	(FT_DECFLOAT, FT_DBL_PREC_DECFLOAT, FT_EXT_PREC_DECFLOAT): New
	types, for decimal floating point.
	(FT_NUM_MEMBERS):  Increment, new types added.
	(struct builtin_type): Add builtin_decfloat, builtin_decdouble
	and builtin_declong.
	* valprint.c (print_decimal_floating): New function to print DFP
	values.
	* value.h (print_decimal_floating): Prototype.

2007-10-25  Wu Zhou  <woodzltc@cn.ibm.com> 
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* Makefile.in (LIBDECNUMBER_DIR, LIBDECNUMBER, LIBDECNUMBER_SRC
	LIBDECNUMBER_CFLAGS): New macros for libdecnumber.
	(INTERNAL_CFLAGS_BASE): Add LIBDECNUMBER_CFLAGS in.
	(INSTALLED_LIBS): Add -ldecnumber in.
	(CLIBS): Add LIBDECNUMBER in.
	(decimal128_h, decimal64_h, decimal32_h): New macros for decimal
	headers.
	(dfp_h): New macros for decimal floating point.
	(dfp.o): New target.
	(COMMON_OBS): Add dfp.o in.
	(c-exp.o): Add dfp_h as dependency.
	(valprint.o): Add dfp_h as dependency.
	(value.o): Add dfp_h as dependency.
	* dfp.h: New header file for decimal floating point support in
	GDB.
	* dfp.c: New source file for decimal floating point support in
	GDB.  Implement decimal_from_string and decimal_to_string based
	on libdecnumber API.
	* configure.ac: Add AC_C_BIGENDIAN test.
	* config.in, configure: Regenerate.

2007-10-25  David Ung  <davidu@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	PR exp/1926
	* infcmd.c (registers_info): Check for a user register before
	calling target's gdbarch_print_registers_info().  If found to be
	so, extract the implicit value of user register and call
	print_scalar_formatted().
	* Makefile.in: (infcmd.o): Add $(user_regs_h).

2007-10-25  Joel Brobecker  <brobecker@adacore.com>

	* NEWS: Document status of hppa64-hpux support.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* solib-svr4.c (set_solib_svr4_fetch_link_map_offsets): Call
	set_solib_ops to install SVR4 operations.
	(_initialize_svr4_solib): Do not set current_target_so_ops.

	* config/i386/i386gnu.mh (NATDEPFILES): Move solib.o, solib-svr4.o ...
	* config/i386/i386gnu.mt (TDEPFILES): ... to here.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* solib-svr4.c (legacy_svr4_fetch_link_map_offsets_hook): Remove.
	(solib_svr4_init): Initialize fetch_link_map_offsets to NULL.
	* solib-svr4.h (legacy_svr4_fetch_link_map_offsets_hook): Remove.
	* solib-legacy.c: Remove file.

	* config/alpha/alpha-linux.mt (TDEPFILES): Remove solib-legacy.o.
	* config/arm/linux.mt (TDEPFILES): Likewise.
	* config/i386/i386gnu.mh (NATDEPFILES): Likewise.
	* config/ia64/linux.mt (TDEPFILES): Likewise.
	* config/m32r/linux.mt (TDEPFILES): Likewise.
	* config/powerpc/linux.mt (TDEPFILES): Likewise.
	* config/s390/s390.mt (TDEPFILES): Likewise.

	* alpha-linux-tdep.c (alpha_linux_init_abi): Call
	set_solib_svr4_fetch_link_map_offsets.
	* i386gnu-tdep.c (i386gnu_init_abi): Likewise.
	* ia64-linux-tdep.c (ia64_linux_init_abi): Likewise.

	* i386gnu-tdep.c: Include "solib-svr4.h".
	* Makefile.in: Update dependencies.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* i386-nto-tdep.c: Include "solib.h".
	(i386nto_init_abi): Use set_solib_ops instead of overwriting
	current_target_so_ops members.
	* solist.h (TARGET_SO_RELOCATE_SECTION_ADDRESSES): Remove.
	(TARGET_SO_FIND_AND_OPEN_SOLIB): Remove.
	(TARGET_SO_IN_DYNSYM_RESOLVE_CODE): Remove.
	* Makefile.in: Update dependencies.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* arm-wince-tdep.c: Include "solib.h" and "solib-target.h".
	(arm_wince_init_abi): Call set_solib_ops.
	* i386-cygwin-tdep.c: Include "solib.h" and "solib-target.h".
	(i386_cygwin_init_abi): Call set_solib_ops.
	* solib-target.c: Include "solib-target.h".
	(solib_target_so_ops): Make global.
	(_initialize_solib_target): Do not set current_target_so_ops.
	* solib-target.h: New file.
	* Makefile.in: Update dependencies.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* mips-irix-tdep.c: Include "gdb_string.h", "solib.h", "solib-irix.h".
	(mips_irix_init_abi): Call set_solib_ops.
	* solib-irix.c: Include "solib.h" and "solib-irix.h".
	(irix_so_ops): Make global.
	(_initialize_irix_solib): Do not set current_target_so_ops.
	* solib-irix.h: New file.
	* Makefile.in: Update dependencies.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.tgt: Remove hppa*64*-*-hpux11* special case.
	* config/pa/hppa64.mt: Delete file.
	* config/pa/hppahpux.mt (MT_CFLAGS): Remove.
	(TDEPFILES): Move somread.o to ...
	* config/pa/hpux.mh (NATDEPFILES): ... here.

	* configure.ac: Add check for elf_hp.h header.
	Search libdl and libxpdl for dlgetmodinfo.
	* config.in, configure: Regenerate.
	* solib-pa64.c: Conditionalize compilation on #ifdef HAVE_ELF_HP_H
	instead of #ifndef PA_SOM_ONLY.  Include "solib.h".
	(pa64_solib_select): Take gdbarch instead of tdep argument.  Call
	set_solib_ops instead of modifying current_target_so_ops.
	* solib-pa64.h (pa64_solib_select): Update prototype.
	* solib-som.c: Remove include of "som.h".  Include "solib.h".
	(som_solib_select): Take gdbarch instead of tdep argument.  Call
	set_solib_ops instead of modifying current_target_so_ops.
	* solib-som.h (som_solib_select): Update prototype.
	* hppa-hpux-tdep.c (hppa_hpux_som_init_abi): Pass gdbarch instead
	of tdep to som_solib_select call.
	(hppa_hpux_elf_init_abi): Pass gdbarch instead of tdep to
	pa64_solib_select call.
	* Makefile.in: Update dependencies.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* frv-tdep.c: Include "solib.h".
	(frv_gdbarch_init): Call set_solib_ops.
	* frv-tdep.h (struct target_so_ops): Add forward reference.
	(frv_so_ops): Add extern declaration.
	* solib-frv.c (frv_so_ops): Make global.
	(_initialize_frv_solib): Do not set current_target_so_ops.
	* Makefile.in: Update dependencies.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* solib.c (solib_global_lookup): Use solib_ops instead of global
	current_target_so_ops.

2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/frv/frv.mt (DEPRECATED_TM_FILE): Remove.
	* config/frv-tm-frv.h: Delete file.

2007-10-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Mention gdbserver support for non-libthread_db operation.

2007-10-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* amd64-tdep.c (amd64_convert_register_p): Delete.
	(amd64_init_abi): Use i387_convert_register_p.
	* alpha-tdep.c (alpha_convert_register_p): Return zero for
	eight byte types.
	(alpha_register_to_value, alpha_value_to_register): Do not handle
	eight byte types.
	* i386-tdep.c (i386_convert_register_p): Use i387_convert_register_p.
	* i387-tdep.c (i387_convert_register_p): New.
	(i387_register_to_value, i387_value_to_register): Update comments.
	* i387-tdep.h (i387_convert_register_p): Declare.
	* ia64-tdep.c (ia64_convert_register_p): Return zero for
	builtin_type_ia64_ext.
	(ia64_gdbarch_init): Do not initialize builtin_type_ia64_ext here.
	(_initialize_ia64_tdep): Initialize builtin_type_ia64_ext here.
	* m68k-tdep.c (m68k_convert_register_p): Return zero for
	builtin_type_m68881_ext.
	(m68k_register_to_value, m68k_value_to_register): Update comments.

2007-10-24  Nathan Sidwell  <nathan@codesourcery.com>

	* target-memory.c (claim_memory): Propagate baton for split memory
	requests.

2007-10-24  Pedro Alves  <pedro_alves@portugalmail.pt>

	PR gdb/2341
	* sol-thread.c (sol_thread_fetch_registers): Work around gcc 3.4
	alias warning bug.

2007-10-24  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>

	* symtab.c (find_line_symtab): scan through psymtabs
	when exact_match is zero.

2007-10-23  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>

	* mips-tdep.c (LL_OPCODE, LLD_OPCODE, SC_OPCODE, SCD_OPCODE): Define.
	(deal_with_atomic_sequence): New.
	(mips_software_single_step): Use it.

2007-10-23  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/2336
	* configure.ac: Modify $LIBINTL before the BFD check.
	* configure: Regenerated.

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

	* buildsym.c (free_pending_blocks): Remove commented-out code.
	(make_blockvector): Likewise. Re-use free_pending_blocks.
	(end_symtab): Remove commented-out code.

2007-10-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* top.c (command_loop): Fix output for shrinkage.

2007-10-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* cp-name-parser.y (exp1): Add & ( var ) as a reference expression.
	(exp): Remove and document function-like casts.

2007-10-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* cp-support.c: Include "safe-ctype.h".
	(cp_already_canonical): New function.
	(cp_canonicalize_string): Use it.  Return NULL for already canonical
	strings.
	(mangled_name_to_comp): Update call to cp_demangled_name_to_comp.
	(cp_func_name, remove_params): Likewise.
	(cp_find_first_component_aux): Use ISSPACE.
	* cp-support.h (cp_demangled_name_to_comp): Correct comment.  Remove
	MEMORY_P argument.
	* cp-name-parser.y (ALLOC_CHUNK): Define.
	(struct demangle_info): Add PREV and NEXT.  Increase the size of
	COMPS.
	(d_grab): Convert to a function.
	(allocate_info): Rewrite.
	(cp_demangled_name_to_comp): Remove MEMORY argument.  Do not use
	strlen.  Update call to allocate_info.  Do not free it on failure.
	(main): Update calls to cp_demangled_name_to_comp.
	* Makefile.in (cp-support.o): Update.

2007-10-22  Markus Deuling  <deuling@de.ibm.com>

	* std-regs.c (value_of_builtin_frame_fp_reg)
	value_of_builtin_frame_pc_reg, value_of_builtin_frame_sp_reg)
	value_of_builtin_frame_ps_reg): Use get_frame_arch to get at the
	current architecture by frame_info.

2007-10-22  Markus Deuling  <deuling@de.ibm.com>

	* reggroups.c (default_register_reggroup_p): Replace current_gdbarch
	by gdbarch.

2007-10-22  Markus Deuling  <deuling@de.ibm.com>

	* infcmd.c (default_print_registers_info, print_return_value)
	(print_vector_info, print_float_info): Replace current_gdbarch by
	gdbarch.
	(registers_info): Use get_frame_arch to get at the current 
	architecture by frame_info.

2007-10-22  Markus Deuling  <deuling@de.ibm.com>

	* i387-tdep.c (i387_collect_fsave, i387_collect_fxsave): Use
	get_regcache_arch to get at the current architecture by regcache.

2007-10-22  Markus Deuling  <deuling@de.ibm.com>

	* target.c (debug_print_register): Use get_regcache_arch to get at the
	current architecture by regcache. 

2007-10-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2read.c (read_file_scope): Add a comment.
	(dwarf2_add_field, dwarf2_add_member_fn, read_structure_type)
	(read_enumeration_type, process_enumeration_scope, read_array_type)
	(read_typedef, read_base_type, read_subrange_type)
	(read_unspecified_type): Use dwarf2_name.

2007-10-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* coffread.c (coff_symfile_finish): Call dwarf2_free_objfile.
	* dwarf2read.c (dwarf2_free_objfile): New.
	* elfread.c (elf_symfile_finish): Call dwarf2_free_objfile.
	* symfile.h (dwarf2_free_objfile): Declare.

2007-10-21  Joel Brobecker  <brobecker@adacore.com>

	* hppa-hpux-nat.c (hppa_hpux_store_register): Add missing semi-colon.

2007-10-21  Luis Machado  <luisgpm@br.ibm.com>

	* rs6000-tdep.c (ppc_dwarf2_frame_init_reg): New function.
	* (rs6000_gdbarch_init): Install ppc_dwarf2_frame_init_reg as
	default dwarf2_frame_set_init_reg function.
		
2007-10-21  Pedro Alves  <pedro_alves@portugalmail.pt>

	* NEWS: Mention native MinGW configuration.

2007-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh: Remove "macro" column of input table.  Remove handling
	of "macro" column throughout the file.  Remove (empty) "macro" entry
	of all gdbarch functions.

2007-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (sofun_address_maybe_missing): New gdbarch variable.
	* gdbarch.c, gdbarch.h: Regenerate.
	* dbxread.c (find_stab_function_addr): Define unconditionally.
	(read_dbx_symtab): Use gdbarch_sofun_address_maybe_missing
	instead of SOFUN_ADDRESS_MAYBE_MISSING.
	(end_psymtab): Likewise.
	(process_one_symbol): Likewise.
	* mdebugread.c (parse_partial_symbols): Likewise.

	* symtab.h (struct minimal_symbol): Always define "filename" member.
	* elfread.c (elf_symtab_read): Use msym->filename unconditionally.
	* minsyms.c (lookup_minimal_symbol): Likewise.
	* symmisc.c (dump_msymbols): Likewise.

	* config/i386/i386sol2.mt (DEPRECATED_TM_FILE): Remove.
	* config/i386/linux.mt (DEPRECATED_TM_FILE): Remove.
	* config/i386/tm-i386sol2.h: Remove file.
	* config/i386/tm-linux.h: Remove file.
	* i386-linux-tdep.c (i386_linux_init_abi): Add call to
	set_gdbarch_sofun_address_maybe_missing.
	* i386-sol2-tdep.c (i386_sol2_init_abi): Likewise.

	* config/powerpc/linux.mt (DEPRECATED_TM_FILE): Remove.
	* config/powerpc/nbsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/powerpc/obsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/powerpc/ppc-eabi.mt (DEPRECATED_TM_FILE): Remove.
	* config/powerpc/ppc-sim.mt (DEPRECATED_TM_FILE): Remove.
	* config/powerpc/tm-ppc-eabi.h: Remove file.
	* rs6000-tdep.c (rs6000_gdbarch_init): Add call to
	set_gdbarch_sofun_address_maybe_missing.

	* config/sparc/sol2-64.mt (DEPRECATED_TM_FILE): Remove.
	* config/sparc/sol2.mt (DEPRECATED_TM_FILE): Remove.
	* config/sparc/tm-sol2.h: Remove file.
	* sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Add call to
	set_gdbarch_sofun_address_maybe_missing.
	* sparc-sol2-tdep.c (sparc32_sol2_init_abi): Likewise.

2007-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (static_transform_name): New gdbarch callback.
	* gdbarch.c, gdbarch.h: Regenerate.
	* dbxread.c (read_dbx_symtab): Use gdbarch_static_transform_name
	instead of STATIC_TRANSFORM_NAME.
	* mdebugread.c (parse_partial_symbols): Likewise.
	* stabsread.c (define_symbol): Likewise.
	* xcoffread.c (scan_xcoff_symtab): Likewise.

	* config/i368/tm-i386sol2.h (STATIC_TRANSFORM_NAME): Remove.
	(IS_STATIC_TRANSFORM_NAME): Remove.
	* i386-tdep.c (sunpro_static_transform_name): Remove, move to ...
	* i386-sol2-tdep.c (i386_sol2_static_transform_name): ... here.
	(i386_sol2_init_abi): Install it.

	* config/sparc/tm-sol2.h (STATIC_TRANSFORM_NAME): Remove.
	(IS_STATIC_TRANSFORM_NAME): Remove.
	* sparc-tdep.c (sparc_stabs_unglobalize_name): Remove, move to ...
	* sparc-sol2-tdep.c (sparc_sol2_static_transform_name): ... here.
	(sparc32_sol2_init_abi): Install it.
	* sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Likewise.
	* sparc-tdep.h (sparc_sol2_static_transform_name): Add prototype.

2007-10-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-tdep.c (mips_xfer_register): Take a gdbarch argument.
	(mips_n32n64_return_value, mips_o32_return_value)
	(mips_o64_return_value): Update calls to mips_xfer_register.

2007-10-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* frame.c (frame_unwind_unsigned_register): Delete.
	(frame_sp_unwind): Use frame_unwind_register_unsigned instead.
	* frame.h (frame_unwind_unsigned_register): Delete prototype.

	* alpha-linux-tdep.c, alpha-mdebug-tdep.c, alpha-tdep.c,
	avr-tdep.c, cris-tdep.c, frv-tdep.c, m68hc11-tdep.c, mn10300-tdep.c,
	mt-tdep.c: Replace frame_unwind_unsigned_register with
	frame_unwind_register_unsigned.

2007-10-16  Pedro Alves  <pedro_alves@portugalmail.pt>

	* config/i386/mingw.mh, config/i386/mingw.mt: New files.
	* configure.tgt	(i[34567]86-*-mingw32*): Set gdb_target = mingw.
	* win32-nat.c: Only include cygwin.h on Cygwin host.  Don't
	include procfs.h.
	(cygwin_load_start, cygwin_load_end, cygwin_exceptions): Disable
	if not building on Cygwin.
	(win32_make_so, handle_output_debug_string, handle_exception)
	(do_initial_win32_stuff): Wrap Cygwin specific code in __CYGWIN__.
	(win32_attach): Only fallback to Cygwin pids if building on
	Cygwin.
	(win32_pid_to_exec_file): Disable Cygwin specific code, if not
	building on Cygwin.
	(win32_create_inferior): Disable starting the inferior through a
	shell, environment var processing and tty handling if not building
	on Cygwin.
	(cygwin_pid_to_str): Rename to ...
	(win32_pid_to_str): ... this.
	(init_win32_ops): Update use of win32_pid_to_str.  Disable "shell"
	and "cygwin-exceptions" commands if not building on Cygwin.

2007-10-16  Gaius Mulley  <gaius@glam.ac.uk>

	* m2-valprint.c (m2_print_array_contents):  New function.
	(m2_print_unbounded_array):  New function.
	(m2_print_array_contents):  New function.
	* m2-typeprint.c (m2_unbounded_array):  New function.
	(m2_is_unbounded_array):  New function.
	(m2_print_type):  Test for unbounded array when walking
	across structs.
	* m2-lang.h:  Added extern m2_is_unbounded_array.
	* m2-lang.c (evaluate_subexp_modula2):  New function.
	(exp_descriptor_modula2):  New structure.
	(m2_language_defn):  Use exp_descriptor_modula2.
	* m2-exp.y:  Added TSIZE and binary subscript.

2007-10-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* mi/mi-main.c (captured_mi_execute_command): Clear mi_error_message
	after freeing it.

2007-10-16  Kevin Buettner  <kevinb@redhat.com>

	* m32r-tdep.c (decode_prologue): Sign extend offset for
	"addi sp, xx" case.
	(m32r_frame_unwind_cache): Likewise.

2007-10-15  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* rs6000-tdep.c (skip_prologue): Restore comment with
	function description to its proper place.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Mention gdbserver PowerPC improvements.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* features/Makefile (WHICH): Add PowerPC register definitions.
	(rs6000/powerpc-32-expedite, rs6000/powerpc-e500-expedite)
	(rs6000/powerpc-64-expedite): New macros.
	($(outdir)/%.dat): Handle subdirectories.
	* regformats/rs6000/powerpc-32.dat, regformats/rs6000/powerpc-64.dat,
	regformats/rs6000/powerpc-e500.dat: New generated files.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* ppc-linux-nat.c (ppc_linux_read_description): New.
	(_initialize_ppc_linux_nat): Set to_read_description.
	* ppc-tdep.h (tdesc_powerpc_e500): Declare.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Document target described register support for PowerPC.
	* ppc-tdep.h: Remove ppc_spr constants.
	(struct gdbarch_tdep): Remove regs, ppc_sr0_regnum, and
	ppc_builtin_type_vec128 members.
	(PPC_R0_REGNUM, PPC_F0_REGNUM, PPC_PC_REGNUM, PPC_MSR_REGNUM)
	(PPC_CR_REGNUM, PPC_LR_REGNUM, PPC_CTR_REGNUM, PPC_XER_REGNUM)
	(PPC_FPSCR_REGNUM, PPC_MQ_REGNUM, PPC_SPE_UPPER_GP0_REGNUM)
	(PPC_SPE_ACC_REGNUM, PPC_SPE_FSCR_REGNUM, PPC_VR0_REGNUM)
	(PPC_VSCR_REGNUM, PPC_VRSAVE_REGNUM, PPC_NUM_REGS): New constants.
	* rs6000-tdep.c: Include preparsed descriptions.
	(init_sim_regno_table): Do not iterate over pseudo registers.
	Look up segment registers by name.  Use sim_spr_register_name
	for SPRs.
	(rs6000_register_sim_regno): Call init_sim_regno_table here.
	(rs6000_builtin_type_vec128): Delete.
	(rs6000_register_name): Only handle SPE pseudo registers and upper
	halves.  Call tdesc_register_name for everything else.
	(rs6000_register_type): Delete.  Replace with...
	(rs6000_pseudo_register_type): ...this new function.  Only handle
	SPE pseudo registers.
	(rs6000_register_reggroup_p): Delete.  Replace with...
	(rs6000_pseudo_register_reggroup_p): ...this new function.  Only
	handle SPE pseudo registers.
	(rs6000_convert_register_p): Use ppc_fp0_regnum instead of
	"struct reg".
	(rs6000_register_to_value, rs6000_value_to_register): Remove check
	of reg->fpr.
	(e500_register_reggroup_p): Delete.
	(STR, R, R4, R8, R16, F, P8, R32, R64, R0, A4, S, S4, SN4, S64)
	(COMMON_UISA_REGS, PPC_UISA_SPRS, PPC_UISA_NOFP_SPRS)
	(PPC_SEGMENT_REGS, PPC_OEA_SPRS, PPC_ALTIVEC_REGS, PPC_SPE_GP_REGS)
	(PPC_SPE_UPPER_GP_REGS, PPC_EV_PSEUDO_REGS): Delete macros.
	(registers_powerpc, registers_403, registers_403GC, registers_505)
	(registers_860, registers_601, registers_602, registers_603)
	(registers_604, registers_750, registers_7400, registers_e500): Delete
	variables.
	(struct variant): Delete nregs, npregs, num_tot_regs, and regs.  Add
	tdesc.
	(tot_num_registers, num_registers, num_pseudo_registers): Delete.
	(variants): Delete outdated comment.  Use standard target descriptions
	instead of "struct reg" arrays.
	(init_variants): Delete.
	(rs6000_gdbarch_init): Do not guess word size from the BFD
	architecture if we have a target description.  Select a variant
	before creating a new architecture.  Use the variant's target
	description if the target did not define a register layout.
	Validate target-supplied registers.  Reject mismatches.  Use
	fixed register numbers and new constants instead of magic
	numbers.  Call set_gdbarch_ps_regnum.  Call tdesc_use_registers.
	(_initialize_rs6000_tdep): Initialize the preparsed target
	descriptions.
	* target-descriptions.c (tdesc_predefined_types): Add int128 and
	uint128.
	(tdesc_find_register_early): New function.
	(tdesc_numbered_register): Use it.
	(tdesc_register_size): New function.
	(tdesc_use_registers): Take a target_desc argument.  Do not use
	gdbarch_target_desc.
	* target-descriptions.h (tdesc_use_registers): Update prototype
	and comment.
	(tdesc_register_size): New prototype.
	* Makefile.in (powerpc_32_c, powerpc_403_c, powerpc_403gc_c)
	(powerpc_505_c, powerpc_601_c, powerpc_602_c, powerpc_603_c)
	(powerpc_604_c, powerpc_64_c, powerpc_7400_c, powerpc_750_c)
	(powerpc_860_c, powerpc_e500_c, rs6000_c): New macros.
	(rs6000-tdep.o): Update.
	* arm-tdep.c (arm_gdbarch_init): Update call to tdesc_use_registers.
	* m68k-tdep.c (m68k_gdbarch_init): Likewise.
	* mips-tdep.c (mips_gdbarch_init): Likewise.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* features/rs6000/powerpc-32.c, features/rs6000/powerpc-403.c,
	features/rs6000/powerpc-403gc.c, features/rs6000/powerpc-505.c,
	features/rs6000/powerpc-601.c, features/rs6000/powerpc-602.c,
	features/rs6000/powerpc-603.c, features/rs6000/powerpc-604.c,
	features/rs6000/powerpc-64.c, features/rs6000/powerpc-7400.c,
	features/rs6000/powerpc-750.c, features/rs6000/powerpc-860.c,
	features/rs6000/powerpc-e500.c,	features/rs6000/rs6000.c: New
	generated files.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* features/rs6000/power-altivec.xml, features/rs6000/power-core.xml,
	features/rs6000/power-fpu.xml, features/rs6000/power-oea.xml,
	features/rs6000/power-spe.xml, features/rs6000/power64-core.xml: New
	feature descriptions for standard PowerPC register sets.

	* features/rs6000/powerpc-32.xml, features/rs6000/powerpc-403.xml,
	features/rs6000/powerpc-403gc.xml, features/rs6000/powerpc-505.xml,
	features/rs6000/powerpc-601.xml, features/rs6000/powerpc-602.xml,
	features/rs6000/powerpc-603.xml, features/rs6000/powerpc-604.xml,
	features/rs6000/powerpc-64.xml, features/rs6000/powerpc-7400.xml,
	features/rs6000/powerpc-750.xml, features/rs6000/powerpc-860.xml,
	features/rs6000/powerpc-e500.xml, features/rs6000/rs6000.xml: New
	target descriptions for PowerPC processors.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* target-descriptions.c (tdesc_predefined_types): New.
	(tdesc_named_type): Use it.
	(tdesc_type_id, maint_print_c_tdesc_cmd): New functions.
	(_intialize_target_descriptions): Register "maint print c-tdesc".
	* features/Makefile (XMLTOC, CFILES, GDB): New macros.
	(cfiles, %.c): New rules.
	* features/arm-with-iwmmxt.c, features/mips-linux.c,
	features/mips64-linux.c: New generated files.

	* arm-linux-nat.c: Include preparsed description instead of
	"xml-support.h".
	(super_xfer_partial, arm_linux_xfer_partial): Remove.
	(arm_linux_read_description): New function.
	(_initialize_arm_linux_nat): Set to_read_description instead of
	to_xfer_partial.  Initialize preparsed description.
	* config/arm/linux.mh (TDEP_XML): Delete.
	* mips-linux-nat.c: Include preparsed descriptions instead of
	"xml-support.h".
	(super_xfer_partial, mips_linux_xfer_partial): Remove.
	(mips_linux_read_description): New function.
	(_initialize_mips_linux_nat): Set to_read_description instead of
	to_xfer_partial.  Initialize preparsed description.
	* config/mips/linux.mh (TDEP_XML): Delete.
	* Makefile.in (XMLFILES): Remove $(TDEP_XML).
	(features_headers, arm_with_iwmmxt_c, mips_linux_c)
	(mips64_linux_c): New macros.
	(arm-linux-nat.o, mips-linux-nat.o): Update.

2007-10-15  Pierre Muller  <muller@ics.u-strasbg.fr>

	* cp-abi.c (set_cp_abi_as_auto_default): ARI fix:
	Replace xasprintf by xstrprintf.
	symfile-mem.c (add_vsyscall_page): Ditto.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* ia64-linux-nat.c (ia64_register_addr): Add gdbarch parameter,
	replacing use of global current_gdbarch.
	(ia64_cannot_fetch_register, ia64_cannot_store_register): Likewise.
	(ia64_linux_fetch_register, ia64_linux_store_register): Update callers.

	* ia64-tdep.c (SIGCONTEXT_REGISTER_ADDRESS): Remove macro.
	(ia64_sigtramp_frame_init_saved_regs): Add next_frame parameter,
	replace uses of SIGCONTEXT_REGISTER_ADDRESS.
	(ia64_sigtramp_frame_cache): Update caller.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (deprecated_use_struct_convention): Remove.
	(extract_return_value, store_return_value): Remove.
	(return_value): Remove default implementation.
	* gdbarch.c, gdbarch.h: Regenerate.

	* stack.c (return_command): Remove compatibility hack.
	* arch-utils.c (legacy_return_value): Remove.
	* arch-utils.h (legacy_return_value): Likewise.

	* arch-utils.c (always_use_struct_convention): Remove.
	* arch-utils.h (always_use_struct_convention): Likewise.
	* value.c (generic_use_struct_convention): Remove.
	* defs.h (generic_use_struct_convention): Likewise.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* avr-tdep.c (avr_return_value): New function.
	(avr_gdbarch_init): Call set_gdbarch_return_value instead of
	set_gdbarch_extract_return_value.

	* fvr-tdep.c (frv_return_value): New function.
	(frv_gdbarch_init): Call set_gdbarch_return_value instead of
	set_gdbarch_extract_return_value, set_gdbarch_store_return_value,
	and set_gdbarch_deprecated_use_struct_convention.

	* ia64-tdep.c (ia64_use_struct_convention): Make static.
	Add check for structure, union, or array types.
	(ia64_extract_return_value): Make static.
	(ia64_store_return_value): Make static.  Support multi-word values.
	(ia64_return_value): New function.
	(ia64_gdbarch_init): Call set_gdbarch_return_value instead of
	set_gdbarch_extract_return_value, set_gdbarch_store_return_value,
	and set_gdbarch_deprecated_use_struct_convention.

2007-10-12  Joel Brobecker  <brobecker@adacore.com>

	* solib-target.c (solib_target_parse_libraries)
	[HAVEHAVE_LIBEXPAT not defined]: Fix thinko in return type.

2007-10-12  Jim Blandy  <jimb@codesourcery.com>

	* serial.h (struct serial_ops): Document read_prim to return zero
	at EOF.
	* ser-base.c (do_ser_base_readchar): Return SERIAL_EOF when
	read_prim returns zero, not SERIAL_TIMEOUT.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* alpha-mdebug-tdep.c: Include "gdb_string.h".
	(find_proc_desc): Add fix-up code for setjmp procedure descriptor.
	* mdebugread.c (parse_procedure): Remove setjmp fix-up code.
	* Makefile.in (alpha-mdebug-tdep.o): Update dependencies.

	* config/alpha/alpha.mt (DEPRECATED_TM_FILE): Remove.
	* config/alpha/alpha-linux.mt (DEPRECATED_TM_FILE): Remove.
	* config/alpha/alpha-osf1.mt (DEPRECATED_TM_FILE): Remove.
	* config/alpha/fbsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/alpha/tm-alpha.h: Remove file.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* breakpoint.c (breakpoint_sals_to_pc): Do not check for
	DEPRECATED_PC_REQUIRES_RUN_BEFORE_USE.

	* config/pa/tm-hppa.h: Delete file.
	* config/pa/hppa64.mt: Do not set DEPRECATED_TM_FILE.
	* config/pa/hppahpux.mt: Likewise.
	* config/pa/hppa.mt: Likewise.
	* config/pa/linux.mt: Likewise.
	* hppa-tdep.c (hppa_pc_requires_run_before_use): Delete.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/arm/nm-nbsdaout.h: Remove file.
	* config/nm-nbsdaout.h: Likewise.
	* config/nm-nbsd.h: Likewise.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* block.h (struct block): Remove "gcc_compile_flag" member.
	(BLOCK_GCC_COMPILED): Remove.
	* block.c (allocate_block): Do not clear BLOCK_GCC_COMPILED.
	* buildsym.c (finish_block): Do not set it.
	* symmisc.c (dump_symtab_1): Do not dump it.

	* value.h (using_struct_return): Remove "gcc_p" argument.
	* value.c (using_struct_return): Likewise.
	* eval.c (evaluate_subexp_standard): Adapt callers.
	* infcall.c (call_function_by_hand): Likewise.
	* stack.c (return_command): Likewise.
	* sparc-tdep.c (sparc32_push_dummy_code): Likewise.

	* gdbarch.sh (push_dummy_code): Remove "using_gcc" parameter.
	* gdbarch.c, gdbarch.h: Regenerate.
	* cris-tdep.c (cris_push_dummy_code): Adapt prototype.
	* hppa-hpux-tdep.c (hppa_hpux_push_dummy_code): Likewise.
	* sparc-tdep.c (sparc32_push_dummy_code): Likewise.
	* infcall.c (generic_push_dummy_code, push_dummy_code): Likewise.
	(push_dummy_code, call_function_by_hand): Adapt callers.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* infcmd.c (print_return_value): Remove STRUCT_RETURN argument.
	(finish_command_continuation, finish_command): Adapt callers.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* infcall.c (call_function_by_hand): Remove special handling
	for HP aCC compiled code.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* cris-tdep.c (cris_push_dummy_call): Support arguments passed by
	reference.  Fix endianness bugs.
	(cris_reg_struct_has_address): Remove.
	(cris_gdbarch_init): Remove set_gdbarch_deprecated_reg_struct_has_addr
	and set_gdbarch_deprecated_use_struct_convention calls.

	* gdbarch.sh (deprecated_reg_struct_has_addr): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.
	* infcall.c (call_function_by_hand): Remove handling of
	deprecated_reg_struct_has_addr.

2007-10-11  Daniel Jacobowitz  <dan@codesourcery.com>
	    Kazu Hirata  <kazu@codesourcery.com>

	* breakpoint.c (do_enable_breakpoint): Delay enabling until after
	checking watchpoint resources.

2007-10-11  Kazu Hirata  <kazu@codesourcery.com>

	* memattr.c (inaccessible_by_default): Change the initial
	value to 1.

2007-10-11  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/2280
	* coffread.c (read_one_sym): Check for read errors.

2007-10-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* linux-nat.c (lin_lwp_attach_lwp): Use "Linux kernel 2.6.19"
	instead of "Linux 2.6.19" in comment.
	(linux_xfer_partial): Use "GNU/Linux target" instead of 
	"Linux target" in comment.
	* m68klinux-tdep.c (m68k_linux_inferior_created): Likewise.
	(m68k_linux_get_sigtramp_info): Likewise.

2007-10-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* MAINTAINERS (language support): List Joel and Paul as
	Ada maintainers.

2007-10-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* dbxread.c (process_one_symbol): Remove VARIABLES_INSIDE_BLOCK
	checks.
	* config/arm/embed.mt, config/arm/linux.mt, config/arm/wince.mt: Do
	not set DEPRECATED_TM_FILE.
	* config/arm/tm-arm.h: Delete file.

2007-10-11  Luis Machado  <luisgpm@br.ibm.com>

	* MAINTAINERS (Write After Approval): Add self.

2007-10-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* buildsym.c (record_line): Remove empty lines followed by
	end-of-sequence markers.

2007-10-11  Kazu Hirata  <kazu@codesourcery.com>

	* configure.tgt: Recognize fido-*-elf.

2007-10-10  Joel Brobecker  <brobecker@adacore.com>

	GDB 6.7 released.

2007-10-10  Markus Deuling  <deuling@de.ibm.com>

	* stack.c (print_frame_args, frame_info, return_command): Use
	get_regcache_arch or get_frame_arch to get at the current architecture
	by regcache or by frame, respectively.

2007-10-10  Markus Deuling  <deuling@de.ibm.com>

	* rs6000-nat.c (fetch_register, store_register)
	(rs6000_fetch_inferior_registers, rs6000_store_inferior_registers): Use
	get_regcache_arch to get at the current architecture by regcache.

	* rs6000-tdep.c (rs6000_push_dummy_call, rs6000_return_value)
	(rs6000_register_reggroup_p, e500_move_ev_registe, rs6000_unwind_pc)
	(rs6000_unwind_dummy_id, rs6000_frame_cache, rs6000_dump_tdep): Replace
	current_gdbarch by gdbarch.
	(rs6000_skip_trampoline_code, rs6000_register_to_value)
	(rs6000_value_to_register): Use get_frame_arch to get at the current
	architecture by frame_info.

2007-10-10  Markus Deuling  <deuling@de.ibm.com>

	* sparc-tdep.c (sparc_supply_rwindow, sparc_collect_rwindow): Use
	get_regcache_arch to get at the current architecture by regcache.

	* sparc64-tdep.c (sparc64_supply_gregset, sparc64_collect_gregset)
	(sparc64_supply_fpregset, sparc64_collect_fpregset): Use
	get_regcache_arch to get at the current architecture by regcache.

	* sparc64nbsd-nat. (sparc64nbsd_supply_gregset)
	(sparc64nbsd_collect_gregset, sparc64nbsd_supply_fpregset)
	(sparc64nbsd_collect_fpregset): Use get_regcache_arch to get at the
	current architecture by regcache.

2007-10-10  Markus Deuling  <deuling@de.ibm.com>

	* remote-mips.c (mips_wait, mips_fetch_registers)
	(mips_store_registers): Use get_regcache_arch to get at the
	current architecture by regcache.

	* mipsnbsd-tdep.c (mipsnbsd_supply_reg, mipsnbsd_fill_reg)
	(mipsnbsd_supply_fpreg, mipsnbsd_fill_fpreg): Use get_regcache_arch to
	get at the current architecture by regcache.
	(mipsnbsd_sigtramp_offset): Use get_frame_arch to get at the current
	architecture by frame_info.

	* mipsnbsd-nat.c (mipsnbsd_fetch_inferior_registers)
	(mipsnbsd_store_inferior_registers): Use get_regcache_arch to get at
	the current architecture by regcache.

	* mips-linux-tdep.c (mips_linux_get_longjmp_target)
	(mips64_linux_get_longjmp_target, mips_linux_o32_sigframe_init)
	(mips_linux_n32n64_sigframe_init): Use get_frame_arch to get at the
	current architecture by frame_info.
	(supply_32bit_reg, mips_supply_gregset, mips_fill_gregset)
	(mips_supply_fpregset, mips_fill_fpregset, supply_64bit_reg)
	(mips64_supply_gregset, mips64_fill_gregset, mips64_supply_fpregset)
	(mips64_fill_fpregset, mips_linux_write_pc): Use get_regcache_arch to
	get at the current architecture by regcache.

	* mips-linux-nat.c (mips_linux_register_addr)
	(mips64_linux_register_addr): Replace current_gdbarch by gdbarch.
	(supply_gregset, fill_gregset, supply_fpregset, fill_fpregset)
	(mips64_linux_regsets_fetch_registers)
	(mips64_linux_regsets_store_registers): Use get_regcache_arch to get at
	the current architecture by regcache.

	* mips64obsd-tdep.c (mips64obsd_sigframe_init): Use get_frame_arch to
	get at the current architecture by frame_info.

2007-10-10  Markus Deuling  <deuling@de.ibm.com>

	* mips-tdep.c (mips_xfer_register): Use get_regcache_arch to get at the
	current architecture by regcache.
	(mips2_fp_compat, mips32_next_pc, mips16_scan_prologue)
	(mips_insn16_frame_cache, mips32_scan_prologue, mips_insn32_frame_cache)
	(mips_stub_frame_cache, mips_read_fp_register_single)
	(mips_read_fp_register_double, mips_print_fp_register)
	(mips_print_register, print_gp_register_row): Use get_frame_arch to get
	at the current architecture by frame_info.
	(mips_register_reggroup_p, mips_pseudo_register_read, mips_unwind_sp)
	(mips_pseudo_register_write, mips_register_type, mips_unwind_pc)
	(mips_unwind_dummy_id, mips_eabi_push_dummy_call)
	(mips_n32n64_push_dummy_call, mips_n32n64_return_value)
	(mips_o32_push_dummy_call, mips_o32_return_value)
	(mips_o64_push_dummy_call, mips_o64_return_value)
	(mips_print_registers_info, mips_dump_tdep): Replace current_gdbarch by
	gdbarch.

2007-10-10  Markus Deuling  <deuling@de.ibm.com>

	* xtensa-tdep.c (xtensa_register_type, xtensa_pseudo_register_read)
	(xtensa_pseudo_register_write, xtensa_register_reggroup_p)
	(xtensa_unwind_pc, xtensa_unwind_dummy_id, xtensa_push_dummy_call)
	(xtensa_dump_tdep): Replace current_gdbarch by gdbarch.
	(xtensa_register_write_masked, xtensa_register_read_masked)
	(xtensa_supply_gregset, xtensa_store_return_value)
	(xtensa_extract_return_value): Use get_regcache_arch to get at the
	current architecture by regcache.
	(xtensa_frame_cache, call0_frame_get_reg_at_entry, call0_frame_cache)
	(xtensa_frame_prev_register): Use get_frame_arch to get at the current
	architecture by frame_info.

2007-10-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (struct arm_prologue_cache): Remove frameoffset.
	(thumb_analyze_prologue): Move pv_area_store_would_trash call
	out of loop.  Do not set cache->frameoffset.
	(arm_scan_prologue): Use prologue-value mechanism.  Do not set
	frameoffset.  Simplify framesize.
	(arm_make_prologue_cache, arm_normal_frame_base): Do not use
	frameoffset.
	* arm-tdep.h (enum gdb_regnum): Add ARM_IP_REGNUM.

2007-10-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* target.c (update_current_target): Call setup_target_debug.
	(push_target): Do not call it here.

2007-10-09  Michael Snyder  <msnyder@specifix.com>

	* MAINTAINERS: Update my email address.

2007-10-09  Markus Deuling  <deuling@de.ibm.com>

	* xtensa-tdep.c: Replace following current-gdbarch based macros by
	their expression:
	(xtensa_pseudo_register_read)
	(xtensa_pseudo_register_write): XTENSA_TARGET_FLAGS.
	(ARG_NOF, ARG_1ST, xtensa_extract_return_value)
	(xtensa_store_return_value, xtensa_push_dummy_call): CALL_ABI.
	(xtensa_pseudo_register_read)
	(xtensa_pseudo_register_write): ISA_USE_WINDOWED_REGISTERS.
	(xtensa_breakpoint_from_pc): ISA_USE_DENSITY_INSTRUCTIONS.
	(xtensa_register_type, xtensa_supply_gregset, xtensa_frame_cache)
	(xtensa_frame_prev_register): NUM_AREGS.
	(xtensa_pseudo_register_read, xtensa_pseudo_register_write,
	(xtensa_supply_gregset, xtensa_frame_cache, xtensa_frame_prev_register,
	(xtensa_extract_return_value, xtensa_store_return_value): WB_REGNUM.
	(xtensa_supply_gregset, xtensa_frame_cache)
	(xtensa_frame_prev_register): WS_REGNUM.
	(xtensa_supply_gregset): LBEG_REGNUM, LEND_REGNUM, LCOUNT_REGNUM,
	SAR_REGNUM, EXCCAUSE_REGNUM, EXCVADDR_REGNUM
	(xtensa_register_name, xtensa_register_type, xtensa_reg_to_regnum)
	(xtensa_pseudo_register_read, xtensa_pseudo_register_write)
	(xtensa_register_reggroup_p): REGMAP.
	(call0_track_op): LITBASE_REGNUM.
	(xtensa_register_type, xtensa_reg_to_regnum, call0_frame_cache):A0_BASE
	(xtensa_supply_gregset, call0_frame_get_reg_at_entry)
	(xtensa_frame_prev_register, AREG_NUMBER)
	(xtensa_register_type): AR_BASE.
	(xtensa_pseudo_register_read, xtensa_pseudo_register_write): FP_ALIAS.
	(AREG_NUMBER): AREGS_MASK, WB_MASK, A0_REGNUM.
	(ARG_1ST, xtensa_pseudo_register_read, xtensa_pseudo_register_write)
	(xtensa_frame_cache, xtensa_frame_prev_register)
	(xtensa_extract_return_value, xtensa_store_return_value)
	(xtensa_push_dummy_call, call0_frame_cache): A0_REGNUM.
	(xtensa_register_type, xtensa_pseudo_register_read, xtensa_frame_cache)
	(xtensa_pseudo_register_write, xtensa_unwind_dummy_id)
	(xtensa_frame_prev_register, xtensa_push_dummy_call)
	(call0_frame_cache): A1_REGNUM.
	(xtensa_extract_return_value, xtensa_store_return_value): A2_REGNUM.
	(xtensa_push_dummy_call): A4_REGNUM.
	(ARGS_FIRST_REG): A6_REGNUM.
	(xtensa_pseudo_register_read, xtensa_pseudo_register_write)
	(xtensa_frame_prev_register): A15_REGNUM.
	* xtensa-tdep.h: Delete current_gdbarch based macros after replacing
	them in the appropriate source file:
	XTENSA_TARGET_FLAGS, SPILL_LOCATION, SPILL_SIZE, CALL_ABI, NUM_AREGS,
	ISA_USE_WINDOWED_REGISTERS, ISA_USE_DENSITY_INSTRUCTIONS, WB_REGNUM,
	ISA_USE_EXCEPTIONS, ISA_USE_EXT_L32R, DEBUG_DATA_VADDR_TRAP_COUNT,
	DEBUG_INST_VADDR_TRAP_COUNT, ISA_MAX_INSN_SIZE, DEBUG_NUM_IBREAKS,
	DEBUG_NUM_DBREAKS, WS_REGNUM, LBEG_REGNUM, LEND_REGNUM, SAR_REGNUM,
	REGMAP, LITBASE_REGNUM, DEBUGCAUSE_REGNUM, EXCCAUSE_REGNUM, AR_BASE,
	EXCVADDR_REGNUM, NUM_IBREAKS, REGMAP_BYTES, NUM_CONTEXTS, FP_ALIAS,
	FP_LAYOUT, FP_LAYOUT_BYTES, GREGMAP, AREGS_MASK, WB_MASK, A0_REGNUM,
	A1_REGNUM, A2_REGNUM, A3_REGNUM, A4_REGNUM, A5_REGNUM, A6_REGNUM,
	A7_REGNUM, A8_REGNUM, A9_REGNUM, A10_REGNUM, A11_REGNUM, A12_REGNUM,
	A13_REGNUM, A14_REGNUM, A15_REGNUM.

2007-10-09  Markus Deuling  <deuling@de.ibm.com>

	* h8300-tdep.c (h8300_frame_cache): Use get_frame_arch to get at
	the current architecture by frame_info.
	(h8300_frame_prev_register
	(h8300_print_register): Replace current_gdbarch by gdbarch.
	(h8300_print_registers_info, h8300_register_type)
	(h8300_register_type): Likewise.

2007-10-09  Markus Deuling  <deuling@de.ibm.com>

	* i386-linux-nat.c (fetch_register): Use get_regcache_arch to get at
	the current architecture by regcache.
	(store_register, supply_gregset, fill_gregset, i386_linux_resume)
	(i386_linux_fetch_inferior_registers)
	(i386_linux_store_inferior_registers): Likewise.
	* i386gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Likewise.
	* i386-nto-tdep.c (i386nto_supply_gregset): Likewise.
	* i386v4-nat.c (supply_fpregset, fill_fpregset): Likewise.
	* i386-tdep.c (i386_unwind_pc): Replace current_gdbarch by gdbarch.
	(i386_extract_return_value, i386_store_return_value): Likewise.
	* i386-tdep.c (i386_frame_prev_register): Use get_frame_arch to get at
	the current architecture by frame_info.
	(i386_sigtramp_frame_cache, i386_get_longjmp_target)
	(i386_register_to_value, i386_value_to_register): Likewise.

2007-10-09  Markus Deuling  <deuling@de.ibm.com>

	* monitor.c (monitor_supply_register): Use get_regcache_arch to get at
	the current architecture by regcache.
	(monitor_store_register, monitor_store_registers): Likewise.

2007-10-09  Markus Deuling  <deuling@de.ibm.com>

	* dbug-rom.c (dbug_supply_register): Use get_regcache_arch to get at
	the current architecture by regcache.

2007-10-09  Markus Deuling  <deuling@de.ibm.com>

	* arch-utils.c (legacy_return_value): Replace current_gdbarch by
	gdbarch.

2007-10-09  Markus Deuling  <deuling@de.ibm.com>

	* frame.c (frame_pc_unwind): Use get_frame_arch to get at the current
	architecture by frame.
	(frame_save_as_regcache, frame_register_unwind, get_prev_frame_1)
	(inside_main_func, frame_sp_unwind): Likewise.

2007-10-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* solib-svr4.c (enable_break): Add the dynamic linker also if
	auxv succeeds.

2007-10-09  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>

	* MAINTAINERS (Write After Approval): Add self.

2007-10-09  Pedro Alves  <pedro_alves@portugalmail.pt>

	* stabsread.c (read_huge_number): Initialize local variable to 0.

2007-10-09  Pierre Muller  <muller@ics.u-strasbg.fr>

        * p-lang.h (pascal_main_name): Add declaration.
        * p-lang.c (GPC_P_INITIALIZE, GPC_MAIN_PROGRAM_NAME_1)
        (GPC_MAIN_PROGRAM_NAME_2): New constants.
        (pascal_main_name): New function.
        * symtab.c: Include p-lang.h.
        (find_main_name): Add call to pascal_main_name.
        * Makefile.in (symtab.o): Add dependency on p-lang.h.

2007-10-09  Pedro Alves  <pedro_alves@portugalmail.pt>

	* stabsread.c (read_huge_number): Fix handling of octal
	representation when the bit width is known.
	(read_range_type): Record unsigned integral types with their size,
	when the type size is known.

2007-10-08  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* MAINTAINERS (Write After Approval): Add self.

2007-10-08  Pierre Muller  <muller@ics.u-strasbg.fr>

        * breakpoint.c (print_one_breakpoint_location): ARI fix: 
	Replace asprintf by xstrprintf.

2007-10-08  Pierre Muller  <muller@ics.u-strasbg.fr>

	* linux-fork.c: ARI fix: include "gdb_dirent.h" instead of <dirent.h>.
	Makefile.in (linux-fork.o): Add gdb_dirent.h dependency. 

2007-10-08  Pierre Muller  <muller@ics.u-strasbg.fr>

	* linux-fork.c: Move "gdb_wait.h" include back to the position of
	<sys/wait.h> include before last commit.

2007-10-08  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips32_next_pc): Fix a typo in BGTZL.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* aix-thread.c (supply_gprs64, supply_fprs, supply_sprs64)
	(supply_sprs32, fetch_regs_user_thread, fetch_regs_kernel_thread)
	(fill_gprs64, fill_gprs32, fill_fprs, fill_sprs64, fill_sprs32)
	(store_regs_user_thread, store_regs_kernel_thread): Use
	get_regcache_arch or get_frame_arch to get at the current architecture
	by regcache or by frame, respectively.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* sh64-tdep.c (sh64_push_dummy_call, sh64_register_type)
	(sh64_pseudo_register_read, sh64_pseudo_register_write)
	(sh64_do_fp_register, sh64_do_pseudo_register, sh64_do_register)
	(sh64_print_register, sh64_media_print_registers_info)
	(sh64_compact_print_registers_info, sh64_unwind_sp)
	(sh64_unwind_pc): Replace current_gdbarch by gdbarch.
	(sh64_show_media_regs, sh64_show_compact_regs, sh64_frame_cache)
	(sh64_frame_prev_register): Use FRAME to recognize current
	architecture.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* sh-tdep.c (sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu)
	(sh_sh2a_register_type, sh_sh3e_register_type, sh_sh4_register_type)
	(sh_register_reggroup_p, sh_dwarf2_frame_init_reg): Replace
	current_gdbarch by gdbarch.
	(sh_generic_show_regs, sh3_show_reg, 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_frame_cache)
	(sh_frame_prev_register, sh_unwind_sp, sh_unwind_pc): Use FRAME to
	recognize current architecture.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* remote.c (init_remote_state, fetch_register_using_p)
	(process_g_packet, remote_fetch_registers, remote_prepare_to_store)
	(store_register_using_P, store_registers_using_G)
	(remote_store_registers): Use get_regcache_arch or get_frame_arch to
	get at the current architecture by regcache or by frame, respectively.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* m68k-tdep.c (m68k_register_to_value, m68k_value_to_register)
	(m68k_svr4_extract_return_value, m68k_svr4_store_return_value)
	(m68k_frame_prev_register, m68k_get_longjmp_target): Use
	get_regcache_arch or get_frame_arch to get at the current architecture
	by regcache or by frame, respectively.
	* m68klinux-tdep.c (m68k_linux_sigtramp_frame_cache): Likewise.
	* m68klinux-nat.c (fetch_register, old_fetch_inferior_registers)
	(store_register, old_store_inferior_registers, supply_gregset)
	(supply_fpregset, fill_fpregset): Likewise.
	* m68k-tdep.c (m68k_register_type, m68k_unwind_pc, m68k_dump_tdep):
	Replace current_gdbarch by gdbarch.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* irix5-nat.c (supply_gregset, fill_gregset, supply_fpregset)
	(fill_fpregset, fetch_core_registers): Use get_regcache_arch or
	get_frame_arch to get at the current architecture by regcache or by
	frame, respectively.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* ia64-tdep.c (ia64_pseudo_register_read, ia64_pseudo_register_write):
	Replace current_gdbarch by gdbarch.
	* ia64-tdep.c (ia64_frame_prev_register
	(ia64_sigtramp_frame_prev_register)
	(ia64_libunwind_frame_prev_register): Use get_regcache_arch or
	get_frame_arch to get at the current architecture by regcache or by
	frame, respectively.
	* ia64-linux-nat.c (ia64_linux_fetch_register)
	(ia64_linux_fetch_registers, ia64_linux_store_register)
	(ia64_linux_store_registers): Likewise.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* hppa-tdep.c (hppa_stub_unwind_sniffer, hppa_dump_tdep): Replace
	current_gdbarch by gdbarch.
	* hppa-linux-nat.c (fetch_register, store_register)
	(hppa_linux_fetch_inferior_registers)
	(hppa_linux_store_inferior_registers): Use get_regcache_arch or
	get_frame_arch to get at the current architecture by regcache or by
	frame, respectively.
	* hppa-hpux-tdep.c (hppa_hpux_skip_trampoline_code
	(hppa_hpux_unwind_adjust_stub): Likewise.
	* hppa-hpux-nat.c (hppa_hpux_fetch_register, hppa_hpux_store_register)
	(hppa_hpux_fetch_inferior_registers)
	(hppa_hpux_store_inferior_registers): Likewise.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* cris-tdep.c (cris_sigcontext_addr, cris_sigtramp_frame_unwind_cache)
	(cris_scan_prologue, crisv32_scan_prologue, find_step_target)
	(cris_software_single_step, cris_supply_gregset): Use get_regcache_arch
	or get_frame_arch to get at the current architecture by regcache or by
	frame, respectively.
	* cris-tdep.c (crisv32_single_step_through_delay, cris_push_dummy_call)
	(cris_unwind_pc, cris_unwind_sp, cris_register_type, cris_dump_tdep)
	(crisv32_register_type, cris_dwarf2_frame_init_reg): Replace
	current_gdbarch by gdbarch.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* arm-tdep.c (arm_scan_prologue, arm_make_prologue_cache)
	(thumb_get_next_pc, arm_get_next_pc, arm_extract_return_value)
	(arm_store_return_value): Use get_regcache_arch or get_frame_arch to
	get at the current architecture by regcache or by·frame, respectively.
	(arm_push_dummy_call, arm_dump_tdep): Replace current_gdbarch by
	gdbarch.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* amd64-tdep.c (amd64_frame_prev_register, amd64_sigtramp_frame_cache):
	Use get_regcache_arch or get_frame_arch to get at the current
	architecture by regcache or by frame, respectively.
	* amd64-linux-tdep.c (amd64_linux_sigcontext_addr): Likewise.
	* amd64-nat.c (amd64_supply_native_gregset)
	(amd64_collect_native_gregset): Replace current_gdbarch by gdbarch.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* alpha-tdep.c (alpha_register_reggroup_p): Replace current_gdbarch by
	gdbarch.
	* alpha-linux-nat.c (alpha_linux_register_u_offset): Likewise.
	(alpha_sigtramp_frame_unwind_cache, alpha_sigtramp_frame_this_id)
	(alpha_sigtramp_frame_sniffer, alpha_next_pc): Use get_regcache_arch or
	get_frame_arch to get at the current architecture by regcache or by 
	frame, respectively.
	* alpha-nat.c (fetch_osf_core_registers): Likewise.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* dwarf2-frame.c (read_reg, execute_cfa_program, dwarf2_frame_cache)
	(dwarf2_frame_default_init_reg, dwarf2_frame_prev_register): Replace
	current_gdbarch by gdbarch.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Likewise.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* regcache.c (init_regcache_descr, register_type, read_pc_pid)
	(write_pc_pid, regcache_dump): Replace current_gdbarch by gdbarch.
	* regcache.c (regcache_raw_write): Use get_regcache_arch or
	get_frame_arch to get at the current architecture by regcache or by
	frame, respectively.

2007-10-08  Markus Deuling  <deuling@de.ibm.com>

	* findvar.c (value_of_register, locate_var_value): Use
	get_regcache_arch or get_frame_arch to get at the current architecture
	by regcache or by frame, respectively.
	* findvar.c (default_value_from_register, value_from_register): Replace
	current_gdbarch by gdbarch.

2007-10-08  Pierre Muller  <muller@ics.u-strasbg.fr>

        * config/i386/nm-i386.h (CHILD_POST_STARTUP_INFERIOR): ARI fix: Remove.

2007-10-08  Pierre Muller  <muller@ics.u-strasbg.fr>

	* linux-fork.c: ARI fix: include "gdb_wait.h" instead of <sys/wait.h>.
	Makefile.in (linux-fork.o): Add gdb_wait.h dependency. 

2007-10-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* remote.c (get_offsets): Only call free_symfile_segment_data if
	data was allocated.

2007-10-03  Pierre Muller  <muller@ics.u-strasbg.fr>

	* objc-exp.y: ARI fix: remove 4 PARAMS. 

2007-10-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Use uniform spacing.  Correct version number for GDB 6.7
	news.  Mention XML support for M68K in GDB 6.7.

2007-10-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbtypes.c (create_range_type): Do not set TYPE_FIELD_TYPE for the
	bounds.
	(init_vector_type): Use builtin_type_int32.

2007-10-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* s390-tdep.c (s390_regset_from_core_section): Allow excess section
	size to enable bi-arch generate-core-file support.

2007-10-02  Markus Deuling  <deuling@de.ibm.com>

	* spu-tdep.c (info_spu_signal_command): Fix output for SPU signal.

2007-10-02  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>

	* tui/tui-interp.c (tui_init): Initialize tui's SIGWINCH
	signal handler.
	* tui/tui-win.c (tui_initialize_win): New function for
	initializing tui's SIGWINCH signal handler.
	* tui/tui-win.h (tui_initialize_win): Declare.

2007-10-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* ppc-linux-nat.c (ppc_linux_stopped_data_address): Cast
	pointer to uintptr_t before casting to CORE_ADDR.

2007-10-02  Markus Deuling  <deuling@de.ibm.com>

	* linux-nat.c (PTRACE_GETSIGINFO): Add define.

2007-10-02  Mark Mitchell  <mark@codesourcery.com>

	* mingw-hdep.c (gdb_select): Stop helper threads before returning.
	* ser-mingw.c (enum select_thread_state): New type.
	(struct ser_console_state): Add have_started and thread_state.
	(select_thread_wait): New function.
	(thread_fn_type): New type.
	(create_select_thread): New function.
	(destroy_select_thread): Likewise.
	(start_select_thread): Likewise.
	(stop_select_thread): Likewise.
	(console_select_thread): Use new functions.
	(pipe_select_thread): Likewise.
	(file_select_thread): Likewise.
	(ser_console_wait_handle): Likewise.
	(ser_console_done_wait_handle): Likewise.
	(ser_console_close): Likewise.
	(free_pipe_state): Likewise.
	(pipe_wait_handle): Likewise.
	(pipe_done_wait_handle): Likewise.
	(struct net_windows_state): Derive from ser_console_state.
	(net_windows_select_thread): Use new functions.
	(net_windows_wait_handle): Likewise.
	(net_windows_done_wait_handle): Likewise.
	(net_windows_close): Likewise.

2007-10-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* inflow.c (terminal_ours_1): Remove useless line.

2007-10-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-tdep.c (mips_read_fp_register_double): Correct check for
	odd FP registers.
	(mips_print_fp_register): Correct check for even FP registers.
	(mips_virtual_frame_pointer): New function.
	(mips_gdbarch_init): Call set_gdbarch_virtual_frame_pointer.

2007-09-30  Mike Frysinger  <vapier@gentoo.org>

	* value.h (lookup_only_internalvar): New prototype.
	(create_internalvar): Likewise.
	* value.c (lookup_only_internalvar): New function.
	(create_internalvar): Likewise.
	(lookup_internalvar): Use new lookup_only_internalvar and
	create_internalvar functions.
	* parse.c (write_dollar_variable): Look up $ symbols in internal
	table first rather than last.

2007-09-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-nat.c (linux_nat_new_thread): New variable.
	(linux_child_follow_fork): Set inferior_ptid to include LWP ID.  Use
	linux_nat_switch_fork.
	(lwp_list): Make public.
	(add_lwp): Call linux_nat_new_thread.
	(lin_lwp_attach_lwp, linux_nat_attach): Call add_lwp after stopping
	the new thread.
	(resume_callback): Clear lp->siginfo.  Remove unused variable.
	(linux_nat_resume): Assert that the LWP list is already initialized.
	Clear lp->siginfo.
	(save_siginfo): New.
	(stop_wait_callback, linux_nat_wait): Call it.
	(linux_nat_set_new_thread, linux_nat_get_siginfo): New.
	* linux-nat.h (struct lwp_info): Add siginfo.
	(lwp_list, linux_nat_set_new_thread, linux_nat_get_siginfo): Declare.
	(ALL_LWPS): Define.

	* amd64-linux-nat.c (amd64_linux_dr): New.
	(amd64_linux_dr_get): Take a PTID argument.  Correct typo.
	(amd64_linux_dr_set): Take a PTID argument.
	(amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use ALL_LWPS.
	(amd64_linux_dr_reset_addr): Use amd64_linux_dr_set_addr.
	(amd64_linux_dr_get_status): Pass inferior_ptid to amd64_linux_dr_get.
	(amd64_linux_new_thread): New.
	(_initialize_amd64_linux_nat): Call linux_nat_set_new_thread.
	* i386-linux-nat.c (i386_linux_dr): New.
	(i386_linux_dr_get, i386_linux_dr_set): Take a PTID argument.
	(i386_linux_dr_set_control, i386_linux_dr_set_addr): Use ALL_LWPS.
	(i386_linux_dr_reset_addr): Use i386_linux_dr_set_addr.
	(i386_linux_dr_get_status): Pass inferior_ptid to i386_linux_dr_get.
	(i386_linux_new_thread): New.
	(i386_linux_resume): Remove unnecessary PID check.
	(_initialize_i386_linux_nat): Call linux_nat_set_new_thread.
	* ia64-linux-nat.c (enable_watchpoints_in_psr): Take PTID argument.
	(fetch_debug_register, fetch_debug_register_pair): Delete.
	(debug_registers): New.
	(ia64_linux_insert_watchpoint, ia64_linux_remove_watchpoint): Use
	ALL_LWPS and debug_registers.
	(ia64_linux_new_thread): New.
	(ia64_linux_stopped_data_address): Use linux_nat_get_siginfo.
	(_initialize_ia64_linux_nat): Call linux_nat_set_new_thread.
	* ppc-linux-nat.c (last_stopped_data_address): Delete.
	(saved_dabr_value): New.
	(ppc_linux_insert_watchpoint, ppc_linux_remove_watchpoint): Use
	ALL_LWPS.
	(ppc_linux_new_thread): New.
	(ppc_linux_stopped_data_address): Use linux_nat_get_siginfo.
	(ppc_linux_stopped_by_watchpoint): Call ppc_linux_stopped_data_address.
	(_initialize_ppc_linux_nat): Call linux_nat_set_new_thread.
	* s390-nat.c (s390_stopped_by_watchpoint): Clear the watchpoint status
	after reading it.
	(s390_fix_watch_points): Take a PTID argument.
	(s390_insert_watchpoint, s390_remove_watchpoint): Use ALL_LWPS.
	(_initialize_s390_nat): Call linux_nat_set_new_thread.

2007-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jeff Johnston  <jjohnstn@redhat.com>

	* breakpoint.c (watchpoints_triggered): New.
	(bpstat_stop_status): Remove STOPPED_BY_WATCHPOINT argument.
	Check watchpoint_triggered instead.  Combine handling for software
	and hardware watchpoints.  Do not use target_stopped_data_address
	here.  Always check a watchpoint if its scope breakpoint triggers.
	Do not stop for thread or overlay events.  Improve check for
	triggered watchpoints without a value change.
	(watch_command_1): Insert the scope breakpoint first.  Link the
	scope breakpoint to the watchpoint.
	* breakpoint.h (enum watchpoint_triggered): New.
	(struct breakpoint): Add watchpoint_triggered.
	(bpstat_stop_status): Update prototype.
	(watchpoints_triggered): Declare.
	* infrun.c (enum infwait_status): Add infwait_step_watch_state.
	(stepped_after_stopped_by_watchpoint): Delete.
	(handle_inferior_event): Make stepped_after_stopped_by_watchpoint
	local.  Handle infwait_step_watch_state.  Update calls to
	bpstat_stop_status.  Use watchpoints_triggered to check
	watchpoints.
	* remote.c (stepped_after_stopped_by_watchpoint): Remove extern.
	(remote_stopped_data_address): Do not check it.

2007-09-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac: Add $LIBINTL when testing libbfd.
	* configure: Regenerated.

2007-09-28  Vladimir Prus  <vladimir@codesourcery.com>

	* NEW: Mention pending breakpoint changes and
	support for breakpoints at multiple locations.
	
2007-09-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-linux-tdep.c (arm_linux_software_single_step): New.
	(arm_linux_init_abi): Use it.
	* arm-tdep.c (arm_get_next_pc): Make global.  Handle all-ones
	condition correctly.
	* arm-tdep.h (arm_get_next_pc): Declare.
	* Makefile.in (arm-linux-tdep.o): Update.

2007-09-26  Vladimir Prus  <vladimir@codesourcery.com>

	* varobj.c (install_new_value): Don't
	call value_get_print_value when a value is
	lazy.  Update the print_value member in a
	single place.

2007-09-26  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (create_breakpoint): Set
	condition on each location, not on the first
	location of breakpoint.
	
2007-09-26  Jim Blandy  <jimb@codesourcery.com>

	* remote.c (getpkt_sane): Fix error message.  No animals were
	harmed in the making of this debugger.

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

	* p-typeprint.c: Fix 11 ARI reported problems.
	(pascal_print_type): Fix 4 operator at end of line.
	(pascal_type_print_method_args) : Replace 2 DEPRECATED_STREQN macros 
	using strncmp function.
	(pascal_type_print_base): Fix 2 operator at end of line.
	(pascal_type_print_base) : Replace 3 DEPRECATED_STREQN macros 
	using strncmp function.


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

	* Fix PR pascal/2231
	dwarf2read.c (read_subroutine_type): 
	All pascal functions are prototyped. 

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

	* Fix PR pascal/2283
	p-valprint.c (pascal_val_print): correct current language check.
	Also print array of char as strings.


2007-09-26  David Ung  <davidu@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_return_value): Fix a comment.

2007-09-25  Pierre Muller  <muller@ics.u-strasbg.fr>

	* p-exp.y: Fix 12 ARI reported problems.
	(name_not_typename): Fix 2 operator at end of line issues.
	(yylex): Fix 3 operator at end of line issues.
	Replace 7 DEPRECATED_STREQ macros using strcmp function.

2007-09-25  David Ung  <davidu@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_return_value): Per N32/N64 ABI
	rules return composite types in registers as appropriate.

2007-09-24  Jim Blandy  <jimb@codesourcery.com>

	* symfile.h (struct symfile_segment_data): Doc fixes.
	* symfile.c (symfile_map_offsets_to_segments): Doc fixes.
	Assert that we were passed some loaded segment addresses,
	and that sections' segment numbers are valid.
	Simplify offset calculation.
	* remote.c (get_offsets): Clarify selection of relocate-by-segment
	strategy, and set num_segments correctly.  Delete redundant
	assignments to do_sections.

2007-09-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* frame.c (get_prev_frame_1): Also check for PC in the same register.

2007-09-24  Vladimir Prus  <vladimir@codesourcery.com>
	
	* breakpoint.c (remove_sal): New.
	(expand_line_sal_maybe): New.
	(create_breakpoints): Call expand_line_sal_maybe.
	(clear_command): Add comment.
	(breakpoint_re_set_one): Call expand_line_sal_maybe.
	* linespec.c (decode_indirect): Set explicit_pc to 1.
	(decode_all_digits): Set explicit_line to 1.
	(append_expanded_sal): New.
	(expand_line_sal): New.
	* linespec.h (expand_line_sal): Declare.
	* symtab.c (init_sal): Initialize explicit_pc 
	and explicit_line.
	* symtab.h (struct symtab_and_line): New fields
	explicit_pc and explicit_line.	

2007-09-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* infcall.c (call_function_by_hand): Handle language-specific
	pass and return by reference.

	* cp-abi.c (cp_pass_by_reference): New.
	* cp-abi.h (cp_pass_by_reference): Declare.
	(struct cp_abi_ops): Add pass_by_reference.
	* gnu-v3-abi.c (gnuv3_pass_by_reference): New.
	(init_gnuv3_ops): Set pass_by_reference.

	* language.c (language_pass_by_reference): New.
	(default_pass_by_reference): New.
	(unknown_language_defn, auto_language_defn, local_language_defn): Add
	default_pass_by_reference.
	* langauge.h (struct language_defn): Add la_pass_by_reference.
	(language_pass_by_reference, default_pass_by_reference): Declare.
	* ada-lang.c (ada_language_defn): Add default_pass_by_reference.
	* c-lang.c (c_language_defn, asm_language_defn)
	(minimal_language_defn): Likewise.
	(cplus_language_defn): Add cp_pass_by_reference.
	* f-lang.c (f_language_defn): Add default_pass_by_reference.
	* jv-lang.c (java_language_defn): Likewise.
	* m2-lang.c (m2_language_defn): Likewise.
	* objc-lang.c (objc_language_defn): Likewise.
	* p-lang.c (pascal_language_defn): Likewise.
	* scm-lang.c (scm_language_defn): Likewise

2007-09-23  Vladimir Prus  <vladimir@codesourcery.com>

	Allow a code breakpoint to have several locations
	associated with it.
	* breakpoint.h (enum enable_state): Remove the
	bp_shlib_disabled enumerator. 
	(struct bp_location): New members shlib_disabled,
	global_next, enabled and function_name.
	Rename pending to condition_not_parsed.

	* breakpoint.c (ALL_BP_LOCATIONS): Iterate over global_next.
	(ALL_BP_LOCATIONS_SAFE): Likewise.
	(breakpoint_enabled): Don't check for pending.
	(condition_command): Free and update all locations of
	a breakpoint.
	(insert_bp_location): Adjust.
	(software_breakpoint_inserted_here_p): Don't care
	if breakpoint is enabled, as soon as it's inserted.
	(print_it_typical): Print bpstat's location, not
	bpstat's breakpoint's location.
	(bpstat_stop_status): Iterate over all locations, not
	all breakpoints.
	(print_breakpoint_location): New.
	(print_one_breakpoint): Renamed to
	(print_one_breakpoint_location): ...this. Take
	parameters to describe which location is being
	printed. Modify code to properly print header
	for several locations and individual locations.
	(print_one_breakpoint): Print all locations.
	(breakpoint_has_pc): New.
	(describe_other_breakpoints): Use the above.
	(check_duplicates): Renamed to...
	(check_duplicates_for): .. this.
	(check_duplicates): Use check_duplicates_for.
	(allocate_bp_location): Adjust.
	(set_raw_breakpoint_without_location): New,
	extracted from set_raw_breakpoint.
	(set_breakpoint_location_function): New.
	(set_raw_breakpoint): Use 
	set_raw_breakpoint_without_location.
	(make_breakpoint_permanent): Mark all locations
	as inserted.
	(disable_breakpoints_in_shlibs): Iterate over
	locations.
	(disable_breakpoints_in_unloaded_shlib): Likewise.
	(re_enable_breakpoints_in_shlibs): Likewise.
	(mention): Say "pending" when breakpoint has
	zero locations.  If breakpoint has more than one
	location, say so.
	(add_location_to_breakpoint): New.
	(create_breakpoint): Accept symtabs_and_lines, not
	symtab_and_line. Pass extra sals to 
	add_location_to_breakpoint.
	(create_breakpoints): Pass symtabs_and_lines to
	create_breakpoints.
	(break_command_1): Make pending breakpoints
	have zero locations.
	(do_captured_breakpoint): Remove wrong allocation.
	(clear_command): Iterate over all locations.
	(unlink_locations_from_global_list): Renamed
	from unlink_location_from_global_list. Remove
	all locations.
	(delete_breakpoint): Remove all locations.
	Iterate over all locations when deciding which
	other location to re-enable.
	(all_locations_are_pending): New.
	(update_breakpoint_locations): Renamed from
	update_breakpoint_location. Try to match old
	and new locations using names of containing
	functions.
	(breakpoint_re_set_one): Adjust.
	(find_location_by_number): New.
	(disable_command): Allow disabling individual location.
	(enable_command): Allow enabling individual location.
	* breakpoint.c: Adjust all uses of breakpoint's
	enable state to for bp_shlib_disabled change.
	
2007-09-22  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (do_restore_lang_radix_cleanup): Remove.
	(resolve_pending_breakpoint): Remove.
	(re_enable_breakpoints_in_shlibs): Remove.
	(unlink_locations_from_global_list): New.
	(update_breakpoint_locations): New.
	(breakpoint_re_set_one): Don't bail out on pending breakpoints.
	Use parse_condition and update_breakpoint_location to
	reset breakpoint.  Ignore 'symbol not found' error from
	decode_line_1.
	(breakpoint_re_set): Don't emit newline before the
	reason why breakpoint is not reset.
	(do_enable_breakpoint): Don't specially process pending
	breakpoints.
	(free_bp_location): New.
	(break_command_1): For pending breakpoints, initialize
	all fields of a sal with zeroes.
	* breakpoint.h (re_enable_breakpoints_in_shlibs): Remove.
	* infcmd.c (post_create_inferior): Don't call
	re_enable_breakpoints_in_shlibs.
	* infrun.c (handle_inferior_event): Likewise.
	* solib-irix.c (irix_solib_create_inferior_hook): Likewise.
	* solib-osf.c (osf_solib_create_inferior_hook): Likewise.
	* win32-nat.c (get_win32_debug_event): Likewise.
	
2007-09-22  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (create_breakpoint): Split from
	create_breakpoints, implementing most of its logic.
	Take just a single sal, single address string and
	single condition.  Do not take parsed condition at
	all.
	(create_breakpoints): Just call create_breakpoint
	for each sal.
	(find_condition_and_thread): New.
	(break_command_1): Use find_condition_and_thread.
	Do not keep parsed conditions.
	(do_captured_breakpoint): Don't convert
	condition string to struct expression.
	
2007-09-22  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.h (struct breakpoint): Move the cond 
	field to...
	(struct bp_location): Here.
	* breakpoint.c (condition_command, bpstat_stop_status)
	(print_one_breakpoint, allocate_bp_location)
	(solib_load_unload_1, create_fork_vfork_event_catchpoint)
	(create_exec_event_catchpoint, create_breakpoints)
	(break_command_1, watch_command_1, handle_gnu_v3_exceptions)
	(create_ada_exception_breakpoint, set_breakpoint_sal)
	(delete_breakpoint, breakpoint_re_set_one): Adjust.
	* tui/tui-winsource.c (tui_update_breakpoint_info): Adjust.
	
2007-09-22  Vladimir Prus  <vladimir@codesourcery.com>

	Associate bp_stat with bp_location, not breakpoint.
	* breakpoint.h (breakpoint_at): Change type
	to bp_location*.
	* breakpoint.c (bpstat_alloc): Take bp_location,
	not breakpoint.
	(bpstat_find_breakpoint): Look at bpstat's location's
	owner, not at bpstat->breakpoint_at.
	(bpstat_find_step_resume_breakpoint): Likewise.
	(bpstat_num): Likewise.
	(print_it_typical): Likewise.
	(print_bp_stop_message): Likewise.
	(watchpoint_check): Likewise.
	(bpstat_what): Likewise.
	(bpstat_get_triggered_catchpoints): Likewise.
	(breakpoint_auto_delete): Likewise.
	(delete_breakpoint): Likewise.	
	(bpstat_stop_status): Pass location, not breakpoint,
	to bpstat_alloc.  Look at bpstat's location's
	owner, not at bpstat->breakpoint_at.

2007-09-21  Jim Blandy  <jimb@codesourcery.com>

	* macrotab.h (new_macro_table): Document that removing information
	from an obstack/bcache-managed macro table leaks memory.
	* macrotab.c (macro_free, macro_bcache_free): Instead of asserting
	that data is never freed in obstack/bcache-managed macro tables,
	just leak the storage.
	(macro_undef): If we're undefining a macro at exactly the same
	source location that we defined it, simply remove the definition
	altogether.

2007-09-21  Joel Brobecker  <brobecker@adacore.com>

	* symfile.h (struct sym_fns): Add new field sym_read_linetable.
	* coffread.c, dbxread.c, elfread.c, mipsread.c somread.c:
	Adjust the struct sym_fns object accordingly by setting
	the new field to NULL.
	* xcoffread.c (aix_process_linenos): Make static.
	(xcoff_sym_fns): Set new field to aix_process_linenos.
	* buildsym.c (end_symtab): Replace call to PROCESS_LINENUMBER_HOOK
	by call to new the new sym_fns sym_read_linetable function.
	* config/powerpc/aix.mt (DEPRECATED_TM_FILE): Delete.
	* config/rs6000/tm-rs6000.h: Delete.

2007-09-21  David Ung  <davidu@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_push_dummy_call): Per N32/N64 ABI
	rules do not treat composite types specially.

2007-09-20  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips32_in_function_epilogue_p): New function.
	(mips16_in_function_epilogue_p): Likewise.
	(mips_in_function_epilogue_p): Likewise.
	(mips_gdbarch_init): Register mips_in_function_epilogue_p().

2007-09-19  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac: Add check for "etext".
	* configure, config.in: Regenerate.
	* maint.c (TEXTEND): Only define if either _etext or etext
	are available.
	Disable the profiling functionality if TEXTEND is not defined.

2007-09-19  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-tdep.c (mips_stub_frame_cache): Correct the saved return
	address register.  Correct the call to frame_id_build.
	(mips_stub_frame_sniffer): Use the stub unwinder when the PC
	is invalid.

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

	* ia64-tdep.c (refine_prologue_limit): Make sure we don't scan
	the linetable past the function end.

2007-09-18  James E. Wilson  <wilson@specifix.com>

	* MAINTAINERS: Update my email address.

2007-09-18  Jerome Guitton  <guitton@adacore.com>

	* inf-ttrace.c (inf_ttrace_private_thread_info): New structure type.
	(inf_ttrace_delete_dying_threads_callback): New function.
	(inf_ttrace_resume): After resuming the execution, iterate over
	the dying threads to delete them for the thread list.
	(inf_ttrace_wait): on TTEVT_LWP_EXIT and TTEVT_LWP_TERMINATE,
	mark the corresponding thread as dying instead of removing it
	from the thread list.
	(inf_ttrace_thread_alive): return 0 for dying threads.

2007-09-17  Joel Brobecker  <brobecker@adacore.com>

	* infrun.c (insert_step_resume_breakpoint_at_frame): Add assertion
	that return_frame is not null.

2007-09-17  Joel Brobecker  <brobecker@adacore.com>

	* solib-svr4.c: Add include of "auxv.h".
	(enable_break): Use the AT_BASE auxiliary entry if available.
	* Makefile.in (solib-svr4.o): Update dependencies.

2007-09-17  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.

2007-09-17  Jerome Guitton  <guitton@adacore.com>

	* dwarf2loc.c (dwarf_expr_frame_base): Guard against NULL.
	* Makefile.in (dwarf2loc.o): Depend on gdb_assert.h.

2007-09-16  Vladimir Prus  <vladimir@codesourcery.com>

	* mi/mi-cmds.c (mi_cmds): Register -list-features.
	* mi/mi-cmds.h (mi_cmd_list_features): New.
	* mi/mi-main.c (mi_cmd_list_features): New.
	
2007-09-11  Joel Brobecker  <brobecker@adacore.com>

	GDB 6.7 branch created (branch timestamp: 2007-09-07 14:00 UTC)
	* version.in: Bump version to 6.7.50-20070911-cvs.

2007-09-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* thread.c (free_thread): Do not delete the step resume breakpoint
	right away.

2007-09-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* arch-utils.c (gdbarch_info_fill): Also try core_bfd.
	* corelow.c (core_read_description): New.
	(init_core_ops): Set to_read_description.
	* gdbarch.sh: Add gdbarch_core_read_description.
	* mips-linux-tdep.c (mips_linux_core_read_description): New.
	(mips_linux_init_abi): Call set_gdbarch_core_read_description.
	* mips-tdep.c (mips_tdesc_gp32, mips_tdesc_gp64): New.
	(mips_register_g_packet_guesses): Use them.
	(_initialize_mips_tdep): Initialize them.
	* mips-tdep.h (mips_tdesc_gp32, mips_tdesc_gp64): Declare.
	* gdbarch.h, gdbarch.c: Regenerated.

2007-09-10  Ulrich Weigand  <uweigand@de.ibm.com>

	* infrun.c (stepping_past_breakpoint): New global variable.
	(stepping_past_breakpoint_ptid): Likewise.
	(prepare_to_proceed): Add STEP parameter.  Do not check for Ctrl-C.
	Only switch threads if we need to single-step over a breakpoint hit
	in the previously selected thread.  If stepping, remember previous
	thread to switch back to in STEPPING_PAST_BREAKPOINT[_PTID].  Call
	switch_to_thread instead of copying its contents.
	(proceed): Pass STEP to prepare_to_proceed.  Always set ONEPROC if
	prepare_to_proceed returns true.
	(init_wait_for_inferior): Reset STEPPING_PAST_BREAKPOINT.
	(context_switch): Call switch_to_thread.
	(handle_inferior_event): Switch back to previous thread if requested
	in STEPPING_PAST_BREAKPOINT[_PTID] by prepare_to_proceed.
	* gdbthread.h (switch_to_thread): Add prototype.
	* thread.c (switch_to_thread): Make global.

2007-09-07  Pierre Muller  <muller@ics.u-strasbg.fr>

	 * p-valprint.c: Fix 7 ARI reported problems.
	 (pascal_val_print): Fix one operator at end of line issue.
	 Use paddress function to remove use of
	 deprecated_print_address_numeric function (2 times).
	 Use SYMBOL_LINKAGE_NAME instead of DEPRECATED_SYMBOL_NAME.
	 (pascal_value_print): Fix 3 operator at end of line issues.

2007-09-07  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/2103
	* arm-tdep.c (arm_in_call_stub): Delete.
	(arm_skip_stub): Handle from_arm and from_thumb stubs.

2007-09-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* ppc-sysv-tdep.c (do_ppc_sysv_return_value): Handle other integer
	types.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jim Blandy  <jimb@codesourcery.com>

	* NEWS: Update description of string changes.  Mention print/s.
	* c-valprint.c (textual_element_type): New.
	(c_val_print): Use it.  Do not skip address printing for pointers
	with a string format.
	(c_value_print): Doc update.
	* dwarf2read.c (read_array_type): Use make_vector_type.
	* gdbtypes.c (make_vector_type): New.
	(init_vector_type): Use it.
	(gdbtypes_post_init): Initialize builtin_true_unsigned_char.
	(_initialize_gdbtypes): Mark int8_t and uint8_t as TYPE_FLAG_NOTTEXT.
	* gdbtypes.h (struct builtin_type): Add builtin_true_unsigned_char.
	(TYPE_FLAG_NOTTEXT, TYPE_NOTTEXT): New.
	(make_vector_type): New.
	* printcmd.c (print_formatted): Only handle 's' and 'i' for examine.
	Call the language print routine for string format.
	(print_scalar_formatted): Call val_print for string format.  Handle
	unsigned original types for char format.
	(validate_format): Do not reject string format.
	* stabsread.c (read_type): Use make_vector_type.
	* xml-tdesc.c (tdesc_start_vector): Use init_vector_type.

2007-09-04  Michael Snyder  <msnyder@access-company.com>

	* expprint.c (print_subexp_standard): Check strchr for null.
	* Makefile.in (expprint.o): Depend on gdb_assert.h.

	* gnu-v2-abi.c (gnuv2_value_rtti_type): Guard against null.

	* stabsread.c (patch_block_status): Guard against null.
	* Makefile.in (stabsread.o): Depend on gdb_assert.h.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* printcmd.c (printf_command): Handle ptr_arg.  Correct typo
	in internal error message.

2007-09-04  Pedro Alves  <pedro_alves@portugalmail.pt>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* infcmd.c (post_create_inferior): Update comment.
	(run_command_1): Always call post_create_inferior with 0 as
	from_tty.

	* i386-cygwin-tdep.h: New.
	* i386-cygwin-tdep.c: Include "i386-cygwin-tdep.h".
	(win32_xfer_shared_library): Make it extern.

	* win32-nat.c: Include gdb_obstack.h and xml-support.h and
	i386-cygwin-tdep.h.
	(win32_so_ops): Delete.
	(get_relocated_section_addrs): Delete.
	(solib_symbols_add): Delete.
	(register_loaded_dll): Delete.
	(win32_make_so): New.
	(handle_load_dll): Use win32_make_so.
	(win32_free_so): Free the passed in so.
	(win32_relocate_section_addresses): Delete.
	(win32_solib_create_inferior_hook): Delete.
	(handle_unload_dll): Don't add PE offset here.  Free so with
	win32_free_so instead of free_so.
	(win32_special_symbol_handling): Delete.
	(get_win32_debug_event): Remove unneeded calls.  Set state to
	TARGET_WAITKIND_LOADED on a dll unload.
	(do_initial_win32_stuff): Clear cygwin_load_start and
	cygwin_load_end.
	(map_code_section_args): Delete.
	(dll_code_sections_add): Delete.
	(core_section_load_dll_symbols): Delete.
	(win32_xfer_shared_libraries): New.
	(win32_current_sos): Delete.
	(win32_xfer_partial): New.
	(open_symbol_file_object): Delete.
	(in_dynsym_resolve_code): Delete.
	(init_win32_ops): Set win32_xfer_partial as to_xfer_partial member
	of win32_ops.  Remove win32_so_ops settings.  Don't set
	current_target_so_ops here.

	* Makefile.in (i386_cygwin_tdep_h): New variable.
	(i386-cygwin-tdep.o): Update dependencies.
	(win32-nat.o): Update dependencies.

2007-09-04  Pedro Alves  <pedro_alves@portugalmail.pt>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbarch.sh (core_xfer_shared_libraries): New.

	* corelow.c (core_xfer_partial): Handle TARGET_OBJECT_LIBRARIES.

	* gdb_obstack.h (obstack_grow_str, obstack_grow_str0): New.

	* xml-support.c (gdb_xml_parse): Debug output tweaks.
	(xml_escape_text): New.
	* xml-support.h (xml_escape_text): Declare.

	* config/i386/cygwin.mh (NATDEPFILES): Move corelow.o to ...
	* config/i386/cygwin.mt (TDEPFILES): ... here.

	* win32-nat.c: (fetch_elf_core_registers): Delete.
	(win32_elf_core_fn): Delete.
	(_initialize_core_win32): Delete.

	* i386-cygwin-tdep.c: Include "regset.h", "gdb_objstack.h",
	"xml-support.h" and "gdbcore.h".
	(i386_win32_gregset_reg_offset): New.
	(I386_WIN32_SIZEOF_GREGSET): New.
	(i386_win32_regset_from_core_section): New.
	(win32_xfer_shared_library): New.
	(struct cpms_data): New.
	(core_process_module_section): New.
	(win32_core_xfer_shared_libraries): New.
	(i386_cygwin_skip_trampoline_code): Register gregset_reg_offset,
	gregset_num_regs, sizeof_gregset members of tdep.  Register
	regset_from_core_section and core_xfer_shared_libraries callbacks.

	* Makefile.in (i386-cygwin-tdep.o): Update dependencies.
	* gdbarch.h, gdbarch.c: Regenerate.

2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* corelow.c (core_xfer_partial): Pass writebuf to
	deprecated_xfer_memory in TARGET_OBJECT_MEMORY write case.

2007-09-03  Pedro Alves  <pedro_alves@portugalmail.pt>

	* arm-tdep.h (arm_skip_stub): Declare.
	* arm-wince-tdep.c: Don't include "solib-svr4.h".  Include
	"gdbcore.h".
	(arm_pe_skip_trampoline_code): New function.
	(arm_wince_init_abi): Register arm_pe_skip_trampoline_code as
	gdbarch_skip_trampoline_code callback.
	* Makefile.in (arm-wince-tdep.o): Update dependencies.

2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* MAINTAINERS: Move Fred Fish to Past Maintainers.

2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac: Add --with-expat.
	* configure: Regenerated.

2007-09-03  Andreas Schwab  <schwab@suse.de>

	* configure.ac: Accept --with-system-readline.
	(READLINE, READLINE_DEPS, READLINE_CFLAGS): Define and substitute.
	* configure: Regenerate.
	* Makefile.in (READLINE, READLINE_DEPS, READLINE_CFLAGS): Use
	substituted values.
	(CDEPS): Use $(READLINE_DEPS) instead of $(READLINE).

2007-09-03  Maxim Grigoriev  <maxim2405@gmail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* mi-main.c (mi_load_progress): Handle MI2 and MI3 interpreters.

2007-09-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* top.c (print_gdb_version): Fixed a string end-of-line compiler error.

2007-09-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* top.c (print_gdb_version): Update for GPL version 3.

2007-09-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* NEWS: Mention the build-id .debug files verification.

2007-09-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-nat.c (linux_nat_make_corefile_notes): Fixed a buffer overflow.

2007-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (symfile.o): Update dependencies.
	* symfile.c (symbol_file_add_with_addrs_or_offsets): Initialize the
	DEBUGFILE variable.  FIND_SEPARATE_DEBUG_FILE called only if !PSYMTABS.
	(struct build_id): New structure.
	(build_id_bfd_get, build_id_verify, build_id_to_debug_filename): New.
	(find_separate_debug_file): New variable BUILD_ID.
	Call BUILD_ID_BFD_GET with BUILD_ID_TO_DEBUG_FILENAME as the first try.

2007-08-31  Vladimir Prus  <vladimir@codesourcery.com>

	* varobj.c (struct varobj): Fix comment
	for the type member not to lie when it can be 
	NULL.
	
2007-08-31  Vladimir Prus  <vladimir@codesourcery.com>

	Implement -var-info-path-expression.

	* mi/mi-cmds.h (mi_cmd_var_info_path_expression):
	Declare.
	* mi/mi-cmds.c (mi_cmds): Register var-info-path-expression.
	* mi/mi-cmd-var.c (mi_cmd_var_info_path_expression): New.
	* varobj.c (struct varobj): New field 'path_expr'.
	(c_path_expr_of_child, cplus_path_expr_of_child)
	(java_path_expr_of_child): New.
	(struct language_specific): New field path_expr_of_child.
	(varobj_create): Initialize the path_expr field.
	(varobj_get_path_expr): New.
	(new_variable): Initialize the path_expr field.
	(free_variable): Free the path_expr field.
	(adjust_value_for_children_access): New parameter
	WAS_TYPE.
	(c_number_of_children): Adjust.
	(c_describe_child): New parameter CFULL_EXPRESSION.
	Compute full expression.
	(c_value_of_child, c_type_of_child): Adjust.
	(cplus_number_of_children): Adjust.
	(cplus_describe_child): New parameter CFULL_EXPRESSION.
	Compute full expression.
	(cplus_name_of_child, cplus_value_of_child)
	(cplus_type_of_child): Adjust.
	* varobj.h (varobj_get_path_expr): Declare.

2007-08-31  Vladimir Prus  <vladimir@codesourcery.com>

	* mi/mi-cmd-var.c (print_varobj): If a varobj
	type is NULL, don't try to print it.
	
2007-08-30  Alan Modra  <amodra@bigpond.net.au>

	* ppc-linux-nat.c (right_fill_reg): Delete.
	(supply_gregset): Use ppc_supply_gregset.
	(supply_fpregset): Use ppc_supply_fpregset.
	(fill_gregset): Use ppc_collect_gregset.
	(fill_fpregset): Use ppc_collect_fpregset.
	* ppc-linux-tdep.c (PPC_LINUX_PT_*): Don't define.
	(right_supply_register, ppc_linux_supply_gregset): Delete.
	(ppc32_linux_supply_gregset, ppc64_linux_supply_gregset): Delete.
	(ppc_linux_supply_fpregset): Delete.
	(ppc_linux_collect_gregset): New function.
	(ppc32_linux_reg_offsets, ppc64_linux_reg_offsets): New.
	(ppc32_linux_gregset, ppc64_linux_gregset): Update to use reg offsets,
	ppc_linux_supply_gregset, and ppc_collect_gregset.
	(ppc_linux_fpregset): Rename to ppc32_linux_fpregset and update.
	(ppc_linux_gregset, ppc_linux_fpregset): New functions.
	(ppc_linux_regset_from_core_section): Update.
	* ppc-tdep.h (ppc_linux_gregset, ppc_linux_fpregset): Declare.
	(ppc_linux_supply_gregset, ppc_linux_supply_fpregset): Delete.
	(struct ppc_reg_offsets): Add gpr_size, xr_size, fpscr_size fields.
	* ppcobsd-tdep.c (ppcobsd_supply_gregset): Delete FIXME and assert.
	(ppcobsd_collect_gregset): Likewise.
	(_initialize_ppcnbsd_tdep): Init gpr_size, xr_size, fpscr_size.
	* ppcnbsd-tdep.c (_initialize_ppcobsd_tdep): Likewise.
	* ppcobsd-nat.c (_initialize_ppcobsd_nat): Likewise.
	* rs6000-aix-tdep.c (rs6000_aix32_reg_offsets): Likewise.
	(rs6000_aix64_reg_offsets): Likewise.
	(rs6000_aix_supply_regset): Call ppc_supply_fpregset without testing
	ppc_floating_point_unit_p.
	(rs6000_aix_collect_regset): Similarly.
	* rs6000-tdep.c (ppc_supply_reg): Add regsize param.  Adjust offset
	when regsize is larger than regcache register size.
	(ppc_collect_reg): Similarly zero pad when regsize is larger than
	regcache register size.
	(ppc_greg_offset): New function, split out from..
	(ppc_supply_gregset): ..here.  Separate code handling all regs from
	single reg case.  Correct xer offset.
	(ppc_fpreg_offset): New function, split out from..
	(ppc_supply_fpregset): ..here.  Separate code handling all regs from
	single reg case.
	(ppc_collect_gregset, ppc_collect_fpregset): Likewise.
	(ppc_supply_fpregset, ppc_collect_fpregset): Don't assert we have
	a fp unit, instead return if no fp.

2007-08-29  Jim Blandy  <jimb@codesourcery.com>

	* breakpoint.c (watch_command_1): Remove '#ifdef HPUXHPPA' block;
	this code has not been compiled for two years.

2007-08-29  Michael Snyder  <msnyder@access-company.com>

	* event-top.c (gdb_readline2): Return after EOF.

2007-08-29  Joel Brobecker  <brobecker@adacore.com>

	* symtab.c: Remove a function that has been commented out 3 years ago.

2007-08-29  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa32_cannot_fetch_register)
	(hppa64_cannot_fetch_register): New functions.
	(hppa_gdbarch_init): Set cannot_fetch_register appropriately.
	* hppa-tdep.h (hppa_regnum): Add HPPA_CR26_REGNUM.

2007-08-28  Michael Snyder  <msnyder@access-company.com>

	* mi/mi-cmd-var.c (mi_print_value_p): No longer necessary to 
	check for null before calling check_typedef.

	* NEWS: Mention Coverity bug fixes.

2007-08-27  Markus Deuling  <deuling@de.ibm.com>

	* spu-tdep.c (spu_pointer_to_address): New function.
	(spu_integer_to_address): Likewise.
	(spu_gdbarch_init): Add spu_pointer_to_address and 
	spu_integer_to_address to gdbarch.

2007-08-26  Pedro Alves  <pedro_alves@portugalmail.pt>

	* arm-wince-tdep.c (ARM_WINCE_JB_PC): Change to 10.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in (copying.c): Use the top-level COPYING3 as the file
	that contains the GDB license.
	* copying.awk: Adjust to the GPLv3 wording.
	* copying.c: Regenerate.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* copying.awk: Protoization, and i18n markup.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* config/djgpp/djconfig.sh: Switch license to GPLv3.
	* copyright.sh: Likewise.
	* gdb-events.sh: Likewise.
	* gdb_gcore.sh: Likewise.
	* gdb_mbuild.sh: Likewise.
	* gdbarch.sh: Likewise.
	* observer.sh: Likewise.
	* features/feature_to_c.sh: Likewise.
	* regformats/regdat.sh: Likewise.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	Switch the license of all .c files to GPLv3.
	Switch the license of all .h files to GPLv3.
	Switch the license of all .cc files to GPLv3.

2007-08-23  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac: Switch license to GPLv3.

2007-08-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-tdep.c (mips_gdbarch_init): Use Tag_GNU_MIPS_ABI_FP to
	determine the file's FPU type.

2007-08-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-tdep.c (mips_n32n64_fp_arg_chunk_p): New.
	(mips_n32n64_push_dummy_call): Always increment float_argreg along
	with argreg.  Use mips_n32n64_fp_arg_chunk_p.

2007-08-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* solib-svr4.c (scan_dyntag): Only read target memory when necessary.
	Fix formatting.
	(elf_locate_base): Look for DT_MIPS_RLD_MAP first.  Expand comments.
	(elf_lookup_lib_symbol): Fix formatting.

2007-08-21  Michael Snyder  <msnyder@access-company.com>

	* dbxread.c (read_dbx_symtab): Guard null deref.
	Break up long line.

	* valops.c (find_overload_match): Guard against NULL.

2007-08-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* MAINTAINERS (Patch Champions): Remove self.

2007-08-21  Chris Smith  <chris.smith@st.com>

	* cli/cli-script.c (read_command_lines): Call dont_repeat for each
	line.

2007-08-18  Michael Snyder  <msnyder@access-company.com>

	* stabsread.c (dbx_lookup_type): Memory leak.

	* event-loop.c (delete_async_signal_handler): Move pointer null
	test to before pointer dereference.

	* ui-out.c (append_header_to_list): Possible cut and paste error.

	* MAINTAINERS: white space tweak.

2007-08-17  Michael Snyder  <msnyder@access-company.com>

	* stack.c (print_frame): Memory leak.

	* completer.c (filename_completer): Avoid memory leak.
	Remove unnecessary nested block.

	* c-exp.y (parse_number): Memory leak.

	* completer.c (location_completer): Must free 'fn_list', except 
	in the one case where it is returned (as 'list').

	* varobj.c (value_of_root): Memory leak.

	* gdbtypes.h (virtual_base_list): Remove export decl.
	* gdbtypes.c (virtual_base_list): Make static.  Not called outside.
	(virtual_base_index): Memory leak.
	(virtual_base_index_skip_primaries): Ditto.

2007-08-17  Maxim Grigoriev  <maxim2405@gmail.com>

	* xtensa-tdep.c (ARG_NOF, ARG_1ST, PS_WOE, PS_EXC, C0_MAXOPDS)
	(C0_NREGS, C0_CLESV, C0_SP, C0_FP, C0_RA, C0_ARGS, C0_NARGS)
	(C0_CONST, C0_INEXP, C0_NOSTK): New macros.
	(xtensa_read_register): New function.
	(xtensa_windowed_frame_cache, xtensa_call0_frame_cache, xtensa_c0reg)
	(xtensa_insn_kind): New types.
	(xtensa_frame_cache, xtensa_alloc_frame_cache, xtensa_frame_cache)
	(xtensa_frame_prev_register, xtensa_return_value, xtensa_skip_prologue)
	(xtensa_verify_config, xtensa_pseudo_register_read)
	(xtensa_pseudo_register_write, xtensa_extract_return_value)
	(xtensa_store_return_value)
	(xtensa_push_dummy_call): Extended to support Xtensa Call0 ABI.
	(windowing_enabled, extract_call_winsize, xtensa_unwind_dummy_id)
	(xtensa_frame_this_id, xtensa_frame_prev_register)
	(xtensa_register_type, xtensa_reg_to_regnum): Cosmetic changes.
	(call0_frame_cache, call0_frame_get_reg_at_entry)
	(call0_classify_opcode, call0_track_op)
	(call0_analyze_prologue, call0_frame_cache): New functions.

2007-08-17  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (bpstat_free): New.
	(bpstat_clear): Use bpstat_free.
	(delete_breakpoint): Document why we cannot
	remove bpstats from stop_bpstat.
	* breakpoint.h (bpstat_free): Declare.
		
2007-08-16  Michael Snyder  <msnyder@access-company.com>

        * event-loop.c (gdb_wait_for_event): Move statement into "if" block.

2007-08-15  Paul Hilfinger  <hilfinger@adacore.com>
            Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (resolve_subexp): Correct arity of binary operators.

2007-08-15  Paul Hilfinger  <hilfinger@adacore.com>
            Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (possible_user_operator_p): Alternative fix to last
	checkin guarding against NULL.

2007-08-14  Michael Snyder  <msnyder@access-company.com>

	* tui-command.c, tui-data.c, tui-disasm.c, tui-file.c, tui-io.c,
	tui-layout.c, tui-regs.c, tui-source.c, tui-win.c, tui-windata.c,
	tui-wingeneral.c, tui-winsource.c: Coding standard, && and ||
	go at beginning of new line.

	* tui-data.c, tui-data.h, tui-disasm.c, tui-disasm.h, tui-hooks.c,
	tui-io.c, tui-layout.c, tui-layout.h, tui-out.c, tui-regs.c,
	tui-source.c, tui-source.h, tui-stack.c, tui-win.c, tui-win.h,
	tui-windata.c, tui-windata.h, tui-wingeneral.c, tui-winsource.c,
	tui-winsource.h, tui.c, tui.h: Function declarations and 
	definitions, wrap long lines.

	* tui-command.c, tui-data.c, tui-disasm.c, tui-layout.c,
	tui-regs.c, tui-win.c, tui-windata.c, tui-winsource.c, tui.c:
	Reformat block comments to GNU standard.

	* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
	tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
	tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
	tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
	tui.c, tui.h: Comment reformatting to coding standard (capitals, 
	spaces after periods, etc).	

	* tui-data.c, tui-data.h, tui-disasm.c, tui-hooks.c, tui-layout.c,
	tui-regs.c, tui-source.c, tui-stack.c, tui-win.c, tui-windata.c,
	tui-wingeneral.c, tui-wingeneral.h, tui-winsource.c, tui.c,
	tui-winsource.h: Whitespace changes, fix pointer declarations
	to be consistant.

2007-08-14  Joel Brobecker  <brobecker@adacore.com>
            Michael Snyder  <msnyder@access-company.com>

	* ada-lang.c (field_alignment): Guard against NULL.

2007-08-14  Joel Brobecker  <brobecker@adacore.com>

	* MAINTAINERS (Global Maintainers): Add self.

2007-08-14  Michael Snyder  <msnyder@access-company.com>

	* mi/mi-interp.c (mi_cmd_interpreter_exec): Dead code, dead variable.

	* ada-lang.c (possible_user_operator_p): Guard against NULL.

	* varobj.c (cplus_describe_child): Guard against null.
	Use "NULL" instead of "0" to initialize pointers.

2007-08-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (arm_gdbarch_init): Allow unknown ABI and FPU settings
	to match any gdbarch with matching OSABI.  Set default ABI and FPU
	after running the OSABI handler.

2007-08-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/i386/linux.mh (NATDEPFILES): Move corelow.o from here...
	* config/i386/linux.mt (TDEPFILES): ...to here.

2007-08-14  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (disable_breakpoints_in_shlibs): Remove
	the 'silent' parameter and code to implement that.
	* breakpoint.h (disable_breakpoints_in_shlibs): Adjust
	prototype.
	* win32-nat.c: Adjust.
	* solib.c: Adjust.
	
2007-08-14  Vladimir Prus  <vladimir@codesourcery.com>

	* breakpoint.c (update_breakpoints_after_exec): Don't
	set address to zero.

2007-08-13  Michael Snyder  <msnyder@access-company.com>

	* valops.c: Whitespace clean-up.

	* tui/tui-winsource.c (tui_alloc_source_buffer): Clean up allocation.

	* event-top.c (command_line_handler): Memory leak.

	* mi/mi-cmd-var.c (mi_cmd_var_set_format): Memory leak.
	No need to make copy.

	* source.c (find_source_lines): Require symtab 's'.

2007-08-11  Michael Snyder  <msnyder@access-company.com>

	* completer.c: Spelling fix in comments.

2007-08-10  Michael Snyder  <msnyder@access-company.com>

	* gdbtypes.c: Coding standard cleanup.
	* gdbtypes.c: Comment/whitespace cleanup.

	* stabsread.c (read_huge_number): Attempt to compute value before
	values that it depends on.

	* linespec.c (decode_dollar): Dead code, ptr can't be non-null.
	(decode_objc): Use "NULL" instead of 0.
	(find_method): Ditto.
	(decode_all_digits): Ditto.
	(decode_dollar): Ditto.

	* mi/mi-main.c (mi_cmd_data_evaluate_expression): Resource leak.

	* mi/mi-cmd-var.c (mi_cmd_var_list_children): Memory leak.

	* solib-svr4.c (enable_break): Don't free tmp_pathname until
	after closing bfd.

	* completer.c: Comment/whitespace cleanup.

2007-08-10  Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in (i386nbsd-nat.o): Add missing dependency.

2007-08-10  Maxim Grigoriev  <maxim2405@gmail.com>

	* remote-fileio.c (remote_fileio_resize_fd_map): Initialize newly
	allocated file descriptors.

2007-08-10  Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in: Minor cleanup throughout; add some missing variables,
	add some missing rules, remove some rules that are no longer needed,
	and fix the dependencies in several rules.

2007-08-10  Ludovic Courtès  <ludo@gnu.org>

	* Makefile.in (SFILES): Add scm-{exp,lang,valprint}.c.
	(scm_lang_h, scm_tags_h): New.
	(COMMON_OBS): Add scm-{exp,lang,valprint}.o.
	(scm-exp.o, scm-lang.o, scm-valprint.o): New targets.
	* defs.h (enum language): Add `language_scm'.

	* MAINTAINERS: Add Emacs local variables to use UTF-8 upon
	opening.

2007-08-09  Ludovic Courtès  <ludo@gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2007-08-09  Michael Snyder  <msnyder@access-company.com>

	* solib.c (solib_open): Memory leak -- openp returns xmalloc buffer.

2007-08-09  Joel Brobecker  <brobecker@adacore.com>

        * solib-som.c (som_relocate_section_addresses): Stop saving
        the $CODE$ section in the so_list structure.

2007-08-08  Maxim Grigoriev  <maxim2405@gmail.com>

	* xtensa-tdep.h (XTENSA_MAX_COPROCESSOR): New.
	(xtensa_register_group_t): Add entries for coprocessors.
	* xtensa-tdep.c (xtensa_init_reggroups): New register groups.
	(xtensa_add_reggroups): Likewise.
	(xtensa_register_reggroup_p): Likewise.
	(xtensa_coprocessor_register_group): New function.
	(xtensa_cp): New.

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

	* serial.c (serial_open): Fix the OPEN parameter macro expansion.

2007-08-08  Michael Snyder  <msnyder@access-company.com>

	* target.c (target_read_string): Guard against null.

	* varobj.c (value_of_root): Move alloc after return to avoid leak.

	* tui/tui-layout.c (tui_set_layout): Dead code, dead variable.
	(tui_set_layout_for_display_command): Mem leak.

	* top.c (command_line_input): Memory leak.

	* solib-svr4.c (open_symbol_file_object): Memory leak.
	(svr4_current_sos): Ditto.
	(enable_break): Ditto.

	* cp-valprint.c (cp_print_hpacc_virtual_table_entries): Memory leak.

	* dwarf2read.c (add_partial_symbol): Memory leak.

2007-08-06  Michael Snyder  <msnyder@access-company.com>

	* ada-lang.c (desc_bounds): Comparison of function address to NULL.

2007-08-05  Jim Blandy  <jimb@codesourcery.com>

	* macroexp.c (init_buffer): Remove testing code that overrides the
	caller's length guess.
	(gather_arguments): Use a larger initial size, now that the vector
	growth code has been exercised.

2007-08-05  Pedro Alves  <pedro_alves@portugalmail.pt>

	* solib-target.c (solib_target_relocate_section_addresses): Add
	orig_delta to addr_high.

2007-08-04  Michael Snyder  <msnyder@access-company.com>

	* remote-fileio.c (remote_fileio_func_write): Memory leak.

	* breakpoint.c (print_one_breakpoint): Off by one error.

	* tracepoint.c (add_register): Off by one error.
	(stringify_collection_list): Free malloc buffer.

2007-08-03  Michael Snyder  <msnyder@access-company.com>

	* mi-cmd-var.c (mi_cmd_var_delete): Remove unused variable,
	stop memory leak, straighten out cleanups.

	* jv-lang.c (java_link_class_type): Guard against NULL.

2007-08-02  Michael Snyder  <msnyder@access-company.com>

	* gdbtypes.c (create_set_type): Test should only be done within
	the preceeding if block.  Otherwise, variable is uninitialized.

	* gdbtypes.c (check_typedef): Guard NULL.

2007-08-01  Michael Snyder  <msnyder@access-company.com>

	* cli/cli-decode.c (lookup_cmd): Check for null earlier, to 
	avoid dereference in lookup_cmd_1.

	* tui/tui-data.c (tui_alloc_content): Move assign out of if, 
	clean up long lines.
	(tui_alloc_generic_win_info): Tidy by using XMALLOC macro.
	(tui_alloc_win_info): Ditto.
	(tui_add_content_elements): Ditto.
	* tui/tui-file.c (tui_file_magic): Ditto.

2007-07-31  Michael Snyder  <msnyder@access-company.com>

	* breakpoint.c (breakpoint_init_inferior): Add 'else' to 'if'.
	True and false paths are mutually exclusive.

	* event-top.c (command_line_handler): Add pedantic return.

	* f-valprint.c (info_common_command): Bail out to prevent null
	pointer deref.  Break up a long line.

	* exec.c (xfer_memory): Remove redundant condition from 'if'.

	* symfile.c (reread_separate_symbols): Free xmalloced memory.

	* printcmd.c (build_address_symbolic): Remove dead code and dead 
	variable.

2007-07-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* linespec.c (minsym_found): Advance to the next line if possible.

2007-07-31  Pedro Alves  <pedro_alves@portugalmail.pt>

	* arm-wince-tdep.c (arm_wince_init_abi): Remove svr4 related call.
	* config/arm/wince.mt (TDEPFILES): Remove solib-legacy.o and
	solib-svr4.o, and add solib-target.o

2007-07-27  Michael Snyder  <msnyder@access-company.com>

	* tui/tui-data.c (tui_alloc_generic_win_info): Wrong arg for sizeof.

2007-07-26  Maciej W. Rozycki  <macro@linux-mips.org>

	* MAINTAINERS (Write After Approval): Add myself.

2007-07-26  Maciej W. Rozycki  <macro@mips.com>

	* Makefile.in (MAKEHTMLFLAGS): Also search the current directory
	for include files.

2007-07-25  Maciej W. Rozycki  <macro@mips.com>

	* Makefile.in (MAKEHTMLFLAGS): Remove "-glossary".

2007-07-24  Michael Snyder  <msnyder@access-company.com>

	* solib-svr4.c (svr4_fetch_objfile_link_map): Null pointer check of
	'buffer' must cover both branches that call strcmp (Coverity).

	* stack.c (print_frame_args): Check return value of lookup_symbol.

	* ax-gdb.c (find_field): Guard against null ptr.

2007-07-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* regformats/reg-spu.dat: Fix order of npc, id registers.

2007-07-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* target.c (memory_xfer_partial): Accesses to unmapped overlay
	sections should always go to the executable file.

2004-07-20  Chris Dearman  <chris@mips.com>

	* mips-tdep.c (heuristic_proc_start): Add more MIPS16 function
	prologue instructions.

2007-07-20  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_next_pc): Use is_mips16_addr() instead of
	a direct test.

2007-07-20  Chris Dearman  <chris@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (fetch_mips_16): Fix typos and reformat the
	description.

2007-07-17  Pedro Alves  <pedro_alves@portugalmail.pt>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* config/i386/cygwin.mt (TDEPFILES): Add solib-target.o.
	* coff-pe-read.c (read_pe_exported_syms): Delete verbose
	printf.
	* NEWS: Mention gdbserver DLL support.

2007-07-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2read.c (dwarf_decode_lines): Detect address size mismatches.

2007-07-16  H.J. Lu  <hongjiu.lu@intel.com>

	* i386-linux-nat.c (fetch_regs): Work around gcc 3.4 alias
	warning bug.

2007-07-13  Kevin Buettner  <kevinb@redhat.com>

	* mep-tdep.c (mep_analyze_prologue): Update comment for BRA
	instruction case.

2007-07-12  Kevin Buettner  <kevinb@redhat.com>

	* mep-tdep.c (IS_BRA, BRA_DISP): New macros.
	(mep_analyze_prologue): Add case for BRA instruction.

2007-07-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* solib-svr4.c (LM_ADDR_CHECK): Relax prelink recognition heuristic.

2007-07-10  Nick Roberts  <nickrob@snap.net.nz>

	* breakpoint.c: Include "top.h".
	(breakpoint_1): Don't set convenience variable $_ if server prefix
	is used.
	(_initialize_breakpoint): Describe this behaviour in command help.

2007-07-08  Pedro Alves  <pedro_alves@portugalmail.pt>

	* solib-target.c (library_list_start_segment): Cast address to
	CORE_ADDR.

2007-07-06  Mark Kettenis  <kettenis@gnu.org>

	* bsd-uthread.c (bsd_uthread_wait): Don't try to fetch thread IDs
	for terminated processes.

2007-07-05  Michael Snyder  <msnyder@access-company.com>

	* event-top.c (cli_command_loop): Prompt string can (and should)
	be freed after call to readline (Coverity).  Also move local var
	declarations into block where they are used.

	* tui/tui-interp.c (tui_command_loop): Prompt string can (and
	should) be freed after call to readline (Coverity).  Also move
	local var declarations into block where they are used.

2007-07-03  Andreas Schwab  <schwab@suse.de>

	* linux-nat.c (linux_nat_info_proc_cmd): Fix parsing of columns in
	/proc/../stat.

2007-07-03  Paul Gilliam  <pgilliam@us.ibm.com>
	    Thiago Bauermann  <bauerman@br.ibm.com>
	    Joseph S. Myers  <joseph@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* remote.c (remote_check_symbols): Use
	gdbarch_convert_from_func_ptr_addr.
	* infcall.c (find_function_addr): Handle function descriptors
	without debugging information.
	* ppc-linux-tdep.c (ppc_linux_convert_from_func_ptr_addr): Renamed
	from ppc64_linux_convert_from_func_ptr_addr.  Handle -msecure-plt.
	(ppc_linux_init_abi): Always set convert_from_func_ptr_addr.
	* solib-svr4.c (solib_break_names): Remove "._dl_debug_state".
	(bfd_lookup_symbol): Do not take a SECT_FLAGS argument.  Always
	allow SEC_CODE and SEC_DATA.
	(enable_break): Update calls.  Pass current_target to solib_add.
	Use gdbarch_convert_from_func_ptr_addr.

2007-07-03  Ilko Iliev  <iliev@ronetix.at>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* symfile.c (print_transfer_performance): Avoid integer overflow.
	Use larger units.

2007-07-03  Markus Deuling  <deuling@de.ibm.com>

	* cp-namespace.c (lookup_symbol_file): Add block to
	lookup_symbol_global call.
	* Makefile.in (solist_h): Add dependency on symtab header.
	(symtab.o): Add dependency on solist header.
	* solib.c (solib_global_lookup): New function.
	* solib-svr4.c (scan_dyntag): Likewise.
	(elf_locate_base): Call helper routine scan_dyntag.
	(elf_lookup_lib_symbol): New function.
	(_initialize_svr4_solib): Add elf_lookup_lib_symbol to svr4_so_ops.
	* solist.h (symtab.h): New include.
	(struct target_so_ops): New member lookup_lib_global_symbol.
	(solib_global_lookup): New prototype.
	* symtab.c: New include solist.h.
	(lookup_objfile_from_block): New function.
	(lookup_global_symbol_from_objfile): New function.
	(basic_lookup_symbol_nonlocal): Add block to lookup_symbol_global call.
	(lookup_symbol_global): Call library-specific lookup procedure.
	* symtab.h (lookup_global_symbol_from_objfile): New prototype.

	* NEWS: Document framework.

2007-07-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* target-descriptions.c (tdesc_create_reg): Do not set reg->type
	to NULL.

	* cli/cli-script.c (build_command_line): Update NULL check.

2007-07-02  Michael Snyder  <msnyder@access-company.com>

	* p-exp.y (yylex): Memory leak, 'uptokstart' must be freed (Coverity).

2007-07-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (XMLFILES): Add library-list.dtd.
	(ALLDEPFILES): Add solib-target.o.
	(solib-target.o): New rule.
	* remote.c (PACKET_qXfer_libraries): New constant.
	(remote_protocol_features): Add qXfer:libraries:read.
	(remote_wait): Recognize library stop replies.
	(remote_async_wait): Likewise.  Fix typo.
	(remote_xfer_partial): Handle TARGET_OBJECT_LIBRARIES.
	(init_remote_async_ops): Fix typo.
	(_initialize_remote): Register "set remote library-info-packet".
	* solib-som.c (som_current_sos): Set addr_low and addr_high.
	* solib-target.c: New file.
	* solib.c (solib_map_sections): Use addr_low and addr_high instead
	of textsection.
	(info_sharedlibrary_command): Likewise.
	(solib_add_library, solib_remove_library): New.
	* solist.h (struct so_list): Replace textsection with addr_low and
	addr_high.
	* target.h (enum target_object): Add TARGET_OBJECT_LIBRARIES.
	* NEWS: Describe new qXfer:libraries:read and shared library
	event support.
	* features/library-list.dtd: New.

2007-07-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* infrun.c (inferior_ignoring_startup_exec_events): Delete.
	(start_remote): Use STOP_QUIETLY_REMOTE.
	(handle_inferior_event): Do not condition TARGET_WAITKIND_LOADED
	support on a SOLIB_ADD definition.  Update breakpoints_inserted.
	Update to match shared library event breakpoint support.  Only
	resume if appropriate.  Handle STOP_QUIETLY_REMOTE.
	(normal_stop): Handle TARGET_WAITKIND_LOADED.
	* fork-child.c (startup_inferior): Do not set
	inferior_ignoring_startup_exec_events
	* inferior.h (inferior_ignoring_startup_exec_events): Delete
	declaration.
	(enum stop_kind): Improve documentation.  Add STOP_QUIETLY_REMOTE.

2007-07-02  Markus Deuling  <deuling@de.ibm.com>

	* breakpoint.c (insert_bp_location): Remove dead code
	(DISABLE_UNSETTABLE_BREAK).
	(disable_breakpoints_in_shlibs)
	(disable_breakpoints_in_unloaded_shlib): Likewise (comment).

2007-07-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* breakpoint.c (reattach_breakpoints): Do not use remove_breakpoint.
	Call insert_bp_location.

2007-07-01  H.J. Lu  <hongjiu.lu@intel.com>

	* core-regset.c (fetch_core_registers): Work around gcc 3.4
	alias warning bug.

2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* minsyms.c (lookup_minimal_symbol_by_pc_section): Search fewer
	objfiles.

2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* top.c (gdb_readline_wrapper_line): Call rl_callback_handler_remove.
	(struct gdb_readline_wrapper_cleanup): Remove prompt_orig.
	(gdb_readline_wrapper_cleanup): Do not reset the prompt.
	(gdb_readline_wrapper): Do not save the prompt.  Pass our prompt
	to display_gdb_prompt.

2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>

	PR symtab/2161
	* target.c (memory_xfer_partial): Do not continue past targets with
	all memory.

2007-06-30  Andreas Schwab  <schwab@suse.de>

	* m68k-tdep.c (m68k_ps_type): New.
	(m68k_init_types): New.
	(m68k_register_type): Use m68k_ps_type for PS register.
	(_initialize_m68k_tdep): Call m68k_init_types.

	* m68k-tdep.c (m68k_gdbarch_init): Don't infer coldfire flavour
	from the generic m68k arch.

2007-06-28  Michael Snyder  <msnyder@access-company.com>

	* m2-typeprint.c (m2_print_type): Move pointer ref after null test
	(Coverity).

	* linux-thread-db.c (thread_db_get_thread_local_address): Add
	gdb_assert before using return value of find_thread_pid (Coverity).

	* source.c (unset_substitute_path_command): Plug leak (Coverity).

	* cli/cli-script.c (build_command_line): Add null pointer guard 
	(Coverity).
	
2007-06-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-thread-db.c (thread_db_attach): Delete.
	(thread_db_detach): Typo fix.  Call target_mourn_inferior
	instead of fixing up proc_handle.
	(have_threads_callback, have_threads): New functions.
	(thread_db_wait): Remove dead proc_handle.pid check.  Only
	translate PTIDs if we have registered threads.  Check for new
	threads if we have none.
	(thread_db_create_inferior, thread_db_post_startup_inferior): Delete.
	(find_new_threads_callback): Only enable event reporting if TID == 0.
	(same_ptid_callback): New.
	(thread_db_get_thread_local_address): Check for new threads.
	(init_thread_db_ops): Don't set to_attach, to_create_inferior,
	or to_post_startup_inferior.

2007-06-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* infrun.c (adjust_pc_after_break): Do not assume software single-step
	is always active if SOFTWARE_SINGLE_STEP_P is true.
	(resume): Use gdbarch_software_single_step[_p] instead of
	SOFTWARE_SINGLE_STEP[_P].
	(handle_inferior_event): Do not check for SOFTWARE_SINGLE_STEP_P.

	* gdbarch.sh (software_single_step): Remove target macro.
	* gdbarch.h, gdbarch.c: Regenerate.

2007-06-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (gdbarch_swap_ftype, deprecated_register_gdbarch_swap,
	DEPRECATED_REGISTER_GDBARCH_SWAP): Remove.
	(struct gdbarch_swap, struct gdbarch_swap_registration, 
	struct gdbarch_swap_registry, gdbarch_swap_registry,
	current_gdbarch_swap_init_hack, current_gdbarch_swap_out_hack,
	current_gdbarch_swap_in_hack): Remove.
	(find_arch_by_info): Do not call current_gdbarch_swap_init_hack.
	(gdbarch_find_by_info): Do not call current_gdbarch_swap_in_hack
	and current_gdbarch_swap_out_hack, update current_gdbarch directly.
	(deprecated_current_gdbarch_select_hack): Likewise.
	* gdbarch.h, gdbarch.c: Regenerate.

2007-06-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* infrun.c (clear_proceed_status): Clean up stop_registers.
	(normal_stop): Allocate regcache for stop_registers.
	(struct inferior_status): Remove stop_registers member.
	(save_inferior_status): Do not save stop_registers.
	(restore_inferior_status): Do not restore stop_registers.
	(discard_inferior_status): Do not discard stop_registers.
	(build_infrun): Remove.
	(_initialize_infrun): Do not swap stop_registers.

2007-06-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* remote.c (remote_address_masked): If remote_address_size is zero,
	default to target address size.
	(build_remote_gdbarch_data): Remove.
	(_initialize_remote): Do not swap remote_address_size.

2007-06-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbtypes.h (builtin_type_true_char, builtin_type_void,
	builtin_type_char, builtin_type_short, builtin_type_int,
	builtin_type_long, builtin_type_signed_char,
	builtin_type_unsigned_char, builtin_type_unsigned_short,
	builtin_type_unsigned_int, builtin_type_unsigned_long,
	builtin_type_float, builtin_type_double, builtin_type_long_double,
	builtin_type_complex, builtin_type_double_complex, builtin_type_string,
	builtin_type_bool, builtin_type_long_long,
	builtin_type_unsigned_long_long, builtin_type_void_data_ptr,
	builtin_type_void_func_ptr, builtin_type_CORE_ADDR): Replace global
	variable declaration with compatibility macro.
	* gdbtypes.c (builtin_type_true_char, builtin_type_void,
	builtin_type_char, builtin_type_short, builtin_type_int,
	builtin_type_long, builtin_type_signed_char,
	builtin_type_unsigned_char, builtin_type_unsigned_short,
	builtin_type_unsigned_int, builtin_type_unsigned_long,
	builtin_type_float, builtin_type_double, builtin_type_long_double,
	builtin_type_complex, builtin_type_double_complex, builtin_type_string,
	builtin_type_bool, builtin_type_long_long,
	builtin_type_unsigned_long_long, builtin_type_void_data_ptr,
	builtin_type_void_func_ptr, builtin_type_CORE_ADDR): Remove.
	(build_gdbtypes): Remove.
	(_initialize_gdbtypes): Do not call build_gdbtypes, move installing
	opaque-type-resolution command here.   Do not call 
	deprecated_register_gdbarch_swap.

2007-06-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbtypes.h (struct builtin_type): New members nodebug_text_symbol,
	nodebug_data_symbol, nodebug_unknown_symbol, and nodebug_tls_symbol.
	* gdbtypes.c (gdbtypes_post_init): Initialize nodebug_ default types.

	* parse.c (msym_text_symbol_type, msym_data_symbol_type): Remove.
	(msym_unknown_symbol_type, msym_tls_symbol_type): Remove.
	(write_exp_msymbol): Use builtin nodebug_ types instead of them.
	(build_parse): Remove.
	(_initialize_parse): Do not call build_parse.  Do not register
	msym_ types for gdbarch-swapping.

	* dwarf2read.c (new_symbol): Use default nodebug_data_symbol type
	instead of creating private type.

	* xcoffread.c (func_symbol_type, var_symbol_type): Remove.
	(_initialize_xcoffread): Do not initialized them.
	(process_xcoff_symbol): Use builtin nodebug_ types instead of them.

	* mdebugread.c (nodebug_func_symbol_type): Remove.
	(nodebug_var_symbol_type): Remove.
	(_initialize_mdebugread): Do not initialize them.
	(parse_symbol): Use builtin nodebug_ type instead of them.
	(parse_procedure): Likewise.

2007-06-21  Chris Dearman  <chris@mips.com>

	* printcmd.c (do_one_display): If display/i, start with an initial
	line feed to avoid bad layout if there is a branch delay slot.

2007-06-21  Nigel Stephens  <nigel@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* disasm.c (gdb_print_insn): Return the number of branch delay
	slot instructions too.
	* disasm.h (gdb_print_insn): Update prototype.
	* printcmd.c (branch_delay_insns): New variable to record the
	number of delay slot instructions after disassembling a branch.
	(print_formatted): Record the number of branch delay slot
	instructions.
	(do_examine): When disassembling, if the last instruction
	disassembled has any branch delay slots, then bump the count so
	that they get disassembled too.
	* tui/tui-disasm.c (tui_disassemble): Update the call to
	gdb_print_insn().
	* NEWS: Document the new behaviour.

2007-06-21  Andreas Schwab  <schwab@suse.de>

	* regcache.c (write_pc_pid): Restore missing else.

2007-06-20  Ulrich Weigand  <uweigand@de.ibm.com>

	* regcache.c (regcache_print): Use get_current_regcache ()
	instead of current_regcache.

2007-06-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR 4606
	* gcore.c (gcore_command): Use bfd_make_section_anyway_with_flags
	instead of bfd_make_section_anyway.
	(gcore_create_callback): Likewise.  Also set SEC_NEVER_LOAD
	when clearing SEC_LOAD.

2007-06-19  Joseph Myers  <joseph@codesourcery.com>

	* arm-tdep.c (arm_push_dummy_call): Correct padding of partial
	registers for big-endian.

2007-06-19  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_PRINT_INSN): Replace by gdbarch_print_insn.
	* disasm.c (dump_insns, gdb_print_insn): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-19  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (BELIEVE_PCC_PROMOTION): Replace by
	gdbarch_believe_pcc_promotion.
	* stabsread.c (define_symbol): Likewise.
	Remove unnecessary definition.
	* coffread.c (process_coff_symbol): Remove unnecessary code.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-19  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac: Do not use ${objdir}.
	* configure: Regenerated.

2007-06-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (deprecated_register_size): Remove.
	* gdbarch.h, gdbarch.c: Regenerate.

	* arm-tdep.c (arm_push_dummy_call): Replace DEPRECATED_REGISTER_SIZE
	by INT_REGISTER_SIZE.
	(thumb_get_next_pc, arm_return_in_memory): Likewise.
	(arm_gdbarch_init): Do not call set_gdbarch_deprecated_register_size.
	* ia64-tdep.c (ia64_gdbarch_init): Do not call
	set_gdbarch_deprecated_register_size.

2007-06-18  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (DEPRECATED_FP_REGNUM): Replace by
	gdbarch_deprecated_fp_regnum.
	* std-regs.c (value_of_builtin_frame_fp_reg): Likewise.
	* remote-mips.c (mips_wait, mips_fetch_registers): Likewise.
	* arch-utils.c (legacy_virtual_frame_pointer): Likewise.
	* arch-utils.h (gdbarch_virtual_frame_pointer_ftype): Likewise
	(comment).
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-18  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (EXTRACT_RETURN_VALUE): Replace with
	gdbarch_extract_return_value.
	* value.c (generic_use_struct_convention): Likewise (comment).
	* ia64-tdep.c (ia64_use_struct_convention): Likewise (comment).
	* arch-utils.c (legacy_return_value): Likewise.
	* arch-utils.h (legacy_return_value): Likewise (comment).
	* gdbarch.sh (STORE_RETURN_VALUE): Replace by
	gdbarch_store_return_value.
	* stack.c (return_command): Likewise (comment).
	* arch-utils.h (legacy_return_value): Likewise (comment).
	* arch-utils.c (legacy_return_value): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-18  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (DEPRECATED_USE_STRUCT_CONVENTION): Replace by
	gdbarch_deprecated_use_struct_convention.
	* arch-utils.c (legacy_return_value): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-18  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (DEPRECATED_FUNCTION_START_OFFSET): Replace by
	gdbarch_deprecated_function_start_offset.
	* symtab.c (find_function_start_sal)skip_prologue_using_sal): Likewise.
	* linespec.c (minsym_found): Likewise.
	* infrun.c (handle_inferior_event): Likewise.
	* infcall.c (find_function_addr): Likewise.
	* cli/cli-cmds.c (disassemble_command): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-18  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Replace by
	gdbarch_deprecated_reg_struct_has_addr.
	* infcall.c (call_function_by_hand): Likewise.
	(DEPRECATED_REG_STRUCT_HAS_ADDR_P): Replace by
	* gdbarch_deprecated_reg_struct_has_addr_p.
	* infcall.c (call_function_by_hand): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-18  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Remove.
	* sh-tdep.c (sh_extract_struct_value_address): Remove.
	(sh_gdbarch_init): Remove
	set_gdbarch_deprecated_extract_struct_value_address.
	* sh64-tdep.c (sh64_extract_struct_value_address): Remove.
	(sh64_gdbarch_init): Remove
	set_gdbarch_deprecated_extract_struct_value_address.
	* ia64-tdep.c (ia64_extract_struct_value_address): Remove.
	(ia64_gdbarch_init): Remove
	set_gdbarch_deprecated_extract_struct_value_address.
	* frv-tdep.c (frv_extract_struct_value_address): Remove.
	(frv_gdbarch_init): Remove
	set_gdbarch_deprecated_extract_struct_value_address.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-18  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (SP_REGNUM): Replace by gdbarch_sp_regnum.
	* v850-tdep.c (v850_unwind_sp): Likewise.
	* std-regs.c (value_of_builtin_frame_sp_reg): Likewise.
	* stack.c (frame_info): Likewise.
	* stabsread.c (define_symbol): Likewise.
	* sh-tdep.c (sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu)
	(sh_dwarf2_frame_init_reg, sh_frame_cache, sh_frame_prev_register)
	(sh_unwind_sp): Likewise.
	* sh64-tdep.c (sh64_push_dummy_call, sh64_frame_cache)
	(sh64_frame_prev_register, sh64_unwind_sp): Likewise.
	* rs6000-tdep.c (rs6000_push_dummy_call, rs6000_unwind_dummy_id)
	(rs6000_frame_cache): Likewise.
	* rs6000-nat.c (store_register): Likewise.
	* remote-mips.c (mips_wait): Likewise.
	* procfs.c (procfs_fetch_registers, procfs_store_registers): Likewise.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call)
	(ppc64_sysv_abi_push_dummy_call): Likewise.
	* ppcobsd-tdep.c (ppcobsd_sigtramp_frame_cache): Likewise.
	* ppcobsd-nat.c (ppcobsd_supply_pcb): Likewise.
	* ppcnbsd-tdep.c (ppcnbsd_sigtramp_cache_init): Likewise.
	* ppc-linux-tdep.c (ppc_linux_sigtramp_cache): Likewise.
	* m32r-rom.c (m32r_supply_register): Likewise.
	* frame.c (frame_sp_unwind): Likewise.
	* mips-tdep.c (mips_insn16_frame_cache)
	(mips_insn32_frame_cache): Likewise (comment).
	* m68klinux-nat.c (supply_gregset): Likewise.
	* m68k-tdep.c (m68k_get_longjmp_target): Likewise.
	* ia64-tdep.c (ia64_frame_prev_register): Likewise.
	* i386-tdep.c (i386_get_longjmp_target): Likewise.
	* dwarf2-frame.c (dwarf2_frame_default_init_reg): Likewise.
	* cris-tdep.c (cris_regnums, cris_sigcontext_addr)
	(cris_sigtramp_frame_unwind_cache, cris_push_dummy_call)
	(cris_scan_prologue, crisv32_scan_prologue, cris_unwind_sp)
	(cris_register_type, crisv32_register_type)
	(cris_dwarf2_frame_init_reg): Likewise.
	* arch-utils.c (legacy_virtual_frame_pointer): Likewise.
	* amd64-tdep.c (amd64_frame_prev_register): Likewise.
	* amd64-linux-tdep.c (amd64_linux_sigcontext_addr): Likewise.
	* libunwind-frame.c (libunwind_frame_cache): Likewise.

	* gdbarch.sh (PC_REGNUM): Replace by gdbarch_pc_regnum.
	* regcache.c (read_pc_pid, generic_target_write_pc): Likewise.
	* xtensa-tdep.c (xtensa_register_type, xtensa_supply_gregset)
	(xtensa_unwind_pc, xtensa_frame_cache, xtensa_frame_prev_register)
	(xtensa_extract_return_value, xtensa_store_return_value): Likewise.
	* v850-tdep.c (v850_unwind_pc): Likewise.
	* stack.c (frame_info): Likewise.
	* sh-tdep.c (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_dwarf2_frame_init_reg, sh_frame_prev_register, sh_unwind_pc)
	(sh_dsp_show_regs): Likewise.
	* shnbsd-tdep.c (shnbsd_supply_gregset)
	(shnbsd_collect_gregset): Likewise.
	* shnbsd-nat.c (GETREGS_SUPPLIES): Likewise.
	* sh64-tdep.c (sh64_compact_reg_base_num, sh64_show_media_regs)
	(sh64_frame_prev_register, sh64_unwind_pc): Likewise.
	* rs6000-tdep.c (ppc_supply_gregset, ppc_collect_gregset)
	(6000_register_reggroup_p, rs6000_unwind_pc)
	(rs6000_frame_cache): Likewise.
	* rs6000-nat.c (regmap, rs6000_fetch_inferior_registers)
	(rs6000_store_inferior_registers): Likewise.
	* remote-mips.c (mips_wait, mips_load): Likewise.
	* procfs.c (procfs_fetch_registers, procfs_store_registers): Likewise.
	* ppcobsd-tdep.c (ppcobsd_sigtramp_frame_cache): Likewise.
	* ppcobsd-nat.c (ppcobsd_supply_pcb): Likewise.
	* ppcnbsd-tdep.c (ppcnbsd_sigtramp_cache_init): Likewise.
	* ppcnbsd-nat.c (getregs_supplies, ppcnbsd_supply_pcb): Likewise.
	* ppc-linux-tdep.c (ppc_linux_sigtramp_cache): Likewise.
	* ppc-linux-nat.c (ppc_register_u_addr, fetch_ppc_registers)
	(store_ppc_registers, fill_gregset): Likewise.
	* mips-tdep.c (mips_stub_frame_cache, mips_gdbarch_init): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_supply_reg, mipsnbsd_fill_reg): Likewise.
	* mipsnbsd-nat.c (getregs_supplies): Likewise.
	* m68k-tdep.c (m68k_register_type, m68k_unwind_pc): Likewise.
	* m68klinux-nat.c (supply_gregset): Likewise.
	* irix5-nat.c (fill_gregset): Likewise.
	* i386-tdep.c (i386_unwind_pc): Likewise.
	* i386-linux-nat.c (i386_linux_resume): Likewise.
	* frame.c (get_prev_frame_1): Likewise.
	* dwarf2-frame.c (dwarf2_frame_default_init_reg): Likewise.
	* dbug-rom.c (dbug_supply_register): Likewise.
	* cris-tdep.c (cris_sigtramp_frame_unwind_cache, cris_scan_prologue)
	(crisv32_scan_prologue, cris_unwind_pc, cris_register_size)
	(cris_register_type, crisv32_register_type, crisv32_register_name)
	(cris_dwarf2_frame_init_reg, find_step_target)
	(cris_software_single_step, cris_supply_gregset)
	(cris_regnums): Likewise.
	* alpha-linux-nat.c (alpha_linux_register_u_offset): Likewise.
	* aix-thread.c (special_register_p, supply_sprs64, supply_sprs32)
	(fill_sprs64, fill_sprs32, store_regs_user_thread): Likewise.
	* std-regs.c (value_of_builtin_frame_pc_reg): Likewise.
	* mips-linux-tdep.c (mips_linux_write_pc): Likewise.

	* gdbarch.sh (PS_REGNUM): Replace by gdbarch_ps_regnum.
	* dbug-rom.c (dbug_supply_register): Likewise.
	* xtensa-tdep.c (xtensa_supply_gregset, xtensa_frame_cache)
	(xtensa_frame_prev_register, xtensa_push_dummy_call): Likewise.
	* win32-nat.c (win32_resume): Likewise.
	* std-regs.c (value_of_builtin_frame_ps_reg): Likewise.
	* m68k-tdep.c (m68k_register_type): Likewise.
	* m68klinux-nat.c (supply_gregset): Likewise.

	* gdbarch.sh (FP0_REGNUM): Replace by gdbarch_fp0_regnum.
	* sh-tdep.c (sh_extract_return_value_fpu, sh_store_return_value_fpu)
	(sh2e_show_regs, sh2a_show_regs, sh3e_show_regs, sh4_show_regs)
	(sh_sh2a_register_type, sh_sh3e_register_type, sh_sh4_register_type)
	(fv_reg_base_num, dr_reg_base_num): Likewise.
	* sh64-tdep.c (sh64_fv_reg_base_num, sh64_dr_reg_base_num)
	(sh64_fpp_reg_base_num, sh64_compact_reg_base_num, sh64_push_dummy_call)
	(sh64_extract_return_value, sh64_store_return_value)
	(sh64_show_media_regs, sh64_show_compact_regs, sh64_register_type)
	(sh64_do_fp_register, sh64_media_print_registers_info): Likewise.
	* procfs.c (procfs_fetch_registers, procfs_store_registers)
	(invalidate_cache): Likewise.
	* ppc-linux-tdep.c (ppc_linux_sigtramp_cache): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_supply_fpreg)
	(mipsnbsd_fill_fpreg): Likewise.
	* mipsnbsd-nat.c (mipsnbsd_fetch_inferior_registers)
	(mipsnbsd_store_inferior_registers): Likewise.
	* mips-linux-tdep.c (mips_supply_fpregset, mips_fill_fpregset)
	(mips64_supply_fpregset, mips64_fill_fpregset): Likewise.
	* mips-linux-nat.c (mips64_linux_register_addr): Likewise.
	* m68k-tdep.c (m68k_register_type, m68k_convert_register_p): Likewise.
	* m68klinux-nat.c (getfpregs_supplies, supply_fpregset)
	(fill_fpregset): Likewise.
	* irix5-nat.c (supply_fpregset, fill_fpregset): Likewise.
	* i386-tdep.h (struct_return): Likewise (comment).
	* i386-nto-tdep.c (i386nto_register_area): Likewise.
	* go32-nat.c (fetch_register, go32_fetch_registers, store_register)
	(go32_store_registers): Likewise.
	* alpha-tdep.c (alpha_next_pc): Likewise.
	* alpha-linux-nat.c (alpha_linux_register_u_offset): Likewise.
	* alphabsd-nat.c (alphabsd_fetch_inferior_registers)
	(alphabsd_store_inferior_registers): Likewise.
	* core-regset.c (fetch_core_registers): Likewise.
	* i386v4-nat.c (supply_fpregset, fill_fpregset): Likewise.

	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* coffread.c (coff_sym_fns): Add default_symfile_segments.
	* dbxread.c (start_psymtab): Check HAVE_ELF.
	(aout_sym_fns): Likewise.
	* elfread.c (elf_symfile_segments): New.
	(elf_sym_fns): Add elf_symfile_segments.
	* mipsread.c (ecoff_sym_fns): Add default_symfile_segments.
	* remote.c (get_offsets): Use symfile_map_offsets_to_segments.
	Skip if there is no symfile_objfile.  Handle TextSeg and DataSeg.
	* somread.c (som_sym_fns): Use default_symfile_segments.
	* symfile.c (find_sym_fns): Take a BFD and return the sym_fns.
	(init_objfile_sect_indices): Call symfile_find_segment_sections.
	(default_symfile_segments): New function.
	(syms_from_objfile): Update call to find_sym_fns.
	(symfile_get_segment_data, free_symfile_segment_data): New.
	(symfile_map_offsets_to_segments): New.
	(symfile_find_segment_sections): New.
	* symfile.h (struct symfile_segment_data): New.
	(struct sym_fns): Add sym_segments.
	(default_symfile_segments, symfile_get_segment_data)
	(free_symfile_segment_data): New prototypes.
	(symfile_map_offsets_to_segments): Likewise.
	* xcoffread.c (xcoff_sym_fns): Add default_symfile_segments.
	* Makefile.in (COMMON_OBS): Remove elfread.o.
	(elf_internal_h): New.
	(elfread.o): Update.
	* configure.ac: Add elfread.o to COMMON_OBS if bfd/elf.o was
	compiled.
	* config.in, configure: Regenerated.
	* NEWS: Mention qOffsets changes.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbtypes.h (builtin_type_m2_char, builtin_type_m2_int,
	builtin_type_m2_card, builtin_type_m2_real, builtin_type_m2_bool):
	Replace global variable declaration with compatibility macro.
	(struct builtin_m2_type): New data type.
	(builtin_m2_type): Add prototype.
	* m2-lang.c (builtin_type_m2_char, builtin_type_m2_int,
	builtin_type_m2_card, builtin_type_m2_real, builtin_type_m2_bool):
	Remove global variables.
	(m2_language_arch_info): Use builtin_m2_type instead of variables.
	(build_m2_types): New function.
	(m2_type_data): New variable.
	(builtin_m2_type): New function.
	(_initialize_m2_language): Do not build data types.  Register
	m2_type_data per-gdbarch data.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbtypes.h (builtin_type_f_character, builtin_type_f_logical,
	builtin_type_f_logical_s1, builtin_type_f_logical_s2,
	builtin_type_f_integer, builtin_type_f_integer_s2, builtin_type_f_real,
	builtin_type_f_real_s8, builtin_type_f_real_s16,
	builtin_type_f_complex_s8, builtin_type_f_complex_s16,
	builtin_type_f_complex_s32, builtin_type_f_void): Replace global
	variable declaration with compatibility macro.
	(struct builtin_f_type): New data type.
	(builtin_f_type): Add prototype.
	* f-lang.c (builtin_type_f_character, builtin_type_f_logical,
	builtin_type_f_logical_s1, builtin_type_f_logical_s2,
	builtin_type_f_integer, builtin_type_f_integer_s2, builtin_type_f_real,
	builtin_type_f_real_s8, builtin_type_f_real_s16,
	builtin_type_f_complex_s8, builtin_type_f_complex_s16,
	builtin_type_f_complex_s32, builtin_type_f_void): Remove variables.
	(f_language_arch_info): Use builtin_f_type instead of variables.
	(build_fortran_types): Build builtin_f_type structure instead of
	setting global type variables.
	(f_type_data): New variable.
	(builtin_f_type): New function.
	(_initialize_f_language): Do not call build_fortran_types.  Do not
	swap global type variables.  Register f_type_data per-gdbarch data.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* f-lang.c (_initialize_f_language): Do not initialize or
	swap builtin_type_string.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* std-regs.c (builtin_type_frame_reg, build_builtin_type_frame_reg,
	value_of_builtin_frame_reg): Remove.
	(_initialize_frame_reg): Do not swap builtin_type_frame_reg.  Remove
	inactive call to value_of_builtin_frame_reg.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (bfd_vma_bit): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.

	* gdbtypes.h (builtin_bfd_vma_type): Remove.
	* gdbtypes.h (builtin_bfd_vma_type): Remove.
	(build_gdbtypes): Do not initialize it.
	(_initialize_gdbtypes): Do not swap it.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbtypes.c (builtin_type_v2_double, builtin_type_v4_float, 
	builtin_type_v2_int64, builtin_type_v4_int32, builtin_type_v8_int16,
	builtin_type_v16_int8, builtin_type_v2_float, builtin_type_v2_int32,
	builtin_type_v4_int16, builtin_type_v8_int8, builtin_type_v4sf,
	builtin_type_v4si, builtin_type_v16qi, builtin_type_v8qi, 
	builtin_type_v8hi, builtin_type_v4hi, builtin_type_v2si,
	builtin_type_vec64, builtin_type_vec128): Remove.
	(init_simd_type): Remove.
	(init_vector_type): Make global.
	(build_builtin_type_vec64, build_builtin_type_vec128): Remove.
	(build_gdbtypes): Do not build vector types.
	(_initialize_gdbtypes): Do not swap vector types.
	* gdbtypes.h (builtin_type_v2_double, builtin_type_v4_float, 
	builtin_type_v2_int64, builtin_type_v4_int32, builtin_type_v8_int16,
	builtin_type_v16_int8, builtin_type_v2_float, builtin_type_v2_int32,
	builtin_type_v4_int16, builtin_type_v8_int8, builtin_type_v4sf,
	builtin_type_v4si, builtin_type_v16qi, builtin_type_v8qi, 
	builtin_type_v8hi, builtin_type_v4hi, builtin_type_v2si,
	builtin_type_vec64, builtin_type_vec128): Remove declarations.
	(init_vector_type): Add prototype.

	* i386-tdep.h (struct gdbarch_tdep): Add i386_mmx_type and
	i386_sse_type members.
	(i386_mmx_type, i386_sse_type): Change from variables to functions.
	* i386-tdep.c (i386_mmx_type, i386_sse_type): Remove variables.
	(i386_init_types): Do not build vector types.
	(i386_mmx_type, i386_sse_type): New functions.
	(i386_register_type): Call them instead of using global variables.
	(i386_gdbarch_init): Use XCALLOC to allocate tdep structure.
	* amd64-tdep.c (amd64_register_type): Call i386_sse_type instead
	of using global variable.

	* rs6000-tdep.h (struct gdbarch_tdep): Add ppc_builtin_type_vec64
	and ppc_builtin_type_vec128 members.
	* rs6000-tdep.c (rs6000_builtin_type_vec64): New function.
	(rs6000_builtin_type_vec128): Likewise.
	(rs6000_register_type): Call them instead of using builtin_type_vec64
	and builtin_type_vec128.
	(rs6000_gdbarch_init): Use XCALLOC to allocate tdep structure.

	* spu-tdep.c (struct gdbarch_tdep): New data type.
	(spu_builtin_type_vec128): Remove variable.
	(spu_builtin_type_vec128): New function.
	(spu_register_type): Call it instead of using global variable.
	(spu_gdbarch_init): Allocate tdep structure.
	(spu_init_vector_type): Remove function.
	(_initialize_spu_tdep): Do not call it.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* amd64-tdep.c (struct amd64_register_info): Remove.
	(amd64_register_info): Remove.
	(amd64_register_names): New static variable.
	(AMD64_NUM_REGS): Use amd64_register_names instead of
	amd64_register_info.
	(amd64_register_name): Likewise.
	(amd64_register_type): Do not refer to amd64_register_info.

	* s390-tdep.c (struct s390_register_info): Remove.
	(s390_register_info): Remove.
	(s390_register_name): Do not refer to s390_register_info.
	(s390_register_type): Likewise.

	* sparc64-tdep.c (struct sparc64_register_info): Remove.
	(sparc64_register_info, sparc64_pseudo_register_info): Remove.
	(sparc64_register_names, sparc64_pseudo_register_names): New.
	(SPARC64_NUM_REGS, SPARC64_NUM_PSEUDO_REGS): Use
	sparc64_register_names and sparc64_pseudo_register_names instead of
	sparc64_register_info and sparc64_pseudo_register_info.
	(sparc64_register_name): Likewise.
	(sparc64_register_type): Do not refer to sparc64_register_info
	and sparc64_pseudo_register_info.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* c-lang.c (cplus_builtin_types): Remove.
	(enum cplus_primitive_types): New data type.
	(cplus_language_arch_info): New function.
	(cplus_language_defn): Set la_language_arch_info member.  Do not set
	la_builtin_type_vector and string_char_type members.

	* f-lang.c (f_builtin_types): Remove.
	(enum f_primitive_types): New data type.
	(f_language_arch_info): New function.
	(f_language_de): Set la_language_arch_info member.  Do not set
	la_builtin_type_vector and string_char_type members.

	* m2-lang.c (m2_builtin_types): Remove.
	(enum m2_primitive_types): New data type.
	(m2_language_arch_info): New function.
	(m2_language_defn): Set la_language_arch_info member.  Do not set
	la_builtin_type_vector and string_char_type members.

	* objc-lang.c (objc_builtin_types): Remove.
	(objc_language): Set la_language_arch_info member.  Do not set
	la_builtin_type_vector and string_char_type members.

	* p-lang.c (pascal_builtin_types): Remove.
	(enum pascal_primitive_types): New data type.
	(pascal_language_arch_info): New function.
	(pascal_language_defn): Set la_language_arch_info member.  Do not set
	la_builtin_type_vector and string_char_type members.

2007-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* regcache.c (struct regcache): Add ptid_t member.
	(regcache_xmalloc): Initialize it.
	(regcache_cpy_no_passthrough): Do not refer to current_regcache.
	(regcache_dup): Likewise.
	(regcache_dup_no_passthrough): Likewise.
	(current_regcache): Make static.
	(registers_ptid): Remove variable.
	(get_thread_regcache): New function.
	(get_current_regcache): New function.
	(registers_changed): Implement by freeing current regcache.
	(regcache_raw_read): Do not refer to current_regcache.  Set 
	inferior_ptid to regcache->ptid while calling target routines.
	(regcache_raw_write): Likewise.
	(regcache_raw_supply): Do not refer to current_regcache.
	(read_pc_pid): Use thread regcache.  Do not modify inferior_ptid.
	(write_pc_pid): Likewise.
	(build_regcache): Remove.
	(_initialize_regcache): Do not call DEPRECATED_REGISTER_GDBARCH_SWAP
	or deprecated_register_gdbarch_swap.  Do not initialize
	registers_ptid.
	* regcache.h (get_current_regcache): Add prototype.
	(get_thread_regcache): Likewise.
	(current_regcache): Remove declaration.

	* corelow.c (core_open): Replace current_regcache by
	get_current_regcache ().
	* frame.c (frame_pop): Likewise.
	(put_frame_register): Likewise.
	(get_current_frame, create_new_frame): Likewise.
	* mi/mi-main.c (mi_cmd_data_write_register_values): Likewise.
	* stack.c (return_command): Likewise.
	* infcall.c (call_function_by_hand): Likewise.
	* infrun.c (resume): Likewise.
	(save_inferior_status, restore_inferior_status): Likewise.
	* linux-fork.c (fork_load_infrun_state): Likewise.
	(fork_save_infrun_state): Likewise.
	* win32-nat.c (win32_resume): Likewise.
	* i386fbsd-nat.c (i386fbsd_resume): Likewise.
	* monitor.c (monitor_wait): Likewise.
	* remote.c (remote_wait): Likewise.
	* remote-mips.c (mips_wait): Likewise.

	* bsd-kvm.c (bsd_kvm_open): Likewise
	(bsd_kvm_proc_cmd, bsd_kvm_pcb_cmd): Likewise.
	* fbsd-nat.c (fbsd_make_corefile_notes): Likewise.
	* i386-linux-nat.c (i386_linux_resume): Likewise.
	* ia64-linux-nat.c (ia64_linux_insert_watchpoint): Likewise.
	(ia64_linux_stopped_data_address): Likewise.

	* frv-tdep.c (frv_fdpic_loadmap_addresses): Likewise.
	* m32c-tdep.c (m32c_virtual_frame_pointer): Likewise.
	* mep-tdep.c (current_me_module, current_options): Likewise.
	* mips-tdep.c (deprecated_mips_set_processor_regs_hack): Likewise.

	* linux-nat.c (linux_nat_do_thread_registers): Use thread
	regcache instead of current_regcache.  Call target_fetch_registers.
	(linux_nat_corefile_thread_callback): Update call site.
	(linux_nat_do_registers): Likewise.
	* procfs.c (procfs_do_thread_registers): Use thread regcache instead
	of current_regcache.
	(procfs_make_note_section): Likewise.
	* proc-service.c (ps_lgetregs, ps_lsetregs): Likewise.
	(ps_lgetfpregs, ps_lsetfpregs): Likewise.
	* sol-thread.c (ps_lgetregs, ps_lsetregs): Likewise.
	(ps_lgetfpregs, ps_lsetfpregs): Likewise.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* regcache.c (read_register, read_register_pid): Remove.
	(write_register, write_register_pid): Likewise.
	* regcache.h (read_register, read_register_pid): Remove prototype.
	(write_register, write_register_pid): Likewise.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (read_pc): Add REGCACHE argument.  Remove PTID argument.
	(write_pc): Likewise.  Remove default implementation, add predicate.
	* gdbarch.c, gdbarch.h: Regenerate.
	* regcache.c (read_pc_pid): Use current regcache instead of calling
	read_register_pid.
	(write_pc_pid): Check gdbarch_write_pc predicate, implement default
	case inline.
	(generic_target_write_pc): Remove.
	* inferior.h (generic_target_write_pc): Remove.
	* frv-tdep.c (frv_gdbarch_init): Do not install it.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Likewise.
	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
	* sh64-tdep.c (sh64_gdbarch_init): Likewise.
	* sh-tdep.c (sh_gdbarch_init): Likewise.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.

	* avr-tdep.c (avr_read_pc): Add REGCACHE argument.  Remove PTID
	argument.  Use REGCACHE instead of calling read_register_pid.
	* hppa-hpux-tdep.c (hppa_hpux_read_pc): Likewise.
	* hppa-tdep.c (hppa_read_pc): Likewise.
	* hppa-tdep.h (hppa_read_pc): Likewise.
	* ia64-tdep.c (ia64_read_pc): Likewise.
	* m32r-tdep.c (m32r_read_pc): Likewise.
	* mep-tdep.c (mep_read_pc): Likewise.
	* mn10300-tdep.c (mn10300_read_pc): Likewise.
	* spu-tdep.c (spu_read_pc): Likewise.

	* arm-tdep.c (arm_write_pc): Add REGCACHE argument.  Remove PTID
	argument.  Use REGCACHE instead of calling write_register_pid.
	* avr-tdep.c (avr_write_pc): Likewise.
	* hppa-hpux-tdep.c (hppa_hpux_write_pc): Likewise.
	* hppa-tdep.c (hppa_write_pc): Likewise.
	* hppa-tdep.h (hppa_write_pc): Likewise.
	* i386-linux-tdep.c (i386_linux_write_pc): Likewise.
	* amd64-linux-tdep.c (amd64_linux_write_pc): Likewise.
	* ia64-linux-tdep.c (ia64_linux_write_pc): Likewise.
	* ia64-tdep.c (ia64_write_pc): Likewise.
	* ia64-tdep.h (ia64_write_pc): Likewise.
	* m32r-tdep.c (m32r_write_pc): Likewise.
	* m88k-tdep.c (m88k_write_pc): Likewise.
	* mep-tdep.c (mep_write_pc): Likewise.
	* mips-tdep.c (mips_write_pc): Likewise.
	* mips-linux-tdep.c (mips_linux_write_pc): Likewise.
	* mn10300-tdep.c (mn10300_write_pc): Likewise.
	* sparc-tdep.c (sparc_write_pc): Likewise.
	* spu-tdep.c (spu_write_pc): Likewise.

	* mips-tdep.c (read_signed_register): Remove.
	(read_signed_register_pid): Likewise.
	(mips_read_pc): Add REGCACHE argument.  Remove PTID argument.
	Use REGCACHE instead of calling read_signed_register_pid.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (push_dummy_code): Add REGCACHE argument.
	* gdbarch.c, gdbarch.h: Regenerate.
	* infcall.c (generic_push_dummy_code): Add REGCACHE argument.
	(push_dummy_code): Likewise.  Pass it to callee.
	(call_function_by_hand): Pass current regcache to push_dummy_code.

	* hppa-hpux-tdep.c (hppa_hpux_push_dummy_code): Add REGCACHE
	argument.  Use it instead of current_regcache.

	* cris-tdep.c (cris_push_dummy_code): Add REGCACHE argument.
	* sparc-tdep.c (sparc32_push_dummy_code): Likewise.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (get_longjmp_target): Add FRAME argument.
	* gdbarch.c, gdbarch.h: Regenerate.
	* infrun.c (handle_inferior_event): Pass current frame to
	gdbarch_get_longjmp_target.

	* alpha-tdep.c (alpha_get_longjmp_target): Add FRAME argument.
	Read registers from FRAME instead of using read_register.
	Use get_frame_arch instead of current_gdbarch.
	* arm-tdep.c (arm_get_longjmp_target): Likewise.
	* i386-tdep.c (i386_get_longjmp_target): Likewise.
	* m68k-tdep.c (m68k_get_longjmp_target): Likewise.
	* mips-linux-tdep.c (mips_linux_get_longjmp_target): Likewise.
	(mips64_linux_get_longjmp_target): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_get_longjmp_target): Likewise.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (skip_trampoline_code): Add FRAME argument.
	* gdbarch.c, gdbarch.h: Regenerate.
	* arch-utils.c (generic_skip_trampoline_code): Add FRAME argument.
	* arch-utils.h (generic_skip_trampoline_code): Likewise.
	* infrun.c (handle_inferior_event): Pass current frame to
	gdbarch_skip_trampoline_code and skip_language_trampoline.

	* language.c (unk_lang_trampoline): Add FRAME argument.
	(skip_language_trampoline): Add FRAME argument.  Pass it to
	skip_trampoline callback.
	* language.h: Add forward declaration of struct frame_info.
	(struct language_defn): Add FRAME argument to skip_trampoline.
	(skip_language_trampoline): Add FRAME argument.
	* cp-abi.c (cplus_skip_trampoline): Add FRAME argument.  Pass it
	to skip_trampoline callback.
	* cp-abi.h: Add forward declaration of struct frame_info.
	(cplus_skip_trampoline): Add FRAME argument.
	(struct cp_abi_ops): Add FRAME argument to skip_trampoline callback.
	* gnu-v3-abi.c (gnuv3_skip_trampoline): Add FRAME argument.  Pass it
	to gdbarch_skip_trampoline_code.
	* objc-lang.c (objc_skip_trampoline): Add FRAME argument.  Pass it
	to gdbarch_skip_trampoline_code.

	* minsyms.c (find_solib_trampoline_target): Add FRAME argument.
	* symtab.h (find_solib_trampoline_target): Likewise.
	* obsd-tdep.c (obsd_skip_solib_resolver): Pass current frame to
	find_solib_trampoline_target.

	* arm-tdep.c (arm_skip_stub): Add FRAME argument.  Read registers
	from FRAME instead of calling read_register.

	* hppa-hpux-tdep.c (hppa_hpux_skip_trampoline_code): Add FRAME
	argument.  Read registers from FRAME instead of using read_register.
	* hppa-tdep.c (hppa_skip_trampoline_code): Likewise.
	* hppa-tdep.h (hppa_skip_trampoline_code): Add FRAME argument.

	* i386-cygwin-tdep.c (i386_cygwin_skip_trampoline_code): Add FRAME
	argument.

	* m32c-tdep.c (m32c_skip_trampoline_code): Add FRAME argument.

	* mips-tdep.c (mips_skip_trampoline_code): Add FRAME argument.  Read
	registers from FRAME instead of using read_signed_register.

	* ppc-linux-tdep.c (ppc_linux_skip_trampoline_code): Add FRAME
	argument.
	(ppc64_standard_linkage_target): Likewise.  Read registers from FRAME
	instead of using read_register.
	(ppc64_skip_trampoline_code): Add FRAME argument.  Pass it to
	ppc64_standard_linkage_target.
	* rs6000-tdep.c (rs6000_skip_trampoline_code): Add FRAME argument.
	Pass it to find_solib_trampoline_target.  Read registers from FRAME
	instead of using read_register.

	* xstormy16-tdep.c (xstormy16_skip_trampoline_code): Add FRAME
	argument.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (software_single_step): Replace REGCACHE argument by
	FRAME argument.
	* gdbarch.c, gdbarch.h: Regenerate.
	* infrun.c (resume): Pass current frame to SOFTWARE_SINGLE_STEP.

	* alpha-tdep.c (alpha_next_pc): Add FRAME argument.  Retrieve
	registers from FRAME instead of using read_register.
	(alpha_software_single_step): Replace REGCACHE by FRAME.  Pass FRAME
	to alpha_next_pc.  Use get_frame_pc instead of read_pc.
	* alpha-tdep.h (alpha_software_single_step): Replace REGCACHE
	argument by FRAME.

	* arm-tdep.c (shifted_reg_val): Add FRAME argument.  Read registers
	from FRAME instead of using read_register.
	(thumb_get_next_pc): Likewise.
	(arm_get_next_pc): Likewise.
	(arm_software_single_step): Replace REGCACHE by FRAME.  Pass FRAME
	to arm_get_next_pc.  Use get_frame_pc instead of read_register.
	* arm-tdep.h (arm_software_single_step): Replace REGCACHE
	argument by FRAME.

	* cris-tdep.c (find_step_target): Add FRAME argument.  Read registers
	from FRAME instead of using read_register.
	(cris_software_single_step): Replace REGCACHE by FRAME.  Pass FRAME
	to find_step_target.

	* mips-tdep.c (mips32_next_pc): Add FRAME argument.  Read registers
	from FRAME instead of using read_register / read_signed_register.
	(extended_mips16_next_pc): Likewise.
	(mips16_next_pc): Likewise.
	(mips_next_pc): Likewise.
	(mips_software_single_step): Replace REGCACHE by FRAME.  Pass FRAME
	to mips_next_pc.  Use get_frame_pc instead of read_pc.
	* mips-tdep.h (mips_software_single_step): Replace REGCACHE
	argument by FRAME.

	* rs6000-tdep.c (branch_dest): Add FRAME argument.  Use it instead
	of current frame.  Read registers from FRAME.
	(deal_with_atomic_sequence): Add FRAME argument.  Pass it to
	branch_dest.  Use get_frame_pc instead of read_pc.
	(rs6000_software_single_step): Likewise.
	(bl_to_blrl_insn_p): Do not call branch_dest.
	* rs6000-tdep.h (rs6000_software_single_step): Replace REGCACHE
	argument by FRAME.

	* sparc64-linux-tdep.c (sparc64_linux_step_trap): Add FRAME argument.
	Read registers from FRAME instead of current regcache.
	* sparc-linux-tdep.c (sparc32_linux_step_trap): Likewise.
	* sparcnbsd-tdep.c (sparcnbsd_step_trap): Likewise.
	* sparc-tdep.c (sparc_address_from_register): Remove.
	(sparc_analyze_control_transfer): Pass FRAME argument instead of
	GDBARCH.  Pass FRAME to step_trap callback.
	(sparc_step_trap): Add FRAME argument.
	(space_software_single_step): Replace REGCACHE by FRAME.  Pass FRAME
	to sparc_analyze_control_transfer.  Read registers from FRAME instead
	of calling sparc_address_from_register.
	* sparc-tdep.h (struct gdbarch_tdep): Add FRAME argument to
	step_trap callback.
	(sparc_address_from_register): Remove prototype.
	(sparc_software_single_step): Replace REGCACHE argument by FRAME.
	(sparcnbsd_step_trap): Add FRAME argument.

	* spu-tdep.c (spu_software_single_step): Replace REGCACHE argument
	by FRAME.  Read registers from FRAME instead of REGCACHE.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* arm-tdep.c (arm_print_float_info): Use register value from FRAME
	instead of calling read_register.

	* avr-tdep.c (avr_push_dummy_call): Write to REGCACHE instead of
	calling write_register.

	* hppa-tdep.c (hppa32_push_dummy_call): Write to REGCACHE instead of
	calling write_register.

	* ia64-tdep.c (find_func_descr): Add REGCACHE parameter.  Use it
	instead of calling read_register.
	(ia64_push_dummy_call): Update call to find_func_descr.  Use REGCACHE
	instead of calling read_register and write_register.

	* m32r-tdep.c (m32r_linux_supply_gregset): Use REGCACHE parameter
	instead of current_regcache.

	* mn10300-tdep.c (mn10300_push_dummy_call): Write to REGCACHE instead
	of calling write_register.
	* mn10300-linux-tdep.c (am33_supply_fpregset_method): Use REGCACHE
	parameter instead of current_regcache.

	* mips-tdep.c (mips2_fp_compat): Add FRAME parameter.  Use it 
	instead of calling read_register.
	(mips_read_fp_register_double, mips_print_fp_register): Update calls.
	(mips_eabi_push_dummy_call): Use REGCACHE instead of write_register.
	(mips_n32n64_push_dummy_call): Likewise.
	(mips_o32_push_dummy_call): Likewise.
	(mips_o64_push_dummy_call): Likewise.

	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Use REGCACHE
	parameter instead of current_regcache.

	* xtensa-tdep.c (xtensa_register_write_masked): Add REGCACHE parameter.
	Use it instead of read_register and write_register.
	(xtensa_register_read_masked): Likewise.
	(xtensa_pseudo_register_read): Update call.
	(xtensa_pseudo_register_write): Likewise.
	(xtensa_frame_cache): Use register values unwound from NEXT_FRAME
	instead of calling read_register.
	(xtensa_push_dummy_call): Update comment.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* mips-tdep.c (mips16_scan_prologue): Replace read_next_frame_reg
	by frame_unwind_register_signed calls.
	(mips32_scan_prologue): Likewise.  Skip analysis of alloca stack
	frame allocations when called with NULL NEXT_FRAME parameter.
	(read_next_frame_reg): Remove.

	* sh-tdep.c (sh_analyze_prologue): Add FPSCR parameter.  Use it
	instead of reading the FPSCR register.
	(sh_frame_cache): Pass unwound FPSCR register value to
	sh_analyze_prologue.
	(sh_skip_prologue): Pass dummy FPSCR value to sh_analyze_prologue.

	* v850-tdep.c (v850_analyze_prologue): Add CTBP parameter.  Use it
	instead of reading the CTBP register.
	(v850_frame_cache): Pass unwound CTBP register value to
	v850_analyze_prologue.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* sh-tdep.h (sh_show_regs): Add FRAME parameter.
	* sh-tdep.c (sh_show_regs): Likewise.
	(sh_show_regs_command): Pass current frame to sh_show_regs routine.
	(sh_generic_show_regs): Add FRAME parameter.  Use register
	values from that frame instead of calling read_register.
	(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): Likewise.
	* sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs,
	sh64_show_regs): Likewise.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* mips-tdep.c (deprecated_mips_set_processor_regs_hack): Read from
	current regcache instead of calling read_register.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* mep-tdep.c (current_me_module): Read from current regcache
	instead of calling read_register.
	(current_options): Likewise.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* cris-tdep.c (cris_stopped_data_address): Read register values
	from current frame instead of calling read_register.
	* frv-tdep.c (frv_stopped_data_address): Likewise.

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* solib-sunos.c (sunos_solib_create_inferior_hook): Use write_pc
	instead of write_register (PC_REGNUM, ...).

2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* solib-sunos.c (sunos_solib_create_inferior_hook): Add comment
	explaining why the PC adjustment code is necessary.

2007-06-15  Vladimir Prus  <vladimir@codesourcery.com>

	* m68k-tdep.h (enum m68k_flavour): New.	
	(struct gdbarch_tdep): New fields
	float_return, flavour and fpregs_present.
	* m68k-tdep.c (m68k_register_type): Use
	fpregs_present and conditionalize floating
	registers type on flavour.
	(m68k_register_names): New.
	(m68k_register_name): Use the above.
	(m68k_convert_register_p): Consult fpregs_present.
	(m68k_register_to_value, m68k_value_to_register):
	Use register_type to obtain the type of floating
	point registers.
	(m68k_svr4_extract_return_value): Check tdep->float_return.
	Use register_type to get the type of floating
	point regiters.
	(m68k_svr4_store_return_value): Likewise.
	(m68k_dwarf_reg_to_regnum): Check tdep->fpregs_present.
	(m68k_analyze_register_saves): Likewise.
	(m68k_gdbarch_init): Extract infromation
	from XML description, if present.  Guess coldfire by
	looking at the file, if present. Conditionalize
	setting of long double format.  Set decr_pc_after_break
	to 2 on coldfire and fido.  Enable XML-driven
	register description.
	* m68kbsd-tdep.c (m68kbsd_fpreg_offset): Use
	size of tdep->fpreg_type, as opposed to hardcoded value.
	* Makefile.in (m68k-tdep.o): Update dependencies.
	
2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* NEWS: Mention "info spu" commands and qXfer:spu:read and
	qXfer:spu:write remote packet types.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* xml-tdesc.c (tdesc_start_target): New.
	(target_attributes): New.
	(tdesc_elements): Use it.
	* features/gdb-target.dtd: Add #FIXED version attribute for
	<target>.

2007-06-13  Arthur Huillet  <arthur.huillet@free.fr>

	* mi/mi-cmd-var.c (mi_cmd_var_assign): Fix typo.

2007-06-13  Claudio Fontana <claudio.fontana@gmail.com>

	* fork-child.c (fork_inferior): Update comment.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* features/Makefile: Generate regformats for mips-linux and
	mips64-linux.
	* features/sort-regs.xsl: Correct typo.
	* regformats/reg-mips.dat, regformats/reg-mips64.dat: Delete.
	* regformats/mips-linux.dat, regformats/mips64-linux.dat: New generated
	files.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/linux.mh (TDEP_XML): New.
	* features/mips-linux.xml, features/mips64-linux.xml: New files.
	* mips-linux-nat.c (mips_linux_register_addr): Handle
	MIPS_RESTART_REGNUM.
	(mips64_linux_register_addr): Likewise.
	(super_xfer_partial, mips_linux_xfer_partial): New.
	(_initialize_mips_linux_nat): Add them to the target_ops.
	* mips-linux-tdep.c (mips_supply_gregset): Handle MIPS_RESTART_REGNUM.
	(mips_fill_gregset, mips64_supply_gregset, mips64_fill_gregset)
	(mips_linux_o32_sigframe_init)
	(mips_linux_n32n64_sigframe_init): Likewise.
	(mips_linux_write_pc, mips_linux_restart_reg_p): New.
	(mips_linux_init_abi): Use mips_linux_write_pc.  Check for the
	"org.gnu.gdb.mips.linux" feature.
	* mips-linux-tdep.h (MIPS_RESTART_REGNUM): New constant.
	(mips_linux_restart_reg_p): New prototype.
	* mips-tdep.c (mips_gdbarch_init): Pass tdesc_data to the OS/ABI
	initialization routine.
	* Makefile.in (mips-linux-tdep.o, mips-linux-nat.o): Update.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (mips-tdep.o): Update.
	* mips-tdep.c (struct register_alias, mips_o32_aliases)
	(mips_n32_n64_aliases, mips_register_aliases): New.
	(mips_register_name): Call tdesc_register_name.
	(mips_tdesc_register_reggroup_p): New.
	(mips_pseudo_register_type, value_of_mips_user_reg): New.
	(mips_gdbarch_init): Add target-described register support.
	Register aliases for register names.
	* target-descriptions.c (tdesc_register_name): Make global.
	(tdesc_register_in_reggroup_p): New function, broken out from
	tdesc_register_reggroup_p.
	(tdesc_register_reggroup_p): Use it.
	* target-descriptions.h (tdesc_register_name)
	(tdesc_register_in_reggroup_p): New prototypes.
	* NEWS: Correct formatting.  Mention MIPS register support.
	* features/mips-cp0.xml, features/mips-fpu.xml,
	features/mips64-cp0.xml, gdb/features/mips64-fpu.xml, mips-cpu.xml,
	features/mips64-cpu.xml: New files.

2007-06-13  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_ADDR_BIT): Replace by gdbarch_addr_bit.
	* valops.c (value_cast): Likewise.
	* utils.c (strlen_paddr, paddr, paddr_nz, paddress): Likewise.
	* ui-out.c (ui_out_field_core_addr): Likewise.
	* tracepoint.c (tracepoints_info): Likewise.
	* symtab.c (print_msymbol_info): Likewise.
	* solib-irix.c (irix_current_sos)
	(irix_open_symbol_file_object): Likewise.
	* remote.c (build_remote_gdbarch_data): Likewise.
	* prologue-value.c (make_pv_area): Likewise.
	* procfs.c (info_mappings_callback): Likewise.
	* printcmd.c (print_scalar_formatted)
	(deprecated_print_address_numeric): Likewise.
	* memattr.c (mem_info_command): Likewise.
	* linux-nat.c (linux_nat_info_proc_cmd): Likewise.
	* gdbtypes.c (build_flt, gdbtypes_post_init): Likewise.
	* exec.c (print_section_info): Likewise.
	* dwarf2read.c (read_subrange_type): Likewise.
	* dwarf2loc.c (find_location_expression): Likewise.
	* dwarf2expr.c (dwarf2_read_address, unsigned_address_type)
	(signed_address_type, execute_stack_op): Likewise.
	* breakpoint.c (print_one_breakpoint, breakpoint_1): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-13  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_ARCHITECTURE): Replace by gdbarch_bfd_arch_info.
	* arch-utils.c (show_architecture): Likewise.
	* remote-mips.c (mips_open): Likewise
	* nto-tdep.c (nto_find_and_open_solib)
	(nto_init_solib_absolute_prefix): Likewise.
	* nto-procfs (procfs_open): Likewise.
	* m68hc11-tdep.c (gdb_print_insn_m68hc11): Likewise.
	* gcore.c (default_gcore_mach, default_gcore_arch): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-13  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_BFD_VMA_BIT): Replace by gdbarch_bfd_vma_bit.
	* gdbtypes.c (build_flt): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-13  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (BREAKPOINT_FROM_PC): Replace by
	gdbarch_breakpoint_from_pc.
	* s390-tdep.c (s390_gdbarch_init): Likewise (comment).
	* remote.c (remote_insert_breakpoint)
	(remote_insert_hw_breakpoint): Likewise.
	* ppc-linux-tdep.c (ppc_linux_memory_remove_breakpoint): Likewise.
	* mips-tdep.c (mips_breakpoint_from_pc): Likewise (comment).
	* breakpoint.h (bp_target_info): Likewise (comment).
	* breakpoint.c (read_memory_nobpt): Likewise.
	* mem-break.c (default_memory_insert_breakpoint): Likewise.
	(symtab.h, breakpoint.h): Remove include. Remove unnecessary comment.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-13  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_PTR_BIT): Replace with gdbarch_ptr_bit.
	* solib-svr4.c (svr4_truncate_ptr): Likewise.
	* solib-pa64.c (read_dynamic_info): Likewise.
	* solib-legacy.c (legacy_svr4_fetch_link_map_offsets): Likewise.
	* solib.c (info_sharedlibrary_command): Likewise.
	* s390-nat.c (SUBOFF): Likewise.
	* p-valprint.c (pascal_val_print): Likewise.
	* procfs.c (info_proc_mappings): Likewise.
	* printcmd.c (decode_format): Likewise.
	* nto-tdep.c (nto_truncate_ptr): Likewise.
	* mips-linux-tdep.c (mips_linux_get_longjmp_target)
	(mips64_linux_get_longjmp_target): Likewise.
	* m68k-tdep.c (m68k_get_longjmp_target): Likewise.
	* jv-valprint.c (java_value_print): Likewise.
	* jv-lang.c (get_java_object_header_size): Likewise.
	* hppa-tdep.c (skip_prologue_hard_way, hppa_frame_cache): Likewise.
	* hppa-hpux-tdep.c (hppa_hpux_skip_trampoline_code)
	(hppa_hpux_unwind_adjust_stub): Likewise.
	* gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
	* gdbtypes.c (make_pointer_type, make_reference_type)
	(smash_to_memberptr_type): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-tdep.c (mips_print_register): Remove unused ALL argument.
	(print_gp_register_row): Stop before printing a register bigger
	than the ABI register size.
	(mips_print_registers_info): Update call to mips_print_register.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* expression.h (enum exp_opcode): Document a register name for
	OP_REGISTER.
	* parse.c (write_dollar_variable): Write the register name for
	OP_REGISTER.
	(operator_length_standard): Expect the register name following
	OP_REGISTER.
	* ada-lang.c (resolve_subexp): Likewise.
	* ax-gdb.c (gen_expr): Likewise.
	* eval.c (evaluate_subexp_standard): Likewise.
	* expprint.c (print_subexp_standard, dump_subexp_body_standard):
	Likewise.
	* tracepoint.c (encode_actions): Likewise.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* utils.c (set_screen_size): Use INT_MAX for default columns.

2007-06-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* remote.c (remote_protocol_features): Add qXfer:spu:read and
	qXfer:spu:write packet types.

2007-06-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (DEPRECATED_STACK_ALIGN): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (STAB_REG_TO_REGNUM): Replace by
	gdbarch_stab_reg_to_regnum.
	* stabsread.c (define_symbol): Likewise.
	* gdbarch.sh (ECOFF_REG_TO_REGNUM): Replace by
	gdbarch_ecoff_reg_to_regnum.
	* mdebugread.c (parse_symbol): Likewise.
	* i386-tdep.c (i386_gdbarch_init): Likewise (comment).
	* gdbarch.sh (DWARF_REG_TO_REGNUM): Replace by
	gdbarch_dwarf_reg_to_regnum.
	* gdbarch.sh (SDB_REG_TO_REGNUM): Replace by gdbarch_sdb_reg_to_regnum.
	* coffread.c (process_coff_symbol): Likewise.
	* gdbarch.sh (DWARF2_REG_TO_REGNUM): Replace by
	gdbarch_dwarf2_reg_to_regnum.
	* dwarf2loc.c (dwarf_expr_read_reg,dwarf2_evaluate_loc_desc)
	(locexpr_describe_location): Likewise.
	* dwarf2-frame.c (read_reg,execute_cfa_program,dwarf2_frame_cache)
	(dwarf2_frame_prev_register,dwarf2_signal_frame_this_id): Likewise.
	* dwarf2loc.c (DWARF2_REG_TO_REGNUM): Remove macro.
	* dwarf2read.c (DWARF2_REG_TO_REGNUM): Remove macro.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (SMASH_TEXT_ADDRESS): Replace by
	gdbarch_smash_text_address.
	* somread.c (som_symtab_read): Likewise.
	* elfread.c (record_minimal_symbol): Likewise.
	* dbxread.c (process_one_symbol): Likewise.
	* coffread.c (coff_symtab_read): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (REGISTER_TO_VALUE): Replace by gdbarch_register_to_value.
	* findvar.c (value_from_register): Likewise.
	* gdbarch.sh (VALUE_TO_REGISTER): Replace by gdbarch_value_to_register.
	* valops.c (value_assign): Likewise.
	* gdbarch.sh (CONVERT_REGISTER_P): Replace by
	gdbarch_convert_register_p.
	* findvar.c (value_from_register): Likewise.
	* valops.c (value_assign): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (REGISTER_SIM_REGNO): Replace by
	gdbarch_register_sim_regno.
	* sim-regno.h (sim_regno): Likewise (comment).
	* remote-sim.c (gdbsim_fetch_register, gdbsim_store_register): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_VIRTUAL_FRAME_POINTER): Replace by
	gdbarch_virtual_frame_pointer.
	* tracepoint.c (encode_actions): Likewise.
	* dwarf2loc.c (dwarf2_loc_desc_needs_frame): Likewise.
	* ax-gdb.c (gen_frame_args_address, gen_frame_locals_address): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_FLOAT_BIT): Replace by gdbarch_float_bit.
	* p-lang.c (pascal_create_fundamental_type): Likewise.
	* objc-lang.c (objc_create_fundamental_type): Likewise.
	* mdebugread.c (_initialize_mdebugread): Likewise.
	* m2-lang.c (m2_create_fundamental_type)
	(_initialize_m2_language): Likewise.
	* gdbtypes.c (build_gdbtypes): Likewise.
	* f-lang.c (f_create_fundamental_type, build_fortran_types): Likewise.
	* doublest.c (floatformat_from_length): Likewise.
	* c-lang.c (c_create_fundamental_type): Likewise.
	* ada-lang.c (ada_create_fundamental_type)
	(ada_language_arch_info): Likewise.
	* gdbarch.sh (TARGET_FLOAT_FORMAT): Replace by gdbarch_float_format.
	* value.c (unpack_double): Likewise (comment).
	* gdbtypes.c (build_gdbtypes): Likewise.
	* doublest.c (floatformat_from_length): Likewise.
	* gdbarch.sh (TARGET_DOUBLE_BIT): Replace by gdbarch_double_bit.
	* valarith.c (value_binop): Likewise.
	* p-lang.c (pascal_create_fundamental_type): Likewise.
	* objc-lang.c (objc_create_fundamental_type): Likewise.
	* mdebugread.c (_initialize_mdebugread): Likewise.
	* m2-lang.c (m2_create_fundamental_type): Likewise.
	* gdbtypes.c (build_gdbtypes): Likewise.
	* f-lang.c (f_create_fundamental_type, build_fortran_types): Likewise.
	* doublest.c (floatformat_from_length): Likewise.
	* cris-tdep.c (cris_gdbarch_init): Likewise (comment).
	* c-lang.c (c_create_fundamental_type): Likewise.
	* ada-lex.l (processReal): Likewise.
	* ada-lang.c (ada_create_fundamental_type)
	(ada_language_arch_info): Likewise.
	* gdbarch.sh (TARGET_DOUBLE_FORMAT): Replace by gdbarch_double_format.
	* value.c (unpack_double): Likewise (comment).
	* gdbtypes.c (build_gdbtypes): Likewise.
	* doublest.c (floatformat_from_length): Likewise.
	* gdbarch.sh (TARGET_LONG_DOUBLE_BIT): Replace by
	gdbarch_long_double_bit.
	* p-lang.c (pascal_create_fundamental_type): Likewise.
	* objc-lang.c (objc_create_fundamental_type): Likewise.
	* m2-lang.c (m2_create_fundamental_type): Likewise.
	* gdbtypes.c (build_gdbtypes): Likewise.
	* f-lang.c (f_create_fundamental_type, build_fortran_types): Likewise.
	* doublest.c (floatformat_from_length): Likewise.
	* c-lang.c (c_create_fundamental_type): Likewise.
	* ada-lex.l (processReal): Likewise.
	* ada-lang.c (ada_create_fundamental_type)
	(ada_language_arch_info): Likewise.
	* gdbarch.sh (TARGET_LONG_DOUBLE_FORMAT): Replace by
	gdbarch_long_double_format.
	* gdbtypes.c (build_gdbtypes): Likewise.
	* doublest.c (floatformat_from_length): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-12  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_SHORT_BIT): Replace by gdbarch_int_bit.
	* ada-lang.c (ada_create_fundamental_type)
	(ada_language_arch_info): Likewise.
	* c-lang.c (c_create_fundamental_type): Likewise.
	* f-lang.c (f_create_fundamental_type, build_fortran_types): Likewise.
	* gdbtypes.c (build_gdbtypes, gdbtypes_post_init): Likewise.
	* m2-lang.c (m2_create_fundamental_type): Likewise.
	* objc-lang.c (objc_create_fundamental_type): Likewise.
	* p-lang.c (pascal_create_fundamental_type): Likewise.
	* gdbarch.sh (TARGET_INT_BIT): Replace by gdbarch_int_bit.
	* c-exp.y (parse_number): Likewise.
	* objc-exp.y (parse_number): Likewise.
	* ada-lex.l (processInt): Likewise.
	* f-exp.y (parse_number): Likewise.
	* p-exp.y (parse_number): Likewise.
	* ada-lang.c (ada_create_fundamental_type, ada_language_arch_info)
	(gdbtypes_post_init, build_gdbtypes): Likewise.
	* p-lang.c (pascal_create_fundamental_type): Likewise.
	* parse.c (build_parse): Likewise.
	* xcoffread.c (_initialize_xcoffread): Likewise.
	* stabsread.c (define_symbol, read_one_struct_field, read_enum_type)
	(read_range_type): Likewise.
	* objc-lang.c (objc_create_fundamental_type): Likewise.
	* f-lang.c (build_fortran_types, f_create_fundamental_type): Likewise.
	* m2-lang.c (m2_create_fundamental_type, _initialize_m2_language)
	(m2_create_fundamental_type): Likewise.
	* c-lang.c (c_create_fundamental_type): Likewise.
	* coffread.c (coff_read_enum_type): Likewise.
	* mdebugread.c (parse_symbol, _initialize_mdebugread): Likewise.
	* dwarf2read.c (new_symbol): Likewise.
	* gdbarch.sh (TARGET_LONG_BIT): Replace by gdbarch_long_bit.
	* c-exp.y (parse_number): Likewise.
	* objc-exp.y (parse_number): Likewise.
	* ada-lex.l (processInt): Likewise.
	* f-exp.y (parse_number): Likewise.
	* p-exp.y (parse_number): Likewise.
	* valarith.c (value_binop): Likewise.
	* symfile.c (read_target_long_array, simple_overlay_update_1): Likewise.
	* ada-lang.c (ada_create_fundamental_type)
	(ada_language_arch_info): Likewise.
	* gdbtypes.c (build_gdbtypes, gdbtypes_post_init): Likewise.
	* symfile.c (TARGET_LONG_BYTES): Likewise.
	* p-lang.c (pascal_create_fundamental_type): Likewise.
	* objc-lang.c (objc_create_fundamental_type): Likewise.
	* m2-lang.c (m2_create_fundamental_type): Likewise.
	* f-lang.c (f_create_fundamental_type): Likewise.
	* c-lang.c (c_create_fundamental_type): Likewise.
	* coffread.c (decode_base_type): Likewise.
	* gdbarch.sh (TARGET_LONG_LONG_BIT): Replace by gdbarch_long_long_bit.
	* c-exp.y (parse_number): Likewise.
	* objc-exp.y (parse_number): Likewise.
	* p-exp.y (parse_number): Likewise.
	* ada-lang.c (ada_create_fundamental_type)
	(ada_language_arch_info): Likewise.
	* gdbtypes.c (gdbtypes_post_init, build_gdbtypes): Likewise.
	* stabsread.c (read_range_type): Likewise.
	* p-lang.c (pascal_create_fundamental_type): Likewise.
	* objc-lang.c (objc_create_fundamental_type): Likewise.
	* m2-lang.c (m2_create_fundamental_type): Likewise.
	* f-lang.c (f_create_fundamental_type): Likewise.
	* c-lang.c (c_create_fundamental_type): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-12  Andreas Schwab  <schwab@suse.de>

	* frame-unwind.h (frame_dealloc_cache_ftype): Define.
	(struct frame_unwind): Add dealloc_cache.
	* frame.c (reinit_frame_cache): Call dealloc_cache on all caches.

	* libunwind-frame.h (libunwind_frame_dealloc_cache): Declare.
	* libunwind-frame.c (libunwind_frame_dealloc_cache): Define.
	(libunwind_frame_unwind): Set dealloc_cache.
	* ia64-tdep.c (ia64_libunwind_frame_unwind): Set dealloc_cache.

2007-06-12  Ulrich Weigand  <uweigand@de.ibm.com>
	    Markus Deuling  <deuling@de.ibm.com>

	* remote.c (remote_write_qxfer): New function.
	(remote_xfer_partial): Add handling for TARGET_OBJECT_SPU.
	(remote_read_qxfer): Do not cache empty objects.
	(_initialize_remote): Add PACKET_qXfer_spu_read and
	PACKET_qXfer_spu_write.

2007-06-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* target.h (enum target_object): Add TARGET_OBJECT_SPU.
	* spu-linux-nat.c (spu_xfer_partial): Handle TARGET_OBJECT_SPU.

	* spu-tdep.h (SPU_NUM_PSEUDO_REGS): Add 5 pseudo registers.
	(enum spu_regnum): Add SPU_FPSCR_REGNUM, SPU_SRR0_REGNUM,
	SPU_LSLR_REGNUM, SPU_DECR_REGNUM, SPU_DECR_STATUS_REGNUM.
	* spu-tdep.c (infospucmdlist): New variable.
	(spu_register_name): Handle additional pseudo registers.
	(spu_register_type): Likewise.
	(spu_pseudo_register_read): Likewise.
	(spu_pseudo_register_write): Likewise.
	(spu_pseudo_register_read_spu): New function.
	(spu_pseudo_register_write_spu): Likewise.
	(info_spu_event_command): New function.
	(info_spu_signal_command): Likewise.
	(info_spu_mailbox_list): Likewise.
	(info_spu_mailbox_command): Likewise.
	(spu_mfc_get_bitfield): Likewise.
	(info_spu_dma_cmdlist): Likewise.
	(info_spu_dma_command): Likewise.
	(info_spu_proxydma_command): Likewise.
	(info_spu_command): Likewise.
	(_initialize_spu_tdep): Install "info spu" commands.

2007-06-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-linux-nat.c (spu_proc_xfer_spu): Do not return failure when
	accessing non-seekable spufs files.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (SKIP_TRAMPOLINE_CODE): Replace by
	gdbarch_skip_trampoline_code.
	* rs6000-tdep.c (rs6000_in_solib_return_trampoline): Likewise (comment).
	* objc-lang.c (objc_skip_trampoline)
	(objc_submethod_helper_data): Likewise.
	* m32c-lang.c (m32c_skip_trampoline_code): Likewise (comment).
	* infrun.c (handle_inferior_event): Likewise.
	* gnu-v3-abi.c (gnuv3_skip_trampoline): Likewise.
	* gdbarch.sh (IN_SOLIB_RETURN_TRAMPOLINE): Replace by
	gdbarch_in_solib_return_trampoline.
	* rs6000-tdep.c (rs6000_in_solib_return_trampoline): Likewise (comment).
	* infrun.c (handle_inferior_event): Likewise.
	* hppa-tdep.c (hppa_stub_unwind_sniffer): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (SKIP_PROLOGUE): Replace by gdbarch_skip_prologue.
	* symtab.c (find_function_start_sal, in_prologue): Likewise.
	* linespec.c (minsym_found): Likewise.
	* infrun.c (step_into_function): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (NAME_OF_MALLOC): Replace by gdbarch_name_of_malloc.
	* valops.c (value_allocate_space_in_inferior): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (MEMORY_INSERT_BREAKPOINT): Replace by
	gdbarch_memory_insert_breakpoint.
	* mem-break.c (memory_insert_breakpoint): Likewise.
	* gdbarch.sh (MEMORY_REMOVE_BREAKPOINT): Replace by
	gdbarch_memory_remove_breakpoint.
	* mem-break.c (memory_remove_breakpoint): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (FETCH_TLS_LOAD_MODULE_ADDRESS): Replace by
	gdbarch_fetch_tls_load_module_address.
	* gdbarch.sh (FETCH_TLS_LOAD_MODULE_ADDRESS_P): Replace by
	gdbarch_fetch_tls_load_module_address_p.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (DECR_PC_AFTER_BREAK): Replace by
	gdbarch_decr_pc_after_break.
	* tracepoint.c (trace_dump_command): Likewise.
	* solib-sunos.c (sunos_solib_create_inferior_hook): Likewise.
	* linux-thread-db.c (check_event): Likewise.
	* linux-nat.c (cancel_breakpoints_callback): Likewise.
	* infrun.c (adjust_pc_after_break, normal_stop): Likewise.
	* frame.h: Likewise (comment).
	* dummy-frame.c (deprecated_pc_in_call_dummy): Likewise.
	* aix-thread.c (aix_thread_wait): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (ADDRESS_CLASS_TYPE_FLAGS): Replace by
	gdbarch_address_class_type_flags.
	* dwarf2read.c (read_tag_pointer_type): Likewise.
	* gdbarch.sh (ADDRESS_CLASS_TYPE_FLAGS_P): Replace by
	gdbarch_address_class_type_flags_p.
	* dwarf2read.c (read_tag_pointer_type): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (ADDR_BITS_REMOVE): Replace by gdbarch_addr_bits_remove.
	* value.c (value_as_address): Likewise (comment).
	* remote-mips.c (common_breakpoint): Likewise.
	* regcache.c (read_pc_pid): Likewise.
	* printcmd.c (do_one_display): Likewise.
	* monitor.c (monitor_write_memory, monitor_read_memory)
	(monitor_insert_breakpoint): Likewise.
	* mips-tdep.c (heuristic_proc_start): Likewise.
	* infrun.c (insert_step_resume_breakpoint_at_frame)
	(insert_step_resume_breakpoint_at_caller): Likewise.
	* buildsym.c (record_line): Likewise.
	* arm-tdep.c (arm_scan_prologue, thumb_get_next_pc)
	(arm_get_next_pc): Likewise.
	* armnbsd-nat.c (arm_supply_gregset, fetch_register, store_register)
	(store_regs): Likewise.
	* arm-linux-tdep.c (arm_linux_supply_gregset): Likewise.
	* arm-linux-nat.c (fetch_register, fetch_regs): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-09  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (REGISTER_NAME): Replace by gdbarch_register_name.
	* tracepoint.c (scope_info): Likewise.
	* target.c (debug_print_register): Likewise.
	* stack.c (frame_info): Likewise.
	* sh-tdep.c (sh_register_reggroup_p): Likewise.
	* sh64-tdep.c (sh64_do_fp_register, sh64_do_register)
	(sh64_media_print_registers_info)
	(sh64_compact_print_registers_info): Likewise.
	* rs6000-tdep.c (rs6000_register_reggroup_p): Likewise.
	* remote-sim.c (gdbsim_fetch_register): Likewise.
	* remote.c (packet_reg): Likewise (comment).
	* reggroups.c (default_register_reggroup_p): Likewise.
	* regcache.c (regcache_dump): Likewise.
	* printcmd.c (address_info): Likewise.
	* ppc-linux-nat.c (fetch_register, store_register): Likewise.
	* mt-dep.c (mt_registers_info): Likewise.
	* mn10300-tdep.c (mn10300_dwarf2_reg_to_regnum): Likewise (comment).
	* mips-tdep.c (mips_register_reggroup_p, mips_read_fp_register_single)
	(mips_read_fp_register_double, mips_print_fp_register)
	(mips_print_register, print_gp_register_row, mips_print_registers_info)
	(mips_register_sim_regno): Likewise.
	* m68klinux-nat.c (regmap, fetch_register, store_register): Likewise.
	* inf-ptrace.c (inf_ptrace_fetch_register)
	(inf_ptrace_store_register): Likewise.
	* infcmd.c (default_print_registers_info): Likewise.
	* ia64-linux-nat.c (ia64_linux_fetch_register)
	(ia64_linux_store_register): Likewise.
	* i386-linux-nat.c (fetch_register, store_register): Likewise.
	* i386gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Likewise.
	* hppa-linux-nat.c (fetch_register, store_register): Likewise.
	* hppa-hpux-nat.c (hppa_hpux_fetch_register)
	(hppa_hpux_store_register): Likewise.
	* findvar.c (locate_var_value): Likewise.
	* dwarf2loc.c (locexpr_describe_location): Likewise.
	* dwarf2-frame.c (execute_cfa_program): Likewise.
	* arm-tdep.c (arm_push_dummy_call): Likewise.
	* arch-utils.c (legacy_register_sim_regno): Likewise.
	* alpha-tdep.c (alpha_register_reggroup_p): Likewise.
	* alpha-nat.c (fetch_osf_core_registers): Likewise.
	* mi/mi-main.c (mi_cmd_data_list_register_names)
	(mi_cmd_data_list_changed_registers, mi_cmd_data_list_register_values)
	(mi_cmd_data_write_register_values): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* target-memory.c (blocks_to_erase): Correct off-by-one error.

2007-06-06  Vladimir Prus  <vladimir@codesourcery.com>
	
	* remote.c (process_g_packet): Don't check size.
	* gdbarch.sh: Remove register_bytes_ok.
	* gdbarch.c: Regenerated.
	* gdbarch.h: Regenerated.
	* m68k-tdep.c (REGISTER_BYTES_NOFP): Remove.
	(m68k_register_bytes_ok): Remove.
	(m68k_gdbarch_init): Don't register m68k_register_bytes_ok.
	
2007-06-06  Andreas Schwab  <schwab@suse.de>

	* libunwind-frame.c (unw_destroy_addr_space_p): Define.
	(destroy_addr_space_name): Define.
	(libunwind_load): Get address of destroy_addr_space function.
	(libunwind_frame_cache): Destroy unw_addr_space_t object before
	returning unsuccessfully.
	(libunwind_frame_sniffer): Destroy unw_addr_space_t object before
	returning.
	(libunwind_sigtramp_frame_sniffer): Likewise.
	(libunwind_get_reg_special): Likewise.

2007-06-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (FETCH_POINTER_ARGUMENT): Replace by
	gdbarch_fetch_pointer_argument.
	* objc-lang.c (OBJC_FETCH_POINTER_ARGUMENT): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (HAVE_NONSTEPPABLE_WATCHPOINT): Replace by
	gdbarch_have_nonsteppable_watchpoint.
	* infrun.c (handle_inferior_event, adjust_pc_after_break): Likewise.
	* gdbarch.sh (CANNOT_STEP_BREAKPOINT): Replace by
	gdbarch_cannot_step_breakpoint.
	* infrun.c (resume): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (FRAME_ARGS_SKIP): Replace by gdbarch_frame_args_skip.
	* stack.c (print_frame_args): Likewise.
	* gdbarch.sh (FRAME_NUM_ARGS): Replace by gdbarch_frame_num_args.
	* stack.c (print_args_stub, frame_info): Likewise.
	* gdbarch.sh (FRAME_NUM_ARGS_P): Replace by gdbarch_frame_num_args_p.
	* stack.c (print_args_stub, frame_info): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (COFF_MAKE_MSYMBOL_SPECIAL): Replace by
	gdbarch_coff_make_msymbol_special.
	* coffread.c (coff_symtab_read): Likewise.
	* gdbarch.sh (ELF_MAKE_MSYMBOL_SPECIAL): Replace by
	gdbarch_elf_make_msymbol_special.
	* elfread.c (elf_symtab_read): Likewise.
	* mips-tdep.c (mips_elf_make_msymbol_special): Likewise (comment).
	* sh64-tdep.c (MSYMBOL_IS_SPECIAL): Likewise (comment).
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (FRAME_RED_ZONE_SIZE): Replace by
	gdbarch_frame_red_zone_size.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (INNER_THAN): Replace by gdbarch_inner_than.
	* infcall.c (call_function_by_hand): Likewise.
	* gcore.c (derive_stack_segment): Likewise.
	* frame.c (frame_id_inner): Likewise.
	* arch-utils.c (core_addr_lessthan): Likewise (comment).
	* ada-lang.c (ensure_lval): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (ADDRESS_TO_POINTER): Replace by
	gdbarch_address_to_pointer.
	* findvar.c (store_typed_address): Likewise.
	* gdbtypes.c (make_pointer_type): Likewise (comment).
	* procfs.c (procfs_address_to_host_pointer): Likewise.
	* std-regs.c (value_of_builtin_frame_reg): Likewise.
	(value_of_builtin_frame_fp_reg): Likewise.
	(value_of_builtin_frame_pc_reg): Likewise.
	* utils.c (paddress): Likewise (comment).
	* gdbarch.sh (POINTER_TO_ADDRESS): Replace by
	gdbarch_pointer_to_address.
	* findvar.c (extract_typed_address): Likewise.
	* gdbtypes.c (make_pointer_type): Likewise (comment).
	* valops.c (value_cast): Likewise (comment).
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-06  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (GET_LONGJMP_TARGET): Replace by gdbarch_get_longjmp_target.
	* infrun.c (handle_inferior_event): Likewise.
	* gdbarch.sh (GET_LONGJMP_TARGET_P): Replace by
	gdbarch_get_longjmp_target_p.
	* breakpoint.c (breakpoint_re_set): Likewise.
	* infrun.c (handle_inferior_event): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-06-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* hppa-hpux-tdep.c (args_for_find_stub, HP_ACC_EH_notify_hook,
	HP_ACC_EH_set_hook_value, HP_ACC_EH_notify_callback, HP_ACC_EH_break,
	HP_ACC_EH_catch_throw, HP_ACC_EH_catch_catch, __eh_notification,
	hp_cxx_exception_support, hp_cxx_exception_support_initialized,
	eh_notify_hook_addr, eh_notify_callback_addr, eh_break_addr,
	eh_catch_throw_addr, break_callback_sal, setup_d_pid_in_inferior,
	find_stub_with_shl_get, cover_find_stub_with_shl_get,
	initialize_hp_cxx_exception_support, child_enable_exception_callback,
	current_ex_event, child_get_current_exception_event): Remove.
	(hppa_hpux_inferior_created): Remove.
	(hppa_hpux_init_abi): Do not install hppa_hpux_inferior_created.

	* breakpoint.h (deprecated_exception_catchpoints_are_fragile): Remove.
	(deprecated_exception_support_initialized): Remove.
	* breakpoint.c (deprecated_exception_catchpoints_are_fragile): Remove.
	(deprecated_exception_support_initialized): Remove.
	(breakpoint_init_inferior): Remove handling of non-zero
	deprecated_exception_catchpoints_are_fragile.

	* symtab.h (deprecated_hp_som_som_object_present): Remove.
	* symtab.c (deprecated_hp_som_som_object_present): Remove.
	* c-typeprint.c (c_type_print_base): Remove handling of non-zero
	deprecated_hp_som_som_object_present.
	* eval.c (evaluate_subexp_standard): Likewise.
	* valops.c (value_cast): Likewise.

	* parse.c (parse_nested_classes_for_hpacc, coloncolon): Remove.
	* parser-defs.h (parse_nested_classes_for_hpacc): Remove.
	* c-exp.y (yylex): Do not call parse_nested_classes_for_hpacc.

2007-06-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* objfiles.h (ImportEntry, ExportEntry): Remove types.
	(struct objfile): Remove import_list, import_list_size,
	export_list, export_list_size members.
	(is_in_import_list): Remove prototype.
	* objfiles.c (is_in_import_list): Remove.
	* somread.c (init_import_symbols, init_export_symbols): Remove.
	(som_symfile_read): Do not call init_import_symbols.  Do not
	set objfile->export_list and objfile->export_list_size.

2007-06-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2read.c (dwarf2_symbol_mark_computed): Fix formatting.
	Use the original objfile if necessary.

2007-06-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* defs.h (ldirname): New prototype.
	* dwarf2read.c (read_file_scope): Use DW_AT_name if DW_AT_comp_dir is
	missing.
	* utils.c (ldirname): New function.
	* xml-tdesc.c (file_read_description_xml): Use ldirname.

2007-06-01  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-tdep.c (spu_push_dummy_call): Store stack back chain.

2007-06-01  Joel Brobecker  <brobecker@adacore.com>

	* solib-svr4.c (svr4_solib_create_inferior_hook): Remove warning.

2007-06-01  Ulrich Weigand  <uweigand@de.ibm.com>

	* irix5-nat.c (JB_ELEMENT_SIZE, get_longjmp_target): Remove.

2007-06-01  Ulrich Weigand  <uweigand@de.ibm.com>

	* ppc-linux-tdep.c (INSTR_SC, INSTR_LI_R0_0x6666, INSTR_LI_R0_0x7777,
	INSTR_LI_R0_NR_sigreturn, INSTR_LI_R0_NR_rt_sigreturn): Remove.
	(PPC_LINUX_SIGNAL_FRAMESIZE, PPC_LINUX_REGS_PTR_OFFSET,
	PPC_LINUX_HANDLER_PTR_OFFSET): Remove.
	(ppc_linux_in_sigtramp, insn_is_sigreturn,
	ppc_linux_at_sigtramp_return_path): Remove.

2007-05-31  Markus Deuling  <deuling@de.ibm.com>

	* xtensa-tdep.c (XTENSA_IS_ENTRY, extract_call_winsize)
	(xtensa_register_write_masked, xtensa_register_read_masked)
	(xtensa_extract_return_value, xtensa_store_return_value
	(xtensa_push_dummy_call, xtensa_breakpoint_from_pc): Replace 
	TARGET_BYTE_ORDER by gdbarch_byte_order.
	* sh-tdep.c (sh_breakpoint_from_pc, gdb_print_insn_sh)
	(sh_justify_value_in_reg, sh_next_flt_argreg, sh_push_dummy_call_fpu)
	(sh_extract_return_value_fpu, sh_store_return_value_fpu): Likewise.
	* sh64-tdep.c (sh64_breakpoint_from_pc, gdb_print_insn_sh64)
	(sh64_push_dummy_call, sh64_extract_return_value)
	(sh64_store_return_value, sh64_register_convert_to_virtual)
	(sh64_register_convert_to_raw, sh64_pseudo_register_read)
	(sh64_pseudo_register_write, sh64_do_fp_register)
	(sh64_frame_prev_register): Likewise.
	* score-tdep.c (score_print_insn, score_breakpoint_from_pc)
	(score_return_value, score_push_dummy_call, score_fetch_inst): Likewise.
	* rs6000-tdep.c (rs6000_breakpoint_from_pc, rs6000_push_dummy_call)
	(e500_move_ev_register,gdb_print_insn_powerpc): Likewise.
	* remote-m32r-sdi.c (m32r_resume, m32r_wait): Likewise.
	* ppc-linux-nat.c (store_register): Likewise.
	* nto-tdep.c (nto_find_and_open_solib)
	(nto_init_solib_absolute_prefix): Likewise.
	* mips-tdep.c (mips_pseudo_register_read, mips_pseudo_register_write)
	(mips_convert_register_p, mips_eabi_push_dummy_call)
	(mips_n32n64_push_dummy_call, mips_n32n64_return_value)
	(mips_o32_push_dummy_call, mips_o32_return_value)
	(mips_o64_push_dummy_call, mips_o64_return_value, mips_o64_return_value)
	(mips_read_fp_register_single, mips_read_fp_register_double)
	(mips_print_register, print_gp_register_row, gdb_print_insn_mips)
	(mips_breakpoint_from_pc): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_sigtramp_offset): Likewise.
	* mips-linux-tdep.c (mips64_supply_fpregset, mips64_fill_fpregset)
	(mips_linux_o32_sigframe_init): Likewise.
	* m32r-tdep.c (m32r_memory_insert_breakpoint)
	(m32r_memory_remove_breakpoint, m32r_breakpoint_from_pc): Likewise.
	* libunwind-frame.c (libunwind_frame_cache, libunwind_frame_sniffer)
	(libunwind_sigtramp_frame_sniffer, libunwind_get_reg_special): Likewise.
	* iq2000-tdep.c (iq2000_breakpoint_from_pc): Likewise.
	* coffread.c (process_coff_symbol): Likewise.
	* arm-tdep.c (convert_from_extended, convert_to_extended)
	(gdb_print_insn_arm): Likewise.

2007-05-31  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (NUM_REGS): Replace by gdbarch_num_regs.
	* i386-tdep.c (i386_dbx_reg_to_regnum)
	(i386_svr4_reg_to_regnum): Likewise.
	* inf-ptrace.c (inf_ptrace_fetch_registers)
	(inf_ptrace_store_registers): Likewise.
	* corelow.c (get_core_registers): Likewise.
	* i386-linux-nat.c (supply_gregset, fill_gregset)
	(i386_linux_fetch_inferior_registers)
	(i386_linux_store_inferior_registers): Likewise.
	* remote.c (init_remote_state,packet_reg_from_regnum)
	(packet_reg_from_pnum,process_g_packet,remote_fetch_registers)
	(remote_prepare_to_store,store_registers_using_G)
	(remote_store_registers,remote_arch_state): Likewise.
	* tracepoint.c (encode_actions): Likewise.
	* mi/mi-main.c (mi_cmd_data_list_register_names)
	(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
	(mi_cmd_data_write_register_values): Likewise.
	* tui/tui-regs.c (tui_show_register_group)
	(tui_show_register_group): Likewise.
	* xtensa-tdep.h (FP_ALIAS): Likewise.
	* xtensa-tdep.c (xtensa_register_name,xtensa_register_type)
	(xtensa_reg_to_regnum,xtensa_pseudo_register_read)
	(xtensa_pseudo_register_write,xtensa_register_reggroup_p): Likewise.
	* win32-nat.c (do_win32_fetch_inferior_registers)
	(do_win32_store_inferior_registers,fetch_elf_core_registers
	* user-regs.h: Likewise (comment).
	* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
	* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
	* target-descriptions.h: Likewise (comment).
	* target-descriptions.c (tdesc_use_registers): Likewise (comment).
	* target.c (debug_print_register): Likewise.
	* stack.c (frame_info): Likewise.
	* stabsread.c (define_symbol): Likewise.
	* sh64-tdep.c (sh64_do_pseudo_register,sh64_print_register)
	(sh64_media_print_registers_info)
	(sh64_compact_print_registers_info): Likewise.
	* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
	* rs6000-nat.c (fetch_register,store_register): Likewise.
	* remote-sim.c (one2one_register_sim_regno,gdbsim_fetch_register)
	(gdbsim_fetch_register,gdbsim_store_register): Likewise.
	* remote-mips.c (mips_fetch_registers,mips_store_registers): Likewise.
	* remote-m32r-sdi.c (m32r_fetch_registers)
	(m32r_store_registers): Likewise.
	* reggroups.c (default_register_reggroup_p): Likewise.
	* regcache.c (init_regcache_descr,register_size,regcache,regcache_save)
	(regcache_restore,regcache_dump): Likewise.
	* monitor.c (monitor_fetch_registers,monitor_store_registers): Likewise.
	* mips-tdep.c (mips_xfer_register,mips_register_name)
	(mips_register_reggroup_p,mips_pseudo_register_read)
	(mips_pseudo_register_write,mips_convert_register_p,mips_register_type)
	(mips_unwind_pc,mips_unwind_sp,mips_unwind_dummy_id,set_reg_offset)
	(mips16_scan_prologue,mips_insn16_frame_cache,reset_saved_regs)
	(mips32_scan_prologue,mips_insn32_frame_cache,read_next_frame_reg)
	(mips_n32n64_return_value,mips_o32_return_value,mips_o64_return_value)
	(print_gp_register_row,mips_print_registers_info)
	(mips_stab_reg_to_regnum,mips_dwarf_dwarf2_ecoff_reg_to_regnum)
	(mips_register_sim_regno): Likewise.
	* mips-linux-tdep.c (mips_linux_o32_sigframe_init)
	(mips_linux_n32n64_sigframe_init): Likewise.
	* mips-linux-nat.c (mips_linux_register_addr)
	(mips64_linux_register_addr): Likewise.
	* findvar.c (value_of_register): Likewise.
	* infcmd.c (default_print_registers_info,registers_info)
	(print_vector_info,print_float_info): Likewise.
	* mips64obsd-tdep.c (mips64obsd_sigframe_init): Likewise.
	* inf-child.c (inf_child_fetch_inferior_registers): Likewise.
	* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
	* m68hc11-tdep.c (m68hc11_frame_unwind_cache(: Likewise.
	* m32r-tdep.c (m32r_frame_unwind_cache): Likewise.
	* ia64-linux-nat.c (ia64_register_addr,ia64_cannot_fetch_register)
	(ia64_cannot_store_register,ia64_linux_fetch_registers)
	(ia64_linux_store_registers): Likewise.
	* hpux-thread.c (hpux_thread_fetch_registers)
	(hpux_thread_store_registers): Likewise.
	* h8300-tdep.c (E_PSEUDO_CCR_REGNUM,E_PSEUDO_EXR_REGNUM)
	(h8300_init_frame_cache,h8300_frame_cache,h8300_frame_prev_register)
	(h8300_register_type): Likewise.
	* dwarf2-frame.c (dwarf2_frame_cache)
	(dwarf2_frame_state_alloc_regs): Likewise.
	* cris-tdep.c (cris_register_size,cris_cannot_fetch_register)
	(cris_cannot_store_register,crisv32_cannot_fetch_register)
	(crisv32_cannot_store_register,cris_register_name): Likewise.
	* avr-tdep.c (avr_frame_unwind_cache): Likewise.
	* arch-utils.c (legacy_register_sim_regno)
	(legacy_virtual_frame_pointer): Likewise.
	* arm-tdep.c (arm_make_prologue_cache,arm_register_sim_regno):Likewise.
	* arm-tdep.h: Likewise (comment).
	* frv-tdep.c (frv_register_sim_regno): Likewise.
	* m68klinux-nat.c (old_fetch_inferior_registers)
	(old_store_inferior_registers): Likewise.
	* m32c-tdep.c (m32c_virtual_frame_pointer): Likewise.
	* irix5-nat.c (fetch_core_registers): Likewise.
	* hppa-tdep.c (hppa_frame_cache): Likewise.
	* hppa-linux-nat.c (hppa_linux_register_addr)
	(hppa_linux_fetch_inferior_registers)
	(hppa_linux_store_inferior_registers): Likewise.
	* hppa-hpux-nat.c (hppa_hpux_fetch_inferior_registers)
	(hppa_hpux_store_inferior_registers): Likewise.
	* amd64-nat.c (amd64_native_gregset_reg_offset)
	(amd64_supply_native_gregset,amd64_collect_native_gregset): Likewise.
	* dbug-rom.c (dbug_regname): Likewise.
	* m68hc11-tdep.c (m68hc11_frame_unwind_cache)
	(HARD_PAGE_REGNUM (comment)): Likewise.
	* gdbarch.sh (NUM_PSEUDO_REGS): Replace by gdbarch_num_pseudo_regs.
	* i386-tdep.c (i386_dbx_reg_to_regnum)
	(i386_svr4_reg_to_regnum): Likewise.
	* mi/mi-main.c (mi_cmd_data_list_register_names)
	(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
	(mi_cmd_data_write_register_values): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.
	* tui/tui-regs.c (tui_show_register_group): Likewise.
	* xtensa-tdep.h (FP_ALIAS): Likewise.
	* user-regs.h: Likewise (comment).
	* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
	* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
	* target-descriptions.h: Likewise (comment).
	* target.c (debug_print_register): Likewise.
	* stack.c (frame_info): Likewise.
	* stabsread.c (define_symbol): Likewise.
	* sh64-tdep.c (sh64_print_register,sh64_media_print_registers_info)
	(sh64_compact_print_registers_info): Likewise.
	* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
	* regcache.c (init_regcache_descr,register_size,regcache,regcache_save
	(regcache_restore,regcache_dump): Likewise.
	* mips-tdep.c (print_gp_register_row,mips_print_registers_info)
	(mips_dwarf_dwarf2_ecoff_reg_to_regnum)
	(mips_stab_reg_to_regnum): Likewise.
	* findvar.c (value_of_register): Likewise.
	* infcmd.c (default_print_registers_info,registers_info)
	(print_vector_info,print_float_info): Likewise.
	* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
	* h8300-tdep.c (h8300_register_type): Likewise.
	* dwarf2-frame.c (dwarf2_frame_cache): Likewise.
	* frame.h (SIZEOF_FRAME_SAVED_REGS): Likewise.
	* xtensa-tdep.c (xtensa_register_type,xtensa_reg_to_regnum)
	(xtensa_pseudo_register_read,xtensa_pseudo_register_write): Likewise.
	* parse.c: Remove comment.
	* gdbarch.c, gdbarch.h: Regenerate

2007-05-31  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (CANNOT_FETCH_REGISTER): Replace by
	gdbarch_cannot_fetch_register.
	* alpha-nat.c (fetch_osf_core_registers): Likewise.
	* hppa-linux-nat.c (fetch_register): Likewise.
	* inf-ptrace.c (inf_ptrace_fetch_register): Likewise.
	* m68klinux-nat.c (fetch_register): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_supply_reg, mipsnbsd_supply_fpreg):
	Likewise.
	* gdbarch.sh (CANNOT_STORE_REGISTER): Replace by
	gdbarch_cannot_store_register.
	* hppa-linux-nat.c (store_register): Likewise.
	* inf-ptrace.c (inf_ptrace_store_register): Likewise.
	* regcache.c (regcache_raw_write): Likewise.
	* m68klinux-nat.c (store_register): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_fill_reg, mipsnbsd_fill_fpreg): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-05-31  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_OSABI): Replace by gdbarch_osabi.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-05-31  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_CHAR_SIGNED): Replace by gdbarch_char_signed.
	* gdbtypes.c (build_gdbtypes, gdbtypes_post_init): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-05-31  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (TARGET_BYTE_ORDER): Replace by gdbarch_byte_order.
	* ax-gdb.c (gen_bitfield_ref): Likewise.
	* mi/mi-main.c (get_register): Likewise.
	* findvar.c (default_value_from_register, extract_signed_integer)
	(extract_unsigned_integer, extract_long_unsigned_integer)
	(store_signed_integer, store_unsigned_integer): Likewise.
	* regcache.c (regcache_dump): Likewise.
	* value.c (lookup_internalvar, value_of_internalvar)
	(set_internalvar): Likewise.
	* defs.h: Likewise.
	* valprint.c (print_binary_chars, print_octal_chars)
	(print_decimal_chars, print_hex_chars, print_char_chars): Likewise.
	* infcmd.c (default_print_registers_info): Likewise.
	* arch-utils.c (selected_byte_order, show_endian): Likewise.
	* stabsread.c (define_symbol): Likewise.
	* doublest.c (floatformat_from_length, floatformat_from_type)
	(extract_typed_floating, store_typed_floating): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-05-31  Markus Deuling  <deuling@de.ibm.com>

	* gdbarch.sh (CALL_DUMMY_LOCATION): Replace by
	gdbarch_call_dummy_location.
	* infcall.c (call_function_by_hand): Likewise.
	* inferior.h: Change comment.
	* arch-utils.c: Change comment.
	* gdbarch.c, gdbarch.h: Regenerate.

2007-05-28  Joel Brobecker  <brobecker@adacore.com>

	* solib-aix5.c: Delete.
	* Makefile.in (solib-aix5.o): Delete rule.

2007-05-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* breakpoint.h (enum bpstat_what_main_action): Remove
	BPSTAT_WHAT_THROUGH_SIGTRAMP.
	* infrun.c (process_event_stop_test): Do not check for it.

2007-05-22  Chris Dearman  <chris@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* ser-unix.c (show_serial_hwflow): New function.
	(hardwire_raw): Add hardware flow control support.
	(_initialize_ser_hardwire): Add "set/show remoteflow".
	* Makefile.in (ser-unix.o): Depend on $(gdbcmd_h).
	* NEWS: Document the new command.

2007-05-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/i386/tm-linux.h (sys_quotactl): Do not define.
	* configure.ac (sys_quotactl, START_INFERIOR_TRAPS_EXPECTED): Do not
	define for i[[3456]]86-*-linux* native configurations.
	* config.in, configure: Regenerate.

2007-05-19  Joel Brobecker  <brobecker@adacore.com>

	* rs6000-nat.c (xcoff_relocate_symtab): Do nothing if debugging
	a core file. Add comment in the function description.

2007-05-18  Caroline Tice  <ctice@apple.com>

	* c-valprint.c (c_value_print):  If the initialized field of the
	value struct is 0, print out "[uninitialized]" before the value.
	* dwarf2expr.c (execute_stack_op): Initialize ctx->initialized field; 
	allow DW_OP_GNU_uninit as legal op following a DW_OP_reg op or a 
	DW_OP_regx op; add case for DW_OP_GNU_uninit and update
	ctx->initialized appropriately. Verify no location op follows
	DW_OP_GNU_uninit.
	* dwarf2expr.h (struct dwarf_expr_context): New field, initialized.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Add call to 
	set_value_initialized.
	* dwarf2read.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
	(decode_locdesc): Add case for DW_OP_GNU_uninit.
	* value.c (struct value):  New field, initialized.
	(allocate_value): Initialize new field.
	(set_value_initialized): New function.
	(value_initialized): New function.
	* value.h (value_initialized): New extern declaration.
	(set_value_initialized): Likewise.
	
2007-05-18  Caroline Tice  <ctice@apple.com>

	* MAINTAINERS (Write After Approval): Add self.
	
2007-05-17  Joel Brobecker  <brobecker@adacore.com>

	* gdbtypes.c (make_reference_type): Preserve the type chain
	and set the length of all the variants of the pointer type.

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

	* gdbtypes.c (make_pointer_type): Preserve the pointer type chain
	and set the length of all the variants of the pointer type.

2007-05-17  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_push_dummy_call): Fix and reformat a
	comment.
	(mips_o64_push_dummy_call): Reformat a comment.

2007-05-17  Qinwei  <qinwei@sunnorth.com.cn>

	* score-tdep.c (score_frame_cache->fp, score_analyze_prologue)
	(score_prologue_frame_base_address): Return fp to keep gdb print
	local variables correctly when debugging information is stabs.

	(score_analyze_prologue): For software watchpoint, fetch all the
	instructions from range [startaddr, pc] once and identify them locally
	to reduce memory access.
	(score_malloc_and_get_memblock, score_free_memblock)
	(score_adjust_memblock_ptr): New functions.
	(score_fetch_inst): Fetch single instruction or mutiple instructions.

	(score_target_can_use_watch, score_stopped_by_watch)
	(score_target_insert_watchpoint, score_target_remove_watchpoint)
	(score_target_insert_hw_breakpoint, score_target_remove_hw_breakpoint):
	New functions for remote & local hw-watchpoint and hw-breakpoint.

2007-05-16  Alfred M. Szmidt  <ams@gnu.org>

	* reply_mig_hack.awk: Check for `auto const mach_msg_type_t'
	declarations as well.

2007-05-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/arm/embed.mt (DEPRECATED_TM_FILE): Set to tm-arm.h.
	* config/arm/tm-embed.h: Delete file.

	* arm-tdep.h (arm_software_single_step): Declare.
	* arm-tdep.c (arm_software_single_step): Make global.
	(arm_gdbarch_init): Move set_gdbarch_software_single_step call
	from here to ...
	* arm-linux-tdep.c (arm_linux_init_abi): ... here ...
	* armnbsd-tdep.c (arm_netbsd_init_abi_common): ... here ...
	* armobsd-tdep.c (armobsd_init_abi): ... here ...
	* arm-wince-tdep.c (arm_wince_init_abi): ... and here.

	* arm-tdep.c (ARM_LE_BREAKPOINT, ARM_BE_BREAKPOINT): No longer
	allow defines to be overriden by TM file.
	(THUMB_LE_BREAKPOINT, THUMB_BE_BREAKPOINT): Likewise.  Also,
	change default to {0xbe,0xbe}.
	* armobsd-tdep.c (arm_obsd_thumb_le_breakpoint,
	arm_obsd_thumb_be_breakpoint): New global variables.
	(armobsd_init_abi): Override tdep->thumb_breakpoint and
	tdep->thumb_breakpoint_size.
	* arm-wince-tdep.c (arm_wince_thumb_le_breakpoint): New variable.
	(arm_wince_init_abi): Override tdep->thumb_breakpoint and 
	tdep->thumb_breakpoint_size.

	* arm-tdep.c (arm_gdbarch_init): Add set_gdbarch_skip_trampoline_code.

2007-05-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Mention removed "set mips stack-arg-size" and "set mips
	saved-gpreg-size".

	* mips-tdep.c (MIPS32_REGSIZE, MIPS64_REGSIZE): New constants.
	(size_auto, size_32, size_64, size_enums, mips_abi_regsize_string)
	(mips_stack_argsize_string, mips_stack_argsize): Delete.
	(mips_abi_regsize): Simplify.
	(mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call)
	(mips_n32n64_return_value, mips_o32_push_dummy_call)
	(mips_o32_return_value, mips_o64_push_dummy_call)
	(mips_o64_return_value): Propogate constant register sizes.  Use the
	ABI register size instead of mips_stack_argsize.
	(mips_dump_tdep): Don't print mips_stack_argsize.
	(_initialize_mips_tdep): Remove saved-gpreg-size and stack-arg-size
	settings.

2007-05-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/linux.mt (DEPRECATED_TM_FILE): Delete.
	* config/mips/tm-linux.h: Delete.
	* mips-linux-tdep.c (mips_svr4_so_ops): New.
	(mips_linux_in_dynsym_resolve_code): Make static.  Use
	svr4_in_dynsym_resolve_code.
	(mips_linux_init_abi): Initialize mips_svr4_so_ops.  Call
	set_solib_ops.
	* solib-svr4.c (svr4_in_dynsym_resolve_code, svr4_so_ops): Make
	global.
	* solib-svr4.h (svr4_so_ops, svr4_in_dynsym_resolve_code): Declare.
	* Makefile.in (mips-linux-tdep.o): Update.
	* solib.c (set_solib_ops): New.
	(current_target_so_ops): Update comment.
	* solib.h (set_solib_ops): New prototype.

2007-05-16  Chris Dearman  <chris@mips.com>

	* printcmd.c (do_examine): Fix typos in a comment.

2007-05-16  Richard Sandiford  <richard@codesourcery.com>

	* configure.ac: Allow sysroots to be relocated under $prefix as
	well as $exec_prefix.
	* configure: Regenerate.

2007-05-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* hppa-hpux-tdep.c: Do not include <dl.h> or <machine/save_state.h>.
	(offsetof): Do not define.
	(find_stub_with_shl_get): Use numerical value 3 instead of
	symbolic value TYPE_PROCEDURE.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb_proc_service.h (paddr_t): Delete typedef.
	* proc-service.c (ps_addr_to_core_addr, core_addr_to_ps_addr): New.
	(ps_xfer_memory): Take a psaddr_t.  Use ps_addr_to_core_addr.
	(ps_pglobal_lookup): Take a psaddr_t *.  Use core_addr_to_ps_addr.
	(ps_pdread, ps_pdwrite, ps_ptread, ps_ptwrite): Take a psaddr_t.
	* sol-thread.c (gdb_ps_addr_t): Use psaddr_t instead of paddr_t.
	* Makefile.in (proc-service.o): Update.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (mips-tdep.o): Update.
	* mips-tdep.c (mips_gdbarch_init): Register the dwarf2 CFI
	unwinder.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2-frame.c (dwarf2_frame_prev_register): Use pack_long
	instead of store_typed_address.
	* value.c (pack_long): New.
	(value_from_longest): Use it.
	* value.h (pack_long): New prototype.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2-frame.c (read_encoded_value): Correct typo.  Use
	DW_EH_PE_signed if appropriate.

2007-05-14  Paul Brook  <paul@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2read.c (dwarf2_debug_line_missing_file_complaint): New
	function.
	(dwarf_decode_lines): Check for line info without a file.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-thread-db.c (thread_db_pid_to_str): Print thread IDs
	as hexadecimal.

2007-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* jv-exp.y (push_fieldnames): Use STRUCTOP_PTR instead of
	STRUCTOP_STRUCT.
	* jv-lang.c (evaluate_subexp_java): Handle STRUCTOP_PTR instead of
	STRUCTOP_STRUCT.
	* jv-typeprint.c (java_print_type): Do not crash on NULL varstring.

2007-05-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (read_sp): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.
	* frame.c (frame_sp_unwind): Do not call TARGET_READ_SP.

	* avr-tdep.c (avr_read_sp): Remove.
	(avr_unwind_sp): New function.
	(avr_gdbarch_init): Install unwind_sp instead of read_sp callback.
	* mips-tdep.c (mips_read_sp): Remove.
	(mips_unwind_sp): New function.
	(mips_gdbarch_init): Install unwind_sp instead of read_sp callback.
	* score-tdep.c (score_read_unsigned_register): Remove.
	(score_read_sp): Remove.
	(score_unwind_sp): New function.
	(score_gdbarch_init): Install unwind_sp instead of read_sp callback.

2007-05-14  Maxim Grigoriev  <maxim2405@gmail.com>

	* buildsym.c (start_subfile): Handle absolute pathnames
	while comparing subfile names.

2007-05-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* hppa-hpux-tdep.c: Include "regcache.h".
	* hppa-linux-tdep.c: Likewise.
	* hppa-tdep.c: Include "gdb_stdint.h".
	(find_unwind_entry): Cast host pointer to uintptr_t before passing
	it to paddr_nz.
	* Makefile.in: Update dependencies.

2007-05-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* blockframe.c: Remove obsolete comments.
	* alpha-nat.c (fetch_osf_core_registers): Update comment.
	* arm-tdep.h (enum gdb_regnum): Remove obsolete part of comment.
	* hppa-tdep.h (enum hppa_regnum): Likewise.
	* mips-tdep.h: Likewise.
	* m68hc11-tdep.c: Likewise.

2007-05-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* inferior.h (read_sp): Remove prototype.
	* regcache.c (read_sp): Remove.
	* gcore.c (derive_stack_segment): Use get_frame_sp instead of read_sp.
	* infcall.c (call_function_by_hand): Likewise.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Use regcache instead
	of calling read_sp.
	* rs6000-tdep.c (rs6000_push_dummy_call): Likewise.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* i386-linux-nat.c (i386_linux_resume): Use regcache functions 
	instead of read_register and read_register_pid.

	* ia64-linux-nat.c (enable_watchpoints_in_psr): Use REGCACHE 
	argument instead of PTID.  Use regcache functions instead of
	read_register_pid.
	(ia64_linux_insert_watchpoint): Update call.
	(ia64_linux_stopped_data_address): Use regcache functions
	instead of read_register_pid and write_register_pid.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* libunwind-frame.h (struct regcache): Add forward declaration.
	(libunwind_get_reg_special): Add REGCACHE argument.
	* libunwind-frame.c (libunwind_get_reg_special): Add REGCACHE
	argument.  Pass it to unw_init_remote_p.

	* ia64-tdep.c (ia64_pseudo_register_read): Pass regcache to
	libunwind_get_reg_special.
	(ia64_access_reg): Remove "write" case.
	(ia64_access_fpreg): Likewise.  Read from next_frame passed
	as callback argument instead of from current_regcache.
	(ia64_access_rse_reg): Remove "write" case.  Read from regcache
	passed as callback argument instead of from current_regcache.
	(ia64_access_rse_fpreg): New function.
	(ia64_unw_rse_acce): Use it instead of ia64_access_fpreg.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* NEWS: Mention SPU overlay support.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-tdep.c (spu_frame_unwind_cache): Add comment.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* breakpoint.c (remove_breakpoint): Do not remove software
	breakpoints in unmapped overlay sections.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-tdep.c: Include "observer.h".
	(spu_frame_unwind_cache): Unwind PC through overlay return stubs.
	(spu_overlay_data): New variable.
	(struct spu_overlay_table): New type.
	(spu_get_overlay_table, spu_overlay_update_osect, spu_overlay_update,
	spu_overlay_new_objfile): New functions.
	(spu_gdbarch_init): Install spu_overlay_update.
	(_initialize_spu_tdep): Register spu_overlay_new_objfile, 
	allocate spu_overlay_data objfile data.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (overlay_update): New gdbarch function.
	(struct obj_section): Add forward declaration.
	* gdbarch.c, gdbarch.h: Regenerate.

	* symfile.c (simple_overlay_update): Make global.
	(target_overlay_update): Remove variable.
	(overlay_is_mapped): Call gdbarch_overlay_update instead of
	target_overlay_update.
	(overlay_load_command): Likewise.
	* symfile.h (struct obj_section): Add forward declaration.
	(simple_overlay_update): Add prototype.

	* m32r-tdep.c (m32r_gdbarch_init): Install simple_overlay_update.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* observer.sh: Add "struct objfile" forward declaration.
	* target.h (deprecated_target_new_objfile_hook): Remove.
	* symfile.c (deprecated_target_new_objfile_hook): Remove.
	(clear_symtab_users): Call observer_notify_new_objfile.
	(symbol_file_add_with_addrs_or_offsets): Likewise.
	* rs6000-nat.c: Include "observer.h".
	(vmap_ldinfo): Call observer_notify_new_objfile.
	(xcoff_relocate_core): Likewise.
	* remote.c (remote_new_objfile_chain): Remove.
	(remote_new_objfile): Do not call remote_new_objfile_chain.
	(_initialize_remote): Use observer_attach_new_objfile.
	* tui/tui-hooks.c (tui_target_new_objfile_chain): Remove.
	(tui_new_objfile_hook): Do not call tui_target_new_objfile_chain.
	(_initialize_tui_hooks): Use observer_attach_new_objfile.
	* aix-thread.c: Include "observer.h".
	(target_new_objfile_chain): Remove.
	(new_objfile): Do not call target_new_objfile_chain.
	(_initialize_aix_thread): Use observer_attach_new_objfile.
	* hpux-thread.c: Include "observer.h"
	(target_new_objfile_chain): Remove.
	(hpux_thread_new_objfile): Make static.  Do not call
	target_new_objfile_chain.
	(_initialize_hpux_thread): Use observer_attach_new_objfile.
	* linux-thread-db.c: Include "observer.h".
	(target_new_objfile_chain): Remove.
	(thread_db_new_objfile): Do not call target_new_objfile_chain.
	(_initialize_thread_db): Use observer_attach_new_objfile.
	* sol-thread.c: Include "observer.h".
	(target_new_objfile_chain): Remove.
	(sol_thread_new_objfile): Make static.  Do not call
	target_new_objfile_chain.
	(_initialize_sol_thread): Use observer_attach_new_objfile.
	* Makefile.in (aix-thread.o, hpux-thread.o, linux-thread-db.o,
	rs6000-nat.o, sol-thread.o, tui-hooks.o): Add dependency on
	$(observer_h).

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (remote_translate_xfer_address): Remove.
	* gdbarch.h, gdbarch.c: Regenerate.
	* arch-utils.c (generic_remote_translate_xfer_address): Remove.
	* arch-utils.h (generic_remote_translate_xfer_address): Remove.
	* remote.c (remote_write_bytes_aux, remote_read_bytes): Do not
	call gdbarch_remote_translate_xfer_address.
	* frv-tdep.c (frv_gdbarch_init): Do not call
	set_gdbarch_remote_translate_xfer_address.
	* ia64-tdep.c (ia64_remote_translate_xfer_address): Remove.
	(ia64_gdbarch_init): Do not install it.

2007-05-11  Bob Wilson  <bob.wilson@acm.org>

	* NEWS: Mention change in handling the -tui option.

2007-05-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-thread-db.c (enable_thread_event_reporting): Fix comment
	typo.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* breakpoint.c (single_step_breakpoint_inserted_here_p): New function.
	(breakpoint_inserted_here_p): Call it.
	(software_breakpoint_inserted_here_p): Likewise.

2007-05-10  Ulrich Weigand  <uweigand@de.ibm.com>

	* inf-ptrace.c (inf_ptrace_register_u_offset): Adapt parameter list.
	(inf_ptrace_fetch_register): Add register_u_offset callback parameters
	GDBARCH and STORE_P.  Handle callback (CORE_ADDR) -1 return value.
	(inf_ptrace_store_register): Likewise.
	(inf_ptrace_trad_target): Adapt register_u_offset parameter list.
	* inf-ptrace.h (inf_ptrace_trad_target): Likewise.

	* vax-nat.c (vax_register_u_offset): Adapt parameter list.

	* linux-nat.c (linux_trad_target): Adapt parameter list.
	* linux-nat.h (linux_trad_target): Likewise.

	* alpha-linux-nat.c (alpha_linux_register_u_offset): Adapt parameters.

	* mips-linux-nat.c (mips_linux_cannot_fetch_register): Remove.
	(mips_linux_cannot_store_register): Likewise.
	(mips_linux_register_addr): Add GDBARCH and STORE_P parameters.
	Return (CORE_ADDR) -1 for registers that cannot be fetched or
	stored via ptrace.  Use GDBARCH instead of current_gdbarch.
	(mips64_linux_register_addr): Likewise.
	(mips_linux_register_u_offset): Adapt parameter list.  Pass
	GDBARCH and STORE_P on to mips{64}_linux_register_addr.

	* config/mips/linux.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/mips/nm-linux.h: Delete file.

2007-05-10  Pedro Alves  <pedro_alves@portugalmail.pt>

	* remote.c (remote_detach): Error out if remote can't detach.

2007-05-10  Luis Machado  <luisgpm@br.ibm.com>

	* rs6000-tdep.c: (deal_with_atomic_sequence) Stores branch
	instruction's opcode in the "opcode" variable and declares new
	variable "closing_insn".

2007-05-10  Chris Dearman  <chris@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* cli/cli-setshow.c (do_setshow_command): Remove trailing
	whitespace when setting a var_filename.

2007-05-09  Bob Wilson  <bob.wilson@acm.org>
	
	* main.c (captured_main): Recognize -tui option and print an error
	message when the TUI is not configured.
	
2007-05-09  Andreas Schwab  <schwab@suse.de>

	* mipsnbsd-tdep.c (mipsnbsd_ilp32_fetch_link_map_offsets): Don't
	set removed members.
	(mipsnbsd_lp64_fetch_link_map_offsets): Likewise.

2007-05-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (deprecated_store_struct_return): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.
	* frv-tdep.c (frv_store_struct_return): Remove.
	(frv_gdbarch_init): Do not install it.

2007-05-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/i386/nm-i386sol2.h (USE_PROC_FS): Do not define.
	* config/mips/nm-irix5.h (USE_PROC_FS): Do not define.
	* config/nm-linux.h (USE_PROC_FS): Do not undefine.

2007-05-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-linux-nat.c: Include "gdb_stdint.h".
	(fetch_ppc_register): Use uint64_t instead of unsigned long long.
	(fetch_ppc_memory_1, store_ppc_memory_1): Likewise.
	(fetch_ppc_memory, store_ppc_memory): Fix coding style.
	(spu_symbol_file_add_from_memory): Use strtoulst instead of sscanf.
	(spu_child_wait): Mark up string for translation.

2007-05-08  Paul Gilliam  <pgilliam@us.ibm.com>
	    Luis Machado  <luisgpm@br.ibm.com>

	* rs6000-tdep.c: (LWARX_MASK, LWARX_INSTRUCTION, LDARX_INSTRUCTION,
	STWCX_MASK, STWCX_INSTRUCTION, STDCX_INSTRUCTION, BC_MASK,
	BC_INSTRUCTION): Define.
	(deal_with_atomic_sequence): New function.
	(rs6000_software_single_step): Call deal_with_atomic_sequence.
	(rs6000_gdbarch_init): Install deal_with_atomic_sequence as
	gdbarch_software_single_step routine.

2007-05-07  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-linux-nat.c (fetch_ppc_register, fetch_ppc_memory_1,
	store_ppc_memory_1, fetch_ppc_memory, store_ppc_memory,
	parse_spufs_run, spu_bfd_iovec_pread, spu_bfd_open,
	spu_symbol_file_add_from_memory, spu_child_post_startup_inferior,
	spu_child_post_attach, spu_fetch_inferior_registers,
	spu_store_inferior_registers, spu_xfer_partial): Store PPE-side
	memory addresses as ULONGEST, not CORE_ADDR.

2007-05-07  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh: Add skip_permanent_breakpoint callback.
	* gdbarch.h, gdbarch.c: Regenerate.

	* infrun.c (SKIP_PERMANENT_BREAKPOINT): Remove default definition.
	(resume): Call gdbarch_skip_permanent_breakpoint instead of
	SKIP_PERMANENT_BREAKPOINT.  Inline default case.

	* hppa-hpux-tdep.c (hppa_skip_permanent_breakpoint): Make static.
	Add REGCACHE argument.  Use it instead of read/write_register.
	(hppa_hpux_init_abi): Install hppa_skip_permanent_breakpoint.

	* config/pa/tm-hppah.h: Delete file.
	* config/pa/hppa64.mt (DEPRECATED_TM_FILE): Set to tm-hppa.h.
	* config/pa/hppahpux.mt (DEPRECATED_TM_FILE): Likewise.

2007-05-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (c-lang.o, gnu-v3-abi.o): Update.
	* NEWS: Mention improved C++ thunk support.
	* c-lang.c (cplus_language_defn): Mention cplus_skip_trampoline.
	* cp-abi.c (cplus_skip_trampoline): New.
	* cp-abi.h (cplus_skip_trampoline): New prototype.
	(struct cp_abi_ops): Add skip_trampoline member.
	* gnu-v3-abi.c (gnuv3_skip_trampoline): New.
	(init_gnuv3_ops): Set skip_trampoline.

2007-05-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* rs6000-tdep.c (struct frame_extra_info): Delete.

2007-05-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-thread-db.c: Update some FIXME comments.
	(thread_db_xfer_partial): Delete.
	(init_thread_db_ops): Do not set to_xfer_partial.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* inftarg.c, infptrace.c: Remove files.
	* Makefile.in (ALLDEPFILES): Remove inftarg.c and infptrace.c
	(inftarg.o, infptrace.o): Remove rules.
	* gdbcore.h (register_addr): Remove prototype.
	* inferior.h (kill_inferior, store_inferior_registers,
	fetch_inferior_registers, attach, detach, ptrace_wait, child_resume,
	call_ptrace, pre_fork_inferior): Remove prototypes.
	* target.h (child_xfer_memory, child_pid_to_exec_file, 
	child_core_file_to_sym_file, child_post_attach,
	child_post_startup_inferior, child_acknowledge_created_inferior,
	child_insert_fork_catchpoint, child_remove_fork_catchpoint,
	child_insert_vfork_catchpoint, child_remove_vfork_catchpoint,
	child_insert_exec_catchpoint, child_remove_exec_catchpoint,
	child_follow_fork, child_reported_exec_events_per_exec_call,
	child_has_exited, child_thread_alive): Remove prototypes.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* sparc-nat.h (sparc_fetch_inferior_registers): Add prototype.
	(sparc_store_inferior_registers): Likewise.
	* sparc-nat.c (fetch_inferior_registers): Rename to ...
	(sparc_fetch_inferior_registers): ... this.
	(store_inferior_registers): Rename to ...
	(sparc_store_inferior_registers): ... this.
	(sparc_target): Update callback names.
	* sparc-linux.nat.c (_initialize_sparc_linux_nat): Likewise. 
	* sparc64-linux.nat.c (_initialize_sparc64_linux_nat): Likewise. 

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* linux-nat.c (child_post_attach): Rename to ...
	(linux_child_post_attach): ... this.  Make static.
	(child_follow_fork): Rename to ...
	(linux_child_follow_fork): ... this.  Make static.
	(child_insert_fork_catchpoint): Rename to ...
	(linux_child_insert_fork_catchpoint): ... this.  Make static.
	(child_insert_vfork_catchpoint): Rename to ...
	(linux_child_insert_vfork_catchpoint): ... this.  Make static.
	(child_insert_exec_catchpoint): Rename to ...
	(linux_child_insert_exec_catchpoint): ... this.  Make static.
	(child_pid_to_exec_file): Rename to ...
	(linux_child_pid_to_exec_file): ... this.  Make static.
	Add prototype.
	(linux_handle_extended_wait): Update call.
	(linux_xfer_partial): Update callback routine names.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.host (alpha*-*-osf[12]*): Remove support.
	* NEWS: Mention removed configurations.

	* config/alpha/alpha-osf1.mh: Delete file.
	* config/alpha/alpha-osf2.mh: Delete file.
	* config/alpha/alpha-osf3.mh (NATDEPFILES): Remove inftarg.o
	and infptrace.o.
	* config/alpha/nm-osf.h: Delete file.
	* config/alpha/nm-osf2.h: Delete file.
	* config/alpha/nm-osf3.h: Do not include "nm-osf2.h".
	(START_INFERIOR_TRAPS_EXPECTED): Copy from nm-osf.h.
	(PROCFS_DONT_TRACE_FAULTS): Copy from nm-osf2.h.

	* alpha-nat.c (ALPHA_UNIQUE_PTRACE_ADDR): Do not define.
	(register_addr, kernel_u_size): Remove.
	Do not check for "defined(USE_PROC_FS) || defined(HAVE_GREGSET_T)".

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* regcache.c (regcache_invalidate): New function.
	(register_cached): Remove.
	(set_register_cached): Remove.
	(deprecated_registers_fetched): Remove.
	(registers_changed): Use regcache_invalidate instead
	of set_register_cached.
	(regcache_raw_read): Update comment.

	* regcache.h (regcache_invalidate): Add prototype.
	(register_cached): Remove.
	(set_register_cached): Remove.
	(deprecated_registers_fetched): Remove.

	* findvar.c (value_of_register): Do not call register_cached.
	* frame.c (frame_register): Likewise.
	* tui/tui-regs.c (tui_get_register): Likewise.

	* remote.c (fetch_register_using_p): Do not call set_register_cached.
	(process_g_packet): Likewise.
	(remote_fetch_registers): Likewise.
	* remote-sim.c (gdbsim_fetch_register): Likewise.
	* mt-tdep.c (mt_select_coprocessor): Replace set_register_cached call
	by regcache_invalidate.
	(mt_pseudo_register_write): Likewise.
	* sh-tdep.c (sh_pseudo_register_write): Likewise.

	* corelow.c (get_core_registers): Replace deprecated_registers_fetched
	call by loop over regcache_raw_supply (..., NULL).

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* target.h (struct target_ops): Add REGCACHE parameter to
	to_prepare_to_store.
	(target_prepare_to_store): Likewise.
	* target.c (debug_to_prepare_to_store): Add REGCACHE parameter.
	(update_current_target): Adapt prepare_to_store de_fault rule.

	* regcache.c (regcache_raw_write): Pass regcache to
	target_prepare_to_store.

	* inftarg.c (child_prepare_to_store): Add REGCACHE parameter.
	Do not call CHILD_PREPARE_TO_STORE.
	* gnu-nat.c (gnu_prepare_to_store): Likewise.
	* procfs.c (procfs_prepare_to_store): Likewise.

	* inf-child.c (inf_child_prepare_to_store): Add REGCACHE parameter.
	* go32-nat.c (go32_prepare_to_store): Likewise.
	* monitor.c (monitor_prepare_to_store): Likewise.
	* nto-procfs.c (procfs_prepare_to_store): Likewise.
	* remote-m32r-sdi.c (m32r_prepare_to_store): Likewise.
	* remote-mips.c (mips_prepare_to_store): Likewise.
	* remote-sim.c (gdbsim_prepare_to_store): Likewise.
	* win32-nat.c (win32_prepare_to_store): Likewise.

	* remote.c (remote_prepare_to_store): Add REGCACHE parameter.
	Use it instead of current_regcache.

	* hpux-thread.c (hpux_thread_prepare_to_store): Add REGCACHE
	parameter.  Pass it on to next target.
	* sol-thread.c (sol_thread_prepare_to_store): Likewise.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* target.h (struct regcache): Add forward declaration.
	(struct target_ops): Add REGCACHE parameter to to_fetch_registers
	and to_store_registers target operations.
	(target_fetch_registers, target_store_registers): Update.

	* regcache.c (regcache_raw_read): Replace register_cached by
	regcache_valid_p.  Pass regcache to target_fetch_registers.
	(regcache_raw_write): Pass regcache to target_store_registers.

	* arm-linux-nat.c (store_fpregister, store_fpregs, store_register,
	store_regs, store_wmmx_regs): Replace register_cached by
	regcache_valid_p.

	* bsd-kvm.c (bsd_kvm_open, bsd_kvm_proc_cmd): Pass current_regcache
	to target_fetch_registers calls.
	* corelow.c (core_open): Likewise.
	* linux-nat.c (linux_nat_corefile_thread_callback): Likewise.
	* proc-service.c (ps_lgetregs, ps_lsetregs, ps_lgetfpregs,
	ps_lsetfpregs): Likewise.
	* sol-thread.c (ps_lgetregs, ps_lsetregs, ps_lgetfpregs,
	ps_lsetfpregs): Likewise.
	* win32-nat.c (win32_resume): Likewise.
	* ia64-tdep.c (ia64_store_return_value): Pass current_regcache
	to target_store_registers call.
	* rs6000-tdep.c (rs6000_push_dummy_call): Likewise.

	* inferior.h (store_inferior_registers): Update prototype.
	(fetch_inferior_registers): Likewise.
	* gnu-nat.c (gnu_store_registers, gnu_fetch_registers): Likewise.
	* mips-linux-nat.c (super_fetch_registers, super_store_registers):
	Update function pointer signatures.

	* aix-thread.c (aix_thread_fetch_registers): Add REGCACHE parameter,
	use it instead of current_regcache, update calls.
	(aix_thread_store_registers): Likewise.
	* alphabsd-nat.c (alphabsd_fetch_inferior_registers): Likewise.
	(alphabsd_store_inferior_registers): Likewise.
	* amd64bsd-nat.c (amd64bsd_fetch_inferior_registers): Likewise.
	(amd64bsd_store_inferior_registers): Likewise.
	* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers): Likewise.
	(amd64_linux_store_inferior_registers): Likewise.
	* arm-linux-nat.c (fetch_fpregister, fetch_fpregs, store_fpregister,
	store_fpregs, fetch_register, fetch_regs, store_register, store_regs,
	fetch_wmmx_regs, store_wmmx_regs): Likewise.
	(arm_linux_fetch_inferior_registers): Likewise.
	(arm_linux_store_inferior_registers): Likewise.
	* armnbsd-nat.c (fetch_register, fetch_regs, fetch_fp_register,
	fetch_fp_regs, armnbsd_fetch_registers): Likewise.
	(store_register, store_regs, store_fp_register, store_fp_regs,
	armnbsd_store_registers): Likewise.
	* bsd-kvm.c (bsd_kvm_fetch_pcb, bsd_kvm_fetch_registers): Likewise.
	* bsd-uthread.c (bsd_uthread_fetch_registers): Likewise.
	(bsd_uthread_store_registers): Likewise.
	* corelow.c (get_core_registers): Likewise.
	* go32-nat.c (fetch_register, go32_fetch_registers, store_register,
	go32_store_registers): Likewise.
	* hppabsd-nat.c (hppabsd_fetch_registers): Likewise.
	(hppabsd_store_registers): Likewise.
	* hppa-hpux-nat.c (hppa_hpux_fetch_register): Likewise.
	(hppa_hpux_fetch_inferior_registers): Likewise.
	(hppa_hpux_store_register): Likewise.
	(hppa_hpux_store_inferior_registers): Likewise.
	* hppa-linux-nat.c (fetch_register, store_register): Likewise.
	(hppa_linux_fetch_inferior_registers): Likewise.
	(hppa_linux_store_inferior_registers): Likewise.
	* hpux-thread.c (hpux_thread_fetch_registers): Likewise.
	(hpux_thread_store_registers): Likewise.
	* i386bsd-nat.c (i386bsd_fetch_inferior_registers): Likewise.
	(i386bsd_store_inferior_registers): Likewise.
	* i386gnu-nat.c (fetch_fpregs, gnu_fetch_registers, store_fpregs,
	gnu_store_registers): Likewise.
	* i386-linux-nat.c (fetch_register, store_register, fetch_regs,
	store_regs, fetch_fpregs, store_fpregs, fetch_fpxregs, store_fpxregs):
	Likewise.
	(i386_linux_fetch_inferior_registers): Likewise.
	(i386_linux_store_inferior_registers): Likewise.
	* ia64-linux-nat.c (ia64_linux_fetch_register): Likewise.
	(ia64_linux_fetch_registers): Likewise.
	(ia64_linux_store_register): Likewise.
	(ia64_linux_store_registers): Likewise.
	* inf-child.c (inf_child_fetch_inferior_registers): Likewise.
	(inf_child_store_inferior_registers): Likewise.
	* inf-ptrace.c (inf_ptrace_fetch_register): Likewise.
	(inf_ptrace_fetch_registers): Likewise.
	(inf_ptrace_store_register): Likewise.
	(inf_ptrace_store_registers): Likewise.
	* infptrace.c (fetch_register, store_register): Likewise.
	(fetch_inferior_registers, store_inferior_registers): Likewise.
	* m32r-linux-nat.c (fetch_regs, store_regs): Likewise.
	(m32r_linux_fetch_inferior_registers): Likewise.
	(m32r_linux_store_inferior_registers): Likewise.
	* m68kbsd-nat.c (m68kbsd_fetch_inferior_registers): Likewise.
	(m68kbsd_store_inferior_registers): Likewise.
	* m68klinux-nat.c (fetch_register, old_fetch_inferior_registers,
	store_register, old_store_inferior_registers, fetch_regs, store_regs,
	fetch_fpregs, store_fpregs): Likewise.
	(m68k_linux_fetch_inferior_registers): Likewise.
	(m68k_linux_store_inferior_registers): Likewise.
	* m88kbsd-nat.c (m88kbsd_fetch_inferior_registers): Likewise.
	(m88kbsd_store_inferior_registers): Likewise.
	* mips64obsd-nat.c (mips64obsd_fetch_inferior_registers): Likewise.
	(mips64obsd_store_inferior_registers): Likewise.
	* mips-linux-nat.c (mips64_linux_regsets_fetch_registers): Likewise.
	(mips64_linux_regsets_store_registers): Likewise.
	(mips64_linux_fetch_registers): Likewise.
	(mips64_linux_store_registers): Likewise.
	* mipsnbsd-nat.c (mipsnbsd_fetch_inferior_registers): Likewise.
	(mipsnbsd_store_inferior_registers): Likewise.
	* monitor.c (monitor_fetch_register, monitor_store_register): Likewise.
	(monitor_fetch_registers, monitor_store_registers): Likewise.
	* nto-procfs.c (procfs_fetch_registers): Likewise.
	(procfs_store_registers): Likewise.
	* ppc-linux-nat.c (fetch_altivec_register, fetch_spe_register,
	fetch_register, supply_vrregset, fetch_altivec_registers,
	fetch_ppc_registers, ppc_linux_fetch_inferior_registers): Likewise.
	(store_altivec_register, store_spe_register, store_register, 
	fill_vrregset, store_altivec_registers, store_ppc_registers,
	ppc_linux_store_inferior_registers): Likewise.
	* ppcnbsd-nat.c (ppcnbsd_fetch_inferior_registers): Likewise.
	(ppcnbsd_store_inferior_registers): Likewise.
	* ppcobsd-nat.c (ppcobsd_fetch_registers): Likewise.
	(ppcobsd_store_registers): Likewise.
	* procfs.c (procfs_fetch_registers, procfs_store_registers): Likewise.
	* remote.c (fetch_register_using_p, process_g_packet,
	fetch_registers_using_g, remote_fetch_registers): Likewise.
	(store_register_using_P, store_registers_using_G, 
	remote_store_registers): Likewise.
	* remote-m32r-sdi.c (m32r_fetch_registers, m32r_fetch_register,
	m32r_store_register, m32r_store_register): Likewise.
	* remote-mips.c (mips_fetch_registers, mips_store_registers): Likewise.
	* remote-sim.c (gdbsim_fetch_register): Likewise.
	(gdbsim_store_register): Likewise.
	* rs6000-nat.c (fetch_register, store_register): Likewise.
	(rs6000_fetch_inferior_registers): Likewise.
	(rs6000_store_inferior_registers): Likewise.
	* s390-nat.c (fetch_regs, store_regs): Likewise.
	(fetch_fpregs, store_fpregs): Likewise.
	(s390_linux_fetch_inferior_registers): Likewise.
	(s390_linux_store_inferior_registers): Likewise.
	* shnbsd-nat.c (shnbsd_fetch_inferior_registers): Likewise.
	(shnbsd_store_inferior_registers): Likewise.
	* sol-thread.c (sol_thread_fetch_registers): Likewise.
	(sol_thread_store_registers): Likewise.
	* sparc-nat.c (fetch_inferior_registers): Likewise.
	(store_inferior_registers): Likewise.
	* spu-linux-nat.c (spu_fetch_inferior_registers): Likewise.
	(spu_store_inferior_registers): Likewise.
	* target.c (debug_print_register): Likewise.
	(debug_to_fetch_registers, debug_to_store_registers): Likewise.
	* vaxbsd-nat.c (vaxbsd_fetch_inferior_registers): Likewise.
	(vaxbsd_store_inferior_registers): Likewise.
	* win32-nat.c (do_win32_fetch_inferior_registers): Likewise.
	(win32_fetch_inferior_registers): Likewise.
	(win32_store_inferior_registers): Likewise.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbcore.h (struct regcache): Add forward declaration.
	(struct core_fns): Add REGCACHE argument to core_read_registers
	callback.
	* corelow.c (get_core_register_section): Add REGCACHE argument,
	use it instead of current_regcache, pass it to core_read_registers
	callback.
	(get_core_registers): Add current_regcache as parameter to
	get_core_register_section calls.

	* alpha-nat.c (fetch_osf_core_registers): Add REGCACHE argument,
	use it instead of current_regcache.
	* armnbsd-nat.c (fetch_core_registers): Likewise.
	(fetch_elfcore_registers): Likewise.
	* core-regset.c (fetch_core_registers): Likewise.
	* cris-tdep.c (fetch_core_registers): Likewise.
	* irix5-nat.c (fetch_core_registers): Likewise.
	* m68klinux-nat.c (fetch_core_registers): Likewise.
	* mips-linux-tdep.c (fetch_core_registers): Likewise.
	* win32-nat.c (fetch_elf_core_registers): Likewise.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* gregset.h (struct regcache): Add forward declaration.
	(supply_gregset): Add REGCACHE parameter, make GREGS const.
	(supply_fpregset): Add REGCACHE parameter, make FPREGS const.
	(supply_fpxregset): Add REGCACHE parameter, make FPXREGS const.
	(fill_gregset): Add REGCACHE parameter.
	(fill_fpregset): Likewise.
	(fill_fpxregset): Likewise.

	Update all definitions accordingly:
	* alphabsd-nat.c, alpha-linux-nat.c, alpha-nat.c, amd64-linux-nat.c,
	arm-linux-nat.c, hppa-linux-nat.c, i386gnu-nat.c, i386-linux-nat.c,
	i386-sol2-nat.c, i386v4-nat.c, ia64-linux-nat.c, irix5-nat.c, 
	m32r-linux-nat.c, m68klinux-nat.c, mips-linux-nat.c, ppc-linux-nat.c,
	s390-nat.c, sparc64-linux-nat.c, sparc-linux-nat.c, sparc-sol2-nat.c 
	(supply_gregset): Add REGCACHE parameter, use it instead of 
	current_regcache.  Make GREGSETP parameter const, adapt casts.
	(supply_fpregset): Add REGCACHE parameter, use it instead of
	current_regcache.  Make FPREGSETP parameter const, adapt casts.
	(fill_gregset): Add REGCACHE parameter, use it instead of
	current_regcache.
	(fill_fpregset): Likewise.

	Update all callers to pass in current_regcache as the new argument:
	* core-regset.c: Include "regcache.h".
	(fetch_core_registers): Update supply_gregset,and supply_fpregset calls.
	* procfs.c: Include "regcache.h".
	(procfs_fetch_registers): Update supply_gregset, supply_fpregset calls.
	(procfs_store_registers): Update fill_gregset, fill_fpregset calls.
	(procfs_do_thread_registers): Likewise.
	(procfs_make_note_section): Likewise.
	* proc-service.c: Include "regcache.h".
	(ps_lgetregs): Update fill_gregset call.
	(ps_lsetregs): Update supply_gregset call.
	(ps_lgetfpregs): Update fill_fpregset call.
	(ps_lsetfpregs): Update supply_fpregset call.
	* sol-thread.c (sol_thread_fetch_registers): Update supply_gregset,
	supply_fpregset calls.
	(sol_thread_store_registers): Update fill_gregset, fill_fpregset calls.
	(ps_lgetregs): Update fill_gregset call.
	(ps_lsetregs): Update supply_gregset call.
	(ps_lgetfpregs): Update fill_fpregset call.
	(ps_lsetfpregs): Update supply_fpregset call.
	
	* linux-nat.c (linux_nat_do_thread_registers): Update fill_gregset,
	fill_fpregset, and fill_fpxregset calls.
	* i386-linux-nat.c (fetch_regs): Update supply_gregset call.
	(store_regs): Update fill_gregset call.
	(fetch_fpregs): Update supply_fpregset call.
	(store_fpregs): Update fill_fpregset call.
	(fetch_fpxregs): Update supply_fpxregset call.
	(store_fpxregs): Update fill_fpxregset call.
	* m32r-linux-nat.c (fetch_regs): Update supply_gregset call.
	(store_regs): Update fill_gregset call.
	* m68klinux-nat.c (fetch_regs): Update supply_gregset call.
	(store_regs): Update fill_gregset call.
	(fetch_fpregs): Update supply_fpregset call.
	(store_fpregs): Update fill_fpregset call.
	(fetch_core_registers): Update supply_gregset, supply_fpregset calls.
	* s390-nat.c (fetch_regs): Update supply_gregset call.
	(store_regs): Update fill_gregset call.
	(fetch_fpregs): Update supply_fpregset call.
	(store_fpregs): Update fill_fpregset call.

	* Makefile.in (core-regset.o, procfs.o, proc-service.o): Update
	dependencies.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* monitor.c (monitor_supply_register): Add REGCACHE parameter, use
	it instead of current_regcache.
	(parse_register_dump): Add REGCACHE parameter, pass it to 
	supply_register callback.
	(monitor_dump_reg_block): Add REGCACHE parameter, pass it to
	parse_register_dump.
	(monitor_dump_regs): Add REGCACHE parameter, pass it to
	parse_register_dump and dumpregs callback.
	(monitor_wait): Pass current_regcache to parse_register_dump and
	monitor_dump_regs.
	(monitor_fetch_register): Pass current_regcache to
	monitor_supply_register.
	(monitor_fetch_registers): Pass current_regcache to
	monitor_dump_regs.
	* monitor.h (struct monitor_ops): Add REGCACHE parameter to
	supply_register and dumpregs callbacks.
	(monitor_supply_register, monitor_dump_reg_block): Update
	prototypes.
	* dbug-rom.c (dbug_supply_register): Add REGCACHE parameter.  Pass
	it to monitor_supply_register.
	* dink32-rom.c (dink32_supply_register): Likewise.
	* ppcbug-rom.c (ppcbug_supply_register): Likewise.
	* m32r-rom.c (m32r_supply_register): Likewise.  Also, use REGCACHE
	instead of current_regcache.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* i386-nto-tdep.c (i386nto_supply_gregset, i386nto_supply_fpregset):
	Add REGCACHE parameter.  Use it instead of current_regcache.
	(i386nto_supply_regset): Add REGCACHE parameter, pass it to
	i386nto_supply_gregset and i386nto_supply_fpregset.
	(i386nto_regset_fill): Add REGCACHE parameter; use it instead
	of current_regcache.

	* nto-procfs.c (procfs_fetch_registers): Pass current_regcache to
	nto_supply_ helper functions.
	(procfs_store_registers): Pass current_regcache to nto_regset_fill.

	* nto-tdep.c (nto_dummy_supply_regset): Add REGCACHE parameter.

	* nto-tdep.h (struct nto_target_ops): Add REGCACHE parameter to
	supply_greget, supply_fpregset, supply_altregset, supply_regset,
	and regset_fill member function pointers.
	(nto_dummy_supply_regset): Adapt prototype.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* shnbsd-tdep.c (shnbsd_supply_reg): Add REGCACHE parameter, use it
	instead of current_regcache.  Make REGS const.
	(shnbsd_fill_reg): Add REGCACHE parameter; replace current_regcache.
	* shnbsd-tdep.h (shnbsd_supply_reg, shnbsd_fill_reg): Update
	prototypes.
	* shnbsd-nat.c: Include "regcache.h".
	(shnbsd_fetch_inferior_registers): Pass current_regcache to
	shnbsd_supply_reg.
	(shnbsd_store_inferior_registers): Pass current_regcache to
	shnbsd_fill_reg.
	* Makefile.in (shbsd-nat.o): Update dependencies.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* mips-linux-tdep.c (supply_32bit_reg): Add REGCACHE parameter.  Use it
	instead of current_regcache.
	(mips_supply_gregset): Likewise.  Pass REGCACHE to supply_32bit_reg.
	Make GREGSETP const, remove superfluous casts.
	(mips_fill_gregset): Add REGCACHE parameter; replace current_regcache.
	(mips_supply_fpregset): Likewise.  Make FPREGSETP const, remove 
	superfluous casts.
	(mips_fill_fpregset): Add REGCACHE parameter; replace current_regcache.
	(supply_64bit_reg): Likewise
	(mips64_supply_gregset): Likewise.  Pass REGCACHE to supply_64bit_reg.
	Make GREGSETP const, adapt casts accordingly.
	(mips64_fill_gregset): Add REGCACHE parameter; replace current_regcache.
	(mips64_supply_fpregset): Likewise.  Make FPREGSET const, adapt
	casts accordingly.
	(mips64_fill_fpregset): Add REGCACHE parameter; replace current_regcache.
	(fetch_core_registers): Pass current_regcache to mips{64}_(supply|fill)_
	helper routines.
	* mips-linux-tdep.h (mips_supply_gregset, mips_fill_gregset,
	mips_supply_fpregset, mips_fill_fpregset, mips64_supply_gregset,
	mips64_fill_gregset, mips64_supply_fpregset, mips64_fill_fpregset):
	Adapt prototypes.
	* mips-linux-nat.c: Include "regcache.h".
	(supply_gregset, fill_gregset, supply_fpregset, fill_fpregset): Pass
	current_regcache to mips{64}_(supply|fill)_ helper routines.
	(mips64_linux_regsets_fetch_registers): Likewise.
	(mips64_linux_regsets_store_registers): Likewise.

	* mipsnbsd-tdep.c (mipsnbsd_supply_reg, mipsnbsd_supply_fpreg): Add
	REGCACHE argument; replace current_regcache.  Make REGS const.
	(mipsnbds_fill_reg, mipsnbsd_fill_fpreg): Add REGCACHE argument;
	replace current_regcache.
	* mipsnbsd-tdep.h (ipsnbsd_supply_reg, mipsnbsd_supply_fpreg,
	mipsnbds_fill_reg, mipsnbsd_fill_fpreg): Adapt prototypes.
	* mipsnbsd-nat.c (mipsnbsd_fetch_inferior_registers,
	mipsnbsd_store_inferior_registers): Pass current_regcache to
	mipsnbsd_(supply|fill)_... helper routines.

	* Makefile.in (mips-linux-nat.o): Update dependencies.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* i387-tdep.c (i387_fill_fsave, i387_fill_fxsave): Remove.
	* i387-tdep.h (i387_fill_fsave, i387_fill_fxsave): Remove prototypes.
	* i368-linux-nat.c (supply_fpregset, supply_fpxregset): Replace
	i387_fill_fsave and i387_fill_fxsave calls by inline copies.
	* i386-nto-tdep.c (i386nto_regset_fill): Likewise.
	* i386gnu-nat.c (store_fpregs): Likewise.
	* i386v4-nat.c (fill_fpregset): Likewise.
	* go32-nat.c (store_register, go32_store_registers): Likewise.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* cris-tdep.c (supply_gregset): Rename to ...
	(cris_supply_gregset): ... this.  Add REGCACHE parameter.  Use it
	instead of current_regcache.
	(fetch_core_registers): Update call.  Pass current_regcache.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* arnmnbsd-nat.c (supply_gregset): Rename to ...
	(arm_supply_gregset): ... this.  Add REGCACHE parameter.
	Use it instead of current_regcache.
	(supply_fparegset): Rename to ...
	(arm_supply_fparegset): ... this.  Add REGCACHE parameter.
	Use it instead of current_regcache.
	(fetch_regs, fetch_fp_regs): Update calls.  Pass current_regcache.
	(fetch_core_registers, fetch_elfcore_registers): Likewise.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* alpha-tdep.c (alpha_supply_int_regs, alpha_fill_int_regs,
	alpha_supply_fp_regs, alpha_fill_fp_regs): Add REGCACHE parameter,
	use it instead of current_regcache.
	* alpha-tdep.h (struct regcache): Add forward declaration.
	(alpha_supply_int_regs, alpha_fill_int_regs, alpha_supply_fp_regs,
	alpha_fill_fp_regs): Update prototypes.

	* alpha-nat.c: (supply_gregset, fill_gregset, supply_fpregset,
	fill_fpregset): Pass current_regcache to alpha_supply/fill_ routines.
	* alpha-linux-nat.c: Include "regcache.h".
	(supply_gregset, fill_gregset, supply_fpregset, fill_fpregset): Pass
	current_regcache to alpha_supply/fill_ routines.

	* alphabsd-tdep.c: Include "regcache.h".
	(alphabsd_supply_reg, alphabsd_supply_fpreg): Add REGCACHE paramter,
	pass it to alpha_supply_ routines.  Make REGS const.
	(alphabsd_fill_reg, alphabsd_fill_fpreg): Add REGCACHE parameter,
	pass it to alpha_fill_ routines.
	* alphabsd-tdep.h (struct regcache): Add forward declaration.
	(alphabsd_supply_reg, alphabsd_fill_reg, alphabsd_supply_fpreg,
	alphabsd_fill_fpreg): Update prototypes.

	* alphanbsd-nat.c (supply_gregset, fill_gregset, supply_fpregset,
	fill_fpregset, alphabsd_fetch_inferior_registers,
	alphabsd_store_inferior_registers): Pass current_regcache to
	alphabsd_supply/fill_ routines.

	* Makefile.in (alpha-linux-nat.o, alphabsd-tdep.o): Update
	dependencies.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* aix-thread.c (supply_gprs64, supply_reg32, supply_fprs,
	supply_sprs64, supply_sprs32): Add REGCACHE parameter, use it
	instead of current_regcache.
	(fetch_regs_user_thread, fetch_regs_kernel_thread): Add
	REGCACHE parameter, pass it to supply_ routines.
	(aix_thread_fetch_registers): Pass current_regcache to
	fetch_regs_user_thread and fetch_regs_kernel_thread.

	(fill_gprs64, fill_gprs32, fill_fprs, fill_sprs64, fill_sprs32):
	Add REGCACHE parameter, use it instead of current_regcache.
	Call regcache_valid_p instead of register_cached.
	(store_regs_user_thread, store_regs_kernel_thread): Likewise.
	Also, pass REGCACHE to fill_ routines.
	(aix_thread_store_registers): Pass current_regcache to
	store_regs_user_thread and store_regs_kernel_thread.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* m32r-linux-nat.c (supply_gregset): Do not modify contents
	pointed to by GREGSETP.

2007-05-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* irix5-nat.c (fill_gregset): Use regcache_raw_collect instead
	of regcache_raw_read_signed.
	(fill_fpregset): Use regcache_raw_collect instead of
	regcache_raw_read.

2007-05-03  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (mips_eabi_push_dummy_call): When pushing floating
	point arguments, test explicitly for use of the EABI32 ABI
	instead of inferring this condition from tests on register
	sizes.

2007-05-03  Kevin Buettner  <kevinb@redhat.com>

	* breakpoint.c (set_raw_breakpoint): Adjust breakpoint's address
	prior to allocating its location.

2007-05-02  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_o32_push_dummy_call): Remove conditions
	based on mips_abi_regsize() whose result is known in advance.
	(mips_o64_push_dummy_call): Likewise.

2007-04-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* m68klinux-nat.c: Remove #ifndef USE_PROC_FS check.
	* m68k-tdep.c: Remove code within #ifdef USE_PROC_FS.

	* mips-linux-nat.c: Include "gregset.h".
	(supply_gregset, fill_gregset, supply_fpregset, fill_fpregset): Move
	from mips-linux-tdep.c.  Change parameter type to gdb_gregset_t.
	* mips-linux-tdep.c (supply_gregset, fill_gregset, supply_fpregset,
	fill_fpregset): Move to mips-linux-nat.c.

	* Makefile.in (m68k-tdep.o, mips-linux-nat.o): Update dependencies.

2007-04-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* regcache.c (deprecated_read_register_gen): Remove, inline ...
	(read_register): ... here.
	(deprecated_write_register_gen): Remove, inline ...
	(write_register): ... here.
	* regcache.h (deprecated_read_register_gen): Remove prototype.
	(deprecated_write_register_gen): Likewise.

	* remote-sim.c (gdbsim_store_register): Replace call to
	deprecated_read_register_gen with regcache_cooked_read.
	* target.c (debug_print_register): Replace calls to
	deprecated_read_register_gen and read_register with
	regcache_cooked_read.

2007-04-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* hpux-thread.c (hpux_thread_store_registers): Use
	regcache_raw_collect, not regcache_raw_read.
	* irix5-nat.c (fetch_core_registers): Use regcache_raw_supply,
	not regcache_raw_write.

2007-04-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh: Remove deprecated_register_byte.
	* gdbarch.c, gdbarch.h: Regenerate.
	* arch-utils.h (generic_register_size, generic_register_byte): Remove.
	* arch-utils.c (generic_register_size, generic_register_byte): Remove.

	* regcache.h (regcache_valid_p): Make REGCACHE parameter const.
	* regcache.c (regcache_valid_p): Allow to query cooked registers in
	read-only register caches.  Make REGCACHE parameter const.
	(regcache_dump): Do not check DEPRECATED_REGISTER_BYTE.

	* mi/mi-main.c (old_regs): Remove.
	(mi_setup_architecture_data, _initialize_mi_main): Remove.
	(register_changed_p): Reimplement to compare two register caches.
	(mi_cmd_data_list_changed_registers): Update caller.
	* mi/mi-main.h (mi_setup_architecture_data): Remove.
	* mi/mi-interp.c (mi_interpreter_init): Do not call
	mi_setup_architecture_data.

2007-04-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* alpha-nat.c (ALPHA_REGSET_BASE, ALPHA_REGSET_UNIQUE): Do not define,
	inline definition at the places the macros are used.
	* alpha-linux-nat.c (ALPHA_REGSET_BASE, ALPHA_REGSET_UNIQUE): Likewise.

2007-04-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* rs6000-aix-tdep.c: Include "regcache.h", "regset.h", and
	"gdb_string.h".
	(rs6000_aix32_reg_offsets, rs6000_aix64_reg_offsets): New variables.
	(rs6000_aix_supply_regset, rs6000_aix_collect_regset): New functions.
	(rs6000_aix32_regset, rs6000_aix64_regset): New variables.
	(rs6000_aix_regset_from_core_section): New function.
	(rs6000_aix_init_osabi): Register it.
	(_initialize_rs6000_aix_tdep): Register GDB_OSABI_AIX osabi and
	sniffer for bfd_arch_powerpc as well as bfd_arch_rs6000. 
	* rs6000-nat.c (CoreRegs): Do not define type.
	(fetch_core_registers, rs6000_core_fns): Remove.
	(_initialize_core_rs6000): Do not register it.  Rename to ...
	(_initialize_rs6000_nat): ... this.
	* Makefile.in (rs6000-aix-tdep.o): Update dependencies.

2007-04-27  Kevin Buettner  <kevinb@redhat.com>

	* dwarf2expr.c (unsigned_address_type): Add forward declaration.
	(dwarf2_read_address): Sign extend return address as required by
	target architecture.

2007-04-27  Kevin Buettner  <kevinb@redhat.com>

	* solib-frv.c (lm_base): Bail out if the main executable has
	not been relocated.

2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* alpha-linux-tdep.c (alpha_linux_supply_fpregset): Correct location
	of FPCR register in fpregset.

2007-04-27  Maciej W. Rozycki  <macro@mips.com>

	* Makefile.in (gdbtk-wrapper.o): Update dependencies.
	(gdbtk-varobj.o, gdbtk-cmds.o, gdbtk-stack.o): Likewise.

2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/rs6000/nm-rs6000.h (CHILD_SPECIAL_WAITSTATUS): Remove.
	* rs6000-nat.c (rs6000_wait): New function.
	(_initialize_core_rs6000): Install it as to_wait target method.
	* target.c (store_waitstatus): Don't check CHILD_SPECIAL_WAITSTATUS.

2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/rs6000/nm-rs6000.h (TARGET_CREATE_INFERIOR_HOOK): Remove.
	* fork-child.c (fork_inferior): Don't call TARGET_CREATE_INFERIOR_HOOK.
	* rs6000-nat.c (super_create_inferior): New variable.
	(rs6000_create_inferior): Make static.  Adapt argument list.  Call
	original version of create_inferior via super_create_inferior.
	(_initialize_core_rs6000): Install to_create_inferior target method.

2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* aix-thread.c (aix_thread_xfer_memory): Replace by ...
	(aix_thread_xfer_partial): ... this.
	(init_aix_thread_ops): Install to_xfer_partial instead
	of deprecated_xfer_memory target method.

	* config/powerpc/aix.mh (NATDEPFILES): Remove infptrace.o
	and inftarg.o, add inf-ptrace.o.
	* config/rs6000/nm-rs6000.h (FETCH_INFERIOR_REGISTERS,
	CHILD_XFER_MEMORY, KERNEL_U_SIZE, kernel_u_size): Remove.
	* rs6000-nat.c: Include "inf-ptrace.h" and "gdb_stdint.h".
	(fetch_inferior_registers): Rename to ...
	(rs6000_fetch_inferior_registers): ... this.  Make static.
	(store_inferior_registers): Rename to ...
	(rs6000_store_inferior_registers): ... this.  Make static.
	(read_word, child_xfer_memory): Remove.
	(rs6000_xfer_partial): New function.
	(kernel_u_size): Remove.
	(_initialize_core_rs6000): Add inf_ptrace-based target.
	* Makefile.in (rs6000-nat.o): Update dependencies.

2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* inf-ptrace.c: Include "gdb_stdint.h".
	(inf_ptrace_xfer_partial): Use "uintptr_t" instead of "long" as 
	intermediate type when casting CORE_ADDR to PTRACE_TYPE_ARG3.
	(inf_ptrace_fetch_register): Add intermediate cast to "uintptr_t"
	before casting CORE_ADDR to PTRACE_TYPE_ARG3.
	(inf_ptrace_store_register): Likewise.
	* Makefile.in (inf-ptrace.o): Update dependencies.

2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.host (rs6000-*-*): Merge with powerpc-*-aix* rules.
	* configure.tgt (rs6000-*-*): Likewise.
	* config/rs6000/aix4.mh: Delete file.
	* config/rs6000/aix4.mt: Delete file.
	* config/rs6000/rs6000.mh: Delete file.
	* config/rs6000/rs6000.mt: Delete file.

	* config/powerpc/nm-aix.h: Delete file.
	* config/powerpc/aix.mh (NAT_FILE): Set to config/rs6000/nm-rs6000.h.

2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* aix-thread.c (fill_sprs32): Change argument types to "uint32_t *".
	Remove obsolete part of comment.
	(store_regs_user_thread): Use uint32_t temporaries when calling
	fill_sprs32.
	(store_regs_kernel_thread): Likewise.  Add assertion to verify
	correct size of struct ptsprs members.
	(aix_thread_xfer_memory): Fix type of myaddr.
	(aix_thread_extra_thread_info): Fix compiler warning.
	* rs6000-nat.c (rs6000_ptrace64): Change type of buf to "void *".
	(fetch_register, store_register): Adapt callers.

2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* vec.h (vec_free): Rename to vec_free_.  Adapt users.

2007-04-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* alpha-linux-tdep.c: Include "gdb_string.h", "regset.h",
	and "regcache.h".
	(alpha_linux_supply_gregset, alpha_linux_supply_fpregset): New.
	(alpha_linux_gregset, alpha_linux_fpregset): New variables.
	(alpha_linux_regset_from_core_section): New function.
	(alpha_linux_init_abi): Install it.
	* alpha-linux-nat.c: Do not include "gdbcore.h".  Include
	"alpha-tdep.h", <sys/ptrace.h>, <alpha/ptrace.h>,
	<sys/procfs.h>, and "gregset.h".
	(ALPHA_REGSET_BASE, ALPHA_REGSET_UNIQUE, ALPHA_UNIQUE_PTRACE_ADDR):
	Move from config/alpha/nm-linux.h.
	(supply_gregset, fill_gregset, supply_fpregset, fill_fpregset): Copy
	from alpha-nat.c.
	(alpha_linux_register_u_offset): Inline register_addr from alpha-nat.c.
	* alpha-nat.c: Remove #ifdef __linux__ section.
	(fetch_elf_core_registers, alpha_elf_core_fns): Remove.
	(_initialize_core_alpha): Do not register alpha_elf_core_fns.
	(ALPHA_UNIQUE_PTRACE_ADDR, ALPHA_REGSET_UNIQUE): Define unconditionally.
	(ALPHA_REGSET_BASE): Move from config/alpha/nm-osf.h.
	* config/alpha/alpha-linux.mh (NAT_FILE): Set to config/nm-linux.h.
	(NATDEPFILES): Remove alpha-nat.o.
	* config/alpha/nm-linux.h: Delete file.
	* config/alpha/nm-osf.h (ALPHA_REGSET_BASE): Move to alpha-nat.c.
	* Makefile.in (alpha-linux-nat.o): Update dependencies.
	(alpha-linux-tdep.o): Likewise.

2007-04-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* mips-linux-nat.c: No longer include "gdbcore.h".
	(mips_linux_register_addr): Move from mips-linux-tdep.c.
	(mips64_linux_register_addr): Likewise.
	(mips_linux_register_u_offset): Call mips_linux_register_addr or
	mips64_linux_register_addr instead of register_addr.
	* mips-linux-tdep.c (mips_linux_register_addr,
	mips64_linux_register_addr): Move to mips-linux-nat.c.
	(register_addr): Remove.
	(register_addr_data, init_register_addr_data): Remove.
	(_initialize_mips_linux_tdep): Do not initialize register_addr_data.
	(set_mips_linux_register_addr): Remove.
	(mips_linux_init_abi): Do not call set_mips_linux_register_addr.
	* Makefile.in (mips-linux-nat.o): Update dependencies.

2007-04-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* linux-nat.c (linux_register_u_offset): Remove.
	(linux_target_install_ops): New function.
	(linux_target): Use it.
	(linux_trad_target): New function.
	* linux-nat.h (linux_trad_target): Declare.

	* alpha-linux-nat.c: Include "gdbcore.h".
	(alpha_linux_register_u_offset): New function.
	(_initialize_alpha_linux_nat): Use linux_trad_target.

	* mips-linux-nat.c: Include "gdbcore.h".
	(mips_linux_register_u_offset): New function.
	(_initialize_mips_linux_nat): Use linux_trad_target.

	* config/arm/linux.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/arm/nm-linux.h: Delete file.

	* config/i386/nm-linux64.h (FETCH_INFERIOR_REGISTERS): Remove.
	* config/i386/nm-linux.h (FETCH_INFERIOR_REGISTERS): Remove.

	* config/ia64/linux.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/ia64/nm-linux.h: Delete file.

	* config/m32r/linux.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/m32r/nm-linux.h: Delete file.

	* config/m68k/linux.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/m68k/nm-linux.h: Delete file.

	* config/pa/linux.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/pa/nm-linux.h: Delete file.

	* config/powerpc/linux.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/powerpc/ppc64-linux.mh (NAT_FILE): Likewise.
	* config/powerpc/nm-linux.h: Delete file.

	* config/s390/s390.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/s390/nm-linux.h: Delete file.

	* config/sparc/linux.mh (NAT_FILE): Set to config/nm-linux.h.
	* config/sparc/linux64.mh (NAT_FILE): Likewise.
	* config/sparc/nm-linux.h: Delete file.

	* Makefile.in (alpha-linux-nat.o): Update dependencies.
	(mips-linux-nat.o): Likewise.

2007-04-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* core-aout.c: Delete file.
	* Makefile.in (ALLDEPFILES): Remove core-aout.c.
	(core-aout.o): Delete rule.
	* gdbcore.h (kernel_u_addr, KERNEL_U_ADDR): Remove.

	* config/alpha/nm-linux.h (U_REGS_OFFSET): Remove.

	* arm-linux-nat.c (arm_linux_kernel_u_size): Remove.
	* config/arm/nm-linux.h (U_REGS_OFFSET, KERNEL_U_SIZE,
	KERNEL_U_ADDR): Remove.

	* i386-linux-nat.c (register_u_addr, kernel_u_size): Remove.
	(cannot_fetch_register, cannot_store_register): Remove.
	(fetch_register): Inline cannot_fetch_register and register_addr.
	(store_register): Inline cannot_store_register and register_addr.
	* config/i386/linux.mh (NATDEPFILES): Remove core-aout.o.
	* config/i386/nm-linux.h (KERNEL_U_SIZE, KERNEL_U_ADDR,
	REGISTER_U_ADDR, CANNOT_FETCH_REGISTER, CANNOT_STORE_REGISTER):
	Remove.

	* m68klinux-nat.c (m68k_linux_register_u_addr, kernel_u_size): Remove.
	(fetch_register): Inline register_addr.
	(store_register): Inline register_addr.
	* config/m68k/linux.mh (NATDEPFILES): Remove core-aout.o.
	* config/m68k/nm-linux.h (KERNEL_U_SIZE, KERNEL_U_ADDR,
	U_REGS_OFFSET, REGISTER_U_ADDR): Remove.

	* config/mips/nm-irix5.h (REGISTER_U_ADDR): Remove.
	* config/mips/nm-linux.h (KERNEL_U_SIZE, U_REGS_OFFSET,
	REGISTER_U_ADDR): Remove.

	* hppa-linux-nat.c (register_addr): Rename to ...
	(hppa_linux_register_addr): ... this.  Make static.
	(fetch_register, store_register): Adapt callers.
	* config/pa/nm-linux.h (U_REGS_OFFSET): Remove.

	* ppc-linux-nat.c (kernel_u_size): Remove.
	* config/powerpc/nm-linux.h (KERNEL_U_SIZE, KERNEL_U_ADDR): Remove.

	* vax-nat.c (vax_kernel_u_addr, vax_register_u_addr): Make static.
	* config/vax/vax.mh (NATDEPFILES): Remove core-aout.o.
	(NAT_FILE): Remove.
	* config/vax/nm-vax.h: Delete file.

2007-04-20  Mark Shinwell  <shinwell@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-04-20  Mark Shinwell  <shinwell@codesourcery.com>

	* Makefile.in: Adjust dependencies of m68klinux-tdep.c.
	* m68klinux-tdep.c (m68k_uclinux_sigcontext_reg_offset): New.
	(m68k_linux_sigcontext_reg_offset): Fix typo.
	(target_is_uclinux): New.
	(m68k_linux_inferior_created): New.
	(m68k_linux_get_sigtramp_info):  Check for uClinux or
	normal Linux.  Use m68k_uclinux_sigcontext_reg_offset for
	uClinux.
	(_initialize_m68k_linux_tdep): Register
	m68k_linux_inferior_created.

2007-04-19  Pedro Alves  <pedro_alves@portugalmail.pt>

	* win32-nat.c (win32_detach): Remove delete_command call.
	Resume inferior with win32_resume instead of win32_continue.

2007-04-19  Jerome Guitton  <guitton@adacore.com>

	* ser-mingw.c (fd_is_file): New function.
	(file_select_thread): New function.
	(ser_console_wait_handle): Add special handling for files.

2007-04-18  Denis Pilat  <denis.pilat@st.com>

	* dwarf2read.c (read_subrange_type): Use DW_ATE_signed default type
	when missing from DW_TAG_subrange_type.  Remove the handling of null
	return from die_type.

2007-04-18  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_eabi_push_dummy_call): Revert the last
	change to rearrange some brackets.
	(mips_n32n64_push_dummy_call): Likewise.
	(mips_o32_push_dummy_call): Likewise.
	(mips_o64_push_dummy_call): Likewise.

2007-04-18  Denis Pilat  <denis.pilat@st.com>

	* infcmd.c (post_create_inferior): Start with a call to 
	target_terminal_ours.

2007-04-17  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_eabi_push_dummy_call): Rearrange some
	brackets.
	(mips_n32n64_push_dummy_call): Likewise.  Reformat some
	expressions.
	(mips_o32_push_dummy_call): Likewise.
	(mips_o64_push_dummy_call): Likewise.

2007-04-17  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_push_dummy_call): Fix a typo in a
	comment.

2007-04-17  Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_push_dummy_call): Fix a typo in a
	comment.
	(mips_o32_push_dummy_call): Likewise.

2007-04-17  Andreas Schwab  <schwab@suse.de>

	* symtab.c (skip_prologue_using_sal): Allow the end of the prologue
	sal to be bigger than the end of the function.

2007-04-17  Maciej W. Rozycki  <macro@mips.com>
            Nigel Stephens  <nigel@mips.com>

	* mips-tdep.c (mips_o32_push_dummy_call): Take account of
	argument alignment requirements when calculating stack space
	required.  When aligning an arg register to eight bytes
	boundary, align stack_offset too.  Write floating-point
	arguments to the appropriate integer register if need go there.
	(mips_o64_push_dummy_call): Likewise.

2007-04-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (software_single_step): Remove "insert_breakpoints_p" and
	"sig" arguments, add "regcache" argument.
	* gdbarch.c, gdbarch.h: Regenerate.

	* infrun.c (resume): Update SOFTWARE_SINGLE_STEP call arguments.
	(handle_inferior_event): Call remove_single_step_breakpoints directly
	instead of calling SOFTWARE_SINGLE_STEP to remove breakpoints.

	* alpha-tdep.c (alpha_software_single_step): Update argument list.
	Remove handling of !insert_breakpoints_p case.
	* arm-tdep.c (arm_software_single_step): Likewise.
	* cris-tdep.c (cris_software_single_step): Likewise.
	* mips-tdep.c (mips_software_single_step): Likewise.
	* rs6000-tdep.c (rs6000_software_single_step): Likewise.
	* sparc-tdep.c (sparc_software_single_step): Likewise.
	* spu-tdep.c (spu_software_single_step): Likewise.

	* alpha-tdep.h (alpha_software_single_step): Update prototype.
	* mips-tdep.h (mips_software_single_step): Likewise.
	* rs6000-tdep.h (rs6000_software_single_step): Likewise.
	* sparc-tdep.h (sparc_software_single_step): Likewise.

2007-04-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* alpha-tdep.c (alpha_software_single_step): Do not call write_pc
	when removing single-step breakpoints.

2007-04-14  Vladimir Prus  <vladimir@codesourcery.com>

	* varobj.h (varobj_set_frozen): New
	(varobj_get_frozen): New.
	(varobj_update): New parameter explicit.
	* varobj.c (struct varobj): New fields frozen
	and not_fetched.
	(varobj_set_frozen, varobj_get_frozen): New.
	(install_new_value): Don't fetch values for 
	frozen variable object, or children thereof.  Allow
	a frozen variable object to have non-fetched value.
	(varobj_update): Allow updating child variables.
	Don't traverse frozen children.
	(new_variable): Initialize the frozen field.
	(c_value_of_variable): Return NULL for frozen
	variable without any value yet. 
	* mi/mi-cmd-var.c (varobj_update_one): New parameter
	'explicit'.
	(mi_cmd_var_create): Output the 'frozen' field,
	as soon as testsuite is adjusted to expect that field.
	(mi_cmd_var_set_frozen): New.
	(mi_cmd_var_update): Pass the 'explicit' parameter to
	varobj_update_one.
	* mi/mi-cmds.c (mi_cmds): Register '-var-set-frozen'.
	* mi/mi-cmds.h (mi_cmd_var_set_frozen): Declare.

2007-04-13  Paul Brook  <paul@codesourcery.com>

	* target-descriptions.c (tdesc_named_type): Add ieee_single and
	ieee_double.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-mdebug-tdep.c, mips-mdebug-tdep.h, ocd.c, ocd.h, ppc-bdm.c,
	remote-e7000.c, remote-hms.c, remote-utils.c, remote-utils.h,
	scm-exp.c, scm-lang.c, scm-lang.h, scm-tags.h, scm-valprint.c,
	ser-e7kpc.c, sh3-rom.c, stop-gdb.c: Delete.
	* Makefile.in: Remove references to deleted files.
	* README: Do not mention deleted ROM monitor interfaces.
	* defs.h (enum language): Delete language_scm.
	* expprint.c (print_subexp_standard): Do not handle OP_EXPRSTRING.
	(dump_subexp_body_standard): Likewise.
	* parse.c (operator_length_standard): Likewise.
	* expression.h (enum exp_opcode): Delete OP_EXPRSTRING.
	* remote-mips.c: Do not include remote-utils.h.
	* remote-sim.c: Likewise.  Use remote_debug instead of sr_get_debug
	throughout.
	* value.c: Do not include scm-lang.h.
	(unpack_long): Delete scm_unpack call.
	* config/h8300/h8300.mt, config/mips/embed.mt,
	config/powerpc/ppc-eabi.mt, config/powerpc/ppc-sim.mt,
	config/sh/embed.mt, config/sh/linux.mt: Remove references to
	deleted files.
	* NEWS: Mention removed files.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* symfile.c (add_psymbol_with_dem_name_to_list): Remove.
	* symfile.h (add_psymbol_with_dem_name_to_list): Remove prototype.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Mention removal of HP aCC support.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* solib-svr4.c (IGNORE_FIRST_LINK_MAP_ENTRY): Do not ignore the
	first entry for static executables.
	(breakpoint_addr): Delete unused variable.
	(elf_locate_base): Search for _r_debug in static executables.
	(enable_break): Do not set breakpoint_addr.  Scan solib_break_names
	also.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* breakpoint.c (update_breakpoints_after_exec, print_it_typical)
	(bpstat_what, print_one_breakpoint, allocate_bp_location)
	(mention): Remove bp_through_sigtramp support.
	* breakpoint.h (enum bptype): Remove bp_through_sigtramp.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* breakpoint.c (bpstat_what): Give step-resume higher priority than
	shlib events.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* infrun.c: Doc fixes.
	(handle_inferior_event): Clarify debug message.
	(insert_step_resume_breakpoint_at_sal): Print a debug message.

2007-04-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.tgt (arm-*-nto*, sh-*-nto*): Remove.

2007-04-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/m68k/tm-monitor.h: Delete file.
	* config/m68k/monitor.mt (DEPRECATED_TM_FILE): Remove.
	* m68k-tdep.c (m68k_gdbarch_init): set_gdbarch_decr_pc_after_break
	call moved to ...
	* m68kbsd-tdep.c (m68kbsd_init_abi): ... here and ...
	* m68klinux-tdep.c (m68k_linux_init_abi): ... here.

2007-04-12  Luis Machado  <luisgpm@br.ibm.com>

	* gdbarch.sh (software_single_step): Change the return type
	from void to int and reformatted some comments to <= 80
	columns.
	* gdbarch.c, gdbarch.h: Regenerated.
	* alpha-tdep.c (alpha_software_single_step): Likewise.
	* alpha-tdep.h (alpha_software_single_step): Likewise.
	* arm-tdep.c (arm_software_single_step): Likewise.
	* cris-tdep.c (cris_software_single_step): Likewise.
	* mips-tdep.c (mips_software_single_step): Likewise.
	* mips-tdep.h (mips_software_single_step): Likewise.
	* rs6000-tdep.c (rs6000_software_single_step): Likewise.
	* rs6000-tdep.h (rs6000_software_single_step): Likewise.
	* sparc-tdep.c (sparc_software_single_step): Likewise.
	* sparc-tdep.h (sparc_software_single_step): Likewise.
	* spu-tdep.c (spu_software_single_step): Likewise.
	* infrun.c (resume): Check the return value from SOFTWARE_SINGLE_STEP
	and act accordingly.

2007-04-11  Steve Ellcey  <sje@cup.hp.com>

	* configure.ac (build_warnings): Add -Wno-char-subscripts.
	* configure: Regenerate.

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

	* libunwind-frame.c (LIBUNWIND_SO): Use major version number for `.so'.

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

	* gdbtypes.h (TYPE_FLAG_STUB_SUPPORTED, TYPE_STUB_SUPPORTED): New
	macros.
	(TYPE_IS_OPAQUE): Empty vs. opaque structures are now
	distinct on the TYPE_STUB_SUPPORTED debug targets.
	* dwarf2read.c (read_structure_type): Set TYPE_FLAG_STUB_SUPPORTED.

2007-04-11  Joel Brobecker  <brobecker@adacore.com>

	* sparc-tdep.c (X_RS2): New macro.
	(sparc_skip_stack_check): New function.
	(sparc_analyze_prologue): Adjust PC past stack probing
	sequence if necessary.

2007-04-10  Andreas Schwab  <schwab@suse.de>

	* rs6000-tdep.c (rs6000_dwarf2_reg_to_regnum): Decode 64 as CR
	register.

2007-04-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* breakpoint.c (gdb_breakpoint_query): Really return an
	enum gdb_rc.
	(gdb_breakpoint): Likewise.
	* thread.c (gdb_list_thread_ids): Likewise.
	(gdb_thread_select): Likewise.
	* mi/mi-main.c (mi_cmd_thread_select): Expect an enum gdb_rc.
	(mi_cmd_thread_list_ids): Remove bogus initialization.

2007-04-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (SFILES): Remove hpacc-abi.c.
	(COMMON_OBS): Remove hpacc-abi.o.
	(ALLDEPFILES): Remove hpread.c and $(HPREAD_SOURCE).
	(hpacc-abi.o, hpread.o): Delete rules.
	* somread.c: Delete extern declarations from hpread.c.
	(som_symfile_read): Do not call do_pxdb or hpread_build_psymtabs.
	(som_symfile_finish): Do not call hpread_symfile_finish.
	(som_symfile_init): Do not call hpread_symfile_init.
	* config/pa/hppa64.mt (TDEPFILES): Remove hpread.o.
	* config/pa/hppahpux.mt (TDEPFILES): Likewise.
	* hpacc-abi.c, hpread.c: Deleted.

2007-04-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* solib-svr4.c (enable_break): Simplify return value.
	(svr4_solib_create_inferior_hook): Do not warn if enable_break fails.

2007-04-10  Andreas Schwab  <schwab@suse.de>

	* solib-svr4.h (struct link_map_offsets): Remove l_addr_size,
	l_ld_size, l_next_size, l_prev_size, l_name_size.

	* solib-svr4.c (LM_ADDR_FROM_LINK_MAP): Use extract_typed_address
	to extract addresses from link map.
	(LM_DYNAMIC_FROM_LINK_MAP): Likewise.
	(LM_NEXT): Likewise.
	(LM_NAME): Likewise.
	(IGNORE_FIRST_LINK_MAP_ENTRY): Likewise.
	(elf_locate_base): Likewise.
	(open_symbol_file_object): Likewise.
	(svr4_fetch_objfile_link_map): Likewise.
	(SOLIB_EXTRACT_ADDRESS): Remove unused macro.
	(HAS_LM_DYNAMIC_FROM_LINK_MAP): Test l_ld_offset instead of
	l_ld_size.
        (svr4_ilp32_fetch_link_map_offsets): Don't set removed members.
	(svr4_lp64_fetch_link_map_offsets): Likewise.

	* solib-legacy.c (legacy_svr4_fetch_link_map_offsets): Don't set
	removed members.  Set l_ld_offset to -1 if not present.

2007-04-08  Vladimir Prus  <vladimir@codesourcery.com>
        
	Pass stderr of program run with "target remote |"
        via gdb_stderr.
	* serial.c (serial_open): Set error_fd to -1.
	* serial.h (struct serial): New field error_fd.
	(struct serial_opts): New field avail.
	* ser-pipe.c (pipe_open): Create another pair
	of sockets.  Pass stderr to gdb.
	* ser-mingw.c (pipe_windows_open): Pass
	PEX_STDERR_TO_PIPE to pex_run.  Initialize
	sd->error_fd.
	(pipe_avail): New.
	(_initialize_ser_windows): Hook pipe_avail.
	* ser-base.c (generic_readchar): Check if there's
	anything in stderr channel and route that to gdb_stderr.

2007-04-03  Pedro Alves  <pedro_alves@portugalmail.pt>

	* dbxread.c (read_ofile_symtab): Move current_objfile
	clearing to after end_stabs.

2007-04-01  Andreas Schwab  <schwab@suse.de>

	* rs6000-tdep.c (rs6000_convert_from_func_ptr_addr): Use parameter
	gdbarch instead of current_gdbarch.

2007-04-01  Vladimir Prus  <vladimir@codesourcery.com>

	* varobj.c (varobj_create): Keep varobj value
	NULL when evaluating the type.
	
2007-03-31  Pedro Alves  <pedro_alves@portugalmail.pt>

	* NEWS: Mention new Windows CE support.

2007-03-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* configure.tgt: Move mips*-*-pe and sh*-*-pe to 
	the obsoletion stanza.
	* NEWS: Mention deleted targets.

	* config/sh/tm-wince.h: Remove.
	* config/sh/wince.mt: Remove.
	* config/mips/tm-wince.h: Remove.
	* config/mips/wince.mt: Remove.

	* wince.c: Remove.
	* wince-stub.c: Remove.
	* wince-stub.h: Remove.
	* Makefile.in (wince.o): Remove rule.
	(wince-stub.o): Likewise.

	* mips-tdep.c (mips_next_pc): Make static.
	* mips-tdep.h (mips_next_pc): Remove declaration.
	* arm-tdep.c (arm_pc_is_thumb): Make static.
	(thumb_get_next_pc): Likewise.
	(arm_get_next_pc): Likewise.
	* arm-tdep.h (arm_pc_is_thumb_dummy): Remove declaration.
	(arm_pc_is_thumb): Likewise.
	(thumb_get_next_pc): Likewise.
	(arm_get_next_pc): Likewise.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* MAINTAINERS: Remove d10v entry.
	* Makefile.in (SFILES): Remove dwarfread.c.
	(COMMON_OBS): Remove dwarfread.o.
	(gdb_sim_d10v_h, abug-rom.o, cpu32bug-rom.o, d10v-tdep.o, dwarfread.o)
	(remote-est.o, rom68k-rom.o): Delete.
	* NEWS: Mention removal of d10v, target abug, target cpu32bug,
	target est, target rom68k, and DWARF 1.
	* configure.tgt: Mark d10v as removed.
	* dwarf2read.c: Doc update.
	* elfread.c (struct elfinfo): Remove dboffset, dbsize, lnoffset,
	and lnsize.
	(elf_locate_sections): Do not set them.
	(elf_symfile_read): Do not call dwarf_build_psymtabs.
	* symfile.h (dwarf_build_psymtabs): Delete prototype.
	* config/m68k/monitor.mt (TDEPFILES): Prune.
	* abug-rom.c, cpu32bug-rom.c, d10v-tdep.c, dwarfread.c,
	remote-est.c, rom68k-rom.c, config/d10v/d10v.mt: Delete.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* doublest.c (convert_floatformat_to_doublest): Use
	floatformat_classify.
	(floatformat_is_nan): Rename to...
	(floatformat_classify): ...this.  Return more information.
	* doublest.h (enum float_kind): New.
	(floatformat_is_nan): Replace prototype...
	(floatformat_classify): ...with this one.
	* valprint.c (print_floating): Use floatformat_classify.  Handle
	infinity.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* README: Mention ISO C library requirement.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (SFILES): Remove nlmread.c.
	(COMMON_OBS): Remove nlmread.o.
	(nlmread.o): Delete rule.
	* README: Delete reference to remote-st.c.
	* acinclude.m4 (CY_AC_TCL_LYNX_POSIX): Delete.
	* defs.h (enum gdb_osabi): Delete GDB_OSABI_NETWARE and
	GDB_OSABI_LYNXOS.
	* i386-tdep.c (i386_nw_init_abi, i386_nlm_osabi_sniffer): Delete.
	(_initialize_i386_tdep): Do not reference them.
	* nlmread.c: Delete file.
	* osabi.c (gdb_osabi_names): Remove NetWare and LynxOS.
	* target.c: Doc update.
	* thread.c: Delete commented include.
	* config/alpha/tm-alpha.h: Doc update.

2007-03-30  Chris Dearman  <chris@mips.com>

	* utils.c (string_to_core_addr): Comment typo.

2007-03-30  Chris Dearman  <chris@mips.com>

	* mips-tdep.c: Comment typo.

2007-03-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/alpha/nm-osf.h (PTRACE_XFER_TYPE): Remove.
	* config/mips/nm-linux.h (PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Remove.
	* config/sparc/nm-linux.h (PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Remove.
	* config/powerpc/nm-ppc64-linux.h: Remove file.
	* config/powerpc/ppc64-linux.mh (NATDEPFILES): Set to nm-linux.h.
	* inferior.h (PTRACE_ARG3_TYPE): Do not define.
	(call_ptrace): Change type of third argument to PTRACE_TYPE_ARG3.
	* infptrace.c (call_ptrace): Likewise.
	* m68klinux-nat.c (PTRACE_XFER_TYPE): Do not define.
	(fetch_register): Replace PTRACE_ARG3_TYPE by PTRACE_TYPE_ARG3
	and PTRACE_XFER_TYPE by PTRACE_TYPE_RET.
	(store_register): Likewise.

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

	* Makefile.in (varobj.o): Add missing dependency.

2007-03-29  Michael Snyder  <msnyder@access-company.com>

	* MAINTAINERS: Update my email address.

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

	Add support for exception handling with multiple versions of
	the Ada runtime:
	* ada-lang.c: Update general comments on how Ada exception catchpoints
	are implemented.
	(raise_sym_name, raise_unhandled_sym_name, raise_assert_sym_name)
	(__gnat_raise_nodefer_with_msg): Delete.
	(ada_unhandled_exception_name_addr_ftype): New type.
	(exception_support_info): New type.
	(ada_unhandled_exception_name_addr): Add forward declaration.
	(ada_unhandled_exception_name_addr_from_raise): Likewise.
	(default_exception_support_info): New constant.
	(exception_support_info_fallback): Likewise.
	(exception_info): New global variable.
	(ada_exception_support_info_sniffer): New function.
	(ada_executable_changed_observer): Likewise.
	(ada_unhandled_exception_name_addr_from_raise): Renamed from
	ada_unhandled_exception_name_addr.
	(ada_unhandled_exception_name_addr): Reimplement to match the
	latest Ada runtime implementation.
	(error_breakpoint_runtime_sym_not_found): Delete.
	(ada_exception_sym_name): Get the exception sym name from
	exception_info rather than hardcoding it.
	(ada_exception_sal): Add call to ada_exception_support_info_sniffer.
	Update error handling.
	* Makefile.in (ada-lang.o): Add dependency on observer.h.

2007-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (coff_solib_h, coff-solib.o, i386v-nat.o, lynx-nat.o)
	(remote-st.o, uw-thread.o): Delete.
	(HFILES_NO_SRCDIR, ALLDEPFILES): Update.
	* configure.host: Move hppa*-*-hiux*, i[34567]86-ncr-*,
	i[34567]86-*-dgux*, i[34567]86-*-lynxos*, i[34567]86-*-sco3.2v5*,
	i[34567]86-*-sco3.2v4*, i[34567]86-*-sco*, i[34567]86-*-sysv4.2*,
	i[34567]86-*-sysv4*, i[34567]86-*-sysv5*, i[34567]86-*-unixware2*,
	i[34567]86-*-unixware*, i[34567]86-*-sysv*, i[34567]86-*-isc*, and
	rs6000-*-lynxos* to an obsoletion stanza.
	* configure.tgt: Move hppa*-*-hiux*, i[34567]86-ncr-*,
	i[34567]86-*-lynxos*, m68*-cisco*-*, m68*-tandem-*, m68*-*-os68k*,
	and rs6000-*-lynxos* to an obsoletion stanza.  Do not mention
	i[34567]86-*-netware*.
	* NEWS: Mention deleted targets.

	* coff-solib.c, coff-solib.h, i386v-nat.c, lynx-nat.c, remote-st.c,
	uw-thread.c, config/nm-lynx.h, config/i386/i386sco.mh,
	config/i386/i386sco4.mh, config/i386/i386sco5.mh, config/i386/i386v.mh,
	config/i386/i386v4.mh, config/i386/i386v42mp.mh,
	config/i386/ncr3000.mh, config/i386/ncr3000.mt,
	config/i386/nm-i386sco.h, config/i386/nm-i386sco4.h,
	config/i386/nm-i386sco5.h, config/i386/nm-i386v.h,
	config/i386/nm-i386v4.h, config/i386/nm-i386v42mp.h,
	config/m68k/cisco.mt, config/m68k/os68k.mt, config/m68k/st2000.mt,
	config/m68k/tm-cisco.h, config/m68k/tm-os68k.h,
	config/rs6000/rs6000lynx.mh, config/rs6000/rs6000lynx.mt,
	config/rs6000/tm-rs6000ly.h: Delete files.

2007-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* defs.h (deprecated_registers_changed_hook): Delete declaration.
	* interps.c (clear_interpreter_hooks): Do not clear
	deprecated_registers_changed_hook.
	* regcache.c (registers_changed): Do not call it.
	* top.c (deprecated_registers_changed_hook): Do not define it.
	* mi/mi-interp.c (mi_command_loop): Do not clear it.
	* tui/tui-hooks.c (tui_install_hooks): Do not install it.
	(tui_remove_hooks): Do not remove it.
	(tui_selected_frame_level_changed_hook): Check for negative level.
	Use get_selected_frame.
	(tui_registers_changed_hook): Deleted.

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

	* stabsread.c (add_undefined_type): Add extra parameter.
	Now handles nameless types separately.
	(struct nat): New type.
	(noname_undefs, noname_undefs_allocated, noname_undefs_length):
	New static variables.
	(read_type): Update calls to add_undefined_type.
	(add_undefined_type_noname): New function.
	(add_undefined_type_1): Renames from add_undefined_type.
	(cleanup_undefined_types_noname): New function.
	(cleanup_undefined_types_1): Renames cleanup_undefined_types.
	(cleanup_undefined_types): New handles nameless types separately.
	(_initialize_stabsread): Initialize our new static constants.

2007-03-29  Denis Pilat  <denis.pilat@st.com>

	* configure.ac: Test for signal.h.
	* configure, config.in: Regenerate.

2007-03-29  Denis Pilat  <denis.pilat@st.com>

	* stack.c (print_stack_frame): Always use LOC_AND_ADDRESS in MI output.
	* infrun.c (normal_stop): Remove MI specific frame printing treatment.

2007-03-29  Pedro Alves  <pedro_alves@portugalmail.pt>

	* arm-wince-tdep.c: New.
	* config/arm/wince.mt (DEPRECATED_TM_FILE): Use tm-arm.h.
	(MT_CFLAGS): Delete.
	(TM_CLIBS): Delete.
	(TDEPFILES): Add arm-wince-tdep.o, corelow.o, solib.o,
	solib-legacy.o, solib-svr4.o, and remove wince.o.
	* configure.tgt (arm*-*-mingw32ce*): Add.
	* signals/signals.c [HAVE_SIGNAL_H]: Check.
	(do_target_signal_to_host): Silence 'not used' warning.
	* config/arm/tm-wince.h: Remove.

2007-03-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* arch-utils.c (legacy_pc_in_sigtramp): Remove.
	* arch-utils.h (legacy_pc_in_sigtramp): Remove.

	* config/ia64/linux.mt (DEPRECATED_TM_FILE): Remove.
	* config/ia64/tm-linux.h: Remove file.
	* ia64-tdep.h (struct gdbarch_tdep): Add pc_in_sigtramp callback.
	* ia64-tdep.c (ia64_sigtramp_frame_sniffer): Use it instead of
	legacy_pc_in_sigtramp.
	(ia64_gdbarch_init): Initialize tdep->pc_in_sigtramp.
	* ia64-linux-tdep.c (ia64_linux_pc_in_sigtramp): Make static.
	Remove func_name argument.
	(ia64_linux_init_abi): Install it as tdep->pc_in_sigtramp.

	* infrun.c (HAVE_STEPPABLE_WATCHPOINT): Do not redefine.
	* target.c (update_current_target): Add to_have_steppable_watchpoint.
	* target.h (struct target_ops):  Add to_have_steppable_watchpoint.
	(HAVE_STEPPABLE_WATCHPOINT): Define.

	* config/ia64/linux.mh (NATDEPFILES): Remove core-aout.o.
	* config/ia64/nm-linux.h (KERNEL_U_ADDR, U_REGS_OFFSET,
	CANNOT_FETCH_REGISTER, CANNOT_STORE_REGISTER,
	TARGET_CAN_USE_HARDWARE_WATCHPOINT, HAVE_STEPPABLE_WATCHPOINT,
	STOPPED_BY_WATCHPOINT, target_stopped_data_address,
	target_insert_watchpoint, target_remove_watchpoint): Remove.
	(FETCH_INFERIOR_REGISTERS): Define.
	* ia64-linux-nat.c (ia64_register_addr): Make static.
	(ia64_cannot_fetch_register, ia64_cannot_store_register): Likewise.
	(ia64_linux_insert_watchpoint): Make static.  Remove ptid_p argument.
	(ia64_linux_remove_watchpoint): Likewise.  Add type argument.
	(ia64_linux_stopped_data_address): Make static.  Add target_ops.
	(ia64_linux_stopped_by_watchpoint): Make static.
	(ia64_linux_can_use_hw_breakpoint): New function.
	(ia64_linux_fetch_register, ia64_linux_fetch_registers): Likewise.
	(ia64_linux_store_register, ia64_linux_store_registers): Likewise.
	(_initialize_ia64_linux_nat): Install register and watchpoint ops.

2007-03-28  Pedro Alves  <pedro_alves@portugalmail.pt>

	* linespec.c: Include language.h.
	(find_methods): Add language parameter.  Call
	lookup_symbol_in_language.  Pass language down.
	(add_matching_methods): Likewise.  Call
	lookup_symbol_in_language.
	(add_constructors): Likewise.
	(find_method): Pass sym_class to collect_methods.
	(collect_methods): Add sym_class parameter.  Pass language
	down.
	* symtab.c (lookup_symbol): Rename to ...
	(lookup_symbol_in_language): ... this.  Add language
	parameter.  Use passed language instead of current_language.
	(lookup_symbol): New as wrapper around
	lookup_symbol_in_language.
	(lookup_symbol_aux): Add language parameter.  Use passed
	language instead of current_language.
	(search_symbols): Indent.
	* symtab.h (enum language): Forward declare.
	(lookup_symbol_in_language): Declare.
	(lookup_symbol): Update description.
	* ada-lang.h (lookup_symbol_in_language): Remove declaration.
	* ada-lang.c (restore_language): Remove.
	(lookup_symbol_in_language): Remove.

2007-03-27  Pedro Alves  <pedro_alves@portugalmail.pt>

	* breakpoint.c (bpstat_num): Add int *num parameter.
	* breakpoint.h (bpstat_num): Likewise.
	* infcmd.c (continue_command): Adjust to new bpstat_num
	interface.
	(program_info): Likewise.

2007-03-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/sh/tm-sh.h: Remove file.
	* config/sh/embed.mt (DEPRECATED_TM_FILE): Remove.
	* config/sh/linux.mt (DEPRECATED_TM_FILE): Remove.
	* config/sh/nbsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/sh/tm-wince.h: Do not include "sh/tm-sh.h".

2007-03-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/sh/tm-sh.h (DEPRECATED_BIG_REMOTE_BREAKPOINT,
	DEPRECATED_LITTLE_REMOTE_BREAKPOINT): Remove.
	* remote.c: Remove code under #ifdef DEPRECATED_REMOTE_BREAKPOINT,
	DEPRECATED_BIG_REMOTE_BREAKPOINT, DEPRECATED_LITTLE_REMOTE_BREAKPOINT.
	* sh-tdep.c (sh_breakpoint_from_pc): Return remote breakpoint
	sequence if target_shortname is "remote".

2007-03-27  Anton Blanchard  <anton@samba.org>

	* rs6000-tdep.c (rs6000_frame_cache): Use tdep->lr_frame_offset
	instead of wordsize when looking for the LR in a stack frame.

2007-03-27  Andreas Schwab  <schwab@suse.de>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2-frame.c (dwarf2_frame_eh_frame_regnum): Rename to...
	(dwarf2_frame_adjust_regnum): ...this.  Make static.  Add eh_frame_p
	argument.  Update all callers.
	(struct dwarf2_frame_ops): Replace eh_frame_regnum with adjust_regnum.
	(dwarf2_frame_set_eh_frame_regnum): Rename to...
	(dwarf2_frame_set_adjust_regnum): ...this.  Update argument type.
	* dwarf2frame.h (dwarf2_frame_set_eh_frame_regnum): Rename to...
	(dwarf2_frame_set_adjust_regnum): ...this.
	(dwarf2_frame_eh_frame_regnum): Delete prototype.
	* rs6000-tdep.c: Include "dwarf2-frame.h".
	(rs6000_adjust_frame_regnum): Define.
	(rs6000_gdbarch_init): Enable use of DWARF CFI frame unwinder.
	Register rs6000_adjust_frame_regnum.

	* Makefile.in (rs6000-tdep.o): Update dependencies.

2007-03-27  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.in: Add support for a "pdf" target.

2007-03-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* amd64-tdep.c (amd64_init_frame_cache): New function.
	(amd64_alloc_frame_cache, amd64_skip_prologue): Use it.

2007-03-26  Nigel Stephens  <nigel@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* ui-out.c (ui_out_field_core_addr): Truncate address to
	TARGET_ADDR_BIT size before printing.

2007-03-22  Nigel Stephens  <nigel@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* remote-mips.c (mips_xfer_memory): Update prototype.

2007-03-22  Joel Brobecker  <brobecker@adacore.com>

	* symfile.h: #include "symtab.h"

2007-03-22  Denis Pilat  <denis.pilat@st.com>

	* utils.c (pagination_on_command, pagination_off_command):
	Remove useless prototypes.

2007-03-21  Pierre Muller  <muller@ics.u-strasbg.fr>

	Fix PR pascal/2232.
	* p-valprint.c (pascal_object_print_value): Use type_name_no_tag 
	instead of TYPE_NAME for object base class name.


2007-03-19  Kevin Buettner  <kevinb@redhat.com>

	* mep-tdep.c (mep_analyze_frame_prologue, mep_frame_this_id):
	Specify frame type in calls to frame_func_unwind().

2007-03-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* rs6000-tdep.c (rs6000_skip_prologue): Use skip_prologue_using_sal.
	(rs6000_in_function_epilogue_p): Use extract_unsigned_integer.
	(refine_prologue_limit): Delete.
	(skip_prologue): Don't call it.  Use extract_unsigned_integer.
	Assume lim_pc is set.  Correct check for incomplete prologues.
	Do not skip clobbers of the frame pointer.
	* symtab.c (skip_prologue_using_sal): Fail if there is only one
	sal.

2007-03-13  Nathan Froyd  <froydnj@codesourcery.com>

	* frame.c (frame_pop): Check to see whether there's a frame to
	which we can pop first.

2007-03-13  Nathan Froyd  <froydnj@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-03-09  Markus Deuling  <deuling@de.ibm.com>

	* infrun.c (breakpoints_failed): Remove unnecessary variable.
	(handle_inferior_event): Remove unnecessary braces.
	* breakpoint.c (bpstat_what): Remove wrong comment.

2007-03-09  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-tdep.c (spu_in_function_epilogue_p): New function.
	(spu_gdbarch_init): Install it.

2007-03-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-linux-nat.c (spu_xfer_partial): Return -1 for unsupported
	object types, not 0.

2007-03-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-tdep.c (spu_frame_align): New function.
	(spu_gdbarch_init): Install it.  Set call dummy location to ON_STACK.

2007-03-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-tdep.c (spu_unwind_pc): Mask off interrupt enable bit.
	(spu_software_single_step): Likewise.
	(spu_read_pc, spu_write_pc): New functions.
	(spu_gdbarch_init): Install them.

2007-03-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* cli/cli-dump.c (struct callback_data): load_offset needs to 
	have signed long type.

2007-03-07  Joel Brobecker  <brobecker@adacore.com>

	* mips-tdep.c (mips_insn16_frame_cache, mips_insn32_frame_sniffer):
	Revert the previous change that had some unexpected side-effects
	on mips32.
	(mips_insn16_frame_cache, mips_insn32_frame_cache): Use the proper
	function to get the address of the calling instruction.

2007-03-07  Denis Pilat  <denis.pilat@st.com>

	* tui/tui-hooks.c (tui_selected_frame_level_changed_hook): Replace
	get_selected_frame by deprecated_safe_get_selected_frame.

2007-03-02  Mark Kettenis  <kettenis@gnu.org>

	* shnbsd-tdep.c: Include "regset.h", "gdb_assert.h" and
	"gdb_string.h".  Don't include "nbsd-tdep.h".
	(SIZEOF_STRUCT_REG): Remove.
	(SHNBSD_SIZEOF_GREGS): New.
	(shnbsd_supply_gregset, shnbsd_collect_gregset)
	(shnbsd_regset_from_core_section): New functions.
	(fetch_core_registers, fetch_elfcore_registers): Remove functions.
	(shnbsd_supply_reg, shnbsd_fill_reg): Simply call
	shnbsd_supply_gregset, shnbsd_collect_gregset.
	(shnbsd_gregset): New variable.
	(shnbsd_init_abi): Set regset_from_core_section.
	(GDB_OSABI_NETBSD_CORE): New define.
	(shnbsd_core_osabi_sniffer): New function.
	(_initialize_shnbsd_tdep): Register shnbsd_core_osabi_sniffer.
	* Makefile.in (shnbsd-tdep.o): Update dependencies.
	* config/sh/nbsd.mt (TDEPFILES): Add corelow.o, remove
	nbsd-tdep.o.
	* config/sh/obsd.mt (TDEPFILES): Remove nbsd-tdep.o.

2007-02-28  Joel Brobecker  <brobecker@adacore.com>

	* gdbtypes.c (replace_type): Fix typo that caused us to not update
	length of the types referenced by the new type CV ring.

2007-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* frame.c (frame_pop, frame_observer_target_changed): Call
	reinit_frame_cache.
	(flush_cached_frames): Rename to reinit_frame_cache and delete
	old implementation.
	* frame.h (flush_cached_frames): Delete prototype and update comment.

	* bsd-kvm.c (bsd_kvm_open, bsd_kvm_proc_cmd, bsd_kvm_pcb_cmd): Call
	reinit_frame_cache instead of flush_cached_frames.  Do not call
	select_frame after reinit_frame_cache.
	* corelow.c (core_open): Likewise.
	* gdbarch.sh (deprecated_current_gdbarch_select_hack): Likewise.
	* infrun.c (prepare_to_proceed, context_switch)
	(handle_inferior_event): Likewise.
	* linux-fork.c (fork_load_infrun_state): Likewise.
	* ocd.c (ocd_start_remote): Likewise.
	* remote-e7000.c (e7000_start_remote): Likewise.
	* remote-mips.c (device): Likewise.
	* thread.c (switch_to_thread): Likewise.
	* tracepoint.c (finish_tfind_command): Likewise.
	* gdbarch.c: Regenerated.

2007-02-28  Jerome Guitton  <guitton@adacore.com>
            Joel Brobecker  <brobecker@adacore.com>

	* gdbtypes.c (check_typedef): Do not replace stub type if
	the resolved type is not defined in the same objfile.

2007-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* top.c (gdb_readline_wrapper_cleanup): Remove invalid assertion.

2007-02-28  Joel Brobecker  <brobecker@adacore.com>

	* stabsread.c (define_symbol): Create an associated STRUCT_DOMAIN
	symbol for Ada units when the symbol is defined using 't' rather
	than 'Tt' as symbol descriptor.

2007-02-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/mips/tm-nbsd.h: Delete file.
	* config/mips/nbsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/sh/tm-nbsd.h: Delete file.
	* config/sh/nbsd.mt (DEPRECATED_TM_FILE): Set to tm-sh.h.

2007-02-28  Joel Brobecker  <brobecker@adacore.com>

	* mi/mi-cmd-var.c (varobj_update_one): Remove reference to
	unused WRONG_PARAM value since it was recently deleted.

2007-02-28  Vladimir Prus  <vladimir@codesourcery.com>

	* varobj.c (varobj_update): Free temporary vectors.

2007-02-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/powerpc/linux.mt (DEPRECATED_TM_FILE): Set to tm-ppc-eabi.h.
	* config/powerpc/tm-linux.h: Delete file.
	* config/powerpc/tm-ppc-eabi.h: Do not include "rs6000/tm-rs6000.h".
	(PROCESS_LINENUMBER_HOOK): Do not undefine.
	(TEXT_SEGMENT_BASE): Do not redefine.
	* config/rs6000/nm-rs6000.h (CHILD_SPECIAL_WAITSTATUS): Move here
	from config/rs6000/tm-rs6000.h.
	(TARGET_CREATE_INFERIOR_HOOK, rs6000_create_inferior): Likewise.
	* config/rs6000/tm-rs6000.h (struct frame_info): Remove declaration.
	(TEXT_SEGMENT_BASE): Remove.
	(IN_SOLIB_RETURN_TRAMPOLINE): Remove.
	(rs6000_in_solib_return_trampoline): Remove.
	(SKIP_TRAMPOLINE_CODE): Remove.
	(rs6000_skip_trampoline_code): Remove.
	(CHILD_SPECIAL_WAITSTATUS): Move to config/rs6000/nm-rs6000.h.
	(TARGET_CREATE_INFERIOR_HOOK, rs6000_create_inferior): Likewise.
	(FP0_REGNUM): Remove.
	(rs6000_find_toc_address_hook): Move to rs6000-tdep.h.
	(rs6000_set_host_arch_hook): Remove.
	* Makefile.in (rs6000-nat.o): Add dependency on $(rs6000_tdep_h).
	(rs6000-aix-tdep.o): Add dependency on $(ppc_tdep_h).
	* ppc-tdep.h (struct gdbarch_tdep): Add field text_segment_base.
	* rs6000-aix-tdep.c: Include "ppc-tdep.h".
	(rs6000_aix_init_osabi): Set text_segment_base tdep field.
	* rs6000-nat.c: Include "rs6000-tdep.h".
	(exec_one_dummy_insn): Replace TEXT_SEGMENT_BASE by tdep field.
	(set_host_arch): Rename to ...
	(rs6000_create_inferior): ... this.  Make public.
	(_initialize_core_rs6000): Do not set rs6000_set_host_arch_hook.
	* rs6000-tdep.c (rs6000_set_host_arch_hook): Remove.
	(rs6000_create_inferior): Remove.
	(branch_dest): Replace TEXT_SEGMENT_BASE by tdep field.
	(rs6000_gdbarch_init): Call set_gdbarch_fp0_regnum,
	set_gdbarch_in_solib_return_trampoline, and
	set_gdbarch_skip_trampoline_code.
	* rs6000-tdep.h (rs6000_find_toc_address_hook): Move here
	from config/rs6000/tm-rs6000.h.

2007-02-27  Joel Brobecker  <brobecker@adacore.com>

	* buildsym.c (record_producer): Do nothing if no producer is provided.

2007-02-27  Nick Roberts  <nickrob@snap.net.nz>

	* varobj.c (varobj_update): Remove unused local.  Use gdb_assert
	to check changelist is non-NULL.  Call error if the frontend tries
	to update a non-root variable.

	* varobj.h (enum varobj_update_error): Delete WRONG_PARAM value.

2007-02-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2-frame.c (dwarf2_frame_cache, dwarf2_frame_this_id)
	(dwarf2_frame_sniffer): Update.
	(dwarf2_signal_frame_this_id): New function.
	(dwarf2_signal_frame_unwind): Use it.
	(dwarf2_frame_base_sniffer): Use frame_unwind_address_in_block.
	* frame.c (frame_func_unwind): Add this_type argument.
	(get_frame_func): Update.
	(frame_unwind_address_in_block): Add this_type argument and check it.
	Fix a typo.
	(get_frame_address_in_block): Update.
	* frame.h (enum frame_type): Move higher in the file.
	(frame_unwind_address_in_block, frame_func_unwind): Add enum frame_type
	argument.

	* alpha-mdebug-tdep.c, alpha-tdep.c, amd64-tdep.c, amd64obsd-tdep.c,
	arm-tdep.c, avr-tdep.c, cris-tdep.c, frv-tdep.c, h8300-tdep.c,
	hppa-tdep.c, i386-tdep.c, i386obsd-tdep.c, ia64-tdep.c,
	libunwind-frame.c, m32c-tdep.c, m32r-linux-tdep.c, m32r-tdep.c,
	m68hc11-tdep.c, m68k-tdep.c, m88k-tdep.c, mips-mdebug-tdep.c,
	mips-tdep.c, mn10300-tdep.c, mt-tdep.c, rs6000-tdep.c, s390-tdep.c,
	score-tdep.c, sh-tdep.c, sh64-tdep.c, sparc-tdep.c,
	sparc64obsd-tdep.c, spu-tdep.c, v850-tdep.c, vax-tdep.c,
	xstormy16-tdep.c, xtensa-tdep.c: Update calls to
	frame_func_unwind and frame_unwind_address_in_block to specify
	the frame type.  Use frame_unwind_address_in_block instead of
	frame_pc_unwind in sniffers.

2007-02-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* frame.c (deprecated_selected_frame): Rename to...
	(selected_frame): ...this.  Make static.
	(get_selected_frame, select_frame): Update.
	* frame.h (deprected_select_frame): Delete.
	(deprecated_safe_get_selected_frame): Update comments.

	* breakpoint.c, cli/cli-cmds.c, f-valprint.c, infcmd.c, inflow.c,
	infrun.c, stack.c, tui/tui-disasm.c, tui/tui-source.c,
	tui/tui-winsource.c, valops.c, varobj.c, findvar.c, macroscope.c,
	parse.c, regcache.h, sh64-tdep.c, tui/tui-hooks.c, tui/tui-win.c,
	tui/tui.c: Replace references to deprecated_selected_frame.

2007-02-27  Fred Fish  <fnf@specifix.com>

	* rs6000-tdep.c (skip_prologue): Recognize addi instructions that 
	directly decrement the stack pointer, accumulate their operand into 
	the stack offset, and mark the function as not being frameless.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* arch-utils.c (selected_byte_order): New.
	* arch-utils.h (selected_byte_order): New prototype.
	* remote-sim.c (gdbsim_open): Use selected_byte_order.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* symfile.c (place_section): Check SEC_ALLOC.  Do not check VMA.
	(default_symfile_offsets): Check VMA here.  Update section VMAs.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* remote.c (init_remote_state): Add special handling for placeholder
	registers.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (XMLFILES): Include $(TDEP_XML).
	(filenames_h): New variable.
	(clean): Clean up xml-builtin.c and stamp-xml.
	(arm-linux-nat.o): Update.
	* config/arm/linux.mh (TDEP_XML): Define.
	* arm-linux-nat.c (PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS): Define.
	(arm_linux_has_wmmx_registers): New.
	(GET_THREAD_ID): Fix typo.
	(IWMMXT_REGS_SIZE): Define.
	(fetch_wmmx_regs, store_wmmx_regs): New.
	(arm_linux_fetch_inferior_registers): Use fetch_wmmx_regs.
	(arm_linux_store_inferior_registers): Use store_wmmx_regs.
	(super_xfer_partial, arm_linux_xfer_partial): New.
	(_initialize_arm_linux_nat): Use them.
	* xml-support.c (fetch_xml_builtin): Move outside HAVE_LIBEXPAT.
	(xml_builtin_xfer_partial): New function.
	* xml-support.h (xml_builtin_xfer_partial): New prototype.
	* NEWS: Update mention of iWMMXt support.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (arm_scan_prologue): Do not record FPA register saves
	if there are no FPA registers.
	(arm_dwarf_reg_to_regnum): New function.
	(arm_register_type, arm_register_name): Return minimal values for
	unsupported registers.
	(arm_register_sim_regno): Handle iWMMXt registers.
	(arm_gdbarch_init): Record missing FPA registers if indicated by
	a target description.  Recognize iWMMXt registers.  Only register
	"info float" for FPA.  Use ARM_NUM_REGS.  Register
	arm_dwarf_reg_to_regnum.
	* arm-tdep.h (enum gdb_regnum): Add ARM_NUM_REGS and iWMMXt
	constants.
	(struct gdbarch_tdep): Add have_fpa_registers.
	* features/xscale-iwmmxt.xml: Update capitalization.
	* regformats/arm-with-iwmmxt.dat: Regenerated.

2007-02-24  Kevin Buettner  <kevinb@redhat.com>

	* NEWS (New targets): Add entry for the Toshiba Media Processor.

2007-02-23  Kevin Buettner  <kevinb@redhat.com>

	* MAINTAINERS (mep): New target.

2007-02-23  Kevin Buettner  <kevinb@redhat.com>

	From Jim Blandy, Dave Brolley, Kevin Buettner, Don Howard, and
	Richard Sandiford:
	* Makefile.in (elf_mep_h, mep_desc_h, mep_opc_h): New variables.
	(mep-tdep.o): New rule.
	* configure.tgt (mep-*-*): New target.
	* mep-tdep.c: New file.
	* config/mep/mep.mt: New file.

2007-02-22  Markus Deuling  <deuling@de.ibm.com>

	* infrun.c (inferior_stop_reason, print_stop_reason): Remove
	BREAKPOINT_HIT and STOP_UNKNOWN.

2007-02-22  Markus Deuling  <deuling@de.ibm.com>

	* valops.c (value_ind): Fix unary * handling of TYPE_CODE_INT. 

2007-02-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb_expat.h (XMLCALL): Define if not already defined.

2007-02-20  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (symfile.o): Update dependencies.

2007-02-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* MAINTAINERS: Disable -Werror for cris simulator.  Build
	sparc64-solaris2.10 instead of the broken sparc-elf.
	* solib-frv.c: Include "solib.h".
	* Makefile.in (solib-frv.o): Update.
	* mt-tdep.c (mt_gdbarch_init): Correct typo in floatformats patch.
	* xtensa-tdep.c (xtensa_regset_from_core_section): Cast size_t to int.
	(xtensa_frame_this_id, xtensa_frame_prev_register)
	(xtensa_push_dummy_call): Use %p.

2007-02-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* avr-tdep.c, hppa-tdep.c, hppabsd-tdep.c, i386-tdep.c,
	ia64-tdep.c, m68k-tdep.c, mips-linux-tdep.c, ppcobsd-tdep.c,
	sparc-linux-tdep.c: Include "gdbtypes.h" instead of "floatformat.h".
	* Makefile.in (avr-tdep.o, hppabsd-tdep.o, hppa-tdep.o, i386-tdep.o)
	(ia64-tdep.o, m68k-tdep.o, mips-linux-tdep.o, ppcobsd-tdep.o)
	(sparc-linux-tdep.o): Update.

2007-02-15  Maxim Grigoriev  <maxim2405@gmail.com>

	* xtensa-tdep.h (xtensa_reg_mask_t): New.
	(xtensa_mask_t): Change mask field to be a separate array.
	* xtensa-tdep.c (extract_call_winsize, xtensa_pseudo_register_read)
	(xtensa_pseudo_register_write, xtensa_unwind_pc)
	(xtensa_unwind_dummy_id, xtensa_push_dummy_call)
	(xtensa_breakpoint_from_pc): Remove implicit type casting.
	* xtensa-config.c (mask0, mask1, mask2, mask3, mask4, mask5)
	(mask6, mask7, mask8, mask9, mask10, mask11, mask12, mask13)
	(mask14, mask15): Rename to
	(xtensa_mask0, xtensa_mask1, xtensa_mask2, xtensa_mask3)
	(xtensa_mask4, xtensa_mask5, xtensa_mask6, xtensa_mask7)
	(xtensa_mask8, xtensa_mask9, xtensa_mask10, xtensa_mask11)
	(xtensa_mask12, xtensa_mask13, xtensa_mask14, xtensa_mask15): this.
	(xtensa_submask0, xtensa_submask1, xtensa_submask2, xtensa_submask3)
	(xtensa_submask4, xtensa_submask5, xtensa_submask6, xtensa_submask7)
	(xtensa_submask8, xtensa_submask9, xtensa_submask10)
	(xtensa_submask11, xtensa_submask12, xtensa_submask13)
	(xtensa_submask14, xtensa_submask15): New.
	(rmap): Follow strict aliasing rules doing static initialization.

2007-02-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* target-descriptions.c (tdesc_named_type): Move code_ptr and data_ptr
	handling from here...
	(tdesc_register_type): ...to here.
	* xml-tdesc.c (tdesc_start_reg): Allow code_ptr and data_ptr.
	* features/arm-core.xml: Use code_ptr and data_ptr.

2007-02-13  Denis Pilat  <denis.pilat@st.com>

	* varobj.h (enum varobj_update_error): New enum.
	* varobj.c (struct varobj_root): Add is_valid member.
	(varobj_get_type): Check for invalid varobj.
	(varobj_get_attributes): Likewise.
	(variable_editable):Likewise.
	(varobj_update): Likewise.  Use varobj_update_error.
	(new_root_variable): Set root varobj as valid by default.
	(varobj_invalidate): New function.
	* symfile.c (clear_symtab_users): Use varobj_invalidate.
	* mi/mi-cmd-var.c (varobj_update_one): Change return type to void.
	Use varobj_update_error.

2007-02-12  Pierre Muller  <muller@ics.u-strasbg.fr>

	Fix PR pascal/2223.
	* dwarfread.c (set_cu_language): Recognize DW_LANG_Pascal83 as
	Pascal language marker.
	* dwarf2read.c (set_cu_language): Likewise.

2007-02-12  Corinna Vinschen  <vinschen@redhat.com>

	* win32-nat.c (win32_wait): Reset terminal pgrp to GDB.
	(do_initial_win32_stuff): Call terminal_init_inferior_with_pgrp
	instead of target_terminal_init since inferior_ptid isn't set yet.

2007-02-10  Pedro Alves  <pedro_alves@portugalmail.pt>

	* MAINTAINERS (Write After Approval): Add myself.

2007-02-09  Fred Fish  <fnf@specifix.com>

	Based on work by Apple Computer, Inc.
	* event-top.c (async_request_quit): Call quit() whenever either
	quit_flag is set or immediate_quit is set.

2007-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* ada-lang.c (remove_out_of_scope_renamings): Change third parameter's
	type to a pointer to const struct block.
	(ada_lookup_symbol_list): Don't cast away constness when calling
	remove_out_of_scope_renamings.

2007-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* linux-nat.c (linux_nat_find_memory_regions): Don't check the
	address of 'filename'; it is always non null.

2007-02-09  Joel Brobecker  <brobecker@adacore.com>

	* exec.c (add_to_section_table): Do not discard empty sections.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* features/Makefile, features/arm-with-iwmmxt.xml,
	features/gdbserver-regs.xsl, features/number-regs.xsl,
	features/sort-regs.xsl, features/xscale-iwmmxt.xml: New files.
	* regformats/arm-with-iwmmxt.dat: Generate.
	* NEWS: Mention iWMMXt.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (arm-tdep.o, eval.o, target-descriptions.o)
	(xml-tdesc.o): Update.
	* xml-support.c: Add a comment.
	(gdb_xml_enums_boolean): New variable.
	(gdb_xml_parse_attr_enum): Use strcasecmp.
	* xml-support.h (gdb_xml_enums_boolean): Declare.
	* xml-tdesc.c (struct tdesc_parsing_data): Record current_feature,
	next_regnum, and current_union.
	(tdesc_start_feature, tdesc_start_reg, tdesc_start_union)
	(tdesc_end_union, tdesc_start_field, tdesc_start_vector)
	(field_attributes, union_children, reg_attributes, union_attributes)
	(vector_attributes, feature_attributes, feature_children): New.
	(target_children): Make static.  Add <feature>.
	(tdesc_elements): Make static.
	* target-descriptions.c (struct tdesc_reg, tdesc_reg_p, type_p)
	(struct tdesc_feature, tdesc_feature_p): New types.
	(struct target_desc): Add features member.
	(struct tdesc_arch_data, tdesc_data): New.
	(target_find_description): Clarify error message.  Warn about
	ignored register descriptions.
	(tdesc_has_registers, tdesc_find_feature, tdesc_feature_name)
	(tdesc_named_type, tdesc_data_init, tdesc_data_alloc)
	(tdesc_data_cleanup, tdesc_numbered_register)
	(tdesc_numbered_register_choices, tdesc_find_register)
	(tdesc_register_name, tdesc_register_type)
	(tdesc_remote_register_number, tdesc_register_reggroup_p)
	(set_tdesc_pseudo_register_name, set_tdesc_pseudo_register_type)
	(set_tdesc_pseudo_register_reggroup_p, tdesc_use_registers)
	(tdesc_free_reg, tdesc_create_reg, tdesc_free_feature)
	(tdesc_create_feature, tdesc_record_type): New.
	(free_target_description): Free features.
	(_initialize_target_descriptions): Initialize tdesc_data.
	* arch-utils.c (default_remote_register_number): New.
	* arch-utils.h (default_remote_register_number): New prototype.
	* target-descriptions.h (set_tdesc_pseudo_register_name)
	(set_tdesc_pseudo_register_type, set_tdesc_pseudo_register_reggroup_p)
	(tdesc_use_registers, tdesc_data_alloc, tdesc_data_cleanup)
	(tdesc_numbered_register, tdesc_numbered_register_choices)
	(tdesc_has_registers, tdesc_find_feature, tdesc_feature_name)
	(tdesc_named_type, tdesc_create_feature, tdesc_record_type)
	(tdesc_create_reg): Declare.
	* gdbarch.sh (remote_register_number): New entry.
	* gdbarch.c, gdbarch.h: Regenerate.
	* remote.c (init_remote_state): Use gdbarch_remote_register_number.
	* features/gdb-target.dtd: Add feature, reg, vector, union, and field.

	* arm-tdep.c (arm_register_aliases): New.
	(arm_register_name_strings): Rename to...
	(arm_register_names): ...this.  Make const.  Delete the old version.
	(current_option, arm_register_byte): Delete.
	(set_disassembly_style): Simplify.  Do not adjust arm_register_names.
	(value_of_arm_user_reg): New.
	(arm_gdbarch_init): Verify any described registers.  Call
	tdesc_use_registers.  Don't use arm_register_byte.  Create aliases
	for standard register names.
	(_initialize_arm_tdep): Do not adjust arm_register_names.
	* user-regs.c (struct user_reg): Add baton member.
	(append_user_reg, user_reg_add_builtin, user_regs_init)
	(user_reg_add, value_of_user_reg): Use a baton for user
	register functions.
	* std-regs.c: Update.
	* user-regs.h (user_reg_read_ftype, user_reg_add_builtin)
	(user_reg_add): Add baton argument.
	* NEWS: Mention target description register support.
	* features/arm-core.xml, features/arm-fpa.xml: New.
	* eval.c (evaluate_subexp_standard): Allow ptype $register
	when the program is not running.

2007-02-09  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-cmd-var.c (mi_cmd_var_create):  Add value field.

2007-02-08  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* rs6000-tdep.c (gdb_print_insn_powerpc): Set
	info->disassembler_options to "any".

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* varobj.c (install_new_value): Only call value_get_print_value
	if changeable.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	Reported by timeless@gmail.com:
	* target.c (target_flash_erase): Do not return void value.
	(target_flash_done): Likewise.
	* cli/cli-cmds.c (source_command): Likewise.

2007-02-08  Fred Fish  <fnf@specifix.com>

	Based on work by Apple Computer, Inc.
	* event-top.c (handle_sigint): Set quit_flag.
	(async_request_quit): Don't set quit_flag.  Avoid calling quit()
	if quit_flag has already been reset.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* ser-mingw.c (pipe_windows_close): Move variable initialization back
	up.

2007-02-08  Fred Fish  <fnf@specifix.com>

	* defs.h (request_quit): Remove declaration.
	* utils.c (request_quit): Remove definition.

2007-02-08  Joel Brobecker  <brobecker@gnat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* rs6000-tdep.c (bl_to_blrl_insn_p): New function.
	(skip_prologue): Allow bl->blrl used by PIC code.

2007-02-08  Mark Kettenis  <kettenis@gnu.org>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* cp-valprint.c (cp_print_value_fields, cp_print_value): Always
	initialize tmp_obstack.
	* p-valprint.c (pascal_object_print_value_fields)
	(pascal_object_print_value): Likewise.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* features/feature_to_c.sh: Use %s to avoid problems with nawk.

2007-02-08  Mark Kettenis  <kettenis@gnu.org>

	* sparcnbsd-tdep.c: Include "gdbtypes.h" instead of "floatformat.h".
	* Makefile.in (sparcnbsd-tdep.o): Update dependencies.

2007-02-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* xml-tdesc.c (struct tdesc_xml_cache, tdesc_xml_cache_s)
	(xml_cache): New.
	(tdesc_parse_xml): Cache expanded descriptions.

2007-02-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (XMLFILES): New.
	(COMMON_OBS): Add xml-builtin.o.
	(xml-builtin.c, stamp-xml): New rules.
	(xml-tdesc.o): Update.
	* features/feature_to_c.sh: New file.
	* xml-support.c (MAX_XINCLUDE_DEPTH): Define.
	(struct gdb_xml_parser): Add dtd_name and is_xinclude.
	(gdb_xml_start_element): Initialize scope after possibly reallocating
	scopes.  Move cleanup later.  Handle the XInclude description
	specially.
	(gdb_xml_end_element): Only parse the body if there is a current element.
	Call XML_DefaultCurrent if there is no element.
	(gdb_xml_fetch_external_entity, gdb_xml_use_dtd): New.
	(struct xinclude_parsing_data, xinclude_start_include)
	(xinclude_end_include, xml_xinclude_default)
	(xml_xinclude_start_doctype, xml_xinclude_end_doctype)
	(xml_xinclude_xml_decl, xml_xinclude_cleanup, xinclude_attributes)
	(xinclude_elements, xml_process_xincludes, fetch_xml_builtin): New.
	* xml-support.h (xml_fetch_another, xml_process_xincludes)
	(fetch_xml_builtin, xml_builtin, gdb_xml_use_dtd): New declarations.
	* xml-tdesc.c (tdesc_parse_xml): Add fetcher_baton argument.  Expand
	XInclude directives.  Use the compiled in DTD.
	(fetch_xml_from_file): Add baton argument.  Treat it as a containing
	directory name.  Do not warn here.
	(file_read_description_xml): Update call.  Warn here instead.  Pass
	a dirname as baton.
	(fetch_available_features_from_target): New.
	(target_read_description_xml): Use it.
	* features/gdb-target.dtd: Add copyright notice.  Use xinclude.dtd
	to handle XInclude.
	* features/xinclude.dtd: New file.

2007-02-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-thread-db.c (check_for_thread_db): Return early if we have
	no libthread_db support.

2007-02-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* mi/mi-parse.h: Include <sys/time.h>.

2007-02-05  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-cmd-stack.c (list_args_or_locals): Use common_val_print
 	instead of print_variable_value to print values.

2007-02-03  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-main.c: Numerous formatting changes.
	(mi_cmd_data_write_register_values): Replace clause inadvertantly
	removed in my previous change.

2007-02-03   Eli Zaretskii  <eliz@gnu.org>

	* mi/mi-main.c (mi_load_progress, timestamp, print_diff_now):
	Use 1000000L instead of 1000000.

2007-02-03  Nick Roberts  <nickrob@snap.net.nz>

	    Based on work by Apple Computer, Inc.

	* configure.ac: Test for sys/resource.h and getrusage.
	* configure, config.in: Regenerate.

	* mi/mi-main.c: Include <sys/resource.h> if present.
	(rusage): Declare if HAVE_GETRUSAGE.
	(current_command_ts, do_timings): New static variables.
	(timestamp, print_diff_now, print_diff, timeval_diff):
	New static timing functions.
	(mi_cmd_enable_timings): New function for new MI command.
	(captured_mi_execute_command, mi_execute_async_cli_command): 
	Call timing functions.

	* mi/mi-cmds.c (mi_cmds): Add entry for new MI command
	-enable-timings.

	* mi/mi-cmds.h (mi_cmd_enable_timings): New extern.

	* mi/mi-parse.h: (mi_timestamp): New structure.
	(mi_parse): Add mi_timestamp* member.

2007-02-02  Denis Pilat  <denis.pilat@st.com>

	* thread.c (make_cleanup_restore_current_thread): New function.
	(info_threads_command): Use of make_cleanup_restore_current_thread
	to restore the current thread and the selected frame.
	(restore_selected_frame): New function.
	(struct current_thread_cleanup): Add frame_id field.
	(do_restore_current_thread_cleanup): Add restoring of the selected
	frame.
	(make_cleanup_restore_current_thread): Likewise.
	(thread_apply_all_command): backup the selected frame while 
	entering the function and restore it at exit.
	(thread_apply_command): Likewise.

2007-02-02  Denis Pilat  <denis.pilat@st.com>

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

2007-02-01  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* remote-m32r.sdi.c (m32r_fetch_register): Change PWD mask.
        (m32r_store_register): Ditto.

2007-01-30  Vladimir Prus  <vladimir@codesourcery.com>

	* ser-mingw.c (pipe_windows_open)
	(pipe_windows_read, pipe_windows_write): Declare
	variables at the top of the function.

2007-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* doublest.c (floatformat_from_length): Use the right element from
	gdbarch floatformats.
	(floatformat_from_type, extract_typed_floating)
	(store_typed_floating): Likewise.
	* doublest.h: Remove declarations for undefined floatformat arrays.
	* gdbarch.sh (float_format, double_format, long_double_format): Change
	to pairs.
	(pformat): Update for pairs.
	* gdbarch.c, gdbarch.h: Regenerated.
	* gdbtypes.c (floatformats_ieee_single, floatformats_ieee_double)
	(floatformats_ieee_double_littlebyte_bigword)
	(floatformats_i387_ext, floatformats_m68881_ext, floatformats_arm_ext)
	(floatformats_ia64_spill, floatformats_ia64_quad, floatformats_vax_f)
	(floatformats_vax_d): New variables.
	(builtin_type_ieee_single, builtin_type_ieee_double)
	(builtin_type_arm_ext, builtin_type_ia64_spill)
	(builtin_type_ia64_quad): Replace arrays with individual types.
	(builtin_type_ieee_single_big, builtin_type_ieee_single_little)
	(builtin_type_ieee_double_big, builtin_type_ieee_double_little)
	(builtin_type_ieee_double_littlebyte_bigword, builtin_type_i960_ext)
	(builtin_type_m88110_ext, builtin_type_m88110_harris_ext)
	(builtin_type_arm_ext_big, builtin_type_arm_ext_littlebyte_bigword)
	(builtin_type_ia64_spill_big, builtin_type_ia64_spill_little)
	(builtin_type_ia64_quad_big, builtin_type_ia64_quad_little): Delete
	unused and endian-specific types.
	(recursive_dump_type): Update for floatformat pairs.
	(build_flt): Move higher.  Handle bit == -1.  Take a floatformat pair.
	(build_gdbtypes): Use build_flt.
	(_initialize_gdbtypes): Update set of initialized types.
	* gdbtypes.h: Update declarations to match gdbtypes.c.
	(struct main_type): Store a pointer to two floatformats.
	* arch-utils.c (default_float_format, default_double_format): Delete.
	* arch-utils.h (default_float_format, default_double_format): Delete.

	* arm-tdep.c, avr-tdep.c, hppa-tdep.c, hppabsd-tdep.c, i386-tdep.c,
	ia64-tdep.c,  iq2000-tdep.c, m68k-tdep.c, m88k-tdep.c,
	mips-linux-tdep.c, mips-tdep.c, mt-tdep.c, ppcobsd-tdep.c,
	sparc-linux-tdep.c, sparc-tdep.c, sparcnbsd-tdep.c, spu-tdep.c,
	vax-tdep.c, alpha-tdep.c, ppc-sysv-tdep.c: Update.

2007-01-29  Joel Brobecker  <brobecker@adacore.com>

	* target.c (maintenance_print_target_stack): New function.
	(initialize_targets): Add new "maintenance print target-stack"
	command.

2007-01-28  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2read.c (new_symbol): Handle DW_AT_decl_file being zero.

2007-01-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2loc.h (struct dwarf2_locexpr_baton): Change size to a long.
	(struct dwarf2_loclist_baton): Likewise.

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

	* cli/cli-script.c: Include breakpoint.h.
	(build_command_line): Require arguments only for if and while
	commands.
	(get_command_line, execute_user_command, execute_control_command):
	Fix wording of warning messages.
	(print_command_lines): Print breakpoint commands.
	(execute_control_command): Call commands_from_control_command to
	handle the `commands' command inside a body of a flow-control
	command.
	(read_next_line): Recognize the `commands' command and build a
	command line structure for it.
	(recurse_read_control_structure, read_command_lines): Handle
	`commands' similarly to `if' and `while'.

	* breakpoint.c (get_number_trailer): Document the special meaning
	of NULL as the first argument PP.
	(commands_from_control_command): New function.

	* breakpoint.h (commands_from_control_command): Add prototype.

	* defs.h (commands_control): New enumerated value for enum
	command_control_type.

2007-01-26  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_exception_breakpoint_ops): Fix typo in function name.
	(ada_exception_sal): Update accordingly.

2007-01-26  Jan Kratochvil <jan.kratochvil@redhat.com>

	* c-valprint.c (c_val_print): Require strings to be of no-signed CHARs.
	* NEWS: Describe CHAR array vs. string identifcation rules.

2007-01-25  Paul Brook  <paul@codesourcery.com>

	* arm-tdep.c (arm_get_next_pc): Fix bitfield off-by-one error.

2007-01-24  Jim Blandy  <jimb@codesourcery.com>

	* dwarf2loc.c (dwarf2_evaluate_loc_desc): When the location
	expression is empty, bother to return the 'optimized out' value we
	construct.  (Thanks to Carl Burch.)

2007-01-24  Vladimir Prus  <vladimir@codesourcery.com>

	* varobj.c (c_value_of_root, c_value_of_child)
	(cplus_describe_child): Don't call release_value.

2007-01-24  Thiemo Seufer  <ths@mips.com>

	* mips-linux-tdep.c (mips_linux_n64_rt_sigframe): Fix struct
	initialization.

2007-01-24  Vladimir Prus  <vladimir@codesourcery.com>

	Refactor getting children name, value and type access 
	for varobjs in C++.
	* varobj.c (get_type_deref): Remove.
	(adjust_value_for_child_access): New.
	(c_number_of_children): Use the above.
	(c_describe_child): Likewise.
	(enum accessibility): New.
	(match_accessibility): New function.
	(cplus_describe_child): New function.
	(cplus_name_of_child, cplus_value_of_child)
	(cplus_type_of_child): Reimplement in terms
	of cplus_describe_child.
	(cplus_number_of_children): Use 
	adjust_value_for_child_access.
	
2007-01-24  Vladimir Prus  <vladimir@codesourcery.com>

	Fix computation of the 'editable' attribute and
	value changeability for for references.
	* varobj.c (get_value_type): New function.
	(c_variable_editable): Use get_value_type.
	(varobj_value_is_changeable): Likewise.
		
2007-01-24  Joel Brobecker  <brobecker@adacore.com>

	* source.c (find_and_open_source): Try rewriting the source
	path inside filename if dirname is NULL.

2007-01-24  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2read.c (add_partial_symbol): Create an extra partial
	symbol in the VAR_DOMAIN for Ada structures, unions or enums.
	(new_symbol): Likewise for symbols.

2007-01-24  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-main.c (mi_cmd_execute): Call free_all_values.

2007-01-23  Vladimir Prus  <vladimir@codesourcery.com>
	
	* value.c (value_primitive_field): Copy the full 'location' 
	contents, instead of assuming that copying ADDRESS will 
	bring over everything in the union.  Remove obsolete comment.
	
2007-01-23  Masaki Muranaka  <monaka@monami-software.com>

	* m32c-tdep.c (make_regs, m32c_analyze_prologue)
	(m32c_skip_trampoline_code, m32c_m16c_address_to_pointer)
	(m32c_m16c_pointer_to_address): Separate code from declarations.

2007-01-23  Nick Hudson  <nick.hudson@dsl.pipex.com>

	* target.c (update_current_target): Correct typo.

2007-01-22  Masaki Muranaka  <monaka@monami-software.com>

	* xstormy16-tdep.c (xstormy16_skip_prologue): Separate code from a
	declaration.

2007-01-11  Andrew Cagney  <cagney@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2-frame.c (execute_cfa_program): New support of
	`DW_CFA_GNU_negative_offset_extended'.

2007-01-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Mention flash support for "load" and new remote packets.

2007-01-21  Markus Deuling  <deuling@de.ibm.com>

	* breakpoint.c (delete_command): Skip redundant loop iterations.

2007-01-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbarch.sh (register_type): Update comment.
	* gdbarch.h: Regenerated.
	* arch-utils.c (generic_register_size): Call register_type.
	* ia64-tdep.c (ia64_extract_return_value): Likewise.
	* m32c-tdep.c (check_for_saved): Likewise.
	* mips-tdep.c (mips_print_register, print_gp_register_row)
	(mips_print_registers_info): Likewise.
	* sh-tdep.c (sh_pseudo_register_read, sh_pseudo_register_write):
	Likewise.
	* sh64-tdep.c (sh64_pseudo_register_read, sh64_pseudo_register_write)
	(sh64_do_register, sh64_print_register)
	(sh64_media_print_registers_info): Likewise.
	* tui/tui-regs.c (tui_register_format): Likewise.

2007-01-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* objfiles.h (ALL_PRIMARY_SYMTABS): Define.

	* ada-lang.c (symtab_for_sym, ada_lookup_symbol_list)
	(ada_lookup_symbol): Use ALL_PRIMARY_SYMTABS.
	* cp-support.c (make_symbol_overload_list_qualified): Likewise.
	* symtab.c (lookup_symbol_aux_block, lookup_symbol_aux_symtabs)
	(basic_lookup_transparent_type, find_pc_sect_symtab, search_symbols)
	(make_symbol_completion_list): Likewise.

2007-01-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* buildsym.c (end_symtab): Use preallocated symtab if available.
	Fill in SYMBOL_SYMTAB.
	* buildsym.h (struct subfile): Add symtab member.
	* dwarf2read.c (struct dwarf2_cu): Add line_header.
	(struct file_entry): Add symtab.
	(free_cu_line_header): New function.
	(read_file_scope): Use it.  Save line_header in the cu.  Process
	lines before DIEs.
	(add_file_name): Initialize new symtab member.
	(dwarf_decode_lines): Create symtabs for included files.
	(new_symbol): Set SYMBOL_SYMTAB.
	* symtab.c (lookup_symbol): Use SYMBOL_SYMTAB.
	(search_symbols): Likewise.
	* symtab.h (struct symbol): Add symtab member.
	(SYMBOL_SYMTAB): Define.

2007-01-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* symfile.c (allocate_symtab): Remove INIT_EXTRA_SYMTAB_INFO.

2007-01-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* arch-utils.c (show_endian): Correct reversed condition.

2007-01-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-01-16  Daniel Jacobowitz  <dan@codesourcery.com>
	    Vladimir Prus  <vladimir@codesourcery.com>

	Fix 'selected frame' varobjs.
	* varobj.c (struct varobj): Remove the error field.
	(varobj_set_value): Don't check var->error.
	(install_new_value): Don't set var->error.
	(varobj_update): Always pass the new value
	of the root via install_new_value.
	(create_child): Don't set error field.
	(new_variable): Likewise.
	(c_value_of_root): Always reevaluate the value
	of selected frame varobjs in the selected frame.
	Don't call reinit_frame_cache.

2007-01-15  Joel Brobecker  <brobecker@adacore.com>

	* source.c (_initialize_source): Improve the help text of
	the substitute-path commands.

2007-01-14  Mark Kettenis  <kettenis@gnu.org>

	* frv-tdep.c (frv_gdbarch_init, frv_register_name)
	(frv_breakpoint_from_pc, frv_gdbarch_adjust_breakpoint_address)
	(frv_skip_prologue): Remove prototypes.
	(frv_adjust_breakpoint_address): Renamed from
	frv_gdbarch_adjust_breakpoint_address.
	(frv_gdbarch_init): Adjust.

2007-01-13  Mark Kettenis  <kettenis@gnu.org>

	* gdbarch.sh (deprecated_extract_return_value)
	(deprecated_store_return_value): Remove.
	(extract_return_value, store_return_value): Remove default values.
	* gdbarch.c, gdbarch.h: Regenerate.
	* arch-utils.c, arch-utils.h (legacy_extract_return_value)
	(legacy_store_return_value): Remove.
	* regcache.c, regcache.h (deprecated_grub_regcache_for_registers):
	Remove.

	* mi/mi-main.c: Remove obsolete comment.

	* regcache.c, regcache.h (deprecated_register_bytes)
	(deprecated_read_register_bytes)
	(deprecated_write_register_bytes): Remove.

	* frame.c (get_frame_register_bytes, put_frame_register_bytes):
	Don't forget to move destination pointer.

2007-01-01  Mark Kettenis  <kettenis@gnu.org>

	* config/i386/nm-i386gnu.h (CHILD_PREPARE_TO_STORE): Remove.

2007-01-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* spu-tdep.c (spu_analyze_prologue): Fix erroneous backtrace
	past entry function with recent newlib.

2007-01-11  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Improve the 
	introduction.  Specify -var-update more exactly.

2007-01-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* frame.c (get_prev_frame_1): Check PC_REGNUM before using it.

2007-01-10  Jim Blandy  <jimb@codesourcery.com>

	* MAINTAINERS (Global Maintainers): Ulrich Weigand has accepted
	the Global Maintainers' invitation to be a global maintainer.

2007-01-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* infrun.c (singlestep_pc): New variable.
	(resume): Set singlestep_pc.
	(context_switch): Add a debugging message.  Flush the frame cache.
	(handle_inferior_event): Add debugging messages.  Handle thread
	hops when a software single step has completed.  Let context_switch
	handle flushing the frame cache.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Mention target descriptions, "set tdesc filename",
	"unset tdesc filename", "show tdesc filename", and
	qXfer:features:read.
	* arch-utils.c (choose_architecture_for_target): New function.
	(gdbarch_info_fill): Call it.
	* target-descriptions.c (struct property): Make members non-const.
	(struct target_desc): Add arch member.
	(target_description_filename): New variable.
	(target_find_description): Try via XML first.
	(tdesc_architecture): New.
	(free_target_description, make_cleanup_free_target_description): New.
	(set_tdesc_property): Call xstrdup.
	(set_tdesc_architecture, tdesc_set_cmdlist, tdesc_show_cmdlist)
	(tdesc_unset_cmdlist, unset_tdesc_cmd, unset_tdesc_filename_cmd)
	(set_tdesc_cmd, show_tdesc_cmd, set_tdesc_filename_cmd)
	(show_tdesc_filename_cmd, _initialize_target_descriptions): New.
	* target-descriptions.h (tdesc_architecture)
	(make_cleanup_free_target_description, set_tdesc_architecture): New
	prototypes.
	* Makefile.in (SFILES): Add xml-tdesc.c.
	(COMMON_OBS): Add xml-tdesc.o.
	(target-descriptions.o): Update.
	(xml-tdesc.o): New rule.
	* xml-tdesc.c, xml-tdesc.h: New files.
	* remote.c (PACKET_qXfer_features): New enum.
	(remote_protocol_features): Add qXfer:features:read.
	(remote_xfer_partial): Handle TARGET_OBJECT_AVAILABLE_FEATURES.
	(_initialize_remote): Register qXfer:features:read.
	* target.h (enum target_object): Add TARGET_OBJECT_AVAILABLE_FEATURES.
	* features/gdb-target.dtd: New file.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* copyright.sh: Clarify error.

2007-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* symtab.c (matching_bfd_sections): Fix VMA matching for
	prelinked objects.

2007-01-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* minsyms.c (lookup_minimal_symbol_by_pc_section): Handle
	nested symbols.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	Updated copyright notices for most files.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* copyright.sh (prunes): Add step-line.inp and step-line.c.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac (DEBUGDIR_RELOCATABLE): Define for debugdir inside
	exec_prefix.
	(TARGET_SYSTEM_ROOT_RELOCATABLE): Allow for exec_prefix being
	'${prefix}'.
	* configure, config.in: Regenerate.
	* defs.h (debug_file_directory): Declare.
	* main.c (captured_main): Canonicalize gdb_sysroot.  Assume
	TARGET_SYSTEM_ROOT is defined.  Initialize debug_file_directory and
	relocate it if DEBUGDIR_RELOCATABLE.
	* symfile.c (debug_file_directory): Make non-static.
	(find_separate_debug_file): Look for debug info for SYSROOT/PATH
	in DEBUGDIR/PATH if DEBUGDIR is inside SYSROOT.
	(_initialize_symfile): Don't initialize debug_file_directory here.

2007-01-09  Jim Blandy  <jimb@codesourcery.com>

	* score-tdep.c (score_push_dummy_call): Don't mix declarations and
	statements.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Use
	frame_unwind_register to recurse.
	* alpha-tdep.c (alpha_sigtramp_frame_prev_register): Likewise.
	(alpha_heuristic_frame_prev_register): Likewise.
	* h8300-tdep.c (h8300_frame_prev_register): Likewise.
	* m32c-tdep.c (m32c_prev_register): Likewise.
	* frame.c (frame_register_unwind_location): Remove FIXME.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* copyright.sh: New file.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac: Check for XML_StopParser.
	* xml-support.c (gdb_xml_body_text): Check for an error.
	(gdb_xml_start_element_wrapper): Conditionalize call to XML_StopParser.
	(gdb_xml_end_element_wrapper): Likewise.
	* config.in, configure: Regenerated.

2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* varobj.c (install_new_value): Always update print_value.
	(value_get_print_value): Immediately return NULL for missing
	values.

2007-01-08  Jim Blandy  <jimb@codesourcery.com>

	* configure.ac: Tighten pattern for extracting value of
	DEPRECATED_TM_FILE from the target makefile fragment.
	* configure: Regenerated.

2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-nat.c (struct simple_pid_list): Add status.
	(add_to_pid_list): Record the PID's status.
	(linux_record_stopped_pid): Likewise.  Make static.
	(pull_pid_from_list): Return the saved status.
	(linux_nat_handle_extended): Deleted.
	(linux_handle_extended_wait): Combine with linux_nat_handle_extended.
	Make static.  Handle non-SIGSTOP for a new thread's first signal.
	(flush_callback): Handle unexpected pending signals.
	(linux_nat_wait): Update calls to changed functions.
	* linux-nat.h (linux_record_stopped_pid, linux_handle_extended_wait):
	Remove prototypes for newly static functions.

2007-01-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbarch.sh (value_from_register): New gdbarch function.
	* gdbarch.c, gdbarch.h: Regenerate.
	* findvar.c (default_value_from_register): New function.
	(value_from_register): Use gdbarch_value_from_register.
	* value.h (default_value_from_register): Declare.
	* spu-tdep.c (spu_convert_register_p, spu_register_to_value,
	spu_value_to_register): Remove.
	(spu_value_from_register): New function.
	(spu_gdbarch_init): Do not call set_gdbarch_convert_register_p,
	set_gdbarch_register_to_value, set_gdbarch_value_to_register.
	Call set_gdbarch_value_from_register.
	* s390-tdep.c (s390_convert_register_p, s390_register_to_value,
	s390_value_to_register): Remove.
	(s390_value_from_register): New function.
	(s390_gdbarch_init): Do not call set_gdbarch_convert_register_p,
	set_gdbarch_register_to_value, set_gdbarch_value_to_register.
	Call set_gdbarch_value_from_register.

2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Add "set sysroot" and "show sysroot".
	* solib.c (solib_absolute_prefix): Delete.  Replace
	all uses with gdb_sysroot.
	(_initialize_solib): Add "set sysroot" and "show sysroot".
	Make "solib-absolute-prefix" an alias to it.

2007-01-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* frame.c (get_frame_register_bytes): New function.
	(put_frame_register_bytes): Likewise.
	* frame.h (get_frame_register_bytes): Declare.
	(put_frame_register_bytes): Likewise.
	* findvar.c (value_from_register): Always construct lval_register
	values.  Use get_frame_register_bytes.
	* valops.c (value_assign): Use get_frame_register_bytes and
	put_frame_register_bytes.

2007-01-08  Jim Blandy  <jimb@codesourcery.com>

	* MAINTAINERS: Update Stan Shebs' email address.

2007-01-07  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (is_known_support_routine): Improve the implementation.

2007-01-06  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c: Add include of source.h.
	(is_known_support_routine): Improve the check verifying that the file
	associated to this frame exists.
	* Makefile.in (ada-lang.o): Add dependency on source.h.

2007-01-07  Jim Blandy  <jimb@codesourcery.com>

	* ax-general.c (ax_const_l): Select proper opcode for the given
	value.

2007-01-05  Vladimir Prus  <vladimir@codesourcery.com>

	* varobj.c (c_value_of_root): Don't select frame if variable
	object is out of scope.

2007-01-05  Nick Roberts  <nickrob@snap.net.nz>

	* varobj.c (struct varobj): New member print_value.
	(install_new_value): Compare last printed value with current one
	instead of contents.
	(new_variable): Initialize var->print_value to NULL.
	(free_variable): Free var->print_value.
	(value_get_print_value): New function derived from
	c_value_of_variable.
	(c_value_of_variable): Use value_get_print_value.

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

	* i386-tdep.c (i386_analyze_stack_align): Add comment.

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

	* NEWS: Add entries for new catch commands.

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

        * dwarf2read.c (partial_die_info): Add field has_byte_size.
        (add_partial_symbol): Correct identification of external references.
        (process_structure_scope): Likewise.
        (read_partial_die): Handle DW_AT_byte_size attribute.

2007-01-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* xml-support.c (gdb_xml_end_element): Remove wrong backslashes.

2007-01-05  Nick Roberts  <nickrob@snap.net.nz>

	* varobj.c (get_type_deref): Fix variable objects for references to
	pointers.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* symtab.c (find_pc_sect_psymtab): Add comments.  Handle psymtabs
	with no symbols.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* memory-map.c (struct_memory_map_parsing_data): Remove most
	members.  Make property_name an array.
	(free_memory_map_parsing_data, memory_map_start_element)
	(memory_map_end_element, memory_map_character_data): Delete.
	(memory_map_start_memory, memory_map_end_memory)
	(memory_map_start_property, memory_map_end_property): New functions.
	(property_attributes, memory_children, memory_type_enum)
	(memory_attributes, memory_map_children, memory_map_elements): New.
	(parse_memory_map): Rewrite.
	* xml-support.c (debug_xml): New.
	(xml_get_required_attribute, xml_get_integer_attribute)
	(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
	Delete.
	(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
	(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
	(gdb_xml_start_element, gdb_xml_start_element_wrapper)
	(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
	(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
	(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
	(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
	New.
	* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
	(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
	(enum gdb_xml_element_flag, struct gdb_xml_element)
	(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
	(struct gdb_xml_enum): New.
	(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
	(gdb_xml_error, gdb_xml_parse_attr_ulongest)
	(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
	(xml_get_required_attribute, xml_get_integer_attribute)
	(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
	* Makefile.in (xml_support_h, xml-support.o): Update.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (eval.o): Update dependencies.
	* eval.c: Include "ui-out.h" and "exceptions.h".
	(evaluate_subexp_standard): Use TRY_CATCH around value_of_variable.
	Use value_zero if an error occurs when avoiding side effects.
	* varobj.c (c_value_of_root): Initialize new_val.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* varobj.c (varobj_list_children): Stop if the number of children is
	unknown.
	(c_number_of_children):

2007-01-04  Mark Kettenis  <kettenis@gnu.org>

	* alpha-tdep.c (alpha_register_name): Use ARRAY_SIZE.
	(alpha_read_insn, alpha_skip_prologue, alpha_heuristic_proc_start)
	(alpha_heuristic_frame_unwind_cache, alpha_next_pc)
	(alpha_gdbarch_init): Use ALPHA_INSN_SIZE, ALPHA_REGISTER_SIZE and
	sizeof, instead of hardcoded constants.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* CONTRIBUTE: Use sourceware.org.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* buildsym.c (start_subfile): Handle producer.
	(record_producer): New function.
	* buildsym.h (struct subfile): Include producer.
	(record_producer): New prototype.
	* dwarf2-frame.c (struct dwarf2_cie): Add version and augmentation.
	(struct dwarf2_frame_state): Add armcc_cfa_offsets_sf and
	armcc_cfa_offsets_reversed.
	(execute_cfa_program): Handle armcc_cfa_offsets_sf.
	(dwarf2_frame_find_quirks): New function.
	(dwarf2_frame_cache): Call it.  Handle armcc_cfa_offsets_reversed.
	(decode_frame_entry_1): Record the CIE version.  Record the
	augmentation.  Skip armcc augmentations.
	* dwarf2read.c (read_file_scope): Save the producer.
	* symtab.h (struct symtab): Rename unused version member to
	producer.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac (build_warnings): Use -Wall and
	-Wdeclaration-after-statement.
	* configure: Regenerated.

2007-01-04  Vladimir Prus  <vladimir@codesourcery.com>

	Simplify access to variours properties of child
	variable objects in C.
	* varobj.c (value_struct_element_index): New function.
	(c_describe_child): New function.
	(c_name_of_child, c_value_of_child)
	(c_type_of_child): Rewrite to use c_describe_child.

2007-01-04  Vladimir Prus  <vladimir@codesourcery.com>

	gdb/
	* varobj.c: Include "vec.h". 
	(varobj_p): New typedef, declare vector of those.
	(struct varobj): Use vector for the 'children' member.
	(child_exists): Remove.
	(save_child_in_parent): Remove.
	(remove_child_from_parent): Remove.
	(struct varobj_child): Remove.
	(struct vstack): Remove.
	(vpush, vpop): Remove.
	(varobj_list_children): Adjust to work work vector.
	(varobj_update): Likewise. Use vectors for
	working stack and result.
	(delete_variable_1): Likewise.
	* Makefile.in (varobj.o): Update dependencies.

2007-01-04  Vladimir Prus  <vladimir@codesourcery.com>

	Port from Apple's version.
	gdb/
	* varobj.c (type_changeable): Rename to...
	(varobj_value_is_changeable_p): ...this. Adjust all callers.
	(is_root_p): New function. Use it everywhere.

2007-01-04  Jim Blandy  <jimb@codesourcery.com>

	* glibc-tdep.c (glibc_skip_solib_resolver): Look for '_dl_fixup',
	then plain 'fixup'.

2007-01-04  Joel Brobecker  <brobecker@adacore.com>

	* hpread.c (hpread_start_psymtab): Remove unnecessary extern.

2007-01-04  Joel Brobecker  <brobecker@adacore.com>

	* hpread.c (hpread_type_lookup): Fix compilation failure.

2007-01-04  Qinwei  <qinwei@sunnorth.com.cn>

	* NEWS: New port to S+core.
	* MAINTAINERS (Write After Approval, Responsible Maintainers):
	Add myself.

	* Makefile.in: Add dependencies for S+core files.
	* configure.tgt (score*, score-*-*): Add S+core target.
	* config/score/embed.mt: New file.
	* score-tdep.c: New file.
	* score-tdep.h: New file.

2007-01-04  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.c (ada_evaluate_subexp) [OP_TYPE]: Return a value with
	the appropriate type rather than a bogus void type.

2007-01-04  Joel Brobecker  <brobecker@adacore.com>

	* ada-lang.h (ada_find_printable_frame): Remove.
	(ada_exception_catchpoint_p, ada_decode_exception_location)
	(ada_decode_assert_location): Add declaration.
	* ada-lang.c: Add include of annotate.h and valprint.h.
	(exception_catchpoint_kind): New enum.
	(function_name_from_pc, is_known_support_routine)
	(ada_find_printable_frame, ada_unhandled_exception_name_addr)
	(ada_exception_name_addr_1, ada_exception_name_addr)
	(print_it_exception, print_one_exception, print_mention_exception)
	(print_it_catch_exception, print_one_catch_exception)
	(print_mention_catch_exception, catch_exception_breakpoint_ops)
	(print_it_catch_exception_unhandled)
	(print_one_catch_exception_unhandled)
	(print_mention_catch_exception_unhandled, print_it_catch_assert)
	(print_one_catch_assert, print_mention_catch_assert)
	(ada_exception_catchpoint_p, error_breakpoint_runtime_sym_not_found)
	(ada_get_next_arg, catch_ada_exception_command_split)
	(ada_exception_sym_name, ada_exception_sym_name)
	(ada_exception_breakption_ops, ada_exception_catchpoint_cond_string)
	(ada_parse_catchpoint_condition, ada_exception_sal)
	(ada_decode_exception_location)
	(ada_decode_assert_location): New function.
	(catch_exception_unhandled_breakpoint_ops): New global variable.
	(catch_assert_breakpoint_ops): New global variable.
	* breakpoint.c: Add include of ada-lang.h.
	(print_one_breakpoint): Do not print the condition for Ada
	exception catchpoints.
	(create_ada_exception_breakpoint): New function.
	(catch_ada_exception_command, catch_assert_command): New function.
	(catch_command_1): Add support for the new "catch exception" and
	"catch assert" commands.
	(_initialize_breakpoint): Add help description for the new catch
	commands.
	* Makefile.in (ada-lang.o): Add dependency on annotate.h and
	valprint.h.
	(breakpoint.o): Add dependency on ada-lang.h.

2007-01-03  Pedro Alves  <pedro_alves@portugalmail.pt>

	* coffread.c (cs_to_section): If bfd_section is found, always
	return its section index.
	(coff_symtab_read): Determine the minimal_symbol_type using the
	bfd_section flags.

2007-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (top.o): Update.
	* top.c (gdb_readline_wrapper_done, gdb_readline_wrapper_result)
	(saved_after_char_processing_hook, gdb_readline_wrapper_line)
	(struct gdb_readline_wrapper_cleanup, gdb_readline_wrapper_cleanup):
	New.
	(gdb_readline_wrapper): Rewrite to use asynchronous readline.

2007-01-03  Mark Kettenis  <kettenis@gnu.org>

	* arm-linux-tdep.c (arm_linux_extract_return_value): Remove.
	(arm_linux_init_abi): Don't set deprecated_extract_return_value.

2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* ada-lang.c (find_struct_field): Initialize *byte_offset_p.
	* breakpoint.c (do_enable_breakpoint): Ignore both mem_cnt and i.
	* c-typeprint.c (c_type_print_varspec_suffix): Don't test length
	greater than or equal to zero.
	* m2-typeprint.c (m2_array): Likewise.
	* p-typeprint.c (pascal_type_print_varspec_prefix): Likewise.
	* gdbtypes.c (copy_type_recursive): Correct == typo.
	* i386-tdep.c (i386_skip_prologue): Remove stray semicolon.
	* linux-nat.c (linux_nat_info_proc_cmd): Don't compare a pointer
	greater than zero.
	* macroscope.c (sal_macro_scope): Don't name a local variable "main".
	(default_macro_scope): Remove unused variable.
	* prologue-value.h (pv_area_find_reg): Don't name an argument
	"register".
	* remote-fileio.c (remote_fio_func_map): Add missing braces.
	* remote.c (sigint_remote_twice_token, sigint_remote_token): Change
	type.
	(cleanup_sigint_signal_handler): Remove casts.
	* valprint.c (val_print): Use a volatile local for the modified
	argument.
	* varobj.c (languages): Remove extra array dimension.
	(varobj_create): Correct access to languages array.
	* mi/mi-cmd-break.c (mi_cmd_break_insert, mi_cmd_break_watch): Add
	missing braces.
	* mi/mi-cmd-disas.c (mi_cmd_disassemble): Likewise.
	* mi/mi-cmd-env.c (mi_cmd_env_path, mi_cmd_env_dir): Likewise.
	* mi/mi-getopt.c (mi_valid_noargs): Likewise.
	* mi/mi-main.c (mi_cmd_data_read_memory): Likewise.
	(mi_cmd_data_write_memory): Likewise.
	* signals/signals.c (target_signal_to_string): Cast to int before
	comparing.
	* tui/tui-layout.c (init_and_make_win): Take and return a void *.
	Update all callers.

2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Mention pointer to member improvements.
	* Makefile.in (gnu-v3-abi.o): Delete special rule.
	(eval.o, gnu-v3-abi.o, ia64-tdep.o): Update.
	* ada-valprint.c (ada_print_scalar): Update for new type codes.
	* c-typeprint.c (c_print_type): Update for new type codes.
	(c_type_print_varspec_prefix, c_type_print_varspec_suffix)
	(c_type_print_base): Likewise.
	(c_type_print_args): Rewrite.
	* c-valprint.c (c_val_print): Update for new type codes.  Remove
	support for references to members.  Treat methods like functions.
	* cp-abi.c (cplus_print_method_ptr, cplus_method_ptr_size)
	(cplus_make_method_ptr, cplus_method_ptr_to_value): New.
	* cp-abi.h (cplus_print_method_ptr, cplus_method_ptr_size)
	(cplus_make_method_ptr, cplus_method_ptr_to_value): New prototypes.
	(struct cp_abi_ops): Add corresponding members.
	* cp-valprint.c (cp_print_class_method): Delete.
	(cp_find_class_member): New function.
	(cp_print_class_member): Use it.  Simplify support for bogus
	member pointers.
	* dwarf2read.c (quirk_gcc_member_function_pointer): Use
	lookup_methodptr_type.
	(read_tag_ptr_to_member_type): Likewise, and lookup_memberptr_type.
	* eval.c (evaluate_subexp_standard): Implement EVAL_SKIP for
	OP_SCOPE.  Update call to value_aggregate_elt.  Rewrite member
	pointer support.
	(evaluate_subexp_for_address): Handle OP_SCOPE explicitly.  Handle
	references returned by user defined operators.
	* f-typeprint.c (f_print_type, f_type_print_varspec_prefix)
	(f_type_print_varspec_suffix): Remove support for member pointers.
	* gdbtypes.c (lookup_memberptr_type): Renamed from lookup_member_type
	and adjusted.
	(smash_to_memberptr_type): Likewise, from smash_to_member_type.
	(lookup_methodptr_type): New.
	(rank_one_type): Adjust for TYPE_CODE_MEMBERPTR.
	(recursive_dump_type): Update for new types.
	* gdbtypes.h (enum type_code): Replace TYPE_CODE_MEMBER with
	TYPE_CODE_MEMBERPTR and TYPE_CODE_METHODPTR.
	(lookup_memberptr_type, lookup_methodptr_type)
	(smash_to_memberptr_type): New prototypes.
	(smash_to_method_type): Formatting fix.
	(lookup_member_type, smash_to_member_type): Delete prototypes.
	* gnu-v3-abi.c (gnuv3_get_vtable, gnuv3_get_virtual_fn): New.
	Do not rely on debug information for the vptr or the method's
	enclosing type.  Handle function descriptors for IA64.
	(gnuv3_virtual_fn_field): Rewrite using the new functions.
	(gnuv3_find_method_in, gnuv3_print_method_ptr)
	(gnuv3_method_ptr_size, gnuv3_make_method_ptr)
	(gnuv3_method_ptr_to_value): New.
	(init_gnuv3_ops): Set new members of gnu_v3_abi_ops.
	* hpread.c (hpread_type_lookup): Update for new types.
	* infcall.c (value_arg_coerce): Likewise.
	* m2-typeprint.c (m2_print_type): Remove explicit support
	for member pointers.
	* m2-valprint.c (m2_val_print): Likewise.
	* p-typeprint.c (pascal_type_print_varspec_prefix)
	(pascal_type_print_varspec_suffix, pascal_type_print_base): Likewise.
	* p-valprint.c (pascal_val_print): Likewise.
	(pascal_object_print_class_method, pascal_object_print_class_member):
	Delete.
	* p-lang.h (pascal_object_print_class_method)
	(pascal_object_print_class_member): Delete prototypes.
	* stabsread.c (read_type): Update for new types.
	* typeprint.c (print_type_scalar): Likewise.
	* valops.c (value_struct_elt_for_reference, value_namespace_elt)
	(value_maybe_namespace_elt, value_aggregate_elt): Add want_address
	argument.  Construct a pointer to member if the address of a
	function or data member is requested.
	(value_cast_pointers): Don't modify the input value.
	(value_cast): Adjust pointer to member handling for new types.
	Allow null pointer to member constants.  Don't modify the input
	value.
	(value_ind): Remove pointer to member check.  Handle function
	descriptors for function pointers.
	(value_struct_elt, value_find_oload_method_list, check_field):
	Remove pointer to member checks.
	* value.c (unpack_long): Allow pointers to data members.
	(value_from_longest): Allow member pointers.
	* value.h (value_aggregate_elt): Add want_address.
	* varobj.c (c_variable_editable): Remove check for members.
	* gdbarch.sh: Add vtable_function_descriptors and vbit_in_delta.
	* ia64-tdep.c (ia64_convert_from_func_ptr_addr): Handle descriptors
	in virtual tables.
	(ia64_gdbarch_init): Call set_gdbarch_vtable_function_descriptors.
	* c-lang.h (cp_print_class_method): Delete prototype.
	* arm-tdep.c (arm_gdbarch_init): Call set_gdbarch_vbit_in_delta.
	* mips-tdep.c (mips_gdbarch_init): Likewise.
	* gdbarch.c, gdbarch.h: Regenerated.

2007-01-01  Mark Kettenis  <kettenis@gnu.org>

	* rs6000-tdep.c (rs6000_use_struct_convention)
	(rs6000_extract_return_value, rs6000_store_return_value)
	(rs6000_extract_struct_value_address): Remove.
	(rs6000_return_value): New function.
	(rs6000_gdbarch_init): Don't set deprecated_extract_return_value,
	store_return_value, deprecated_extract_struct_value_address and
	deprecated_use_struct_convention.  Use rs6000_return_value
	instead.

2007-01-02  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-cmds.c (mi_cmds): Remove entries for -display-delete,
	-display-disable, -display-enable, -display-insert and
	-display-list.

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

	* breakpoint.c (remove_breakpoint): Remove dead code.

2007-01-01  Nick Roberts  <nickrob@snap.net.nz>

	* varobj.c: Include block.h.
	(c_value_of_root): Check scope within nested statements.

2007-01-01  Mark Kettenis  <kettenis@gnu.org>

	* mi/mi-main.c (mi_cmd_data_write_register_values): Use
	regcache_cooked_write_signed instead of
	deprecated_write_register_bytes.

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

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

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

	Followed the Start of New Year Procedure:
	* ChangeLog-2006: New file, containing all the entries for 2006.
	* ChangeLog: Removed all 2006 entries, and changed the reference
	to the previous ChangeLog to point to ChangeLog 2006.
	* top.c (print_gdb_version): Update copyright year.

2007-01-01  Mark Kettenis  <kettenis@gnu.org>

	* Makefile.in (remote-sds.o): Remove.
	* remote-sds.c: Delete.

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