2003-03-30  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.
	* 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".
	* Makefile.in (frame_base_h): Define.
	(frame.o): Update dependencies.
	(d10v-tdep.o): Update dependencies.
	(frame-base.o): Add dependencies.
	(SFILES): Add frame-base.c.
	(COMMON_OBS): Add frame-base.o.
	* 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.
	* 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.

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:
