2003-04-19  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_num_register_names): New variable.
	(i386_num_mmx_regs): Renamed from mmx_num_regs.
	(MM0_REGNUM): Remove redundant parentheses in define.
	(i386_mmx_regnum_p): Use i386_mmx_regnum instead of mmx_num_regs.
	(i386_fp_regnum_p, i386_fpc_regnum_p, i386_sse_regnum_p,
	i386_mxcsr_regnum_p): Remove redundant parentheses.
	(i386_register_name): Use i386_num_register_names.
	
	* i386-tdep.c (i386_extract_return_value,
	i386_store_return_value): Correct check for availability of
	floating-point registers.

	* i386-tdep.c (i386_frame_num_args): Remove function.
	(i386_gdbarch_init): Set frame_num_args to frame_num_args_unknown.

	* i386-tdep.c (i386_mmx_regnum_to_fp_regnum): Renamed from
	mmx_regnum_to_fp_regnum.  Adjust all callers.

	* i386-tdep.c (i386_get_longjmp_target): Use
	TYPE_LENGTH(builtin_type_void_func_ptr) instead of TARGET_PTR_BIT
	and TARGET_CHAR_BIT.  Use extract_typed_address instead of
	extract_address.

2003-04-19  Mark Kettenis  <kettenis@gnu.org>

	* core-regset.c: Update comments to reflect reality.  Re-order
	includes.
	(fetch_core_registers): Use switch instead of if.  Remove
	redundant prototype.

2003-04-18  Jim Blandy  <jimb@redhat.com>

	* s390-tdep.c (s390_frame_align): New function.
        (s390_gdbarch_init): Register it with the gdbarch object.

2003-04-17  Richard Henderson  <rth@redhat.com>

	* remote.c (minitelnet): Don't redeclare escape_count, echo_check.

2003-04-17  Michael Snyder  <msnyder@redhat.com>
	    Karen Bennet  <bennet@redhat.com>

	Committed by Elena Zannoni  <ezannoni@redhat.com>
	* gdb_gcore.sh: New script to create a core dump of a process.
	
2003-04-17  Elena Zannoni  <ezannoni@redhat.com>

	* values.c (value_being_returned): Don't fetch the return
        value if the return type is void.

2003-04-17  Jeff Johnston  <jjohnstn@redhat.com>

	* thread-db.c: Reindented.
 
2003-04-17  Jeff Johnston  <jjohnstn@redhat.com>
 
 	* gdb_indent.sh: Recognize td_thrhandle_t, td_event_msg_t, 
 	td_thr_events_t, td_notify_t, td_thr_iter_f, and td_thrinfo_t
	as types.

2003-04-16  Kevin Buettner  <kevinb@redhat.com>

	* rs6000-tdep.c (rs6000_gdbarch_init): For the SysV ABI, set
	the size of ``long double'' to 16, instead of 8.

2003-04-16  Mark Kettenis  <kettenis@gnu.org>

	* i386-linux-nat.c: Add some whitespace to make things more
	readable.
	(fetch_register, store_register, fetch_inferior_registers,
	store_inferior_registers): Get rid of assignment in if-statement.
	(store_register): Fix typo in error message.

2003-04-16  Andrew Cagney  <cagney@redhat.com>

	* utils.c (xmmalloc): Always allocate something, matches
	libiberty/xmalloc's semantics.
	(xmrealloc, xmcalloc): Ditto.

2003-04-16  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): Do not initialize "unwind" or "type",
	update comments.
	(get_frame_type): Initialize unwind and type when needed.
	(get_frame_id, frame_register_unwind): Ditto.

2003-04-16  Andrew Cagney  <cagney@redhat.com>

	* NEWS: Mention that sparclet-*-* and sparclite-*-* have been made
	obsolete.
	* sparc-tdep.c: Obsolete SPARCLET and SPARCLITE code.
	* sparcl-stub.c: Obsolete file.
	* config/sparc/tm-sparclet.h: Obsolete file.
	* sparclet-stub.c: Obsolete file.
	* sparclet-rom.c: Obsolete file.
	* sparcl-tdep.c: Obsolete file.
	* config/sparc/tm-sparclite.h: Obsolete file.
	* config/sparc/sparclite.mt: Obsolete file.
	* config/sparc/sparclet.mt: Obsolete file.
	* configure.tgt: Make sparclet-*-*, sparclite-*-*, and
	sparc86x-*-* obsolete.

2003-04-15  David Carlton  <carlton@math.stanford.edu>

	* Makefile.in (SFILES): Add cp-namespace.c.
	(COMMON_OBS): Add cp-namespace.o.
	(block.o): Depend on gdb_obstack_h and cp_support_h.
	(buildsym.o): Depend on cp_support_h.
	(cp-namespace.o): New.
	(cp-support.o): Depend on gdb_string_h, demangle_h, gdb_assert_h,
	gdb_obstack_h, symtab_h, symfile_h, and gdbcmd_h.
	(dwarf2read.o): Depend on cp_support_h.
	* jv-lang.c (get_java_class_symtab): Set BLOCK_NAMESPACE.
	* dwarf2read.c (process_die): Set processing_has_namespace_info,
	processing_current_namespace.
	(read_namespace): Update processing_current_namespace; check for
	anonymous namespaces.
	(dwarf2_name): New function.
	(dwarf2_extension): Ditto.
	* cp-support.h: Update copyright, contributors.
	Add inclusion guards.
	Add opaque declaration for structs obstack, block, symbol.
	(struct using_direct): New struct.
	Add declarations for cp_find_first_component,
	cp_entire_prefix_len, processing_has_namespace_info,
	processing_current_namespace, cp_is_anonymous,
	cp_add_using_directive, cp_initialize_namespace,
	cp_finalize_namespace, cp_set_block_scope,
	cp_scan_for_anonymous_namespaces.
	* cp-namespace.c: New file.
	* cp-support.c: Update copyright.
	Include ctype.h, gdb_assert.h, gdbcmd.h.
	New variable maint_cplus_cmd_list.
	(cp_find_first_component): New function.
	(cp_entire_prefix_len, maint_cplus_command)
	(first_component_command, _initialize_cp_support): Ditto.
	* buildsym.c: Include cp-support.h.
	New variable using_list.
	(add_symbol_to_list): Check for anonymous namespaces.
	(finish_block): Set block's scope.
	(start_symtab): Initialize C++ namespace support.
	(end_symtab): Finalize C++ namespace support.
	* block.h: Add opaque declarations for structs
	block_namespace_info, using_direct, and obstack.
	Add declarations for block_set_scope and block_set_using.
	(struct block): Add 'language_specific' member.
	(BLOCK_NAMESPACE): New macro.
	* block.c: Include gdb_obstack.h and cp-support.h.
	(struct block_namespace_info): New struct.
	(block_set_scope): New function.
	(block_set_using, block_initialize_namespace): Ditto.

2003-04-14  Kevin Buettner  <kevinb@redhat.com>

	* solib-svr4.c (svr4_have_link_map_offsets): New function.
	(locate_base): Return early if there aren't any link map offsets.
	(svr4_solib_create_inferior_hook): Warn if shared library support
	is unavailable.

2003-04-14  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (symbol_set_names): Add prefix when storing Java names
	in hash table.  Fix for PR java/1039.

2003-04-14  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (symbol_set_names): Rename 'name' arg to
	'linkage_name', and 'tmpname' variable to 'linkage_name_copy'.
	* symtab.h: Change 'name' argument in declaration of
	symbol_set_names to 'linkage_name'.
	(SYMBOL_SET_NAMES): Change 'name' argument to 'linkage_name'.

2003-04-14  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_read_sp): Do not apply ADDR_BITS_REMOVE,
	return the fully sign-extended register value.
	(get_frame_pointer): Ditto.
	(mips_pop_frame): Initialize "proc_desc" after checking for a
	dummy frame.

2003-04-14  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_push_dummy_frame): Delete function.
	(MASK, PUSH_FP_REGNUM, GEN_REG_SAVE_MASK): Delete macros.
	(FLOAT_REG_SAVE_MASK, FLOAT_SINGLE_REG_SAVE_MASK): Delete macro.
	(mips_push_register): Delete function.
	(mips_dump_tdep): Delete references to GEN_REG_SAVE_MASK and
	PUSH_FP_REGNUM.

2003-04-14  Jim Blandy  <jimb@redhat.com>

	* symmisc.c: #include "gdb_regex.h".
	(maintenance_list_symtabs, maintenance_list_psymtabs): New
	functions.
	* maint.c (maintenance_list_command): New function.
	(_initialize_maint_cmds): Register the above as commands.
	* symtab.h (maintenance_list_symtabs,
	maintenance_list_psymtabs): New declarations.
	* cli/cli-cmds.c (maintenancelistlist): New variable.
	(init_cmd_lists): Initialize it.
	* cli/cli-cmds.h (maintenancelistlist): New declaration.
	* gdbcmd.h (maintenancelistlist): New declaration.
	* Makefile.in (symmisc.o): Update dependencies.

2003-04-14  Elena Zannoni  <ezannoni@redhat.com>

	* s390-nat.c: Include asm/types.h for addr_t.

2003-04-14  Corinna Vinschen  <vinschen@redhat.com>

	* cp-valprint.c (cp_print_class_method): Call unpack_pointer() with
	actually incoming type.

2003-04-13  Andrew Cagney  <cagney@redhat.com>

	* ppc-linux-tdep.c: Use get_frame_base, get_frame_pc,
	get_next_frame and get_frame_saved_regs.

2003-04-13  Andrew Cagney  <cagney@redhat.com>

	* reggroups.c (default_register_reggroup_p): Use NUM_REGS instead
	of gdbarch_num_regs.

2003-04-13  Andrew Cagney  <cagney@redhat.com>

	* frame.h: Mention what replaced what in "struct frame_info".
	* hppa-hpux-tdep.c: Use get_frame_base, get_frame_pc and
	deprecated_update_frame_base_hack and
	deprecated_update_frame_pc_hack.
	* hppa-tdep.c: Ditto.

2003-04-13  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2expr.h (struct dwarf_expr_context): Remove extra arguments
	to read_reg and update its comment.  Remove regnum member.
	* dwarf2expr.c (execute_stack_op): Remove memaddr and expr_lval.
	Don't call read_reg when setting in_reg.  Call read_reg to get
	the frame base if it's in a register.  Return the register number
	on the stack instead of in the context.  Remove extra arguments
	to read_reg.
	* dwarf2loc.c (dwarf_expr_read_reg): Remove extra arguments.
	(dwarf2_evaluate_loc_desc): Call value_from_register.  Expect
	the register number on the expression stack.
	(needs_frame_read_reg): Remove extra arguments.

2003-04-13  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2expr.c (dwarf2_read_address): Renamed from read_address;
	made non-static.
	(execute_stack_op): All callers updated.
	* dwarf2expr.h: Add prototype for dwarf2_read_address.
	* dwarf2loc.c (find_location_expression): New function.
	(dwarf_expr_frame_base): Call it.
	(dwarf2_evaluate_loc_desc): Handle 0-length location expressions.
	(dwarf2_tracepoint_var_ref): New function, broken out from
	locexpr_tracepoint_var_ref.
	(locexpr_tracepoint_var_ref): Call dwarf2_tracepoint_var_ref.
	Make static.
	(loclist_read_variable, loclist_read_needs_frame): New functions.
	(loclist_describe_location, loclist_tracepoint_var_ref): New
	functions.
	(dwarf2_loclist_funcs): New struct location_funcs.
	* dwarf2loc.h (struct dwarf2_loclist_baton): New type.
	(struct dwarf2_locexpr_baton): Add comments.
	(dwarf2_loclist_funcs): New extern.
	* dwarf2read.c (struct comp_unit_head): Remove DIE member, add
	base_address and base_known.
	(dwarf_loc_buffer): New variable.
	(struct dwarf2_pinfo): Add dwarf_loc_buffer and dwarf_loc_size.
	(DWARF_LOC_BUFFER, DWARF_LOC_SIZE): New macros.
	(dwarf2_has_info): Initialize dwarf_loc_offset.
	(dwarf2_build_psymtabs): Read in .debug_loc.
	(dwarf2_build_psymtabs_hard): Use DWARF_LOC_BUFFER and
	DWARF_LOC_SIZE.
	(psymtab_to_symtab_1): Likewise.  Move base address calculation
	here, from...
	(dwarf2_get_pc_bounds): ... here.  Use the base address from
	cu_header.
	(dwarf2_symbol_mark_computed): Handle location lists.

2003-04-13  Daniel Jacobowitz  <drow@mvista.com>

	* minsyms.c (install_minimal_symbols): Only switch to gnu-v3 mode
	if the linkage name demangled successfully.

2003-04-13  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (att_flavour, intel_flavour, valid_flavours,
	disassmbly_flavour): Removed.

	* x86-64-tdep.c (gdb_print_insn_x86_64): Removed.

2003-04-13  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (x86_64_breakpoint_from_pc): Removed.

2003-04-12  Andrew Cagney  <cagney@redhat.com>

	* frame.h (struct frame_info): Move definition from here ...
	* frame.c (struct frame_info): ... to here.

2003-04-12  Andrew Cagney  <cagney@redhat.com>

	* gdbthread.h (save_infrun_state): Delete parameter
	"prev_func_start".
	(struct thread_info): Delete field "prev_func_start".
	(load_infrun_state): Ditto.
	* thread.c (load_infrun_state, save_infrun_state): Update.
	* infrun.c (prev_func_start): Delete variable.
	(context_switch, init_wait_for_inferior): Update.
	(stop_stepping, keep_going): Update.

2003-04-12  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh: Add missing opaque declarations.
	* gdbarch.h: Regnerate.
	* symtab.h: Add missing opaque declarations.
	* value.h, target.h, symfile.h, stabsread.h: Ditto.
	* x86-64-tdep.h, xmodem.h, monitor.h, typeprint.h: Ditto.
	* srec.h, solib-svr4.h, source.h, inferior.h: Ditto.
	* ser-unix.h, serial.h, remote-utils.h, gdbcore.h: Ditto.
	* ppc-tdep.h, ocd.h, mips-tdep.h, gdbtypes.h: Ditto.
	* buildsym.h, builtin-regs.h, linespec.h, language.h: Ditto.
	* i387-tdep.h, gdbthread.h, event-top.h, gdb.h: Ditto.
	* dwarf2cfi.h, doublest.h, disasm.h, cp-abi.h: Ditto.
	* cli-out.h, c-lang.h, ax-gdb.h, arch-utils.h: Ditto.
	* ada-lang.h, config/nm-lynx.h, config/nm-linux.h: Ditto.
	* config/sparc/tm-sp64.h, config/rs6000/tm-rs6000.h: Ditto.
	* config/pa/tm-hppah.h, config/m68k/tm-delta68.h: Ditto.
	* cli/cli-setshow.h, cli/cli-script.h: Ditto.

2003-04-11  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_frame_id): Return this frame's "id".
	(legacy_get_prev_frame): Set prev's frame ID code_addr to the
	function start.
	(legacy_saved_regs_this_id): Replace function body with
	internal-error.
	(deprecated_frame_xmalloc): Mark the frame ID as valid, use
	FRAME_OBSTACK_ZALLOC.
	(create_new_frame): Mark the frame ID as valid.

2003-04-11  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (libbfd_h): Added missing setting.
	* mips-tdep.c (mips_gdbarch_init): Set disassembler_options
	according to the selected ABI.

2003-04-11  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb_indent.sh: Recognize pid_t and sigset_t as types.

2003-04-11  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_SAVED_PC_AFTER_CALL): Deprecate
	SAVED_PC_AFTER_CALL.
	* gdbarch.h, gdbarch.c: Regenerate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	(ia64_saved_pc_after_call): Update declaration.
	* i386ly-tdep.c (i386lynx_init_abi): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* ns32knbsd-nat.c (frame_num_args): Update.
	* ns32k-tdep.c (umax_frame_num_args): Update.
	* mips-tdep.c (mips_init_frame_pc_first): Update.
	* infrun.c (step_over_function): Update.
	* i386-linux-tdep.c (skip_hurd_resolver): Update.
	* i386-interix-tdep.c (i386_interix_back_one_frame): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_SAVED_PC_AFTER_CALL): Update.
	(DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/pa/tm-hppa.h (DEPRECATED_SAVED_PC_AFTER_CALL): Update.
	* arm-linux-tdep.c (skip_hurd_resolver): Update.
	* arch-utils.c (init_frame_pc_default): Update.
	* alpha-tdep.c (alpha_init_frame_pc_first): Update.
	* x86-64-tdep.h (x86_64_linux_saved_pc_after_call): Update
	declaration.
	
2003-04-11  Andrew Cagney  <cagney@redhat.com>

	* i387-tdep.c: Update copyright.
	(i387_to_double): Delete function.
	(double_to_i387): Delete function.

2003-04-10  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_frame_this_id): Set the code addr to the
	frame's function's address.  Simplify.
	(d10v_frame_unwind_cache): Check that the frame's function is
	non-zero.

2003-04-10  Jim Blandy  <jimb@redhat.com>

	* s390-tdep.c (s390_gdbarch_init): Put back accidentally deleted
	call to set_gdbarch_deprecated_push_arguments.

2003-04-10  Andrew Cagney  <cagney@redhat.com>

	* frame.c (fprint_frame_id): New function.
	(fprint_frame_type, fprint_frame): New function.
	(frame_pc_unwind, frame_func_unwind): Add/update trace code.
	(create_sentinel_frame, get_frame_id): Ditto.
	(frame_id_p, frame_id_eq): Ditto.
	(frame_id_inner, create_new_frame): Ditto.
	(legacy_get_prev_frame, get_prev_frame): Ditto.
	(deprecated_update_frame_pc_hack): Ditto.
	(frame_register_unwind): Ditto.
	(deprecated_update_frame_base_hack): Ditto.

2003-04-10  Corinna Vinschen  <vinschen@redhat.com>

	* i386-cygwin-tdep.c (i386_cygwin_frame_chain): New function.
	(i386_cygwin_init_abi): Set i386_cygwin_frame_chain as new
	frame_chain function.
	* Makefile.in: Add dependencies due to above change.

2003-04-10  Corinna Vinschen  <vinschen@redhat.com>

	* blockframe.c (legacy_frame_chain_valid): Move call to
	DEPRECATED_FRAME_CHAIN_VALID before calls to inside_entry_func and
	inside_entry_file.

2003-04-09  Andrew Cagney  <cagney@redhat.com>

	* frame.h (struct frame_id): Replace "pc" and "base" with
	"stack_addr" and "code_addr".  Update comments.
	(frame_id_build): Update parameter names and comment.
	(struct frame_info): Replace "id_p" and "id" with "this_id".
	* dummy-frame.c (dummy_frame_this_id): Update.
	* breakpoint.c (print_one_breakpoint): Update.
	* frame.c (get_frame_id): Update.
	(get_frame_base, frame_id_build): Update.
	(create_sentinel_frame, legacy_get_prev_frame): Update.
	(deprecated_update_frame_base_hack): Update.
	(frame_id_p, frame_id_eq): Rework, return 0 when an invalid ID.
	(frame_id_inner): Ditto.

2003-04-09  Andrew Cagney  <cagney@redhat.com>

	* defs.h (gdb_print_host_address): Make "addr" parameter a
	pointer constant.
	* utils.c (gdb_print_host_address): Update.

2003-04-09  Kevin Buettner  <kevinb@redhat.com>

	* rs6000-tdep.c (frame_get_saved_regs): Don't assume that the
	register number for R0 is 0.

2003-04-09  J. Brobecker  <brobecker@gnat.com>

	* frame.h (struct gdbarch): Add opaque structure definition
	to avoid a compilation warning on LynxOS 4.0.

2003-04-09  Andrew Cagney  <cagney@redhat.com>

	* frame.h (struct frame_info): Delete field "pc".  Replace
	"pc_unwind_cache" and "pc_unwind_cache_p" with "prev_pc"
	structure.
	* frame.c (frame_pc_unwind): Update.
	(create_sentinel_frame): Do not set "pc".
	(get_prev_frame): Do not set "pc".  Use frame_pc_unwind.
	(get_frame_pc): Call frame_pc_unwind.
	(deprecated_update_frame_pc_hack): Update.
	(create_new_frame): Use "pc" not "->pc".

2003-04-09  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_frame_id): Eliminate code updating "frame".
	(legacy_get_prev_frame): Ditto.
	(get_frame_base): Return id.base directly.
	(deprecated_update_frame_base_hack): Update "id.base".
	* frame.h (struct frame_info): Delete field "frame".

2003-04-09  Andrew Cagney  <cagney@redhat.com>

	* NEWS: Mention that the "Sequent family" is obsolete.
	* configure.tgt: Obsolete i[3456]86-sequent-bsd*,
	i[3456]86-sequent-sysv4*, and i[3456]86-sequent-sysv*.
	* configure.host: Obsolete i[3456]86-sequent-bsd*,
	i[3456]86-sequent-sysv4*, and i[3456]86-sequent-sysv*.
	* config/i386/tm-ptx4.h: Obsolete file.
	* config/i386/tm-ptx.h: Obsolete file.
	* symm-tdep.c: Obsolete file.
	* config/i386/symmetry.mt: Obsolete file.
	* config/i386/tm-symmetry.h: Obsolete file.
	* symm-nat.c: Obsolete file.
	* config/i386/nm-symmetry.h: Obsolete file.
	* config/i386/xm-symmetry.h: Obsolete file.
	* config/i386/symmetry.mh: Obsolete file.
	* config/i386/nm-ptx4.h: Obsolete file.
	* config/i386/ptx4.mh: Obsolete file.
	* config/i386/ptx.mt: Obsolete file.
	* config/i386/ptx.mh: Obsolete file.
	* config/i386/xm-ptx4.h: Obsolete file.
	* config/i386/xm-ptx.h: Obsolete file.

2003-04-09  Andrew Cagney  <cagney@redhat.com>

	Obsolete mips*-*-mach3*.
	* NEWS: Mention that mips*-*-mach3* is obsolete.
	* m3-nat.c: Obsolete file.
	* config/nm-m3.h: Obsolete file.
	* config/mips/tm-mipsm3.h: Obsolete file.
	* config/mips/mipsm3.mt: Obsolete file.
	* config/mips/mipsm3.mh: Obsolete file.
	* config/mips/xm-mipsm3.h: Obsolete file.
	* mipsm3-nat.c: Obsolete file.
	* configure.host: Obsolete mips-dec-mach3*.
	* configure.tgt: Obsolete mips*-*-mach3*.

2003-04-09  Andrew Cagney  <cagney@redhat.com>

	* doublest.h: Update copyright.
	(deprecated_store_floating, deprecated_extract_floating): Rename
	store_floating and extract_floating.  Update comments.
	* doublest.c: Update copyright.
	(extract_floating_by_length): Replace extract_floating.
	(store_floating_by_length): Replace store_floating.
	(deprecated_extract_floating): New function.
	(deprecated_store_floating): New function.
	(extract_typed_floating): Call extract_floating_by_length.
	(store_typed_floating): Call store_floating_by_length.
	* x86-64-tdep.c (x86_64_store_return_value): Update.
	* sh-tdep.c (sh3e_sh4_extract_return_value): Update.
	(sh64_extract_return_value): Update.
	(sh_sh4_register_convert_to_virtual): Update.
	(sh_sh64_register_convert_to_virtual): Update.
	(sh_sh4_register_convert_to_raw): Update.
	(sh_sh64_register_convert_to_raw): Update.
	* rs6000-tdep.c (rs6000_register_convert_to_virtual): Update.
	(rs6000_register_convert_to_raw): Update.
	* ia64-tdep.c (ia64_register_convert_to_virtual): Update.
	(ia64_register_convert_to_raw): Update.
	* config/i386/tm-symmetry.h (REGISTER_CONVERT_TO_RAW): Update.
	(REGISTER_CONVERT_TO_VIRTUAL): Update.
	* arm-linux-tdep.c (arm_linux_push_arguments): Update.
	* alpha-tdep.c (alpha_register_convert_to_virtual): Update.
	(alpha_register_convert_to_raw): Update.

2003-04-08  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (SAVED_PC_AFTER_CALL): Add a predicate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* d10v-tdep.c (d10v_saved_pc_after_call): Delete function.
	(d10v_gdbarch_init): Do not set saved_pc_after_call.
	* infrun.c (step_over_function): Call SAVED_PC_AFTER_CALL_P
	conditionally, use frame_pc_unwind as an alternative.  Add
	comments.
	* arch-utils.c (init_frame_pc_default): Only call
	SAVED_PC_AFTER_CALL when available.

2003-04-08  Elena Zannoni  <ezannoni@redhat.com>

        * infrun.c (stop_soon): Rename from stop_soon_quietly.
	(struct inferior_status): Rename stop_soon_quietly field to stop_soon.
	(clear_proceed_status): Rename stop_soon_quietly to stop_soon.
	(start_remote): Ditto.
	(handle_inferior_event): Ditto.
	(save_inferior_status): Ditto.
	(restore_inferior_status): Ditto.
	* infcmd.c (attach_command): Ditto.
	* fork-child.c (startup_inferior): Ditto.
        * inferior.h (stop_soon): Rename from stop_soon_quietly.
	* alpha-tdep.c (heuristic_proc_start): Ditto.
	* mips-tdep.c (heuristic_proc_start): Ditto.
	* solib-svr4.c (svr4_solib_create_inferior_hook): Ditto.
	* solib-sunos.c (sunos_solib_create_inferior_hook): Ditto.
	* solib-osf.c (osf_solib_create_inferior_hook): Ditto.
	* solib-irix.c (irix_solib_create_inferior_hook): Ditto.
	* remote-vx.c (vx_create_inferior): Ditto.

2003-04-08  Elena Zannoni  <ezannoni@redhat.com>

	* infrun.c (stop_soon_quietly): Make it an enum, to better
	override the default behavior of handle_inferior_event.
	(clear_proceed_status): Update uses of stop_soon_quietly to
	reflect that it is now an enum.
	(start_remote): Ditto.
	(handle_inferior_event): Change logic a bit if stop_soon_quietly
	is set to handle the new GNU/Linux kernel behavior for
	attach/sigstop.  Update uses of stop_soon_quietly.
	* inferior.h (enum stop_kind): New enum.
	* infcmd.c (attach_command): Use STOP_QUIETLY_NO_SIGSTOP.
	Reset normal handle_inferior_event behavior, afterwards.
	* fork-child.c (startup_inferior): Update.
	* alpha-tdep.c (heuristic_proc_start): Update.
	* solib-svr4.c (svr4_solib_create_inferior_hook): Update.
	* solib-sunos.c (sunos_solib_create_inferior_hook): Update.
	* solib-osf.c (osf_solib_create_inferior_hook): Update.
	* solib-irix.c (irix_solib_create_inferior_hook): Update.
	* remote-vx.c (vx_create_inferior): Update.
	* mips-tdep.c (heuristic_proc_start): Update.

2003-04-07  Elena Zannoni  <ezannoni@redhat.com>

	* disasm.c (dump_insns):  Move variables inside loop, or they will
        be freed more than once, causing wild memory corruptions.
	(gdb_disassembly): Look for the substring "-thread",
        instead of "-threads" in the target name, to make sure to find
        the 'multi-thread' target.  Also, make sure we do the right thing 
        with the "core" target.

2003-04-07  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (mips_print_fp_register): New function, created from
	do_fp_register_row().  Registers are now (also) printed as hex.
	Only one register is printed per row.
	(mips_print_register, do_fp_register_row): Print floating point
	registers with mips_print_fp_register().

2003-04-06  Andrew Cagney  <cagney@redhat.com>

	* valprint.h (inspect_it): Add extern declaration.
	* objc-lang.c (value_nsstring): Avoid assignment inside of "if".
	(selectors_info, classes_info): Ditto.
	(find_objc_msgcall): Fix indentation.
	(objc_printstr): Delete extern declarations.

	* arm-tdep.c (arm_frameless_function_invocation): Fix typo.

2003-04-06  Andrew Cagney  <cagney@redhat.com>

	* frame.h (legacy_frame_chain_valid): Rename frame_chain_valid.
	Update comment.
	* frame.c (legacy_saved_regs_this_id): Update.
	(legacy_get_prev_frame): Update.
	* xstormy16-tdep.c: Update comment.
	* sparc-tdep.c (sparc_frame_chain): Update comment.
	* blockframe.c (legacy_frame_chain_valid): Update.

2003-04-06  Andrew Cagney  <cagney@redhat.com>

	* valprint.c (val_print_type_code_int): Delete #ifdef
	PRINT_TYPELESS_INTEGER code.

	* gdbarch.sh (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
	(CALL_DUMMY_LOCATION, DEPRECATED_PC_IN_CALL_DUMMY): Allow partial
	multi-arch definition.
	* gdbarch.h: Re-generate.

2003-04-05  Andrew Cagney  <cagney@redhat.com>

	Eliminate FRAME_FIND_SAVED_REGS.
	* config/pa/tm-hppah.h (hppa_hpux_frame_find_saved_regs_in_sigtramp):
	Change FSR parameter to a pointer.
	* config/pa/tm-hppa64.h (FRAME_FIND_SAVED_REGS_IN_SIGTRAMP):
	Assume FSR parameter is a pointer.
	* hppa-hpux-tdep.c (hppa_hpux_frame_find_saved_regs_in_sigtramp):
	Make fsr a pointer.
	* hppa-tdep.c (hppa_frame_find_saved_regs): New function.
	(hppa_frame_saved_pc): Call hppa_frame_init_saved_regs.  Make
	saved_regs a pointer.
	(hppa_frame_saved_pc): Ditto.
	(find_dummy_frame_regs): Make frame_saved_regs a pointer
	(hppa_pop_frame): Call hppa_frame_init_saved_regs.  Make fsr a
	pointer.
	(restore_pc_queue): Make fsr a pointer.
	(hppa_frame_find_saved_regs): Make frame_saved_regs a pointer.
	(hppa_frame_chain): Make saved_regs a pointer, call
	hppa_frame_init_saved_regs.
	* sparc-tdep.c: Include "gdb_assert.h".
	(sparc_frame_find_saved_regs): Replace internal_error with
	gdb_assert.
	* remote-vxsparc.c (vx_read_register): Delete reference to
	FRAME_FIND_SAVED_REGS.
	* gdbarch.sh: Delete check for FRAME_FIND_SAVED_REGS.
	* gdbarch.h: Regenerate.
	* frame.h (DEPRECATED_FRAME_INIT_SAVED_REGS): Delete macro.
	(deprecated_get_frame_saved_regs): Delete declaration.
	(struct frame_saved_regs): Delete definition.
	* frame.c (deprecated_get_frame_saved_regs): Delete function.
	* config/pa/tm-hppa.h (hppa_frame_init_saved_regs): Declare.
	(hppa_frame_find_saved_regs): Delete declaration.
	(FRAME_FIND_SAVED_REGS): Delete macro.
	(DEPRECATED_FRAME_INIT_SAVED_REGS): Define.
	* config/i386/tm-ptx.h (FRAME_FIND_SAVED_REGS): Delete
	FRAME_FIND_SAVED_REGS in comment.

2003-04-05  Andrew Cagney  <cagney@redhat.com>

	* frame.c (frame_func_unwind, get_frame_func): New functions.
	* frame.h (get_frame_func, frame_func_unwind): Declare.
	(struct frame_info): Add field "prev_func" for caching the
	previous frame's function address.
	* arm-tdep.c (arm_frameless_function_invocation): Combine
	get_pc_function_start and get_frame_pc into get_frame_func.
	* sh-tdep.c (sh_nofp_frame_init_saved_regs): Ditto.
	(sh64_nofp_frame_init_saved_regs): Ditto.
	* s390-tdep.c (s390_function_start): Ditto.
	* rs6000-tdep.c (rs6000_pop_frame): Ditto.
	(rs6000_frameless_function_invocation): Ditto.
	(rs6000_frame_saved_pc): Ditto.
	* m68k-tdep.c (m68k_frame_init_saved_regs): Ditto.
	* ia64-tdep.c (ia64_frame_init_saved_regs): Ditto.
	* i386-tdep.c (i386_frameless_signal_p): Ditto.
	(i386_frame_init_saved_regs): Ditto.
	* hppa-tdep.c (hppa_frame_find_saved_regs): Ditto.
	* d10v-tdep.c (d10v_frame_unwind_cache): Combine
	get_pc_function_start and frame_pc_unwind into frame_func_unwind.
	* cris-tdep.c (cris_frame_init_saved_regs): Ditto.
	* blockframe.c (frameless_look_for_prologue): Ditto.

2003-04-05  Andrew Cagney  <cagney@redhat.com>

	* frame.c (legacy_get_prev_frame): Link prev to next at the
	function start.  Update comments.

2003-04-05  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_frame_id): Update comment.
	(legacy_get_prev_frame): Update comment.
	* gdbarch.sh: Delete check for EXTRA_FRAME_INFO.
	* gdbarch.h: Regenerate.
	* config/sparc/tm-sparc.h (EXTRA_FRAME_INFO): Delete.
	* frame.h: Delete #ifdef EXTRA_FRAME_INFO code.

2003-04-05  Andrew Cagney  <cagney@redhat.com>

	* stack.c (print_frame_info): Use get_frame_pc.

2003-04-04  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): Do not call frame_type_from_pc.  Set
	the frame's type from the unwinder.
	(get_frame_type): Map UNKNOWN_FRAME onto NORMAL_FRAME.
	(create_new_frame, legacy_get_prev_frame): When the unwinder's
	type isn't UNKNOWN_FRAME, initalize "type" from the unwinder.
	(get_frame_base_address): Use get_frame_type.
	(get_frame_locals_address, get_frame_args_address): Ditto.
	(legacy_saved_regs_unwinder): Set the type to UNKNOWN_TYPE.
	* frame.h (enum frame_type): Add UNKNOWN_FRAME.
	(struct frame_info): Add comment explaining why the frame contains
	a "type" field.
	* dummy-frame.c (dummy_frame_unwind): Set the type to DUMMY_FRAME.
	* d10v-tdep.c (d10v_frame_unwind): Set the type to NORMAL_FRAME.
	* sentinel-frame.c (sentinel_frame_unwinder): Set the type to
	NORMAL_FRAME.
	* frame-unwind.h: Include "frame.h".
	(struct frame_unwind): Add "type" field.
	* Makefile.in (frame_unwind_h): Add $(frame_h).
	
2003-04-04  Andrew Cagney  <cagney@redhat.com>

	* x86-64-tdep.c (x86_64_unwind_dummy_id): Use frame_id_build.
	* dummy-frame.c (dummy_frame_this_id): Use frame_id_build.
	* d10v-tdep.c (d10v_frame_this_id): Use get_frame_pc and
	get_frame_base.
	(d10v_unwind_dummy_id): Use frame_id_build.
	* frame.c (find_frame_sal): Use get_frame_pc.
	(create_new_frame): Use deprecated_update_frame_pc_hack and
	deprecated_update_frame_base_hack.
	(create_sentinel_frame): Add comment about ->pc going away.
	(get_prev_frame): Add comment about ->pc going away.
	(legacy_get_prev_frame): Use get_frame_base, get_frame_pc,
	frame_id_build, deprecated_update_frame_pc_hack and
	deprecated_update_frame_base_hack.
	(select_frame): Use get_frame_pc.
	(legacy_saved_regs_this_id): Use frame_id_build.

2003-04-04  Elena Zannoni  <ezannoni@redhat.com>

        * x86-64-tdep.c (x86_64_push_arguments): Handle correctly the
        signed integer case.
        (classify_argument): Handle enumerations and references.

2003-04-04  Andrew Cagney  <cagney@redhat.com>

	* frame.c (create_sentinel_frame): Initialize the sentinel frame's
	ID to NULL.

2003-04-01  Adam Fedor  <fedor@gnu.org>

	* gdb/objc-lang.c (selectors_info): Replace calls to
	SYMBOL_DEMANGLED_NAME and DEPRECATED_SYMBOL_NAME with
	SYMBOL_NATURAL_NAME.
	(classes_info, find_methods): Likewise.

2003-04-03  Kevin Buettner  <kevinb@redhat.com>

	* rs6000-tdep.c (rs6000_gdbarch_init): For xcoff executables, set
	``mach'' to the value determined by bfd_default_set_arch_mach().

2003-04-02  Bob Rossi  <bob_rossi@cox.net>

	* Makefile.in (SUBDIR_MI_OBS): Add "mi-cmd-file.o".
	(SUBDIR_MI_SRCS): Add "mi-cmd-file.c".
	(mi-cmd-file.o): Update dependencies.

2003-04-01  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (mips_dwarf_dwarf2_ecoff_reg_to_regnum)
	(mips_stab_reg_to_regnum): Add mappings for HI_REGNUM and LO_REGNUM.

2003-04-01  Adam Fedor  <fedor@gnu.org>

	* Makefile.in (c_lang.o, jv_lang.o, language.o): Add $(demangle_h).
	* language.h (struct language_defn): Add la_demangle.
	(language_demangle): Declare.
	* language.c (language_demangle): New function.
	(unk_lang_demangle): Likewise.
	(unknown_language_defn, auto_language_defn, local_language_defn):
        Add ukn_lang_demangle.
	* ada-lang.c (ada_language_defn): Add NULL for la_demangle element.
        * f-lang.c, m2-lang.c, p-lang.c, scm-lang.c: Likewise.
	* c-lang.c (c_language_defn, asm_language_defn): Likewise.
	(cplus_language_defn): Add cplus_demangle for la_demangle element.
	* jv-lang.c (java_demangle): New function
	(java_language_defn): Use it for la_demangle element.
        * objc-lang.c (objc_demangle): Add options argument
        (objc_language_defn): Use objc_demangle for la_demangle element.
	* maint.c (maintenance_demangle): Replace switch with
	call to language_demangle.
	* utils.c (fprintf_symbol_filtered): Likewise.

2003-04-01  Andrew Cagney  <cagney@redhat.com>

	* printcmd.c (print_frame_nameless_args): Delete #ifdef
	NAMELESS_ARG_VALUE, PRINT_NAMELESS_INTEGER and
	PRINT_TYPELESS_INTEGER.
	* config/sparc/tm-sp64.h (DEPRECATED_PUSH_RETURN_ADDRESS): Rename
	PUSH_RETURN_ADDRESS.

2003-04-01  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (d10v-tdep.o): Update dependencies.
	* d10v-tdep.c: Include "frame-base.h".
	(d10v_frame_unwind): Make constant.
	(d10v_frame_base_address): New function.
	(d10v_frame_base): New variable.
	(d10v_gdbarch_init): Set frame_base default.
	(struct d10v_unwind_cache): Add the field "prev_sp".  Update
	comment for base.
	(d10v_frame_unwind_cache): Set and use "prev_sp".
	(d10v_frame_this_id): Use the previous frame's inner most stack
	address and this frame's func address for the frame ID.  Use
	frame_id_build.  Don't analyze beyond the current instruction.
	
2003-04-01  Andrew Cagney  <cagney@redhat.com>

	* frame.h (get_frame_locals_address, get_frame_args_address):
	Refer to the base address, instead of the address of the first
	local or parameter.
	
2003-04-01  Andrew Cagney  <cagney@redhat.com>

	Add frame debug info addresses:
	* frame-base.c: New file.
	* frame-base.h: New file.
	* frame.h (struct frame_base): Add opaque declaration.
	(get_frame_base): Update comment.
	(get_frame_base_address): Declare.
	(get_frame_locals_address): Declare.
	(get_frame_args_address): Declare.
	(struct frame_info): Add "base" and "base_cache".  Update
	comments on the unwinder.
	* frame.c: Include "frame-base.h".
	(get_frame_locals_address): New function.
	(get_frame_base_address): New function.
	(get_frame_args_address): New function.
	* findvar.c (read_var_value): Use get_frame_locals_address and
	get_frame_args_address.
	* stack.c (frame_info): Use get_frame_locals_address and
	get_frame_args_address.
	(FRAME_ARGS_ADDRESS_CORRECT): Delete conditionally defined macro,
	moved to "frame-base.c".
	* printcmd.c (print_frame_nameless_args): Ditto.
	* symtab.h (address_class): Update comments.
	* dwarf2loc.c (dwarf_expr_frame_base): Add note about
	get_frame_base_address.
	* dwarf2expr.c (execute_stack_op): Ditto.
	* Makefile.in (frame_base_h): Define.
	(frame.o): Update dependencies.
	(frame-base.o): Add dependencies.
	(SFILES): Add frame-base.c.
	(COMMON_OBS): Add frame-base.o.

2003-04-01  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (CALL_DUMMY_START_OFFSET): Default to zero.
	CALL_DUMMY_LENGTH): Ditto.
	* gdbarch.c: Re-generate.
	* inferior.h (CALL_DUMMY_START_OFFSET): Delete macro.
	(CALL_DUMMY_LENGTH): Delete macro.
	* alpha-tdep.c (alpha_gdbarch_init): Do not set above when zero.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* vax-tdep.c (vax_gdbarch_init): Ditto.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.

2003-04-01  Corinna Vinschen  <vinschen@redhat.com>

	* frame.c (get_prev_frame): Disable call to inside_entry_file().

2003-04-01  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (CALL_DUMMY_BREAKPOINT_OFFSET): Default to zero.
	(CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* config/sparc/tm-sp64.h (CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
	(CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
	* config/pa/tm-hppa64.h (CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
	* inferior.h (CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
	(CALL_DUMMY_BREAKPOINT_OFFSET): Delete.
	* infcmd.c (run_stack_dummy): Simplify assuming
	CALL_DUMMY_BREAKPOINT_OFFSET_P.
	* infrun.c (handle_inferior_event): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Do not set
	call_dummy_breakpoint_offset or call_dummy_breakpoint_offset_p.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* vax-tdep.c (vax_gdbarch_init): Ditto.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.

2003-04-01  Daniel Jacobowitz  <drow@mvista.com>

	* symfile.c (symfile_relocate_debug_section): Update call to
	bfd_simple_get_relocated_section_contents.

2003-03-31  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (FIX_CALL_DUMMY): Change to function with predicate.
	* gdbarch.h, gdbarch.c: Regenerate.
	* inferior.h (FIX_CALL_DUMMY): Delete macro.
	* valops.c (hand_function_call): Only call FIX_CALL_DUMMY when
	available.
	* frame.h (generic_fix_call_dummy): Delete declaration.
	* dummy-frame.h: Update comment.
	* dummy-frame.c (generic_fix_call_dummy): Delete function.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	fix_call_dummy.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.

2003-03-31  J. Brobecker  <brobecker@gnat.com>

	* config/pa/tm-hppa64.h (FRAME_ARGS_ADDRESS): Delete macro, not useful.
	(INIT_FRAME_AP): Likewise.
	(EXTRA_FRAME_INFO): Likewise.

2003-03-31  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh: Include "symfile.h".
	(CALL_DUMMY_ADDRESS): Default to entry_point_address.
	* gdbarch.h, gdbarch.c: Re-generate.
	* inferior.h (CALL_DUMMY_ADDRESS): Delete macro.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	call_dummy_address, the default is at entry_point_address.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.

2003-03-31  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (CALL_DUMMY_P): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* inferior.h (CALL_DUMMY_P): Delete macro.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* d10v-tdep.c (d10v_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* breakpoint.c (deprecated_frame_in_dummy): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* dummy-frame.c (dummy_frame_this_id): Update comments.
	* rs6000-tdep.c (rs6000_extract_struct_value_address): Ditto.
	* frame.c (legacy_get_prev_frame): Ditto.
	* valops.c (call_function_by_hand): Delete function.
	(hand_function_call): Rename to call_function_by_hand

2003-03-30  Andrew Cagney  <cagney@redhat.com>

	2002-11-10 Klee Dienes <kdienes@apple.com>
        * value.h (struct value): Update comment.

2003-03-30  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c: Replace _FP_REGNUM and FP_REGNUM with
	D10V_FP_REGNUM.
	(d10v_gdbarch_init): Do not set fp_regnum.

	* frame.c (get_frame_base): Force ID initialization.
	(get_prev_frame): Move computation of the frame ID from here ...
	(get_frame_id): ... to here.
	(legacy_get_prev_frame): Mark the frame ID as valid.
	* frame.h (struct frame_info): Add field "id_p".

2003-03-30  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_store_struct_return): Removed.
	(i386_gdbarch_init): Don't set deprecated_store_struct_return.

2003-03-30  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_DUMMY_WRITE_SP): Replace TARGET_WRITE_SP.
	* gdbarch.h, gdbarch.c: Regenerate.
	* v850-tdep.c (v850_gdbarch_init): Set deprecated_dummy_write_sp.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* vax-tdep.c (vax_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_push_dummy_frame, sparc_pop_frame): Update.
	* config/sparc/tm-sp64.h (DEPRECATED_DUMMY_WRITE_SP): Update.
	* config/pa/tm-hppa.h (DEPRECATED_DUMMY_WRITE_SP): Define.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* valops.c (hand_function_call): Replace TARGET_WRITE_SP with
	DEPRECATED_DUMMY_WRITE_SP.  Call when the method is available,
	instead of when push_dummy_call is not available.
	
2003-03-30  Andrew Cagney  <cagney@redhat.com>

	* infttrace.c: Include "gdbthread.h".
	(parent_attach_all): Fix function signature.
	(call_ptrace): Update call.
	* Makefile.in (infttrace.o): Update dependencies.

2003-03-30  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_PUSH_RETURN_ADDRESS): Replace
	PUSH_RETURN_ADDRESS.
	* gdbarch.h, gdbarch.c: Regenerate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* valops.c (hand_function_call): Update.

2003-03-29  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_gdbarch_init): Do not set call_dummy_words or
	sizeof_call_dummy_words.
	* gdbarch.sh (CALL_DUMMY_WORDS, SIZEOF_CALL_DUMMY_WORDS): Always
	define.
	* gdbarch.h: Regenerate.
	
2003-03-29  Andrew Cagney  <cagney@redhat.com>

	* infttrace.h: New file.
	* hpread.c: Include "gdb_assert.h" and "somsolib.h".
	(hpread_get_textlow): Detect an uninitialized dn_bufp.
	(hpread_read_doc_function_type): Detect an initialized type1.
	(hpread_quick_traverse): Initialize mod_name_string.
	* somsolib.h: Add #ifdef SOMSOLIB_H wrapper.
	(som_solib_get_solib_by_pc): Declare.
	(so_lib_thread_start_addr): Declare.
	(no_shared_libraries): Declare.
	* somread.c (init_import_symbols): Make static.  Add forward
	declaration.
	* config/pa/nm-hppah.h: Include "infttrace.h" for
	parent_attach_all.
	(hppa_insert_hw_watchpoint): Declare.
	(hppa_can_use_hw_watchpoint, hppa_remove_hw_watchpoint): Declare.
	* hppah-nat.c: Include "gdb_string.h".
	(parent_attach_all): Delete extern declaration, moved to
	"infttrace.h".
	(hppa_can_use_hw_watchpoint): Change type of "type" parameter to
	int.
	(hppa_remove_hw_watchpoint, hppa_insert_hw_watchpoint): Ditto.
	* Makefile.in (infttrace_h): Define.
	(hpread.o): Update dependencies.
	(hppah-nat.o, hppa-hpux-tdep.o, hppa-tdep.o): Ditto.
	* hppa-hpux-tdep.c: Include "gdb_string.h".
	* hppa-tdep.c (hppa_frame_saved_pc): Initialize "old_pc".
	* infrun.c (handle_inferior_event): Always initialize
	stepped_after_stopped_by_watchpoint.  Add default and remove
	fallthrough in switch statement.
	* infttrace.c (hppa_can_use_hw_watchpoint): Change type of "type"
	parameter to int.
	(hppa_remove_hw_watchpoint): Ditto.

2003-03-29  Andrew Cagney  <cagney@redhat.com>

	* ns32k-tdep.c (ns32k_gdbarch_init): Set the call dummy breakpoint
	offset.

2003-03-29  Richard Earnshaw  <rearnsha@arm.com>

	* arm-tdep.c (arm_push_arguments): Delete.
	(struct stack_item): New type.
	(push_stack_item, pop_stack_item, arm_push_dummy_call): New functions.
	(arm_store_struct_return): Delte.
	(arm_gdbarch_init): Register arm_push_dummy_call.  Don't register
	arm_push_arguments or arm_store_struct_return.

2003-03-28  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (d10v-tdep.o): Update dependencies.
	* remote.h (target_resume_hook, target_wait_loop_hook): Declare.
	* d10v-tdep.c: Include "remote.h".
	(target_resume_hook): Delete extern declaration.
	(target_wait_loop_hook): Ditto.
	(tdisassemble_command): Eliminate assignment in "if" conditional.
	(d10v_ts2_register_sim_regno): Eliminate call to
	legacy_register_sim_regno.
	(d10v_ts3_register_sim_regno): Ditto.

2003-03-28  Jeff Johnston  <jjohnstn@redhat.com>

	* thread.c: Reindented.
	* lin-lwp.c: Ditto.
	* linux-proc.c: Ditto.

2003-03-28  Bob Rossi  <bob_rossi@cox.net>

        * MAINTAINERS (write after approval): Add myself.

2003-03-27  Theodore A. Roth  <troth@openavr.org>

	* objc-exp.y: Add missing semi-colons.

2003-03-27  Andrew Cagney  <cagney@redhat.com>

	* regcache.c (write_sp): Delete function and references.
	* inferior.h (write_sp): Delete declaration.
	* valops.c (hand_function_call): Replace write_sp with
	TARGET_WRITE_SP.
	* sparc-tdep.c (sparc_push_dummy_frame): Ditto.
	(sparc_pop_frame): Ditto.
	
2003-03-27  Andrew Cagney  <cagney@redhat.com>

	* NEWS: Mention removal of support for hppa*-*-bsd* and
	hppa*-*-osf* natives, and hppa*-*-pro* target.
	* config/pa/xm-hppah.h: Do not include "pa/xm-pa.h".
	* config/pa/xm-pa.h: Obsolete file.
	* config/pa/xm-hppab.h: Obsolete file.
	* config/pa/nm-hppab.h: Obsolete file.
	* config/pa/tm-hppab.h: Obsolete file.
	* config/pa/tm-hppao.h: Obsolete file.
	* config/pa/nm-hppao.h: Obsolete file.
	* config/pa/tm-pro.h: Obsolete file.
	* config/pa/hppaosf.mt: Obsolete file.
	* config/pa/hppaosf.mh: Obsolete file.
	* config/pa/hppapro.mt: Obsolete file.
	* config/pa/hppabsd.mt: Obsolete file.
	* config/pa/hppabsd.mh: Obsolete file.
	* configure.host: Disable hppa*-*-bsd* and hppa*-*-osf*.
	* configure.tgt: Disable hppa*-*-bsd*, hppa*-*-pro* and
	hppa*-*-osf*.

2003-03-27  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_gdbarch_init): Set push_dummy_call instead of
	push_arguments.  Don't set push_return_address or write_sp.
	(d10v_push_dummy_call): Replace d10v_push_arguments.
	(d10v_push_return_address, d10v_write_sp): Delete function,
	handled by push_dummy_call.

2003-03-26  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_PUSH_ARGUMENTS): Rename PUSH_ARGUMENTS.
	(push_dummy_call): New pure multi-arch replacement with gdbarch,
	regcache and dummy_addr parameters.
	* gdbarch.h, gdbarch.c: Re-generate.
	* valops.c (hand_function_call): Use gdbarch_push_dummy_call when
	available; assume it will handle stack alignment and return
	address issues.  Fall back to DEPRECATED_PUSH_ARGUMENTS and
	legacy_push_arguments.
	(legacy_push_arguments): Rename default_push_arguments.
	* value.h (legacy_push_arguments): Rename default_push_arguments.
	* i386-tdep.c (i386_push_arguments): Call legacy_push_arguments.
	* config/sparc/tm-sparc.h (DEPRECATED_PUSH_ARGUMENTS): Update.
	* config/sparc/tm-sp64.h (DEPRECATED_PUSH_ARGUMENTS): Update.
	* config/pa/tm-hppa.h (DEPRECATED_PUSH_ARGUMENTS): Update.
	* config/i386/tm-symmetry.h: Update.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* d10v-tdep.c (d10v_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* arm-linux-tdep.c (arm_linux_init_abi): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2003-03-26  Daniel Jacobowitz  <drow@mvista.com>

	* signals/signals.c (do_target_signal_to_host): Correct realtime
	signal range test.

2003-03-26  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (handle_gnu_4_16_catch_command, get_catch_sals)
	(struct sal_chain, map_catch_names): Remove.
	(catch_exception_command_1): Don't call
	handle_gnu_4_16_catch_command.

2003-03-26  Daniel Jacobowitz  <drow@mvista.com>

	From Mark Dettinger <dettinge@de.ibm.com>:
	* dwarf2cfi.c (read_2u): Increment pointer by two.

2003-03-26  Daniel Jacobowitz  <drow@mvista.com>

	* signals/signals.c: Fix typos in last change.

2003-03-26  Daniel Jacobowitz  <drow@mvista.com>

	* signals/signals.c (REALTIME_LO, REALTIME_HI): Define if
	not already defined.  Use __SIGRTMIN if available.
	(target_signal_from_host): Remove SIGRTMIN block.
	(do_target_signal_to_host): Remove SIGRTMIN block; check that
	the signal is within the realtime range.

2003-03-25  Adam Fedor  <fedor@gnu.org>

	* Makefile.in (infrun.o): Add $(language_h)
	* infrun.c (handle_inferior_event): Use skip_language_trampoline
	for language specific trampolines.
	* language.h (struct language_defn): Add skip_trampoline.
	(skip_language_trampoline): Declare.
	* language.c (unk_lang_trampoline, skip_language_trampoline):
	New functions.
	(unknown_language_defn, auto_language_defn, local_language_defn):
	Add ukn_lang_trampoline.
	* ada-lang.c (ada_language_defn): Add NULL for language
	specific skip_trampoline.
	* c-lang.c, f-lang.c, jv-lang.c, m2-lang.c, p-lang.c,
	scm-lang.c: Likewise.
	* objc-lang.c (objc_skip_trampoline): New function.
	(objc_language_defn): Add objc_skip_trampoline.

2003-03-25  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): Delay validating a frame's ID -
	non-NULL, didn't go backwards - until an attempt to unwind it to
	the previous frame.

2003-03-25  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED): Replace
	EXTRA_STACK_ALIGNMENT_NEEDED.  Default to 0 not 1.
	* gdbarch.h, gdbarch.c: Re-generate.
	* config/sparc/tm-sparc.h
	(DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED): Define.
	* sparc-tdep.c (sparc_gdbarch_init): Set
	deprecated_extra_stack_alignment_needed.
	* config/pa/tm-hppa.h (EXTRA_STACK_ALIGNMENT_NEEDED): Delete.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not clear
	extra_stack_alignment_needed.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	
2003-03-25  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_STORE_STRUCT_RETURN): Replace
	STORE_STRUCT_RETURN.
	* gdbarch.h, gdbarch.c: Regenerate.
	* d10v-tdep.c (d10v_store_struct_return): Delete function.
	(d10v_push_arguments): Set the struct return register.
	(d10v_gdbarch_init): Update.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	
2003-03-25  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (CALL_DUMMY_STACK_ADJUST_P): Delete.
	(DEPRECATED_CALL_DUMMY_STACK_ADJUST): Replace
	CALL_DUMMY_STACK_ADJUST with a predicate variable.
	* gdbarch.h, gdbarch.c: Regenerate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	call_dummy_stack_adjust_p.
	* vax-tdep.c (vax_gdbarch_init): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Ditto.
	* config/sparc/tm-sp64.h (CALL_DUMMY_STACK_ADJUST): Update.
	* config/sparc/tm-sparc.h (CALL_DUMMY_STACK_ADJUST): Update.
	* config/sparc/tm-sp64.h (CALL_DUMMY_STACK_ADJUST): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.  Do not set
	call_dummy_stack_adjust_p.
	* inferior.h (CALL_DUMMY_STACK_ADJUST_P): Delete macro.
	(CALL_DUMMY_STACK_ADJUST): Delete macro.
	* sparc-tdep.c (sparc32_push_arguments): Update.
	* valops.c (hand_function_call): Update.

2003-03-25  Corinna Vinschen  <vinschen@redhat.com>

	* xstormy16-tdep.c (xstormy16_gdbarch_init): Add call to
	set_gdbarch_char_signed.

2003-03-25  Richard Earnshaw  <rearnsha@arm.com>

	PR cli/548
	* arm-tdep.c (_initialize_arm_tdep): Command is "set arm disassembler".

2003-03-25  Richard Earnshaw  <rearnsha@arm.com>

	* arm-tdep.c (arm_gdbarch_init): Register the disassembler function.
	(_initialize_arm_tdep): Don't set tm_print_insn.

2003-03-24  Adam Fedor  <fedor@gnu.org>

	* Makefile.in (YYOBJ): Add objc-exp.tab.o
	* objc-lang.h: Add multiple inclusion protection.
	(start_msglist, add_msglist, end_msglist): Additional declarations.

2003-03-24  Richard Earnshaw  <rearnsha@arm.com>

	* armnbsd-tdep.c (arm_netbsd_aout_init_abi): ARM_FLOAT_SOFT enum
	value was renamed to ARM_FLOAT_SOFT_FPA.

2003-03-23  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_FRAME_CHAIN): Replace FRAME_CHAIN.
	(DEPRECATED_FRAME_CHAIN_VALID): Replace FRAME_CHAIN_VALID.
	* gdbarch.h, gdbarch.c: Regenerate.
	* valops.c (hand_function_call): Update.
	* objfiles.h (DEPRECATED_FRAME_CHAIN_VALID): Update.
	* frame.c (legacy_saved_regs_this_id): Update.
	(legacy_get_prev_frame, get_prev_frame, legacy_frame_p): Update.
	* dummy-frame.h: Update.
	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_CHAIN): Update.
	* config/pa/tm-hppa.h (DEPRECATED_FRAME_CHAIN_VALID): Update.
	* config/m68k/tm-vx68.h (DEPRECATED_FRAME_CHAIN): Update.
	* config/m68k/tm-os68k.h (DEPRECATED_FRAME_CHAIN): Update.
	* config/m68k/tm-sun3.h: Update.
	* blockframe.c (inside_main_func, frame_chain_valid): Update.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_frame_chain, sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_frame_saved_pc): Update.
	(rs6000_gdbarch_init, rs6000_frame_saved_pc): Update.
	(frame_get_saved_regs): Update.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_frame_num_args, i386_gdbarch_init): Update.
	* i386-interix-tdep.c (i386_interix_init_abi): Update.
	(i386_interix_back_one_frame): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	(hppa_init_extra_frame_info): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2003-03-22  Richard Earnshaw  <rearnsha@arm.com>

	* arm-tdep.h (arm_float_model): Add AUTO and LAST values.
	(arm_get_fp_model): Declare.
	* arm-tdep.c (fp_model_strings): New string array.
	(arm_fp_model, current_fp_model): New variables.
	(arm_get_fp_model): New function.
	(arm_set_fp): New function.
	(set_fp_model_sfunc): New function.
	(show_fp_model): New function.
	(_initialize_arm_tdep): Add new command to set/show the FPU.
	(arm_extract_return_value): Use arm_get_fp_model.
	(arm_store_return_value): Likewise.
	(arm_gdbarch_init): Default fpa model is softfpa.  Call arm_set_fp
	to initialize the floating-point data types.
	* arm-linux-tdep.c (arm_linux_init_abi): The default floating point
	model is FPA.

2003-03-22  Richard Earnshaw  <rearnsha@arm.com>

	* arm-tdep.c (show_arm_command): Don't print out help.  Instead, show
	the current setting of each value.
	(_initialize_arm_tdep): Delete variable new_cmd and add new vars
	new_set and new_show.  Use add_setshow_cmd_full and 
	add_setshow_boolean_cmd as appropriate.  Deprecate "set/show apcs32"
	commands and add new version as subcommands of "set/show arm".

2003-03-22  Richard Earnshaw  <rearnsha@arm.com>

	* arm-tdep.c (setarmcmdlist, showarmcmdlist): New command lists.
	(set_arm_command, show_arm_command): New functions.
	(_initialize_arm_tdep): Add them.
	(num_disassembly_options): Renamed from num_flavor_options.
	(valid_disassembly_styles): Renamed from valid_flavors.
	(disassembly_style): Renamed from disassembly_flavor.
	(set_disassembly_style_sfunc): Renamed from 
	set_disassembly_flavor_sfunc.
	(set_disassembly_style): Renamed from set_disassembly_flavor.
	(arm_othernames): Updated.
	(_initialize_arm_tdep): Deprecate "set/show disassembly-flavor"
	command.  Add "set/show arm disassembly" commands.  Deprecate
	"othernames" command.

2003-03-22  Richard Earnshaw  <rearnsha@arm.com>

	* Makefile.in (elf_reloc_macros_h, elf_arm_h): Define.
	(arm-tdep.o): Depend on elf_arm_h.

2003-03-22  Richard Earnshaw  <rearnsha@arm.com>

	* Makefile.in (coff_internal_h): Define.
	(arm-tdep.o): Update dependencies.

2003-03-22  Richard Earnshaw  <rearnsha@arm.com>

	* arm-tdep.c (prologue_cache): Delete.
	(check_prologue_cache, save_prologue_cache): Delete.
	(arm_scan_prologue): Don't check or update the prologue_cache.
	(arm_gdb_arch_init): Don't initialize it.
	(_initialize_arm_tdep): Likewise.

2003-03-21  Stephane Carrez  <stcarrez@nerim.fr>

	* MAINTAINERS (tui): Maintainer of tui code.

2003-03-21  Corinna Vinschen  <vinschen@redhat.com>

	* Makefile.in (ALLDEPFILES): Add i386-cygwin-tdep.c.
	(i386-cygwin-tdep.o): Add dependencies.
	* defs.h (enum gdb_osabi): Add GDB_OSABI_CYGWIN.
	* i386-cygwin-tdep.c: New file.
	* osabi.c (gdb_osabi_name): Add string for GDB_OSABI_CYGWIN.
	* config/i386/cygwin.mt (TDEPFILES): Add i386-cygwin-tdep.o.

2003-03-20  Andrew Cagney  <cagney@redhat.com>

	* infrun.c (DYNAMIC_TRAMPOLINE_NEXTPC): Delete macro.
	(handle_inferior_event): Remove code calling
	DYNAMIC_TRAMPOLINE_NEXTPC.

	* Makefile.in (init.c): Don't add $(srcdir) prefix when a file
	already has a full path.

	* main.c (gdb_main): Return 1.
	(captured_main): Call error to report an invalid interpreter.

	* Makefile.in (alpha-osf1-tdep.o): Update dependencies.
	* alpha-osf1-tdep.c: Include "gdb_string.h".

2003-03-19  J. Brobecker  <brobecker@gnat.com>

	Continuing work to convert the hppa targets to multiarch partial.

	* hppa-tdep.c (hppa_gdbarch_init): Set the push_dummy_frame gdbarch
	method, now that hppa_push_dummy_frame has a conformant prototype.
	* config/pa/tm-hppa.h (DEPRECATED_PUSH_DUMMY_FRAME): Wrap macro
	inside "#if !GDB_MULTI_ARCH ... #endif" conditional, in preparation
	for the switch to multiarch partial.

2003-03-19  Kevin Buettner  <kevinb@redhat.com>

	* mdebugread.c (parse_symbol): For stEnd, we're done counting
	when iss is issNull.

2003-03-18  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (mips_register_name): Fix fencepost error involving
	NUM_REGS bounds check.

2003-03-18  Kevin Buettner  <kevinb@redhat.com>

	* Makefile.in (mips-tdep.o): Add dependency on $(gdb_assert_h).
	* mips-tdep.c (gdb_assert.h): Include.
	(mips_generic_reg_names, mips_processor_reg_names): Make static.
	(mips_register_name): Handle integer registers explicitly.  Add
	bounds checking.
	(mips_r3041_reg_names, mips_r3051_reg_names, mips_r3081_reg_names)
	(mips_lsi33k_reg_names): Don't list integer registers; they're
	handled by mips_register_name() now.
	* config/mips/tm-irix3.h (MIPS_REGISTER_NAMES): Likewise.
	* config/mips/tm-irix6.h (MIPS_REGISTER_NAMES): Likewise.
	* config/mips/tm-mips.h (MIPS_REGISTER_NAMES): Likewise.
	* config/mips/tm-tx39.h (MIPS_REGISTER_NAMES): Likewise.
	* config/mips/tm-tx39l.h (MIPS_REGISTER_NAMES): Likewise.

2003-03-18  Andrew Cagney  <cagney@redhat.com>

	* printcmd.c (print_scalar_formatted): Change VALADDR parameter to
	a void pointer.
	* gdbtypes.h (print_scalar_formatted): Update declaration.
	* expression.h (enum exp_opcode): Remove non-ISO C trailing comma.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	* infrun.c (observer.h): Add #include.
	(normal_stop): Add call to observer_notify_normal_stop.
	* Makefile.in (infrun.o): Add dependency on observer.h.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	Continuing work to convert the hppa targets to multiarch partial.
	* hppa-tdep.c (hppa_push_dummy_frame): Remove unused function
	parameter. Reformat comment.
	* config/pa/tm-hppa.h (hppa_push_dummy_frame): Update profile.
	(DEPRECATED_PUSH_DUMMY_FRAME): Update call to hppa_push_dummy_frame()
	to match new profile.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	* hppa-tdep.c (hppa_push_dummy_frame): Remove hack which does not
	appear to be working in any case.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	* observer.c (observer_test_first_observer): New static variable.
	(observer_test_second_observer): Likewise.
	(observer_test_third_observer): Likewise.
	(observer_test_first_notification_function): New static function.
	(observer_test_second_notification_function): Likewise.
	(observer_test_third_notification_function): Likewise.

2003-03-17  J. Brobecker  <brobecker@gnat.com>

	* hppa-tdep.c (gdb_assert.h): Add missing #include.
	* somsolib.c (gdb_assert.h): Likewise.
	* Makefile.in (hppa-tdep.o): Add dependency on gdb_assert.h.
	(somsolib.o): Likewise.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	* disasm.c (gdb_disassembly): Set di.mach using the architecture's
	BFD.  Simplify setting of di.endian.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	* rs6000-tdep.c (ppc_floating_point_unit_p): New function.
	* ppc-tdep.h (ppc_floating_point_unit_p): Declare.

	From Elena Zannoni  <ezannoni@redhat.com>
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_arguments): Handle e500
	vector and floating-point parameters.
	(ppc_sysv_abi_use_struct_convention): Handle e500 struct return
	convention.
	(ppc_sysv_abi_broken_use_struct_convention): Ditto.

2003-03-17  Fernando Nasser  <fnasser@redhat.com>

	* MAINTAINERS: Remove my name from several maintainership roles.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	Fix frame off-by-one bug.
	* frame-unwind.h (frame_this_id_ftype): Replace
	frame_unwind_id_ftype.
	(frame_prev_register_ftype): Replace frame_unwind_reg_ftype.
	(struct frame_unwind): Replace "id" with "this_id".  Replace "reg"
	with "prev_register".
	* frame-unwind.c (frame_unwind_find_by_pc): Return
	legacy_saved_regs_unwind instead of trad_frame_unwind.  Update
	comment.
	* dummy-frame.c (cached_find_dummy_frame): Delete function.
	(dummy_frame_this_id): Replace dummy_frame_id_unwind.
	(dummy_frame_prev_register): Replace dummy_frame_register_unwind.
	(dummy_frame_unwind): Update.
	* sentinel-frame.c (sentinel_frame_prev_register): Replace
	sentinel_frame_register_unwind.
	(sentinel_frame_this_id): Replace sentinel_frame_id_unwind.
	(sentinel_frame_unwinder): Update.
	* frame.h (legacy_saved_regs_unwind): Replace trad_frame_unwind.
	(struct frame_info): Rename "unwind_cache" to "prologue_cache".
	* frame.c (create_sentinel_frame): Update. Initialize
	"prologue_cache" instead of "unwind_cache".
	(frame_register_unwind): Call this frame's prev_register with the
	next frame and this frame's prologue cache.
	(get_prev_frame): Simplify.  Always call prev frame's this_id with
	this frame and prev frame's prologue cache.  Document that this
	call is shifted one to the left when compared to the
	frame_register_unwind call.
	(legacy_saved_regs_prev_register): Replace
	frame_saved_regs_register_unwind.
	(legacy_saved_regs_this_id): Replace frame_saved_regs_id_unwind.
	(legacy_saved_regs_unwinder): Replace trad_frame_unwinder.
	(legacy_saved_regs_unwind): Replace trad_frame_unwind.
	* d10v-tdep.c (d10v_frame_this_id): Replace d10v_frame_id_unwind.
	(d10v_frame_unwind): Update.
	(d10v_frame_prev_register): Replace d10v_frame_register_unwind.
	(d10v_frame_unwind_cache): Replace this "fi" with "next_frame".
	(saved_regs_unwinder): Replace this "frame" with "next_frame", and
	"saved_regs" with "this_saved_regs".

2003-03-16  Andrew Cagney  <cagney@redhat.com>

	* frame.c (frame_pop): Don't call target_store_registers.  Fix
	problem reported by Mark Kettenis.

2003-03-16  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_register_type): Renamed from
	i386_register_virtual_type.  Adjust function signature.
	(i386_gdbarch_init): Set register_type instead of
	deprecated_max_register_raw_size,
	deprecated_max_register_virtual_size and register_virtual_type.

2003-03-14  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): When a legacy frame, always call
	legacy_get_prev_frame.  Simplify unwind code using assumption that
	the unwinder is new.
	(legacy_get_prev_frame): Handle legacy sentinel frame unwind here.
	(legacy_frame_p): When no gdbarch_unwind_dummy_id, or
	SAVED_DUMMY_FRAME_TOS, assume a legacy frame.

2003-03-14  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_saved_register): Delete function.
	* frame.h (get_saved_register): Delete declaration.
	* xstormy16-tdep.c: Update comment.
	* regcache.h: Update comments.
	* sparc-tdep.c (sparc_init_extra_frame_info): Instead of
	get_saved_register and extract_address, use
	frame_read_unsigned_register.
	(sparc_frame_saved_pc): Ditto.
	(sparc_get_saved_register): Instead of get_saved_register, use
	frame_register.
	(sparc_pop_frame): Ditto.
	* findvar.c: Update comments.
	(value_of_register): Call frame_register instead of
	get_saved_register.
	(value_from_register): Ditto.
	* config/sparc/tm-sparc.h: Update comment.
	* breakpoint.c: Update comment.

2003-03-14  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_GET_SAVED_REGISTER): Replace
	GET_SAVED_REGISTER.
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame.h: Update comments.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* frame.c (frame_register): Update.
	(get_saved_register): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_GET_SAVED_REGISTER): Update.
	
2003-03-13  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_POP_FRAME): Replace POP_FRAME.
	* gdbarch.h, gdbarch.c: Regenerate.
	* valops.c (hand_function_call): Update comment.
	* stack.c (return_command): Update comment.
	* config/sparc/tm-sparc.h (DEPRECATED_POP_FRAME): Update.
	* config/pa/tm-hppa.h (DEPRECATED_POP_FRAME): Update.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2003-03-13  Andrew Cagney  <cagney@redhat.com>

	* frame.c (legacy_frame_p): New function.
	(get_prev_frame): Use legacy_frame_p.
	* frame.h (legacy_frame_p): Declare.

2003-03-13  D. Venkatasubramanian <dvenkat@noida.hcltech.com>

        * MAINTAINERS (write after approval): Alphabetically
	listing corrected.

2003-03-13  D. Venkatasubramanian <dvenkat@noida.hcltech.com>

        * MAINTAINERS (write after approval): Add myself.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): Rename the frame parameter to
	"this_frame".
	(get_next_frame, legacy_get_prev_frame): Ditto.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_current_frame): Check target_has_registers before
	checking target_has_stack.
	* eval.c (evaluate_subexp_standard): Use get_selected_frame,
	instead of deprecated_selected_frame.
	* findvar.c (value_of_register): Pass "frame", not
	deprecated_selected_frame, to value_of_builtin_reg.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* regcache.c (regcache_cooked_write_signed): New function.
	(regcache_cooked_write_unsigned): New function.
	(regcache_cooked_read_unsigned): Fix regnum in range assertion.
	(regcache_cooked_read_signed): Fix regnum in range assertion.
	* regcache.h (regcache_cooked_write_signed): Declare.
	(regcache_cooked_write_unsigned): Declare.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_FRAME_SAVED_PC): Replace FRAME_SAVED_PC.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.h: Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* i386-interix-tdep.c (i386_interix_init_abi): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* sh-tdep.c (sh_init_extra_frame_info): Update.
	(sh64_init_extra_frame_info): Update.
	* ns32knbsd-nat.c (frame_num_args): Update.
	* m68hc11-tdep.c (m68hc11_init_extra_frame_info): Update.
	* xstormy16-tdep.c (xstormy16_pop_frame): Update.
	(xstormy16_frame_chain_valid): Update.
	* vax-tdep.c (vax_saved_pc_after_call): Update.
	* v850-tdep.c (v850_frame_chain): Update.
	(v850_pop_frame): Update.
	(v850_init_extra_frame_info): Update.
	* sparc-tdep.c (setup_arbitrary_frame): Update.
	* ns32k-tdep.c (umax_frame_num_args): Update.
	* s390-tdep.c (s390_pop_frame_regular): Update.
	* mn10300-tdep.c (mn10300_frame_chain): Update.
	(mn10300_pop_frame_regular): Update.
	(mn10300_init_extra_frame_info): Update.
	* mips-tdep.c (mips_init_frame_pc_first): Update.
	(mips_frame_chain): Update.
	(mips_pop_frame): Update.
	* mcore-tdep.c (mcore_frame_chain): Update.
	(mcore_pop_frame): Update.
	(mcore_init_extra_frame_info): Update.
	* arch-utils.c (init_frame_pc_default): Update.
	* m68k-tdep.c (isi_frame_num_args): Update.
	(delta68_frame_num_args): Update.
	(news_frame_num_args): Update.
	* ia64-tdep.c (ia64_pop_frame_regular): Update.
	* alpha-tdep.c (alpha_init_frame_pc_first): Update.
	(alpha_frame_chain): Update.
	(alpha_pop_frame): Update.
	* hppa-tdep.c (hppa_saved_pc_after_call): Update.
	(hppa_init_extra_frame_info): Update.
	(hppa_frame_chain): Update.
	(hppa_frame_chain_valid): Update.
	* cris-tdep.c (cris_init_extra_frame_info): Update.
	* avr-tdep.c (avr_init_extra_frame_info): Update.
	* arm-tdep.c (arm_frame_chain_valid): Update.
	(arm_init_extra_frame_info): Update.
	(arm_pop_frame): Update.
	* frame.c (frame_pc_unwind): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_SAVED_PC): Update.
	(DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update.
	* config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update.
	
2003-03-12  Andrew Cagney  <cagney@redhat.com>

	Eliminate the need for POP_FRAME.
	* frame.c (do_frame_unwind_register): New function.
	(frame_pop): When no POP_FRAME, pop the frame using register
	unwind and a scratch regcache.
	(frame_saved_regs_pop): Delete function.
	(trad_frame_unwinder): Update.
	* d10v-tdep.c (d10v_frame_pop): Delete function.
	(d10v_frame_unwind): Update.
	* sentinel-frame.c (sentinel_frame_pop): Delete function.
	(sentinel_frame_unwinder): Update.
	* dummy-frame.c (dummy_frame_pop): Delete function.
	(dummy_frame_unwind): Update.
	* frame-unwind.h (frame_unwind_pop_ftype): Delete definition.
	(struct frame_unwind): Update.

2003-03-11  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (mips_ecoff_reg_to_regnum): Rename to
	mips_dwarf_dwarf2_ecoff_reg_to_regnum().
	(mips_dwarf_dwarf2_ecoff_reg_to_regnum, mips_stab_reg_to_regnum):
	Do range checks on register number obtained from debugging info.
	(mips_gdbarch_init): Call set_gdbarch_dwarf_reg_to_regnum() and
	set_gdbarch_dwarf2_reg_to_regnum().  Adjust call of
	set_gdbarch_ecoff_reg_to_regnum() to account for new name of
	mapping function.
	(do_fp_register_row): Fix typo which caused double type to be
	used when attempting to unpack a float.

2003-03-11  J. Brobecker  <brobecker@gnat.com>

	* breakpoint.c (bpstat_stop_status): Fix a small memory leak.

2003-03-11  Andrew Cagney  <cagney@redhat.com>

	* frame.c (deprecated_update_frame_pc_hack): Don't assume a next
	frame.  Problem found by Corinna Vinschen.

2003-03-11  Pierre Muller  <muller@ics.u-strasbg.fr>

	* doublest.c (floatformat_from_length): Accept also
	the real size of 'long double' type.

2003-03-10  Daniel Jacobowitz  <drow@mvista.com>

	From Klee Dienes <kdienes@apple.com>:
	* breakpoint.c (bpstat_copy): Copy the command lines as well
	as the old value, to match what is freed in bpstat_clear.

2003-03-10  David Carlton  <carlton@math.stanford.edu>

	* minsyms.c (add_minsym_to_hash_table): Replace
	DEPRECATED_SYMBOL_NAME by SYMBOL_LINKAGE_NAME.
	(compare_minimal_symbols, compact_minimal_symbols)
	(install_minimal_symbols, find_solib_trampoline_target): Ditto.
	(lookup_minimal_symbol_text): Use strcmp on linkage names instead
	of DEPRECATED_SYMBOL_MATCHES_NAME.
	(lookup_minimal_symbol_solib_trampoline): Ditto.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* regcache.h (regcache_cooked_read_ftype): Define.
	(regcache_save, regcache_restore): Add a cooked_read parameter.
	* regcache.c (regcache_save, regcache_restore): Update.
	(do_cooked_read): New function.
	(regcache_cpy): Pass do_cooked_read to regcache_save and
	regcache_restore.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_FRAME_SAVED_PC): Replace FRAME_SAVED_PC.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.h: Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* i386-interix-tdep.c (i386_interix_init_abi): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* sh-tdep.c (sh_init_extra_frame_info): Update.
	(sh64_init_extra_frame_info): Update.
	* ns32knbsd-nat.c (frame_num_args): Update.
	* m68hc11-tdep.c (m68hc11_init_extra_frame_info): Update.
	* xstormy16-tdep.c (xstormy16_pop_frame): Update.
	(xstormy16_frame_chain_valid): Update.
	* vax-tdep.c (vax_saved_pc_after_call): Update.
	* v850-tdep.c (v850_frame_chain): Update.
	(v850_pop_frame): Update.
	(v850_init_extra_frame_info): Update.
	* sparc-tdep.c (setup_arbitrary_frame): Update.
	* ns32k-tdep.c (umax_frame_num_args): Update.
	* s390-tdep.c (s390_pop_frame_regular): Update.
	* mn10300-tdep.c (mn10300_frame_chain): Update.
	(mn10300_pop_frame_regular): Update.
	(mn10300_init_extra_frame_info): Update.
	* mips-tdep.c (mips_init_frame_pc_first): Update.
	(mips_frame_chain): Update.
	(mips_pop_frame): Update.
	* mcore-tdep.c (mcore_frame_chain): Update.
	(mcore_pop_frame): Update.
	(mcore_init_extra_frame_info): Update.
	* arch-utils.c (init_frame_pc_default): Update.
	* m68k-tdep.c (isi_frame_num_args): Update.
	(delta68_frame_num_args): Update.
	(news_frame_num_args): Update.
	* ia64-tdep.c (ia64_pop_frame_regular): Update.
	* alpha-tdep.c (alpha_init_frame_pc_first): Update.
	(alpha_frame_chain): Update.
	(alpha_pop_frame): Update.
	* hppa-tdep.c (hppa_saved_pc_after_call): Update.
	(hppa_init_extra_frame_info): Update.
	(hppa_frame_chain): Update.
	(hppa_frame_chain_valid): Update.
	* cris-tdep.c (cris_init_extra_frame_info): Update.
	* avr-tdep.c (avr_init_extra_frame_info): Update.
	* arm-tdep.c (arm_frame_chain_valid): Update.
	(arm_init_extra_frame_info): Update.
	(arm_pop_frame): Update.
	* frame.c (frame_pc_unwind): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_SAVED_PC): Update.
	(DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update.
	* config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update.
	
2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (gdbarch_unwind_pc): New method.
	* gdbarch.h, gdbarch.c: Regenerate.
	* frame.c (frame_pc_unwind): Rewrite.  Prefer gdbarch_unwind_pc,
	but use read_pc and FRAME_SAVED_PC as fall backs.
	(frame_saved_regs_pc_unwind): Delete function.
	(trad_frame_unwinder): Update.
	* frame-unwind.h (frame_unwind_pc_ftype): Delete declaration.
	(struct frame_unwind): Update.
	* dummy-frame.c (dummy_frame_pc_unwind): Delete function.
	(dummy_frame_unwind): Update.
	* sentinel-frame.c (sentinel_frame_pc_unwind): Delete function.
	(sentinel_frame_unwinder): Update.
	* d10v-tdep.c (d10v_frame_pc_unwind): Delete function.
	(d10v_frame_unwind): Update.
	(d10v_unwind_pc): New function.
	(d10v_gdbarch_init): Set unwind_pc.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.h: Re-generate.

	* d10v-tdep.c (d10v_frame_register_unwind): Correctly unwind the
	PC.
	(d10v_frame_pop): Unwind the PC, and not the LR, when restoring
	the PC register.

2003-03-08  Mark Kettenis  <kettenis@gnu.org>

	* gdbarch.sh (save_dummy_frame_tos): Add comment.

2003-03-08  Andrew Cagney  <cagney@redhat.com>

	* cli-out.c: Update copyright.
	(cli_out_data): Define typedef.  Use instead of ui_out_data.

2003-03-08  Andrew Cagney  <cagney@redhat.com>

	* valarith.c (value_subscripted_rvalue): Copy the array's REGNO to
	the result.

2003-03-07  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh: Don't generate two macro definitions when an
	undefined macro taking no arguments.
	* gdbarch.h: Regenerate.
	
2002-03-07  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-tdep.c (x86_64_save_dummy_frame_tos)
	(x86_64_unwind_dummy_id): New functions.
	(x86_64_init_abi): Register these two new functions.

2003-03-07  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-tdep.c (x86_64_function_has_prologue): New function.
	(x86_64_skip_prologue): Move prologue detection to 
	separate function.
	* x86-64-tdep.h (x86_64_function_has_prologue): New prototype.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_unwind_dummy_id): New function.
	(d10v_gdbarch_init): Set unwind_dummy_id and save_dummy_frame_tos.
	* frame.c (get_prev_frame): Restructure the frame ID unwind code
	to use unwind_dummy_id when a dummy frame.
	* gdbarch.sh (unwind_dummy_id): New multi-arch method with
	predicate.
	* gdbarch.h, gdbarch.c: Regneerate.
	
2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (struct d10v_unwind_cache): Add field "base".
	(d10v_frame_unwind_cache): Rewrite code computing the base and SP.
	Do not use d10v_read_sp or d10v_read_fp when obtaining register
	values.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (struct frame_extra_info): Delete unused structure.
	(struct d10v_unwind_cache): Delete field "frameless".  Replace
	"next_addr" with "sp_offset".  Add "r11_offset".
	(d10v_frame_unwind_cache): Update.
	(prologue_find_regs): Update.  When "mv r11, sp", save the
	"sp_offset" in "r11_offset".  Recognize "st rn, @r11", note that
	RN was saved in r11_offset.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* frame.c (deprecated_update_frame_pc_hack): Also update the the
	cached PC value in the next frame.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* frame.h (struct frame_info): Replace "id_unwind_cache_p" and
	"id_unwind_cache" with "id".
	(frame_id_unwind): Delete declaration.
	* frame.c (frame_id_unwind): Delete function.
	(get_prev_frame): Call the frame id unwind method directly.  Store
	the returned next frame's ID value in NEXT_FRAME.  Note that there
	is a problem with the wrong unwind ID being called with the wrong
	unwind cache.

2003-03-05  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (FLAGS_TO_PASS): Add LDFLAGS.

2003-03-05  James Ingham <jingham@apple.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* cp-abi.c: Include "command.h", "gdbcmd.h", and "ui-out.h".
	(auto_cp_abi): New variable.
	(current_cp_abi, num_cp_abis): Make static.
	(CP_ABI_MAX): Define.
	(cp_abis): Turn into an array.
	(value_virtual_fn_field): Fix formatting.
	(switch_to_cp_abi, register_cp_abi): Update.  register_cp_abi now
	takes a pointer.
	(set_cp_abi_as_auto_default, set_cp_abi_cmd, show_cp_abi_cmd)
	(list_cp_abis, _initialize_cp_abi): New functions.
	* cp-abi.h: Add prototype for set_cp_abi_as_auto_default.  Remove
	declarations for cp_abis, num_cp_abis, current_cp_abi, and
	switch_to_cp_abi.  Update prototype for register_cp_abi.
	* Makefile.in (cp-abi.o): Update dependencies.
	* minsyms.c (install_minimal_symbols): Call set_cp_abi_as_auto_default
	instead of switch_to_cp_abi.
	* gnu-v2-abi.c (_initialize_gnu_v2_abi): Likewise.  Update call to
	register_cp_abi.
	* gnu-v3-abi.c (_initialize_gnu_v3_abi): Update call to
	register_cp_abi.
	* hpacc-abi.c (_initialize_hpacc_abi): Likewise.

2003-03-05  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2expr.c (new_dwarf_expr_context): Add (void) to definition.
	* dwarf2loc.c: Include "regcache.h".
	(dwarf_expr_read_reg): Rename regnum argument to dwarf_regnum.  Use
	register_size.
	* Makefile.in (dwarf2loc.o): Update dependencies.

2003-03-04  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_io_reg_read_command): Fix to handle case when the
	number of io registers reported by remote target is not a multiple of
	step.

2003-03-04  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (lookup_partial_symbol): Add linkage_name argument.
	(lookup_symbol_aux_psymtabs): Update call to
	lookup_partial_symbol.
	(lookup_transparent_type, find_main_psymtab)
	(make_symbol_overload_list): Ditto.

2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS (Write after approval): Update my email address.

2003-03-03  Andrew Cagney  <cagney@redhat.com>

	Make MAX_REGISTER_RAW_SIZE and MAX_REGISTER_VIRTUAL_SIZE optional.
	* gdbarch.sh (DEPRECATED_MAX_REGISTER_RAW_SIZE): Variable with
	predicate.  Replace MAX_REGISTER_RAW_SIZE.
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto for
	MAX_REGISTER_VIRTUAL_SIZE.
	* regcache.c (legacy_max_register_raw_size): New function.
	(legacy_max_register_virtual_size): New function.
	* defs.h (MAX_REGISTER_VIRTUAL_SIZE): Define.
	(MAX_REGISTER_RAW_SIZE): Define.
	(legacy_max_register_raw_size): Declare.
	(legacy_max_register_virtual_size): Declare.
	* config/sparc/tm-sparc.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Update.
	* config/sparc/tm-sp64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto.
	* config/pa/tm-hppa.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto.
	* config/pa/tm-hppa64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
	* config/ia64/tm-ia64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
	* config/i386/tm-ptx.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* d10v-tdep.c (d10v_gdbarch_init): Do not set
	max_register_raw_size or max_register_virtual_size.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (DEPRECATED_SYMBOL_MATCHES_NAME): Rename from
	SYMBOL_MATCHES_NAME, add comment.
	(SYMBOL_MATCHES_NATURAL_NAME): New.
	* minsyms.c (lookup_minimal_symbol_solib_trampoline): Replace
	SYMBOL_MATCHES_NAME with DEPRECATED_SYMBOL_MATCHES_NAME.
	(lookup_minimal_symbol, lookup_minimal_symbol_text): Ditto.
	* symtab.c (lookup_partial_symbol): Use
	SYMBOL_MATCHES_NATURAL_NAME, not SYMBOL_MATCHES_NAME.  Delete
	unhelpful comment.
	(lookup_block_symbol): Use SYMBOL_MATCHES_NATURAL_NAME, not
	SYMBOL_MATCHES_NAME.
	Fix for PR c++/33.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (SYMBOL_MATCHES_REGEXP): Delete.
	* symtab.c (search_symbols): Replace uses of SYMBOL_MATCHES_REGEXP
	by regexp matching against SYMBOL_NATURAL_NAME.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (find_method): Extract code into collect_methods.
	(collect_methods): New.

2003-03-02  Mark Kettenis  <kettenis@gnu.org>

	* i386bsd-tdep.c (i386bsd_sigcontext_addr): Use get_next_frame and
	get_frame_base.

	* i386-tdep.c (i386_pe_skip_trampoline_code): Replace usage of
	DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME.

2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>

	* arch-utils.c (generic_register_byte): Fix to use the loop index 
	and not regnum when summing the size of all registers up to regnum.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename
	FRAME_INIT_SAVED_REGS.
	* gdbarch.h, gdbarch.c: Regenerate.
	* stack.c (frame_info): Update.
	* sh-tdep.c (sh_find_callers_reg, sh64_get_saved_pr): Update.
	(sh_init_extra_frame_info, sh64_init_extra_frame_info): Update.
	(sh64_get_saved_register, sh_pop_frame, sh64_pop_frame): Update.
	* ns32k-tdep.c (ns32k_pop_frame): Update.
	* mips-tdep.c (mips_pop_frame): Update.
	* m68hc11-tdep.c (m68hc11_pop_frame): Update.
	* ia64-tdep.c (ia64_frame_chain): Update.
	(ia64_frame_saved_pc, ia64_get_saved_register): Update.
	(ia64_frameless_function_invocation): Update.
	(ia64_init_extra_frame_info): Update.
	(ia64_pop_frame_regular): Update.
	* frame.h (struct frame_info): Update comment.
	(DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro.
	* frame.c (frame_saved_regs_register_unwind): Update.
	(frame_saved_regs_register_unwind): Update.
	(deprecated_generic_get_saved_register): Update.
	* cris-tdep.c: Update comment.
	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_INIT_SAVED_REGS):
	Rename macro.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	
2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* main.c (captured_main): Add OPT_WINDOWS and OPT_NOWINDOWS to
	option enum and switch.  When no windows, set the interpreter to
	INTERP_CONSOLE.
	
2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* main.c (captured_main): Replace magic option characters with an
	enum.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename
	INIT_EXTRA_FRAME_INFO.
	* gdbarch.h, gdbarch.c: Regenerate.
	* arm-tdep.c: Update comments.
	* sh-tdep.c, mcore-tdep.c, m68hc11-tdep.c: Ditto.
	* i386-interix-tdep.c, hppa-tdep.c, h8300-tdep.c: Ditto.
	* frame.h, avr-tdep.c: Ditto.
	* frame.c (get_prev_frame): DEPRECATED_INIT_EXTRA_FRAME_INFO.
	(create_new_frame, legacy_get_prev_frame): Ditto.
	* config/sparc/tm-sparc.h (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename.
	* config/pa/tm-hppa.h (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Initialize
	deprecated_init_extra_frame_info instead of init_extra_frame_info.
	* x86-64-tdep.c (x86_64_init_abi): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-interix-tdep.c (i386_interix_init_abi): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (register_type): New function with predicate.
	(REGISTER_VIRTUAL_TYPE): Change to function with predicate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arch-utils.c (generic_register_byte): Use generic_register_size.
	(generic_register_size): When available, use
	gdbarch_register_type.
	* regcache.c (init_regcache_descr): When available, initialize the
	register type array using gdbarch_register_type.  If the
	architecture supplies gdbarch_register_type, do not use the legacy
	regcache layout.
	* d10v-tdep.c (d10v_register_type): Replace
	d10v_register_virtual_type.
	(d10v_gdbarch_init): Set register_type instead of
	register_virtual_type.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (ax-gdb.o): Update dependencies.
	* ax-gdb.c: Include "regcache.h".
	(gen_expr): Use register_type instead of REGISTER_VIRTUAL_TYPE.
	* findvar.c (value_of_register): Ditto.
	* infcmd.c (default_print_registers_info): Ditto.

2003-03-01  Mark Kettenis  <kettenis@gnu.org>

	* i386-linux-tdep.c (find_minsym_and_objfile): Replace usage of
	DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME.

2003-03-01  Mark Kettenis  <kettenis@gnu.org>

	* i386-linux-tdep.c (find_minsym_and_objfile): Use strcmp instead
	of STREQ.

2003-02-28  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (dwarf2loc.o): Update dependencies.
	* ax-gdb.c (gen_var_ref): Handle LOC_COMPUTED and LOC_COMPUTED_ARG.
	* dwarf2expr.c (read_uleb128, read_sleb128): Make non-static.
	* dwarf2expr.h (read_uleb128, read_sleb128): Add prototypes.
	* dwarf2loc.c: Include "ax.h" and "ax-gdb.h".
	(locexpr_tracepoint_var_ref): New function.
	(dwarf2_locexpr_funcs): Add locexpr_tracepoint_var_ref.

2003-02-28  Andrew Cagney  <cagney@redhat.com>

	* regcache.c (register_size): New function.
	* regcache.h (register_size): Declare
	* d10v-tdep.c: Use register_size instead of REGISTER_RAW_SIZE, use
	max_register_size instead of MAX_REGISTER_RAW_SIZE.

2003-02-28  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_compound): Extract code into find_method.
	(find_method): New.

2003-02-28  J. Brobecker  <brobecker@gnat.com>

	* Makefile.in: Add rules to build and link in observer.o.

2003-02-27  J. Brobecker  <brobecker@gnat.com>

	* observer.c: Minor comments edits.

2003-02-27  J. Brobecker  <brobecker@gnat.com>

	* observer.h, observer.c: New file.

2003-02-27  Andrew Cagney  <cagney@redhat.com>

	* arm-tdep.c (gdb_print_insn_arm): Rename _bfd to just bfd.

2003-02-27  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (M6811_OP_LDX_EXT, M6811_OP_STS_EXT): New defines.
	(M6812_OP_STS_EXT): Likewise.
	(m6811_prologue): Use the above to recognize prologue.
	(m6812_prologue): Likewise.

2003-02-27  David Carlton  <carlton@math.stanford.edu>

	* symfile.c (compare_symbols): Use SYMBOL_NATURAL_NAME, not
	SYMBOL_PRINT_NAME.
	(compare_psymbols): Ditto.
	* symtab.c (lookup_partial_symbol, lookup_block_symbol): Ditto.

2003-02-27  Michael Snyder  <msnyder@redhat.com>

	* f-lang.c (build_fortran_types): New function.
	(_initialize_f_language): Gdbarch-register built-in fortran types.
	* doublest.c (extract_floating): Fix warning text.

2003-02-27  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_PUSH_DUMMY_FRAME): Procedure with
	predicate.  Replaces PUSH_DUMMY_FRAME.
	* gdbarch.h, gdbarch.c: Regnerate.
	* valops.c (hand_function_call): Update.  Call
	generic_push_dummy_frame directly.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_PUSH_DUMMY_FRAME): Update.
	* config/pa/tm-hppa.h (DEPRECATED_PUSH_DUMMY_FRAME): Update.
	* inferior.h (PUSH_DUMMY_FRAME): Delete definition.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Don't set
	push_dummy_frame to generic_push_dummy_frame.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	
2003-02-26  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (show_mips_abi): New function.
	(_initialize_mips_tdep): Use show_mips_abi() to implement the
	command ``show mips abi''.

2003-02-26  Jeff Johnston  <jjohnstn@redhat.com>
 
	From Elena Zannoni  <ezannoni@redhat.com>
	* dbxread.c (process_one_symbol): Only record line 0 if one or 
	more sline entries have been seen for the function.

2003-02-26  Michael Chastain  <mec@shout.net>

	* configure: Regenerate with autoconf 000227.

2003-02-26  Michael Chastain  <mec@shout.net>

	Close PR build/660.
	* PROBLEMS (i[3456]86-*-linux*): Note explicit error message
	for old libc5/glibc.
	* gdb_thread_db.h: Die if not HAVE_UINTPTR_T.

2003-02-26  Kris Warkentin  <kewarken@qnx.com>

	* defs.h (gdb_osabi): Add GDB_OSABI_QNXNTO.
	* osabi.c (gdb_osabi_names): Add "QNX Neutrino".

2003-02-26  Michael Chastain  <mec@shout.net>

	* configure.in: New variable HAVE_UINTPTR_T.
	* configure, config.in: Regenerated.

2003-02-26  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR build/1097.
	* utils.c (gdb_realpath): Move closing brace outwards one #endif.

2003-02-25  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): Add comment on check for
	inside_entry_func. Only check for inside_entry_file when not a
	dummy and not a sentinel.  Check that the new frame is not inner
	to the old frame.

2003-02-25  Andrew Cagney  <cagney@redhat.com>

	* frame.c (frame_debug): New variable.
	(_initialize_frame): Add "set/show debug frame" command.
	(get_prev_frame): When frame_debug, print reason why unwind
	failed.

2003-02-25  Michael Chastain  <mec@shout.net>

	* PROBLEMS (i[3456]86-*-linux*): Require glibc 2.1.3 or later
	to avoid uintptr_t definition problems.

2003-02-25  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (SYMBOL_NATURAL_NAME): New macro.
	(SYMBOL_LINKAGE_NAME): Ditto.
	(SYMBOL_PRINT_NAME): Use SYMBOL_NATURAL_NAME and
	SYMBOL_LINKAGE_NAME.
	(struct general_symbol_info): Expand comment.
	(DEPRECATED_SYMBOL_NAME): Rename from SYMBOL_NAME.
	(SYMBOL_MATCHES_NAME): Use DEPRECATED_SYMBOL_NAME.
	(SYMBOL_MATCHES_REGEXP): Ditto.
	* symtab.c (symbol_natural_name): New function.
	* objfiles.h: Replace all uses of SYMBOL_NAME by
	DEPRECATED_SYMBOL_NAME.
	* xcoffread.c, valops.c, typeprint.c, tracepoint.c: Ditto.
	* symtab.c, symmisc.c, symfile.c, stack.c, stabsread.c: Ditto.
	* somsolib.c, sol-thread.c, rs6000-tdep.c, p-valprint.c: Ditto.
	* printcmd.c, objfiles.c, objc-lang.c, mipsread.c: Ditto.
	* minsyms.c, mdebugread.c, linespec.c, jv-lang.c: Ditto.
	* i386-tdep.c, i386-linux-tdep.c, hpread.c, hppa-tdep.c: Ditto.
	* gnu-v2-abi.c, f-valprint.c, findvar.c, expprint.c: Ditto.
	* dwarfread.c, dwarf2read.c, dbxread.c, c-valprint.c: Ditto.
	* cp-valprint.c, coffread.c, buildsym.c, breakpoint.c: Ditto.
	* blockframe.c, ax-gdb.c, arm-linux-tdep.c, ada-lang.c: Ditto.
	* ada-exp.y: Ditto.
	* ada-exp.y: Update copyright.
	* sol-thread.c, mipsread.c, jv-lang.c, f-valprint.c: Ditto.
	* cp-valprint.c: Ditto.

2003-02-25  Jeff Johnston  <jjohnstn@redhat.com>

	* infptrace.c (detach): Do not flag error if ptrace detach fails
	and errno is set to ESRCH.

2003-02-24  Andrew Cagney  <cagney@redhat.com>

	* infptrace.c (udot_info): Change type of udot_off to long.  Use
	paddr when printing udot_off's value.

2003-02-24  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (make_symbol_overload_list): Only read in partial
	symtabs containing a matching partial symbol.

2003-02-24  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (lookup_partial_symbol): Use strcmp_iw_ordered to
	do the comparison, not strcmp.
	* symfile.c (compare_psymbols): Ditto.
	* defs.h: Declare strcmp_iw_ordered.
	* utils.c (strcmp_iw_ordered): New function.

2003-02-24  Jim Blandy  <jimb@redhat.com>

	* MAINTAINERS (GNU/Linux/x86, linespec, breakpoints, Scheme
	support, shared libs): Remove my name from here, to better reflect
	reality.

2003-02-24  Kris Warkentin  <kewarken@qnx.com>

	* target.h: (HAVE_CONTINUABLE_WATCHPOINT): Define.
	(target_ops): Add to_have_continuable_watchpoint.
	* target.c (update_current_target): Add INHERIT line for
	to_have_continuable_watchpoint.
	* infrun.c: Remove HAVE_CONTINUABLE_WATCHPOINT defines.
	* config/i386/nm-i386.h, config/i386/nm-i386sco5.h,
	config/i386/nm-i386sol2.h, config/s390/nm-linux.h,
	config/sparc/nm-sun4sol2.h: HAVE_CONTINUABLE_WATCHPOINT defined as 1.

2003-02-24  Elena Zannoni  <ezannoni@redhat.com>

	* MAINTAINERS (Core): Drop main.c and top.c. Clarify event loop
	maintainership.

2003-02-24  Kris Warkentin  <kewarken@qnx.com>

	* solib.c (solib_open): Call target defined search function after
	failing with solib-search-path.
	* solist.h (target_so_ops): Add find_and_open_solib function hook and
	create define TARGET_SO_FIND_AND_OPEN_SOLIB.

2003-02-24  Kris Warkentin  <kewarken@qnx.com>

	* MAINTAINERS: Add myself to Write After section.

2003-02-23  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (m68hc11_gdbarch_init): long double is 64-bit wide.

2003-02-22  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (m68hc11_init_reggroups): New function.
	(m68hc11_add_reggroups): New function.
	(m68hc11_register_reggroup_p): New to register hard/soft reggroups.
	(m68hc11_gdbarch_init): Install the reggroups.
	(_initialize_m68hc11_tdep): Initialize them.

2003-02-21  James E Wilson  <wilson@tuliptree.org>

	* MAINTAINERS: Update my email address.

2003-02-21  David Carlton  <carlton@math.stanford.edu>

	* arm-tdep.c (arm_gdbarch_init): Add break after default label.

2003-02-21  Daniel Jacobowitz  <drow@mvista.com>

	Based on a patch from Daniel Berlin (dberlin@dberlin.org).
	* symtab.h: Add opaque declarations of struct axs_value and
	struct agent_expr.
	(enum address_class): Add LOC_COMPUTED and LOC_COMPUTED_ARG.
	(struct location_funcs): New type.
	(struct symbol): Add "loc" to aux_value.
	(SYMBOL_LOCATION_BATON, SYMBOL_LOCATION_FUNCS): New macros.
	* dwarf2read.c: Include "dwarf2expr.h".
	(dwarf2_symbol_mark_computed): New function.
	(read_func_scope): Use it.
	(var_decode_location): New function.
	(new_symbol): Use it.
	* dwarf2expr.c, dwarf2expr.h, dwarf2loc.c, dwarf2loc.h: New files.

	* Makefile.in (SFILES): Add dwarf2loc.c and dwarf2expr.c.
	(dwarf2expr_h, dwarf2loc_h): New variables.
	(COMMON_OBS): Add dwarf2expr.o and dwarf2loc.o.
	(dwarf2expr.o, dwarf2loc.o): New rules.
	(dwarf2read.o): Add $(dwarf2expr_h) and $(dwarf2loc_h).
	* buildsym.c (finish_block): Handle LOC_COMPUTED and
	LOC_COMPUTED_ARG.
	* findvar.c (symbol_read_needs_frame, read_var_value): Likewise.
	* m2-exp.y (yylex): Likewise.
	* printcmd.c (address_info, print_frame_args): Likewise.
	* stack.c (print_block_frame_locals, print_frame_arg_vars): Likewise.
	* symmisc.c (print_symbol, print_partial_symbols): Likewise.
	* ada-lang.c (ada_resolve_subexp, symtab_for_sym)
	(ada_add_block_symbols, fill_in_ada_prototype): Likewise.
	* symtab.c (lookup_block_symbol): Likewise.

2003-02-20  Adam Fedor  <fedor@gnu.org>

	* symtab.h: Remove objc_specific struct
	(SYMBOL_OBJC_DEMANGLED_NAME): Remove.
	* symtab.c (symbol_init_language_specific, symbol_demangled_name):
	Have language_objc use cplus_specific struct.

2003-02-20  Tom Tromey  <tromey@redhat.com>

	* jv-valprint.c (java_value_print): Look at TYPE_TAG_NAME, not
	TYPE_NAME, when printing a String value.  PR java/1075.

2003-02-20  Adam Fedor  <fedor@gnu.org>

	* objc-lang.h (find_methods): Remove declaration.
        * objc-lang.c (find_methods): Make static.

2003-02-20  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c (get_image_name): Check return value from
	ReadProcessMemory.
	(child_xfer_memory): Ditto.

2003-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (TARGET_SYSTEM_ROOT): Set default to
	${exec_prefix}/${target_alias}/sys-root.  Match explicit
	'${exec_prefix}' (in addition to the expansion thereof) as
	relocatable.
	* configure: Rebuilt.

2003-02-20  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (search_symbols): Revert the search_symbols part of my
	2002-12-23 patch.  Add comment.

2002-02-20  Daniel Jacobowitz  <drow@mvista.com>

	* coffread.c (coff_symfile_read): Clean up minimal symbols earlier.
	* dbxread.c (elfstab_build_psymtabs): Don't call
	install_minimal_symbols.
	(stabsect_build_psymtabs): Likewise.
	* elfread.c (elf_symfile_read): Call install_minimal_symbols
	earlier.
	* somread.c (som_symfile_read): Call install_minimal_symbols
	and do_cleanups earlier.
	* nlmread.c (nlm_symfile_read): Likewise.
	* mdebugread.c (elfmdebug_build_psymtabs): Call
	install_minimal_symbols and make appropriate cleanups.

2003-02-20  Kevin Buettner  <kevinb@redhat.com>

	* solib.c (reload_shared_libraries): New function.
	(_initialize_solib): Add callbacks for ``set solib-search-path''
	and ``set solib-absolute-prefix''.

2003-02-20  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (SYMBOL_PRINT_NAME): Rename from SYMBOL_SOURCE_NAME;
	expand comment.
	* ada-lang.c (user_select_syms, ada_finish_decode_line_1): Replace
	SYMBOL_PRINT_NAME with SYMBOL_SOURCE_NAME.
	* ada-typeprint.c (ada_typedef_print): Ditto.
	* ax-gdb.c (gen_var_ref): Ditto.
	* breakpoint.c (print_one_breakpoint): Ditto.
	* buildsym.c (finish_block): Ditto.
	* c-valprint.c (c_val_print): Ditto.
	* expprint.c (print_subexp): Ditto.
	* findvar.c (locate_var_value): Ditto.
	* infcmd.c (jump_command): Ditto. 
	* linespec.c (decode_line_2, decode_compound): Ditto. 
	* maint.c (maintenance_translate_address): Ditto. 
	* objc-lang.c (compare_selectors, compare_classes): Ditto. 
	* printcmd.c (build_address_symbolic, sym_info, print_frame_args):
	Ditto.
	* p-valprint.c (pascal_val_print): Ditto. 
	* stabsread.c (define_symbol): Ditto. 
	* stack.c (print_frame, frame_info, print_block_frame_locals)
	(print_frame_arg_vars, return_command): Ditto. 
	* symfile.c (compare_symbols, compare_psymbols): Ditto. 
	* symmisc.c (print_symbol): Ditto. 
	* symtab.c (lookup_partial_symbol, lookup_block_symbol)
	(compare_search_syms, print_symbol_info, print_msymbol_info)
	(rbreak_command): Ditto. 
	* tracepoint.c (tracepoints_info): Ditto. 
	* typeprint.c (typedef_print): Ditto. 
	* valops.c (value_of_variable, hand_function_call): Ditto. 
	* cli/cli-cmds.c (edit_command, list_command): Ditto.
	* ada-typeprint.c: Update Copyright.
	* infcmd.c, objc-lang.c, p-valprint.c, symmisc.c: Ditto.
	* tracepoint.c, cli/cli-cmds.c: Ditto.

2003-02-20  Kevin Buettner  <kevinb@redhat.com>

	* frame.c (generic_unwind_get_saved_register): Make non-static.
	* frame.h (generic_unwind_get_saved_register): Declare.
	* mips-tdep.c (read_next_frame_reg): Fetch register from
	current regcache when frame is NULL.
	(mips_init_extra_frame_info): Pass NULL explicitly for parameter
	that must be NULL.
	(mips_get_saved_register): Call generic_unwind_get_saved_register()
	instead of frame_register_unwind().

2003-02-20  Andrew Cagney  <ac131313@redhat.com>

	* remote-sim.c (gdbsim_insert_breakpoint)
	(gdbsim_remove_breakpoint): Delete #ifdef SIM_HAS_BREAKPOINTS
	code.

2003-02-20  Andrew Cagney  <ac131313@redhat.com>

	* remote.c (_initialize_remote): Add commands "set/show remote
	hardware-watchpoint-limit" and "set/show remote
	hardware-breakpoint-limit".
	(remote_hw_watchpoint_limit): Initialize to -1.
	(remote_hw_breakpoint_limit): Ditto.
	(remote_check_watch_resources): Treat a limit of -1 as unlimited.

2003-02-19  Raoul Gough  <RaoulGough@yahoo.co.uk>

	* coff-pe-read.c: New file - support reading of minimal symbols from a
	portable executable using the export table.
	* coff-pe-read.h: New file.
	* coffread.c: Include coff-pe-read.h.
	(coff_symtab_read): Call read_pe_exported_syms iff no recognized
	debugging symbols found.
	* Makefile.in (SFILES): Add coff-pe-read.o.
	(coff_pe_read_h): Define.
	(COMMON_OBS): Add coff-pe-read.o.
	(coffread.o): Add coff_pe_read_h dependency.
	(coff-pe-read.o): New target.

2003-02-19  David Carlton  <carlton@math.stanford.edu>

	* Makefile.in (SFILES): Add block.c.
	(block_h): New.
	(COMMON_OBS): Add block.o.
	(block.o): New.
	(x86-64-tdep.o): Add $(block_h).
	(values.o, valops.o, tracepoint.o, symtab.o, symmisc.o, symfile.o)
	(stack.o, printcmd.o, p-exp.tab.o, parse.o, objfiles.o)
	(objc-exp.tab.o, objc-lang.o, nlmread.o, mips-tdep.o, mdebugread.o)
	(m2-exp.tab.o, linespec.o, jv-lang.o, jv-exp.tab.o, infcmd.o)
	(f-valprint.o, findvar.o, f-exp.tab.o, expprint.o, coffread.o)
	(c-exp.tab.o, buildsym.o, breakpoint.o, blockframe.o, ax-gdb.o)
	(alpha-tdep.o, ada-lang.o, ada-exp.tab.o, mi-cmd-stack.o): Ditto.
	* value.h: Add opaque declaration for struct block.
	* parser-defs.h, objc-lang.h, buildsym.h, breakpoint.h: Ditto.
	* ada-lang.h: Ditto.
	* x86-64-tdep.c: #include "block.h"
	* values.c, valops.c, tracepoint.c, symtab.c, symmisc.c: Ditto.
	* symfile.c, stack.c, printcmd.c, p-exp.y, parse.c: Ditto.
	* objfiles.c, objc-exp.y, objc-lang.c, nlmread.c: Ditto.
	* mips-tdep.c, mdebugread.c, m2-exp.y, linespec.c: Ditto.
	* jv-lang.c, jv-exp.y, infcmd.c, f-valprint.c: Ditto.
	* findvar.c, f-exp.y, expprint.c, coffread.c, c-exp.y: Ditto.
	* buildsym.c, breakpoint.c, blockframe.c, ax-gdb.c: Ditto.
	* alpha-tdep.c, ada-lang.c, ada-exp.y: Ditto.
	* blockframe.c (blockvector_for_pc_sect): Move to "block.c".
	(blockvector_for_pc, block_for_pc_sect, block_for_pc): Ditto.
	* symtab.c (block_function): Ditto.
	(contained_in): Ditto.
	* frame.h: Move block_for_pc and block_for_pc_sect declarations to
	block.h.  Add opaque declaration for struct block.
	* symtab.h: Move block_function and contained_in declarations to
	block.h.  Add opaque declarations for struct block, struct
	blockvector.
	(struct block): Move to block.h.
	(struct blockvector): Ditto.
	(BLOCK_START, BLOCK_END, BLOCK_FUNCTION, BLOCK_SUPERBLOCK)
	(BLOCK_GCC_COMPILED, BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM)
	(BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE)
	(ALL_BLOCK_SYMBOLS, BLOCK_SHOULD_SORT, BLOCKVECTOR_NBLOCKS)
	(BLOCKVECTOR_BLOCK, GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOCK):
	Ditto.
	* block.c: New file.
	* block.h: New file.

2003-02-19  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_extract_return_value): Remove function.
	(avr_store_return_value): Remove function.
	(avr_extract_struct_value_address): Remove function.
	(avr_gdbarch_init): Remove set_gdbarch_deprecated_*() calls.

2003-02-19  Andrew Cagney  <ac131313@redhat.com>

	* rs6000-tdep.c: Include "gdb_assert.h".
	(registers_e500): Add "acc" and "spefscr".
	(PPC_GPRS_PSEUDO_REGS): Remove trailing comma.
	(rs6000_gdbarch_init): Update initialization of ppc_gp0_regnum,
	ppc_gplast_regnum, sp_regnum and fp_regnum.  Check that gp0_regnum
	really is "r0".
	(registers_e500): Mark the "acc" as a 64 bit (from Jim Willson).

2003-02-18  Keith Seitz  <keiths@redhat.com>

	* Makefile.in: Add gdbtk-interps.c.

2003-02-18  Kevin Buettner  <kevinb@redhat.com>

	* sparc-tdep.c (sparc_frame_chain): Adjust return value.
	* config/sparc/tm-sparc.h (init_frame_pc_noop): Declare.

2003-02-18  Andrew Cagney  <cagney@redhat.com>

	* symtab.h (struct objfile): Add opaque declaration.

2003-02-18  Elena Zannoni  <ezannoni@redhat.com>

	From Jim Ingham   <jingham@apple.com>:
        * dbxread.c (process_one_symbol): Use last_function_start rather
        than function_start_offset to find the real beginning of the
        current function.  The latter is just the text section offset on
        some systems, the former is always the real function start.

2003-02-17  Andrew Cagney  <cagney@redhat.com>

	* configure.in: Revert ${target} != ${host}.

2003-02-17  Andrew Cagney  <ac131313@redhat.com>

	* configure.in (Makefile): Use the test ${target} != ${host},
	instead of the absence of the "nm.h" file, to determine of the
	configuration non-native.
	* configure: Regenerate.
	
2003-02-14  Elena Zannoni  <ezannoni@redhat.com>

        From Brian Ford  <ford@vss.fsi.com>

	* cli/cli-decode.c (lookup_cmd_composition) [TUI]: Properly
	conditionalize tui_active test.
	(lookup_cmd_1): Ditto.

2003-02-14  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Add check for _etext.
	* maint.c (maintenance_set_profile_cmd): Use etext if _etext isn't
	available.
	* config.in, configure: regenerated.

2003-02-14  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_get_pc_bounds): Offset addresses by base.

2003-02-14  Andrew Cagney  <ac131313@redhat.com>

	* main.c (tui_version): Delete variable.
	(captured_main): When --tui, set interpreter_p to "tui" instead of
	enabling tui_version.
	* printcmd.c (display_command) [TUI]: Test tui_active instead of
	tui_version.
	* cli/cli-decode.c (lookup_cmd_composition): Ditto.
	* cli/cli-cmds.c (disassemble_command): Ditto.
	* defs.h (tui_version): Delete declaration.
	* Makefile.in (SUBDIR_TUI_SRCS): Add "tui/tui-interp.c".
	(tui-interp.o): Add rules.
	(SUBDIR_TUI_OBS): Add "tui-interp.o".

2003-02-14  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c (register_loaded_dll): Correctly set address range for
	just-loaded dll.

2003-02-12  Jason Molenda  (jmolenda@apple.com)

        * symmisc.c (print_objfile_statistics): Include information about
        the number of psymtabs and symtabs in each object file.

2003-02-13  Keith R Seitz  <keiths@redhat.com>

	* main.h (struct captured_main_args): Add interpreter_p.
	* main.c (captured_main): Initialize interpreter_p from context.
	* gdb.c (main): Set interpreter_p argument.
	* Makefile.in (gdb.o): Add dependency for interps.h.

2003-02-12  Andrew Cagney  <ac131313@redhat.com>

	* event-top.c (cli_command_loop): Delete declaration.
	(_initialize_event_loop): Delete function setting event_loop_hook.
	* event-top.h (cli_command_loop): Declare.  Update copyright.
	(EVENT_TOP_H): Define.  Wrap header in #ifdef EVENT_TOP_H.
	* interps.c (current_interp_command_loop): When event_loop_p, call
	cli_command_loop.

2003-02-12  Andrew Cagney  <ac131313@redhat.com>

	* interps.h (interp_command_loop_ftype): Change return type to
	void.

2003-02-12  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-tdep.c (x86_64_extract_return_value)
	(x86_64_store_return_value): Use regcache instead of regbuf.
	(x86_64_gdbarch_init): Change related set_gdbarch_* functions.
	* x86-64-linux-nat.c (fill_gregset): Use regcache.

2003-02-11  Andrew Cagney  <ac131313@redhat.com>

	* acinclude.m4 (no_tcl): SUBST TCL_CC_SEARCH_FLAGS.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* Makefile.in (TCL): Use TCL_CC_SEARCH_FLAGS instead of
	TCL_LD_SEARCH_FLAGS.

2003-02-10  Michal Ludvig  <mludvig@suse.cz>

	* dwarf2cfi.c: Reindented.

2003-02-09  Andrew Cagney  <ac131313@redhat.com>

	* interps.c (clear_interpreter_hooks): Convert function definition
	to ISO C.

2003-02-07  David Carlton  <carlton@math.stanford.edu>

	* gdb_mbuild.sh: Delete extra shift after parsing '-f'.

2003-02-07  Kevin Buettner  <kevinb@redhat.com>

	* gdbtypes.h (struct main_type): Move ``length'' field from here...
	(struct type): ...to here.
	(TYPE_LENGTH): Adjust to reflect different location of ``length''
	field.
	* gdbtypes.c (make_qualified_type): Set length on newly created type.
	(replace_type): Set length on all type variants for a given type.

2003-02-07  Andrew Cagney  <ac131313@redhat.com>

	* sol-thread.c, hpux-thread.c: Include "gdb_stat.h" instead of
	<sys/stat.h>.
	* Makefile.in (sol-thread.o, hpux-thread.o): Update dependencies.
	
2003-02-06  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (symm-nat.o): Update dependencies.
	(sparc-nat.o, procfs.o, proc-api.o, ppc-linux-nat.o): Ditto.
	(lynx-nat.o, ia64-linux-nat.): Ditto.
	* symm-nat.c, sparc-nat.c, procfs.c, proc-api.c: Include
	"gdb_wait.h" instead of <wait.h> or <sys/wait.h>.
	* ppc-linux-nat.c, lynx-nat.c, ia64-linux-nat.c: Ditto.

	* Makefile.in (inflow_h): Define.
	(procfs.o, inflow.o, procfs.o): Update dependencies.
	* inftarg.c (child_stop): Delete extern declaration of
	inferior_process_group.  Include "inflow.h".
	* procfs.c (procfs_stop): Ditto.  Include "inflow.h".
	* inflow.c (PROCESS_GROUP_TYPE): Move definitions from here ...
	* inflow.h (PROCESS_GROUP_TYPE): ... to here.  New file.
	(our_process_group, inferior_process_group): Extern declarations.

	* procfs.c: Include "gdb_assert.h".

	* linux-proc.c: Include "gdb_stat.h" instead of <sys/stat.h>.
	* cp-valprint.c (cp_print_value_fields): Eliminate STREQN.
	* jv-typeprint.c (java_type_print_base): Ditto.
	* typeprint.c (typedef_print): Eliminate STREQ.
	* cli/cli-script.c (define_command, define_command): Ditto.
	* main.c (captured_main): Ditto.
	* values.c (lookup_internalvar): Ditto.
	* utils.c (safe_strerror, parse_escape): Eliminate assignment
	within `if' conditional.
	* linespec.c (decode_line_2): Ditto.
	* cli/cli-dump.c (bfd_openr_with_cleanup): Ditto.
	(bfd_openw_with_cleanup): Ditto.

2003-02-07  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (x86_64_init_abi): Set extract_return_value to
	legacy_extract_return_value and store_return_value to
	legacy_return_value.

2003-02-06  Raoul Gough  <RaoulGough@yahoo.co.uk>

	* win32-nat.c (get_relocated_section_addrs): New function.  Find
	section load addresses for symbol handling in relocated DLLs.
	(solib_symbols_add): Open a bfd and call get_relocated_section_addrs.

2003-02-05  Fred Fish  <fnf@intrinsity.com>

	* remote-e7000.c (e7000_drain_command): Fix precedence problem with
	'=' and '!='.
	* rdi-share/ardi.c (wait_for_debug_message): Fix precedence problem
	with '&' and '=='.
	(angel_RDI_info): Ditto.
	* infttrace.c (threads_continue_all_but_one): Fix precedence problem
	with '&' and '!='.
	(threads_continue_all_with_signals): Ditto.
  
2003-02-05  Jim Ingham <jingham@apple.com>
            Keith Seitz  <keiths@redhat.com>
            Elena Zannoni  <ezannoni@redhat.com>
            Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (SUBDIR_CLI_OBS): Add "cli-interp.o".
	(SUBDIR_CLI_SRCS): Add "cli/cli-interp.c".
	(SUBDIR_MI_OBS): Add "mi-interp.o".
	(SUBDIR_MI_SRCS): Add "mi/mi-interp.c".
	(SFILES): Add "interps.c".
	(COMMON_OBS): Add "interps.o".
	(interps_h, mi_main_h): Define.
	(interps.o, cli-interp.o, mi-interp.o): Add dependencies.
	(mi-main.o, main.o, event-top.o): Update dependencies.
	* cli/cli-interp.c: New file.
	* interps.h, interps.c: New files.
	* top.c: (gdb_init): Don't install the default interpreter, handed
	by captured_main.
	* main.c: Include "interps.h".
	(interpreter_p): Note that it should malloc'ed.
	(captured_command_loop): Call current_interp_command_loop.
	(captured_main): Initialize interpreter_p to INTERP_CONSOLE.  Use
	xfree and xstrdup when updating interpreter_p.  Install the
	default interpreter.  Add hack to stop mi1's copyright notice
	being encoded.
	* event-top.h (gdb_setup_readline): Declare.
	(gdb_disable_readline): Declare.
	* event-top.c: Include "interps.h".
	(display_gdb_prompt): Call current_interp_display_prompt_p.
	(gdb_setup_readline): Initialize gdb_stdout, gdb_stderr,
	gdb_stdlog, and gdb_stdtarg.
	(_initialize_event_loop): Don't call gdb_setup_readline.
	* cli-out.c (cli_out_set_stream): New function.
	* cli-out.h (cli_out_set_stream): Declare.

2003-02-06  Mark Kettenis  <kettenis@gnu.org>

	* configure.tgt (i[3456]86-*-sysv4.2*, i[3456]86-*-sysv4*,
	i[3456]86-*-sysv5*, i[3456]86-*-sco3.2v5*): Remove.  These are all
	handled fine by i[3456]86-*sco* and i[3456]86-sysv*.
	* config/i386/i386sco5.mt, config/i386/i386v4.mt,
	config/i386/i386v42mp.mt: Removed.

2003-02-05  Mark Kettenis  <kettenis@gnu.org>

	* configure.tgt (*-*-solaris*): Set gdb_osabi to
	GDB_OSABI_SOLARIS.

2003-02-05  Michael Chastain  <mec@shout.net>

	* PROBLEMS (i[3456]86-*-linux*): Warn about binutils
	2.12.1 and earlier versions.

2003-02-05  Andrew Cagney  <ac131313@redhat.com>

	Remove orphaned hosts, targets and files.
	* config/i386/gdbserve.mt, config/m68k/nm-apollo68b.h: Delete.
	* config/m68k/nm-hp300bsd.h, config/m68k/tm-apollo68b.h: Delete.
	* config/m68k/tm-es1800.h, config/m68k/tm-hp300bsd.h: Delete.
	* config/m68k/tm-mac.h, config/m68k/xm-apollo68b.h: Delete.
	* config/pa/hpux1020.mt, config/pa/hpux11.mt: Delete.
	* config/pa/hpux11w.mt, config/powerpc/gdbserve.mt: Delete.
	* config/powerpc/ppcle-eabi.mt, config/powerpc/ppcle-sim.mt: Delete.
	* config/powerpc/tm-ppc-sim.h, config/sparc/sp64sim.mt: Delete.
	* config/sparc/tm-sp64sim.h: Delete.
	* configure.host: Delete strongarm-*-*, xscale-*-*, and arm*-*-*
	hosts.
	* configure.tgt: Delete i[3456]86-*-sco3.2v4*, and
	mips*-dec-mach3* targets.

2003-02-04  Michael Chastain  <mec@shout.net>

	* NEWS: Fix typo: sepcifying -> specifying.

2003-02-04  Michael Chastain  <mec@shout.net>

	* dwarfread.c: Add documentation on the state of dwarf-1,
	looking towards obsoletion.

2003-02-03  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.c++/pr-1023.cc,
	gdb/testsuite/gdb.c++/pr-1023.exp.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* values.c: Delete code conditional on IS_TRAPPED_INTERNALVAR.
	* TODO: Delete reference to IS_TRAPPED_INTERNALVAR.

	* utils.c (init_page_info): Delete reference to MPW in comments.
	* main.c (captured_main): Delete #ifdef MPW.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* NEWS: Note that the m32r-*-elf* is obsolete. 
	* monitor.c (monitor_expect): Obsolete reference to m32r.
	* configure.tgt: Mark m32r-*-elf* as obsolete.
	* MAINTAINERS: Mark m32k as obsolete.
	* m32r-rom.c: Obsolete file.
	* config/m32r/m32r.mt: Obsolete file.
	* config/m32r/tm-m32r.h: Obsolete file.
	* m32r-stub.c: Obsolete file.
	* m32r-tdep.c: Obsolete file.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* NEWS: Mention that the z8k-zilog-none is obsolete.
	* MAINTAINERS: Mark z8k as obsolete.
	* configure.tgt: Obsolete the z8k-*-coff* target.
	* config/z8k/z8k.mt: Obsolete file.
	* config/z8k/tm-z8k.h: Obsolete file.
	* z8k-tdep.c: Obsolete file.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* NEWS: Mention that the mn10200-elf is obsolete.
	* configure.tgt: Obsolete mn10200-*-* target.
	* breakpoint.c (update_breakpoints_after_exec): Update comment to
	mention that the mn10200 is obsolete.
	* breakpoint.h: Ditto.
	* MAINTAINERS: Mark the mn10200-elf as obsolete.
	* config/mn10200/mn10200.mt: Obsolete file.
	* config/mn10200/tm-mn10200.h: Obsolete file.
	* mn10200-tdep.c: Obsolete file.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* MAINTAINERS: Mark h8500 as obsolete.
	* configure.tgt (h8500-*-*): Mark h8500 code as obsolete.
	* findvar.c (value_from_register): Ditto.
	* h8500-tdep.c: Mark file as obsolete.
	* config/h8500/h8500.mt: Ditto.
	* config/h8500/tm-h8500.h: Ditto.
	* NEWS: Mention that h8500 is obsolete.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* objfiles.c (allocate_objfile): Always set name.  Add comment at
	start of function.
	* jv-lang.c (get_dynamics_objfile): Add comment.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (SYMBOL_LINKAGE_NAME): Delete.
	* printcmd.c (build_address_symbolic): Replace uses of
	SYMBOL_LINKAGE_NAME by equivalent uses of SYMBOL_SOURCE_NAME,
	SYMBOL_NAME, and asm_demangle.
	Update copyright.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_compound): Extract code into
	lookup_prefix_sym.
	(lookup_prefix_sym): New function.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* gdbtypes.h: Delete INTEGER_COERCION_BADNESS,
	FLOAT_COERCION_BADNESS.
	* gdbtypes.c (rank_one_type): Replace all uses of
	INTEGER_COERCION_BADNESS by INTEGER_CONVERSION_BADNESS.

2003-02-04  Jim Blandy  <jimb@redhat.com>

	* dwarf2read.c (dwarf2_locate_sections): When we find a macro info
	section, let dwarf_macinfo_section point to it, not
	dwarf_loc_section.

2003-02-04  Daniel Jacobowitz  <drow@mvista.com>

	Pointed out by Anton Blanchard <anton@samba.org>.
	* ppc-linux-tdep.c (insn_is_sigreturn): New function.
	(ppc_linux_at_sigtramp_return_path): Use it.

2003-02-04  Daniel Jacobowitz  <drow@mvista.com>

	* defs.h (streq): Add prototype.
	* utils.c (streq): New function.

	* dwarf2read.c (new_symbol): Use SYMBOL_SET_NAMES instead of
	SYMBOL_NAME and SYMBOL_INIT_DEMANGLED_NAME.
	* mdebugread.c (new_symbol): Likewise.
	* stabsread.c (define_symbol): Likewise.
	* coffread.c (process_coff_symbol): Likewise.
	* dwarfread.c (new_symbol): Likewise.

	* minsyms.c (prim_record_minimal_symbol_and_info): Use
	SYMBOL_SET_NAMES instead of setting SYMBOL_NAME.  Set the language
	here.
	(install_minimal_symbols): Don't set SYMBOL_LANGUAGE or call
	SYMBOL_INIT_DEMANGLED_NAME.
	* objfiles.c: Include "hashtab.h".
	(allocate_objfile): Call htab_set_functions_ex for the
	demangled_names_hash.
	(free_objfile): Call htab_delete for the demangled_names_hash.
	* objfiles.h (struct htab): Add declaration.
	(struct objfile): Add demangled_names_hash.
	* symfile.c: Include "hashtab.h".
	(reread_symbols): Call htab_delete for the demangled_names_hash.
	(add_psymbol_to_list): Use SYMBOL_SET_NAMES instead of putting
	SYMBOL_NAME in the bcache.
	* symtab.c: Include "hashtab.h".  Update comments.
	(create_demangled_names_hash, symbol_set_names): New functions.
	(symbol_find_demangled_name): New function, broken out from
	symbol_init_demangled_names.
	(symbol_init_demangled_names): Use it.
	* symtab.h (SYMBOL_INIT_DEMANGLED_NAME): Add missing parentheses.
	(SYMBOL_SET_NAMES): New macro.
	(symbol_set_names): Add prototype.

2003-02-03  Jim Blandy  <jimb@redhat.com>

	Use a single, consistent representation for an empty minimal
	symbol table in an objfile.
	* objfiles.c (terminate_minimal_symbol_table): New function.
	(allocate_objfile): Call it.
	* objfiles.h (terminate_minimal_symbol_table): New declaration.
	(ALL_MSYMBOLS): No need to test whether (objfile)->msymbols is
	non-NULL. 
	* minsyms.c (lookup_minimal_symbol_by_pc_section): To see whether
	objfile has minimal symbols, compare minimal_symbol_count to zero,
	instead of comparing msymbols with NULL.
	* objfiles.c (have_minimal_symbols): Same.
	* solib-sunos.c (solib_add_common_symbols): Call
	terminate_minimal_symbol_table.
	* symfile.c (reread_symbols): Same.
	
2003-02-03  Kevin Buettner  <kevinb@redhat.com>

	* s390-tdep.c (s390_address_class_type_flags)
	(s390_address_class_type_flags_to_name)
	(s390_address_class_name_to_type_flags): New functions.
	(s390_gdbarch_init): Define ADDRESS_CLASS_TYPE_FLAGS_TO_NAME,
	ADDRESS_CLASS_NAME_TO_TYPE_FLAGS, and ADDRESS_CLASS_TYPE_FLAGS.

2003-02-03  Michael Snyder  <msnyder@redhat.com>

	* arm-tdep.c: Fix spell-o in comment.

2003-02-03  Michal Ludvig  <mludvig@suse.cz>

	* dwarf2cfi.c (pointer_encoding): Added new parameter.
	* dwarf2cfi.c, dwarf2read.c: Changed all warnings and
	error messages to contain BFD filename. 

2003-02-02  Elena Zannoni  <ezannoni@redhat.com>

	Fix PR gdb/742 gdb/743 gdb/877
	* disasm.c (dump_insns): Use make_cleanup_ui_out_tuple_begin_end.
	(do_mixed_source_and_assembly): Use
	make_cleanup_ui_out_tuple_begin_end and
	make_cleanup_ui_out_tuple_begin_end.
	(do_mixed_source_and_assembly): Ditto.
	* thread.c (do_captured_list_thread_ids): Ditto.
	* ui-out.h (ui_out_table_begin, ui_out_list_begin,
	ui_out_tuple_begin, ui_out_table_end, ui_out_list_end,
	ui_out_tuple_end): Delete prototypes.
	* ui-out.c (ui_out_list_begin, ui_out_tuple_begin,
	ui_out_list_end, ui_out_tuple_end): Delete.

	From Kevin Buettner  <kevinb@redhat.com>:
	* ui-out.h (make_cleanup_ui_out_table_begin_end): New function.
        * ui-out.c (make_cleanup_ui_out_table_begin_end)
        (do_cleanup_table_end):  New functions.
        * breakpoint.c (print_it_typical, print_one_breakpoint, mention):
        Use cleanups to invoke_ui_out_tuple_end().
        (breakpoint_1): Use cleanup to invoke ui_out_table_end().
	* cli/cli-setshow.c (cmd_show_list): Use
	make_cleanup_ui_out_tuple_begin_end.
	
2003-02-02  Andrew Cagney  <ac131313@redhat.com>

	* frame.c (frame_unwind_register): New function.
	(frame_unwind_unsigned_register): Use.
	(frame_unwind_signed_register): Use.
	(frame_read_register): New function.
	* frame.h (frame_unwind_register): Declare.
	(frame_read_register): Declare.

	* d10v-tdep.c (d10v_frame_pop): Rewrite. Use regcache_cooked_write
	and frame_unwind_register instead of read_memory, write_register
	and deprecated_write_register_bytes.

2003-02-02  Andrew Cagney  <ac131313@redhat.com>

	* frame.h: Note that namelen can be negative.
	* frame.c (frame_map_name_to_regnum): When LEN is negative, use
	NAME's length.

	* NEWS: Mention that the d10v's `regs' command is deprecated.
	* d10v-tdep.c (d10v_gdbarch_init): Set print_registers_info.
	(d10v_print_registers_info): New function.
	(show_regs): Call d10v_print_registers_info.
	(_initialize_d10v_tdep): Mark "show regs" command as deprecated.

2003-02-02  Mark Kettenis  <kettenis@gnu.org>

	* stack.c (print_frame_info): Restore call to annotate_frame_begin
	lost in the previous patch.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	From 2002-11-09 Jason Molenda (jason-cl@molenda.com)
        * stack.c (print_frame_info_base): Output complete FRAME tuple
        for synthesized frames.

2003-02-02  Andrew Cagney  <ac131313@redhat.com>

	* mips-nat.c (zerobuf): Delete.
	(fetch_inferior_registers): Alloc local zerobuf.
	(fetch_core_registers): Alloc local zerobuf.
	* d10v-tdep.c (show_regs): Don't allocate a dynamic array using
	MAX_REGISTER_RAW_SIZE or MAX_REGISTER_VIRTUAL_SIZE.
	* thread-db.c (thread_db_store_registers): Ditto.
	* sh-tdep.c (sh_do_register): Ditto.
	* rom68k-rom.c (rom68k_supply_one_register): Ditto.
	* remote-sim.c (gdbsim_store_register): Ditto.
	* remote-mips.c (mips_wait, mips_fetch_registers): Ditto.
	* remote-e7000.c (fetch_regs_from_dump): Ditto.
	* monitor.c (monitor_supply_register): Ditto.
	* mipsv4-nat.c (supply_gregset, supply_fpregset): Ditto.
	* mips-nat.c (fetch_inferior_registers): Ditto.
	* m68klinux-nat.c (fetch_register): Ditto.
	* lynx-nat.c (fetch_inferior_registers): Ditto.
	(fetch_inferior_registers): Ditto.
	* irix4-nat.c (supply_gregset, supply_fpregset): Ditto.
	* hpux-thread.c (hpux_thread_fetch_registers): Ditto.
	(hpux_thread_store_registers): Ditto.
	* hppah-nat.c (fetch_register): Ditto.
	* hppab-nat.c (fetch_register): Ditto.
	* hppa-tdep.c (pa_register_look_aside): Ditto.
	(pa_print_fp_reg, pa_strcat_fp_reg): Ditto.
	* dve3900-rom.c (fetch_bitmapped_register): Ditto.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbarch.sh: Explictly specify all method levels.  When a
	variable with an empty level, provide a non-multi-arch default.
	(BELIEVE_PCC_PROMOTION_TYPE): Set level to empty.
	* gdbarch.h: Re-generate.
	* stabsread.c (BELIEVE_PCC_PROMOTION_TYPE): Delete.  Always defined.
	* config/m68k/tm-sun3.h (BELIEVE_PCC_PROMOTION_TYPE): Define as 1

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* defs.h (host_pointer_to_address): Delete declaration.
	(address_to_host_pointer): Delete declaration.
	* utils.c (host_pointer_to_address): Delete function.
	(address_to_host_pointer): Delete function.
	* procfs.c (procfs_address_to_host_pointer): New function.
	* procfs.c (proc_set_watchpoint): Use.
	(procfs_can_use_hw_breakpoint): Update comments.
	* somsolib.c (hpux_address_to_host_pointer_hack): New function.
	(som_solib_add): Use.
	* hppa-tdep.c (hppa_pointer_to_address_hack): New function.
	* hppa-tdep.c (unwind_command): Use.
	
2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* gdb_dirent.h: Mark up valid uses of <dirent.h>, d_namelen and
	strlen d_name.

	* main.c (captured_main): Delete #ifdef ADDITIONAL_OPTIONS,
	ADDITIONAL_OPTION_CASES, and ADDITIONAL_OPTION_HANDLER code.
	(print_gdb_help): Delete #ifdef ADDITIONAL_OPTION_HELP code.
	* stabsread.c (DBX_PARM_SYMBOL_CLASS): Delete macro.
	(define_symbol): Update.
	* symfile.c (generic_load): Remove references to nindy.
	* symtab.c: Remove references to nindy.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* infcmd.c (print_float_info): Delete code conditional on
	FLOAT_INFO.
	* config/nm-lynx.h: Delete #undef FLOAT_INFO.  Update copyright.
	* config/m68k/nm-apollo68b.h: Ditto.
	* config/i386/tm-ptx.h (FLOAT_INFO): Delete.  Update copyright.
	* config/ns32k/nm-nbsd.h (FLOAT_INFO): Ditto.
	* config/i386/tm-symmetry.h (FLOAT_INFO): Ditto.

2003-02-01  Mark Kettenis  <kettenis@gnu.org>

	* config/i386/tm-i386os9k.h: Removed.

	* configure.host (i[3456]86-*-isc*): Set gdb_host to i386v.
	Remove i[3456]86-*-sysv3.2* and i[3456]86-*-sysv32* entries since
	they're identical to i[3456]86-*-sysv* now.
	* config/i386/i386v32.mh: Removed.
	* config/i386/xm-i386v32.h: Removed.
	* config/i386/xm-i386sco.h (U_FPSTATE): Remove macro.

	* config/i386/i386mk.mt, config/i386/i386mk.mh: Removed.

	* config/i386/i386dgux.mh: Removed.
	* configure.host (i[3456]86-*-dgux): Set gdb_host to i386v4.

	* configure.in: Fix typo.
	* configure: Regenerated.

2003-01-31  David Carlton  <carlton@math.stanford.edu>

	* dwarf2read.c (dwarf2_locate_sections): Set
	dwarf_ranges_section.

2003-01-31  Andrew Cagney  <ac131313@redhat.com>

	* objc-exp.y, c-exp.y, f-exp.y: Remove PTR casts.
	* utils.c: Update comments documenting legitimate uses of PTR.
	
	* utils.c: Re-indent.

	* config/djgpp/fnchange.lst: Delete nindy files.
	* nindy-share/ttyflush.c, nindy-share/stop.h: Delete files.
	* nindy-share/nindy.c, nindy-share/env.h: Delete files.
	* nindy-share/coff.h, nindy-share/block_io.h: Delete files.
	* nindy-share/b.out.h, nindy-share/VERSION: Delete files.
	* nindy-share/README, nindy-share/Onindy.c: Delete files.
	* nindy-tdep.c, nindy-share/Makefile: Delete files.
	* Makefile.in (init.c): Remove nindy references.
	(saber_gdb): Delete rule.
	(ALLDEPFILES): Delete hp300ux-nat.c, nindy-tdep.c,
	nindy-share/Onindy.c, nindy-share/nindy.c, nindy-share/ttyflush.c,
	and a68v-nat.c.
	(hp300ux-nat.o, a68v-nat.o, ptx4-nat.o): Delete rules.
	(Onindy.o, nindy.o, ttyflush.o, nindy-tdep.o): Delete rules.
	(HFILES_NO_SRCDIR): Delete nindy-share/b.out.h,
	nindy-share/block_io.h, nindy-share/coff.h, nindy-share/env.h, and
	nindy-share/stop.h.
	* hp300ux-nat.c, a68v-nat.c, ptx4-nat.c: Delete files.
	* saber.suppress: Delete file.

2003-01-31  Daniel Jacobowitz  <drow@mvista.com>

	* dbxread.c (stabs_data): New static variable.
	(fill_symbuf): Support an in-memory buffer for stabs data.
	(stabs_seek): New function.
	(dbx_psymtab_to_symtab): Relocate the stabs data if necessary.
	(read_ofile_symtab): Use stabs_seek.
	(elfstab_build_psymtabs): Take an asection* instead of
	an offset and size.  Relocate the stabs data if necessary.
	Save the section* for dbx_psymtab_to_symtab.
	* dwarf2read.c: Add section variables for each debug section.
	(dwarf2_locate_sections): Fill them in.
	(dwarf2_read_section): Take an asection* argument.
	Relocate the section contents if necessary.
	(dwarf2_build_psymtabs, dwarf2_build_psymtabs_easy): Update callers.
	* dwarf2cfi.c (parse_frame_info): Take a section argument and pass
	it to dwarf2_read_section.
	(dwarf2_build_frame_info): Update callers.
	* elfread.c (elf_symfile_read): Update call to
	elfstab_build_psymtabs.
	* gdb-stabs.h (struct dbx_symfile_info): Add stab_section.
	(DBX_STAB_SECTION): New macro.
	* stabsread.h (elfstab_build_psymtabs): Update prototype. 
	* symfile.c (symfile_dummy_outputs): New function.
	(symfile_relocate_debug_section): New function.
	* symfile.h (symfile_relocate_debug_section): Add prototype.

2003-01-31  Richard Henderson  <rth@redhat.com>

	* alpha-nat.c (REGISTER_PTRACE_ADDR): Merge into ...
	(register_addr): ... here.  Support ALPHA_UNIQUE_REGNUM.
	(fetch_elf_core_registers): Support ALPHA_UNIQUE_REGNUM.
	* alpha-tdep.c (alpha_register_name): Add "unique".
	* alpha-tdep.h (ALPHA_NUM_REGS): Increment.
	(ALPHA_UNIQUE_REGNUM): New.
	* config/alpha/nm-linux.h (ALPHA_UNIQUE_PTRACE_ADDR): New.

2003-01-31  Andrew Cagney  <ac131313@redhat.com>

	* README: Remove reference to Ericsson 1800 monitor.
	* Makefile.in (remote-es.o): Delete rule.
	(ALLDEPFILES): Delete remote-es.c.
	* remote-es.c: Delete file.
	* config/m68k/es1800.mt: Delete file.
	* config/djgpp/fnchange.lst: Update.
	* configure.tgt: Delete m68*-ericsson-* target.

2003-01-31  Adam Fedor  <fedor@gnu.org>

	* infrun.c (handle_inferior_event): Rename 'tmp' to real_stop_pc.
	Remove duplicate/shadowing variable of same name.

2003-01-30  Jim Blandy  <jimb@redhat.com>

	* symfile.c (find_separate_debug_file): Assert that the objfile's
	directory name we compute ends with a slash, and then assume that
	that's so everywhere we use it.

2003-01-30  Daniel Jacobowitz  <drow@mvista.com>

	* valops.c (value_assign): Flush frame cache after stores to memory
	also.

2003-01-30  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (mon960-rom.o): Delete rule.
	* mon960-rom.c: Delete file.

2003-01-30  Andrew Cagney  <ac131313@redhat.com>

	* d10v-tdep.c: Include "frame-unwind.h".
	(d10v_gdbarch_init): Append d10v_frame_p to the unwind predicate
	list.
	(next_addr, uses_frame): Delete.
	(struct d10v_unwind_cache): Define.
	(prologue_find_regs): Add struct d10v_unwind_cache info parameter.
	Use info instead of next_addr and uses_frame globals.
	(d10v_frame_init_saved_regs): Delete function.
	(d10v_init_extra_frame_info): Delete function.
	(d10v_gdbarch_init): Do not initialize init_extra_frame_info,
	frame_init_saved_regs or pop_frame, frame_chain, frame_chain_valid,
	init_frame_pc or frame_saved_pc.
	(d10v_pop_frame): Delete function.
	(do_d10v_pop_frame): Delete function.
	(d10v_frame_chain): Delete function.
	(d10v_frame_chain_valid): Delete function.
	(d10v_frame_pc_unwind): New function.
	(d10v_frame_id_unwind): New function.
	(saved_regs_unwinder): New function.
	(d10v_frame_register_unwind): New function.
	(d10v_frame_pop): New function.
	(d10v_frame_unwind): New variable.
	(d10v_frame_p): New function.
	(d10v_frame_saved_pc): Delete function.
	* Makefile.in (d10v-tdep.o): Update dependencies.

2003-01-30  J. Brobecker  <brobecker@gnat.com>

	* config/pa/tm-hppa64.h (CALL_DUMMY_LOCATION): Remove #undef
	causing some regressions due to a change in the default value
	for this macro.

2003-01-29  Richard Henderson  <rth@redhat.com>
	    Elena Zannoni  <ezannoni@redhat.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/961.
	* dwarf2read.c 	(dwarf_ranges_offset, dwarf_ranges_size): New
	variables.
	(RANGES_SECTION): New.
	(dwarf_ranges_buffer): New variable.
	(struct comp_unit_head): Add member "die".
	(struct dwarf2_pinfo): Add dwarf_ranges_buffer, dwarf_ranges_size.
	(DWARF_RANGES_BUFFER, DWARF_RANGES_SIZE): New.
	(dwarf2_has_info): Init dwarf_ranges_offset and dwarf_ranges_size.
	(dwarf2_locate_sections): Likewise.
	(dwarf2_build_psymtabs): Read .debug_ranges.
	(dwarf2_build_psymtabs_hard): Swap dwarf_ranges out.
	(psymtab_to_symtab_1): Swap dwarf_ranges in.  Set cu_header.die.
	(dwarf2_get_pc_bounds): New cu_header argument; adjust all callers.
	Look for DW_AT_ranges and return the bounding box.

2003-01-29  Brian Ford <ford@vss.fsi.com>

	* win32-nat.c (cygwin_pid): Removed as unused.
	(child_attach): Try fall back to Cygwin pid.

2003-01-29  Jim Blandy  <jimb@redhat.com>

	* objfiles.h (struct objfile): Doc fix.

2003-01-29  Andrew Cagney  <ac131313@redhat.com>

	* frame.c (frame_saved_regs_id_unwind): Assert FRAME_CHAIN_P.
	(legacy_get_prev_frame): Assert FRAME_CHAIN_P.
	(get_prev_frame): When FRAME_CHAIN_P, call legacy_get_prev_frame.
	(frame_saved_regs_pc_unwind): Assert FRAME_SAVED_PC_P.
	* gdbarch.sh (FRAME_CHAIN): Change to a function with predicate.
	(FRAME_SAVED_PC): Change to a function with predicate.
	* gdbarch.h, gdbarch.c: Re-generate.

2003-01-28  Andrew Cagney  <ac131313@redhat.com>

	* hppah-nat.c (child_pid_to_exec_file): Don't use boolean.

	* complaints.c (complain): Delete function.
	* complaints.h (struct deprecated_complaint): Delete definition.
	(complain): Delete declaration.

2003-01-28  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (mips_init_extra_frame_info): Return early for
	dummy frames.

2003-01-27  Andrew Cagney  <ac131313@redhat.com>

	* sentinel-frame.h, sentinel-frame.c: New files.
	* Makefile.in (frame.o): Update dependencies.
	(SFILES): Add sentinel-frame.c.
	(sentinel_frame_h): Define.
	(COMMON_OBS): Add sentinel-frame.o.
	(sentinel-frame.o): Specify dependencies.
	* frame.c: Include "sentinel-frame.h".
	(frame_register_unwind): Rewrite assuming that there is always a a
	->next frame.
	(frame_register, generic_unwind_get_saved_register): Ditto.
	(frame_read_unsigned_register, frame_read_signed_register): Ditto.
	(create_sentinel_frame, unwind_to_current_frame): New functions.
	(get_current_frame): Rewrite using create_sentinel_frame and
	unwind_to_current_frame.  When possible, always create a frame.
	(create_new_frame): Set next to the sentinel frame.
	(get_next_frame): Rewrite.  Don't go below the level 0 frame.
	(deprecated_update_frame_pc_hack): Update the next frame's PC and
	ID cache when necessary.
	(frame_saved_regs_id_unwind): Use frame_relative_level.
	(deprecated_generic_get_saved_register): Use frame_relative_level,
	get_frame_saved_regs, get_frame_pc, get_frame_base and
	get_next_frame.
	(frame_saved_regs_register_unwind): Use get_frame_saved_regs and
	frame_register.

2003-01-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb_indent.sh: Add -T bfd and -T asection to the indent arguments.

2003-01-27  Daniel Jacobowitz  <drow@mvista.com>

	* maint.c [! (HAVE_MONSTARTUP && HAVE__MCLEANUP)]
	(maintenance_set_profile_cmd): Use error () instead of warning ().

2003-01-27  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Check that -pg works if using --enable-profiling.
	Check for monstartup and _mcleanup regardless of --enable-profiling.
	* maint.c: Check for monstartup and _mcleanup before using them.
	* config.in: Regenerated.
	* configure: Regenerated.

2003-01-24  Nick Clifton  <nickc@redhat.com>

	* Add sh2e support:

	2002-04-02  Elena Zannoni  <ezannoni@redhat.com>

		* gdb/sh-tdep.c (sh_sh2e_register_name): New.
		(sh2e_show_regs): New.
		(sh_gdbarch_init): Handle bfd_mach_sh2e.
		* config/sh/tm-sh.h: Added sh2e to comments.

2003-01-23  Jim Blandy  <jimb@redhat.com>

	* symfile.c (syms_from_objfile): Don't print the "(no debugging
	symbols found)" message here; we haven't checked for a separate
	debug info file yet, so we don't know yet.
	(symbol_file_add_with_addrs_or_offsets): Print it here, after
	we've looked everywhere.  Also, there's no need to print a special
	message when we're loading the separate debug info file: the one
	symbol_file_add prints is fine.

