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>

        * doc/gdb.texinfo:  Add TSIZE definition, removed
	statement about unbounded arrays being unimplemented.
	* 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.
	* doc/gdb.texinfo: Document ieee_single and ieee_double target types.

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.
	* doc/gdbint.texinfo (warning flags): Add -Wno-char-subscripts.

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:
	* gdb/target.c (target_flash_erase): Do not return void value.
	(target_flash_done): Likewise.
	* gdb/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>

	* gdb/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:
