2004-03-23  Elena Zannoni  <ezannoni@redhat.com>

       * solib-svr4.c (svr4_solib_create_inferior_hook): Disable
       breakpoints at startup.
       (elf_locate_base): Find out where the entry point for the program
       is, using the auxv vector, if possible. Compute the address of
       .dynamic using it.
       (svr4_current_sos): Don't ignore the first entry if we have PIE,
       it's our main program. Delete code that was skipping over the
       solib entry for main executable.

       * solist.h (struct so_list): Add fields main and main_relocated.
        (add_to_target_sections): Export.

       * solib.c (symbol_add_stub): Handle main executable in shared
       library list. Ignore it if it has been relocated already. Add it
       as the main symbol file, otherwise.

       * infrun.c (handle_inferior_event): Re-enable startup breakpoints.
       * solib-svr4.c (elf_locate_base, first_link_map_member)
       svr4_current_sos, enable_break): Add debugging output.

       * solist.h (debug_solib): Export.

       * solib.c (debug_solib): New variable to enable debugging output.
       (symbol_add_stub, update_solib_list, update_solib_list)
       (add_to_target_sections): Add debugging output.
       (_initialize_solib): Add new comand to enable printing of
       debugging output.
       (add_to_target_sections): New function. Factored out from
       update_solib_list.
       (update_solib_list): Call add_to_target_sections.

       * varobj.h (varobj_refresh): New prototype.
       * varobj.c (varobj_refresh): New function.
       * symfile.c (reread_symbols): Make sure that we recompute the
       entry point for the program.
       (symbol_file_clear): Clear the solibs as well, if we change symbol
       files.
       (clear_symtab_users): Refresh the varobjs that depend on the symtabs
       we are clearing.
       * objfiles.c (entry_point_address): Rewrite, to fetch entry point
       from auxv vector, if possible.
       Add include of elf/common.h.
       * breakpoint.h (enum bptype): Add bp type bp_startup_disabled.
       (re_enable_breakpoints_at_startup)
       (disable_breakpoints_at_startup): Add prototypes
       * breakpoint.c (re_enable_breakpoints_at_startup)
       (disable_breakpoints_at_startup): New functions.
       (describe_other_breakpoints, delete_breakpoint)
       (breakpoint_re_set_one): Handle new bp type.
       * auxv.h (target_auxv_parse, target_auxv_search): Update.
       * auxv.c (target_auxv_parse, target_auxv_search)
       (fprint_target_auxv): Use ULONGEST instead of CORE_ADDR for
       variable. Change variable name to at_type.

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

	* MAINTAINERS (Past Maintainers): Add Mark Salter and Fernando
	Nasser as past testsuite/lib/ (and other) maintainers.

2004-03-23  Daniel Jacobowitz  <drow@mvista.com>

	* infcmd.c (attach_command): Reread symbols if we already have
	an exec file.

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

	* rs6000-tdep.c (frame_get_saved_regs): Delete unused function.

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

	* gdbarch.sh (SIGTRAMP_START, SIGTRAMP_END): Deprecate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* i386obsd-tdep.c (i386obsd_init_abi): Update.
	* i386nbsd-tdep.c (i386nbsd_init_abi): Update.
	* i386bsd-tdep.c (i386bsd_init_abi): Update.
	* config/vax/tm-vaxbsd.h (DEPRECATED_SIGTRAMP_END) 
	(DEPRECATED_SIGTRAMP_START): Update.
	* config/m68k/tm-nbsd.h (DEPRECATED_SIGTRAMP_END) 
	(DEPRECATED_SIGTRAMP_START): Update.
	* blockframe.c (find_pc_sect_partial_function): Update.
	* arch-utils.c (legacy_pc_in_sigtramp): Update.

2004-03-23  Daniel Jacobowitz  <drow@mvista.com>

	* remote.c (remote_open_1): Reopen the exec file and reread symbols
	if necessary.

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

	* gdbarch.sh (PC_IN_SIGTRAMP): Change to a function with
	predicate, deprecate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* alpha-linux-tdep.c (alpha_linux_init_abi): Update.
	* alpha-osf1-tdep.c (alpha_osf1_init_abi): Update.
	* alpha-tdep.c (alpha_sigtramp_frame_sniffer): Update.
	* alphafbsd-tdep.c (alphafbsd_init_abi): Update.
	* alphanbsd-tdep.c (alphanbsd_init_abi): Update.
	* amd64-linux-tdep.c (amd64_linux_init_abi): Update.
	* amd64-tdep.c (amd64_sigtramp_frame_sniffer): Update.
	* amd64nbsd-tdep.c (amd64nbsd_init_abi): Update.
	* amd64obsd-tdep.c (amd64obsd_init_abi): Update.
	* arm-tdep.c (arm_sigtramp_unwind_sniffer): Update.
	* blockframe.c (find_pc_partial_function): Update.
	* breakpoint.c (bpstat_what): Update.
	* frame.c (frame_type_from_pc, legacy_get_prev_frame): Update.
	* frv-linux-tdep.c (frv_linux_init_abi): Update.
	* frv-tdep.c (frv_sigtramp_frame_sniffer): Update.
	* hppa-hpux-tdep.c (hppa_hpux_init_abi): Update.
	* i386-interix-tdep.c (i386_interix_init_abi): Update.
	* i386-linux-tdep.c (i386_linux_init_abi): Update.
	* i386-nto-tdep.c (i386nto_init_abi): Update.
	* i386-sol2-tdep.c (i386_sol2_init_abi): Update.
	* i386-tdep.c (i386_sigtramp_frame_sniffer)
	(i386_svr4_init_abi, i386_go32_init_abi, i386_gdbarch_init): Update.
	* i386bsd-tdep.c (i386bsd_init_abi): Update.
	* i386nbsd-tdep.c (i386nbsd_init_abi): Update.
	* i386obsd-tdep.c (i386obsd_init_abi): Update.
	* ia64-tdep.c (ia64_sigtramp_frame_sniffer): Update.
	* infrun.c (pc_in_sigtramp): Update.
	* m68k-tdep.c (m68k_sigtramp_frame_sniffer): Update.
	* m68klinux-tdep.c (m68k_linux_init_abi): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mipsnbsd-tdep.c (mipsnbsd_init_abi): Update.
	* ppc-linux-tdep.c: Update comment.
	* ppcnbsd-tdep.c (ppcnbsd_init_abi): Update.
	* shnbsd-tdep.c (shnbsd_init_abi): Update.
	* sparc-linux-tdep.c (sparc32_linux_init_abi): Update.
	* sparc-sol2-tdep.c (sparc32_sol2_init_abi): Update.
	* sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Update.
	* sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Update.
	* sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Update.
	* sparc64obsd-tdep.c (sparc64obsd_init_abi): Update.
	* sparcnbsd-tdep.c (sparc32nbsd_init_abi): Update.
	* sparcobsd-tdep.c (sparc32obsd_init_abi): Update.
	
2004-03-23  Andrew Cagney  <cagney@redhat.com>

	* tramp-frame.h, tramp-frame.h: New files.
	* Makefile.in (SFILES, tramp_frame_h, COMMON_OBS, tramp-frame.o):
	Update rules to include "tramp-frame.h" and "tramp-frame.c".

	* Makefile.in: Update all dependencies.

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

	* Makefile.in (trad_frame_h): Add $(frame_h).
	* trad-frame.h: Update copyright.  Include "frame.h".
	(struct trad_frame_cache, trad_frame_cache_zalloc): Declare.
	(trad_frame_set_id, trad_frame_get_id): Declare.
	(trad_frame_set_reg_addr, trad_frame_get_register): Declare.
	* trad-frame.c: Update copyright.
	(struct trad_frame_cache): Define.
	(trad_frame_cache_zalloc): New function.
	(trad_frame_set_id, trad_frame_get_id): New functions.
	(trad_frame_set_reg_addr, trad_frame_get_register): New functions.
	
2004-03-22  Andrew Cagney  <cagney@redhat.com>

	* s390-tdep.c (struct s390_stub_unwind_cache): Rename
	s390_pltstub_unwind_cache.
	(s390_stub_frame_unwind_cache): Rename
	s390_pltstub_frame_unwind_cache.
	(s390_stub_frame_this_id): Rename s390_pltstub_frame_this_id.
	(s390_stub_frame_prev_register): Rename
	s390_pltstub_frame_prev_register.
	(s390_stub_frame_unwind): Rename s390_pltstub_frame_unwind.
	(s390_stub_frame_sniffer): Rename s390_stub_frame_sniffer.

	From Ulrich Weigand:
	* s390-tdep.c (s390_pltstub_frame_sniffer): Handle invalid function
	pointer calls like PLT calls.

2004-03-22  Daniel Jacobowitz  <drow@mvista.com>

	* mips-tdep.c (non_heuristic_proc_desc): Search using the specified
	PC rather than the partial function start address.  Use the start
	address to sanity check the found PDR.

2004-03-22  Daniel Jacobowitz  <drow@mvista.com>

	* lin-lwp.c (lin_lwp_wait): Pass the LWP ID to
	linux_handle_extended_wait.

2004-03-22  Andrew Cagney  <cagney@redhat.com>

	* rs6000-tdep.c (frame_initial_stack_address): Delete unused
	function.

	* frame.h (generic_pop_current_frame): Delete declaration.
	(deprecate_pop_dummy_frame): Deprecate
	generic_pop_dummy_frame.
	* dummy-frame.c (deprecated_pop_dummy_frame): Update.
	(generic_pop_current_frame): Delete function.
	* mn10300-tdep.c (mn10300_pop_frame): Eliminate call to
	generic_pop_current_frame.
	* v850-tdep.c (v850_pop_frame): Update.
	* mcore-tdep.c (mcore_pop_frame): Update.
	* sh64-tdep.c (sh64_pop_frame): Update.
	* h8300-tdep.c (h8300_pop_frame): Update.

2004-03-22  Andrew Cagney  <cagney@redhat.com>

	* frame.h (deprecated_pc_in_call_dummy): Rename
	generic_pc_in_call_dummy.
	* dummy-frame.h (pc_in_dummy_frame): Delete declaration.
	* dummy-frame.c (deprecated_pc_in_call_dummy): Rename
	generic_pc_in_call_dummy.
	(pc_in_dummy_frame): Make static.
	* gdbarch.sh (DEPRECATED_PC_IN_CALL_DUMMY): Update.
	* gdbarch.h, gdbarch.c: Re-generate.
	* dummy-frame.c (dummy_frame_sniffer): Simplify.
	* frame.c (frame_type_from_pc): Call deprecated_pc_in_call_dummy.
	(legacy_get_prev_frame): Ditto.
	* inferior.h: Delete reference to generic_pc_in_call_dummy in
	comment.
	
2004-03-21  Andrew Cagney  <cagney@redhat.com>

	* inferior.h (deprecated_pc_in_call_dummy_at_entry_point): Delete
	declaration and out-of-date comment.
	* blockframe.c (deprecated_pc_in_call_dummy_at_entry_point):
	Delete function.
	* mn10300-tdep.c (mn10300_gdbarch_init): Do not set
	deprecated_pc_in_call_dummy.

	* infrun.c (handle_inferior_event): For non legacy frames, use the
	frame ID and frame type to identify a signal trampoline.  Update
	comments.

2004-03-21  Nathan J. Williams  <nathanw@wasabisystems.com>

	* mipsnbsd-tdep.c: Update copyright. Include "mips-tdep.h".
	* Makefile.in (mipsnbsd-tdep.o): Update dependencies.

2004-03-21  Andrew Cagney  <cagney@redhat.com>

	* frame-unwind.h: Update copyright.
	(struct frame_data): Add opaque declaration.
	(frame_sniffer_ftype): Declare.
	(struct frame_unwind): Add "unwind_data" and "sniffer".
	(frame_unwind_register_unwinder): Declare.
	(frame_unwind_find_by_frame): Add parameter "this_cache".
	* frame.c (get_frame_id, create_new_frame, legacy_get_prev_frame)
	(legacy_get_prev_frame, legacy_get_prev_frame)
	(get_frame_type): Pass the prologue_cache to
	frame_unwind_find_by_frame.
	* frame-unwind.c (struct frame_unwind_table_entry): Add field
	"unwinder".
	(frame_unwind_register_unwinder): New function.
	(frame_unwind_find_by_frame): Handle an unwind sniffer.

2004-03-20  Paul Hilfinger  <hilfingr@nile.gnat.com>

	* bcache.c (print_percentage): Use floating point to avoid
	incorrect results when portion*100 overflows.

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

	* ppc_tdep.h (ppc_linux_frame_saved_pc)
	(ppc_linux_init_extra_frame_info)
	(ppc_linux_frameless_function_invocation)
	(ppc_linux_frame_init_saved_regs, ppc_linux_frame_chain)
	(rs6000_frame_saved_pc, rs6000_init_extra_frame_info)
	(rs6000_frameless_function_invocation, rs6000_frame_init_saved_regs)
	(rs6000_frame_chain): Delete declarations.
	* ppc-linux-tdep.c (ppc_linux_frame_saved_pc)
	(ppc_linux_init_extra_frame_info)
	(ppc_linux_frameless_function_invocation)
	(ppc_linux_frame_init_saved_regs, ppc_linux_frame_chain): Delete.
	(ppc_linux_init_abi): Remove registration of above deleted functions.
	* rs6000-tdep.c (rs6000_init_extra_frame_info)
	(rs6000_frame_init_saved_regs, rs6000_init_frame_pc_first)
	(rs6000_frame_args_address, rs6000_saved_pc_after_call)
	(rs6000_pop_frame, rs6000_frameless_function_invocation)
	(rs6000_frame_saved_pc, rs6000_frame_chain): Delete.
	(rs6000_gdbarch_init): Remove registration of above deleted functions.
	Use rs6000_unwind_pc(), rs6000_frame_sniffer(),
	rs6000_unwind_dummy_id(), and rs6000_frame_base_sniffer() for
	frame management for all OSABIs.

2004-03-19  Andrew Cagney  <cagney@redhat.com>

	Committed by Kevin Buettner <kevinb@redhat.com>.

	* ppc-linux-tdep.c: Include "trad-frame.h", and "frame-unwind.h".
	Update copyright.
	(struct ppc_linux_sigtramp_cache, ppc_linux_sigtramp_cache)
	(ppc_linux_sigtramp_this_id, ppc_linux_sigtramp_prev_register)
	(ppc_linux_sigtramp_unwind, ppc_linux_sigtramp_sniffer)
	(ppc_linux_init_abi): Add both 32- and 64-bit signal trampoline
	unwinders.  #ifdef legacy frame code.
	* rs6000-tdep.c: Include "trad-frame.h", "frame-unwind.h", and
	"frame-base.h".
	(rs6000_unwind_pc, rs6000_unwind_dummy_id)
	(struct rs6000_frame_cache, rs6000_frame_cache)
	(rs6000_frame_this_id, rs6000_frame_prev_register)
	(rs6000_frame_sniffer, rs6000_frame_unwind)
	(rs6000_frame_base_address, rs6000_frame_base_sniffer)
	(rs6000_frame_base): Implement a traditional frame unwinder.
	(rs6000_gdbarch_init): When unknown, NetBSD, or GNU/Linux use the
	frame unwinder.

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

	* breakpoint.c (adjust_breakpoint_address): Don't adjust
	breakpoint address for watchpoints or the catch eventpoints.
	Add new paramter ``bptype''.  Adjust all callers.

2004-03-19  Andrew Cagney  <cagney@redhat.com>

	* config/pa/tm-hppa.h (GDB_TARGET_IS_HPPA): Delete unused macro.

	* PROBLEMS: Delete note that ARM does not use frame code, problem
	fixed.

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

	* stack.c (return_command): Delete code wrapped in #ifdef
	DEPRECATED_CALL_DUMMY_HAS_COMPLETED, macro no longer defined.

	* rs6000-tdep.c (skip_prologue): Record only the first LR save.

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

	* config/mips/tm-nbsd.h: Replace IN_SIGTRAMP with
	DEPRECATED_IN_SIGTRAMP.
	* config/powerpc/tm-linux.h (DEPRECATED_IN_SIGTRAMP): Ditto.
	* config/mips/tm-linux.h (DEPRECATED_IN_SIGTRAMP) Ditto.
	* config/mips/tm-irix6.h (DEPRECATED_IN_SIGTRAMP): Ditto.
	* config/mips/tm-irix5.h (DEPRECATED_IN_SIGTRAMP): Ditto.
	* config/ia64/tm-linux.h (DEPRECATED_IN_SIGTRAMP): Ditto.
	* config/ia64/tm-aix.h (DEPRECATED_IN_SIGTRAMP): Ditto.
	* config/arm/tm-linux.h (DEPRECATED_IN_SIGTRAMP): Ditto.
	* config/arm/tm-embed.h (DEPRECATED_IN_SIGTRAMP): Ditto.
	* arch-utils.c (legacy_pc_in_sigtramp): Ditto.
	* arch-utils.h: Remove reference to IN_SIGTRAMP in comment.

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

	* frame-base.c: Update copyright.  Include "gdb_obstack.h".
	(struct frame_base_table_entry): Define.
	(struct frame_base_table): Re-implement as a linked list.
	(frame_base_init): Re-implement.
	(frame_base_table): Delete function.
	(append_predicate): Delete function.
	(frame_base_append_sniffer): Update.
	(frame_base_set_default): Update.
	(frame_base_find_by_frame): Update.
	(_initialize_frame_base): Use gdbarch_data_register_pre_init.
	* Makefile.in (frame-base.o): Update dependencies.

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

	* frame.c (legacy_get_prev_frame): Pass correct frame to
	frame_unwind_find_by_frame.

2004-03-17  David Carlton  <carlton@kealia.com>

	* NEWS: Mention C++ nested types and namespaces

2004-03-16  Michael Chastain  <mec.gnu@mindspring.com>

	* PROBLEMS: Add section headers, "Regressions since gdb 6.0"
	and "Regressions since gdb 5.3.".  Add known regressions since
	gdb 6.0.

2004-03-16  David Carlton  <carlton@kealia.com>

	* dwarf2read.c (process_structure_scope): Process children even
	when we're a declaration.

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

	* symtab.h (find_pc_sect_partial_function): Delete declaration.
	* blockframe.c (find_pc_partial_function)
	(find_pc_sect_partial_function): Merge into a single
	find_pc_partial_function.

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

	* i386bsd-nat.c: s/regno/regnum/g.
	(fetch_inferior_registers): Use I386_ST0_REGNUM instead of
	FP0_REGNUM.
	(store_inferior_registers): Likewise.

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

	* i386bsd-nat.c (fill_fpregset): Call i387_collect_fsave instead
	of i387_fill_fsave.
	(store_inferior_registers): Call i387_collect_fsave and
	i387_collect_fxsave instead of i387_fill_fsave and
	i387_fill_fxsave.

2004-03-15  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (frame-unwind.o): Update dependencies.
	* frame-unwind.c: Include "gdb_obstack.h".
	(frame_unwind_init): Replace "gdbarch" parameter with an "obstack"
	parameter.
	(append_predicate): Delete function.
	(struct frame_unwind_table_entry): New structure.
	(struct frame_unwind_table): Replace "sniffer" with "head" and
	"tail".
	(frame_unwind_append_sniffer): Update.
	(frame_unwind_find_by_frame): Update.
	(_initialize_frame_unwind): Registe frame_unwind_init using
	gdbarch_data_register_pre_init.

2004-03-15  Mark Kettenis  <kettenis@gnu.org>

	* i386bsd-nat.c: Update copyright year.
	(CANNOT_FETCH_REGISTER, CANNOT_STORE_REGISTER): Undefine and then
	define unconditionally.

2004-03-15  Mark Kettenis  <kettenis@gnu.org>

	* i387-tdep.h (i387_collect_fsave): New prototype.
	* i387-tdep.c (i387_collect_fsave): New function containing most
	of the code from i387_fill_fsave.
	(i387_fill_fsave): Call i387_collect_fsave.

2004-03-15  Mark Kettenis  <kettenis@gnu.org>

	* i386-linux-tdep.c: Update copyright year.
	(i386_linux_svr4_fetch_link_map_offsets): Remove function.
	(i386_linux_init_abi): Set solib_svr4_fetch_link_maop_offsets to
	svr4_ilp32_link_map_offsets instead of
	i386_linux_svr4_fetch_link_map_offsets.

2004-03-15  David Carlton  <carlton@kealia.com>

	Fix for PR c++/1553:
	* dwarf2read.c (read_structure_type): Determine type name by
	calling determine_class_name.
	(determine_class_name): New.
	(determine_prefix): Look at TYPE_TAG_NAME and call
	determine_class_name when appropriate.
	(determine_prefix_aux, class_name): Delete.

2004-03-15  Kevin Buettner  <kevinb@redhat.com>

	* breakpoint.c (TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Delete
	unused macro definition.  The definition in target.h (or perhaps
	elsewhere) takes precedence.

2004-03-15  Andrew Cagney  <cagney@redhat.com>

	* ppc-tdep.h: Update copyright.
	(ppc_linux_supply_gregset, ppc_linux_supply_fpregset): Change
	function signatures to match "regsets.h".
	* ppc-linux-tdep.c: Include "regset.h".
	(ELF_GREGSET_SIZE): Delete.
	(right_supply_register): New function.
	(ppc_linux_supply_fpregset, ppc_linux_supply_gregset): Rewrite
	using right_supply_register.
	(ppc32_linux_supply_gregset, ppc64_linux_supply_gregset): New
	functions.
	(ppc64_linux_gregset, ppc32_linux_gregset): Define.
	(ppc_linux_init_abi): Register ppc_linux_regset_from_core_section.
	(_initialize_ppc_linux_tdep): Do not register
	ppc_linux_regset_core_fns.
	(ppc_linux_regset_from_core_section): Replace
	fetch_core_registers.
	(ppc_linux_regset_core_fns): Delete.
	* ppc-linux-nat.c: (right_fill_reg): New function.
	(supply_gregset): Update call to ppc_linux_supply_gregset.
	(fill_gregset): Clear the register set, use right_fill_reg.
	(supply_fpregset): Update call to ppc_linux_supply_fpregset.
	(fill_fpregset): Use right_fill_reg, correctly compute FP offsets.

	* rs6000-tdep.c (rs6000_register_virtual_type): Make registers
	unsigned.

2004-03-15  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (gdbarch_data_pre_init_fytpe)
	(gdbarch_data_register_pre_init, gdbarch_data_post_init_fytpe)
	(gdbarch_data_register_post_init): Replace gdbarch_data_init_ftype
	and register_gdbarch_data.
	(deprecated_set_gdbarch_data): Rename set_gdbarch_data.
	(struct gdbarch_data): Replace "init" by "pre_init" and
	"post_init".
	* gdbarch.h, gdbarch.c: Re-generate.
	* dwarf2-frame.c (dwarf2_frame_init): Replace "gdbarch" paramter
	with"obstack", use OBSTACK_ZALLOC.
	(dwarf2_frame_ops): Delete.
	(dwarf2_frame_set_init_reg): Use gdbarch_data.
	(dwarf2_frame_init_reg): Use gdbarch_data.
	(_initialize_dwarf2_frame): Use gdbarch_data_register_pre_init.
	* solib-svr4.c (set_solib_svr4_fetch_link_map_offsets) 
	(_initialize_svr4_solib): Update.
	* user-regs.c (_initialize_user_regs): Update.
	* reggroups.c (_initialize_reggroup): Update.
	* regcache.c (_initialize_regcache): Update.
	* mips-linux-tdep.c (_initialize_mips_linux_tdep): Update.
	* libunwind-frame.c (_initialize_libunwind_frame): Update.
	* gnu-v3-abi.c (init_gnuv3_ops): Update.
	* frame-unwind.c (_initialize_frame_unwind): Update.
	* frame-base.c (_initialize_frame_base): Update.
	* user-regs.c (user_reg_add): Update.
	* reggroups.c (reggroup_add): Update.
	* mips-linux-tdep.c (set_mips_linux_register_addr): Update.
	* libunwind-frame.c (libunwind_frame_set_descr): Update.
	* frame-unwind.c (frame_unwind_append_sniffer): Update.
	* frame-base.c (frame_base_table): Update.
	* remote.c (_initialize_remote): Update.
	* gdb_obstack.h (OBSTACK_ZALLOC, OBSTACK_CALLOC): Define.
	
2004-03-15  Andrew Cagney  <cagney@redhat.com>

	* cris-tdep.c (bfd_lookup_symbol): Delete unused function.

2004-03-15  Kevin Buettner  <kevinb@redhat.com>

	* Makefile.in (frv-linux-tdep.o): Add dependencies.
	* frv-linux-tdep.c: New file.
	* frv-tdep.c (struct gdbarch_tdep): Add new field
	``sigcontext_reg_addr''.
	(frv_set_sigcontext_reg_addr, frv_sigtramp,frame_cache)
	(frv_sigtramp_frame_this_id, frv_sigtramp_frame_prev_register)
	(frv_sigramp_frame_sniffer): New functions.
	(frv_sigtramp_frame_unwind): New static global.
	(frv_gdbarch_init): Hook in ABI-specific overrides.  Hook up frame
	sniffers.
	* frv-tdep.h (frv_set_sigcontext_reg_addr): New function.
	* config/frv/frv.mt (TDEPFILES): Add frv-linux-tdep.o.

2004-03-15  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (frv_analyze_prologue): Terminate prologue scan,
	but not via a call to error(), when unable to read memory.

2004-03-15  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (frv_call_dummy_words): Delete.
	(frv_frame_unwind_cache): Delete unused variable, ``prev_sp''.

2004-03-15  Andrew Cagney  <cagney@redhat.com>

	* infrun.c (handle_step_into_function, step_over_function): Only
	update and use STEP_FRAME_ID when the system is using legacy
	frames.  Update comments.

2004-03-14  Mark Kettenis  <kettenis@gnu.org>

	* amd64-linux-tdep.h: Remove file.
	* amd64-linux-tdep.c: Don't include "inferior.h" and
	"amd64-linux-tdep.h".  Include "frame.h" and "solib-svr4.h".
	(USER_R15, USER_R14, USER_R13, USER_R12, USER_RBP, USER_RBX)
	(USER_R11, USER_R10, USER_R9, USER_R8, USER_RAX, USER_RCX)
	(USER_RDX, USER_RSI, USER_RDI, USER_RIP, USER_CS, USER_EFLAGS)
	(USER_RSP, USER_SS, USER_DS, USER_ES, USER_FS, USER_GS): Remove
	macros.
	(user_to_gdb_regmap): Remove variable.
	(amd64_linux_gregset_reg_offset): New variable.
	(amd64_core_fns): Remove variable.
	(fetch_core_registers): Remove function.
	(amd64_linux_supply_gregset, amd64_linux_fill_gregset): Remove
	functions.
	(_initialize_amd64_linux_tdep): Don't set add_core_fns.
	* amd64-linux-nat.c: Don't include "amd64-linux-tdep.h".
	* Makefile.in (amd64_linux_tdep_h): Remove.
	(amd64-linux-nat.o): Update dependencies.
	(amd64-linux-tdep.o): Update dependencies.

	* amd64-linux-nat.c (GETFPREGS_SUPPLIES): Remove macro.
	(fetch_regs, fetch_fpregs, store_regs, store_fpregs): Remove
	functions.
	(fetch_inferior_registers, store_inferior_registers): Rewrite.

	* amd64-tdep.h (amd64_fill_fxsave): Remove prototype.
	* amd64-tdep.c (amd64_fill_fxsave): Remove function.

2004-03-14  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (read_structure_type): Rename from
	read_structure_scope.  Don't create a symbol or call process_die. 
	Return immediately if die->type is set.  Call read_type_die before
	dwarf2_add_member_fn.
	(process_structure_scope): New function.
	(read_enumeration_type, process_enumeration_scope): New functions,
	broken out from read_enumeration.  Don't create the enumeration
	type if it has already been created.
	(read_enumeration): Removed.
	(process_die): Call read_structure_type, process_structure_scope,
	read_enumeration_type, and process_enumeration_scope.  Just call
	new_symbol for base and subrange types.  Add a comment about other
	type dies.
	(read_type_die): Call read_enumeration_type.
	(add_partial_structure, new_symbol): Update comments.

2004-03-13  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (m68hc11_register_name): Get soft reg information.

2004-03-13  Stephane Carrez  <stcarrez@nerim.fr>

	* tui/tui-win.h (tui_get_cmd_list): Declare.
	* tui/tui-win.c (tui_command): New function.
	(tui_get_cmd_list): New function.
	(_initialize_tui_win): Moved initialization of tui command in
	tui_get_cmd_list.

	* tui/tui-data.c (init_content_element): Setup new data members.
	(init_win_info): Likewise.
	(free_content_elements): Free it.
	* tui/tui-data.h (struct tui_data_element): Store the register
	content to print.
	(struct tui_data_info): Keep the current register group.

	* tui/tui-layout.c (tui_set_layout): Update call to tui_show_registers.

	* tui/tui-regs.h (tui_show_registers): Update prototype.
	(tui_toggle_float_regs, tui_calculate_regs_column_count): Remove.
	(tui_resize_all): No need to calculate anything for register window.
	* tui/tui-regs.c (tui_calculate_regs_column_count): Remove.
	(tui_set_register_element, tui_set_general_regs_content): Remove.
	(tui_set_special_regs_content): Remove.
	(tui_set_general_and_special_regs_content): Remove.
	(tui_set_float_regs_content): Remove.
	(tui_reg_value_has_changed, tui_get_register_raw_value): Remove.
	(tui_set_regs_content): Remove.
	(tui_toggle_float_regs, _tui_toggle_float_regs_command): Remove.
	(tui_v_show_registers_command_support): Remove.
	(tui_show_registers): Use a reggroup to specify the registers to show.
	(tui_show_register_group): New function.
	(tui_display_registers_from): Compute the layout of register window
	and refresh with new API; be sure to delete old register windows.
	(tui_check_register_values): Update to use tui_get_register and
	tui_display_data.
	(tui_display_register): Just refresh the register window part.
	(tui_register_format): Format registers and save in tui_data_element.
	(tui_get_register): New to combine tui_reg_value_has_changed and
	tui_get_register_raw_value; fix to use the new gdb API.
	(tui_show_float_command): Renamed tui_reg_float_command.
	(tui_show_general_command): Renamed tui_reg_general_command.
	(tui_show_special_command): Renamed tui_reg_system_command.
	(_initialize_tui_regs): Remove unused commands.

2004-03-13  Mark Kettenis  <kettenis@gnu.org>

	* NEWS (New native configurations): Mention OpenBSD/amd64.

	* config/i386/nm-fbsd.h: Include "config/nm-bsd.h".
	(PTRACE_ARG3_TYPE, FETCH_INFERIOR_REGISTERS, ATTACH_DETACH):
	Remove defines.
	* config/i386/nm-fbsd64.h: Likewise.
	* config/i386/nm-obsd.h: Likewise.
	* config/sparc/nm-fbsd.h: Likewise.  Update copyright year.
	* config/alpha/nm-fbsd.h: Likewise.  Update copyright year.

2004-03-12  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (set_variant_scratch_registers): New function.
	* frv-tdep.h (scr0_regnum, scr1_regnum, scr2_regnum, scr3_regnum):
	New constants.

	From Richard Sandiford  <rsandifo@redhat.com>:
	* frv-tdep.c (frv_gdbarch_init): Add FR450 support.

2004-03-12  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c, frv-tdep.h  (first_gpr_regnum, sp_regnum, fp_regnum)
	(struct_return_regnum, last_gpr_regnum, first_fpr_regnum)
	(last_fpr_regnum, pc_regnum, first_spr_regnum, psr_regnum, ccr_regnum)
	(cccr_regnum, fdpic_loadmap_exec_regnum, fdpic_loadmap_interp_regnum)
	(tbr_regnum, brr_regnum, dbar0_regnum, dbar1_regnum, dbar2_regnum)
	(dbar3_regnum, lr_regnum, lcr_regnum, iacc0h_regnum, iacc0l_regnum)
	(last_spr_regnum, frv_num_regs, first_pseudo_regnum, iacc0_regnum)
	(last_pseudo_regnum, frv_num_pseudo_regs): Move constant (enum)
	definitions from frv-tdep.c to frv-tdep.h.

2004-03-12  Kevin Buettner  <kevinb@redhat.com>

	Add shared library support for FR-V FDPIC ABI:
	* Makefile.in (solib-frv.o): Add dependencies.
	* frv-tdep.c (find_func_descr, frv_convert_from_func_ptr_addr):
	New functions.
	(frv_push_dummy_call): Add support for FDPIC ABI.
	(frv_gdbarch_init): Call set_gdbarch_convert_from_func_ptr_addr()
	for FDPIC ABI.
	* frv-tdep.h (frv_fdpic_find_global_pointer): Declare.
	(frv_fdpic_find_canonical_descriptor): Declare.
	* solib-frv.c: New file.
	* config/frv/frv.mt (TDEPFILES): Add solib.o and solib-frv.o.
	* config/frv/tm-frv.h (solib.h): Include.

2004-03-12  Kevin Buettner  <kevinb@redhat.com>

	* Makefile.in (elf_frv_h, frv_tdep_h): Define.
	(frv-tdep.o): Update dependencies.
	* frv-tdep.h: New file.
	* frv-tdep.c (elf-bfd.h, elf/frv.h, osabi.h, frv-tdep.h): Include.
	(fdpic_loadmap_exec_regnum, fdpic_loadmap_interp_regnum): New
	constants.
	(struct gdbarch_tdep): Add new member ``frv_abi''.
	(frv_abi, frv_fdpic_loadmap_addresses, set_variant_abi_fdpic): New
	functions.
	(new_variant): Set ``frv_abi'' field.
	(gdb_arch_init): Detect FDPIC executables.

2004-03-12  Mark Kettenis  <kettenis@gnu.org>

	* solib-svr4.h: Change SOLIB_SVR4 wrapper into SOLIB_SVR4_H
	wrapper.

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

	* solib-svr4.h: Add #ifndef SOLIB_SVR4 wrapper.

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

	* solist.h (master_so_list): New function.
	* solib.c (master_so_list): Likewise.
	* solib-svr4.c (enable_break): Iterate over so_list entries
	obtained from master list instead of entries obtained directly
	via svr4_current_sos().

2004-03-10  Ben Elliston  <bje@gnu.org>

	* MAINTAINERS: Update my mail address.

2004-03-10  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* remote-m32r-sdi.c: Support hardware watchpoint.

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* user-regs.c: Update copyright years.
	(struct user_regs): Rename to gdb_user_regs.
	(append_user_reg, builtin_user_regs, user_regs_init)
	(user_reg_add, user_reg_map_name_to_regnum)
	(usernum_to_user_reg): Update.

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (skip_leb128, peek_die_abbrev, skip_one_die)
	(skip_children): New functions.
	(locate_pdi_sibling): Call skip_children.

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* arm-tdep.c (arm_use_struct_convention): Look through typedefs.
	* gdbtypes.c (check_typedef): Update comments.

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct comp_unit_head): Remove dwarf2_abbrevs array.
	(struct dwarf2_cu): Add abbrev_obstack and dwarf2_abbrevs
	pointer.  Update comment about comp_unit_head.
	(struct abbrev_info): Shorten two int flags.
	(dwarf_alloc_abbrev): Take a CU argument.
	(dwarf2_build_psymtabs_hard): Call dwarf2_free_abbrev_table
	each time through the loop.  Update cleanup argument.
	(psymtab_to_symtab_1): Update cleanup call.
	(dwarf2_read_abbrevs, dwarf2_alloc_abbrev): Allocate on the
	abbrev_obstack.
	(dwarf2_free_abbrev_table): Renamed from dwarf2_empty_abbrev_table.
	Just call obstack_free and clear the pointer.

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* infrun.c (handle_inferior_event): Remove short-circuit code for
	events in a different thread.

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* target.c (debug_to_xfer_memory): If targetdebug is 1, don't
	print the whole transfer.
	(initialize_targets): Update description of "set debug target".

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* arm-tdep.c (thumb_get_next_pc): Handle Thumb BLX.

2004-03-08  Nathan J. Williams  <nathanw@wasabisystems.com>

	* MAINTAINERS (write after approval): Add myself.

2004-03-08  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (sh_print_registers_info): Use for loop.
	Don't skip multiple registers when a float register is encountered.

2004-03-08  Corinna Vinschen  <vinschen@redhat.com>

	Fix PR tdep/1291.
	* sh-tdep.c (sh_analyze_prologue): Align PC relative addressing
	to official SH documentation.

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

	* ppc-linux-nat.c (ppc_ptrace_cannot_fetch_store_register): Delete
	unused function.

2004-03-07  Daniel Jacobowitz  <drow@mvista.com>

	* arm-tdep.c (thumb_get_next_pc): Handle BX.
	(arm_get_next_pc): Handle BX and BLX.

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

	* hppa-tdep.c: Replace DEPRECATED_FP_REGNUM with HPPA_FP_REGNUM,
	FP0_REGNUM with HPPA_FP0_REGNUM, and SP_REGNUM with
	HPPA_SP_REGNUM.
	(hppa_register_raw_size, hppa_register_byte, hppa_read_fp)
	(hppa_target_read_fp): Delete.
	(hppa_gdbarch_init): Do not set deprecated register_raw_size,
	register_virtual_size, max_register_raw_size,
	max_register_virtual_size, register_byte, register_size,
	target_read_fp, fp_regnum, and register_bytes.  Set register_type
	instead of register_virtual_type.
	(hppa32_register_type, hppa64_register_type): Replace
	hppa32_register_virtual_type and hppa64_register_virtual_type.
	* config/pa/tm-hppa.h (HPPA_FP0_REGNUM, HPPA_SP_REGNUM)
	(HPPA_FP_REGNUM): Define.

	* hppa-tdep.c (hppa_gdbarch_init): Add missing "break".

	* config/pa/tm-hppa.h (DEPRECATED_DO_REGISTERS_INFO)
	(pa_do_registers_info): Delete.
	* hppa-tdep.c (pa_do_registers_info, pa_do_strcat_registers_info)
	(pa_print_registers, pa_print_fp_reg, pa_strcat_registers) 
	(pa_strcat_fp_reg, pa_register_look_aside): Delete.

	* infcall.c (legacy_push_dummy_code): Delete #ifdef
	GDB_TARGET_IS_HPPA code.
	* config/pa/tm-hppa.h (DEPRECATED_FIX_CALL_DUMMY)
	(hppa_fix_call_dummy, DEPRECATED_CALL_DUMMY_HAS_COMPLETED) 
	(DEPRECATED_DUMMY_WRITE_SP, CALL_DUMMY): Delete.
	* config/pa/tm-hppa64.h (CALL_DUMMY): Delete.
	* hppa-tdep.c (hppa_frame_chain, hppa_frame_chain_valid) 
	(hppa_push_dummy_frame, hppa_pop_frame, hppa_push_arguments) 
	(hppa_fix_call_dummy, hppa64_stack_align, hppa_frame_saved_pc) 
	(hppa_init_extra_frame_info, hppa_saved_pc_after_call)
	(hppa64_call_dummy_breakpoint_offset, hppa_frame_init_saved_regs) 
	(hppa_frameless_function_invocation, hppa64_store_return_value) 
	(hppa_store_struct_return, hppa64_extract_return_value) 
	(hppa64_use_struct_convention, hppa_frame_find_saved_regs)
	(hppa32_call_dummy_length, hppa64_call_dummy_length) 
	(find_dummy_frame_regs, FUNC_LDIL_OFFSET, FUNC_LDO_OFFSET)
	(find_proc_framesize, deposit_21, restore_pc_queue) 
	(find_return_regnum, pc_in_interrupt_handler, deposit_14) 
	(rp_saved, pc_in_linker_stub): Delete.

	Unconditionally enable 64-bit frame and ABI code.
	* hppa-tdep.c (hppa_gdbarch_init): Do not set deprecated
	call_dummy_breakpoint_offset, call_dummy_length, stack_align,
	push_dummy_frame, fix_call_dummy, push_arguments,
	call_dummy_location, extract_return_value, use_struct_convention,
	store_return_value, store_struct_return, saved_pc_after_call,
	init_frame_pc, frame_init_saved_regs, init_extra_frame_info,
	frame_chain, frame_chain_valid, frameless_function_invocation,
	frame_saved_pc, and pop_frame.

	* hppa-tdep.c: Replace PC_REGNUM with PCOQ_HEAD_REGNUM.
	(hppa64_return_value, hppa64_push_dummy_call): Rewrite.
	(hppa_gdbarch_init): Do not set PC_REGNUM.

2004-03-06  Mark Kettenis  <kettenis@gnu.org>

	* config/alpha/tm-fbsd.h: Remove file.
	* config/alpha/fbsd.mt: Tweak comment.
	(TM_FILE): Set to tm-alpha.h.

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

	* infrun.c (step_over_function): When non-legacy code, and no
	step_frame_id, use the unwinder to get the caller's frame ID.

2004-03-05  Mark Kettenis  <kettenis@gnu.org>

	* i386bsd-tdep.c (_initialize_i386bsd_tdep): Register
	i386bsd_core_osabi_sniffer for bfd_arch_i386 instead of
	bfd_arch_unknown.  Adjust comment.

	* i386-nat.c: Fix typo in comment.  Re-introduce paranoiac.
	* i386obsd-tdep.c: Correct spelling in comment.
	* i386nbsd-tdep.c: Correct spelling in comment.
	* sparc-tdep.c: Correct spelling in comments.

2004-03-05  David Carlton  <carlton@kealia.com>

	* cp-namespace.c (cp_lookup_transparent_type_loop): Fix recursion
	bug.

2004-03-05  Mark Kettenis  <kettenis@gnu.org>

	* sparc-tdep.c: Fix typo in comment.

2004-03-04  J. Brobecker  <brobecker@gnat.com>

	* hppa-tdep.c (hppa_frame_cache): Avoid undefined return value.

2004-03-04  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c: Add comment describing memory lifetimes.
	(struct dwarf2_pinfo): Update comment.
	(dwarf2_add_field, dwarf2_add_member_fn, read_structure_scope)
	(read_enumeration, new_symbol): Don't use obsavestring.

2004-03-04  Mark Kettenis  <kettenis@gnu.org>

	* amd64-linux-nat.c (fill_fpregset): Call amd64_colletc_fxsave
	instead of amd64_fill_fxsave.
	* amd64bsd-nat.c (store_inferior_registers): Likewise.
	* amd64fbsd-nat.c (fill_fpregset): Likewise.

	* sparc-tdep.c (sparc_frame_cache): Don't bail out if %fp is zero.
	Reorganize code a bit.

2004-03-04  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (cris_scan_prologue): Save the frame pointer's offset
	when the frame pointer is pushed.  Don't set the frame pointer's 
	address on the stack unless it's actually located there.  
	Set the SRP's address on the stack correctly when the PC is still in
	the prologue.
	(cris_return_value): New function.
	(cris_gdbarch_init): Clear deprecated store_return_value,
	extract_return_value.

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

	* stabsread.c (reg_value_complaint): The maximum register number
	is one less than the number of registers.

2004-03-02  Andrew Cagney  <cagney@redhat.com>

	* i386-tdep.h (enum i386_regnum): Add I386_DS_REGNUM,
	I386_ES_REGNUM, I386_FS_REGNUM, and I386_GS_REGNUM.  Remove
	trailing comma and redundant assignment of I386_ST0_REGNUM.
	* amd64-nat.c (amd64_collect_native_gregset): Zero-extend the
	32-bit segment registers.

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

	* rs6000-tdep.c (rs6000_init_frame_pc_first): Fix compiler error,
	use frame_relative_level and get_next_frame.

2004-02-29  Andrew Cagney  <cagney@redhat.com>

	* rs6000-tdep.c (rs6000_init_frame_pc_first): New function.
	(rs6000_gdbarch_init): Set deprecated_init_frame_pc_first.
	* config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST):
	Delete macro.

2004-02-29  Daniel Jacobowitz  <drow@mvista.com>

	* inflow.c (terminal_inferior): Don't give up the terminal if we
	previously couldn't get the inferior's terminal state.

2004-02-29  Daniel Jacobowitz  <drow@mvista.com>

	* regcache.c (read_pc_pid): Restore inferior_ptid after reading
	PC_REGNUM.

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

	* NEWS: Refer to GDB 6.1.
	* README: Refer to GDB 6.1.
	* PROBLEMS: Refer to GDB 6.1.

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

	* thread-db.c (disable_thread_signals): Remove unused function.

2004-02-28  Mark Kettenis  <kettenis@gnu.org>

	* amd64-nat.c: Include "gdb_string.h".
	(amd64_collect_native_gregset): Zero-extend the 32-bit
	general-purpose registers and %eip.

	* amd64-tdep.h: (amd64_collect_fxsave): New prototype.
	* amd64-tdep.c (amd64_collect_fxsave): New function.
	(amd64_fill_fxsave): Simply call amd64_collect_fxsave.

	* i387-tdep.h: Update copyright year.
	(i387_collect_fxsave): New prototype.
	* i387-tdep.c: Update copyright year.
	(i387_collect_fxsave): New function containing most of the code
	from i387_fill_fxsave.
	(i387_fill_fxsave): Call i387_collect_fxsave.

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

        * amd64-linux-nat.c (ps_get_thread_area): When architecture is
	i386 use PTRACE_GET_THREAD_AREA.  Suggested by Roland McGrath.

2004-02-28  Mark Kettenis  <kettenis@gnu.org>

	* amd64-tdep.c (amd64_frame_cache): Fix comment.

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

	* utils.c: Use "", instead of <>, to include readline.
	tui/tui-win.c, tui/tui.c, tui/tui-hooks.c: Ditto.
	* tracepoint.c, top.c, symmisc.c, symfile.c: Ditto.
	* source.c, solib.c, exec.c, event-top.c: Ditto.
	* corelow.c, completer.c, cli/cli-setshow.c: Ditto.
	* cli/cli-dump.c, cli/cli-cmds.c: Ditto.
	* Makefile.in: Update all dependencies.
	(readline_tilde_h, readline_history_h): Define.
	(readline_headers): Delete.

2004-02-28  Mark Kettenis  <kettenis@gnu.org>

	* config/djgpp/fnchange.lst: Rename "config/i386/nm-linux64.h" to
	"config/i386/nm-lx64.h" and "config/i386/tm-linux64.h" to
	"config/i386/tm-lx64.h".

	* config/djgpp/fnchange.lst: Rename "amd64-linux-tdep.c" to
	"amd64-ltdep.c" and "amd64-linux-nat.c" to "amd64-lnat.c".  Remove
	rules for "x86-64-linux-tdep.c" and "x86-64-linux-nat.c".

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

	* dwarf2-frame.h (struct gdbarch): Add opaque declaration.

	* breakpoint.c (_initialize_breakpoint): Use
	"add_setshow_auto_boolean_cmd.  Better word-wrap help messages.
	Add help to show command.

2004-02-28  Mark Kettenis  <kettenis@gnu.org>

	* i386-nat.c: Reformat to be closer to coding standards.
	(i386_handle_nonaligned_watchpoint): Rename local variable `rv' to
	`retval'.  Make variables `align' and `size' local to while-loop.
	(i386_stopped_data_address): Rename local variable `ret' to `addr'.
	(_initialize_i386_nat): New prototype.

	* tui/tui.c: Include <readline/readline.h> instead of
	"readline/readline.h".  Include it after <term.h> and
	"gdb_curses.h".

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

	* hppa-tdep.c (hppa_gdbarch_init): On 32-bit systems always use
	the new frame unwind code.
	(hppa_frame_cache): Use PCOQ_HEAD_REGNUM instead of PC_REGNUM.
	(hppa_frame_prev_register): Compute PCOQ_TAIL_REGNUM from
	PCOQ_HEAD_REGNUM.

	* hppa-tdep.c (hppa_gdbarch_init): On 32-bit systems always
	"return_value" and "push_dummy_call".
	(hppa32_use_struct_convention): Delete unused function.
	(hppa32_store_return_value): Delete unused function.
	(hppa32_extract_return_value): Delete unused function.
	(hppa32_stack_align): Delete function.

2004-02-27  Eli Zaretskii  <eliz@elta.co.il>

	* coffread.c (enter_linenos): Don't let rawptr reference memory
	outside linetab[]'s limits.

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

	* hppa-tdep.c (hppa32_push_dummy_call): Fix code reserving
	inferior stack space - the stack needs to grow upwards.
	(hppa32_frame_align): New function.
	(hppa64_frame_align): Replace hppa_frame_align.
	(hppa_gdbarch_init): Update.

2004-02-26  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (frame_unwind.h, frame-base.h, trad-frame.h)
	(dwarf2-frame.h): Include.
	(enum cris_regnums): New enum CRIS_FP_REGNUM.
	Remove static variables related to ABI setting.
	(struct gdbarch_tdep): Remove cris_abi member.
	(struct frame_extra_info): Remove.
	(cris_unwind_cache, stack_item): New structs.
	(cris_frame_unwind, cris_frame_base): New variables.
	(push_stack_item, pop_stack_item)
	(cris_frame_unwind_cache, cris_frame_this_id)
	(cris_frame_prev_register, cris_unwind_dummy_id, cris_frame_align)
	(cris_push_dummy_code, cris_push_dummy_call, cris_frame_sniffer)
	(cris_frame_base_address, cris_scan_prologue, cris_unwind_pc)
	(cris_unwind_sp, cris_store_return_value, cris_extract_return_value)
	(cris_reg_struct_has_addr): New functions.
	(cris_examine, cris_frame_init_saved_regs, cris_frame_chain)
	(cris_frame_saved_pc, cris_saved_pc_after_call, 
	(cris_store_struct_return, cris_frameless_function_invocation)
	(cris_pop_frame, cris_skip_prologue_main)
	(cris_abi_original_store_return_value)
	(cris_abi_v2_store_return_value)
	(cris_abi_original_extract_return_value)
	(cris_abi_v2_extract_return_value)
	(cris_abi_original_reg_struct_has_addr)
	(cris_abi_v2_reg_struct_has_addr)
	(cris_abi_original_push_arguments, cris_abi_v2_push_arguments)
	(cris_push_return_address, cris_abi_update): Remove.
	(_initialize_cris_tdep): Remove ABI command.
	(cris_dump_tdep): Ditto.
	(cris_gdbarch_init): Remove ABI command.  
	Set store_return_value, extract_return_value, push_dummy_code,
	push_dummy_call, frame_align, unwind_pc, unwind_sp, unwind_dummy_id,
	frame_unwind_append_sniffer, frame_base_set_default.
	Clear deprecated init_frame_pc, push_arguments, store_return_value,
	extract_return_value, fp_regnum, pc_in_call_dummy, call_dummy_words,
	sizeof_call_dummy_words, get_saved_register, push_return_address,
	pop_frame, store_struct_return, frame_init_saved_regs, 
	init_extra_frame_info, frameless_function_invocation, frame_chain,
	frame_saved_pc, saved_pc_after_call, save_dummy_frame_tos,
	dummy_write_sp.
	
2004-02-26  Jeff Johnston  <jjohnstn@redhat.com>

	* valprint.h (print_hex_chars, print_char_chars): New prototypes.
	* valprint.c (print_hex_chars): Change from static to external.
	(print_char_chars): New function.
	* printcmd.c (print_scalar_formatted): For integer and enum types
	that are longer than LONGEST, perform processing via appropriate
	print_*_chars routines.

2004-02-26  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in: Update dependencies.
	Changes from Ulrich Weigand,
	* s390-tdep.c: Include "dwarf2-frame.h".
	(s390_dwarf2_frame_init_reg): New function.
	(s390_gdbarch_init): Install dwarf2_frame_sniffer and
	dwarf2_frame_base_sniffer.  Call dwarf2_frame_set_init_reg.

2004-02-26  Jeff Johnston  <jjohnstn@redhat.com>

	* breakpoint.c (pending_break_support): New setting variable.
	(break_command_1): Account for pending_break_support setting
	when creating pending breakpoints.
	(set_breakpoint_cmd, show_breakpoint_cmd): New functions.
	(_initialize_breakpoint): Add "set breakpoint pending" and
	"show breakpoint pending" commands.

2004-02-26  Andrew Cagney  <cagney@redhat.com>

	Fix PR i18n/1570.
	* charset.c (backslashable, backslashed, represented): Remove 'e'
	from list of escaped characters, not part of ISO-C.

2004-02-25  J. Brobecker  <brobecker@gnat.com>

	From Peter Schauer <schauer@pdf.de>:
	* tui/tui.c: Move system header includes after local includes.
	Fixes a build failure on solaris systems.

2004-02-25  J. Brobecker  <brobecker@gnat.com>

	* configure.in: Refine the previous change.
	* configure: Regenerate.

2004-02-25  Mark Kettenis  <kettenis@gnu.org>

	* amd64-tdep.h: Renamed from x86-64-tdep.h.
	* amd64-tdep.c: Renamed from x86-64-tdep.c.  Include
	"amd64-tdep.h" instead of "x86-64-tdep.h".
	* amd64-nat.c: Include "amd64-tdep.h" instead of "x86-64-tdep.h".
	* amd64-linux-tdep.h: Renamed from x86-64-linux.h.
	* amd64-linux-tdep.c: Renamed from x86-64-linux-tdep.c.  Include
	"amd64-tdep.h" and "amd64-linux-tdep.h" instead of "x86-64-tdep.h"
	and "x86-64-tdep.c".
	* amd64-linux-nat.c: Renamed from x86-64-linux-nat.c.  Include
	"amd64-tdep.h" and "amd64-linux-tdep.h" instead of "x86-64-tdep.h"
	and "x86-64-tdep.c".
	* amd64bsd-nat.c: Update copyright year.
	Include "amd64-tdep.h" instead of "x86-64-tdep.h".
	* amd64fbsd-tdep.c: Include "amd64-tdep.h" instead of
	"x86-64-tdep.h".
	* amd64fbsd-nat.c: Include "amd64-tdep.h" instead of
	"x86-64-tdep.h".
	* amd64nbsd-tdep.c: Include "amd64-tdep.h" instead of
	"x86-64-tdep.h".
	* amd64nbsd-nat.c: Include "amd64-tdep.h" instead of
	"x86-64-tdep.h".
	* amd64obsd-tdep.c: Include "amd64-tdep.h" instead of
	"x86-64-tdep.h".
	* amd64obsd-nat.c: Include "amd64-tdep.h" instead of
	"x86-64-tdep.h".
	* configure.host: (x86_64-*-linux*): Set gdb_target to linux64. 
	* configure.tgt (x86_64-*-linux*): Set gdb_target to linux64.
	* Makefile.in (amd64_linux_tdep_h): Renamed from
	x86_64_linux_tdep_h.
	(amd64_tdep_h): Renamed from x86_64_tdep_h.
	(amd64bsd-nat.o, amd64fbsd-nat.o, amd64fbsd-tdep.o, amd64-nat.o)
	(amd64nbsd-nat.o, amd64nbsd-tdep.o, amd64obsd-nat.o)
	(amd64obsd-tdep.o): Update dependencies.
	(amd64-tdep.o, amd64-linux-nat.o, amd64-linux-tdep.o): New
	dependencies.
	(x86-64-linux-nat.o, x86-64-linux-tdep.o, x86-64-tdep.o): Remove
	dependencies.
	(ALLDEPFILES): Add amd64-tdep.c, amd64obsd-nat.c, amd64obsd-nat.c,
	amd64-linux-nat.c amd64-linux-tdep.c.
	* config/i386/tm-linux64.h: Renamed from tm-x86-64linux.h
	* config/i386/nm-linux64.h: Renamed from nm-x86-64linux.h.
	* config/i386/linux64.mt: Renamed from x86-64linux.mt.
	(TDEPFILES): Replace x86-64-tdep.o and x86-64-linux-tdep.o with
	amd64-tdep.o and amd64-linux-tdep.o.
	(TM_FILE): Set to tm-linux64.h.
	* config/i386/linux64.mh: Renamed from x86-64linux.mh.
	(NAT_FILE): Set to nm-linux64.h.
	(NATDEPFILES): Replace x86-64-linux-nat.o with amd64-linux-nat.o.
	* config/i386/fbsd64.mt (TDEPFILES): Replace x86-64-tdep.o with
	amd64-tdep.o.
	* config/i386/nbsd64.mt (TDEPFILES): Replace x86-64-tdep.o with
	amd64-tdep.o.
	* config/i386/obsd64.mt (TDEPFILES): Replace x86-64-tdep.o with
	amd64-tdep.o.

2004-02-25  Roland McGrath  <roland@redhat.com>

	* remote.c (remote_protocol_qPart_auxv): New variable.
	(init_all_packet_configs): Initialize it.
	(set_remote_protocol_qPart_auxv_packet_cmd): New function.
	(show_remote_protocol_qPart_auxv_packet_cmd): New function.
	(show_remote_cmd): Call it.
	(_initialize_remote): Initialize commands.
	(remote_xfer_partial): If enabled, use qPart:auxv:read:... query to
	service TARGET_OBJECT_AUXV requests.

2004-02-25  J. Brobecker  <brobecker@gnat.com>

	* configure.in: Make sure that the wborder function is available.
	Otherwise, search for it in the cur_colr library.
	* configure: Regenerate.

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

	* hppa-tdep.c (hppa32_push_dummy_call): Rewrite.

2004-02-25  Mark Kettenis  <kettenis@gnu.org>

	* config/i386/tm-x86-64linux.h: Tweak comments.

2004-02-25  Richard Sandiford  <rsandifo@redhat.com>

	* MAINTAINERS: Add self to write-after-approval list.

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

	PR cli/1566.  Problem found, and fix suggested by David Allan.
	* cli/cli-script.c (execute_control_command): Unconditionally
	install a cleanup.  Default "ret" to "invalid_control".  Use
	"break" instead of "return" to escape from the switch.

2004-02-24  J. Brobecker  <brobecker@gnat.com>

	* tui/tui-disasm.c: %s/lines/asm_lines/g to avoid a collision
	with the lines macro defined in term.h on AiX.
	* tui/tui-regs.c: %s/label_width/tui_label_width/g, to avoid
	a collision with the label_width macro defined in term.h on AiX.

2004-02-23  David Mosberger  <davidm@hpl.hp.com>

	Committed by Kevin Buettner <kevinb@redhat.com>.

	* ia64-tdep.h (ia64_write_pc, ia64_linux_write_pc): Declare.
	* ia64-tdep.c (ia64_write_pc): Make it a global function.
	(ia64_gdbarch_init): For Linux targets, use ia64_linux_write_pc()
	instead of ia64_write_pc().
	* ia64-linux-tdep.c (regcache.h): Include.
	(ia64_linux_write_pc): New function.

2004-02-23  Roland McGrath  <roland@redhat.com>

	* auxv.c (info_auxv_command): Fix typos in error messages.

2004-02-23  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.h: Tweak comment.
	(enum amd64_regnum): New.
	(X86_64_RAX_REGNUM, X86_64_RDX_REGNUM, X86_64_RDI_REGNUM)
	(X86_64_RBP_REGNUM, X86_64_RSP_REGNUM, X86_64_RIP_REGNUM)
	(X86_64_EFLAGS_REGNUM, X86_64_ST0_REGNUM, X86_64_XMM0_REGNUM)
	(X86_64_XMM1_REGNUM): Removed.
	(AMD64_NUM_GREGS): Renamed from X86_64_NUM_GREGS.
	(amd64_init_abi, amd64_supply_fxsave, amd64_fill_fxsave): Adjust
	prototypes for renamed functions.
	* x86-64-tdep.c: Fix typo.
	(amd64_dwarf_regmap): Use constants from `enum amd64_regnum' for
	register numbers.
	(amd64_return_value, amd64_push_arguments, amd64_push_dummy_call):
	Use constants from `enum amd64_regnum' for register numbers.
	(AMD64_NUM_SAVED_REGS): Adjust for renamed macros.
	(amd64_analyze_prologue, amd64_frame_cache,
	amd64_sigtramp_frame_cache): Use constants from `enum
	amd64_regnum' for register numbers.
	(amd64_supply_fpregset): Adjust for renamed functions.
	(amd64_init_abi): Rename from x86_64_init_abi.  Use constants from
	`enum amd64_regnum' for register numbers.
	(I387_ST0_REGNUM): Use constant from `enum amd64_regnum'.
	(amd64_supply_fxsave): Rename from x86_64_supply_fxsave.
	(amd64_fill_fxsave): Rename fro x86_64_fill_fxsave.
	* x86-64-linux-tdep.c (amd64_linux_supply_gregset)
	(amd64_linux_fill_gregset): Adjust for renamed macros.
	(fetch_core_registers): Adjust for renamed functions.
	(amd64_linux_init_abi): Adjust for renamed functions.
	* x86-64-linux-nat.c (supply_gregset, fill_gregset): Adjust for
	renamed functions.
	* amd64-nat.c: Adjust for renamed macros.
	* amd64bsd-nat.c (fetch_inferior_registers)
	(store_inferior_registers): Use constants from `enum amd64_regnum'
	for register numbers.  Adjust for renamed variables.
	* amd64fbsd-nat.c (supply_gregset, fill_gregset): Adjust for
	renamed variables.
	(_initialize_amd64fbsd_nat): Use constants from `enum
	amd64_regnum' for register numbers.
	* amd64fbsd-tdep.c (amd64fbsd_sigcontext_addr): Use constants from
	`enum amd64_regnum' for register numbers.
	(amd64fbsd_init_abi): Adjust for renamed functions.
	* amd64nbsd-tdep.c (amd64nbsd_sigcontext_addr): Use constants from
	`enum amd64_regnum' for register numbers.
	(amd64nbsd_init_abi): Adjust for renamed functions.
	(_initialize_amd64nbsd_ndep): Adjust for renamed macros.
	* amd64obsd-tdep.c (amd64obsd_sigcontext_addr): Use constants from
	`enum amd64_regnum' for register numbers.
	(amd64obsd_init_abi): Adjust for renamed functions.
	(_initialize_amd64obsd_ndep): Adjust for renamed macros.

2004-02-23  Jeff Johnston  <jjohnstn@redhat.com>

	* breakpoint.c (print_one_breakpoint): Do not output spaces
	after printing <PENDING> for a pending breakpoint.

2004-02-23  Jeff Johnston  <jjohnstn@redhat.com>

	* printcmd.c (print_scalar_formatted): Initialize val_long
	to remove compiler warning message.

2004-02-23  Jeff Johnston  <jjohnstn@redhat.com>

	* defs.h (nquery, yquery): New prototypes.
	* breakpoint.c (break_command_1): Use new nquery interface.
	* utils.c (defaulted_query, nquery, yquery): New functions.

2004-02-23  Andrew Cagney  <cagney@redhat.com>

	* hppa-tdep.c (hppa_frame_align): New function.
	(hppa32_push_dummy_call): New function.
	(hppa64_push_dummy_call): New function.
	(hppa_gdbarch_init): Set frame_align and push_dummy_call; keep
	disabled.

	* infcall.c (legacy_push_dummy_code): Don't call deprecated
	FIX_CALL_DUMMY when push_dummy_call is available.
	(call_function_by_hand, push_dummy_code): Ditto.

2004-02-22  Andrew Cagney  <cagney@redhat.com>

	* config/pa/tm-hppa.h (CALL_DUMMY_LOCATION): Delete macro.
	(DEPRECATED_PC_IN_CALL_DUMMY): Delete macro.
	(DEPRECATED_USE_GENERIC_DUMMY_FRAMES): Delete macro.
	* hppa-tdep.c (hppa_gdbarch_init): Clear deprecated
	use_generic_dummy_frames, set deprecated pc_in_call_dummy, set
	call_dummy_location to ON_STACK.

2004-02-22  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-linux-tdep.c: Tweak comment.
	(amd64_linux_supply_gregset): Renamed from
	x86_64_linux_supply_gresget.
	(amd64_linux_fill_gregset): Renamed from
	x86_64_linux_fill_gregset.
	(fetch_core_registers): Adjust for renamed functions.
	(amd64_core_fns): Renamed from x86_64_core_fns.
	(amd64_linux_sigtramp_start): Renamed from
	x86_64_linux_sigtramp_start.
	(amd64_linux_pc_in_sigtramp): Renamed from
	x86_64_linux_pc_in_sigtramp.  Adjust for renamed functions.
	(AMD64_LINUX_UCONTEXT_SIGCONTEXT_OFFSET): Renamed from
	X86_64_LINUX_UCONTEXT_SIGCONTEXT_OFFSET.
	(amd64_linux_sigcontext_addr): Renamed from
	x86_64_linux_sigcontext_addr.
	(amd64_linux_sc_reg_offset): Renamed from
	x86_64_linux_sc_reg_offset.
	(amd64_linux_init_abi): Renamed from x86_64_linux_init_abi.
	Adjust for renamed functions and variables.
	(_initialize_amd64_linux_tdep): Renamed from
	_initialize_x86_64_linux_tdep.  Adjust for renamed functions and
	variables.
	* x86-64-linux-tdep.h: Update copyright year.  Tweak comment.
	Adjust for renamed functions.

	* x86-64-linux-nat.c (amd64_linux_gregset64_reg_offset): Rename
	from x86_64_linux_gregset64_reg_offset.
	(amd64_linux_gregset32_reg_offset): Rename from
	x86_64_linux_gregset64_reg_offset.
	(amd64_linux_dr_get): Renamed from x86_64_linux_dr_get.
	(amd64_linux_dr_set): Renamed from x86_64_linux_dr_set.
	(amd64_linux_dr_set_control): Renamed from
	x86_64_linux_dr_set_control.  Adjust for renamed functions.
	(amd64_linux_dr_set_addr): Renamed from x86_64_linux_dr_set_addr.
	Adjust for renamed functions.
	(amd64_linux_dr_reset_addr): Renamed from
	x86_64_linux_dr_reset_addr. Adjust for renamed functions.
	(amd64_linux_dr_get_status): Renamed from
	x86_64_linux_dr_get_status.  Adjust for renamed functions.
	(_initialize_amd64_linux_nat): Renamed from
	_initialize_x86_64_linux_nat.  Adjust for renamed variables and
	functions.
	* config/i386/nm-x86-64linux.h: Update copyright year.
	Adjust for renamed functions.

	* amd64fbsd-tdep.c (amd64fbsd_sigtramp_start_addr): Renamed from
	amd64fbsd_sigtramp_start.
	(amd64fbsd_sigtramp_end_addr): Renamed from
	amd64fbsd_sigtramp_end.
	(amd64fbsd_init_abi): Adjust for renamed variables.
	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Adjust for renamed
	variables.
	* x86-64-tdep.h (amd64fbsd_sigtramp_start_addr): Renamed from
	amd64fbsd_sigtramp_start.
	(amd64fbsd_sigtramp_end_addr): Renamed from
	amd64fbsd_sigtramp_end.

2004-02-22  Andrew Cagney  <cagney@redhat.com>

	* hppa-tdep.c (hppa32_return_value): New function.
	(hppa64_return_value): New function.
	(hppa_gdbarch_init): Set return_value; keep disabled.

	* hppa-tdep.c (hppa_gdbarch_init): Re-order separating
	struct-return and inferior function call methods.

	* hppa-tdep.c: Include "trad-frame.h", "frame-unwind.h", and
	"frame-base.h".
	(struct hppa_frame_cache): Define.
	(hppa_frame_cache, hppa_frame_this_id): New functions.
	(hppa_frame_prev_register): New function.
	(hppa_frame_unwind, hppa_frame_base): New variables.
	(hppa_frame_unwind_sniffer): New function.
	(hppa_frame_base_address, hppa_unwind_pc): New function.
	(hppa_gdbarch_init): Set unwind_dummy_id, unwind_pc, frame unwind
	sniffer, and frame base sniffer; keep disabled.
	(hppa_frame_base_sniffer, hppa_unwind_dummy_id): New functions.
	* Makefile.in: Update dependencies, fix s/nbsd/obsd/ typo.

	* frame-unwind.c (frame_unwind_find_by_frame): Add legacy_frame_p
	to predicates for "seriously old code".

	* hppa-tdep.c (hppa_gdbarch_init): Convert compile time #if0s into
	runtime if(0).

	* hppa-tdep.c (hppa_breakpoint_from_pc): Make "breakpoint"
	unsigned.
	(hppa_frame_find_saved_regs): Fix "std" instruction pattern

	* config/pa/tm-hppa.h: Update copyright.
	(DEPRECATED_INIT_FRAME_PC): Delete macro.
	(deprecated_init_frame_pc_default): Delete declaration.
	(hppa_frame_init_saved_regs): Delete declaration.
	(DEPRECATED_FRAME_INIT_SAVED_REGS): Delete macro.
	* hppa-tdep.c: Include "arch-utils.h".
	(hppa_gdbarch_init): Set deprecated init_frame_pc
	and deprecated frame_init_saved_regs.
	(hppa_frame_init_saved_regs): Make static.

2004-02-22  Mark Kettenis  <kettenis@gnu.org>

	Remove old 386BSD support.
	* NEWS (REMOVED configurations and files): Add i[3456]86-*-bsd*.
	* configure.host: Remove i[34567]86-*-bsd*.
	* configure.tgt: Remove i[34567]86-*-bsd*.
	* i386b-nat.c: Removed.
	* Makefile.in (ALLDEPFILES): Remove i386b-nat.c.
	(i386b-nat.o): Remove dependencies.

	* config/i386/i386bsd.mh: Removed.
	* config/i386/i386bsd.mt: Removed.
	* config/i386/nm-i386bsd.h: Removed.
	* config/i386/tm-i386bsd.h: Removed.
	* config/i386/xm-i386bsd.h: Removed.

	* x86-64-tdep.h (amd64obsd_r_reg_offset): New extern declaration.

	* amd64fbsd-tdep.c: Include "solib-svr4.h".
	(amd64fbsd_init_abi): Set link map offsets.
	* amd64nbsd-tdep.c: Include "slib-svr4.h".
	(amd64nbsd_init_abi): Set link map offsets.
	* amd64obsd-tdep.c: Include "solib-svr4.h".
	(amd64obsd_init_abi): Set link map offsets.
	* i386fbsd-tdep.c: Include "solib-svr4.h".
	(i386fbsd_init_abi): Set link map offsets.
	* i386nbsd-tdep.c: Include "solib-svr4.h".
	(i386nbsdelf_init_abi): Set link map offsets.
	* Makefile.in (amd64fbsd-tdep.o, amd64nbsd-tdep.o)
	(amd64obsd-tdep.o, i386fbsd-tdep.o): Update dependencies.
	* config/i386/fbsd.mh (NATDEPFILES): Remove solib.o, solib-svr4.o,
	solib-legacy.o and core-aout.o. Reformat.
	* config/i386/fbsd64.mh (NATDEPFILES): Remove solib.o,
	solib-svr4.o, solib-legacy.o.  Reformat.
	* config/i386/nbsdaout.mh (NATDEPFILES): Add solib.o.  Reformat.
	* config/i386/nbsdelf.mh: Reformat.
	* config/i386/nbsd64.mh (NATDEPFILES): Remove solib.o,
	solib-svr4.o, solib-legacy.o and corelow.o.
	* config/i386/obsd.mh, config/i386/obsdaout.mh: Reformat.
	* config/i386/obsd64.mh (NATDEPFILES): Remove solib.o,
	solib-svr4.o, solib-legacy.o and corelow.o.  Reformat.
	* config/i386/fbsd.mt (TDEPFILES): Add solib.o, solib-svr4.o.
	* config/i386/fbsd64.mt (TDEPFILES): Add solib.o, solib-svr4.o.
	(TM_FILE): Set to tm-fbsd.h.
	* config/i386/nbsd.mt (TDEPFILES): Reformat.
	* config/i386/nbsd64.mt (TDEPFILES): Add corelow.o, solib.o and
	solib-svr4.o.
	* config/i386/obsd.mt (TDEPFILES): Add corelow.o, solib.o and
	solib-svr4.o.
	(TM_FILE): Set to nm-nbsd.h.
	* config/i386/nm-fbsd.h: Update copyright year.  Tweak comments.
	Simplify shared library support.  Don't include "elf/common.h".
	(SVR4_SHARED_LIBS): Don't define.
	* config/i386/nm-fbsd64.h: Update copyright year.  Don't include
	"solib.h".
	* config/i386/nm-nbsd.h, config/i386/nm-nbsdaout.h,
	config/i386/nm-obsd.h: Update copyright year.  Tweak comments.
	* config/i386/tm-fbsd.h: Update copyright tear.  Tweak comments.
	Don't include "i386/tm-i386.h".  Include "solib.h".
	* config/i386/tm-nbsd.h: Update copyright year.  Tweak comments.
	Don't include "i386/tm-i386.h".
	* config/i386/xm-i386.h: Update copyright year.  Tweak comments.
	* config/i386/xm-nbsd.h: Update copyright year.  Tweak comments.
	Include "i386/xm-i386.h".
	(HOST_LONG_DOUBLE_FORMAT): Remove.

	Fix OpenBSD/i386 sigtramp recognition.
	* i386-tdep.h: Update copyright year.
	(i386bsd_pc_in_sigtramp, i386bsd_sigtramp_start)
	(i386bsd_sigtramp_end): New prototypes.
	(i386fbsd_sigtramp_start_addr): Renamed from
	i386fbsd_sigtramp_start.
	(i386fbsd_sigtramp_end_addr): Renamed from i386fbsd_sigtramp_end.
	(i386obsd_sigtramp_start_addr): Renamed from
	i386obsd_sigtramp_start.
	(i386obsd_sigtramp_end_addr): Renamed from i386obsd_sigtramp_end.
	* i386bsd-tdep.c: Update copyright year.
	(i386bsd_pc_in_sigtramp): Make public.
	* i386fbsd-nat.c: Update copyright year.
	(_initialize_i386fbsd_nat): Adjust for renamed variables.
	* i386fbsd-tdep.c: Update copyright year.
	(i386fbsd_sigtramp_start_addr): Renamed from
	i386fbsd_sigtramp_start.
	(i386fbsd_sigtramp_end_addr): Renamed from i386fbsd_sigtramp_end.
	(i386fbsdaout_init_abi): Adjust for renamed variables.
	* i386obsd-nat.c: Update copyright year.
	(_initialize_i386obsd_nat): Adjust for renamed variables.
	* i386obsd-tdep.c: Include "target.h".
	(i386obsd_page_size): New variable.
	(i386obsd_pc_in_sigtramp, i386obsd_sigtramp_start)
	(i386obsd_sigtramp_end): New functions.
	(i386obsd_sigtramp_start_addr): Renamed from
	i386obsd_sigtramp_start.
	(i386obsd_sigtramp_end_addr): Renamed from i386obsd_sigtramp_end.
	(i386obsd_init_abi): Adjust for renamed variables.  Set
	pc_in_sigtramp, sigtramp_start and sigtramp_end.
	* Makefile.in (i386obsd-tdep.o): Update dependencies.

	* amd64obsd-tdep.c (amd64obsd_pc_in_sigtramp): Adjust for signal
	trampoline change in OpenBSD kernel.

	* amd64-nat.c: Update copyright year.
	(amd64_supply_native_gregset, amd64_collect_native_gregset): Use
	architecture from REGCACHE.

	* x86-64-linux-nat.c (x86_64_linux_gregset32_reg_offset): Use
	symbolic constants from <sys/reg.h> instead of hard-coded numbers.

2004-02-21  Mark Kettenis  <kettenis@gnu.org>

	* configure.host: Add i[34567]86-*-openbsd[0-2].* and
	i[34567]86-*-openbsd3.[0-3].
	* config/i386/obsdaout.mh: New file.

	* config/i386/obsd.mh (MH_FLAGS): Remove.

	Fix PR build/1549.
	* i386obsd-tdep.c: Update copyright years.  Include
	"solib-svr4.h".
	(i386obsd_init_abi): Don't set regset_from_core_section here.
	(i386obsd_aout_init_abi): New function.  Set
	regset_from_core_section here.
	(i386obsd_elf_init_abi): New function.
	(_initialize_i386obsd_tdep): Register OS/ABI for OpenBSD ELF.
	* Makefile.in (i386obsd-tdep.o): Update dependecies.
	* config/i386/obsd.mt (TDEPFILES): Add solib.o and solib-svr4.o.
	(TM_FILE): Set to tm-nbsd.h.

	* config/i386/obsd.mh (NATDEPFILES): Remove solib.o and
	solib-sunos.o.

	* solib-svr4.h: Update copyright year.
	(svr4_ilp32_fetch_link_map_offsets)
	(svr4_lp64_fetch_link_map_offsets): New prototype.
	* solib-svr4.c: Update copyright year.
	(svr4_ilp32_fetch_link_map_offsets)
	(svr4_lp64_fetch_link_map_offsets): New function.

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

	* dwarf2read.c (add_partial_symbol): Fix typo in adding enumerators
	to the partial symbol table.

2004-02-20  J. brobecker  <brobecker@gnat.com>

	* PROBLEMS: Add description of problem documented under gdb/1560.

2004-02-20  Mark Kettenis  <kettenis@gnu.org>

	* amd64obsd-tdep.c: Include "regset.h" and "i387-tdep.h".  Fix
	comments.
	(amd64obsd_supply_regset, amd64obsd_regset_from_core_section): New
	functions.
	(amd64obsd_init_abi): Reorder initializations.  Use
	amd64obsd_r_reg_offset to initialize the general-purpose register
	set details.  Set regset_from_core_section.
	(_initialize_amd64obsd_tdep): Rename from
	_initialize_amd64obsd_ndep.  Add OS ABI handler for core dumps.
	* Makefile.in (amd64obsd-tdep.o): Update dependencies.
	* config/i386/obsd64.mt (TDEPFILES): Add i386-tdep.o.

	* NEWS (New native configurations): Mention OpenBSD/alpha.
	* configure.tgt: Add alpha*-*-openbsd*.
	* configure.host: Add alpha*-*-openbsd*.
	* alphanbsd-tdep.c: Update copyright year.
	(_initialize_alphanbsd_tdep): Register OS ABI for OpenBSD ELF.

2004-02-20  Andrew Cagney  <cagney@redhat.com>

	Fix PR tdep/1372.
	* configure.tgt: Delete target "none-*-*".
	* configure.host: Delete host "none-*-*".
	* config/none/none.mh: Delete file.
	* config/none/none.mt: Delete file.
	* config/none/xm-none.h: Delete file.
	* config/none/tm-none.h: Delete file.
	* config/none/nm-none.h: Delete file.

2004-02-19  Fred Fish  <fnf@redhat.com>

	* sh-tdep.c (sh_analyze_prologue): Eliminate useless test of
	cache->uses_fp prior to setting it.

2004-02-19  Fred Fish  <fnf@redhat.com>

	Fix for PR breakpoint/1558.
	* sh-tdep.c (IS_JSR): New macro.
	(sh_analyze_prologue): Use IS_JSR to terminate prologue scan.

2004-02-19  Jim Blandy  <jimb@redhat.com>

	* findvar.c (value_from_register): Doc fix.

2004-02-19  Jeff Johnston  <jjohnstn@redhat.com>

	* printcmd.c (print_scalar_formatted): Do not check for sizeof
	type being greater than sizeof of host's LONGEST.  Always use
	unpack_long() unless format 'f' chosen.

2004-02-19  Joel Brobecker  <brobecker@gnat.com>

	Committed by Elena Zannoni  <ezannoni@redhat.com>

	* symtab.c (find_pc_sect_psymtab): Return the psymtab that
	contains a symbol wich is the best, non-exact match for the given
	pc.  Update comments.

2004-02-19  Elena Zannoni  <ezannoni@redhat.com>

	* event-top.c (async_request_quit): Remove uses of REQUEST_QUIT
	macro, which was part of the now removed Mach 3 port.
	* utils.c (request_quit): Ditto.

2004-02-18  Mark Kettenis  <kettenis@gnu.org>

	* config/djgpp/fnchange.lst: Rename "amd64obsd-tdep.c" and
        "amd64obsd-nat.c" to "a64ob-tdep.c" and "a64ob-nat.c".

2004-02-18  Ulrich Weigand <Ulrich.Weigand@de.ibm.com>

	Committed by Mark Kettenis  <kettenis@gnu.org>.

	* config/s390/nm-linux.h (TARGET_REGION_OK_FOR_HW_WATCHPOINT):
	Define.

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

	* configure.in: Add a TUI target to CONFIG_ALL, CONFIG_CLEAN,
	CONFIG_INSTALL and CONFIG_UNINSTALL.
	* configure: Re-generate.
	* interps.h (INTERP_TUI): Define.
	* Makefile.in: Update dependencies.
	(TUI): New macro.
	(tui-main.o): Specify dependencies.
	(install-tui, uninstall-tui, clean-tui, all-tui): New rules.
	* tui/tui-main.c: New file.

2004-02-18  Mark Kettenis  <kettenis@gnu.org>

	* amd64obsd-tdep.c, amd64obsd-nat.c: New files.
	* Makefile.in (amd64obsd-nat.o, amd64obsd-tdep.o): New
	dependencies.
	* configure.host: Add x86_64-*-openbsd*.
	* configure.tgt: Add x86_64-*-openbsd*.
	* config/i386/obsd64.mt, config/i386/obsd64.mh: New files.

	* tui/tui.c: Don't include <malloc.h>.

	* Makefile.in (ALLDEPFILES): Add amd64-nat.c, amd64bsd-nat.c,
	amdfbsd-nat.c, amd64-fbsd-tdep.c, amd64nbsd-nat.c and
	amd64nbsd-tdep.c.

	* i386obsd-tdep.c (i386obsd_aout_regset_from_core_section): Make
	static.  Remove extraneous whitespace.
	* i386nbsd-tdep.c (i386nbsd_aout_regset_from_core_section): Make
	static.

2004-02-17  Jim Blandy  <jimb@redhat.com>

	* findvar.c (value_from_register): Doc fix.

2004-02-17  Ulrich Weigand <Ulrich.Weigand@de.ibm.com>

	Committed by Jim Blandy  <jimb@redhat.com>.

	* eval.c (evaluate_subexp_standard, case OP_OBJC_MSGCALL): Use
	CORE_ADDR as type for selectors.  Correct types for GNU run time
	message lookup function to use double indirection.
	* objc-lang.c (lookup_child_selector): Use CORE_ADDR as return type.
	* objc-lang.h (lookup_child_selector): Adapt prototype.

	* s390-nat.c (SUBOFF): New macro.
	(supply_gregset, fill_gregset): Use it to handle debugging
	of 32-bit exectuables running under a 64-bit kernel.
	* s390-tdep.c: Include "solib-svr4.h".
	(s390_svr4_fetch_link_map_offset): New function.
	(s390x_svr_fetch_link_map_offset): Likewise.
	(s390_gdbarch_init): Call set_solib_svr4_fetch_link_map_offsets.
	* Makefile.in (s390-tdep.o): Update dependencies.

	* s390-tdep.c: Include "trad-frame.h", "frame-base.h", and
	"frame-unwind.h".
	(s390_readinstruction): Reformat.  Use read_memory_nobpt.
	(GDB_TARGET_IS_ESAME, S390_GPR_SIZE, S390_FPR_SIZE): Remove.
	(S390_SYSCALL_OPCODE, S390_SYSCALL_SIZE): Remove.
	(S390_SIGCONTEXT_SREGS_OFFSET, S390X_SIGCONTEXT_SREGS_OFFSET,
	S390_SIGREGS_FP0_OFFSET, S390X_SIGREGS_FP0_OFFSET,
	S390_UC_MCONTEXT_OFFSET, S390X_UC_MCONTEXT_OFFSET,
	S390_SIGNAL_FRAMESIZE,
	s390_NR_sigreturn, s390_NR_rt_sigreturn): Remove.
	(struct frame_extra_info): Remove.
	(s390_memset_extra_info): Remove.
        (op1_ag, op1_ay, op1_brasl, op1_brc, op1_brcl, op1_lay, op1_lg)
        (op1_lmy, op1_ly, op1_sg, op1_stmy, op1_sty, op1_sy, op_a)
        (op_agr, op_bas, op_bc, op_bcr, op_sgr, op_sr): New opcodes.
	(is_rse): Renamed to ...
	(is_rsy): ... this.  Support long displacements.
	(is_rxe): Renamed to ...
	(is_rxy): ... this.  Support long displacements.
	(compute_x_addr): Support long displacements.
	(struct s390_prologue_data): New data type.
	(s390_on_stack): Change API to use struct s390_prologue_data.
	(s390_store): Reimplement.
	(s390_load): New function.
	(s390_get_signal_frame_info): Remove.
	(s390_get_frame_info): Remove, replace by ...
	(s390_analyze_prolog): ... this new function.
	(s390_check_function_end): Remove.
	(s390_function_start): Remove.
	(s390_frameless_function_invokation): Remove.
	(s390_is_sigreturn): Remove.
	(s390_init_frame_pc_first): Remove.
	(s390_init_frame_extra_info): Remove.
	(s390_frame_init_saved_regs): Remove.
	(s390_frame_saved_pc_nofix): Remove.
	(s390_frame_saved_pc): Remove.
	(s390_frame_chain): Remove.
	(s390_fp_regnum, s390_read_fp): Remove.
	(s390_pop_frame_regular, s390_pop_frame): Remove.
	(s390_saved_pc_after_call): Remove.
	(s390_skip_prologue): Reimplement.
	(s390_in_function_epilogue_p): Support long displacements.
	(struct s390_unwind_cache): New data structure.
	(s390_frame_unwind_cache): New function.
	(s390_prologue_frame_unwind_cache): Likewise.
	(s390_backchain_frame_unwind_cache): Likewise.
	(s390_frame_this_id, s390_frame_prev_register): Likewise.
	(s390_frame_unwind): Define.
	(s390_frame_sniffer): New function.
	(struct s390_pltstub_unwind_cache): New data structure.
	(s390_pltstub_frame_unwind_cache): New function.
	(s390_pltstub_frame_this_id): Likewise.
	(s390_pltstub_frame_prev_register): Likewise.
	(s390_pltstub_frame_unwind): Define.
	(s390_pltstub_frame_sniffer): New function.
	(struct s390_sigtramp_unwind_cache): New data structure.
	(s390_sigtramp_frame_unwind_cache): New function.
	(s390_sigtramp_frame_this_id): Likewise.
	(s390_sigtramp_frame_prev_register): Likewise.
	(s390_sigtramp_frame_unwind): Define.
	(s390_sigtramp_frame_sniffer): New function.
	(s390_frame_base_address, s390_local_base_address): New functions.
	(s390_frame_base): Define.
	(s390_unwind_pc, s390_unwind_sp): New function.
	(s390_push_dummy_call): Use new frame base location.
	(s390_unwind_dummy_id): Likewise.
	(s390_gdbarch_init): Remove calls to:
	set_gdbarch_frameless_function_invocation,
	set_gdbarch_deprecated_init_frame_pc,
	set_gdbarch_deprecated_frame_chain,
	set_gdbarch_deprecated_frame_init_saved_regs,
	set_gdbarch_deprecated_pop_frame,
	set_gdbarch_deprecated_init_extra_frame_info,
	set_gdbarch_deprecated_init_frame_pc_first,
	set_gdbarch_deprecated_target_read_fp,
	set_gdbarch_deprecated_frame_saved_pc,
	set_gdbarch_deprecated_saved_pc_after_call,
	set_gdbarch_deprecated_fp_regnum.
	Add calls to:
	set_gdbarch_in_solib_call_trampoline,
	frame_unwind_append_sniffer,
	frame_base_set_default,
	set_gdbarch_unwind_pc,
	set_gdbarch_unwind_sp.
	* Makefile.in (s390-tdep.o): Update dependencies.

	* s390-tdep.c (struct gdbarch_tdep): Add 'abi' member.
	(S390_STACK_FRAME_OVERHEAD): Remove.
	(S390_STACK_PARAMETER_ALIGNMENT): Remove.
	(S390_NUM_FP_PARAMETER_REGISTERS): Remove.
	(s390_promote_integer_argument): Remove.
	(s390_cannot_extract_struct_value_address): Remove.
	(s390_use_struct_convention, s390_store_struct_return): Remove.
	(s390_extract_return_value, s390_store_return_value): Remove.
	(s390_return_value_convention, s390_return_value): New functions.
	(is_float_singleton): Handle typedefs.
	(is_double_or_float, is_double_arg, is_simple_arg, pass_by_copy_ref):
	Remove, replace by ...
	(s390_function_arg_pass_by_reference, s390_function_arg_float,
	s390_function_arg_integer): ... these new functions.
	(s390_push_arguments, s390_push_return_address): Remove, replace by ...
	(s390_push_dummy_call, s390_unwind_dummy_id): ... these new functions.
	(s390_gdbarch_init): Remove s390_call_dummy_words and elf_flags.
	Fill in tdep->abi.
	Remove calls to:
	set_gdbarch_deprecated_store_struct_return,
	set_gdbarch_deprecated_extract_return_value,
	set_gdbarch_deprecated_store_return_value,
	set_gdbarch_use_struct_convention,
	set_gdbarch_extract_struct_value_address,
	set_gdbarch_deprecated_pc_in_call_dummy,
	set_gdbarch_deprecated_push_arguments,
	set_gdbarch_deprecated_save_dummy_frame_tos,
	set_gdbarch_deprecated_push_return_address,
	set_gdbarch_deprecated_sizeof_call_dummy_words,
	set_gdbarch_deprecated_call_dummy_words,
	set_gdbarch_deprecated_dummy_write_sp.
	Add calls to:
	set_gdbarch_push_dummy_call,
	set_gdbarch_unwind_dummy_id,
	set_gdbarch_return_value.

	* config/s390/nm-linux.h: Update comments.
	(target_insert_watchpoint, target_remove_watchpoint): Redefine.
	(STOPPED_BY_WATCHPOINT): Redefine.
	(TARGET_CAN_USE_HARDWARE_WATCHPOINT): Redefine to 1.
	(s390_insert_watchpoint, s390_remove_watchpoint): Update prototype.
	(s390_stopped_by_watchpoint): Likewise.
	(watch_area_cnt): Remove.
	* s390-nat.c: Update comments.
	(watch_area): Remove typedef.
	Global replace watch_area by struct watch_area.
	(watch_area_cnt, watch_lo_addr, watch_hi_addr): Remove.
	(s390_stopped_by_watchpoint): Remove pid argument,
	use s390_inferior_tid.  Add short-cut for the no watchpoint case.
	(s390_fix_watch_points): Remove pid argument,
	use s390_inferior_tid.  Recompute area spanned by watchpoints.
	(s390_insert_watchpoint, s390_remove_watchpoint): Remove pid
	argument.  Reimplement.

	* config/s390/nm-linux.h: Update comments.  Do not include "solib.h".
	(KERNEL_U_ADDR, REGISTER_U_ADDR, U_REGS_OFFSET): Remove.
	(FETCH_INFERIOR_REGISTERS): Define.
	* config/s390/s390.mh (NATDEPFILES): Remove core-aout.o and
	core-regset.o.
	* config/s390/s390x.mt: Remove.
	* config/s390/tm-s390.h: Remove.
	* config/s390/tm-linux.h: Do not include "s390/tm-s390.h".
	(TARGET_ELF64): Remove.
	(SKIP_TRAMPOLINE_CODE): Do not undefine.
	* configure.tgt [s390-*-*, s390x-*-*]: Merge into single
	s390*-*-* case; always set gdb_target to s390.
	* regformats/reg-s390.dat: Remove control registers.
	* regformats/reg-s390x.dat: Likewise.
	* s390-tdep.h: New file.
	* s390-nat.c: Do not include <asm/processor.h> or <value.h>.
	Include "inferior.h" and "s390-tdep.h".
	Remove private definition of offsetof.
	(s390_register_u_addr): Remove.
	(regmap_gregset, regmap_fpregset): Define.
	(supply_gregset, fill_gregset): Reimplement.
	(supply_fpregset, fill_fpregset): Likewise.
	(s390_inferior_tid): New function.
	(fetch_regs, store_regs, fetch_fpregs, store_fpregs): Likewise.
	(fetch_inferior_registers, store_inferior_registers): Likewise.
	* s390-tdep.c: Do not define S390_TDEP.  Include "defs.h" instead
	of <defs.h>.  Include "reggroups.h", "regset.h", and "s390-tdep.h".
	Global replace of S390_GP0_REGNUM by S390_R0_REGNUM.
	Global replace of S390_FP0_REGNUM by S390_F0_REGNUM.
	(struct gdbarch_tdep): Define.
	(struct s390_register_info): Define.
	(s390_register_info): New variable.
	(s390_register_name): Reimplement.
	(s390_register_type): New function.
	(s390_register_raw_size, s390x_register_raw_size): Remove.
	(s390_cannot_fetch_register): Remove.
	(s390_register_byte): Remove.
	(s390_register_virtual_type, s390x_register_virtual_type): Remove.
	(s390_dwarf_regmap): New variable.
	(s390_dwarf_reg_to_regnum): New function.
	(s390_stab_reg_to_regnum): Remove.
	(s390_pseudo_register_read, s390_pseudo_register_write): New functions.
	(s390x_pseudo_register_read, s390x_pseudo_register_write): Likewise.
	(s390_convert_register_p): Likewise.
	(s390_register_to_value, s390_value_to_register): Likewise.
	(s390_register_reggroup_p): Likewise.
	(s390_regmap_gregset, s390x_regmap_gregset, s390_regmap_fpregset,
	s390_gregset, s390x_gregset, s390_fpregset): New variables.
	(s390_supply_regset, s390_regset_from_core_section): New functions.
	(GDB_TARGET_IS_ESAME): Move here from tm-s390.h.
	(S390_FPR_SIZE): Likewise.
	(S390_GPR_SIZE): Likewise.  Redefine in terms of GDB_TARGET_IS_ESAME.
	Global replace of DEPRECATED_REGISTER_SIZE by S390_GPR_SIZE.
	(S390_NUM_GPRS): Move here from tm-s390.h.
	(S390_NUM_FPRS): Likewise.
	(s390_in_function_epilogue_p): New function.
	(s390_is_sigreturn): Replace S390_PSW_ADDR_SIZE by S390_GPR_SIZE.
	Replace S390_PC_REGNUM by S390_PSWA_REGNUM.
	(s390_gdbarch_init): Allocate and set up gdbarch_tdep structure.
	Replace s390_stab_reg_to_regnum by s390_dwarf_reg_to_regnum.
	Replace S390_FP_REGNUM by S390_SP_REGNUM.
	Remove calls to:
	set_gdbarch_deprecated_max_register_raw_size,
	set_gdbarch_deprecated_max_register_virtual_size,
	set_gdbarch_deprecated_register_byte,
	set_gdbarch_cannot_fetch_register,
	set_gdbarch_cannot_store_register,
	set_gdbarch_deprecated_register_size,
	set_gdbarch_deprecated_register_raw_size,
	set_gdbarch_deprecated_register_virtual_size,
	set_gdbarch_deprecated_register_virtual_type,
	set_gdbarch_deprecated_register_bytes.
	Add calls to:
	set_gdbarch_num_pseudo_regs,
	set_gdbarch_register_type,
	set_gdbarch_convert_register_p,
	set_gdbarch_register_to_value,
	set_gdbarch_value_to_register,
	set_gdbarch_register_reggroup_p,
	set_gdbarch_regset_from_core_section,
	set_gdbarch_pseudo_register_read,
	set_gdbarch_pseudo_register_write,
	set_gdbarch_in_function_epilogue_p.
	* Makefile.in (s390-nat.o, s390-tdep.o): Update dependencies.
	(s390_tdep_h): New variable.

2004-02-17  Jim Blandy  <jimb@redhat.com>

	* findvar.c (value_from_register): If the type has no length, just
	return an acceptable value --- don't report an internal error.

	* stabsread.c (read_type): If we find any type numbers that are
	forward references, complain if the references aren't resolved by
	the time we're finished reading.
	(cleanup_undefined_types): Make error message more appropriate for
	a complaint.

2004-02-17  Elena Zannoni  <ezannoni@redhat.com>

	* Makefile.in (defs_h): Remove dependency on progress_h.
	* defs.h (QUIT): Remove use of PROGRESS macro. Remove include of
	progress.h.
	* main.c (captured_main): Delete use of START_PROGRESS and
	END_PROGRESS.

2004-02-17  Elena Zannoni  <ezannoni@redhat.com>

	* objfiles.c (terminate_minimal_symbol_table): Add back
	initialization of MSYMBOL_TYPE.

2004-02-17  David Mosberger  <davidm@hpl.hp.com>

	Committed by Andrew Cagney.
	* Makefile.in (ia64_tdep_h): New macro.
	(ia64-linux-tdep.o): Mention $(ia64_tdep_h).
	(ia64-tdep.o): Likewise.
	* ia64-tdep.h: New file.
	* ia64-tdep.c: Update copyright notice.  Include "ia64-tdep.h".
	(ia64_linux_sigcontext_register_address): Move decl to ia64-tdep.h.
	(ia64_aix_sigcontext_register_address): Likewise.
	(ia64_linux_getunwind_table): Delete declaration.
	* ia64-linux-tdep.c: Likewise.

2004-02-17  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (sh_dsp_register_sim_regno): Use DSP_Rx_BANK_REGNUM.
	* sh-tdep.h: Rename R0_BANK_REGNUM and R7_BANK_REGNUM to
	DSP_R0_BANK_REGNUM and DSP_R7_BANK_REGNUM.

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

	* symtab.c (skip_prologue_using_sal): New function.
	* symtab.h (skip_prologue_using_sal): Declare.
	* frv-tdep.c: Include "symtab.h".
	(skip_prologue_using_sal): Delete function.
	* mips-tdep.c (skip_prologue_using_sal): Delete function.
	* rs6000-tdep.c (refine_prologue_limit): Mention
	skip_prologue_using_sal.
	* ia64-tdep.c (refine_prologue_limit): Ditto.
	* Makefile.in: Update dependencies.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* config/alpha/tm-nbsd.h: Update copyright, delete #undef
	START_INFERIOR_TRAPS_EXPECTED.
	* config/alpha/tm-fbsd.h: Update copyright, delete #undef
	START_INFERIOR_TRAPS_EXPECTED.
	* config/alpha/tm-alphalinux.h (START_INFERIOR_TRAPS_EXPECTED):
	Delete macro.
	* config/alpha/tm-alpha.h (START_INFERIOR_TRAPS_EXPECTED): Delete
	macro, moved to "nm-osf.h".  Update copyright.
	* config/alpha/nm-osf.h (START_INFERIOR_TRAPS_EXPECTED): Define,
	update copyright.

	* gdbarch.sh (DEPRECATED_FRAMELESS_FUNCTION_INVOCATION): Predicate
	and function replacing FRAMELESS_FUNCTION_INVOCATION.
	* blockframe.c (legacy_frameless_look_for_prologue): Rename
	frameless_look_for_prologue.
	* frame.h (legacy_frameless_look_for_prologue): Rename
	frameless_look_for_prologue.
	* gdbarch.h, gdbarch.c: Re-generate.
	* sh64-tdep.c (sh64_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.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	(delta68_frame_args_address): Update.
	* m32r-tdep.c (m32r_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	(frv_frameless_function_invocation): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	(cris_frameless_function_invocation): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* stack.c (frame_info): Update, call predicate.
	* rs6000-tdep.c (rs6000_frame_chain): Update, call predicate..
	* frame.c (legacy_get_prev_frame): Update, call predicate..
	* arch-utils.c (generic_frameless_function_invocation_not): Delete.
	* arch-utils.h (generic_frameless_function_invocation_not): Delete.
	* alpha-tdep.c (alpha_gdbarch_init): Do not set frameless function
	invocation.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* vax-tdep.c (vax_gdbarch_init): Ditto.

	* arm-tdep.c (arm_set_call_dummy_breakpoint_offset): Delete unused
	function.

2004-02-16  Daniel Jacobowitz  <drow@mvista.com>

	* objfiles.c (terminate_minimal_symbol_table): Remove unnecessary
	initializations.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-windata.c: Include "gdb_string.h".
	* tui/tui-source.c, tui/tui-winsource.c: Ditto.
	* tui/tui-layout.c, tui/tui-command.c: Ditto.
	* Makefile.in: Update dependencies.

2004-02-16  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (infrun.o): Add $(gdb_assert_h).
	* infrun.c: Include "gdb_assert.h".
	(singlestep_ptid, saved_singlestep_ptid)
	(stepping_past_singlestep_breakpoint): New variables.
	(resume): Set singlestep_ptid.  Check for singlestep thread
	hop.
	(init_wait_for_inferior): Clear stepping_past_singlestep_breakpoint.
	(handle_inferior_event): Handle singlestep thread hop.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* dwarf2-frame.c (dwarf2_frame_ops): New function.
	(dwarf2_frame_set_init_reg): Use, instead of gdbarch_data.
	(dwarf2_frame_init_reg): Ditto.

	* printcmd.c (display_command): Check that EXP isn't NULL.  Fix
	suggested by Joshua Neuheisel

	* configure.in: Always check for curses, including pdcurses.
	Warn, instead of error, when no curses are found.  Enable TUI when
	curses is available.
	* configure: Re-generate.

2004-02-16  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (sh_register_convert_to_virtual): Rename from
	sh_sh4_register_convert_to_virtual.
	(sh_register_convert_to_raw): Rename from
	sh_sh4_register_convert_to_raw.
	(sh_pseudo_register_read): Accomodate above name change.
	(sh_pseudo_register_write): Ditto.

2004-02-16  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (sh_generic_register_name): Remove.
	(sh_gdbarch_init): Use sh_sh_register_name in default case.

2004-02-15  Andrew Cagney  <cagney@redhat.com>

	* configure.in (build_warnings): Add -Wunused-function.
	* configure: Re-generate.

	* config/tm-lynx.h (START_INFERIOR_TRAPS_EXPECTED): Delete macro.
	* config/rs6000/tm-rs6000.h (START_INFERIOR_TRAPS_EXPECTED): Ditto.

	* procfs.c (procfs_init_inferior): Assume that
	START_INFERIOR_TRAPS_EXPECTED is defined.
	* config/ns32k/nbsdaout.mt (TM_FILE): Set to tm-ns32k.h.
	* config/ns32k/tm-nbsd.h: Delete file,
	START_INFERIOR_TRAPS_EXPECTED already defined as 2.

	* config/vax/tm-vaxbsd.h: Do not include "tm-vax.h".
	* config/vax/tm-vax.h: Delete file.

	* config/mips/tm-nbsd.h (SIGCONTEXT_PC_OFFSET): Delete macro.
	* config/i386/tm-i386bsd.h (SIGCONTEXT_PC_OFFSET): Delete macro.
	* config/arm/tm-linux.h (SIGCONTEXT_PC_OFFSET): Delete macro.
	* config/vax/tm-vaxbsd.h (SIGCONTEXT_PC_OFFSET): Delete macro.
	* vax-tdep.c (vax_sigtramp_saved_pc): Inline only reference.
	* config/ns32k/tm-nbsd.h (SIGCONTEXT_PC_OFFSET): Delete macro.
	* ns32k-tdep.c (ns32k_sigtramp_saved_pc): Inline only reference.

2004-02-15  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2-frame.h (dwarf2_frame_set_init_reg): New prototype.
	* dwarf2-frame.c (dwarf2_frame_data): New variable.
	(struct dwarf2_frame_ops): New.
	(dwarf2_frame_default_init_reg): New function, based on
	dwarf2_frame_init_reg.
	(dwarf2_frame_init, dwarf2_frame_set_init_reg): New function.
	(dwarf2_frame_init_reg): Call architecture-specific function.
	(dwarf2_frame_objfile_data): Renamed from dwarf2_frame_data.
	(dwarf2_frame_find_fde, add_fde): Use dwarf2_frame_objfile_data
	instead of dwarf2_frame_data.
	(_initialize_dwarf2_frame): Initailize new dwarf2_frame_data.
	Initialize dwarf2_frame_objfile instead of old dwarf2_frame_data.

2004-02-15  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (deprecated_register_gdbarch_swap): Rename
	register_gdbarch_swap.
	(DEPRECATED_REGISTER_GDBARCH_SWAP): Rename REGISTER_GDBARCH_SWAP.
	* f-lang.c (_initialize_f_language): Update, use
	DEPRECATED_REGISTER_GDBARCH_SWAP.
	* remote.c (_initialize_remote): Ditto.
	* regcache.c (_initialize_regcache): Ditto.
	* parse.c (_initialize_parse): Ditto.
	* infrun.c (_initialize_infrun): Ditto.
	* mi/mi-main.c (_initialize_mi_main): Ditto.
	* gdbtypes.c (_initialize_gdbtypes): Ditto.

	* solib.c (solib_map_sections): Use bfd_set_cacheable instead of
	poking .cacheable directly.
	* symfile.c (symfile_bfd_open): Ditto.

	* Makefile.in: Update all dependencies.

	* Makefile.in: (.SUFFIXES): Add ".l" and ".y".
	(.y.c, .l.c): Specify implicit rule.  Instead of .tab.c, generate
	.c.  Update references.  Delete unnecessary .tab.c and -lex.c rules.
	(ada-exp.o, c-exp.o, f-exp.o): Replace ada-exp.tab.o et.al. rule.
	(jv-exp.o, m2-exp.o, objc-exp.o, p-exp.o): Similar.

2004-02-14  Andrew Cagney  <cagney@redhat.com>

	* arch-utils.c (legacy_convert_register_p): Check
	DEPRECATED_REGISTER_CONVERTIBLE_P.
	* findvar.c (value_of_register): Ditto.

	* gdbarch.sh (DEPRECATED_REGISTER_CONVERTIBLE): Add predicate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arch-utils.c (deprecated_register_convertible_not): Delete.
	* arch-utils.h (deprecated_register_convertible_not): Delete.
	* mi/mi-main.c (get_register): Update.  Update copyright.
	* infcmd.c (default_print_registers_info): Update.

	* gdbarch.sh (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED): Delete.
	(DEPRECATED_CALL_DUMMY_STACK_ADJUST): Delete.
	(DEPRECATED_CALL_DUMMY_ADDRESS): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame.c (deprecated_get_next_frame_hack): Delete function.
	* frame.h (deprecated_get_next_frame_hack): Delete declaration.
	* blockframe.c (deprecated_pc_in_call_dummy_at_entry_point):
	Update.
	* infcall.c (call_function_by_hand): Update.

2004-02-14  Elena Zannoni  <ezannoni@redhat.com>

	* symfile.c (init_entry_point_info, entry_point_address): Move
	from here...
	* objfiles.c (init_entry_point_info, entry_point_address):..to
	here.
	* symfile.h (init_entry_point_info, entry_point_address): Remove
	prototypes.
	* objfiles.h (init_entry_point_info, entry_point_address):Add
	prototypes.
	* cris-tdep.c: Remove include of symfile.h. Add include of
	objfiles.h.
	* infcall.c: Ditto.
	* mcore-tdep.c: Ditto.
	* mn10300-tdep.c: Ditto.
	* sh64-tdep.c: Ditto.
 	* v850-tdep.c: Ditto.
	* arm-tdep.c: Remove include of symfile.h.
	* blockframe.c: Ditto.
	* coffread.c: Ditto.
	* dbxread.c: Ditto.
	* dwarf2read.c: Ditto.
	* dwarfread.c: Ditto.
	* frv-tdep.c: Ditto.
	* ia64-tdep.c: Ditto.
	* mdebugread.c: Ditto.
	* mipsread.c: Ditto.
	* rs6000-tdep.c: Ditto.
	* s390-tdep.c: Ditto.
	* sh-tdep.c: Ditto.
	* xstormy16-tdep.c: Ditto.
	* gdbarch.sh: Remove include of symfile.h.
	* gdbarch.c: Regenerate.
	* solib-irix.c (enable_break): Use entry_point_address().
	Add comment about include file.
	* xcoffread.c: Add comment about include file.
	* Makefile.in (arm-tdep.o, blockframe.o, coffread.o, cris-tdep.o)
	(dbxread.o, dwarf2read.o, dwarfread.o, frv-tdep.o, gdbarch.o)
	(ia64-tdep.o, infcall.o, mcore-tdep.o, mdebugread.o, mipsread.o)
	(mn10300-tdep.o, rs6000-nat.o, s390-tdep.o, sh64-tdep.o)
	(sh-tdep.o, v850-tdep.o, xstormy16-tdep.o): Update dependencies.

2004-02-13  Andrew Cagney  <cagney@redhat.com>

	* corelow.c (core_xfer_partial): Use "struct bfd_section".
	* config/sparc/nm-nbsd.h (struct target_ops): Declare, update
	copyright.
	* mips-linux-tdep.c: Use "GNU/Linux", update copyright.

2004-02-12  Fred Fish  <fnf@redhat.com>

	* m68hc11-tdep.c (m68hc11_gdbarch_init): Remove duplicate call to
	 set_gdbarch_store_return_value.

2004-02-12  Andrew Cagney  <cagney@redhat.com>

	* remote-rdi.c (arm_rdi_start_remote): Delete unused function.
	(arm_rdi_interrupt, arm_rdi_interrupt_twice): Ditto.
	(interrupt_query): Ditto.
	(ofunc): Delete unused variable.
	* cris-tdep.c (cris_abi): Delete unused function.
	(reg_pop_op, move_reg_to_mem_index_inc_op): Ditto.
	(cris_get_wide_opcode, cris_get_short_size): Ditto.
	(cris_get_asr_quick_shift_steps): Ditto.
	(cris_skip_prologue_frameless_p): Ditto.
	* arm-tdep.c (arm_push_return_address): Delete unused function.
	(arm_push_dummy_frame, arm_fix_call_dummy): Ditto.
	* rs6000-tdep.c (rs6000_pc_in_call_dummy): Delete unused function.
	* s390-tdep.c (s390_function_start): Delete unused function.

2004-02-12  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (PROLOGUE_FRAMELESS_P): Delete.
	gdbarch.h, gdbarch.c: Re-generate.
	* cris-tdep.c (cris_gdbarch_init): Do not set prologue_frameless_p
	to generic_prologue_frameless_p.
	* arch-utils.h (generic_prologue_frameless_p): Delete declaration.
	* arch-utils.c (generic_prologue_frameless_p): Delete function.

2004-02-11  Daniel Jacobowitz  <drow@mvista.com>

	* mips-linux-tdep.c: Include "frame.h".
	(mips_linux_in_dynsym_stub, mips_linux_in_dynsym_resolve_code)
	(mips_linux_skip_resolver): New functions.
	(mips_linux_init_abi): Call set_gdbarch_skip_solib_resolver
	and set_gdbarch_in_solib_call_trampoline.
	* mips-tdep.c (mips_gdbarch_init): Move gdbarch_init_osabi call
	to after set_gdbarch_in_solib_return_trampoline.  Only set the
	solib hooks to mips16 functions if the OS ABI is unknown.
	* config/mips/tm-linux.h (IN_SOLIB_CALL_TRAMPOLINE): Undefine after
	including "config/tm-linux.h".
	(IN_SOLIB_DYNSYM_RESOLVE_CODE): Define.
	* Makefile.in (mips-linux-tdep.o): Update.

2004-02-11  David Carlton  <carlton@kealia.com>

	* linespec.c (decode_compound): Only look for a class symbol when
	considering all but the rightmost component.

2004-02-11  Andrew Cagney  <cagney@redhat.com>

	* hppa-tdep.c (hppa_gdbarch_init): Re-order so that the frame and
	abi code are are separatly grouped.

2004-02-11  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (FRAME_ARGS_SKIP): Default to 0.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sh64-tdep.c (sh64_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_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.
	* m32r-tdep.c (m32r_gdbarch_init): Update.
	* ia64-tdep.c (ia64_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.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2004-02-11  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (sh_sh3_dsp_register_name): Fix formatting. Add missing
	comma.
	(sh_sh4al_dsp_register_name): Ditto.

2004-02-10  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_gdbarch_init): Delete deprecated frame code.
	(mips_init_frame_pc_first): Delete function.
	(mips_frame_saved_pc): Delete function.
	(mips_frame_chain): Delete function.
	(mips_init_extra_frame_info): Delete function.
	(mips_xfer_register): Delete unused variable "reg".
	(mips_n32n64_push_dummy_call): Delete unused variable "valbuf".
	(mips_n32n64_return_value): Delete unused variable "reg".
	(mips_n32n64_return_value): Delete unused variable "pos".
	(mips_o32_push_dummy_call): Delete unused variable "valbuf".
	(mips_o32_return_value): Delete unused variable "pos".
	(mips_o64_push_dummy_call): Delete unused variable "valbuf".
	(mips_print_fp_register): Delete unused variable "namelen"
	(mips_print_fp_register): Delete unused variable "flt2"
	(get_frame_pointer): Delete function.
	(cached_proc_desc): Delete static variable.
	(mips_pop_frame): Delete function.
	(mips_find_saved_regs): Delete function.
	(mips_get_saved_register): Delete function.
	(mips_saved_pc_after_call): Delete function.
	(SIGFRAME_BASE): Delete macro.
	(SIGFRAME_FPREGSAVE_OFF): Delete macro.
	(SIGFRAME_PC_OFF): Delete macro.
	(SIGFRAME_REGSAVE_OFF): Delete macro.
	(mips_dump_tdep): Do not print deleted macro definitions.

2004-02-10  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (SFILES): Remove explictly listed tui files.
	(SUBDIR_GDBTK_SRCS): Fix path to gdbtk-interp.c.

2004-02-10  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c (ia64_frame_this_id): Fix tracing print statement
	to use paddr functions to format ia64 addresses and long values.
	(ia64_frame_prev_register, ia64_sigtramp_frame_this_id): Ditto.
	(ia64_sigtramp_frame_prev_register, ia64_access_reg): Ditto.
	(get_kernel_table, ia64_find_proc_info_x): Ditto.
	(ia64_get_dyn_info_list, ia64_libunwind_this_frame_id): Ditto.
	(ia64_libunwind_frame_prev_register, ia64_unwind_dummy_id): Ditto.

2004-02-10  Andrew Cagney  <cagney@redhat.com>

	* defs.h: Do not include "tui.h".
	* gdb_curses.h: New file.
	* tui/tui-hooks.h: New file.
	* tui/tui.h (tui_update_all_exec_infos): Delete declaration.
	(tui_install_hooks, tui_remove_hooks): Delete declarations.
	(tui_initialize_io): Delete declaration.
	(tui_initialize_readline: Delete redundant declaration.
	(struct tui_point): Delete definition.
	* tui/tui-data.h (struct tui_point): Define.
	* cli/cli-decode.c [TUI]: Include "tui/tui.h".
	* utils.c: Include "tui/tui.h".
	* tui/tui-data.h: Include "tui/tui.h" and "gdb_curses.h".
	* printcmd.c [TUI]: Include "tui/tui.h".
	* cli/cli-cmds.c [TUI]: Include "tui/tui.h".
	* tui/tui-command.c: Include "gdb_curses.h".
	* tui/tui.c, tui/tui-winsource.c, tui/tui-wingeneral.c: Ditto.
	* tui/tui-windata.c, tui/tui-win.c, tui/tui-stack.c: Ditto.
	* tui/tui-source.c, tui/tui-regs.c, tui/tui-layout.c: Ditto.
	* tui/tui-io.c, tui/tui-disasm.c, tui/tui-data.c: : Ditto.
	* tui/tui-hooks.c: Include "tui-hooks.h" and "gdb_curses.h".
	* Makefile.in: Update all dependencies.
	(tui_hooks_h, gdb_curses_h): Define.
	(SUBDIR_TUI_CFLAGS): Remove -I${srcdir}/tui.

2004-02-10  Elena Zannoni  <ezannoni@redhat.com>

	* objfiles.h (struct objfile): Remove unused fields auxf1 and
	auxf2. Add comments about some other rarely used fields.

2004-02-10  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (init.c): Fix script removing duplicates. Problem
	reported by Peter Schauer.

2004-02-09  Elena Zannoni  <ezannoni@redhat.com>

	* bcache.c (bcache_xmalloc): Use obstack_init instead of
	obstack_specify_allocation.
	* objfiles.c (allocate_objfile): Ditto.
	* solib-sunos.c (solib_add_common_symbols)
	(allocate_rt_common_objfile): Ditto.
	* symfile.c (reread_symbols): Ditto.
	* gdb_obstack.h: Add comment.

2004-02-09  Elena Zannoni  <ezannoni@redhat.com>

	* linespec.c (decode_line_1, locate_first_half)
	(decode_compound, lookup_prefix_sym): Update comments. Delete old
	commented out code.

2004-02-09  Daniel Jacobowitz  <drow@mvista.com>

	* cp-namespace.c (check_one_possible_namespace_symbol): Don't use
	obstack_free.

2004-02-09  Andrew Cagney  <cagney@redhat.com>

	* blockframe.c (find_pc_partial_function): If find_pc_overlay
	fails, try find_pc_section.  Fix PR c++/1267.
	* minsyms.c (lookup_minimal_symbol_by_pc): Use find_pc_section
	instead of find_pc_mapped_section.
	(lookup_minimal_symbol_by_pc_section): If the SECTION is NULL, do
	not default to the section containing PC.  Fix PR symtab/1519.

2004-02-09  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (mips-tdep.o): Update dependencies.
	* mips-tdep.c: Include "frame-unwind.h", "frame-base.h" and
	"trad-frame.h".
	(mips_unwind_pc): Return the pseudo PC register.
	(mips_unwind_dummy_id): New function.
	(mips16_fetch_instruction): New function.
	(mips32_fetch_instruction): New function.
	(struct mips_frame_cache): Define.
	(mips_mdebug_frame_cache): New function.
	(mips_mdebug_frame_this_id): New function.
	(mips_mdebug_frame_prev_register): New function.
	(mips_mdebug_frame_unwind): Define.
	(mips_mdebug_frame_sniffer): New function.
	(mips_mdebug_frame_base_address): New function.
	(mips_mdebug_frame_base): Define.
	(mips_mdebug_frame_base_sniffer): New function.
	(mips_gdbarch_init): Append unwind and base sniffers.  Set
	unwind_dummy_id.

2004-02-08  Andrew Cagney  <cagney@redhat.com>

	* frame.c: Print both the register number and name.

	* Makefile.in (init.c): Eliminate duplicates.  Combine two greps
	and a sed into a single sed.  Make .c and .o patterns more robust.
	(OBS): Delete.
	(INIT_FILES): Replace OBS with COMMON_OBS.
	(COMMON_OBS): Move DEPFILES and YYOBJ to start of definition.

2004-02-08  Mark Kettenis  <kettenis@gnu.org>

	* sparc-nat.c (sparc_xfer_wcookie): Try to fetch the cookie using
	the PT_WCOOKIE request.

2004-02-08  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_unwind_pc): New function.
	(mips_gdbarch_init): Set mips_unwind_pc.

	* frame.c (legacy_saved_regs_this_id): Return a null frame ID.
	(get_frame_id): Allow the UNKNOWN_FRAME.
	(frame_register_unwind, get_frame_type): Ditto.

	* frame.c (legacy_frame_p): Check for DEPRECATED_TARGET_READ_FP_P
	and DEPRECATED_FP_REGNUM.  Don't assume that the lack of
	unwind_dummy_id indicates a legacy frame.

	* configure.in (CONFIG_LIB_OBS): Replace with CONFIG_OBS.
	* configure: Re-generate.

	* mips-tdep.c (mips_gdbarch_init): Group deprecated frame unwind
	methods.

2004-02-08  Andrew Cagney  <cagney@redhat.com>

	* configure.in (CONFIG_ALL): Set to Makefile target, and not
	makefile macro.
	* configure: Re-generate.
	(CONFIG_CLEAN, CONFIG_INSTALL, CONFIG_UNINSTALL): Ditto.
	* Makefile.in (SUBDIR_CLI_CLEAN): Delete.
	(SUBDIR_CLI_INSTALL, SUBDIR_CLI_UNINSTALL): Delete.
	(SUBDIR_CLI_ALL, SUBDIR_GDBTK_ALL): Delete.
	(SUBDIR_GDBTK_CLEAN, SUBDIR_GDBTK_INSTALL): Delete.
	(SUBDIR_GDBTK_UNINSTALL, SUBDIR_MI_ALL): Delete.
	(SUBDIR_MI_CLEAN, SUBDIR_MI_INSTALL): Delete.
	(SUBDIR_MI_UNINSTALL, SUBDIR_TUI_ALL): Delete.
	(SUBDIR_TUI_CLEAN, SUBDIR_TUI_INSTALL): Delete.
	(SUBDIR_TUI_UNINSTALL, SUBDIR_CLI_CLEAN): Delete.

2004-02-07  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in: Update all dependencies.

	* configure.in (CONFIG_INITS, CONFIG_LIB_OBS): Delete.
	* configure: Re-generate.
	* Makefile.in (INIT_FILES): Replace CONFIG_INITS with CONFIG_SRCS.
	(CONFIG_LIB_OBS, CONFIG_INITS): Delete.
	(COMMON_OBS): Add "main.o" and "annotate.o".
	(ANNOTATE_OBS): Delete.
	(OBS): Remove ANNOTATE_OBS.
	(DEPFILES): Replace CONFIG_LIB_OBS with CONFIG_LIB_OBS, remove
	CONFIG_INITS.
	(gdb$(EXEEXT), insight$(EXEEXT)): Do not depend on, or link
	against CONFIG_OBS and "main.o".
	(SUBDIR_CLI_INITS, SUBDIR_MI_INITS): Delete.
	(SUBDIR_TUI_INITS, SUBDIR_GDBTK_INITS): Delete.

	* tui/tui-command.c: Include "gdb_string.h", delete register
	attribute, use ISO-C function signatures.
	* tui/tui-disasm.c, tui/tui-file.c, tui/tui-io.c: Ditto.
	* tui/tui-layout.c, tui/tui-regs.c, tui/tui-source.c: Ditto.
	* tui/tui-stack.c, tui/tui-win.c, tui/tui-winsource.c: Ditto.
	* tui/tui.c: Ditto.

	* tui/tui-command.c: Change variable and function names to lower
	case.
	* tui/tui-data.c, tui/tui-disasm.c: Ditto.
	* tui/tui-hooks.c, tui/tui-io.c, tui/tui-layout.c: Ditto.
	* tui/tui-regs.c, tui/tui-source.c, tui/tui-stack.c: Ditto.
	* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
	* tui/tui-winsource.c, tui/tui.c: Ditto.

2004-02-07  Elena Zannoni  <ezannoni@redhat.com>

	* buildsym.c (free_pending_blocks, finish_block)
	(record_pending_block, make_blockvector, end_symtab): Replace
	symbol_obstack with objfile_obstack.
	* coffread.c (process_coff_symbol, coff_read_struct_type)
	(coff_read_enum_type): Ditto.
	* cp-namespace.c (initialize_namespace_symtab)
	(check_one_possible_namespace_symbol): Ditto.
	* dwarf2read.c (new_symbol, dwarf2_const_value, macro_start_file)
	(dwarf2_symbol_mark_computed): Ditto.
	* dwarfread.c (enum_type, new_symbol, synthesize_typedef): Ditto.
	* elfread.c (elf_symtab_read): Ditto.
	* hpread.c (hpread_symfile_init, hpread_symfile_init)
	(hpread_read_enum_type, hpread_read_function_type)
	(hpread_read_doc_function_type, hpread_process_one_debug_symbol):
	Ditto.
	* jv-lang.c (get_java_class_symtab, add_class_symbol)
	(java_link_class_type): Ditto.
	* mdebugread.c (parse_symbol, psymtab_to_symtab_1, new_symtab)
	(new_symbol): Ditto.
	* minsyms.c (install_minimal_symbols): Ditto.
	* objfiles.c (allocate_objfile): Remove init of symbol_obstack.
	(terminate_minimal_symbol_table): Replace symbol_obstack with
	objfile_obstack.
	(free_objfile): Remove freeing of symbol_obstack.
	* objfiles.h: Remove symbol_obstack field.
	* pa64solib.c (add_to_solist): Replace symbol_obstack with
	objfile_obstack.
	* solib-sunos.c (allocate_rt_common_objfile): Remove init of
	symbol_obstack.
	(solib_add_common_symbols): Replace symbol_obstack with
	objfile_obstack.
	* somsolib.c (som_solib_add): Ditto.
	* stabsread.c (patch_block_stabs, define_symbol, read_enum_type)
	(common_block_start, common_block_end): Ditto.
	* symfile.c (reread_symbols): Remove freeing and init of
	symbol_obstack.
	(allocate_symtab): Rename symbol_obstack to objfile_obstack.
	* symfile.h: Update comment.
	* symmisc.c (print_objfile_statistics): Remove symbol_obstack
	stats printing.
	* symtab.c (symbol_set_names): Replace symbol_obstack with
	objfile_obstack.
	* symtab.h (struct general_symbol_info, struct minimal_symbol):
	Update comments.
	* xcoffread.c (read_xcoff_symtab, SYMBOL_DUP, SYMNAME_ALLOC)
	(init_stringtab, xcoff_initial_scan): Replace symbol_obstack with
	objfile_obstack.

2004-02-07  Andrew Cagney  <cagney@redhat.com>

	* tui/tui.h: Do not include <stdarg.h>, <string.h>, and
	"ansidecl.h".  Do not undef "reg" and "chtype".  Fix case of
	fields and variables.
	* tui/tui-wingeneral.h (m_beVisible): Delete macro.
	(m_beInvisible): Delete macro.
	* tui/tui-data.h: Fix case case fields and variables.
	(m_genWinPtrIsNull): Delete macro.
	(tui_win_list): Rename winList.
	(TUI_SRC_WIN): Rename srcWin.
	(TUI_DISASM_WIN): Rename disassemWin.
	(TUI_DATA_WIN): Rename dataWin.
	(TUI_CMD_WIN): Rename cmdWin.
	(m_genWinPtrNotNull): Delete macro.
	(m_winPtrIsNull): Delete macro.
	(m_winPtrNotNull): Delete macro.
	(tui_win_is_source_type): Replace m_winIsSourceType
	(tui_win_is_auxillary): Replace m_winIsAuzillary.
	(tui_win_has_locator): Replace m_hasLocator.
	(tui_set_win_highlight): Replace m_setWinHighlightOn and
	m_setWinHighlightOff.
	* tui/tui-data.c: Update references.
	(tui_win_is_source_type, tui_set_win_highlight): New functions.
	(tui_win_has_locator, tui_win_is_auxillary): New functions.
	* tui/tui-command.c, tui/tui-disasm.c: Update references.
	* tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto.
	* tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto.
	* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
	* tui/tui-winsource.c, tui/tui.c: Ditto.

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

	* sparc-tdep.h (sparc_fetch_wcookie): New prototype.
	* sparcnbsd-tdep.c (sparc32nbsd_sigcontext_saved_regs): Handle
	StackGhost.

	* sparc-tdep.c (sparc32_frame_prev_register): Rename local
	variable `i6' to `i7'.
	(sparc_supply_rwindow, sparc_collect_rwindow): Likewise.

2004-02-07  Andrew Cagney  <cagney@redhat.com>

	* tui/tui.h (Opaque, OpaquePtr OpaqueList): Delete definition.
	(TuiPoint, TuiPointPtr): Ditto.
	(TuiStatus, TuiStatusPtr): Ditto.
	(TuiWinType, TuiWinTypePtr): Ditto.
	(struct tui_point): Rename _TuiPoint.
	(tui_get_low_disassembly_address): Rename
	tuiGetLowDisassemblyAddress.
	(tui_update_all_exec_infos): Rename tuiUpdateAllExecInfos.
	(tuiFree): Delete declaration.
	(OpaqueFuncPtr, TuiOpaqueFuncPtr): Delete definitions.
	(TuiVoidFuncPtr, TuiIntFuncPtr): Delete definitions.
	* tui/tui.c (tuiFree): Delete function.
	* cli/cli-cmds.c (disassemble_command): Update references.
	* tui/tui-data.c, tui/tui-data.h, tui/tui-disasm.c: Ditto.
	* tui/tui-layout.c, tui/tui-regs.c, tui/tui-source.c: Ditto.
	* tui/tui-stack.c, tui/tui-win.c, tui/tui-wingeneral.c: Ditto.
	* tui/tui-winsource.c: Ditto.

2004-02-07  Elena Zannoni  <ezannoni@redhat.com>

	* dbxread.c (dbx_symfile_init, start_psymtab, end_psymtab,
	coffstab_build_psymtabs, elfstab_build_psymtabs)
	(stabsect_build_psymtabs): Replace psymbol_obstack with
	objfile_obstack.
	* dwarf2-frame.c (decode_frame_entry_1): Ditto.
	* dwarf2read.c (dwarf2_build_psymtabs_hard, dwarf2_read_section):
	Ditto.
	* dwarfread.c (scan_compilation_units): Ditto.
	* elfread.c (elfstab_offset_sections): Ditto.
	* hppa-tdep.c (read_unwind_info): Ditto.
	* hpread.c (hpread_build_psymtabs, hpread_start_psymtab)
	(hpread_end_psymtab): Ditto.
	* mdebugread.c (mdebug_build_psymtabs, add_pending)
	(parse_partial_symbols, new_psymtab, elfmdebug_build_psymtabs):
	Ditto.
	* mips-tdep.c (non_heuristic_proc_desc): Ditto.
	* objfiles.c (add_to_objfile_sections)
	(build_objfile_section_table): Ditto.
	(allocate_objfile): Remove init of psymbol_obstack.
	(free_objfile): Remove freeing of psymbol_obstack.
	* objfiles.h (struct objfile): Remove field
	psymbol_obstack. Update comments.
	* pa64solib.c (pa64_solib_add_solib_objfile): Replace
	psymbol_obstack with objfile_obstack.
	* solib-sunos.c (allocate_rt_common_objfile): Remove init of
        psymbol_obstack.
	* somread.c (som_symfile_offsets, init_import_symbols)
	(init_export_symbols): Replace psymbol_obstack with
	objfile_obstack.
	* somsolib.c (som_solib_add_solib_objfile): Ditto.
	* symfile.c (default_symfile_offsets, syms_from_objfile)
	(reread_symbols): Remove freeing and init of psymbol_obstack.
	(cashier_psymtab): Update comment.
	* symmisc.c (print_objfile_statistics): Don't report stats for
	psymbol obstack.
	* symtab.h (struct general_symbol_info, struct partial_symtab):
	Update comments.
	* xcoffread.c (xcoff_start_psymtab, xcoff_end_psymtab, swap_sym)
	(xcoff_symfile_offsets): Replace psymbol_obstack with
	objfile_obstack.

2004-02-07  Elena Zannoni  <ezannoni@redhat.com>

	* objfiles.h (struct objfile): Add objfile_obstack field.
	Remove type_obstack field.

	* dwarf2read.c (dwarf2_add_field,dwarf2_add_member_fn,
	read_structure_scope read_enumeration, new_symbol): Replace
	type_obstack with objfile_obstack.
	* dwarfread.c (struct_type, enum_type): Ditto.
	* gdbtypes.c (alloc_type, alloc_type_instance, init_type)
	(lookup_fundamental_type): Ditto.
	* gdbtypes.h (TYPE_ALLOC): Ditto.
	* hpread.c (hpread_read_enum_type, hpread_read_function_type)
	(hpread_read_doc_function_type, hpread_read_struct_type)
	(fix_static_member_physnames, hpread_read_array_type)
	(hpread_read_subrange_type, hpread_type_lookup): Ditto.
	* jv-lang.c (java_lookup_class, type_from_class, type_from_class)
	(java_link_class_type): Ditto.
	* mdebugread.c (parse_type): Ditto.
	* objfiles.c (allocate_objfile, free_objfile): Ditto.
	* solib-sunos.c (solib_add_common_symbols): Ditto.
	* stabsread.c (define_symbol, read_type, read_member_functions,
	read_cpp_abbrev, read_one_struct_field): Ditto.
	* symfile.c (reread_symbols): Ditto.
	* symmisc.c (print_objfile_statistics): Ditto.

2004-02-07  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-data.h (tui_win_element): Rename TuiWinElement.
	(tui_exec_info_content): Rename TuiExecInfoContent.
	(TuiGenWinInfo, TuiGenWinInfoPtr): Delete definitions.
	(TuiWinInfo, TuiWinInfoPtr): Ditto.
	(TuiScrollDirection, TuiScrollDirectionPtr): Ditto.
	(TuiList, TuiListPtr): Ditto.
	(TuiLayoutType, TuiLayoutTypePtr): Ditto.
	(TuiDataType, TuiDataTypePtr): Ditto.
	(TuiRegisterDisplayType, TuiRegisterDisplayTypePtr): Ditto.
	(TuiLineOrAddress, TuiLineOrAddressPtr): Ditto.
	(TuiLayoutDef, TuiLayoutDefPtr): Ditto.
	(TuiSourceElement, TuiSourceElementPtr): Ditto.
	(TuiDataElement, TuiDataElementPtr): Ditto.
	(TuiWinElement, TuiWinElementPtr): Ditto.
	(TuiDataInfo, TuiDataInfoPtr): Ditto.
	(TuiCommandElement, TuiCommandElementPtr): Ditto.
	(TuiLocatorElement, TuiLocatorElementPtr): Ditto.
	(TuiWhichElement, TuiWhichElementPtr): Ditto.
	(TuiSourceInfo, TuiSourceInfoPtr): Ditto.
	(TuiCommandInfo, TuiCommandInfoPtr): Ditto.
	* tui/tui-command.c, tui/tui-data.c: Update references.
	* tui/tui-data.h, tui/tui-disasm.c, tui/tui-layout.c: Ditto.
	* tui/tui-regs.c, tui/tui-source.c, tui/tui-stack.c: Ditto.
	* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
	* tui/tui-winsource.c, tui/tui.c: Ditto.

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

	* dwarf2-frame.h: Update copyright.
	(enum dwarf2_frame_reg_rule): New.
	(struct dwarf2_frame_state_reg): New.
	(dwarf2_frame_sniffer, dwarf2_frame_base_sniffer): Make extern.
	* dwarf2-frame.c: Update copyright.
	(enum dwarf2_reg_rule): Remove.
	(struct dwarf2_frame_state): Remove defenition of `struct
	dwarf2_frame_state_reg'.
	(read_reg): Call get_frame_arch to get the architecture instead of
	using CURRENT_GDBARCH.
	(execute_cfa_program): Prefix old `enum dwarf2_reg_rule' tags with
	DWARF2_FRAME_.
	(dwarf2_frame_init_reg): New function.
	(dwarf2_frame_cache): Call get_frame_arch to get the architecture
	instead of using CURRENT_GDBARCH.  Call dwarf2_frame_init_reg to
	initialize the register state.  Prefix old `enum dwarf2_reg_rule'
	tags with DWARF2_FRAME_.
	(dwarf2_frame_prev_register): Call get_frame_arch to get the
	architecture instead of using CURRENT_GDBARCH.  Prefix old `enum
	dwarf2_reg_rule' tags with DWARF2_FRAME_.

2004-02-06  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-data.h (struct tui_list): Rename _TuiList.
	(enum tui_data_type): Rename _TuiDataType.
	(struct tui_layout_def): Rename _TuiLayoutDef.
	(struct tui_source_element): Rename _TuiSourceElement.
	(struct tui_data_element): Rename _TuiDataElement.
	(struct tui_command_element): Rename _TuiCommandElement.
	(struct tui_locator_element): Rename _TuiLocatorElement.
	(union tui_which_element): Define.
	(struct tui_win_element): Rename _TuiWinElement.
	(struct tui_data_info): Rename _TuiDataInfo.
	(struct tui_source_info): Rename _TuiSourceInfo.
	(struct tui_command_info): Rename _TuiCommandInfo.
	(tui_initialize_static_data): Rename initializeStaticData.
	(tui_alloc_generic_win_info): Rename allocGenericWinInfo.
	(tui_alloc_win_info): Rename allocWinInfo.
	(tui_init_generic_part): Rename initGenericPart.
	(tui_init_win_info): Rename initWinInfo.
	(tui_alloc_content): Rename allocContent.
	(tui_add_content_elements): Rename addContentElements.
	(tui_init_content_element): Rename initContentElement.
	(tui_free_window): Rename freeWindow.
	(tui_free_win_content): Rename freeWinContent.
	(tui_free_data_content): Rename freeDataContent.
	(tui_free_all_source_wins_content): Rename
	freeAllSourceWinsContent.
	(tui_del_window): Rename tuiDelWindow.
	(tui_del_data_windows): Rename tuiDelDataWindows.
	(tui_partial_win_by_name): Rename partialWinByName.
	(tui_win_name): Rename winName.
	(tui_current_layout): Rename currentLayout.
	(tui_set_current_layout_to): Rename setCurrentLayoutTo.
	(tui_term_height): Rename termHeight.
	(tui_set_term_height_to): Rename setTermHeightTo.
	(tui_term_width): Rename termWidth.
	(tui_set_term_width_to): Rename setTermWidthTo.
	(tui_set_gen_win_origin): Rename setGenWinOrigin.
	(tui_locator_win_info_ptr): Rename locatorWinInfoPtr.
	(tui_source_exec_info_win_ptr): Rename tui_gen_win_info.
	(tui_disassem_exec_info_win_ptr): Rename disassemExecInfoWinPtr.
	(tui_source_windows): Rename sourceWindows.
	(tui_clear_source_windows): Rename clearSourceWindows.
	(tui_clear_source_windows_detail): Rename
	clearSourceWindowsDetail.
	(tui_clear_win_detail): Rename clearWinDetail.
	(tui_add_to_source_windows): Rename tuiAddToSourceWindows.
	(tui_default_tab_len): Rename tuiDefaultTabLen.
	(tui_set_default_tab_len): Rename tuiSetDefaultTabLen.
	(tui_win_with_focus): Rename tuiWinWithFocus.
	(tui_set_win_with_focus): Rename tuiSetWinWithFocus.
	(tui_layout_def): Rename tuiLayoutDef.
	(tui_win_resized): Rename tuiWinResized.
	(tui_set_win_resized_to): Rename tuiSetWinResizedTo.
	(tui_next_win): Rename tuiNextWin.
	(tui_prev_win): Rename tuiPrevWin.
	(tui_add_to_source_windows): Rename addToSourceWindows.
	* tui/tui-winsource.c, tui/tui-win.c: Update references.
	* tui/tui-layout.c, tui/tui-source.c: Ditto.
	* tui/tui-stack.c, tui/tui-io.c: Ditto.
	* tui/tui.c, tui/tui-data.c: Ditto.
	* tui/tui-interp.c, tui/tui-data.c: Ditto.
	* tui/tui-disasm.c, tui/tui-command.c: Ditto.

	* tui/tui-source.h: Update copyright.  Include "tui-data.h".
	(struct symtab): Declare.
	(tui_set_source_content): Rename tuiSetSourceContent.
	(tui_show_symtab_source): Rename tuiShowSource.
	(tui_source_is_displayed): Rename tuiSourceIsDisplayed.
	(tui_vertical_source_scroll): Rename tuiVerticalSourceScroll.
	* tui/tui-source.c: Update copyright.  Update references.
	* tui/tui-win.c, tui/tui-winsource.c: Update references.
	* tui/tui-stack.c: Update references.

	* tui/tui-win.h: Update copyright.  Include "tui-data.h".
	(struct tui_win_info): Declare.
	(tui_scroll_forward): Rename tuiScrollForward.
	(tui_scroll_backward): Rename tuiScrollBackward.
	(tui_scroll_left): Rename tuiScrollLeft.
	(tui_scroll_right): Rename tuiScrollRight.
	(tui_set_win_focus_to): Rename tuiSetWinFocusTo.
	(tui_resize_all): Rename tuiResizeAll.
	(tui_refresh_all_win): Rename tuiRefreshAll.
	(tui_sigwinch_handler): Rename tuiSigwinchHandler.
	* tui/tui-layout.c, * tui/tui-io.c: Update references.
	* tui/tui-wingeneral.h, * tui/tui.c: Update references.
	* tui/tui-disasm.c, * tui/tui-command.c: Update references.

	* tui/tui-windata.h: Update copyright.  Include "tui-data.h".
	(tui_erase_data_content): Rename tuiEraseDataContent.
	(tui_display_all_data): Rename tuiDisplayAllData.
	(tui_check_data_values): Rename tuiCheckDataValues.
	(tui_display_data_from_line): Rename tuiDisplayDataFromLine.
	(tui_first_data_item_displayed): Rename tuiFirstDataItemDisplayed.
	(tui_first_data_element_no_in_line): Rename
	tuiFirstDataElementNoInLine.
	(tui_delete_data_content_windows): Rename
	tuiDeleteDataContentWindows.
	(tui_refresh_data_win): Rename tuiRefreshDataWin.
	(tui_display_data_from): Rename tuiDisplayDataFrom.
	(tui_vertical_data_scroll): Rename tuiVerticalDataScroll.
	* tui/tui-windata.c, tui/tui-hooks.c: Update references.
	* tui/tui-win.c, tui/tui-regs.c: Update references.
	* tui/tui-layout.c, tui/tui.c: Update references.

	* tui/tui-wingeneral.h: Update copyright.
	(m_allBeVisible): Delete macro.
	(m_allBeInvisible): Delete macro.
	(struct tui_gen_win_info): Declare.
	(struct tui_win_info): Declare.
	(tui_unhighlight_win): Rename unhighlightWin.
	(tui_make_visible, tui_make_invisible): Replace makeVisible.
	(tui_make_all_visible, tui_make_all_invisible): Replace makeAllVisible.
	(tui_make_window): Rename makeWindow.
	(tui_copy_win): Rename copyWin.
	(tui_box_win): Rename boxWin.
	(tui_highlight_win): Rename highlightWin.
	(tui_check_and_display_highlight_if_needed): Rename
	checkAndDisplayHighlightIfNeeded.
	(tui_refresh_all): Rename refreshAll.
	(tui_delete_win): Rename tuiDelwin.
	(tui_refresh_win): Rename tuiRefreshWin.
	* tui/tui-wingeneral.c (make_visible): Rename makeVisible.
	(tui_make_visible, tui_make_invisible): New functions.
	(tui_make_all_visible, tui_make_all_invisible): New functions.
	(make_all_visible): Rename makeAllVisible.
	* tui/tui-winsource.c, tui/tui-windata.c: Update references.
	* tui/tui-data.c, tui/tui-winsource.c: Update references.
	* tui/tui-windata.c, tui/tui-win.c: Update references.
	* tui/tui-regs.c, tui/tui-layout.c: Update references.
	* tui/tui-data.h (struct tui_gen_win_info): Rename _TuiGenWinInfo.

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

	* proc-api.c (write_with_trace): Initialize local variable to
	silence compiler warning.

2004-02-06  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-source.h: Do not include "defs.h".
	(struct tui_win_info): Declare.
	(tui_set_source_content_nil): Declare.
	* tui/tui-data.h (struct tui_win_info): Rename _TuiWinInfo.
	(union tui_line_or_address): Rename _TuiLineOrAddress.
	* tui/tui-winsource.h: Update copyright.  Include "tui-data.h".
	(tui_update_source_window): Rename tuiUpdateSourceWindow.
	(tui_update_source_window_as_is): Rename
	tuiUpdateSourceWindowAsIs.
	(tui_update_source_windows_with_addr): Rename
	tuiUpdateSourceWindowsWithAddr.
	(tui_update_source_windows_with_line): Rename
	tuiUpdateSourceWindowsWithLine.
	(tui_clear_source_content): Rename tuiClearSourceContent.
	(tui_erase_source_content): Rename tuiEraseSourceContent.
	(tui_set_source_content_nil): Rename tuiSetSourceContentNil.
	(tui_show_source_content): Rename tuiShowSourceContent.
	(tui_horizontal_source_scroll): Rename tuiHorizontalSourceScroll.
	(tui_set_exec_info_content): Rename tuiSetExecInfoContent.
	(tui_show_exec_info_content): Rename tuiShowExecInfoContent.
	(tui_erase_exec_info_content): Rename tuiEraseExecInfoContent.
	(tui_clear_exec_info_content): Rename tuiClearExecInfoContent.
	(tui_update_exec_info): Rename tuiUpdateExecInfo.
	(tui_set_is_exec_point_at): Rename tuiSetIsExecPointAt.
	(tui_alloc_source_buffer): Rename tuiAllocSourceBuffer.
	(tui_line_is_displayed): Rename tuiLineIsDisplayed.
	(tui_addr_is_displayed): Rename tuiAddrIsDisplayed.
	(struct tui_win_info): Declare.
	* tui/tui-stack.c: Update references.
	* tui/tui-layout.c, tui/tui-winsource.c: Ditto.
	* tui/tui-win.c, tui/tui-source.c: Ditto.
	* tui/tui.c, tui/tui-disasm.c: Ditto.

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

	* i386-linux-tdep.c (i386_linux_sigcontext_addr): Fix calculation
	of UCONTEXT_ADDR.  Fixes PR backtrace/1545.

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

	* infrun.c (handle_inferior_event): Allow for breakpoint
	instructions to generate a SIGSEGV in addition to SIGTRAP, SIGILL
	and SIGEMT.  Update comments.
	* NEWS (Revised SPARC target): Mention support for non-executable
	stack.

2004-02-04  Mark Kettenis  <kettenis@gnu.org>

	* target.h (target_object): Add TARGET_OBJECT_WCOOKIE.
	* inftarg.c: Update copyright year.
	(child_xfer_partial): Add support for TARGET_OBJECT_WCOOKIE.
	* sparc-nat.c: Include "target.h" and "gdb_assert.h".
	(sparc_xfer_wcookie): New function.
	* sparc-tdep.c (sparc_fetch_wcookie): New function.
	* Makefile.in (sparc-nat.o): Update dependencies.
	* config/sparc/nm-nbsd.h: Include "target.h".
	(NATIVE_XFER_WCOOKIE): New define.
	(sparc_xfer_wcookie): New prototype.

2004-02-04  Andrew Cagney  <cagney@redhat.com>

	* m68k-tdep.c (m68k_saved_pc_after_call): Delete #ifdef
	SYSCALL_TRAP function.
	(m68k_gdbarch_init): Delete #ifdef SYSCALL_TRAP code.

2004-02-04  Andrew Cagney  <cagney@redhat.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* objfiles.h: Delete comments refering to inside_entry_func and
	DEPRECATED_FRAME_CHAIN_VALID.
	* defs.h (inside_entry_func): Update prototype..
	* blockframe.c (inside_entry_func): Rename to
	legacy_inside_entry_func.  Add new inside_entry_func taking a frame.
	* frame.c (get_prev_frame): Pass the frame to inside_entry_func.

2004-02-03  Jeff Johnston  <jjohnstn@redhat.com>

	* breakpoint.c (struct captured_parse_breakpoint_args):  Move
	outside of #ifdef SOLIB_ADD region.
	(do_restore_lang_radix_cleanup): Ditto.
	(resolve_pending_breakpoint): Ditto.

2004-02-03  Andrew Cagney  <cagney@redhat.com>

	* ia64-tdep.c (read_sigcontext_register): Delete unused function.
	(process_note_abi_tag_sections): Delete unused function.
	(ia64_read_fp): Delete unused function.
	(gdbarch_extract_struct_value_address): Delete declaration.

2004-02-02  Andrew Cagney  <cagney@redhat.com>

	* vax-tdep.c (vax_frame_chain): Delete call to
	deprecated_inside_entry_file.
	* ns32k-tdep.c (ns32k_frame_chain): Ditto.

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

	* dwarf2-frame.c (dwarf2_frame_cache): Deal with a return address
	column that's "empty" or "same value" when eliminating REG_RA
	rules.

2004-02-02  Jeff Johnston  <jjohnstn@redhat.com>

	* NEWS: Add information about new pending breakpoint support.

2004-02-02  Jeff Johnston  <jjohnstn@redhat.com>

	* breakpoint.h (struct breakpoint): Add new flag, from_tty,
	and pending fields for pending breakpoint support.
	* breakpoint.c (breakpoint_enabled): Add check for not pending.
	(condition_command): Only parse condition if not a pending
	breakpoint.
	(print_one_breakpoint): Add support for pending breakpoints.
	(describe_other_breakpoints): Add checks to verify we are not
	dealing with pending breakpoints.
	(check_duplicates): Don't check pending breakpoints.
	(set_raw_breakpoint): Initialize pending flag.
	(do_restore_lang_radix_cleanup): New cleanup routine.
	(resolve_pending_breakpoint): New function.
	(re_enable_breakpoints_in_shlibs): Try and resolve any
	pending breakpoints via resolve_pending_breakpoint.
	(mention): Add pending breakpoint support.
	(parse_breakpoint_sals): Add new parameter to pass to
	decode_line_1 to indicate silent errors when files or functions
	are not found.  Change all callers.
	(do_captured_parse_breakpoint): New function.
	(break_command_1): Change prototype to return an rc value and to
	take an optional pending breakpoint pointer.  Support creating
	a pending breakpoint if a "not found" form of error occurs when
	parsing the breakpoint.  Also support resolving an existing pending
	breakpoint and be silent if the resolution fails.
	(create_breakpoints): Change prototype to take pending breakpoint
	pointer.  When resolving a pending breakpoint, use the new pointer
	to provide a conditional or commands added by the end-user.
	(delete_breakpoint): Add appropriate check for pending.
	(breakpoint_re_set_one): Ditto.
	(do_enable_breakpoint): Ditto.

2004-02-02  David Carlton  <carlton@kealia.com>

	* valops.c (enum oload_classification): New.
	(find_overload_match): Break implementation into separate
	functions; delete #if 0'd code; look for symbols within
	namespaces.
	(find_oload_champ_namespace,find_oload_champ_namespace_loop)
	(find_oload_champ,oload_method_static,classify_oload_match): New.
	* cp-support.h: Add declaration for cp_func_name; update
	declaration for make_symbol_overload_list.
	* cp-support.c (cp_func_name): New.
	(overload_list_add_symbol): Fix comment, use
	SYMBOL_LINKAGE_NAME and SYMBOL_NATURAL_NAME.
	(make_symbol_overload_list): Take a function name and a namespace
	instead of a symbol; change implementation.
	(make_symbol_overload_list_using): New.
	(make_symbol_overload_list_qualified, read_in_psymtabs): New.

2004-02-02  Fred Fish  <fnf@redhat.com>

	* main.c (gdb_stdtarg): Move definition to group with other
	gdb_stdtarg definitions and update copyright years.
	* remote-sim.c (gdb_os_write_stderr): Write output to
	gdb_stdtargerr stream instead of gdb_stdtarg stream.
	(gdb_os_flush_stderr): Flush gdb_stdtargerr steam instead of
	gdb_stderr stream and update copyright years.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (mips-linux-nat.o): Update dependencies.
	* mips-linux-nat.c: Include mips-tdep.h.

2004-02-01  Roland McGrath  <roland@redhat.com>

	* sol-thread.c (sol_thread_xfer_partial): New function.
	(init_sol_thread_ops): Use that for to_xfer_partial hook.
	(init_sol_core_ops): Likewise.

	* procfs.c (procfs_xfer_partial): New function.
	(init_procfs_ops): Use that for procfs_ops.to_xfer_partial.
	* Makefile.in (procfs.o): Add $(auxv_h) dep.

	* config/nm-linux.h (NATIVE_XFER_AUXV): New macro, uses auxv.c's
	procfs_xfer_auxv function.

	* procfs.c (procfs_make_note_section): If we can read
	TARGET_OBJECT_AUXV data, add an NT_AUXV note containing it.
	* linux-proc.c (linux_make_note_section): Likewise.

	* auxv.h: New file.
	* auxv.c: New file.
	* Makefile.in (auxv_h): New variable.
	(COMMON_OBS): Add auxv.o here.
	(auxv.o): New target.

	* corelow.c (core_xfer_partial): New function.
	(init_core_ops): Use it for core_ops.to_xfer_partial.

	* target.h (enum target_object): Add TARGET_OBJECT_AUXV.
	* inftarg.c (child_xfer_partial): Support it using NATIVE_XFER_AUXV
	macro if that is defined.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (bpstat_stop_status): Take a ptid_t argument,
	and check the specified thread for each breakpoint.
	* breakpoint.h (bpstat_stop_status): Update prototype.
	* infrun.c (handle_inferior_event): Update calls to
	bpstat_stop_status.

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (cli-cmds.o): Add $(readline_h).

2004-02-01  Daniel Jacobowitz  <drow@mvista.com>

	* cli/cli-cmds.c: Include readline.h.
	(complete_command): Pass the start of the last word to
	complete_line.

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

	* breakpoint.c (bpstat_stop_status): Remove not_a_sw_breakpoint
	argument, and change first argument to a CORE_ADDR.
	* breakpoint.h (bpstat_stop_status): Update prototype.
	* infrun.c (adjust_pc_after_break): Add a new comment.
	(handle_inferior_event): Update calls to bpstat_stop_status.

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

	* breakpoint.h: Update copyright years.

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

	* breakpoint.c (software_breakpoint_inserted_here_p): New function.
	(bpstat_stop_status): Don't decrement PC.
	* breakpoint.h (software_breakpoint_inserted_here_p): Add
	prototype.
	* infrun.c (adjust_pc_after_break): New function.
	(handle_inferior_event): Call it, early.  Remove later references
	to DECR_PC_AFTER_BREAK.
	(normal_stop): Add commentary.

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

	* breakpoint.c (breakpoint_re_set_one): Add missing chunk of
	2004-01-27 double-free fix.

2004-01-31  Mark Kettenis  <kettenis@gnu.org>

	* sparc-tdep.c (sparc_fetch_wcookie): New function.
	(sparc32_frame_prev_register): Handle StackGhost.
	(sparc_supply_rwindow, sparc_collect_rwindow): Likewise.

2004-01-29  Roland McGrath  <roland@redhat.com>

	* configure.in (NEW_PROC_API): Also match solaris2.9 for this test.
	* configure: Regenerated.

	* procfs.c: Include gdb_string.h for str* decls, otherwise warnings.
	* Makefile.in (procfs.o): Add dep.

2004-01-28  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-stack.h: Update copyright.
	(struct frame_info): Add opaque declaration.
	(tui_update_locator_filename): Rename tuiUpdateLocatorFilename.
	(tui_show_locator_content): Rename tuiShowLocatorContent.
	(tui_show_frame_info): Rename tuiShowFrameInfo.
	* tui/tui-stack.c: Update copyright.  Update references.
	* tui/tui-winsource.c: Update references.
	* tui/tui-win.c: Update references.
	* tui/tui-layout.c: Update references.
	* tui/tui-hooks.c: Update copyright, update references.
	* tui/tui.c: Update copyright, update references.
	* tui/tui-disasm.c: Update references.

2004-01-28  David Carlton  <carlton@kealia.com>

	* dwarf2read.c (add_partial_structure): Use demangled name if
	namespace equals "".

2004-01-27  Jim Blandy  <jimb@redhat.com>

	Clean up misapplied patch:
	* dwarf2read.c (determine_prefix): Change one of the two forward
	declarations for 'determine_prefix_aux' to a declaration for this.
	(read_func_scope): Use cu->language, not cu_language.  Pass 'cu'
	argument to 'die_specification'.

	* dwarf2read.c (read_func_scope): Re-indent comment.

2004-01-27  Paul N. Hilfinger  <hilfinger@gnat.com>

	* breakpoint.c (breakpoint_re_set_one): Set b->cond, b->val, and
	b->exp to NULL after freeing so that error during re-parsing or
	evaluation of expressions associated with breakpoint don't
	eventually lead to re-freeing of storage.
	Committed by Andrew Cagney.

2004-01-27  Andrew Cagney  <cagney@redhat.com>

	* source.c (ambiguous_line_spec): Delete undefined declaration.
	* m32r-rom.c (m32r_set_board_address): Delete unused function.
	(m32r_set_server_address, m32r_set_download_path): Ditto.
	* remote-fileio.c (remote_fileio_to_fio_int): Ditto.

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

	* dwarf2read.c: Update calls to changed and renamed functions, and
	references to moved variables.

	(struct dwarf2_cu): Add first_fn, last_fn, cached_fn,
	language, language_defn, list_in_scope, and ftypes members.
	(cu_first_fn, cu_last_fn, cu_cached_fn, cu_language)
	(cu_language_defn, list_in_scope, ftypes, cu_header_offset)
	(baseaddr): Remove globals.

	(dwarf_attr): Renamed to dwarf2_attr.  Add CU argument.
	(set_cu_language, die_is_declaration, die_specification)
	(determine_prefix, determin_prefix_aux, class_name, namespace_name)
	(dwarf2_linkage_name, dwarf2_name, dwarf2_extension)
	(dwarf2_get_ref_die_offset, dwarf2_fundamental_type)
	(initialize_cu_func_list, add_to_cu_func_list): Add CU argument.

	(dwarf2_build_psymtabs_hard): Add local baseaddr.  Initialize
	cu.list_in_scope.  Don't initialize cu_header_offset.
	(add_partial_symbol): Add local baseaddr.
	(psymtab_to_symtab_1): Add local baseaddr.  Use
	objfile->section_offsets for consistency.  Don't initialize
	cu_header_offset; do initialize cu.header.offset and
	cu.list_in_scope.
	(read_file_scope, read_func_scope, read_lexical_block_scope)
	(dwarf_decode_lines, new_symbol): Add local baseaddr.

2004-01-27  Michael Chastain  <mec.gnu@mindspring.com>

	* PROBLEMS: Add gdb/1516.

2003-12-29  Robert Millan  <robertmh@gnu.org>

	Patch committed by Andrw Cagney.
	* configure.host: Match knetbsd*-gnu and kfreebsd*-gnu.
	* configure.tgt: Match knetbsd*-gnu.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* breakpoint.c (catch_command_1): Delete #ifdef code.
	(catch_fork_command_1): Delete #ifdef wrapper.
	(catch_exec_command_1): Ditto.
	(catch_load_command_1): Ditto.
	(catch_unload_command_1): Ditto.

	* breakpoint.c (watchpoint_check): Delete #if0ed variable.
	(catch_breakpoint): Delete #if0ed function.
	(disable_catch_breakpoint): Ditto.
	(delete_catch_breakpoint, enable_catch_breakpoint): Ditto.
	(disable_catch, enable_catch, delete_catch): Ditto.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* remote.c (echo_check, quit_flag): Delete variables.
	(cisco_kernel_mode): Delete variable.
	(minitelnet_return, tty_input, escape_count): Delete variables.
	(remote_cisco_mode): Delete variable.
	(remote_cisco_open, remote_cisco_close): Delete function.
	(remote_cisco_mourn, remote_cisco_wait): Delete function.
	(init_remote_cisco_ops): Delete function.
	(_initialize_remote): Do not install "remote cisco" code.
	(read_frame): Delete cisco specific code.
	(remote_info_process): Delete function.
	(remote_wait): Delete cisco specific code.
	(remote_cisco_section_offsets): Delete function.
	(remote_cisco_objfile_relocate): Delete function.
	(remote_async_wait): Delete cisco specific code.
	(minitelnet, readtty, readsocket): Delete function.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (EXTRACT_STRUCT_VALUE_ADDRESS): Deprecate.  Add
	comments mentioning extract_returned_value_address.
	* infcmd.c (print_return_value): Update.  Add comments on
	extract_returned_value_address.
	* stack.c (return_command): Add comments on
	extract_returned_value_address.
	* values.c: Update comment.
	* m32r-tdep.c: Update comment.
	* sparc-tdep.c: Update comment.
	* ia64-tdep.c (ia64_use_struct_convention): Update comment.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* sh64-tdep.c (sh64_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* m68klinux-tdep.c (m68k_linux_init_abi): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* m32r-tdep.c (m32r_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* dwarf2loc.c (dwarf_expr_frame_base): Use SYMBOL_OPS instead of
	SYMBOL_LOCATION_FUNCS
	(dwarf2_loclist_funcs, dwarf2_locexpr_funcs): Change type to
	"struct symbol_ops".
	* dwarf2loc.h (dwarf2_locexpr_funcs, dwarf2_loclist_funcs): Change
	type to "struct symbol_ops".
	* symtab.h (struct symbol_ops): Rename "struct location_funcs".
	(struct symbol): Replace ".aux_value.loc.funcs" and
	".aux_value.loc.baton" with ".ops" and ".aux_value.ptr".
	(SYMBOL_OBJFILE): Delete macro.
	(SYMBOL_LOCATION_FUNCS): Delete macro.
	(SYMBOL_LOCATION_BATON): Update.
	* dwarf2read.c (dwarf2_symbol_mark_computed): Set SYMBOL_OPS
	intead of SYMBOL_LOCATION_FUNCS.
	* ax-gdb.c (gen_var_ref): Ditto.
	* printcmd.c (address_info): Ditto.
	* findvar.c (read_var_value): Ditto.
	(symbol_read_needs_frame): Ditto.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* dwarf2read.c (read_func_scope): Document frame-base hack.

2004-01-25  Mark Kettenis  <kettenis@gnu.org>

	* infcmd.c (print_return_value): Plug memory leak; delete
	ui_stream object.  Rename argument `structure_return' to
	`struct_return'.

2004-01-25  Mark Kettenis  <kettenis@gnu.org>

	* infcmd.c (print_return_value): Wrap long lines.
	(finish_command_continuation, finish_command): Remove unused
	variable `funcaddr'.  Fix some coding-standards problems.

	* sparc-tdep.c (sparc_regset_from_core_section): Check whether
	SECT_SIZE is large enough, not wheter it's exactly the right size.
	(sparc32_gdbarch_init): Initialize TDEP->sizeof_gregset and
	TDEP->fpregset to zero.

	* sparcnbsd-tdep.c (sparc32nbsd_supply_gregset): Also supply the
	floating-point registers for traditional NetBSD core files.
	(sparc32nbsd_init_abi): Initialize TDEP->sizeof_gregset and
	TDEP->sizeof_fpregset here.

2004-01-25  Mark Kettenis  <kettenis@gnu.org>

	* sparc-tdep.h (sparc32nbsd_sigcontext_saved_regs): New prototype.
	* sparcnbsd-tdep.c (sparc32nbsd_sigcontext_saved_regs): New
	function with code split out from
	sparc32nbsd_sigcontext_frame_cache.
	(sparc32nbsd_sigcontext_frame_cache): Use
	sparc32nbsd_sigcontext_saved_regs.
	(_initialize_sparc32nbsd_tdep): Don't register OS ABI handler for
	OpenBSD.
	* sparcobsd-tdep.c: New file.
	* Makefile.in (ALLDEPFILES): Add sparcobsd-tdep.c.
	(sparcobsd-tdep.o): New dependency.
	* configure.tgt (sparc-*-openbsd*): Set gdb_target to obsd.
	* config/sparc/obsd.mt: New file.

	* sparc-tdep.c (sparc32_gdbarch_init): Don't require
	TDEP->fpregset to be initialized to enable core file register
	sets.

2004-01-24  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.h (struct frame_info, struct trad_frame_saved_reg):
	Add opaque declarations.
	(sparc64nbsd_sigcontext_saved_regs): New prototype.
	* sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_saved_regs): New
	function with code split out from
	sparc64nbsd_sigcontext_frame_cache.
	(sparc64nbsd_sigcontext_frame_cache): Use
	sparc64nbsd_sigcontext_saved_regs.
	(_initialize_sparc64nbsd_tdep): Don't register OS ABI handler for
	OpenBSD.
	* sparc64obsd-tdep.c: New file.
	* Makefile.in (ALLDEPFILES): Add sparc64obsd-tdep.c.
	(sparc64obsd-tdep.o): New dependency.
	* configure.tgt (sparc64-*-openbsd*): Set gdb_target to obsd64 and
	gdb_osabi to GDB_OSABI_OPENBSD_ELF.
	* config/sparc/obsd64.mt: New file.

	* sparc-tdep.c (sparc_fetch_instruction): Return zero if we can't
	read the instruction at PC.

	* sparcnbsd-tdep.c (GDB_OSABI_NETBSD_CORE): Define, based on the
	value of GDB_OSABI_DEFAULT.
	(sparcnbsd_core_osabi_sniffer): Return GDB_OSABI_NETBSD_CORE
	instead of GDB_OSABI_NETBSD_AOUT.

2004-01-24  Nick Roberts  <nick@nick.uklinux.net>

	* mi/mi-cmd-stack.c, mi/mi-cmd-var.c, mi/mi-cmds.h: Update
	copyright.

2004-01-23  Andrew Cagney  <cagney@redhat.com>

	* printcmd.c (display_command): Replace tui_set_display call with
	tui_set_layout_for_display_command.
	* tui/tui.h (enum tui_win_type): Define.
	(tui_set_layout): Delete declaration.
	(tui_set_layout_for_display_command): Rename set_tui_layout.
	* tui/tui-data.h (enum tui_layout_type): Define.
	* tui/tui-layout.h: Update copyright.  Include "tui-data.h" and
	"tui.h".
	(tui_add_win_to_layout): Rename tuiAddWinToLayout.
	(tui_default_win_height): Rename tuiDefaultWinHeight.
	(tui_default_win_viewport_height): Rename
	tuiDefaultWinViewportHeight.
	(tui_set_layout): RenametuiSetLayout.
	* tui/tui-layout.c: Update references.
	* tui/tui.c: Update references.
	* tui/tui-disasm.c: Update references.

2004-01-23  David Carlton  <carlton@kealia.com>

	Partial workaround for PR c++/1511:
	* cp-namespace.c: Include frame.h.
	(cp_lookup_transparent_type): New
	(cp_lookup_transparent_type_loop): New.
	* cp-support.h: Declare cp_lookup_transparent_type.
	* symtab.c (basic_lookup_transparent_type): Renamed from
	lookup_transparent_type.
	(lookup_transparent_type): Replace old body by a call to
	current_language->la_lookup_transparent_type.
	* symtab.h: Update copyright.  Declare
	basic_lookup_transparent_type.
	* language.h: Update copyright.
	(struct language_defn): Add la_lookup_transparent_type.
	* language.c: Update copyright.
	(unknown_language_defn): Add basic_lookup_transparent_type.
	(auto_language_defn): Add basic_lookup_transparent_type.
	(local_language_defn): Add basic_lookup_transparent_type.
	* ada-lang.c: Update copyright.
	(ada_language_defn): Add basic_lookup_transparent_type.
	* c-lang.c: Update copyright.
	(c_language_defn): Add basic_lookup_transparent_type.
	(cplus_language_defn): Add basic_lookup_transparent_type.
	(asm_language_defn): Add basic_lookup_transparent_type.
	(minimal_language_defn): Add basic_lookup_transparent_type.
	* f-lang.c: Update copyright.
	(f_language_defn): Add basic_lookup_transparent_type.
	* jv-lang.c: Update copyright.
	(java_language_defn): Add basic_lookup_transparent_type.
	* m2-lang.c: Update copyright.
	(m2_language_defn): Add basic_lookup_transparent_type.
	* objc-lang.c: Update copyright.
	(objc_language_defn): Add basic_lookup_transparent_type.
	* p-lang.c: Update copyright.
	(p_language_defn): Add basic_lookup_transparent_type.
	* scm-lang.c: Update copyright.
	(scm_language_defn): Add basic_lookup_transparent_type.
	* Makefile.in (cp-namespace.o): Depend on frame.h.

2004-01-23  David Carlton  <carlton@kealia.com>

	Patch for PR c++/1520:
	* dwarf2read.c (read_func_scope): Set processing_current_prefix
	properly if we have a specification die.
	(determine_prefix_aux): Rename from determine_prefix.
	(determine_prefix): Like the old determine_prefix, but never
	returns NULL.

2004-01-23  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c: Update copyright.
	(avr_iaddr_p): Delete unused function.
	(avr_saddr_p): Delete unused function.

2004-01-23  David Carlton  <carlton@kealia.com>

	* symfile.c (reread_symbols): Clear objfile->cp_namespace_symtab.
	Fix for PR symtab/1534.

2004-01-23  Mark Kettenis  <kettenis@gnu.org>

	* NEWS (New native configurations): Mention OpenBSD/sparc and
	OpenBSD/sparc64.
	* configure.tgt: Add sparc-*-openbsd* and sparc64-*-openbsd*.
	* configure.host: Likewise.
	* sparcnbsd-tdep.c (_initialize_sparnbsd_tdep): Register OS ABI
	handler for OpenBSD.
	* sparc64nbsd-tdep.c (_initialize_sparc64nbsd_tdep): Likewise.

2004-01-22  Mark Kettenis  <kettenis@gnu.org>

	* sparcnbsd-tdep.c (sparcnbsd_core_osabi_sniffer): New function.
	(_initialize_sparnbsd_tdep): Register sparcnbsd_core_osabi_sniffer.

	* ser-pipe.c (pipe_open): Use proper null pointer in execl call.
	* cli/cli-cmds.c (shell_escape): Likewise.

	* osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Recognize
	OpenBSD .note.openbsd.ident sections.

2004-01-22  David Carlton  <carlton@kealia.com>

	* dwarf2read.c (psymtab_to_symtab_1): Calculate lowpc, highpc via
	get_scope_pc_bounds.
	(read_file_scope): Ditto.
	(get_scope_pc_bounds): New function, produced by extracting code
	from the above two functions, consolidating it, and adding support
	for DW_TAG_namespace.

2004-01-22  Mark Kettenis  <kettenis@gnu.org>

	* osabi.c (MAX_NOTESZ): New define.
	(check_note): New function.
	(generic_elf_osabi_sniff_abi_tag_sections): Reorganize code using
	check_note.

2004-01-21  Roland McGrath  <roland@redhat.com>

	* MAINTAINERS (write after approval): Add myself.

2004-01-21  Eli Zaretskii  <eliz@gnu.org>

	* utils.c (init_page_info): Move declarations of `rows' and
	`cols' before the __GO32__-specific code.  Move the closing brace
	outside the #ifdef __GO32__..#endif block.
	[__GO32__]: Use `rows' and `cols' to avoid compiler warnings.

2004-01-21  Paul Brook  <paul@codesourcery.com>

	* infrun.c (handle_inferior_event): Check stop_stack_dummy if handling
	BPSTAT_WHAT_CHECK_SHLIBS.

2004-01-21  Paul Brook  <paul@codesourcery.com>

	* MAINTAINERS: Add myself to write-after-approval.

2004-01-20  Andrew Cagney  <cagney@redhat.com>

	* ax-gdb.c (print_axs_value): Delete unused function.
	* jv-lang.c (java_lookup_type): Delete unused function.
	* cli/cli-dump.c (dump_filetype): Delete unused function.
	* remote-mips.c (remote_mips_insert_hw_breakpoint)
	(remote_mips_remove_hw_breakpoint): Delete unused functions.
	(mips_getstring): Delete unused function.
	(pmon_insert_breakpoint): Delete #if0ed function.
	(PMON_MAX_BP): Delete #if0ed MACRO.
	(mips_pmon_bp_info): Delete #if0ed variable.
	(pmon_remove_breakpoint): Delete #if0ed function.
	* monitor.c (monitor_write_even_block): Delete unused function.
	(monitor_write_memory_block): Delete #if0ed code.
	* dink32-rom.c (dink32_load): Delete unused function.
	(_initialize_dink32_rom): Delete #if0ed code.
	* d10v-tdep.c (d10v_daddr_p): Delete unused function.

	* tui/tui-command.c: Update references.
	* tui/tui-io.c: Update references.
	* tui/tui-command.h: Update copyright.
	(tui_dispatch_ctrl_char): Rename tuiDispatchCtrlChar.

	* source.c (ambiguous_line_spec): Delete never-defined function.
	* remote-rdi.c (arm_rdi_mourn, arm_rdi_send): Ditto.
	* gdbtypes.c (add_name, add_mangled_type): Ditto.
	* cli/cli-cmds.c (validate_comname): Ditto.

	* tui/tui-disasm.h: Update copyright.  Include "tui.h" and
	"tui-data.h".
	(tui_set_disassem_content): Rename tuiSetDisassemContent.
	(tui_show_disassem): Rename tuiShowDisassem.
	(tui_show_disassem_and_update_source): Rename
	tuiVerticalDisassemScroll.
	(tui_vertical_disassem_scroll): Rename tuiVerticalDisassemScroll.
	(tui_get_begin_asm_address): Rename tuiGetBeginAsmAddress.
	* tui/tui.h: Update copyright.
	(enum tui_status): Define.
	* tui/tui-data.h (enum tui_scroll_direction): Define.
	* tui/tui-disasm.c: Update copyright.  Update references.
	* tui/tui-winsource.c: 	Update copyright.  Update references.
	* tui/tui-win.c: Update references.
	* tui/tui-layout.c: Update references.

2004-01-20  Andrew Cagney  <cagney@redhat.com>

	* mi/mi-cmd-stack.c (list_args_or_locals): Move declaration of
	sym2 to start of block.

2004-01-19  Michael Chastain  <mec.gnu@mindspring.com>

	* MAINTAINERS: Delete mmalloc.
	* Makefile.in: Delete MMALLOC, MMALLOC_CFLAGS, -lmmalloc, mmalloc_h.
	* NEWS: Mention removal of --with-malloc.
	* acconfig.h: Delete USE_MMALLOC, MMCHECK_FORCE.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.in: Delete MMALLOC_CFLAGS, MMALLOC, --with-mmalloc,
	USE_MMALLOC, MMCHECK_FORCE.
	* gdbinit.in: Remove mmalloc.
	* utils.c: Delete USE_MMALLOC, NO_MMCHECK, MMCHECK_FORCE, malloc_botch.
	* config/alpha/alpha-linux.mh: Delete MMALLOC, MMALLOC_CFLAGS.
	* config/i386/go32.mh: Likewise.
	* config/i386/interix.mh: Likewise.
	* config/powerpc/xm-linux.h: Delete MMAP_BASE_ADDRESS, MMAP_INCREMENT.

2004-01-19  Jeff Johnston  <jjohnstn@redhat.com>

	* linespec.c (decode_variable, symtab_from_filename):  Call
	error_silent with error message instead of throwing an exception
	directly.
	* defs.h (error_silent, error_output_message): Add prototypes.
	(catch_exceptions_with_msg): Ditto.
	* utils.c (error_silent, error_output_message): New functions.
	* top.c (catch_exceptions_with_msg): New function.

2004-01-20  Nick Roberts  <nick@nick.uklinux.net>

	* mi/mi-cmds.h (enum print_values): Add definition.

	* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Print the name,
	type and value for simple data types and just the name and type
	for complex ones, if required.

	* mi/mi-cmd-var.c (mi_cmd_var_list_children): Print the values of the
	children, if required.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (frv_push_arguments, frv_saved_pc_after_call): Delete
	unused declarations.

2004-01-19  Andrew Cagney  <cagney@redhat.com>

	* top.h (mapped_symbol_files): Delete declaration.
	* main.c (captured_main): Delete option "m" and "mapped".
	* objfiles.c (mapped_symbol_files): Delete variable.
	* symfile.c (symbol_file_command): Delete mmap code.
	(symbol_file_add_with_addrs_or_offsets): Ditto.
	(add_symbol_file_command, reread_separate_symbols): Ditto.
	* objfiles.h (OBJF_MAPPED): Delete.
	* objfiles.c (allocate_objfile) [USE_MMALLOC]: Delete.
	(free_objfile) [USE_MMALLOC]: Ditto.
	(open_existing_mapped_file): Delete function.
	(open_mapped_file): Delete function.
	(map_to_file): Delete function.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* infrun.c (step_into_function): Account for possible breakpoint
	adjustment when computing ``stop_func_start''.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* target.c (default_region_size_ok_for_hw_watchpoint): Compare
	the region size against the size of a pointer, not the size of
	a register as given by DEPRECATED_REGISTER_SIZE.

2004-01-19  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-regs.h: Include "tui-data.h".
	(tuiFirstRegElementNoInLine): Delete declaration.
	(tui_display_registers_from): Rename tuiDisplayRegistersFrom.
	(tui_last_regs_line_no): Rename tuiLastRegsLineNo.
	(tui_line_from_reg_element_no): Rename tuiLineFromRegElementNo.
	(tui_calculate_regs_column_count): Rename
	tuiCalculateRegsColumnCount.
	(tui_check_register_values): Rename tuiCheckRegisterValues.
	(tui_show_registers): Rename tuiShowRegisters.
	(tui_display_registers_from_line): Rename
	tuiDisplayRegistersFromLine.
	(tui_first_reg_element_inline): Rename tuiFirstRegElementInLine.
	(tui_toggle_float_regs): Rename tuiToggleFloatRegs.
	(tui_first_reg_element_no_inline): Rename
	tuiFirstRegElementNoInLine.
	* tui/tui-data.h: Update copyright.
	(enum tui_register_display_type): Rename _TuiRegisterDisplayType.
	* tui/tui-windata.c: Update copyright, update references.
	* tui/tui-regs.c: Update copyright, update references.
	* tui/tui-win.c: Update copyright, update references.
	* tui/tui-layout.c: Update copyright, update references.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-io.c: Update copyright.
	(key_is_end_sequence, key_is_backspace): New functions.
	(key_is_command_char, key_is_start_sequence): New function.
	(tui_getc): Update references.
	* tui/tui-io.h: Update copyright.
	(m_tuiStartNewLine): Delete macro.
	(m_isBackspace, m_isDeleteChar): Delete macros.
	(m_isDeleteLine, m_isDeleteToEol): Delete macros.
	(m_isNextPage, m_isPrevPage): Delete macros.
	(m_isLeftArrow, m_isRightArrow): Delete macros.
	(m_isXdbStyleCommandChar): Delete macro.
	(key_is_start_sequence): Declare, replace m_isStartSequence.
	(key_is_end_sequence): Declare, replace m_isEndSequence.
	(key_is_backspace): Declare ,replace m_isBackspace.
	(key_is_command_char): Declare, replace m_isCommandChar.
	* tui/tui-command.c: Update copyright.
	(tuiDispatchCtrlChar): Update references.

	* config/djgpp/fnchange.lst: Delete tui/tuiSourceWin.c and
	tuiSourceWin.h.

	* tui/tui-command.c: Rename tui/tuiCommand.c.
	* tui/tui-command.h: Rename tui/tuiCommand.h.
	* tui/tui-data.c: Rename tui/tuiData.c.
	* tui/tui-data.h: Rename tui/tuiData.h.
	* tui/tui-disasm.c: Rename tui/tuiDisassem.c.
	* tui/tui-disasm.h: Rename tui/tuiDisassem.h.
	* tui/tui-io.c: Rename tui/tuiIO.c.
	* tui/tui-io.h: Rename tui/tuiIO.h.
	* tui/tui-layout.c: Rename tui/tuiLayout.c.
	* tui/tui-layout.h: Rename tui/tuiLayout.h.
	* tui/tui-regs.c: Rename tui/tuiRegs.c.
	* tui/tui-regs.h: Rename tui/tuiRegs.h.
	* tui/tui-source.c: Rename tui/tuiSource.c.
	* tui/tui-source.h: Rename tui/tuiSource.h.
	* tui/tui-stack.c: Rename tui/tuiStack.c.
	* tui/tui-stack.h: Rename tui/tuiStack.h.
	* tui/tui-win.c: Rename tui/tuiWin.c.
	* tui/tui-win.h: Rename tui/tuiWin.h.
	* tui/tui-windata.c: Rename tui/tuiDataWin.c.
	* tui/tui-windata.h: Rename tui/tuiDataWin.h.
	* tui/tui-wingeneral.c: Rename tui/tuiGeneralWin.c.
	* tui/tui-wingeneral.h: Rename tui/tuiGeneralWin.h.
	* tui/tui-winsource.c: Rename tui/tuiSourceWin.c.
	* tui/tui-winsource.h: Rename tui/tuiSourceWin.h.
	* tui/tui-file.c: Update includes.
	* tui/tui-hooks.c: Update includes.
	* tui/tui-interp.c: Update includes.
	* tui/tui.c: Update includes.
	* Makefile.in: Update all tui/ dependencies.
	(SUBDIR_TUI_OBS, SUBDIR_TUI_SRCS): Update file names.

	* Makefile.in: Update copyright.  Update dependencies.

	* tui/tuiSourceWin.c (tui_update_breakpoint_info): Fix compile
	problem.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* mn10300-tdep.c (_initialize_mn10300_tdep): Call gdbarch_register
	instead of register_gdbarch_init.

	* remote-sds.c (tohex): Delete unused function.  Update copyright.
	* xstormy16-tdep.c (xstormy16_register_virtual_size): Ditto.
	* v850-tdep.c (v850_register_virtual_size): Ditto.
	* target.c (normal_target_post_startup_inferior): Ditto.
	* source.c (ambiguous_line_spec): Ditto.
	* remote.c (adapt_remote_get_threadinfo): Ditto.
	* mi/mi-out.c (out_field_fmt): Ditto.
	* mi/mi-interp.c (mi_interp_read_one_line_hook): Ditto.
	(output_control_change_notification): Ditto.
	* m68k-tdep.c (m68k_register_byte): Ditto.
	(m68k_remote_breakpoint_from_pc): Ditto.
	* ui-out.c (init_ui_out_state): Delete unused declaration.
	* stabsread.c (search_value): Ditto.
	* mi/mi-cmd-env.c (env_cli_command): Ditto.
	* maint.c (print_section_table): Ditto.
	* infrun.c (set_follow_fork_mode_command): Ditto.

2004-01-18  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2-frame.c (execute_cfa_program): Move DWA_CFA_nop before
	DW_CFA_def_cfa_exporession.  Add support for
	DW_CFA_offset_extendend_sf, DW_CFA_def_cfa_sf and
	DW_CFA_def_cfa_offset_sf.  This should fix PR backtrace/1391.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* ocd.c: Update copyright.
	(bdm_read_register_command): Delete unused function.
	(_initialize_remote_ocd): Delete commented out reference.
	(get_quoted_char, reset_packet): Delete #if0ed function.
	(output_packet, put_quoted_char): Delete #if0ed function.
	(stu_put_packet, stu_get_packet): Delete #if0ed function.
	(ocd_start_remote): Delete #if0ed code, remove #if1 wrapper.
	(BDM_BREAKPOINT): Delete #if0ed macro.
	(remote_timeout): Delete #if0ed variable.

2004-01-18  Mark Kettenis  <kettenis@gnu.org>

	* Makefile.in (ALLDEPFILES): Remove core-sol2.c.
	(core-sol2.o): Remove dependency.
	* core-sol2.c: Remove file.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mdebugread.c (compare_blocks): Make addr_diff a LONGEST.
	* block.h: Make GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOOCK
	enums.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* remote.c: Update copyright years.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* remote.c (remote_vcont_resume): Use xstrprintf instead of sprintf.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mdebugread.c: Update copyright.
	(parse_symbol): Replace DEPRECATED_STREQ with strcmp.
	(parse_type, parse_procedure): Ditto.
	(parse_partial_symbols, psymtab_to_symtab_1): Ditto.

	* cris-tdep.c (cris_store_struct_return): Put back accidently
	deleted function.

	* gdbarch.sh: Update copyright year.
	* gdbarch.h, gdbarch.c: Re-generate.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	Suggested by George Anzinger.
	* dwarf2expr.c (execute_stack_op): Fetch the second item from the
	correct stack offset.  Include unknown opcode numbers in the error
	message.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* x86-64-tdep.c (x86_64_init_abi): No need to clear
	extract_struct_value_address, i386 does not set it.
	* sparc64-tdep.c (sparc64_init_abi): Do not set
	extract_struct_value_address, never called.
	(sparc64_extract_struct_value_address): Delete function.
	* m68hc11-tdep.c: Update copyright.
	(m68hc11_gdbarch_init): Delete redundant assignment of
	extract_struct_value_address.
	* i386-tdep.c: Update copyright.
	(i386_gdbarch_init): Do not set extract_struct_value_address,
	never called.
	(i386_extract_struct_value_address): Delete function.
	* sparc-tdep.c (sparc32_gdbarch_init): Do not set
	extract_struct_value_address, never called.
	(sparc32_extract_struct_value_address): #if 0 function.  Add
	comments explaining its future.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* arm-tdep.c (arm_write_pc): New function.
	(arm_gdbarch_init): Call set_gdbarch_write_pc.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (must_shift_inst_regs): Delete.
	(bpstat_stop_status): Delete references to DECR_PC_AFTER_HW_BREAK
	and SHIFT_INST_REGS.
	* infcmd.c (step_1, step_1_continuation): Delete references to
	SHIFT_INST_REGS.
	* infrun.c (keep_going): Likewise.
	* target.h (DECR_PC_AFTER_HW_BREAK): Don't define.
	* config/i386/nm-i386.h (DECR_PC_AFTER_HW_BREAK): Likewise.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* infcmd.c (print_return_value): Delete reference to
	DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS.

	* cris-tdep.c (cris_gdbarch_init): Do not set
	deprecated_extract_struct_value_address.

	* xstormy16-tdep.c: Update copyright.
	(xstormy16_extract_struct_value_address): Update to current
	extract struct value address interface.
	(xstormy16_gdbarch_init): Set extract_struct_value_address.
	* sh64-tdep.c (sh64_extract_struct_value_address): Update to
	current extract struct value address interface.
	(sh64_gdbarch_init): Set extract_struct_value_address.

	* cris-tdep.c: Update copyright.
	(cris_extract_struct_value_address): Delete function.
	(struct_return_address): Delete variable.
	(cris_store_struct_return): Do not set struct_return_address.

	* mcore-tdep.c: Update copyright.
	(mcore_extract_struct_value_address): Delete function.  Update
	comments.
	(mcore_gdbarch_init): Update.
	* mn10300-tdep.c: Update copyright.
	(mn10300_extract_struct_value_address): Delete function.
	(mn10300_gdbarch_init): Update.
	* v850-tdep.c: Update copyright.
	(v850_extract_struct_value_address): Delete.
	(v850_gdbarch_init): Update.
	* ns32k-tdep.c: Update copyright.
	(ns32k_extract_struct_value_address): Delete.
	(ns32k_gdbarch_init): Update.
	* hppa-tdep.c (hppa_extract_struct_value_address): Delete.
	(hppa_gdbarch_init): Update.
	* vax-tdep.c: Update copyright.
	(vax_extract_struct_value_address): Delete.
	(vax_gdbarch_init): Update.

	* gdbarch.sh (DEPRECATED_NPC_REGNUM): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* procfs.c (procfs_fetch_registers): Delete reference to
	DEPRECATED_NPC_REGNUM.
	(procfs_store_registers): Ditto.
	* regcache.c (generic_target_write_pc): Simplify.
	* lynx-nat.c: Delete #ifdef SPARC code.  Not used.

	* core-sol2.c (fetch_core_registers): Replace
	DEPRECATED_NPC_REGNUM with equivalent tdep value.

	* hppa-tdep.c: Update copyright year.
	(hppa_target_write_pc): Use PCOQ_TAIL_REGNUM instead of
	NPC_REGNUM.
	(hppa_gdbarch_init): Do not set deprecated_npc_regnum.

	* mips-tdep.c (mips_write_pc): New function.
	(mips_gdbarch_init): Set "write_pc" to "mips_write_pc".
	(mips_read_pc): Use mips_regnum instead of PC_REGNUM.
	(mips_find_saved_regs, mips_software_single_step: Ditto.
	(mips_frame_saved_pc, mips_frame_saved_pc): Ditto.
	mips_init_extra_frame_info, mips_pop_frame): Ditto.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c: Re-indent.  Group functions by ABI.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DECR_PC_AFTER_BREAK): Make zero the default.
	* gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	DECR_PC_AFTER_BREAK to zero.
	* vax-tdep.c (vax_gdbarch_init): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc32_gdbarch_init): Ditto.
	* sh64-tdep.c (sh64_gdbarch_init): Ditto.
	* sh-tdep.c (sh_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.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* m32r-tdep.c (m32r_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.
	* i386-nto-tdep.c (i386nto_init_abi): Add comment.

2004-01-17  J. Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (dwarf2_non_const_array_bound_ignored_complaint):
	Delete, no longer used.
	(read_subrange_type): New function, mostly extracted from
	read_array_type().
	(read_array_type): Replace extracted code by call to
	read_subrange_type().
	(dwarf2_get_attr_constant_value): New function.
	(scan_partial_symbols): Add handling for DW_TAG_subrange_type.
	(add_partial_symbol): Likewise.
	(process_die): Likewise.
	(new_symbol): Likewise.
	(read_type_die): Likewise.

2004-01-16  Andrew Cagney  <cagney@redhat.com>

	* symfile.c: Update copyright year.
	(compare_symbols): Delete unused function.
	* stabsread.c: Update copyright year.
	(lrs_general_complaint): Delete unused function.
	(ref_search_value): Ditto.
	(get_substring): Delete declaration.
	* sh64-tdep.c: Update copyright year.
	(sh64_get_gdb_regnum): Delete unused function.
	* dwarf2read.c (dwarf2_unsupported_at_frame_base_complaint):
	Delete unused function.

2004-01-17  Mark Kettenis  <kettenis@gnu.org>

	* defs.h (gdb_osabi): Add GDB_OSABI_OPENBSD_ELF.
	* osabi.c (gdb_osabi_names): Add "OpenBSD ELF".

2004-01-16  Andrew Cagney  <cagney@redhat.com>

	Changes from Peter Schauer.
	* rs6000-tdep.c: Update copyright year.
	(rs6000_push_dummy_call): Update the stack pointer before
	accessing the corresponding stack region.
	* rs6000-nat.c: Update copyright year.
	(set_host_arch): Set "info.abfd" to "exec_bfd".

2004-01-15  Mark Kettenis  <kettenis@gnu.org>

	* blockframe.c: Update copyright year.
	(inside_entry_func): Don't treat a zero PC specially.

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

	* gcore.c (gcore_copy_callback): Use paddr_d to print size
	variable.
	(gcore_create_callback): Ditto.  Skip any memory segment that has
	no permissions set.

2004-01-14  David Carlton  <carlton@kealia.com>

	Change symbols for C++ nested types to contain the fully qualified
	name, if possible.  (At least in the DWARF-2 case.)  Partial fix
	for PR's c++/57, c++/488, c++/539, c++/573, c++/609, c++/832,
	c++/895.
	* c-exp.y (qualified_type): Handle types nested within classes.
	* cp-namespace.c: Update comments.
	(cp_set_block_scope): Delete #if 0.
	(cp_lookup_nested_type): Handle types nested within classes.
	* dwarf2read.c: (scan_partial_symbols): Call add_partial_structure
	when appropriate.
	(add_partial_symbol): Add the name of the enclosing namespace to
	types.
	(pdi_needs_namespace): New.
	(add_partial_namespace): Tweak comment.
	(add_partial_structure): New.
	(psymtab_to_symtab_1): Initialize processing_current_prefix
	here...
	(process_die): instead of here.
	(read_structure_scope): Try to figure out the name of the class or
	namespace that the structure might be defined within.
	(read_enumeration): Generate fully-qualified names, if possible.
	(read_namespace): Don't set name to NULL.
	(die_specification): New.
	(new_symbol): Generate fully-qualified names for types.
	(read_type_die): Determine appropriate prefix.
	(determine_prefix): New.
	(typename_concat): New.
	(class_name): New.
	* valops.c (value_aggregate_elt): Pass NOSIDE to
	value_struct_elt_for_reference.
	(value_struct_elt_for_reference): Make static, add NOSIDE
	parameter, call value_maybe_namespace_elt as a last resort.
	(value_namespace_elt): Break out code into
	value_maybe_namespace_elt.
	(value_maybe_namespace_elt): New.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_convert_register_p): Handle both raw and
	cooked floating-point registers.
	(mips_gdbarch_init): Set convert_register_p, register_to_value,
	and value_to_register.

2004-01-13  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (FUNCTION_START_OFFSET): Make zero the default.
	* gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	FUNCTION_START_OFFSET.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc32_gdbarch_init): Ditto.
	* sh64-tdep.c (sh64_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.
	* m32r-tdep.c (m32r_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* hppa-tdep.c (hppa_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.

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

	* infrun.c (follow_fork_mode_ask): Remove.
	(follow_fork_mode_kind_names): Remove follow_fork_mode_ask.
	(follow_fork): Simplify and remove internal error for
	follow_fork_mode_ask.
	(_initialize_infrun): Update "set follow-fork-mode" help text.

2004-01-13  Andrew Cagney  <cagney@redhat.com>

	* configure.in: Update copyright year.
	(build_warnings): Add -Wunused-label.
	* configure: Re-generate.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* exec.h (exec_ops): Make "extern".

	* mips-tdep.c (mips_pseudo_register_read): Don't return a value,
	the function is void.
	(mips_pseudo_register_write): Ditto.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* stack.c (frame_info): Delete DEPRECATED_PRINT_EXTRA_FRAME_INFO
	call.  Never defined.
	* sparc-tdep.h (struct frame_info): Add opaque declaration.
	* sparc64-tdep.h (struct gdbarch): Add opaque declaration.
	(struct sparc_gregset, struct regcache): Ditto.
	* sparc-nat.c: Update copyright.  Specify "GNU/Linux".

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* mi/ChangeLog: Delete file.  Renamed to ...
	* mi/ChangeLog-1999-2003: New file.
	* tui/ChangeLog: Delete file.  Renamed to ...
	* tui/ChangeLog-1998-2003: New file.

2004-01-11  Mark Kettenis  <kettenis@gnu.org>

	* sparc64nbsd-tdep.c: Include "regset.h".
	(sparc64nbsd_sizeof_struct_reg, sparc64nbsd_sizeof_struct_fpreg):
	Remove variables.
	(fetch_core_registers): Remove function.
	(sparc64nbsd_core_fns): Remove variable.
	(sparc64nbsd_supply_gregset, sparc64nbsd_supply_fpregset): New
	functions.
	(sparc64nbsd_init_abi): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_gregset.
	(_initialize_sparc64nbsd_tdep): Remove call to add_core_fns.

	* sparc-tdep.c (sparc32_extract_struct_value_address): Rename from
	sparc_extract_struct_value_address.
	(sparc32_gdbarch_init): Set extract_struct_value_address.
	* sparc64-tdep.c (sparc64_extract_struct_value_address): New
	function.
	(sparc64_init_abi): Set extract_struct_value_address.  Don't set
	return_value_on_stack.

	* NEWS: Mention that %cs and %ss have been added to the AMD64
	configurations

	* frame.c: Update copyright year.
	(get_prev_frame): Improve comment.

	* sparc64fbsd-tdep.c: Include "regset.h".
	(sparc64fbsd_sizeof_struct_reg, sparc64fbsd_sizeof_struct_fpreg):
	Remove variables.
	(fetch_core_registers): Remove function.
	(sparc64fbsd_core_fns): Remove variable.
	(sparc64fbsd_supply_gregset, sparc64fbsd_supply_fpregset): New
	functions.
	(sparc64fbsd_init_abi): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_gregset.
	(_initialize_sparc64fbsd_tdep): Remove call to add_core_fns.

	* sparcnbsd-tdep.c: Include "regset.h".
	(fetch_core_registers): Remove function.
	(sparcnbsd_core_fns, sparcnbsd_elfcore_fns): Remove varaibles.
	(sparc32nbsd_supply_gregset, sparc32nbsd_supply_fpregset): New
	functions.
	(sparc32nbsd_init_abi): Initialize TDEP->gregset and
	TDEP->fpregset.
	(_initialize_sparcnbsd_tdep): Remove calls to add_core_fns.

	* sparc-tdep.h (struct regset): Provide opaque declaration.
	(struct gdbarch_tdep): Add gregset, sizeof_gregset,
	fpregset and sizeof_fpregset members.
	* sparc-tdep.c (struct regset): Provide opaque declaration.
	(sparc_regset_from_core_section): New function.
	(sparc32_gdbarch_init): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_fpregset.
	Set regset_from_core_section when appropriate.

2004-01-10  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (amd64_non_pod_p): New function.
	(amd64_classify_aggregate): Return class memory for non-POD
	C++ structure types.

	* x86-64-tdep.c (amd64_push_arguments): Add struct_return
	argument.  Use it to reserve a register if necessary.
	(amd64_push_dummy_call): Pass STRUCT_RETURN in call to
	amd64_push_arguments.

	* x86-64-tdep.c (amd64_classify_aggregate): Ignore static fields.

	* x86-64-tdep.c (amd64_register_info): Add %cs and %ss.  Adjust
	register numbers in comments.
	* x86-64-tdep.h: Update copyright year.
	(X86_64_ST0_REGNUM, X86_64_XMM0_REGNUM, X86_64_XMM1_REGNUM):
	Adjust for addition of %cs and %ss.
	* amd64fbsd-nat.c: Update copyright year.
	(reg_offset): Add register offsets for %cs and %ss.
	* amd64fbsd-tdep.c: Update copyright year.
	(amd64fbsd_r_reg_offset): Add register offsets for %cs and %ss.
	(amd64fbsd_sc_reg_offset): Likewise.
	* x86-64-linux-nat.c: Update copyright year.
	(x86_64_linux_gregset64_reg_offset): Add register offsets for %cs
	and %ss.
	* amd64nbsd-nat.c: Update copyright year.
	(amd64nbsd32_r_reg_offset): Add register offsets for %cs and %ss.
	* amd64nbsd-tdep.c: Update copyright year.
	(amd64nbsd_r_reg_offset): Add register offsets for %cs and %ss.
	* x86-64-linux-tdep.c: Update copyright year.
	(user_to_gdb_regmap): Add mapping for %cs and %ss.
	(x86_64_linux_sc_reg_offset): Adjust for addition of %cs and %ss.
	* regformats/reg-x86-64.dat: Add %cs and %ss.

	* blockframe.c (inside_entry_func): Reformat.  Introduce new local
	variables to prevent long lines.  Update comments to reflect
	reality.

2004-01-09  David Carlton  <carlton@kealia.com>

	Checked in by Elena Zannoni  <ezannoni@redhat.com>.
	* dwarf2read.c (read_namespace): Pull out name-generating code
	into namespace_name. Rename previous_namespace to previous_prefix
	and processing_current_namespace to processing_current_prefix..
        (namespace_name): New function.
	(add_partial_symbol): Substitute uses of pdi->name with
	actual_name.
	* cp-support.h: Rename processing_current_namespace to
	processing_current_prefix.
        Update copyright year.
	* cp-namespace.c: Rename processing_current_namespace to
	processing_current_prefix.
        Update copyright year.

2004-01-09  Andrew Cagney  <cagney@redhat.com>

	* jv-valprint.c, ser-unix.c: Add missing copyright years.

2004-01-09  Mark Kettenis  <kettenis@gnu.org>

	* dbxread.c (read_dbx_symtab): Ignore N_PATCH stabs instead of
	complaining.
	(process_one_symbol): Deal with N_PATCH stabs.

2004-01-09  Elena Zannoni  <ezannoni@redhat.com>

	* dwarf2read.c (read_array_type): Discard FORTRAN_HACK macro and
	ifdeffed code.
        Update copyright year.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* config/pa/tm-hppa.h: Update extern declarations for
	hppa32_hpux_frame_saved_pc_in_sigtramp,
	hppa32_hpux_frame_base_before_sigtramp, and
	hppa32_hpux_frame_find_saved_regs_in_sigtramp.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* config/pa/tm-hppah.h: Update copyright years.

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

	* mips-tdep.c (mips_n32n64_reg_struct_has_addr): Delete function.
	(mips_o32_reg_struct_has_addr): Delete function.
	(mips_gdbarch_init): Update.
	(mips_extract_struct_value_address): Delete function.

2004-01-08  David Mosberger  <davidm@hpl.hp.com>

	* ia64-linux-tdep.c: Update GATE_AREA_END value to reflect
	reality.

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

	* mips-tdep.c (mips_gdbarch_init): Set elf_flags to the previous
	architecture's elf flags (when available).

	* mips-tdep.c (mips_gdbarch_init): Move code determining the MIPS
	FPU to the start, check the MIPS FPU when looking for an old
	architecture.
	(set_mipsfpu_single_command): Update the architecture.
	(set_mipsfpu_double_command, set_mipsfpu_none_command): Ditto.

	* mips-tdep.c (MIPS_DEFAULT_MASK_ADDRESS_P): Delete macro.
	(mips_mask_address_p): Add "tdep" parameter.
	(show_mask_address, mips_addr_bits_remove): Update.
	(mips_dump_tdep): Update.
	(MIPS_DEFAULT_STACK_ARGSIZE): Delete macro.
	(MIPS_STACK_ARGSIZE): Delete macro.
	(mips_stack_argsize, mips_eabi_push_dummy_call): Update.
	(mips_n32n64_push_dummy_call, mips_o32_push_dummy_call): Update.
	(mips_o64_push_dummy_call, mips_o32_return_value): Update.
	(mips_dump_tdep): Update.
	(MIPS_SAVED_REGSIZE): Delete macro.
	(MIPS_DEFAULT_SAVED_REGSIZE): Delete macro.
	(mips_saved_regsize, mips_eabi_use_struct_convention): Update.
	(mips_eabi_reg_struct_has_addr, mips_find_saved_regs): Update.
	(mips_frame_saved_pc, mips16_heuristic_proc_desc): Update.
	(mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call): Update.
	(mips_o32_push_dummy_call, mips_o64_push_dummy_call): Update.
	(mips_pop_frame, return_value_location): Update.
	(mips_n32n64_return_value, mips_dump_tdep): Update.

	* mips-tdep.c (mips_gdbarch_init): Clean up code selecting the
	MIPS ABI.

	* mips-tdep.c: Update copyright.
	(mips_gdbarch_init): Merge two code blocks handling the register
	name and number layout.

2004-01-02  Pawel Ostrowski  <pasza@zodiac.mimuw.edu.pl>

	* tracepoint.c (validate_actionline): Fix segv at EOF

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* hpread.c (hpread_read_struct_type): Call SET_FIELD_PHYSNAME
	properly for static fields.

2004-01-06  Jeff Johnston  <jjohnstn@redhat.com>
	    Jason Molenda  <jmolenda@apple.com>

	* disasm.c: Update copyright to include 2004.
	(do_mixed_source_and_assembly): For uiout asm list
	and tuple cleanups, initialize to null_cleanup instead of
	NULL and do so prior to loop.  Only reset when we close off
	the tuple/list.  Move check for whether to close off the
	asm tuple/list to after dump_insns call where it will be run
	on each loop iteration.

2004-01-05  Andrew Cagney  <cagney@redhat.com>

	* ser-unix.c (ser_unix_async): Fix tipo, "NOTHING_SECHEDULED"
	should be a switch case and not a label.
	* mips-tdep.c (mips32_next_pc): Delete unused labels
	"greater_equal_branch" and "less_zero_branch".
	* jv-valprint.c (java_print_value_fields): Delete unused label
	"flush_it".

	* target.c (unpush_target): Only close a target that is in the
	target stack.

2004-01-05  Mark Kettenis  <kettenis@gnu.org>

	* sparc-tdep.c (sparc_extract_struct_value_address): Get the
	address from [sp + 64] instead of %o2.

	* frame.c (get_prev_frame): Don't try to unwind the PC.  This
	fixes PR backtrace/1476.

2004-01-05  Andrew Cagney  <cagney@redhat.com>

	* libunwind-frame.h (struct frame_id): Add opaque declaration,
	move to start of file.
	* i386-tdep.h (struct regcache): Add opaque declaration.
	* config/ia64/nm-linux.h (struct target_ops): Add opaque
	declaration.
	* ia64-tdep.c (ia64_find_proc_info_x): Do not use __FUNCTION__.
	(ia64_gdbarch_init): Use "GNU/Linux" in comment.
	* win32-nat.c (fake_create_process): Use ISO C style definition.
	* stabsread.c (define_symbol): Delete #ifndef
	DEPRECATED_USE_REGISTER_NOT_ARG wrapper around
	stabs_argument_has_addr call, macro never defined.

2004-01-04  Michael Chastain  <mec.gnu@mindspring.com>

	* op50-rom.c: Delete.
	* w89k-rom.c: Delete.
	* Makefile.in: Remove references.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c: Update copyright year.
	(struct amd64_register_info): Rename from x86_64_register_info.
	(amd64_register_info): Rename from x86_64_register_info.
	(AMD64_NUM_REGS): Rename from X86_64_NUM_REGS.
	(amd64_register_name): Rename from x86_64_register_name.
	(amd64_register_type): Rename from x86_64_register_type.
	(amd64_dwarf_regmap): Rename from x86_64_dwarf_regmap.
	(amd64_dwarf_regmap_len): Rename from x86_64_dwarf_regmap_len.
	(amd64_dwarf_reg_to_regnum): Rename from
	x86_64_dwarf_reg_to_regnum.
	(amd64_convert_register_p): Rename from x86_64_convert_register_p.
	(amd64_push_dummy_call): Rename from x86_64_push_dummy_call.
	(AMD64_NUM_SAVED_REGS): Rename from X86_64_NUM_SAVED_REGS.
	(struct amd64_frame_cache): Renamed from x86_64_frame_cache.
	(amd64_alloc_frame_cache): Renamed from x86_64_alloc_frame_cache.
	(amd64_analyze_prologue): Rename from x86_64_analyze_prologue.
	(amd64_skip_prologue): Rename from x86_64_skip_prologue.
	(amd64_frame_cache): Rename from x86_64_frame_cache.
	(amd64_frame_this_id): Rename from x86_64_frame_this_id.
	(amd64_frame_prev_register): Rename from
	x86_64_frame_prev_register.
	(amd64_frame_unwind): Rename from x86_64_frame_unwind.
	(amd64_frame_sniffer): Rename from x86_64_frame_sniffer.
	(amd64_sigtramp_frame_cache): Rename from
	x86_64_sigtramp_frame_cache.
	(amd64_sigtramp_frame_prev_register): Rename from
	x86_64_sigtramp_frame_prev_register.
	(amd64_sigtramp_frame_unwind): Rename from
	x86_64_sigtramp_frame_unwind.
	(amd64_sigtramp_frame_sniffer): Rename from
	x86_64_sigtramp_frame_sniffer.
	(amd64_frame_base_address): Rename from x86_64_frame_base_address.
	(amd64_frame_base): Rename from x86_64_frame_base.
	(amd64_unwind_dummy_id): Rename from x86_64_unwind_dummy_id.
	(amd64_frame_align): Rename from x86_64_frame_align.
	(amd64_supply_fpregset): Rename from x86_64_supply_fpregset.
	(amd64_regset_from_core_section): Rename from
	x86_64_regset_from_core_section.
	(x86_64_init_abi): Update comments.

2004-01-04  Nick Roberts  <nick@nick.uklinux.net>

	* MAINTAINERS (write after approval): Add myself.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_arguments): Fix handling of
	`float' arguments.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_floating_fields): Update comment
	such that it mentions a specific version of GCC that exhibits this
	bug.

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

	* sparc64-tdep.c (sparc64_store_floating_fields): If TYPE is a
	structure that has a single `float' member, store it in %f1 in
	addition to %f0.

	* sparc-sol2-nat.c: Add missing '\'.

	* sparc-tdep.c (sparc32_return_value): New function.
	 (sparc32_use_struct_convention, sparc32_return_value_on_stack):
	Remove functions.
	(sparc32_gdbarch_init): Set return_value, don't set
	extract_return_value, store_return_value, use_struct_convention
	and return_value_on_stack.

	* sparc-sol2-nat.c: Add missing ')'.

2004-01-03  J. Brobecker  <brobecker@gnat.com>

	* infrun.c (handle_step_into_function): New function.
	(handle_inferior_event): Extract out some code into the new
	function above.

2004-01-03  J. Brobecker  <brobecker@gnat.com>

	* infrun.c (handle_inferior_event): Move the declaration of
	real_stop_pc inside the if blocks where it is used.

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

	* sparc64-tdep.c (sparc64_16_byte_align_p)
	(sparc64_store_floating_fields, sparc64_store_floating_fields):
	Use check_typedef to get subtypes of structures and unions.
	(sparc64_store_return_value): Fix calculation of the appropriate
	offset into VALBUF when storing a structure or union.
	(sparc64_return_value): New function.
	(sparc64_use_struct_convention): Remove function.
	(sparc64_init_abi): Set return_value, don't set
	extract_return_value, store_return_value and
	use_struct_convention.

2004-01-03  Eli Zaretskii  <eliz@elta.co.il>

	* config/djgpp/fnchange.lst: Add lines for COPYING.LIBGLOSS,
	bfd/doc/ChangeLog-9103, bfd/elf32-m68hc1x.c,
	gdb/config/alpha/xm-alphaosf.h,
	gdb/config/powerpc/tm-ppcle-eabi.h,
	gdb/config/rs6000/tm-rs6000-aix4.h, gdb/gdbtk/ChangeLog-2001,
	gdb/gdbtk/ChangeLog-2002, gdb/gdbtk/ChangeLog-2003,
	gdb/gdbtk/plugins/intel-pentium/intel-pentium.tcl.in,
	gdb/gdbtk/plugins/rhabout/rhabout.tcl.in, gdb/i386-linux-nat.c,
	gdb/ia64-aix-nat.c, gdb/ia64-aix-tdep.c, gdb/ia64-linux-nat.c,
	gdb/ia64-linux-nat.c, gdb/ppc-linux-tdep.c, gdb/ppc-linux-nat.c,
	gdb/sparc64nbsd-nat.c, gdb/sparc64nbsd-tdep.c,
	gdb/sparc64-linux-nat.c, gdb/sparc64-linux-tdep.c,
	gdb/sparc64-nat.c, gdb/sparc64-tdep.c, gdb/sparc64-sol2-tdep.c,
	gdb/sparc-sol2-nat.c, gdb/sparc-sol2-tdep.c,
	gdb/testsuite/gdb.gdbtk/, gdb/testsuite/gdb.mi/mi-var-child.exp,
	nclude/ChangeLog-9103, include/coff/ChangeLog-9103,
	include/elf/ChangeLog-9103, include/opcode/ChangeLog-9103,
	opcodes/ChangeLog-0001, opcodes/ChangeLog-0203,
	opcodes/openrisc-dis.c, opcodes/openrisc-desc.h,
	sim/frv/profile-fr550.c, sim/frv/profile-fr550.h,
	sim/sh64/sem-compact-switch.c, sim/sh64/sem-media-switch.c,
	sim/testsuite/sim/sh64/compact/ldsl-mach.cgs,
	sim/testsuite/sim/sh64/compact/ldsl-macl.cgs,
	sim/testsuite/sim/sh64/compact/stsl-mach.cgs, and
	sim/testsuite/sim/sh64/compact/stsl-macl.cgs.
	Remove lines for .cvsignore files.

2004-01-03  J. Brobecker  <brobecker@gnat.com>

	* infrun.c: Back out the previous change.

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

	* NEWS: Mention revised SPARC target.  Add sparc-*-lynxos* and
	sparc-*-sunos4* to the list of REMOVED configurations.

	* configure.tgt: Add back sparc-*-vxworks*.
	* remote-vxsparc.c: Remove all includes except for "defs.h",
	"regcache.h", "vx-share/ptrace.h" and "vx-share/regPacket.h".
	Include "sparc-tdep.h".
	(SPARC_R_G1): New define.
	(vxsparc_gregset): New variable.
	(ext_format_sparc): Remove extern declaration.
	(vx_read_register): Rewrite to use sparc32_supply_gregset and
	sparc32_supply_fpregset.
	(vx_write_register): Rewrite to use sparc32_collect_gregset,
	sparc_collect_rwindow and sparc32_collect_fpregset.
	* config/sparc/tm-vxworks.h: New file, based on recently removed
	tm-vxsparc.h.
	* config/sparc/vxworks.mt: New file, based on recently removed
	vxworks.mt.

2004-01-03  J. Brobecker  <brobecker@gnat.com>

	* infrun.c (handle_step_into_function): New function.
	(handle_inferior_event): Extract out some code into the new
	function above.

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

	* Makefile.in (ALLDEPFILES): Remove sparc-linux-nat.c and
	sparcl-tdep.c.  Add sparc-linux-tdep.c, sparc-sol2-nat.c,
	sparc-sol2-tdep.c, sparc-sol2-nat.c, sparc-sol2-tdep.c,
	sparc64-linux-nat.c, sparc64-linux-tdep.c, sparc64-nat.c,
	sparc64-sol2-tdep.c, sparc64-tdep.c, sparc64fbsd-nat.c,
	sparc64fbsd-tdep.c, sparcnbsd-nat.c, sparcnbsd-tdep.c.
	(sparc_nat_h): New variable.
	(sparcbsd_nat_h, sparcnbsd_tdep_h): Remove variables.
	(tm-sun4os4.h): Remove dependency.
	(sparcbsd-nat.o, sparc-linux-nat.o): Remove dependencies.
	(sparc64fbsd-nat.o, sparc64fbsd-tdep.o, sparc64nbsd-nat.o,
	sparc64-tdep.o, sparc-nat.o, sparcnbsd-nat.o, sparcnbsd-tdep.o,
	sparc-tdep.o): Update dependencies.
	(sparc-linux-tdep.o, sparc-sol2-nat.o, sparc-sol2-tdep.o,
	sparc64-linux-nat.o, sparc64-linux-tdep.o, sparc64-nat.o,
	sparc64-sol2-tdep.o, sparc64-tdep.o, sparc64nbsd-tdep.o): New
	dependencies.
	* configure.host: Remove existing sparc-*-lynxos*,
	sparc-*-solaris*, sparc-*-sunos4*, sparc-*-sunos5*, sparc-*-*,
	ultrasparc-*-freebsd, sparcv9-*-freebsd, sparc64-*-linux*,
	sparcv9-*-* and sparc64-*-* triplets.  Add new sparc64-*-linux*,
	sparc-*-solaris2*, sparcv9-*-solaris2* and sparc64-*-solaris2*
	triplets.
	* configure.tgt: Remove exitsing sparc-*-aout*, sparc-*-coff*,
	sparc-*-elf*, sparc*-lynxos*, sparc-*-solars2*, sparc-*-sunos4*,
	sparc-*-sunos5*, sparc-*-vxworks*, sparc64-*linux*, sparc64-*-*,
	sparcv9-*-* and commented out sparc64-*-solars2* triplets.  Add
	new sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*,
	sparc64-*-linux, sparc-*-solaris2*, sparcv9-*-solaris*,
	sparc64-*-solaris2* and sparc64-*-* triplets.
	* sparc64-tdep.c: Update copyright year.  Include "inferior.h",
	"symtab.h" and "objfiles.h".
	(BIAS): Remove define.
	(X_OP, X_RD, X_A, X_COND, X_OP2, X_IMM22, X_OP3, X_I, X_DISP22)
	(X_DISP19): Remove macros.
	(sparc_fetch_instruction): Remove function.
	(struct gdbarch_tdep): Remove definition.
	(SPARC64_NUM_REGS, SPARC64_NUM_PSEUDO_REGS): Use ARRAY_SIZE.
	(sparc_breakpoint_from_pc): Remove function.
	(struct sparc64_frame_cache): Remove definition.
	(sparc64_alloc_frame_cache, sparc64_analyze_prologue,
	sparc64_unwind_pc): Remove functions.
	(sparc64_skip_prologue): Use `struct sparc_frame_cache' instead of
	`struct sparc64_frame_cache.  Call sparc_analyze_prologue instead
	of sparc64_analyze_prologue.  Mark constant as ULL instead of UL.
	(sparc64_frame_cache): Change return type to `struct
	sparc_frame_cache *'.  Simply call sparc_frame_cache.
	(sparc64_frame_this_id, sparc64_frame_prev_register,
	sparc64_frame_base_address): Use `struct sparc_frame_cache'
	instead of `struct sparc64_frame_cache.
	(sparc_unwind_dummy_id, sparc_extract_struct_value_address,
	sparc_analyze_control_transfer, sparc_software_single_step,
	sparc64_gdbarch_init, sparc_supply_rwindow, sparc_fill_rwindow,
	_initialize_sparc64_tdep): Remove functions.
	(TSTATE_CWP, TSTATE_ICC, TSTATE_XCC): New macros.
	(PSR_S, PSR_ICC, PSR_VERS, PSR_IMPL, PSR_V8PLUS, PSR_XCC): New
	macros.
	(sparc64_supply_gregset, sparc64_collect_gregset,
	sparc64_supply_fpregset, sparc64_collect_fpregset): New functions.
	(sparc64_init_abi): New function.
	* sparc64-tdep.h: Update copyright year.  Fix typo in multiple
	inclusion guard.  Include "sparc-tdep.h".
	(BIAS): Define.
	(r_tstate_offset, r_fprs_offset): New defines.
	(enum sparc_regnum): Remove defenition.
	(enum sparc64_regnum): Reformat.
	(sparc_supply_rwindow, sparc_fill_rwindow): Remove prototypes.
	(sparc64_init_abi, sparc64_supply_gregset,
	sparc64_collect_gregset, sparc64_supply_fpregset,
	sparc64_collect_fpregset): New prototypes.
	(sparc64_sol2_gregset, sparc64nbsd_gregset, sparc64fbsd_gregset):
	Add extern declarations.
	(sparc64_sol2_init_abi): New prototype.
	(sparc64fbsd_supply_reg, sparc64fbsd_fill_reg)
	(sparc64fbsd_supply_fpreg, sparc64fbsd_fill_fpreg): Remove
	prototypes.
	* sparc64fbsd-nat.c: Include "sparc-nat.h", don't include
	"sparnbsd-nat.h".
	(sparc64fbsd_reg_supplies_p, sparc64fbsd_fpreg_supplies_p): Remove
	functions.
	(_initialize_sparc64fbsd_nat): Remove initialization of
	sparcbsd_supply_reg, sparcbsd_fill_reg, sparcbsd_supply_fpreg,
	sparcbsd_fill_fpreg, sparcbsd_reg_supplies_p,
	sparcbsd_fpreg_supplies_p.  Initialize sparc_gregset.
	* sparc64fbsd-tdep.c: Update copyright year.  Include "frame.h",
	"frame-unwind.h", "trad-frame.h" and "gdb_assert.h".
	(sparc64fbsd_r_global_offset, sparc64fbsd_r_out_offset)
	(sparc64fbsd_r_fprs_offset, sparc64fbsd_r_tnpc_offset)
	(sparc64fbsd_r_tpc_offset, sparc64fbsd_r_tstate_offset)
	(sparc64fbsd_r_y_offset): Remove variables.
	(sparc64fbsd_sizeof_struct_reg, sparc64fbsd_sizeof_struct_fpreg):
	Make static and const.
	(sparc64fbsd_supply_reg, sparc64fbsd_fill_reg)
	(sparc64fbsd_supply_fpreg, sparc64fbsd_fill_fpreg): Remove
	functions.
	(sparc64fbsd_gregset): New variable.
	(fetch_core_registers): Replace calls to sparc64fbsd_supply_reg
	and sparc64fbsd_supply_fpreg with calls to sparc64_supply_gregset
	and sparc64_supply_fpregset.
	(sparc64fbsd_pc_in_sigtramp, sparc64fbsd_sigtramp_frame_cache)
	(sparc64fbsd_sigtramp_frame_this_id)
	(sparc64fbsd_sigtramp_frame_prev_register): New functions.
	(sparc64fbsd_sigtramp_frame_unwind): New variable.
	(sparc64fbsd_sigtramp_frame_sniffer): New function.
	(sparc64fbsd_init_abi): Set pc_in_sigtramp, append
	sparc64fbsd_sigtramp_frame_sniffer.  Call sparc64_init_abi.
	* sparcnbsd-tdep.c: Update copyright year.  Include
	"floatformat.h", "frame.h", "frame-unwind.h", "symtab.h",
	"trad-frame.h" and "gdb_assert.h", don't include "target.h",
	"value.h" and "sparcnbsd-tdep.h".
	(REG32_OFFSET_PSR, REG32_OFFSET_PC, REG32_OFFSET_NPC)
	(REG32_OFFSET_Y, REG32_OFFSET_GLOBAL, REG32_OFFSET_OUT)
	(REG64_OFFSET_TSTATE, REG64_OFFSET_PC, REG64_OFFSET_NPC)
	(REG64_OFFSET_Y, REG64_OFFSET_GLOBAL, REG64_OFFSET_OUT): Remove
	defines.
	(sparcnbsd_gregset): New variable.
	(sparcnbsd_supply_reg32, sparcnbsd_supply_reg64)
	(sparcnbsd_fill_reg32, sparcnbsd_fill_reg64)
	(sparcnbsd_supply_fpreg32, sparcnbsd_supply_fpreg64)
	(sparcnbsd_fill_reg32, sparcnbsd_fill_reg64): Remove functions.
	(sparc32nbsd_sigtramp_start, sparc32nbsd_sigtramp_end): New
	variables.
	(sparc32nbsd_pc_in_sigtramp, sparc32nbsd_sigcontext_frame_cache)
	(sparc32nbsd_sigcontext_frame_this_id)
	(sparc32nbsd_sigcontext_frame_prev_register): New functions.
	(sparc32nbsd_sigcontext_frame_unwind): New variable.
	(sparc32nbsd_sigtramp_frame_sniffer): New function.
	(sparcnbsd_get_longjmp_target_32,
	sparcnbsd_get_longjmp_target_64): Remove functions.
	(sparcnbsd_aout_in_solib_call_trampoline): Rewrite.
	(sparcnbsd_init_abi_common, sparcnbsd_init_aout,
	sparcnbsd_init_elf): Remove.
	(sparcnbsd_init_abi, sparcnbsd_aout_init_abi)
	(sparcnbsd_elf_init_abi): New functions.
	(_initialize_sparcnbsd_tdep): New prototype.
	(_initialize_sparnbsd_tdep): Update.
	* config/sparc/fbsd.mh (NATDEPFILES): Remove sparcbsd-nat.o and
	corelow.o.  Add sparc64-nat.o and sparc-nat.o.
	* config/sparc/fbsd.mt (TDEPFILES): Add sparc-tdep.o and corelow.o.
	* config/sparc/linux.mh: Update comment.
	(XM_FILE, HOST_IPC): Remove variables.
	(NATDEPFILES): Add sparc-sol2-nat.o and core-regset.o.  Remove
	sparc-linux-nat.o.
	* config/sparc/linux.mt: Update comment.
	(TDEPFILES): Add sparc-sol2-tdep.o and sparc-linux-tdep.o.
	* config/sparc/nbsd.mt: Reformat.
	* config/sparc/nbsd64.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o.
	* config/sparc/nbsd64.mt: Update comment.
	(TDEPFILES): Add sparc64-tdep.o and sparc64nbsd-tdep.o.
	(TM_FILE): Set to tm-nbsd.h.
	* config/sparc/nbsdelf.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o.
	(XM_FILE): Delete.
	* config/sparc/nbsdaout.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o
	(XM_FILE): Delete.
	* config/sparc/nm-linux.h: Update copyright year.  Don't include
	"config/nm-svr4.h" and "solib.h".  Add protection against multiple
	inclusion.
	(KERNEL_U_SIZE): Remove define.
	(kernel_u_size): Remove prototype.
	(PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Define.
	* config/sparc/nm-nbsd.h: Update copyright.  Don't include
	"regcache.h".
	(CHILD_PREPARE_TO_STORE): Remove define.
	* config/sparc/nm-nbsdaout.h: Tweak some comments.
	* sparc-nat.c, sparc-tdep.c, sparc-tdep.h, sparc64nbsd-nat.c,
	sparcnbsd-nat.c: Rewrite files.
	* config/sparc/tm-linux.h, config/sparc/tm-nbsd.h: Rewrite files.
	* sparc-linux-nat.c, sparcbsd-nat.c, sparcbsd-nat.h,
	sparcnbsd-tdep.h: Remove files.
	* config/sparc/nm-sparclynx.h, config/sparc/nm-sun4os4.h,
	config/sparc/nm-sun4sol2.h, config/sparc/sp64.mt,
	config/sparc/sp64linux.mt, config/sparc/sp64sol2.mt,
	config/sparc/sparc-em.mt, config/sparc/sparclynx.mh,
	config/sparc/sparclynx.mt, config/sparc/sun4os4.mh,
	config/sparc/sun4os4.mt, config/sparc/sun4sol2.mh,
	config/sparc/sun4sol2.mt, config/sparc/tm-sp64.h,
	config/sparc/tm-sp64linux.h, config/sparc/tm-sparc.h,
	config/sparc/tm-sparclynx.h, config/sparc/tm-spc-em.h,
	config/sparc/tm-sun4os4.h, config/sparc/tm-sun4sol2.h,
	config/sparc/tm-vxsparc.h, config/sparc/vxsparc.mt,
	config/sparc/xm-linux.h, config/sparc/xm-sun4sol2.h: Remove files.
	* sparc-linux-tdep.c, sparc-nat.h, sparc-sol2-nat.c,
	sparc-sol2-tdep.c, sparc64-linux-nat.c, sparc64-linux-t dep.c,
	sparc64-nat.c, sparc64-sol2-tdep.c, sparc64nbsd-tdep.c: New files.
	* config/sparc/linux64.mh, config/sparc/linux64.mt,
	config/sparc/nm-sol2.h, config/sparc/sol2-64.mt,
	config/sparc/sol2.mh, config/sparc/sol2.mt, config/sparc/sparc.mt,
	config/sparc/sparc64.mt, config/sparc/tm-sol2.h: New files.

2004-01-02  Andrew Cagney  <cagney@redhat.com>

	From 2003-12-18 Kazuhiro Inaoka:
        * configure.host: Add m32r-linux target.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* top.c (print_gdb_version): Update year to 2004.

2004-01-02  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS: Add myself to the write-after-approval category.

2004-01-02  Daniel Jacobowitz  <drow@mvista.com>

	From Bernardo Innocenti <bernie@develer.com>:
	* configure.tgt: Add uClinux target.

2004-01-02  Andrew Cagney  <cagney@redhat.com>

	* utils.c (do_my_cleanups): Make static, add forward declaration.
	* defs.h (do_my_cleanups): Delete declaration.

2004-01-02  Eli Zaretskii  <eliz@elta.co.il>

	* config/djgpp/fnchange.lst: Add lines for gdb/ChangeLog-2003 and
	bfd/ChangeLog-0203.

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

	* configure.in: Check for <machine/reg.h>.  Check for `struct reg'
	in <machine/reg.h>.
	* configure, config.in: Regenerate.

For older changes see ChangeLog-2003, mi/ChangeLog-1999-2003, and
tui/ChangeLog-1998-2003.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