2003-01-23  Alexander Larsson <alexl@redhat.com>
	    Jim Blandy  <jimb@redhat.com>

	Add support for executables whose debug info has been separated
	out into a separate file, leaving only a link behind.
	* objfiles.h (struct objfile): New fields: separate_debug_objfile
	and separate_debug_objfile_backlink.
	(put_objfile_before): New declaration.
	* symfile.c: #include "filenames.h".
	(symbol_file_add_with_addrs_or_offsets): If this objfile has its
	debug info in a separate file, read that, too. Save the addrs
	argument, so we can use it again to read the separated debug info;
	syms_from_objfile modifies the table we pass it.
	(reread_symbols): After re-reading an objfile, call
	reread_separate_symbols to refresh its separate debug info
	objfile, if it has one.
	(reread_separate_symbols, find_separate_debug_file,
	get_debug_link_info, separate_debug_file_exists): New functions.
	(debug_file_directory): New global var.
	(_initialize_symfile): Initialize debug_file_directory, and
	provide the new `set debug-file-directory' command to let the user
	change it.
	* objfiles.c (free_objfile): If this objfile has its debug info in
	a separate objfile, free that one too.  If this is itself a
	separate debug info objfile, clear our parent's backlink.
	(put_objfile_before): New function.
	* utils.c (gnu_debuglink_crc32): New function.
	* defs.h (gnu_debuglink_crc32): New declaration.
	* Makefile.in (symfile.o): Note dependency on "filenames.h".
	* configure.in: Handle --with-separate-debug-dir config option.
	* acinclude.m4 (AC_DEFINE_DIR): New macro.
	* acconfig.h (DEBUGDIR): New macro.
	* configure, aclocal.m4, config.in: Regenerated.

2003-01-22  Jim Blandy  <jimb@redhat.com>

	* symfile.c (symbol_file_add_with_addrs_or_offsets): New function,
	like the old symbol_file_add, but taking new arguments: you can
	now pass in either a `struct section_addr_info' list to say where
	each section is loaded, or a `struct section_offsets' table.  Pass
	these new arguments through to syms_from_objfile as appropriate.
	(symbol_file_add): Just call symbol_file_add_with_addrs_or_offsets, 
	with the appropriate quiescent values for the new arguments.

	* symfile.c: #include "gdb_assert.h".
	(syms_from_objfile): Add the ability to pass in a section offset
	table directly, as an alternative to the section_addr_info table.
	Document arguments better.
	(symbol_file_add): Pass extra arguments to syms_from_objfile.
	* symfile.h (syms_from_objfile): Update declaration.
	* rs6000-nat.c (objfile_symbol_add): Pass new arguments to
	syms_from_objfile.
	* Makefile.in (symfile.o): List dependency on $(gdb_assert_h).

2003-01-22  Daniel Jacobowitz  <drow@mvista.com>

	Original patch by Tom Tromey <tromey@cygnus.com> and
	Jason Molenda <jmolenda@apple.com>.
	* Makefile.in (PROFILE_CFLAGS): Substitute from configure.
	(INTERNAL_LDFLAGS): Don't include PROFILE_CFLAGS.
	* NEWS: Mention profiling.
	* configure.in (--enable-gdbtk): Fix typo.
	(--enable-profiling): New.  Set PROFILE_CFLAGS.
	* maint.c (maintenance_set_profile_cmd): Remove NOTYET.
	Fill in function.
	(profiling_state): New variable.
	(mcleanup_wrapper): New function.
	(_initialize_maint): Remove NOTYET, fix call to
	add_setshow_boolean_cmd for "maint set profile".
	* configure: Regenerated.

2003-01-21  Martin M. Hunt  <hunt@redhat.com>

	* Makefile.in (install-gdbtk): Install PNG images too.

2003-01-21  Andrew Cagney  <ac131313@redhat.com>

	* exec.c (text_start): Delete global variable.
	(exec_file_attach): Make text_start local to the function.
	* inferior.h (BEFORE_TEXT_END, AFTER_TEXT_END): Delete macros.
	* valops.c (hand_function_call): Delete code that handles
	BEFORE_TEXT_END and AFTER_TEXT_END.
	* gdbarch.sh (CALL_DUMMY_LENGTH): Test call_dummy_length instead
	of CALL_DUMMY_LOCATION.
	* gdbarch.c: Regenerate.
	* inferior.h (deprecated_pc_in_call_dummy_before_text_end)
	(deprecated_pc_in_call_dummy_after_text_end): Delete declaration.
	* blockframe.c (deprecated_pc_in_call_dummy_before_text_end)
	(deprecated_pc_in_call_dummy_after_text_end): Delete functions.
	(text_end): Delete extern declaration.

2003-01-21  Andrew Cagney  <ac131313@redhat.com>

	* frame.h (FRAME_OBSTACK_ZALLOC): Define.
	* blockframe.c (backtrace_below_main): Move to "frame.c".
	(frame_chain_valid): Delete check for backtrace_below_main.
	(_initialize_blockframe): Delete initialization, move ``set
	backtrace-below-main'' command to "frame.c".
	(do_flush_frames_sfunc): Delete function.
	* frame.c: Include "command.h" and "gdbcmd.h".
	(frame_type_from_pc): New function.
	(create_new_frame): Use frame_type_from_pc.
	(legacy_get_prev_frame): New function.
	(get_prev_frame): Rewrite.  When an old style frame, call
	legacy_get_prev_frame.  Otherwize, unwind the PC first.
	(_initialize_frame): Add ``set backtrace-below-main'' command.
	* Makefile.in (frame.o): Update dependencies.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* config/pa/tm-hppa.h (DEPRECATED_DO_REGISTERS_INFO): Rename
	DEPRECATED_REGISTERS_INFO.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* MAINTAINERS: Replace `Blanket Write Privs' with `Global
	Maintainers'.  Update `Various Maintainers'.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* frame.c (frame_saved_regs_pop): Assert POP_FRAME_P.
	* gdbarch.sh (POP_FRAME): Change to function with predicate.
	Suppress actual parameters when `-'.
	* gdbarch.h, gdbarch.c: Regenerate.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* d10v-tdep.c (d10v_frame_saved_pc, d10v_frame_chain): Restore
	code handling dummy frames.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* frame-unwind.h (frame_unwind_pop_ftype): Declare.
	(struct frame_unwind): Add field pop.
	* frame.h (frame_pop): Declare.
	* frame.c (frame_saved_regs_pop): New function.
	(trad_frame_unwinder): Add frame_saved_regs_pop.
	(frame_pop): New function.
	* dummy-frame.c (dummy_frame_pop): New function.
	(discard_innermost_dummy): New function.
	(generic_pop_dummy_frame): Use discard_innermost_dummy.
	(dummy_frame_unwind): Add dummy_frame_pop.
	* infrun.c (normal_stop): Call frame_pop instead of POP_FRAME.
	* valops.c (hand_function_call): Ditto.
	* stack.c (return_command): Ditto.

2003-01-18  Andrew Cagney  <ac131313@redhat.com>

	* cris-tdep.c: Fix function declaration indentation.
	* dwarfread.c, gdbcore.h, gdbtypes.h, i386v-nat.c: Ditto.
	* mips-tdep.c, monitor.h, parse.c, proc-utils.h: Ditto.
	* rs6000-nat.c, ser-go32.c, somread.c, stabsread.c: Ditto.
	* symfile.h, symtab.h, target.c, target.h, value.h: Ditto.
	* xcoffread.c, config/pa/tm-hppa.h: Ditto.
	* config/sparc/tm-sp64.h, config/sparc/tm-sparc.h: Ditto.

2003-01-18  Michael Chastain  <mec@shout.net>

	* README (Unpacking and Installation -- quick overview):
	Warn against ".../gdb-5.3/gdb/configure".

2003-01-18  Andrew Cagney  <ac131313@redhat.com>

	* dummy-frame.h (dummy_frame_id_unwind): Delete declaration.
	(dummy_frame_pc_unwind, dummy_frame_register_unwind): Ditto.
	(struct frame_unwind): Declare opaque.
	(dummy_frame_p): Declare function.
	* dummy-frame.c (dummy_frame_id_unwind): Make static.
	(dummy_frame_pc_unwind, dummy_frame_register_unwind): Ditto.
	* dummy-frame.c: Include "frame-unwind.h".
	(dummy_frame_p): New function.
	(dummy_frame_unwind): New variable.
	* frame.c: Include "frame-unwind.h".
	(frame_pc_unwind, frame_id_unwind, frame_register_unwind): Update
	to use the new unwind field.
	(set_unwind_by_pc): Delete function.
	(create_new_frame, get_prev_frame): Set unwind field using
	frame_unwind_find_by_pc.
	(trad_frame_unwind, trad_frame_unwinder): New variables.
	* frame.h (trad_frame_unwind): Declare variable.
	(frame_id_unwind_ftype): Delete declaration.
	(frame_pc_unwind_ftype, frame_register_unwind_ftype): Ditto.
	(struct frame_unwind): Declare opaque.
	(struct frame_info): Replace the fields id_unwind, pc_unwind and
	register_unwind with a single unwind pointer.
	* frame-unwind.h, frame-unwind.c: New files.
	* Makefile.in (SFILES): Add frame-unwind.c.
	(frame_unwind_h): Define.
	(COMMON_OBS): Add frame-unwind.o.
	(frame-unwind.o): Specify dependencies.
	(frame.o, dummy-frame.o): Update dependencies.
	
2003-01-18  Andrew Cagney  <ac131313@redhat.com>

	* ada-valprint.c: Eliminate PTR.
	* breakpoint.c, corelow.c, cris-tdep.c, dbxread.c: Ditto.
	* defs.h, dve3900-rom.c, dwarf2read.c, dwarfread.c: Ditto.
	* exec.c, hppa-tdep.c, hpread.c, infcmd.c, mdebugread.c: Ditto.
	* objfiles.c, objfiles.h, ocd.c, remote-es.c: Ditto.
	* remote-mips.c, remote-sds.c, remote-vx.c: Ditto.
	* solib-svr4.c, solib.c, stack.c, symfile.c, symfile.h: Ditto.
	* symmisc.c, v850ice.c, xcoffread.c, cli/cli-script.c: Ditto.
	
2003-01-17  Andrew Cagney  <ac131313@redhat.com>

	* main.c (captured_main): Don't use PTR.
	* cp-valprint.c (cp_print_class_method): Replace STREQ with strcmp.
	* gdbtypes.c (lookup_primitive_typename): Ditto.
	(lookup_struct_elt_type): Ditto.
	* f-valprint.c (info_common_command): Ditto.
	(list_all_visible_commons): Ditto.
	* jv-typeprint.c (java_type_print_base): Ditto.

	* config/djgpp/fnchange.lst: Rename mi1-var-block.exp,
	mi1-var-child.exp, mi1-var-cmd.exp and mi1-var-display.exp.
	Rename opcodes/iq2000-desc.c and opcodes/iq2000-dis.c.  Rename
	i386-interix-nat.c and i386-interix-tdep.c.  Rename
	m68klinux-nat.c and m68klinux-tdep.c.  Rename
	config/mips/tm-linux.h and config/mips/tm-linux64.h.  Rename
	bfd/po/.cvsignore and opcodes/po/.cvsignore.  Rename
	gdb/objc-exp.tab.c and gdb/ada-exp.tab.c
	* main.c (captured_main): Use xfree, not free.

2003-01-16  Andrew Cagney  <ac131313@redhat.com>

	* frame.h (frame_id_unwind_ftype): Change type so that the frame's
	ID back using a parameter.
	* frame.c (frame_id_unwind): Update call.
	(frame_saved_regs_id_unwind): Update.
	* dummy-frame.c (dummy_frame_id_unwind): Update function.
	* dummy-frame.h (struct frame_id): Add opaque declaration.
	(dummy_frame_id_unwind): Update declaration.

2003-01-15  Andrew Cagney  <ac131313@redhat.com>

	* sparc-tdep.c: Delete reference to PRINT_REGISTER_HOOK.

2003-01-15  Stephen P. Smith <ischis2@cox.net>

	* MAINTAINERS (Stephen P. Smith): Updated email address.

2003-01-14  Elena Zannoni  <ezannoni@redhat.com>

	Fix PR gdb/898
	* breakpoint.c (until_break_command): Add new argument.  Use it to
	decide whether to stop only at the current frame or not.
	* breakpoint.h (until_break_command): Update prototype.
 	* infcmd.c (until_command): Add new argument to until_break_command
	call.
	(advance_command): New function.
	(_initialize_infcmd): Update help string for 'until' command.
	Add new 'advance' command.

2003-01-14  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_line_1): Normalize comments.
	(set_flags): Ditto.
	(locate_first_half): Ditto.
	(decode_compound): Ditto.
	(symtab_from_filename): Ditto.
	(decode_all_digits): Ditto.
	(decode_dollar): Ditto.
	(find_methods): Ditto.
	(find_toplevel_char): Ditto.

2003-01-13  Andrew Cagney  <ac131313@redhat.com>

	* ax-gdb.c, c-valprint.c, charset.c, corefile.c: Update copyright.
	* demangle.c, disasm.c, dwarf2cfi.c, dwarfread.c: Update copyright.
	* elfread.c, eval.c, expprint.c, expression.h: Update copyright.
	* f-typeprint.c, findvar.c, gcore.c, gdb_mbuild.sh: Update copyright.
	* gdbtypes.h, gnu-v2-abi.c, inferior.h, inftarg.c: Update copyright.
	* language.c, language.h, m32r-tdep.c: Update copyright.
	* mn10200-tdep.c, scm-lang.c, scm-lang.h: Update copyright.
	* somsolib.c, somsolib.h, symfile.c, symtab.h: Update copyright.
	* thread-db.c, typeprint.c, utils.c, valarith.c: Update copyright.
	* values.c, win32-nat.c, x86-64-linux-nat.c: Update copyright.
	* x86-64-linux-tdep.c, z8k-tdep.c: Update copyright.
	* cli/cli-decode.h, config/h8500/tm-h8500.h: Update copyright.

2003-01-13  Elena Zannoni  <ezannoni@redhat.com>

	* stabsread.h (process_later, resolve_cfront_continuation):
	Obsolete.
	Update copyright years.
	* buildsym.c (start_subfile): Obsolete comment pertinent to Cfront.
	Update copyright year.
	* dbxread.c(struct cont_elem): Obsolete.
	(process_later, process_now): Obsolete functions. 
	(read_dbx_symtab, read_ofile_symtab): Obsolete cfront support.
	Update copyright year.
	* gdbtypes.c (INIT_EXTRA, ADD_EXTRA): Obsolete macros.
	(add_name, add_mangled_type, cfront_mangle_name): Obsolete functions.
	* mdebugread.c (parse_type): Obsolete comment pertinent to Cfront.
	(parse_partial_symbols): Obsolete cfront support.
	* stabsread.c
	(CFRONT_VISIBILITY_PRIVATE,CFRONT_VISIBILITY_PUBLIC): Obsolete
	macros.
	(get_substring, get_cfront_method_physname, msg_unknown_complaint,
	read_cfront_baseclasses, read_cfront_member_functions,
	resolve_cfront_continuation,read_cfront_static_fields,
	copy_cfront_struct_fields): Obsolete functions.
	(define_symbol, read_one_struct_field): Obsolete cfront support.
	* xcoffread.c (scan_xcoff_symtab): Obsolete CFront support.
	Update Copyright year.

2003-01-13  Elena Zannoni  <ezannoni@redhat.com>

	* stack.c (print_frame_info, print_stack_frame_base_stub,
	print_stack_frame_base, show_and_print_stack_frame_stub,
	show_and_print_stack_frame, print_only_stack_frame_stub,
	print_only_stack_frame): Delete functions.
	(print_stack_frame_stub): Call print_frame_info instead of
	print_frame_info_base.
	(print_frame_info_base): Rename to print_frame_info.
	(backtrace_command_1): Call print_frame_info, instead of
	print_frame_info_base.
	(current_frame_command): Call print_stack_frame, instead of
	print_only_stack_frame.
	(frame_command): Call print_stack_frame, instead of
	show_and_print_stack_frame.
	(up_command): Ditto.
	(down_command): Ditto.
	* frame.h (print_only_stack_frame): Delete prototype.
	* infrun.c (normal_stop): Call print_stack_frame, instead of
	show_and_print_stack_frame.
	* thread.c (info_threads_command): Call print_stack_frame, instead
	of print_only_stack_frame.

2003-01-13  Andrew Cagney  <ac131313@redhat.com>

	* README (Graphical interface to GDB): Update URL.  Point at
	gdb/links/.

	* gdb_indent.sh: Update to version 2.2.9.  Warn when not exact
	version match.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* symtab.c (find_pc_sect_line): Don't consider end-of-function
	lines.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* thread-db.c (attach_thread): Prototype.
	(struct private_thread_info): Remove lwpid.  Add thread handle (th),
	thread information (ti), and valid flags (th_valid, ti_valid).
	(attach_thread): Move target_pid_to_str call to after the thread
	is added to GDB's list.  Initialize the cache.
	(thread_get_info_callback, thread_db_map_id2thr)
	(thread_db_get_info): New functions.
	(thread_from_lwp, lwp_from_thread, thread_db_fetch_registers)
	(thread_db_store_registers, thread_db_thread_alive)
	(thread_db_get_thread_local_address): Use them.
	(thread_db_pid_to_str): Likewise.  Return "Missing" instead
	of calling error() for threads in unknown state.

	(clear_lwpid_callback): New function.
	(thread_db_resume): Use it to clear the cache.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* lin-lwp.c (struct private_thread_info, find_lwp_callback): Remove.
	(resume_callback): Remove dead code.

2003-01-13  Andrew Cagney  <ac131313@redhat.com>

	* gdbarch.sh (FRAME_INIT_SAVED_REGS): Change to function with
	predicate.
	* gdbarch.h, gdbarch.c: Regenerate.
	* stack.c (frame_info): Only initialize the saved registers when
	FRAME_INIT_SAVED_REGS_P.
	* frame.c (frame_saved_regs_register_unwind): Assert
	FRAME_INIT_SAVED_REGS_P.
	(deprecated_generic_get_saved_register): Ditto.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* source.c (openp): Squelch warning about "filename".

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* source.c (openp): If the file does not exist don't necessarily
	search the path.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/872.
	* gdbtypes.c (init_type): Mark "char" as TYPE_FLAG_NOSIGN.
	(integer_types_same_name_p): New function.
	(rank_one_type): Use it.
	* stabsread.c (read_range_type): Mark "char" as TYPE_FLAG_NOSIGN.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE): New
	variables.
	(main.o): Custom rule which uses $(TARGET_SYSTEM_ROOT_DEFINE).
	* configure.in: Add --with-sysroot.
	* configure: Regenerated.
	* main.c (gdb_sysroot): New variable.
	(captured_main): Initialize gdb_sysroot.
	* defs.h (gdb_sysroot): New extern declaration.
	* solib.c (_initialize_solib): Initialize solib_absolute_prefix.

2003-01-12  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: add gdb/ChangeLog-2002.

2003-01-12  Michael Chastain  <mec@shout.net>

	* top.c (print_gdb_version): Bump copyright year to 2003.

2003-01-12  David Carlton  <carlton@bactrian.org>

	* linespec.c (symtab_from_filename): Rename variable 's' to
	'file_symtab'.

2003-01-12  Andrew Cagney  <ac131313@redhat.com>

	* d10v-tdep.c (d10v_init_extra_frame_info): Remove checks for a
	dummy frame.
	(d10v_frame_saved_pc, d10v_frame_chain): Ditto.

2003-01-12  Andrew Cagney  <ac131313@redhat.com>

	* d10v-tdep.c: Include "gdb_assert.h".
	(d10v_store_return_value): Rewrite to match current interface.
	(d10v_extract_struct_value_address): Ditto.
	(d10v_extract_return_value): Ditto.
	(d10v_gdbarch_init): Set store_restore_value,
	extract_struct_value_address and extract_return_value.

2003-01-12  J. Brobecker  <brobecker@gnat.com>

	* hpread.c (set_namestring): New procedure replacing the
	SET_NAMESTRING macro.
	(hpread_build_psymtabs): Replace calls to SET_NAMESTRING
	by calls to set_namestring.

2003-01-11  J. Brobecker  <brobecker@gnat.com>

	* hpread.c (SET_NAMESTRING): Remove an incorrect cast to fix
	a compilation warning.
	(hpread_process_one_debug_symbol): Likewise.

2003-01-10  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_line_1): Rename variable 's' to
	'file_symtab'.
	(decode_all_digits): Rename argument 's' to 'file_symtab'.
	(decode_dollar): Ditto.
	(decode_variable): Ditto.
	(symbol_found): Ditto.

2003-01-09  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: update file list for testsuite/gdb.c++.

2003-01-07  Corinna Vinschen  <vinschen@redhat.com>

	* win32-nat.c (set_process_privilege): New function.
	(child_attach): Call set_process_privilege() to enable the
	SE_DEBUG_NAME user privilege if available in process token.

2003-01-10  J. Brobecker  <brobecker@gnat.com>

	* hpread.c (hpread_process_one_debug_symbol): Fix a small
	compilation error in the previous revision.

2003-01-09  David Carlton  <carlton@math.stanford.edu>

	* linespec.c: Update copyright.

2003-01-09  Daniel Jacobowitz  <drow@mvista.com>

	* lin-lwp.c (child_wait): Ignore exit statuses for processes other
	than inferior_ptid.
	(lin_lwp_wait): Ignore exit statuses for unknown LWPs.

2003-01-09  Andrew Cagney  <ac131313@redhat.com>

	* frame.h (frame_obstack_zalloc): Replace frame_obstack_alloc.
	Update comments.
	* frame.c (frame_obstack_zalloc): Replace frame_obstack_alloc.
	(frame_saved_regs_zalloc): Update.
	(frame_saved_regs_register_unwind): Update.
	(create_new_frame): Update.
	(get_prev_frame): Update.
	(frame_extra_info_zalloc): Update.
	(deprecated_get_frame_saved_regs): Update.
	* dwarf2cfi.c (cfi_init_extra_frame_info): Update.
	* cris-tdep.c: Update comment.

	* somsolib.h: Fix function indentation.
	* disasm.c, buildsym.c, buildsym.h: Eliminate PTR.
	* gnu-v2-abi.c, f-typeprint.c, x86-64-linux-tdep.c: Eliminate STREQ.
	* demangle.c, ax-gdb.c, c-valprint.c: Eliminate STREQ.
	* alpha-osf1-tdep.c, corefile.c: Eliminate STREQ.
	* somsolib.c, inftarg.c: Remove assignment in if conditional.

	* infrun.c (follow_fork): Use ISO C definition.
	* expprint.c (print_subexp): Use xfree instead of free.
	* charset.c: Include "gdb_string.h" instead of <string.h>.
	(register_iconv_charsets): Use ISO C definition.
	(host_charset, target_charset): Ditto.
	* Makefile.in (charset.o): Update dependencies.
	(mi-cmd-env.o): Update dependencies.

2003-01-08  Andrew Cagney  <cagney@redhat.com>

	* alpha-linux-tdep.c (alpha_linux_sigcontext_addr): Use
	get_frame_base.

2003-01-08  Andrew Cagney  <ac131313@redhat.com>

	* gdb_mbuild.sh: Add --keep option.  When specified, keep the
	build directories.  Save edited gdb output in Mbuild.log.  If a
	build fails, remove any final GDB executable.

2003-01-08  Andrew Cagney  <ac131313@redhat.com>

	* gdb_mbuild.sh: Edit the output of `maint print architecture'
	replacing hex constants with function names and stripping leading
	file name directory prefixes.

2003-01-08  Andrew Cagney  <cagney@redhat.com>

	* gcore.c, i386-linux-tdep.c: Use get_frame_pc, get_next_frame and
	get_frame_base.

2003-01-08  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_line_1): Move code into decode_variable.
	(decode_variable): New function.

2003-01-08  Andrew Cagney  <ac131313@redhat.com>

	* mn10300-tdep.c (analyze_dummy_frame): Fix typo.

2003-01-08  Andrew Cagney  <cagney@redhat.com>

	* cris-tdep.c (cris_frame_init_saved_regs): Use
	get_frame_saved_regs and SIZEOF_FRAME_SAVED_REGS when copying a
	saved_regs buffer.
	* sh-tdep.c (sh_nofp_frame_init_saved_regs): Ditto.
	(sh64_nofp_frame_init_saved_regs): Ditto.
	(sh_fp_frame_init_saved_regs): Ditto.
	* arm-tdep.c: Use deprecated_set_frame_saved_regs_hack.
	* mips-tdep.c (mips_init_extra_frame_info): Ditto.
	* mcore-tdep.c (analyze_dummy_frame): Ditto.
	* mn10300-tdep.c (analyze_dummy_frame): Ditto.

2003-01-08  Daniel Jacobowitz  <drow@mvista.com>

	* minsyms.c (lookup_minimal_symbol): Update comment.
	(lookup_minimal_symbol_text): Update comment.  Use the hash table.
	(lookup_minimal_symbol_solib_trampoline): Likewise.

2003-01-08  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_init_extra_frame_info): Use
	frame_relative_level.

	* alpha-tdep.c: Use get_frame_extra_info.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* h8300-tdep.c, ia64-tdep.c, m68hc11-tdep.c, mcore-tdep.c: Ditto.
	* mips-tdep.c, mn10300-tdep.c, s390-tdep.c, sh-tdep.c: Ditto.
	* sparc-tdep.c, xstormy16-tdep.c: Ditto.

	* alpha-tdep.c: Use get_next_frame.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* dwarf2cfi.c, h8300-tdep.c, i386-tdep.c, ia64-tdep.c: Ditto.
	* m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c: Ditto.
	* mips-tdep.c, mn10200-tdep.c, mn10300-tdep.c: Ditto.
	* ns32k-tdep.c, s390-tdep.c, sh-tdep.c, sparc-tdep.c: Ditto.
	* v850-tdep.c, vax-tdep.c, x86-64-linux-tdep.c: Ditto.
	* xstormy16-tdep.c: Ditto.
	
2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* alpha-tdep.c: Use get_frame_base.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
	* m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
	* mn10300-tdep.c, ns32k-tdep.c, s390-tdep.c, sh-tdep.c: Ditto.
	* sparc-tdep.c, v850-tdep.c, vax-tdep.c: Ditto.
	* x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
	* config/h8500/tm-h8500.h, config/mn10200/tm-mn10200.h: Ditto.
	* config/sparc/tm-sparc.h: Ditto.
	
2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* frame.c (deprecated_get_frame_context): New function.
	(deprecated_set_frame_context): New function.
	* frame.h (deprecated_get_frame_context): Declare.
	(deprecated_set_frame_context): Declare.
	* dwarf2cfi.c (UNWIND_CONTEXT): Use deprecated_get_frame_context.
	(cfi_init_extra_frame_info): Use deprecated_set_frame_context.
	
2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* frame.c (deprecated_set_frame_next_hack): New function.
	(deprecated_set_frame_prev_hack): New function.
	* frame.h (deprecated_set_frame_next_hack): Declare.
	(deprecated_set_frame_prev_hack): Declare.
	* mcore-tdep.c (analyze_dummy_frame): Use
	deprecated_set_frame_next_hack and deprecated_set_frame_prev_hack.
	* mn10300-tdep.c (analyze_dummy_frame): Ditto.

2003-01-07  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_line_1): Move code into decode_dollar.
	(decode_dollar): New function.

2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* arm-tdep.c (arm_init_extra_frame_info): Use
	deprecated_update_frame_base_hack.
	* xstormy16-tdep.c (xstormy16_scan_prologue): Ditto.
	* mn10300-tdep.c (analyze_dummy_frame): Ditto.
	(fix_frame_pointer): Ditto.
	(mn10300_analyze_prologue): Ditto.

2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* xstormy16-tdep.c (xstormy16_init_extra_frame_info): Allocate
	extra_info using frame_extra_info_zalloc.
	* sparc-tdep.c (sparc_init_extra_frame_info): Ditto.
	* sh-tdep.c (sh_init_extra_frame_info): Ditto.
	(sh64_init_extra_frame_info): Ditto.
	* mn10300-tdep.c (mn10300_init_extra_frame_info): Ditto.
	* s390-tdep.c (s390_init_extra_frame_info): Ditto.
	* mips-tdep.c (mips_init_extra_frame_info): Ditto.
	* mcore-tdep.c (mcore_init_extra_frame_info): Ditto.
	* frv-tdep.c (frv_init_extra_frame_info): Ditto.
	* m68hc11-tdep.c (m68hc11_init_extra_frame_info): Ditto.
	* ia64-tdep.c (ia64_init_extra_frame_info): Ditto.
	* h8300-tdep.c (h8300_init_extra_frame_info): Ditto.
	* d10v-tdep.c (d10v_init_extra_frame_info): Ditto.
	* cris-tdep.c (cris_init_extra_frame_info): Ditto.
	* arm-tdep.c (arm_init_extra_frame_info): Ditto.
	* alpha-tdep.c (alpha_init_extra_frame_info): Ditto.

	* mn10300-tdep.c (analyze_dummy_frame): Use
	deprecated_set_frame_extra_info_hack.
	* mcore-tdep.c (analyze_dummy_frame): Ditto.

2003-01-07  J. Brobecker  <brobecker@gnat.com>

	* mdebugread.c (parse_symbol): Skip stProc entries which storage
	class is not scText. These do not define "real" procedures.
	(parse_partial_symbols): Likewise.

2003-01-06  Michael Snyder  <msnyder@redhat.com>

	* lin-lwp.c: Added or elaborated on "debug lin-lwp" info.

2003-01-06  Andrew Cagney  <ac131313@redhat.com>

	* frame.h (deprecated_frame_xmalloc_with_cleanup): Declare.
	* frame.c (deprecated_frame_xmalloc_with_cleanup): New function.
	* arm-tdep.c (arm_frame_chain): Allocate caller_fi using
	deprecated_frame_xmalloc_with_cleanup.
	* m32r-tdep.c (m32r_virtual_frame_pointer): Allocate `fi' using
	deprecated_frame_xmalloc.
	* mcore-tdep.c (analyze_dummy_frame): Ditto for dummy.
	* mn10200-tdep.c (mn10200_frame_chain): Ditto for dummy_frame.

2003-01-06  Andrew Cagney  <cagney@redhat.com>

	* x86-64-linux-tdep.c: Include "osabi.h".
	* Makefile.in (x86-64-linux-tdep.o): Update dependencies.

	* sparc-tdep.c (sparc_dump_tdep): Fix typo, match -> mach.

2003-01-06  Andrew Cagney  <cagney@redhat.com>

	* MAINTAINERS (Target Instruction Set Architectures): Update
	arm-elf.  Can be built with -Werror, has been multiarched.

	* value.h (unpack_long): Make buffer parameter constant.
	(unpack_double, unpack_pointer, unpack_field_as_long): Ditto.
	* scm-lang.h (scm_parse): Ditto.
	* defs.h (extract_typed_address, extract_address): Ditto.
	(extract_long_unsigned_integer): Ditto.
	* inferior.h (unsigned_pointer_to_address): Ditto.
	(signed_pointer_to_address): Ditto.
	* gdbarch.sh (POINTER_TO_ADDRESS): Ditto.
	* gdbarch.h, gdbarch.c: Regenerate.
	* findvar.c (extract_long_unsigned_integer): Update.
	(extract_address): Update.
	(extract_typed_address): Update.
	(unsigned_pointer_to_address): Update.
	* values.c (unpack_long): Update.
	(unpack_double): Update.
	(unpack_pointer): Update.
	(unpack_field_as_long): Update.
	* d10v-tdep.c (d10v_pointer_to_address): Update.
	* avr-tdep.c (avr_pointer_to_address): Update.
	* scm-lang.c (scm_unpack): Update.
	* findvar.c (signed_pointer_to_address): Update.

2003-01-06  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-linux-nat.c (i386_sse_regnum_p): Deleted. Not needed anymore 
	since it is in i386-tdep.c.

2003-01-06  J. Brobecker  <brobecker@gnat.com>

	* alpha-tdep.c (alpha_gdbarch_init): Fix a small compilation
	failure introduced in the previous change.

2003-01-05  Michael Chastain  <mec@shout.net>

	* README: Remove references to deleted remote-*.c files:
	remote-adapt.c, remote-eb.c, remote-mm.c, remote-nindy.c,
	remote-nrom.c, remote-os9k.c, remote-udi.c.

2003-01-05  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_get_longjmp_target): Make usable on x86-64.
	* x86-64-tdep.c (x86_64_init_abi): Remove FIXME about
	i386_get_longjmp_target.

2003-01-05  Andrew Cagney  <ac131313@redhat.com>

	* arm-tdep.c (prologue_cache): Change to a pointer.
	(_initialize_arm_tdep): Allocate prologue_cache.
	(check_prologue_cache): Update.
	(save_prologue_cache): Update.
	(arm_gdbarch_init): Update.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* stabsread.c (update_method_name_from_physname): Call complaint()
	instead of error.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* arm-tdep.c (arm_frame_chain_valid):  Remove unnecessary test.
	* d10v-tdep.c (d10v_frame_chain_valid): Remove unnecessary tests.
	* hppa-tdep.c (hppa_frame_chain_valid): Remove unnecessary test.

	* blockframe.c: Include "gdbcmd.h" and "command.h".
	(backtrace_below_main): New variable.
	(file_frame_chain_valid, func_frame_chain_valid)
	(nonnull_frame_chain_valid, generic_file_frame_chain_valid)
	(generic_func_frame_chain_valid): Remove functions.
	(frame_chain_valid, do_flush_frames_sfunc): New functions.
	(_initialize_blockframe): New function.
	* Makefile.in (blockframe.o): Update dependencies.
	* frame.c (frame_saved_regs_id_unwind, get_prev_frame): Remove FIXME
	comment.  Call frame_chain_valid ().
	* frame.h: Remove old prototypes.  Add prototype for
	frame_chain_valid and update comments to match.
	* gdbarch.sh: Change FRAME_CHAIN_VALID into a predicated function.
	Remove old comment.
	* gdbarch.h: Regenerated.
	* gdbarch.c: Regenerated.

	* alpha-tdep.c (alpha_gdbarch_init): Don't call
	set_gdbarch_frame_chain_valid.
	* avr-tdep.c (avr_gdbarch_init): Likewise.
	* cris-tdep.c (cris_gdbarch_init): Likewise.
	* frv-tdep.c (frv_gdbarch_init): Likewise.
	* h8300-tdep.c (h8300_gdbarch_init): Likewise.
	* i386-tdep.c (i386_svr4_init_abi): Likewise.
	(i386_nw_init_abi): Likewise.
	(i386_gdbarch_init): Likewise.
	* ia64-tdep.c (ia64_gdbarch_init): Likewise.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Likewise.
	* m68k-tdep.c (m68k_gdbarch_init): Likewise.
	* mcore-tdep.c (mcore_gdbarch_init): Likewise.
	* mips-tdep.c (mips_gdbarch_init): Likewise.
	* mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
	* ns32k-tdep.c (ns32k_gdbarch_init): Likewise.
	* ppcnbsd-tdep.c (ppcnbsd_init_abi): Likewise.
	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
	* s390-tdep.c (s390_gdbarch_init): Likewise.
	* sh-tdep.c (sh_gdbarch_init): Likewise.
	* sparc-tdep.c (sparc_gdbarch_init): Likewise.
	* v850-tdep.c (v850_gdbarch_init): Likewise.
	* vax-tdep.c (vax_gdbarch_init): Likewise.
	* x86-64-tdep.c (x86_64_init_abi): Likewise.

	* config/m32r/tm-m32r.h (FRAME_CHAIN_VALID): Don't define.
	* config/m68k/tm-apollo68b.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-m68kv4.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-monitor.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-os68k.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-vx68.h (FRAME_CHAIN_VALID): Likewise.
	* config/mn10200/tm-mn10200.h (FRAME_CHAIN_VALID): Likewise.
	* config/sparc/tm-sparclite.h (FRAME_CHAIN_VALID): Likewise.

2002-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (acconfig_h): Remove incorrect macro.
	(config_h): Define.
	(osabi.o): Update dependencies.
	* configure.tgt: Set gdb_osabi based on target triplet.
	* configure.in: Define GDB_OSABI_DEFAULT based on gdb_osabi.
	* configure: Regenerated.
	* config.in: Regenerated.
	* osabi.c: Include "arch-utils.h", "gdbcmd.h", and "command.h".
	(GDB_OSABI_DEFAULT): Define if not already defined.
	(user_osabi_state, user_selected_osabi, gdb_osabi_available_names)
	(set_osabi_string): New variables.
	(gdbarch_register_osabi): Add new OS ABI to
	gdb_osabi_available_names.
	(gdbarch_lookup_osabi): Honor specified and default OS ABIs.
	(set_osabi, show_osabi): New functions.
	(_initialize_gdb_osabi): Add "set osabi" and "show osabi" commands.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* arch-utils.c (gdbarch_info_init): Set osabi to
	GDB_OSABI_UNINITIALIZED.
	* gdbarch.sh: Add osabi to struct gdbarch and to struct
	gdbarch_info.  Include "osabi.h" in gdbarch.c.  Check osabi
	in gdbarch_list_lookup_by_info and in gdbarch_update_p.
	* gdbarch.c: Regenerated.
	* gdbarch.h: Regenerated.
	* osabi.c (gdbarch_lookup_osabi): Return GDB_OSABI_UNINITIALIZED if
	there's no BFD.
	(gdbarch_init_osabi): Remove osabi argument; use info.osabi.
	* osabi.h (enum gdb_osabi): Move to defs.h.
	(gdbarch_init_osabi): Update prototype.
	* defs.h (enum gdb_osabi): Moved here.
	* Makefile.in: Update dependencies.

	* alpha-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* alpha-tdep.c: Include "osabi.h".
	(alpha_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(alpha_dump_tdep): Don't dump osabi.
	* alpha-linux-tdep.c: Include "osabi.h".
	* alpha-osf1-tdep.c: Include "osabi.h".
	* alphafbsd-tdep.c: Include "osabi.h".
	* alphanbsd-tdep.c: Include "osabi.h".

	* arm-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* arm-tdep.c: Include "osabi.h".
	(arm_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(arm_dump_tdep): Don't dump osabi.
	* arm-linux-tdep.c: Include "osabi.h".
	* armnbsd-tdep.c: Include "osabi.h".

	* hppa-tdep.c (hppa_gdbarch_init): Don't call gdbarch_lookup_osabi.
	Update call to gdbarch_init_osabi.

	* i386-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* i386-tdep.c: Include "osabi.h".
	(i386_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(i386_dump_tdep): Don't dump osabi.
	* i386-linux-tdep.c: Include "osabi.h".
	* i386-sol2-tdep.c: Include "osabi.h".
	* i386bsd-tdep.c: Include "osabi.h".
	* i386gnu-tdep.c: Include "osabi.h".
	* i386ly-tdep.c: Include "osabi.h".
	* i386nbsd-tdep.c: Include "osabi.h".
	* i386obsd-tdep.c: Include "osabi.h".

	* mips-tdep.c (struct gdbarch_tdep): Remove osabi member.
	(mips_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	check osabi when iterating over arches.  Update call to
	gdbarch_init_osabi.
	(mips_dump_tdep): Don't dump osabi.

	* ns32k-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove.
	* ns32k-tdep.c (ns32k_gdbarch_init): Don't call
	gdbarch_lookup_osabi.  Don't iterate over arches.  Don't
	allocate tdep.  Update call to gdbarch_init_osabi.
	(ns32k_dump_tdep): Remove.
	(_initialize_ns32k_tdep): Update call to gdbarch_register.
	* ns32knbsd-tdep.c: Include "osabi.h".

	* ppc-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* rs6000-tdep.c: Include "osabi.h".
	(rs6000_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't check
	osabi when iterating over arches.  Update call to
	gdbarch_init_osabi.
	(rs6000_dump_tdep): Don't dump osabi.
	* ppc-linux-tdep.c: Include "osabi.h".
	* ppcnbsd-tdep.c: Include "osabi.h".

	* sh-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* sh-tdep.c: Include "osabi.h".
	(sh_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(sh_dump_tdep): Don't dump osabi.
	* shnbsd-tdep.c: Include "osabi.h".

	* sparc-tdep.c: Include "osabi.h".
	(sparc_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(sparc_dump_tdep): Don't dump osabi.  Do dump the rest of the
	tdep structure.

	* vax-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove.
	* vax-tdep.c: Include "osabi.h".
	(vax_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Don't allocate tdep.  Update call
	to gdbarch_init_osabi.
	(vax_dump_tdep): Remove.
	(_initialize_vax_tdep): Update call to gdbarch_register.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (insert_breakpoints): Skip disabled breakpoints
	entirely.
	(breakpoint_re_set_one): Don't fetch the value for a disabled
	watchpoint.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* buildsym.h (processing_hp_compilation): Remove obsolete variable.
	* gdbarch.sh Remove include of "value.h" in gdbarch.h.
	(COERCE_FLOAT_TO_DOUBLE): Remove.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* Makefile.in: Remove value_h from gdbarch_h.
	* valops.c (coerce_float_to_double): New variable.
	(default_coerce_float_to_double): Remove.
	(standard_coerce_float_to_double): Remove.
	(value_arg_coerce): Use coerce_float_to_double.
	(_initialize_valops): Add "set coerce-float-to-double".
	* value.h (default_coerce_float_to_double): Remove prototype.
	(standard_coerce_float_to_double): Remove prototype.

	* hpread.c (hpread_process_one_debug_symbol): Mark C++ functions as
	prototyped.
	* mdebugread.c (parse_symbol): Likewise.
	* stabsread.c (define_symbol): Mark all functions as prototyped.

	* hppa-tdep.c (hppa_coerce_float_to_double): Remove.
	* alpha-tdep.c (alpha_gdbarch_init): Remove call to
	set_gdbarch_coerce_float_to_double.
	* arm-tdep.c (arm_gdbarch_init): Likewise.
	* frv-tdep.c (frv_gdbarch_init): Likewise.
	* h8300-tdep.c (h8300_gdbarch_init): Likewise (commented out).
	* i386-sol2-tdep.c (i386_sol2_init_abi): Likewise.
	* mips-tdep.c (mips_gdbarch_init): Likewise.
	(mips_coerce_float_to_double): Remove.
	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
	(rs6000_coerce_float_to_double): Remove.
	* s390-tdep.c (s390_gdbarch_init): Likewise.
	* sh-tdep.c (sh_gdbarch_init): Likewise.
	(sh_coerce_float_to_double): Remove.
	* sparc-tdep.c (sparc_gdbarch_init): Likewise.
	(sparc_coerce_float_to_double): Remove.
	* v850-tdep.c (v850_gdbarch_init): Likewise.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
	* config/m32r/tm-m32r.h (COERCE_FLOAT_TO_DOUBLE): Remove.
	* config/pa/tm-hppa.h: (COERCE_FLOAT_TO_DOUBLE): Remove.
	(hppa_coerce_float_to_double): Remove prototype.
	* config/sparc/tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Remove.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* regformats/reg-m68k.dat: Remove fpcode and fpflags.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	Suggested by Stewart Brown <sb24@avaya.com>:
	* c-typeprint.c (c_type_print_varspec_prefix): Pass value of show
	in recursive calls.  Handle TYPE_CODE_TYPEDEF.
	(c_type_print_varspec_suffix): Likewise.

2003-01-04  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Don't set and AC_SUBST SUBDIRS.
	* configure: Regenerated.

	* configure.in: Remove code dealing with shared libraries.
	* Makefile.in: Remove HLDFLAGS and HLDENV.
	* configure: Regenerated.

2003-01-04  Andrew Cagney  <ac131313@redhat.com>

	* frame.c (deprecated_frame_xmalloc): New function.
	(deprecated_set_frame_saved_regs_hack): New function.
	(deprecated_set_frame_extra_info_hack): New function.
	* frame.h (deprecated_frame_xmalloc): Declare.
	(deprecated_set_frame_saved_regs_hack): Declare.
	(deprecated_set_frame_extra_info_hack): Declare.

2003-01-04  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Move code that provides the --enable-gdbtk option
	right after the code that handles the --enable-tui option, and
	polish it somewhat.
	* configure: Regenerated.

	* configure.in: Call AC_GNU_SOURCE.  Check for pread64 using
	AC_CHECK_FUNCS and remove the old check for pread64.
	* acinclude.m4 (AC_GNU_SOURCE): New macro.
	* acconfig.h (_GNU_SOURCE): Add.
	(HAVE_PREAD64): Remove.
	* configure, aclocal.m4, config.in: Regenerated.

2003-01-03  Andrew Cagney  <ac131313@redhat.com>

	* alpha-tdep.c: Use get_frame_saved_regs.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
	* m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10300-tdep.c: Ditto.
	* ns32k-tdep.c, s390-tdep.c, sh-tdep.c, v850-tdep.c: Ditto.
	* vax-tdep.c, xstormy16-tdep.c: Ditto.

2003-01-03  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Remove all use of the SUBDIRS variable; add
	directories using the AC_CONFIG_SUBDIRS macro instead.  Polish
	code providing the --enable-multi-ice option, and move it right in
	front of the code that checks whether gdbserver is supported.
	Polish that too.
	* configure: Regenerated.
	* Makefile.in (SUBDIRS): Substitute @subdirs@ instead of
	@SUBDIRS@.

2003-01-03  Andrew Cagney  <cagney@redhat.com>

	* alpha-tdep.c: Use deprecated_update_frame_base_hack.
	* avr-tdep.c, cris-tdep.c: Ditto.
	* mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
	* sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.
	
2003-01-03  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Remove --enable-netrom option.
	* configure: Regenerated.

2003-01-03  Mark Kettenis  <kettenis@gnu.org>

	* cli/cli-decode.h: Don't include "gdb_regex.h"; provide a forward
	declaration for `struct re_pattern_buffer' instead.
	* Makefile.in (cli_decode_h): Remove $(gdb_regex_h).

2003-01-03  J. Brobecker  <brobecker@gnat.com>

	* mdebugread.c (parse_symbol): Count until the stEnd matching
	the structure name.

2003-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Remove --with-cpu option.
	subscripts.  Remove evil changequotes here.
	* acconfig.h (TARGET_CPU_DEFAULT): Remove.
	* config.in, configure: Regenerated.
	
	* acconfig.h (DEFAULT_BFD_ARCH, DEFAULT_BFD_VEC): Remove.
	* configure.in: Cleanup section that sources GDB and BFD configure
	subscripts.  Remove evil changequotes here.
	* config.in, configure: Regenerated.

2003-01-02  Andrew Cagney  <ac131313@redhat.com>

	* arm-tdep.c: Use get_frame_pc and deprecated_update_frame_pc_hack
	frame accessor methods.
	* alpha-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* dwarf2cfi.c, h8300-tdep.c, i386-tdep.c, ia64-tdep.c: Ditto.
	* m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c, mips-tdep.c: Ditto.
	* mn10200-tdep.c, mn10300-tdep.c, ns32k-tdep.c: Ditto.
	* s390-tdep.c, sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.
	* vax-tdep.c, x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
	* z8k-tdep.c: Ditto.
	
2003-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Remove UI_OUT configuration code.
	* ada-lang.c: Update assuming UI_OUT is always true.
	* Makefile.in (UIOUT_CFLAGS): Remove.
	* configure: Regenerated.
	* TODO: Remove blurb about elimination of -DUI_OUT.

	* configure.in: Move code that provides the --enable-gdbcli,
	--enable-gdbmi options right before the code that handles the
	--enable-tui option.  Polish a bit.
	* configure: Regenerated.

	* configure.in: Rewrite check for GNU regex and the
	--without-included regex option, and move it into the "Checks for
	library functions" section.  This makes us use the system regex
	again by default on systems with version 2 of the GNU C library.
	This was apparently broken.
	* gdb_regex.h [!USE_INCLUDED_REGEX] (_REGEX_RE_COMP): Define.
	* acconfig.h (USE_INCLUDED_REGEX): Remove.
	* config.in, configure: Regenerated.

	* configure.in: Move code that provides the --enable-tui option
	before the "Checks for libraries" section.  Polish the code
	somewhat and set need_curses to yes if we build the TUI.  Rewrite
	code that looks for a library providing termcap functionality to
	match more closely what's done in the Readline library, and move
	it into to the "Checks for libraries" section.
	* configure: Regenerated.
	* Makefile.in (TERMCAP): Remove variable.
	* config/i386/go32.mh (TERMCAP): Remove variable.

2003-01-02  Andrew Cagney  <ac131313@redhat.com>

	* MAINTAINERS: Mention gdb_mbuild.sh.
	* gdb_mbuild.sh: Rewrite.

2003-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Fix typo in last change.
	* config.in, configure: Regenerated.

2003-01-02  Andrew Cagney  <ac131313@redhat.com>

	* valarith.c (value_binop): Delete obsolete code and comments.
	* configure.host: Ditto.
	* buildsym.h (make_blockvector): Ditto.
	* buildsym.c (make_blockvector): Ditto.
	* defs.h (enum language): Ditto.
	(chill_demangle): Ditto.
	* elfread.c (elf_symtab_read): Ditto.
	* dwarfread.c (CHILL_PRODUCER): Ditto.
	(set_cu_language): Ditto.
	(handle_producer): Ditto.
	* expprint.c (print_subexp): Ditto.
	* gdbtypes.c (chill_varying_type): Ditto.
	* gdbtypes.h (builtin_type_chill_bool): Ditto.
	(builtin_type_chill_char, builtin_type_chill_long): Ditto.
	(builtin_type_chill_ulong, builtin_type_chill_real): Ditto.
	(chill_varying_type): Ditto.
	* language.h (_LANG_chill): Ditto.
	* language.c (binop_result_type, integral_type): Ditto.
	(character_type, string_type, structured_type): Ditto.
	(lang_bool_type, binop_type_check): Ditto.
	* stabsread.h (os9k_stabs): Ditto.
	* stabsread.c (os9k_type_vector, dbx_lookup_type): Ditto.
	(define_symbol, read_type, read_struct_fields): Ditto.
	(read_array_type, read_enum_type, read_huge_number): Ditto.
	(read_range_type, start_stabs): Ditto.
	* symfile.c (init_filename_language_table): Ditto.
	(add_psymbol_with_dem_name_to_list): Ditto.
	* symtab.c (symbol_init_language_specific): Ditto.
	(symbol_init_demangled_name, symbol_demangled_name): Ditto.
	* symtab.h (struct general_symbol_info): Ditto.
	(SYMBOL_CHILL_DEMANGLED_NAME): Ditto.
	* typeprint.c (typedef_print): Ditto.
	* utils.c (fprintf_symbol_filtered): Ditto.
	* valops.c (value_cast, search_struct_field, value_slice): Delete
	obsolete code.
	(varying_to_slice): Delete function.
	* value.h (COERCE_VARYING_ARRAY): Delete obsolete macro contents.
	(varying_to_slice): Delete declaration.
	* MAINTAINERS: Update.

2003-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Reorganize "Checks for library functions section"
	a bit.  Remove check for `btowc' and `isascii' functions.
	* configure: Regenerated.

	* acconfig.h (_MSE_INT_H): Remove.
	* configure.in: Create "Checks for header files" section, and move
	appropriate tests there.  Don't check for objlist.h, wchar.h,
	wctype.h and asm/debugreg.h.  Rewrite Solaris 2.[78] <curses.h>
	misdetection fix.  Also add "Checks for types", "Checks for
	compiler characteristics" and "Checks for library functions"
	sections.
	* config.in, configure: Regenerated.

	* configure.in: Create "Checks for programs" section, and move
	appropriate tests there.

2003-01-01  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Create "Checks for libraries" section, and move
	appropriate tests there.  Cleanup check for wctype in libw.  Use
	AC_SEARCH_LIBS to see whether we need libsocket.
	* configure: Regenerated.

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