2003-12-30  Eli Zaretskii  <eliz@elta.co.il>

	* configure.in: Check for st_blocks member in struct stat and
	define HAVE_STRUCT_STAT_ST_BLOCKS accordingly.

	* acconfig.h (HAVE_STRUCT_STAT_ST_BLOCKS): New undef.

	* configure, config.in: Regenerated.

	* remote-fileio.c (remote_fileio_to_fio_stat)
	(remote_fileio_func_fstat) [HAVE_STRUCT_STAT_ST_BLOCKS]: Support
	systems that don't have `st_blocks' member in `struct stat'.

2003-12-29  Eli Zaretskii  <eliz@elta.co.il>

	* go32-nat.c (go32_sldt, go32_sgdt, go32_sidt, go32_pte): Fix
	mismatches between format string and arguments (avoids compiler
	warnings).

	* configure.in: Set ac_cv_search_tgetent to "none required" for
	"*djgpp*" targets as well (DJGPP doesn't have termcap and doesn't
	need one).

	* config/djgpp/config.sed: Tweak to adapt to the changes in
	configury.

	* config/djgpp/djconfig.sh: Fix the test of unpacked
	distribution, since there's no gdb.cxx directory anymore.

2003-12-28  Mark Kettenis  <kettenis@gnu.org>

	* i386-sol2-tdep.c (i386_sol2_mcontext_addr): New function.
	(i386_sol2_init_abi): Initialize TDEP->sigcontext_addr,
	TDEP->sc_reg_offset and TDEP->sc_num_regs.

	* i386-tdep.h (i386_regnum): Add I386_CS_REGNUM and
	I386_SS_REGNUM.

2003-12-27  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2-frame.c (dwarf2_reg_rule): Add REG_RA and REG_CFA.
	(dwarf2_frame_cache): Initialize PC_REGNUM with REG_RA and
	SP_REGNUM with REG_CFA.  Don't overwrite the initialized register
	rule for registers left unspecified by the CFI.  Remove the
	special handling of PC_REGNUM.  Add code to eleminate any REG_RA
	rules.
	(dwarf2_frame_prev_register): Remove the special handling of
	SP_REGNUM.  Add support for the REG_CFA rule.

2003-12-26  Mark Kettenis  <kettenis@gnu.org>

	* i386obsd-tdep.c: Include "regset.h", "gdb_assert.h" and
	"gdb_string.h".
	(i386obsd_r_reg_offset): New variable.
	(i386obsd_aout_supply_regset)
	(i386obsd_aout_regset_from_core_section): New functions.
	(i386obsd_supply_reg, fetch_core_registers): Remove functions.
	(i286obsd_core_fns): Remove variable.
	(i386obsd_init_abi): Initialize TDEP->gregset_reg_offset,
	TDEP->gregset_num_regs and TDEP->sizeof_gregset.  Set
	regset_from_core_section.  Use ARRAY_SIZE to initialize
	TDEP->sc_num_regs.
	(_initialize_i386obsd_tdep): Don't call add_core_fns.

	* i386bsd-tdep.c (i386bsd_core_osabi_sniffer): New function.
	(_initialize_i386bsd_tdep): Register i386bsd_core_osabi_sniffer.

	* i386-linux-nat.c: Add comment.

2003-12-26  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c: Add some comments about below change.

2003-12-25  Christopher Faylor  <cgf@redhat.com>

	Fix for PR threads/1048
	* win32-nat.c (thread_info_struct): Add reload_context flag.
	(thread_rec): Don't reload thread context here.  Just set a flag.
	(do_child_fetch_inferior_registers): Reload thread context here if
	appropriate.  Avoid doing anything if current_thread is NULL thanks to
	strange Windows behavior.
	(child_fetch_inferior_registers): Avoid doing anything if
	current_thread is NULL.
	(do_child_store_inferior_registers): Ditto.
	(child_store_inferior_registers): Ditto.
	(child_kill_inferior): Ditto.
	(fake_create_process): Pretend to create a process for pathological
	windows attach situation.
	(get_child_debug_event): Call fake_create_process when the first event
	noticed is thread creation rather than process creation.
	(child_attach): Always set attach_flag when attaching.
	(child_create_inferior): Set attach_flag to zero since we're not
	attaching.

2003-12-25  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c (get_child_debug_event): Keep main thread id around even
	after thread exits since Windows insists on continuing to report events
	against it.

2003-12-22  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2-frame.c (dwarf2_frame_cache): Don't skip the return
	address column.

2003-12-21  Jim Blandy  <jimb@redhat.com>

	* breakpoint.c (bpstat_do_actions): To ensure that
	clear_proceed_status doesn't free the command tree we're
	evaluating out from under us, zero the bpstat's pointer to it, and
	take care of freeing it ourselves.
	* cli/cli-script.c (make_cleanup_free_command_lines): Make this
	function externally visible.
	* cli/cli-script.h (make_cleanup_free_command_lines): New
	declaration.

2003-12-20  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (x86_64_dwarf_regmap): Map the Return Address to
	RIP.

2003-12-18  Michael Chastain  <mec.gnu@mindspring.com>

	* hppa-tdep.c (hppa_gdbarch_init): Set long double floating
	point type to floatformat_ia64_quad_big.

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

	* frv-tdep.c (skip_prologue_using_sal): New function.  Taken verbatim
	from mips-tdep.c.
	(frv_analyze_prologue): Rework to account for intermixed prologue /
	body instructions.

2003-12-18  Michael Chastain  <mec.gnu@mindspring.com>

	* hppa-tdep.c (hppa_gdbarch_init): Set sizeof(long_double) to 128.
	Document type sizes for hppa*-*-hpux* compilers available to me.

2003-12-18  Michael Chastain  <mec.gnu@mindspring.com>

	* hppam3-nat.c: Delete obsolete file.
	* hppab-nat.c: Delete obsolete file.
	* Makefile.in: Remove references.

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

	* symtab.c (decode_line_spec): Change call to decode_line_1.

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

	* linespec.h (decode_line_1): Add new not_found_ptr parameter.
	* linespec.c (decode_line_1): Add new parameter.  Pass on
	new parameter to decode_variable and symtab_from_filename
	functions.
	(decode_variable): Add new not_found_ptr parameter.  Throw exception
	rather than failing if the not_found_ptr is non-null and the
	function is not found.
	(symtab_from_filename): Add new not_found_ptr parametr.   Throw 
	exception rather than failing if the not_found_ptr is non-null and 
	the source file is not found.
	* breakpoint.c: Change all callers of decode_line_1 to add default
	extra parameter for decode_line_1 calls.
	* tracepoint.c: Ditto.
	* cli/cli-cmds.c: Ditto.

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

	* irix5-nat.c: Include mips-tdep.h.

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

	* solib.h (SOLIB_CREATE_CATCH_LOAD_HOOK)
	(SOLIB_CREATE_CATCH_UNLOAD_HOOK, SOLIB_LOADED_LIBRARY_PATHNAME)
	(SOLIB_UNLOADED_LIBRARY_PATHNAME, SOLIB_HAVE_LOAD_EVENT)
	(SOLIB_HAVE_UNLOAD_EVENT): Remove defines.

	* blockframe.c (inside_main_func): Don't treat a zero PC specially.
	Needed to fix PR backtrace/1476.

2003-12-16  David Carlton  <carlton@kealia.com>

	* cp-support.c (class_name_from_physname): Add DMGL_PARAMS.
	(method_name_from_physname): Ditto.

2003-12-15  Mark Kettenis  <kettenis@gnu.org>

	* i386-sol2-tdep.c (i386_sol2_gregset_reg_offset): New variable.
	(i386_sol2_init_abi): Initialize TDEP->gregset_reg_offset,
	TDEP->gregset_num_regs, TDEP->sizeof_gregset and
	TDEP->sizeof_fpregset.
	* config/i386/i386sol2.mh (XM_FILE): Set to xm-i386.h.
	(XM_CLIBS): Remove.
	(NATDEPFILES): Remove core-regset.o and corelow.o.
	* config/i386/i386sol2.mt (TDEPFILES): Add corelow.o.

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

	* proc-api.c (procfs_note): Add format string to fprintf call.

	* i386-tdep.c (i386_analyze_frame_setup): Add missing encodings
	for `subl' and `xorl' instructions.

2003-12-13  Jim Blandy  <jimb@redhat.com>

	* dwarf2read.c (dwarf2_add_member_fn, read_structure_scope):
	Replace uses of DEPRECATED_STREQ and DEPRECATED_STREQN with calls
	to strcmp and strncmp.

	* osabi.c (gdbarch_init_osabi): Reformat error message with better
	line breaks.

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

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

2003-12-12  Kevin Buettner  <kevinb@redhat.com>

	From David Mosberger  <davidm@hpl.hp.com>:
	* libunwind-frame.c (unw_find_dyn_list_p): Replace most arguments
	with a single unw_dyn_info_t pointer.
	(libunwind_find_dyn_list): Likewise.
	* libunwind-frame.h: Likewise.
	* ia64-tdep.c (ia64_find_unwind_table): Switch to using
	UNW_INFO_FORMAT_REMOTE_TABLE so we can avoid having to read in the
	entire unwind-table at once.  Support for this table format has
	been added to libunwind v0.95.
	(ia64_find_proc_info_x): Adjust for remote-unwind-table changes.
	(ia64_get_dyn_info_list): Adjust for interface change for
	libunwind_find_dyn_list().

2003-12-12  Jeff Johnston  <jjohnstn@redhat.com>

	* breakpoint.c (breakpoint_enabled): New function to test whether
	breakpoint is active and enabled.
	(insert_bp_location, insert_breakpoints): Call new function to test
	for enabled breakpoint.
	(remove_breakpoint, breakpoint_here_p, breakpoint_thread_match)
	(bpstat_should_step, bpstat_have_active_hw_watchpoints)
	(disable_breakpoints_in_shlibs, hw_watchpoint_used_count)
	(disable_watchpoints_before_interactive_call_start)
	(breakpoint_re_set_one): Ditto.
	(bpstat_stop_status): Use new function and simplify test.

2003-12-11  Mark Kettenis  <kettenis@gnu.org>

	* observer.c (observer_test_first_observer)
	(observer_test_second_observer, observer_test_third_observer):
	Don't define as `static'.
	(observer_test_first_notification_function)
	(observer_test_second_notification_function)
	(observer_test_third_notification_function): Likewise.

2003-12-10  Mark Kettenis  <kettenis@gnu.org>

	* solib.h (SOLIB_UNLOADED_LIBRARY_PATHNAME): Define as "" instead
	of (0).

2003-12-11  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>

	* MAINTAINERS (write after approval): Add myself.

2003-12-11  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>

        * config/h8300/tm-h8300.h (h8300hmode): Remove.
        (h8300hmode): Likewise.
        (h8300smode): Likewise.
        (h8300sxmode): Likewise.
        (h8300_normal_mode): Likewise.
        (GDB_TARGET_IS_H8300): Likewise.
        (NUM_REALREGS): Use TARGET_ARCHITECTURE->mach instead of global.
        * h8300-tdep.c (is_h8300hmode): New function.
        (is_h8300smode): New function.
        (is_h8300sxmode): New function.
        (is_h8300_normal_mode): New function.
        (BINWORD): Use new functions.
        (h8300_examine_prologue): Likewise.
        (h8300_print_register): Likewise.
        (h8300_print_registers_info): Likewise.
        (h8300_register_type): Likewise.
        (h8300_gdbarch_init): Remove use of globals like h8300hmode.
        * remote-e7000.c (e7000_open): Remove use of GDB_TARGET_IS_H8300.
        (e7000_fetch_registers): Use TARGET_ARCHITECTURE->mach instead.
        (e7000_wait): Use TARGET_ARCHITECTURE->mach instead of global.

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

	* frame.c (select_frame): Get the current frame PC using
	get_frame_address_in_block() instead of get_frame_pc().
	* stack.c (get_frame_language): Likewise.

2003-12-08  Kevin Buettner  <kevinb@redhat.com>

	* remote.c (remote_open_1, remote_cisco_open): Avoid closing
	remote_desc more than once.

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

	* defs.h (DEPRECATED_STREQN, DEPRECATED_STREQ): Simplify by
	directly calling strcmp equivalents.  Add disclaimer.

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

	* remote.c (remote_fetch_registers): For short packets, explicitly
	supply a zero value.  Use regcache_raw_supply.  Fix suggested by
	Jonathan Larmour.

2003-12-05  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c (ia64_gdbarch_init): Set up the gdbarch long double
	format to be the i387 extended float format which is used for
	long doubles stored in memory. 

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

	From Ulrich Weigand  <weigand@informatik.uni-erlangen.de>:
	* dwarf2-frame.c (dwarf2_frame_cache): Use the untranslated RA
	column instead of translating it.

2003-12-04  Michael Chastain  <mec.gnu@mindspring.com>

	Partial fix for PR c++/1465.
	Fix for PR c++/1377.
	* cp-support.h (cp_lookup_rtti_type): New function.
	* cp-support.c (cp_lookup_rtti_type): New function.
	* gnu-v2-abi.c: Update copyright years.
	(gnuv2_rtti_type): Call cp_lookup_rtti_type.
	* gnu-v3-abi.c: Update copyright years.
	(gnuv3_rtti_type): Call cp_lookup_rtti_type.

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

	* stabsread.c (read_type): Save a reference to types that are defined
	as cross references to other types.

2003-12-02  Roland McGrath  <roland@redhat.com>

	* thread-db.c (enable_thread_event): Change return type to
	td_err_e.  Return TD_OK or error code.
	(enable_thread_event_reporting): Update callers.

2003-12-03  Ian Lance Taylor  <ian@wasabisystems.com>

	* NEWS: Mention new C++ demangler code.

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

	* ppc-linux-nat.c (store_register, fetch_register): Convert
	between ptrace and regcache's wordsize.
	(ppc_register_u_addr): Use the ptrace wordsize.

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

	* frv-tdep.c (frv_gdbarch_init): Add case for fr550.

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

	* dwarf2read.c (dwarf_info_offset, dwarf_abbrev_offset)
	(dwarf_line_offset, dwarf_pubnames_offset, dwarf_aranges_offset)
	(dwarf_loc_offset, dwarf_macinfo_offset, dwarf_str_offset)
	(dwarf_ranges_offset, dwarf_frame_offset, dwarf_eh_frame_offset):
	Delete.
	(dwarf2_read_section): Remove offset and size arguments.  Use
	bfd_get_section_size_before_reloc and sectp->filepos.
	(dwarf2_has_info): Clear section variables instead of offsets.
	(dwarf2_locate_sections): Don't initialize the deleted variables.
	(dwarf2_build_psymtabs): Update calls to dwarf2_read_section.
	(dwarf2_build_psymtabs_easy): Likewise.
	* dwarf2-frame.c (dwarf_frame_offset, dwarf_frame_size)
	(dwarf_eh_frame_offset, dwarf_eh_frame_size): Remove extern
	declarations.
	(dwarf2_read_section): Update prototype.
	(dwarf2_build_frame_info): Update calls to dwarf2_read_section.
	Use bfd_get_section_size_before_reloc instead of global size
	variables.

2003-12-01  Michael Chastain  <mec.gnu@mindspring.com>

	* dwarfread.c: Update documentation on the state of dwarf-1.

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

	Obsolete old MIPS SVr3 and SVr4 systems.
	* NEWS: Mention obsoleted systems.
	* configure.tgt: Mark mips*-*-sysv4* as obsolete.
	* configure.host: Mark mips-dec-*, mips-little-*, mips-sony-*,
	mips-*-sysv4*, mips-*-sysv*, mips-*-riscos* and mips-*-mach3* as
	obsolete.
	* config/mips/decstation.mh: Mark as obsolete.
	* config/mips/littlemips.mh: Mark as obsolete.
	* config/mips/nm-mips.h: Mark as obsolete.
	* config/mips/xm-mips.h: Mark as obsolete.
	* config/mips/news-mips.mh: Mark as obsolete.
	* config/mips/nm-news-mips.h: Mark as obsolete.
	* config/mips/riscos.mh: Mark as obsolete.
	* config/mips/nm-riscos.h: Mark as obsolete.
	* config/mips/xm-riscos.h: Mark as obsolete.
	* config/mips/mipsv4.mt: Mark as obsolete.
	* config/mips/tm-mipsv4.h: Mark as obsolete.
	* config/mips/xm-mipsv4.h: Mark as obsolete.

	Obsolete old m68k systems.
	* configure.host: Mark m68*-sun-*, m68*-sun-sunos4*,
	m68*-sun-sunos3*, m68*-motorola-*, m68*-*-sysv4*, m68*-*-lynxos*,
	m68*-bull*-sysv*, m68*-att-*, m680[01]0-sun-sunos4*, and
	m680[01]0-sun-sunos3* as obsolete.
	* configure.tgt: Mark m68*-*-lynxos*, m68*-*-sunos3*,
	m68*-*-sunos4*, m68*-*-sysv4*, m68000-*-sunos3*, m68000-*-sunos4*,
	m68*-bull-sysv*, m68*-att-*, and m68*-motorola-*, as obsolete.
	* config/m68k/sun3os4.mh: Mark file obsolete.
	* config/m68k/xm-sun3os4.h: Mark file obsolete.
	* config/m68k/sun3os3.mh: Mark file obsolete.
	* config/m68k/nm-sun3.h: Mark file obsolete.
	* config/m68k/xm-sun3.h: Mark file obsolete.
	* config/m68k/sun2os4.mh: Mark file obsolete.
	* config/m68k/sun2os3.mh: Mark file obsolete.
	* config/m68k/nm-sun2.h: Mark file obsolete.
	* config/m68k/xm-sun2.h: Mark file obsolete.
	* config/m68k/m68kv4.mh: Mark file obsolete.
	* config/m68k/nm-sysv4.h: Mark file obsolete.
	* config/m68k/xm-m68kv4.h: Mark file obsolete.
	* config/m68k/m68klynx.mh: Mark file obsolete.
	* config/m68k/nm-m68klynx.h: Mark file obsolete.
	* config/m68k/dpx2.mh: Mark file obsolete.
	* config/m68k/xm-dpx2.h: Mark file obsolete.
	* config/m68k/nm-dpx2.h: Mark file obsolete.
	* config/m68k/delta68.mh: Mark file obsolete.
	* config/m68k/xm-delta68.h: Mark file obsolete.
	* config/m68k/nm-delta68.h: Mark file obsolete.
	* config/m68k/3b1.mh: Mark file obsolete.
	* config/m68k/xm-3b1.h: Mark file obsolete.
	* config/m68k/sun3os4.mt: Mark file obsolete.
	* config/m68k/tm-sun3os4.h: Mark file obsolete.
	* config/m68k/sun3os3.mt: Mark file obsolete.
	* config/m68k/tm-sun3.h: Mark file obsolete.
	* config/m68k/sun2os4.mt: Mark file obsolete.
	* config/m68k/tm-sun2os4.h: Mark file obsolete.
	* config/m68k/sun2os3.mt: Mark file obsolete.
	* config/m68k/tm-sun2.h: Mark file obsolete.
	* config/m68k/m68kv4.mt: Mark file obsolete.
	* config/m68k/tm-m68kv4.h: Mark file obsolete.
	* config/m68k/m68klynx.mt: Mark file obsolete.
	* config/m68k/tm-m68klynx.h: Mark file obsolete.
	* config/m68k/dpx2.mt: Mark file obsolete.
	* config/m68k/tm-dpx2.h: Mark file obsolete.
	* config/m68k/delta68.mt: Mark file obsolete.
	* config/m68k/tm-delta68.h: Mark file obsolete.
	* config/m68k/3b1.mt: Mark file obsolete.
	* config/m68k/tm-3b1.h: Mark file obsolete.

2003-11-29  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (MAX_CLASSES): Remove macro.
	(x86_64_reg_class): Remove enum.
	(merge_classes, classify_argument, examine_argument): Remove
	functions.
	(INT_REGS, SSE_REGS): Remove macros.
	(x86_64_push_arguments): Remove function.
	(amd64_push_arguments): New function.
	(x86_64_push_dummy_call): Call amd64_push_arguments instead of
	x86_64_push_arguments.

2003-11-28  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (x86_64_frame_cache): Don't bail out if %rbp is
	zero.  Reorganize code a bit.

2003-11-27  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2-frame.c: Fix another comment.

	* x86-64-tdep.c (RET_INT_REGS, RET_SSE_REGS): Remove defines.
	(x86_64_use_struct_convention, x86_64_extract_return_value,
	x86_64_store_return_value): Remove.
	(amd64_reg_class): New enum.
	(amd64_merge_classes, amd64_classify_aggregate, amd64_classify,
	amd64_return_value): New functions.
	(x86_64_init_abi): Don't set extract_return_value,
	store_return_value and use_struct_convention.  Set return_value to
	amd64_return_value.
	* i387-tdep.h (i387_return_value): New prototype.
	* i387-tdep.c (i387_return_value): New function.

	* dwarf2-frame.c: Fix some comments and whitespace problems.

	* i386nbsd-tdep.c: Don't include "gdbtypes.h".  Include
	"gdb_assert.h" and "gdb_string.h".
	(i386nbsd_r_reg_offset): Rename from regmap.
	(SIZEOF_STRUCT_REG): Remove.
	(i386nbsd_supply_reg, fetch_core_registers,
	fetch_elfcore_registers, i386nbsd_core_fns, i386nbsd_elfcore_fns):
	Remove.
	(i386nbsd_aout_supply_regset,
	i386nbsd_aout_regset_from_core_section): New functions.
	(i386nbsd_sc_reg_offset): Don't explicitly specify size of array.
	(i386nbsd_init_abi): Initialize TDEP->gregset_reg_offset,
	TDEP->gregset_num_regs amd sizeof_gregset.  Use ARRAY_SIZE to
	initialize TDEP->sc_num_regs.
	(i386nbsdaout_init_abi): New function.
	(i386nbsdelf_init_abi): Remove initialization of
	TDEP->num_xmm_regs.  Don't set num_regs here.
	(_initialize_i386nbsd_tdep): Don't call add_core_fns.  Use
	i386nbsd_aout_init to register NetBSD a.out OS/ABI.

	* osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Use
	.note.netbsdcore.procinfo section to recognize NetBSD core files.

2003-11-26  Michael Chastain  <mec.gnu@mindspring.com>

	* cp-abi.c: Update copyright years.

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

	* thread-db.c (enable_thread_event): New function.  Ensure that BP
	is a code address.
	(enable_thread_event_reporting): Use enable_thread_event.

2003-11-25  Michael Snyder  <msnyder@redhat.com>

	* mips-tdep.c (mips_o64_extract_return_value): Correct for
	NUM_REGS (see changes 2003-06-21).
	(mips_eabi_extract_return_value): Ditto.

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

	* infrun.c: Don't include "exec.h".
	(handle_inferior_event): Pass current_target, instead of exec_ops,
	to SOLIB_ADD.  Add comments.
	* Makefile.in (infrun.o): Update dependencies.

2003-11-24  Daniel Jacobowitz  <drow@mvista.com>

	* NEWS: Mention improved location expression support.

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

	* Makefile.in (infrun.o): Update dependencies.
	* infrun.c: Include "exec.h".
	(handle_inferior_event): Pass exec_ops to SOLIB_ADD.

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

	* frame.c (frame_unwind_signed_register): Delete function.
	* frame.h (frame_unwind_register_signed): Delete declaration.
	* mips-tdep.c (mips_frame_saved_pc): Use frame_unwind_register_signed.

	* arch-utils.h (generic_cannot_extract_struct_value_address):
	Delete declaration.

	* defs.h (DEPRECATED_STREQN): Rename STREQN.
	(DEPRECATED_STREQ): Rename STREQ.
	* ada-exp.y, ada-lang.c, ada-lex.l, coffread.c: Update.
	* config/mips/tm-irix5.h, config/mips/tm-irix6.h: Update.
	* config/mips/tm-mipsv4.h, config/sparc/tm-sun4sol2.h: Update.
	* dbxread.c, dwarf2read.c, dwarfread.c, environ.c: Update.
	* eval.c, exec.c, f-lang.c, hppa-tdep.c, hpread.c: Update.
	* jv-exp.y, language.c, m2-exp.y, mcore-rom.c: Update.
	* mdebugread.c, mipsread.c, objc-exp.y, objfiles.c: Update.
	* p-exp.y, p-typeprint.c, p-valprint.c, rs6000-nat.c: Update.
	* source.c, sparc-tdep.c, stack.c, target.c: Update.

	* symfile.c (symbol_file_command): Replace STREQ with strcmp.
	* elfread.c (elf_symtab_read): Delete STREQ from comment.

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

	* frame.c (deprecated_frame_xmalloc): Delete function.
	(deprecated_set_frame_extra_info_hack): Delete function.
	(deprecated_set_frame_saved_regs_hack): Delete function.
	* frame.h (deprecated_frame_xmalloc): Delete declaration.
	(deprecated_set_frame_extra_info_hack): Delete declaration.
	(deprecated_set_frame_saved_regs_hack): Delete declaration.
	* mcore-tdep.c (analyze_dummy_frame): Instead of
	deprecated_frame_xmalloc, deprecated_set_frame_saved_regs_hack,
	and deprecated_set_frame_extra_info_hack use
	deprecated_frame_xmalloc_with_cleanup.
	* mn10300-tdep.c (analyze_dummy_frame): Ditto.
	* mips-tdep.c (mips_init_extra_frame_info): Delete call to
	deprecated_set_frame_saved_regs_hack.

	* mips-tdep.c (mips_frame_chain): Delete call to
	deprecated_inside_entry_file.

	* frame.h (deprecated_set_frame_next_hack): Delete declaration.
	(deprecated_set_frame_prev_hack): Delete declaration.
	* frame.c (deprecated_set_frame_next_hack): Delete function.
	(deprecated_set_frame_prev_hack): Delete function.
	* mcore-tdep.c (analyze_dummy_frame): Delete calls to
	"deprecated_set_frame_next_hack" and
	"deprecated_set_frame_prev_hack".
	* mn10300-tdep.c (analyze_dummy_frame): Ditto.

	* mips-tdep.c (mips_register_convertible): Delete function.
	(mips_register_convert_to_virtual): Delete function.
	(mips_register_convert_to_raw): Delete function.
	(mips_gdbarch_init): Do not set "deprecated_register_convertible",
	"deprecated_register_convert_to_virtual", or
	"deprecated_register_convert_to_raw".
	(mips_pseudo_register_write, mips_pseudo_register_read): Handle
	32/64 cooked to raw register conversions.

	* frame.c (deprecated_get_frame_context): Delete function.
	(deprecated_set_frame_context): Delete function.
	(struct frame_info): Delete member "context".
	* frame.h (deprecated_get_frame_context): Delete declaration.
	(deprecated_set_frame_context): Delete declaration.

	* procfs.c (procfs_wait): Delete FAULTED_USE_SIGINFO comment.
	* config/sparc/tm-sun4sol2.h (FAULTED_USE_SIGINFO): Delete macro.
	* config/i386/tm-i386sol2.h (FAULTED_USE_SIGINFO): Delete macro.
	* config/alpha/nm-osf2.h (FAULTED_USE_SIGINFO): Delete macro.

	* mips-tdep.c (SIGFRAME_REG_SIZE): Delete macro.
	(mips_find_saved_regs): Replace SIGFRAME_REG_SIZE with
	mips_regsize.
	(mips_dump_tdep): Do not print SIGFRAME_REG_SIZE.
	* config/mips/tm-irix6.h (SIGFRAME_REG_SIZE): Delete macro.
	* config/mips/tm-irix5.h: Update copyright.
	(SIGFRAME_REG_SIZE): Delete macro.

	* hppa-tdep.c (hppa_value_returned_from_stack): Delete function.
	* config/pa/tm-hppa.h (hppa_value_returned_from_stack): Delete
	declaration.
	(DEPRECATED_VALUE_RETURNED_FROM_STACK): Delete macro.
	* infcall.c (call_function_by_hand): Delete #ifdef
	DEPRECATED_VALUE_RETURNED_FROM_STACK code.
	* infcmd.c (print_return_value): Ditto.

	* mips-tdep.c (skip_prologue_using_sal): New function.
	(mips32_skip_prologue, mips16_skip_prologue): Use
	skip_prologue_using_sal to get an upper bound on the search.

	* config/powerpc/tm-linux.h (PROLOGUE_FIRSTLINE_OVERLAP): Delete
	#if 0'ed macro.
	* infrun.c (step_into_function): Delete #ifdef
	PROLOGUE_FIRSTLINE_OVERLAP code.
	* symtab.c (find_function_start_sal): Ditto.

	* remote-rdp.c: Update copyright.
	(rdp_init): #if 0 references to "target_byte_order".

	* mips-tdep.c (mips_o32_store_return_value): Delete function.
	(mips_o32_return_value): Replace mips_o32_xfer_return_value.
	(mips_o32_extract_return_value): Delete function.
	(mips_n32n64_return_value): Replace mips_n32n64_xfer_return_value.
	(mips_n32n64_extract_return_value): Delete function.
	(mips_n32n64_store_return_value): Delete function.
	(mips_gdbarch_init): For o32 and n32n64, set "return_value"
	instead of "store_return_value", "extract_return_value", and
	"use_struct_convention".
	(mips_n32n64_use_struct_convention): Delete function.

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

	* frv-tdep.c (frv_frame_this_id): Eliminate call to
	inside_entry_func().

2003-11-20  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_extract_return_value,
	i386_store_return_value): Add gdbarch argument.  Use it instead of
	determining it from REGCACHE.  Remove recursive call for
	structures with a single member.
	(i386_use_struct_convention): Remove.
	(i386_reg_struct_return_p): New function.
	(i386_return_value): New function.
	(i386_gdbarch_init): Set return_value, don't set
	extract_return_value, store_return_value and
	use_struct_convention.
	* x86-64-tdep.c (x86_64_init_abi): Set return_value to NULL.

2003-11-20  Jim Blandy  <jimb@redhat.com>

	* osabi.c (_initialize_gdb_osabi): Don't return before registering
	the 'set osabi' and 'show osabi' commands.

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

	* frame.c (get_prev_frame): Use result from
	get_frame_address_in_block instead of get_frame_pc as argument to
	inside_main_func.  Fixes PR backtrace/1435.

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

	* stack.c (return_command): Handle "void", "legacy" and "unknown
	location" return values separatly.
	* values.c (using_struct_return): Return 0 for a "void" return
	type.  Mention "register_value_being_returned".
	(register_value_being_returned): Mention "using_struct_return".

2003-11-19  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (offreg, basereg, isderef, frame_base_reg)
	(frame_base_offset): Delete.
	(read_func_scope): Delete call to decode_locdesc.
	(decode_locdesc): Update comments.  Don't set the removed variables.
	Complain for DW_OP_reg* not at the end.  Remove DW_OP_breg* and
	DW_OP_fbreg support.

2003-11-18  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (optimized_out, islocal): Remove.
	(decode_locdesc): Update comments.  Don't set optimized_out
	or islocal.

2003-11-17  Jeff Johnston  <jjohnstn@redhat.com>
            David Mosberger  <davidm@hpl.hp.com>

	* ia64-tdep.c: Include elf.h.
	[HAVE_LIBUNWIND_IA64_H]: Include libunwind-frame.h and
	libunwind-ia64.h.
	(ia64_rse_slot_num, ia64_rse_skip_regs): New for libunwind support.
	(ia64_gdb2uw_regnum, ia64_uw2gdb_regnum): Ditto.
	(ia64_is_fpreg, ia64_access_reg): Ditto.
	(ia64_access_fpreg, ia64_access_mem): Ditto.
	(get_kernel_table): Ditto.
	(ia64_find_unwind_table): Ditto.
	(ia64_find_proc_info_x, ia64_put_unwind_info): Ditto.
	(ia64_get_dyn_info_list, ia64_libunwind_frame_this_id): Ditto.
	(ia64_libunwind_frame_prev_register): Ditto.
	(ia64_libunwind_frame_sniffer): Ditto.
	(ia64_gdbarch_init)[HAVE_LIBUNWIND_IA64_H]: Add libunwind frame
	sniffer.  Register libunwind functions needed by generic
	libunwind frame code using libunwind_frame_set_descr().

2003-11-16  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (re_enable_breakpoints_in_shlibs): Only re-enable a
	bp_shlib_disabled breakpoint if there is a shared library mapped
	at its expected address.

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

	* configure.tgt: Delete mips*tx39*-elf*.
	* config/mips/tm-tx39.h: Delete file.
	* config/mips/tx39.mt: Delete file.
	* config/mips/tx39.mt: Delete file.

	* mips-tdep.h (deprecated_mips_set_processor_regs_hack): Declare.
	* remote-mips.c (common_open): Instead of
	"mips_read_register_type" and "mips_set_processor_type_command"
	call "deprecated_mips_set_processor_regs_hack".
	* config/mips/tm-mips.h (mips_read_processor_type): Delete
	declaration.
	(mips_set_processor_type_command): Delete declaration.
	* mips-tdep.c (mips_gdbarch_init): Update comment.
	(mips_dump_tdep): Do not print MIPS_REGISTER_NAMES.
	(mips_set_processor_type): Delete function.
	(NUM_MIPS_PROCESSOR_REGS): Define.
	(mips_show_processor_type_command): Delete function.
	(mips_set_processor_type_command): Delete function.
	(tmp_mips_processor_type): Delete.
	(mips_processor_type): Delete.
	(mips_processor_type_table): Delete.
	(mips_r3051_reg_names): Delete.
	(mips_r3081_reg_names): Delete.
	(mips_lsi33k_reg_names): Delete.
	(mips_processor_reg_names): Delete.
	(mips_read_processor_type): Delete function.
	(deprecated_mips_set_processor_regs_hack): New function.
	(struct gdbarch_tdep): Add member "mips_processor_reg_names".
	(mips_register_name): Get the processor names from the tdep.
	(mips_tx39_reg_names): New array.
	(mips_generic_reg_names): Wire to a standard set of names.
	(mips_gdbarch_init): Set "mips_processor_reg_names".
	* config/mips/tm-irix5.h (MIPS_REGISTER_NAMES): Delete macro.
	* config/mips/tm-mips.h (MIPS_REGISTER_NAMES): Delete macro.
	* config/mips/tm-tx39.h (MIPS_REGISTER_NAMES): Delete macro.

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

	* mips-tdep.c (struct gdbarch_tdep): Add field "regnum".
	(mips_fpa0_regnum, mips_regnum): New function.
	(mips_gdbarch_init): Fill in the "regnum" fields.
	* mips-tdep.h (struct mips_regnum): Define.
	(mips_regnum): Declare.
	* config/mips/tm-mips.h (BADVADDR_REGNUM): Delete macro.
	(LO_REGNUM, HI_REGNUM, BADVADDR_REGNUM): Ditto.
	(CAUSE_REGNUM, PC_REGNUM, FP0_REGNUM): Ditto.
	(FCRCS_REGNUM, FCRIR_REGNUM, FPA0_REGNUM): Ditto.
	* config/mips/tm-irix6.h (FP0_REGNUM): Delete macro.
	(PC_REGNUM, CAUSE_REGNUM, BADVADDR_REGNUM): Ditto.
	(HI_REGNUM, LO_REGNUM, FCRCS_REGNUM, FCRIR_REGNUM): Ditto.
	* config/mips/tm-irix5.h (FP0_REGNUM): Delete macro.
	(PC_REGNUM, CAUSE_REGNUM, BADVADDR_REGNUM): Ditto.
	(HI_REGNUM, LO_REGNUM, FCRCS_REGNUM, FCRIR_REGNUM): Ditto.
	* remote-mips.c: Include "mips-tdep.h".  Update.
	* mipsnbsd-tdep.c: Update.
	* mipsv4-nat.c: Update.
	* mips-tdep.c: Update.
	* mips-nat.c: Update.
	* mips-linux-tdep.c: Update.
	* mips-linux-nat.c: Update.
	* irix5-nat.c: Update.
	* dve3900-rom.c: Include "mips-tdep.h".  Update.
	(ignore_packet): Supress GCC warning.
	* config/mips/nm-riscos.h: Update.

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

	* mips-tdep.c: Replace DEPRECATED_REGISTER_RAW_SIZE with
	register_size.
	(mips_register_raw_size): Delete function.
	(mips_register_type): Handle "mips64_transfers_32bit_regs_p".
	(mips_gdbarch_init): Do not set "deprecated_register_raw_size".
	Check and set "mips64_transfers_32bit_regs_p".
	(struct gdbarch_tdep): Add "mips64_transfers_32bit_regs_p".
	(mips_register_convertible): Check the architecture's
	"mips64_transfers_32bit_regs_p".
	(set_mips64_transfers_32bit_regs): New function.
	(_initialize_mips_tdep): Use "add_setshow_cmd" when adding the
	"set remote-mips64-transfers-32bit-regs" command.  Specify
	set_mips64_transfers_32bit_regs as the set function.
	* Makefile.in (dve3900-rom.o, remote-mips.o): Update dependencies.

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

	* i386-tdep.h (i386_supply_gregset): Provide prototype.
	* i386-tdep.c (i386_supply_gregset): Make public.

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

	* mips-tdep.c (mips_register_byte): Delete function.
	(mips_gdbarch_init): Do not set "deprecated_register_byte".
	* config/mips/tm-mips.h (MIPS_REGISTER_BYTE): Delete macro.
	* config/mips/tm-irix6.h (MIPS_REGISTER_BYTE): Delete macro.
	* config/mips/tm-irix5.h (MIPS_REGISTER_BYTE): Delete macro.

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

	* i386-tdep.c (i386_extract_return_value): Don't use bfd_byte.

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

	* config/mips/linux64.mt: Delete file.
	* config/mips/tm-linux64.h: Delete file.
	* config/mips/tm-mips64.h: Delete file.
	* config/mips/embed64.mt: Delete file.
	* config/djgpp/fnchange.lst: Update.
	* configure.tgt: Delete explicit patterns for mipsisa64*-*-linux*,
	mips64*-*-linux*, mips64*-*-*, and mipsisa64*-*-*.
	* config/mips/tm-irix6.h: Update copyright.  Include
	"mips/tm-mips.h" instead of "mips/tm-mips64.h".
	* mips-tdep.c (mips_dump_tdep): Do not print "OP_LDFPR" or
	"OP_LDGPR".

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

	* mips-tdep.c (mips_register_type): Simplify.  Eliminate reference
	to MIPS_REGISTER_TYPE.  Make integer registers signed.  Make IRIX
	n32 registers 64 bit.
	(mips_register_raw_size, mips_register_byte): For pseudo
	registers, use the register's pseudo size and not the
	corresponding raw register's size.
	* config/mips/tm-mips64.h (MIPS_REGISTER_TYPE): Delete macro.
	* config/mips/tm-mips.h (MIPS_REGISTER_TYPE): Delete macro.
	* config/mips/tm-irix6.h: Don't #undef MIPS_REGISTER_TYPE.
	* config/mips/tm-irix5.h (MIPS_REGISTER_TYPE): Delete macro.

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

	* mips-tdep.c (struct gdbarch_tdep): Delete member
	gdb_target_is_mips64.
	(GDB_TARGET_IS_MIPS64): Delete macro.
	(mips_gdbarch_init): Do not set tdep's gdb_target_is_mips64.
	(mips_dump_tdep): Do not print GDB_TARGET_IS_MIPS64.
	(mips_addr_bits_remove): Simplify.

	* mips-tdep.c: Replace DEPRECATED_REGISTER_VIRTUAL_SIZE with
	register_size.

	Replace MIPS_REGSIZE with mips_regsize.
	* mips-tdep.c (mips_regsize): New function.
	* mips-tdep.h (mips_regsize): Declare.
	* mipsnbsd-tdep.h (SIZEOF_STRUCT_FPREG): Update.
	(SIZEOF_STRUCT_REG): Update.
	* mipsnbsd-tdep.c (mipsnbsd_supply_reg): Update.
	(mipsnbsd_fill_reg): Update.
	(mipsnbsd_supply_fpreg): Update.
	(mipsnbsd_fill_fpreg): Update.
	(NBSD_MIPS_JB_ELEMENT_SIZE): Update.
	* mips-tdep.c (mips_register_raw_size): Update.
	(mips_register_type): Update.
	(SIGFRAME_BASE): Update.
	(SIGFRAME_PC_OFF): Update.
	(SIGFRAME_REGSAVE_OFF): Update.
	(SIGFRAME_FPREGSAVE_OFF): Update.
	(SIGFRAME_REG_SIZE): Update.
	(mips32_heuristic_proc_desc): Update.
	(print_gp_register_row): Update.
	(mips_dump_tdep): Do not print MIPS_REGSIZE.
	* irix5-nat.c (supply_gregset): Update.
	(fetch_core_registers): Update.
	* config/mips/tm-mips64.h (MIPS_REGSIZE): Delete macro.
	* config/mips/tm-irix6.h (MIPS_REGISTER_BYTE): Update.
	* config/mips/tm-mips.h (MIPS_REGSIZE): Delete macro.
	(MIPS_REGISTER_BYTE): Update.
	* config/mips/tm-irix5.h (MIPS_REGISTER_BYTE): Update.

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

	* config/sparc/tm-sparc.h (DEPRECATE_USE_REGISTER_NOT_ARG): Rename
	USE_REGISTER_NOT_ARG.
	* stabsread.c (define_symbol): Update.

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

	* bcache.h (deprecated_bcache): Declare.
	(bcache): Make returned buffer constant.
	* bcache.c (deprecated_bcache): New function.
	(bcache_data): New function.
	(bcache): Call bcache data.
	* symfile.c (add_psymbol_to_list): Use deprecated_bcache.
	(add_psymbol_with_dem_name_to_list): Ditto.

2003-11-15  Mark Kettenis  <kettenis@gnu.org>

	* glibc-tdep.h (struct gdbarch): Declare opaque.
	(glibc_skip_solib_resolver): Adjust prototype.
	* glibc-tdep.c (glibc_skip_solib_resolver): Adjust.
	* arm-linux-tdep.c (arm_linux_skip_solib_resolver): Remove.
	(arm_linux_init_abi): Set skip_solib_resolver.
	* i386-linux-tdep.c (i386_linux_skip_solib_resolver): Remove.
	(i386_linux_init_abi): Set skip_solib_resolver.
	* config/arm/tm-linux.h (SKIP_SOLIB_RESOLVER): Remove.
	(arm_linux_skip_solib_resolver): Remove prototype.
	* config/i386/tm-linux.h (SKIP_SOLIB_RESOLVER): Remove.
	(i386_linux_skip_solib_resolver): Remove prototype.

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

	* gdbarch.sh (skip_solib_resolver): Change into a multi-arch
	function.
	* gdbarch.c, gdbarch.h: Regenerate.
	* infrun.c (handle_inferior_event): Call
	gdbarch_skip_solib_resolver instead of SKIP_SOLIB_RESOLVER.
	* arch-utils.c (generic_in_solib_call_trampoline): Adjust function
	definition.
	* arch-utils.h (generic_in_solib_call_trampoline): Adjust function
	prototype.

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

	* libunwind-frame.c: New file.
	* libunwind-frame.h: New file.
	* acconfig.h (HAVE_LIBUNWIND): #undef reference added.
	* configure.in: Add --with-libunwind option support.  Define
	HAVE_LIBUNWIND if libunwind support selected / defaulted.
	Also check for libunwind.h and libunwind-ia64.h headers.
	* configure: Regenerated.
	* Makefile.in: Add support for libunwind-frame.o.
	* config.in: Regenerated.

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

	* config/ia64/nm-linux.h (NATIVE_XFER_UNWIND_TABLE): New macro to
	set up the ia64 linux native target method for getting the kernel
	unwind table.
	* ia64-linux-nat.c (ia64_linux_xfer_unwind_table): New function.
	* inftarg.c (child_xfer_partial): Enable section of code to
	handle TARGET_OBJECT_UNWIND_TABLE.
 	* target.h (target_object): Add new TARGET_OBJECT_UNWIND_TABLE macro.

2003-11-14  Ian Lance Taylor  <ian@wasabisystems.com>

	* config/arm/nbsd.mt (TM_FILE): Define.
	* config/arm/tm-nbsd.h: New file.

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

	* Makefile.in (ppc-sysv-tdep.o): Update dependencies.
	* ppc-sysv-tdep.c: Include "objfiles.h".
	(ppc64_sysv_abi_push_dummy_call): Provide the
	the FN's objfile when looking for the descriptor.

	* ppc-linux-tdep.c (ppc_linux_init_abi): Set PPC64's
	"name_of_malloc" to ".malloc".

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

	* config/i386/x86-64linux.mt (TDEPFILES): Add glibc-tdep.o.

2003-11-13  David Carlton  <carlton@kealia.com>

	* cp-namespace.c (lookup_namespace_scope): Fix typo in comment.

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

	* arch-utils.h (selected_architecture_name): Declare.
	(selected_byte_order): Declare.
	* arch-utils.c (selected_byte_order): New function.
	(selected_architecture_name): New function.
	(target_architecture_auto): Make static.
	(set_architecture_string): Make static.
	(target_byte_order): Make static.
	(target_byte_order_auto): Make static.
	* gdbarch.sh (TARGET_BYTE_ORDER, TARGET_ARCHITECTURE): Delete
	non-multi-arch definition.
	(TARGET_ARCHITECTURE_AUTO, TARGET_BYTE_ORDER_AUTO): Delete.
	(target_byte_order, target_architecture): Delete declaration.
	(target_byte_order_auto, target_architecture_auto): Ditto.
	* gdbarch.h: Re-generate.
	* remote-sim.c (gdbsim_open): Use "selected_architecture_name" and
	"selected_byte_order".

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

	* ppc-linux-tdep.c (ppc_linux_return_value): Fix parameter order.

2003-11-13  Jim Blandy  <jimb@redhat.com>

	* cp-namespace.c: Doc fix.

2003-11-12  Michael Snyder  <msnyder@redhat.com>

	* sh64_tdep.c: Regularize some names.
	(sh_sh64_register_name): Rename to sh64_register_name.
	(sh_sh64_breakpoint_from_pc): Rename to sh64_breakpoint_from_pc.
	(sh_sh64_register_byte): Rename to sh64_register_byte.
	(sh_sh64_build_float_register_type):
	Rename to sh64_build_float_register_type.
	(sh_sh64_register_convert_to_virtual):
	Rename to sh64_register_convert_to_virtual.
	(sh_sh64_register_convert_to_raw):
	Rename to sh64_register_convert_to_raw.

	* sh64-tdep.c (translate_insn_rn, is_media_pseudo,
	sh64_media_reg_base_num, sh64_compact_reg_base_num,
	sh64_nofp_frame_init_saved_regs, sh64_push_arguments,
	sh64_extract_return_value, sh64_show_media_regs,
	sh64_show_compact_regs, sh_sh64_register_byte, sh64_register_type,
	sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw,
	sh64_pseudo_register_read, sh64_pseudo_register_write,
	sh64_do_pseudo_register, sh_compact_print_registers_info):
	Delete unused variable 'tdep'.

	* sh64-tdep.c: Coding standard and spelling comment fixes.
	(sh64_extract_return_value): Replace deprecated_store_floating
	with store_typed_floating.
	(sh_sh64_register_convert_to_raw): Replace
	deprecated_store_floating with store_typed_floating.
	(sh_sh64_register_virtual_type): Convert to sh64_register_type.
	(sh64_frame_chain, sh64_get_saved_pr, sh64_get_saved_register,
	sh64_nofp_frame_init_saved_regs, sh64_push_arguments,
	sh64_extract_struct_value_address, sh64_pop_frame,
	sh64_extract_return_value, sh64_store_return_value,
	sh_sh64_register_convert_to_virtual, sh64_pseudo_register_read,
	sh_sh64_register_convert_to_raw, sh_pseudo_register_write):
	Replace DEPRECATED_REGISTER_RAW_SIZE with register_size.
	Replace DEPRECATED_REGISTER_VIRTUAL_TYPE with register_type.
	(sh64_gdbarch_init): Don't set deprecated_register_bytes,
	deprecated_register_virtual_type, deprecated_register_raw_size,
	deprecated_max_register_raw_size, or
	deprecated_max_register_virtual_size.  Instead, just set
	gdbarch_register_type.
	(sh_sh64_register_raw_size): Delete.
	(sh_sh64_register_virtual_size): Delete.

2003-11-12  Daniel Jacobowitz <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): New type.

	(dwarf2_build_psymtabs_hard, psymtab_to_symtab_1): Create a
	dwarf2_cu structure to pass down.

	(scan_partial_symbols, add_partial_symbol, add_partial_namespace)
	(add_partial_enumeration, locate_pdi_sibling, process_die)
	(read_file_scope, read_func_scope)
	(read_lexical_block_scope, dwarf2_get_pc_bounds)
	(dwarf2_add_field, dwarf2_attach_fields_to_type)
	(dwarf2_add_member_fn, dwarf2_attach_fn_fields_to_type)
	(read_structure_scope, read_enumeration, read_array_type)
	(read_common_block, read_namespace, read_tag_pointer_type)
	(read_tag_ptr_to_member_type, read_tag_reference_type)
	(read_tag_const_type, read_tag_volatile_type, read_tag_string_type)
	(read_subroutine_type, read_typedef, read_base_type, read_comp_unit)
	(read_die_and_children, read_die_and_siblings, dwarf2_read_section)
	(dwarf2_read_abbrevs, dwarf2_lookup_abbrev, read_partial_die)
	(read_full_die. read_attribute_value, read_attribute)
	(read_address, dwarf_decode_line_header, dwarf_decode_lines)
	(var_decode_location, new_symbol, dwarf2_const_value, die_type)
	(die_containing_type, type_at_offset, tag_type_to_type)
	(read_type_die, dwarf_base_type, decode_locdesc, dwarf_decode_macros)
	(dwarf2_symbol_mark_computed): Accept and use a dwarf2_cu object.

2003-11-12  Daniel Jacobowitz  <drow@mvista.com>

	PR breakpoints/1450
	* breakpoint.c (insert_bp_location): Fix a logic error by returning
	0 after a catchpoint fails.

2003-11-11  Michael Chastain  <mec.gnu@mindspring.com>

	* mips-tdep.c (msymbol_size): Delete.

2003-11-07  Michael Chastain  <mec@shout.net>

	* symtab.h (struct minimal_symbol): Add size.
	* dbxread.c: Use it.
	* elfread.c: (record_minimal_symbol_and_info): Do not use info.
	Rename to record_minimal_symbol.
	(elf_symtab_read): Set MSYMBOL_SIZE explicitly.
	* minsyms.c (prim_record_minimal_symbol_and_info): Initialize MSYMBOL_SIZE.
	(install_minimal_symbols): Ditto.
	* objfiles.c (terminate_minimal_symbol_table): Ditto.
	* arm-tdep.c: Delete unused MSYMBOL_SIZE.
	* m68hc11-tdep.c: Ditto.
	* mips-tdep.c: Ditto.
	* sh64-tdep.c: Ditto.

2003-11-10  Michael Chastain  <mec.gnu@mindspring.com>

	* MAINTAINERS: Change my e-mail address.

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

	* gdbarch.sh (return_value): Replace "inval" and "outval" with
	"readbuf" and "writebuf".
	* ppcnbsd-tdep.c (ppcnbsd_return_value): Ditto.
	* d10v-tdep.c (d10v_return_value): Ditto.
	* ppc-tdep.h (ppc_sysv_abi_return_value): Ditto.
	(ppc_sysv_abi_broken_return_value): Ditto.
	(ppc64_sysv_abi_return_value): Ditto.
	* ppc-sysv-tdep.c (do_ppc_sysv_return_value): Ditto.
	(ppc_sysv_abi_return_value): Ditto.
	(ppc_sysv_abi_broken_return_value): Ditto.
	(ppc64_sysv_abi_return_value): Ditto.
	* values.c (register_value_being_returned): Update call.
	* stack.c (return_command): Update call.
	* gdbarch.h, gdbarch.c: Re-generate.

	* target.h (struct target_ops): Order xfer buffer parameters "read
	write" not "write read".
	* bfd-target.c (target_bfd_xfer_partial): Update.
	* remote.c (remote_xfer_partial): Update.
	* inftarg.c (child_xfer_partial): Update.
	* target.c (default_xfer_partial): Update.
	(target_read_partial, target_write_partial): Update.
	(debug_to_xfer_partial): Update.

	* arch-utils.h, arch-utils.c: Fix typo in comment.

	* arch-utils.c (deprecated_select_gdbarch_hack): Delete function.
	(gdbarch_from_bfd): Call gdbarch_find_by_info.
	(set_gdbarch_from_file): Call
	"deprecated_current_gdbarch_select_hack".

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

	* arch-utils.c (gdbarch_update_p): New function.
	* gdbarch.sh (gdbarch_update_p): Delete function.
 	(find_arch_by_info, gdbarch_find_by_info): New functions.
	(deprecated_current_gdbarch_select_hack): New function.
	* gdbarch.c: Re-generate.

	* gdbarch.sh (clear_gdbarch_swap): Delete function.
	(swapout_gdbarch_swap): Delete function.
	(swapin_gdbarch_swap): Delete function.
	(init_gdbarch_swap): Delete function.
	(initialize_non_multiarch): Delete function.
	(current_gdbarch_swap_in_hack): New function.
	(current_gdbarch_swap_out_hack): New function.
	(current_gdbarch_swap_init_hack): New function.
	* gdbarch.c: Re-generate.

	* gdbarch.sh (verify_gdbarch, gdbarch_dump): Rename "gdbarch"
	parameter to "current_gdbarch".  Add comment explaining why.
	(TARGET_FLOAT_FORMAT: Pass "current_gdbarch" to default_double_format.
	(TARGET_DOUBLE_FORMAT,TARGET_LONG_DOUBLE_FORMAT): Ditto.
	* gdbarch.c: Re-generate.

	* config/s390/s390.mh (XM_FILE, XM_CLIBS): Delete macros.
	* config/s390/nm-linux.h (KERNEL_U_ADDR): Define.
	* config/s390/xm-linux.h: Delete file.
	* config/m88k/xm-delta88v4.h: Delete stray.

	* Makefile.in (arch-utils.o): Update dependencies.
	* arch-utils.c: Include "osabi.h".
	(gdbarch_info_fill): New function.
	* arch-utils.h (gdbarch_info_fill): Declare.
	* gdbarch.sh (gdbarch_update_p): Call "gdbarch_info_fill".
	* gdbarch.c: Re-generate.

2003-11-09  Mark Kettenis  <kettenis@gnu.org>
            David S. Miller  <davem@redhat.com>

	* glibc-tdep.c, glibc-tdep.h: New files.
	* config/arm/linux.mt (TDEPFILES): Add glibc-tdep.o
	* config/i386/linux.mt (TDEPFILES): Likewise.
	* i386-linux-tdep.c (glibc-tdep.h): Include.
	(find_minsym_and_objfile, skip_hurd_resolver): Delete.
	(i386_linux_skip_solib_resolver): Call glibc_skip_solib_resolver.
	* arm-linux-tdep.c (glibc-tdep.h): Include.
	(find_minsym_and_objfile, skip_hurd_resolver): Delete.
	(arm_linux_skip_solib_resolver): Call glibc_skip_solib_resolver.
	* Makefile.in (ALLDEPFILES): Add glibc-tdep.c
	(glibc_tdep_h): Define.
	(glibc-tdep.o): Add dependencies.
	(arm-linux-tdep.o): Update dependencies.
	(i386-linux-tdep.o): Likewise.

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

	* config/mips/irix6.mh (NAT_FILE): Set to "nm-irix5.h".
	* config/mips/nm-irix6.h: Delete file.
	* config/mips/nm-linux.h: Update copyright.
	(MIPS_GNULINUX_TARGET): Delete macro.
	* config/mips/irix6.mh (XM_FILE): Set to "xm-irix5.h".
	* config/mips/xm-irix6.h: Delete file.
	* config/mips/linux.mh (XM_FILE): Delete definition.
	* config/mips/xm-linux.h: Delete file.

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

	* d10v-tdep.c (d10v_return_value): New function.
	(d10v_use_struct_convention): Delete function.
	(d10v_store_return_value): Delete function.
	(d10v_extract_struct_value_address): Delete function.
	(d10v_gdbarch_init): Set "return_value" instead of
	"extract_return_value", "store_return_value",
	"extract_struct_value_address", and "use_struct_convention".
	(RET1_REGNUM): Delete const.

2003-11-09  Mark Kettenis  <kettenis@gnu.org>

	From David S. Miller  <davem@redhat.com>:
	* gdbarch.sh (SKIP_SOLIB_RESOLVER): New method.
	* gdbarch.c, gdbarch.h: Regenerated.
	* arch-utils.c (generic_skip_solib_resolver): New function.
	* arch-utils.h (generic_skip_solib_resolver): New prototype.
	* infrun.c (SKIP_SOLIB_RESOLVER): Don't define.

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

	* top.c (print_gdb_version): Replace STREQ with strcmp.
	* valops.c (value_struct_elt_for_reference): Ditto.
	(value_struct_elt_for_reference): Ditto.
	* symtab.c (gdb_mangle_name): Ditto.
	(find_line_symtab): Ditto.
	* symmisc.c (maintenance_print_symbols): Ditto.
	* symfile.c (symbol_file_command): Ditto.
	* stabsread.c (define_symbol, read_type): Ditto.
	(cleanup_undefined_types, scan_file_globals): Ditto.
	* solib.c (solib_map_sections): Ditto.
	* solib-svr4.c (bfd_lookup_symbol): Ditto.
	* rs6000-tdep.c (skip_prologue): Ditto.
	* p-valprint.c (pascal_value_print): Ditto.
	(pascal_object_is_vtbl_ptr_type): Ditto.
	* objfiles.c (in_plt_section): Ditto.
	* minsyms.c (lookup_minimal_symbol): Ditto.
	(compact_minimal_symbols): Ditto.
	(find_solib_trampoline_target): Ditto.
	* mdebugread.c (parse_type): Ditto.
	* language.c (set_language_command): Ditto.
	(set_type_command, set_range_command): Ditto.
	* f-lang.c (add_common_block): Ditto.
	(add_common_block): Ditto.
	(find_first_common_named): Ditto.
	(patch_all_commons_by_name): Ditto.
	* elfread.c (elf_locate_sections): Ditto.
	(elf_locate_sections): Ditto.
	(elfstab_offset_sections): Ditto.
	* dwarf2read.c (dwarf2_locate_sections): Ditto.
	* dbxread.c (add_old_header_file): Ditto.
	(find_corresponding_bincl_psymtab): Ditto.
	(read_dbx_symtab, process_one_symbol): Ditto.
	* coffread.c (patch_opaque_types): Ditto.
	* cli/cli-decode.c (delete_cmd): Ditto.
	* cli/cli-cmds.c (pwd_command, list_command): Ditto.
	* c-typeprint.c (c_type_print_base): Ditto.
	* breakpoint.c (bpstat_stop_status): Ditto.
	(clear_command, breakpoint_re_set_one): Ditto.

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

	* bcache.h: Update copyright.  Add comments on bcache VS hashtab.
	* bcache.c (struct bstring): Make "length" an unsigned short, add
	"half_hash".
	(struct bcache): Add "half_hash_error_count".
	(bcache): Compute and save the "half_hash".  Compare the
	"half_hash" before comparing the length.  Update
	half_hash_error_count.

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

	* inftarg.c (child_xfer_partial): New function
	(init_child_ops): Set "to_xfer_partial".

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

	* ppc-linux-tdep.c (ppc_linux_init_abi): When 32-bit GNU/Linux,
	set "return_value" instead of "use_struct_convention".
	(ppc_linux_use_struct_convention): Delete function.
	(ppc_linux_return_value): New function.
	* ppc-sysv-tdep.c (ppc_sysv_abi_return_value): New function.
	(ppc_sysv_abi_broken_return_value): New function.
	(do_ppc_sysv_return_value): Add "gdbarch" parameter.
	(ppc64_sysv_abi_push_dummy_call): Add "gdbarch" parameter, drop
	static.
	(ppc_sysv_abi_extract_return_value): Delete function.
	(ppc_sysv_abi_broken_extract_return_value): Delete function.
	(ppc_sysv_abi_store_return_value): Delete function.
	(ppc_sysv_abi_broken_store_return_value): Delete function.
	(ppc_sysv_abi_use_struct_convention): Delete function.
	(ppc64_sysv_abi_use_struct_convention): Delete function.
	(ppc64_sysv_abi_extract_return_value): Delete function.
	(ppc64_sysv_abi_store_return_value): Delete function.
	* ppcnbsd-tdep.c (ppcnbsd_return_value): New function.
	(ppcnbsd_init_abi): Set "return_value", instead of
	"use_struct_convention", "extract_return_value", and
	"store_return_value".
	(ppcnbsd_use_struct_convention): Delete function.
	* ppc-tdep.h (ppc64_sysv_abi_return_value): Declare.
	(ppc_sysv_abi_return_value): Declare.
	(ppc_sysv_abi_broken_return_value): Declare.
	(ppc_sysv_abi_use_struct_convention): Delete.
	(ppc_sysv_abi_store_return_value): Delete.
	(ppc_sysv_abi_extract_return_value): Delete.
	(ppc_sysv_abi_broken_store_return_value): Delete.
	(ppc_sysv_abi_broken_extract_return_value): Delete.
	(ppc64_sysv_abi_use_struct_convention): Delete.
	(ppc64_sysv_abi_extract_return_value): Delete.
	(ppc64_sysv_abi_store_return_value): Delete.
	* rs6000-tdep.c (rs6000_gdbarch_init): For 32-bit and 64-bit SYSV,
	set "return_value" instead of "extract_return_value",
	"store_return_value", and "use_struct_convention".

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

	* dwarf2-frame.c (dwarf2_build_frame_info): Wrap comment.

	* fbsd-proc.c (read_mapping): Use sscanf and fgets instead of
	fscanf.

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

	* fbsd-proc.c: Fix formatting.

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

	* frv-tdep.c (first_pseudo_regnum, iacc0_regnum, frv_num_pseudo_regs):
	Define.
	(new_variant): Set name for iacc0_regnum.
	(frv_register_name): Accommodate pseudo-registers.
	(frv_register_type): Add case for iacc0_regnum.
	(frv_pseudo_register_read, frv_pseudo_register_write): New functions.
	(frv_gdbarch_init): Set number of pseudo registers.  Establish
	pseudo-register read/write methods.

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

	* valops.c (destructor_name_p): Replace STREQN with strncmp.
	* top.c (command_line_input): Ditto.
	* objc-exp.y (yylex): Ditto.
	* minsyms.c (prim_record_minimal_symbol_and_info): Ditto.
	* jv-exp.y (yylex): Ditto.
	* f-exp.y (yylex): Ditto.
	* event-top.c (command_line_handler): Ditto.
	* environ.c (get_in_environ): Ditto.
	(set_in_environ): Ditto.
	* dwarfread.c (handle_producer): Ditto.
	* dbxread.c (process_one_symbol): Ditto.
	* c-typeprint.c (c_type_print_base): Ditto.
	* c-exp.y (yylex): Ditto.

2003-11-06  Andrew Cagney  <cagney@redhat.com>
	    Jeff Johnston  <jjohnstn@redhat.com>

	* target.c (add_target): Only set "to_xfer_partial" when NULL.
	(init_dummy_target): Set "to_xfer_partial".

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

	* stack.c (return_command): Warn when STRUCT_CONVENTION, and not
	REGISTER_CONVENTION.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (insert_bp_location, allocate_bp_location): Make
	static.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (remove_breakpoint): Take an bp_location
	instead of a breakpoint argument.  Check the bp_location's type.
	Fix a reversed condition for hardware breakpoints.

	(insert_bp_location): Update call to remove_breakpoint.
	(remove_breakpoints): Likewise.  Use ALL_BP_LOCATIONS.
	(remove_hw_watchpoints): Likewise.
	(reattach_breakpoints): Likewise.
	(detach_breakpoints): Likewise.
	(delete_breakpoint): Likewise.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (mark_breakpoints_out): Use ALL_BP_LOCATIONS.
	(beakpoint_init_inferior): Likewise.
	(breakpoint_here_p): Likewise.  Only check addresses for software
	or hardware breakpoints.
	(breakpoint_inserted_here_p): Likewise.
	(breakpoint_thread_match): Likewise.  Correct comment.
	(bpstat_have_active_hw_watchpoints): Likewise.
	(check_duplicates): Likewise.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoints.c (insert_bp_location): New function, broken out
	from insert_breakpoints.  Work on an bp_location instead of a
	breakpoint.
	(insert_breakpoints): Use it.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.h (struct bp_location): Add section.
	(struct breakpoint): Remove section.
	* breakpoint.c (insert_breakpoints, remove_breakpoint)
	(breakpoint_here_p, breakpoint_inserted_here_p)
	(breakpoint_thread_match, bpstat_stop_status, print_one_breakpoint)
	(describe_other_breakpoints, check_duplicates, set_raw_breakpoint)
	(clear_command, delete_breakpoint, breakpoint_re_set_one): Access
	section through loc.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (read_memory_nobpt): Use ALL_BP_LOCATIONS
	instead of ALL_BREAKPOINTS.  Check for software breakpoints only.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (allocate_bp_location): Take bpt and bp_type
	arguments.  Initialize owner and type for the new breakpoint
	location item.
	(set_raw_breakpoint): Update call to allocate_bp_location.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.h (struct bp_location): Add a chain pointer.
	* breakpoint.c (ALL_BP_LOCATIONS, ALL_BP_LOCATIONS_SAFE): New
	macros.
	(bp_location_chain): New variable.
	(allocate_bp_location): New function.
	(set_raw_breakpoint): Use it.
	(delete_breakpoint): Remove ->loc from the bp_location_chain.

2003-11-06  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.h (enum bp_loc_type, struct bp_location): New.
	(struct breakpoint): Remove address, shadow_contents, inserted,
	requested_address, and duplicate.  Add a struct bp_location.
	* breakpoint.c (condition_command, read_memory_nobpt)
	(insert_breakpoints, remove_breakpoints, remove_hw_watchpoints)
	(reattach_breakpoints, update_breakpoints_after_exec)
	(detach_breakpoints, remove_breakpoint, mark_breakpoints_out)
	(breakpoint_init_inferior, breakpoint_here_p)
	(breakpoint_inserted_here_p, deprecated_frame_in_dummy)
	(breakpoint_thread_match, bpstat_stop_status)
	(bpstat_have_active_hw_watchpoints, print_one_breakpoint)
	(describe_other_breakpoints, check_duplicates)
	(make_breakpoint_permanent, create_thread_event_breakpoint)
	(disable_breakpoints_in_shlibs, re_enable_berakpoints_in_shlibs)
	(set_longjmp_resume_breakpoint, mention, create_breakpoints)
	(watch_command_1, print_one_exception_catchpoint)
	(clear_command, breakpoint_re_set_one): Adjust member accesses to
	use the breakpoint's ->loc.
	(set_raw_breakpoint): Likewise.  Initialize ->loc.
	(delete_breakpoint): Likewise.  Free ->loc.

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

	* config/sparc/tm-sparc.h (FRAME_STRUCT_ARGS_ADDRESS): Delete
	macro.
	* config/m68k/tm-sun3.h (SIG_PC_FP_OFFSET): Delete macro.
	* config/i386/tm-cygwin.h
	(LINKER_SYMBOLS_HAVE_WIN32_STDCALL_ARG_SIZES): Delete macro.
	* config/powerpc/tm-linux.h
	(AT_SUBROUTINE_CALL_INSTRUCTION_TARGET): Delete macro.
	(at_subroutine_call_instruction_target): Delete declaration.
	* config/sparc/tm-sp64linux.h (GDB_PTRACE_REGS64): Delete macro.
	* config/m68k/tm-sun3.h (SIG_SP_FP_OFFSET): Delete macro.
	* config/ns32k/tm-ns32k.h (NUM_GENERAL_REGS): Delete macro.

	* xcoffread.c (find_linenos): Replace "sec_ptr" and "bfd" with
	"struct bfd_section" and "struct bfd".
	* target.h (struct section_table): Ditto.
	* rs6000-nat.c (xcoff_relocate_core): Ditto.
	* solib-svr4.c (elf_locate_base): Ditto.
	* pa64solib.c (dld_cache_t): Ditto.
	* objfiles.h (struct obj_section): Ditto.
	* objfiles.c (add_to_objfile_sections): Ditto.
	* exec.c (bfdsec_to_vmap): Ditto.
	(add_to_section_table): Ditto.
	(build_section_table): Ditto.
	* corelow.c (get_core_register_section): Ditto.
	* coffread.c (find_linenos): Ditto.
	* elfread.c (elf_interpreter): Delete #if0'd function.

	* mips-tdep.c (mips_dump_tdep): Delete code prinint VX_NUM_REGS.
	* config/sparc/tm-vxsparc.h (VX_NUM_REGS): Delete macro.
	* config/mips/tm-vxmips.h (VX_NUM_REGS): Delete macro.
	* config/m68k/tm-vx68.h (VX_NUM_REGS): Delete macro.

	* arch-utils.h (generic_cannot_extract_struct_value_address):
	Delete declaration.
	* wince.c (_initialize_wince): Fix multi-line string.
	* ia64-tdep.c (floatformat_valid): Convert to ISO C.

2003-11-05  Elena Zannoni  <ezannoni@redhat.com>

	* top.c (execute_command): Fix broken logic for command execution
	while inferior is running in async mode.

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

	* dwarf2-frame.c (execute_cfa_program): Mark register as
	REG_SAVED_REG for DW_CFA_register opcode.

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

	* amd64fbsd-tdep.c (amd64fbsd_sc_reg_offset): Adjust offset of
	%rsp, %rip and %eflags to match ABI-change.

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

	* ia64-tdep.c (struct gdbarch_tdep): Remove os_ident field.
	(ia64_gdbarch_init): Don't bother calculating the os.
	Instead use the gdbarch_info struct and look at the osabi field.
	Also use gdbarch_list_lookup_by_info() to look for a
	candidate gdbarch.

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

	* frv-tdep.c (frv_register_byte): Delete.
	(frv_extract_return_value, frv_store_return_value)
	(frv_extract_struct_value_address): Don't call frv_register_byte().
	Convert to non-deprecated form.
	(frv_gdbarch_init): Don't call set_gdbarch_deprecated_register_byte().
	Convert calls to set_gdbarch_deprecated_extract_return_value(),
	set_gdbarch_deprecated_store_return_value(), and
	set_gdbarch_deprecated_extract_struct_value_address() into
	non-deprecated forms.

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

	* mips-tdep.c (mips_dump_tdep): Do not print
	PRINT_EXTRA_FRAME_INFO.
	* config/sparc/tm-sparc.h (DEPRECATED_PRINT_EXTRA_FRAME_INFO):
	Rename PRINT_EXTRA_FRAME_INFO.
	* mips-tdep.c (mips_print_extra_frame_info): Delete function.
	* config/mips/tm-mips.h (PRINT_EXTRA_FRAME_INFO): Delete macro.
	(mips_print_extra_frame_info): Delete declaration.
	* stack.c (frame_info): Use DEPRECATED_PRINT_EXTRA_FRAME_INFO.

2003-11-05 Elena Zannoni  <ezannoni@redhat.com>

	* coffread.c (coff_symtab_read): Remove passing of info parameter
	to prim_record_minimal_symbol_and_info.

2003-11-05  Elena Zannoni  <ezannoni@redhat.com>

	* coffread.c (process_coff_symbol): Delete CXUX_TARGET macro use.
	(decode_base_type): Delete ifdeffed out code.

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

	* symtab.c (find_active_alias): Delete function.
	(lookup_block_symbol): Delete alias code.
	* stabsread.c (resolve_live_range): Delete function.
	(add_live_range): Delete function.
	(resolve_symbol_reference): Delete function.
	(define_symbol): Delete live range and alias code.
	(scan_file_globals): Delete alias code.
	* symtab.h (SYMBOL_RANGES): Delete macro.
	(struct range_list): Delete structure.
	(struct symbol): Delete field "ranges".
	(SYMBOL_ALIASES): Delete macro.
	(struct alias_list): Delete structure.
	(struct symbol): Delete field "aliases".

2003-11-04  Michael Snyder  <msnyder@redhat.com>

	* MAINTAINERS: Remove myself as owner of breakpoints and
	of sparc/solaris.

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

	* sh-tdep.c (sh_sh4_nofpu_register_name): New function.
	(sh_sh4al_dsp_register_name): Ditto.
	(sh4_nofpu_show_regs): Ditto.
	(sh_gdbarch_init): Add cases for bfd_mach_sh4al_dsp, bfd_mach_sh4a,
	bfd_mach_sh4_nofpu and bfd_mach_sh4a_nofpu.

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

	* bcache.c: Include "gdb_assert.h".
	(struct bcache): Add fields "expand_count" and
	"expand_hash_count".
	(expand_hash_table): Update the expand counts.
	(print_bcache_statistics): Use XCALLOC, not alloca.  Print stats
	on object sizes and hashes.
	* Makefile.in (bcache.o): Update dependencies.

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

	* exec.c (xfer_memory): Eliminate xfer_fn.

2003-10-31  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (gdb_assert.h, sim-regno.h, gdb/sim-frv.h)
	(opcodes/frv-desc.h): Include.
	(iacc0h_regnum, iacc0l_regnum): Define.
	(last_spr_regnum, frv_num_regs): Update.
	(new_variant): Don't supply default names for holes in the SPRs.
	Supply names for iacc0h_regnum and iacc0l_regnum.
	(frv_register_type): Use symbolic constants first_fpr_regnum and
	last_fpr_regnum instead of hardcoded constants 64 and 127.  Use
	builtin_type_int instead of builtin_type_int32.
	(frv_register_sim_regno): New function.
	(frv_gdbarch_init): Call set_gdbarch_register_sim_regno().
	* Makefile.in (gdb_sim_frv_h): Define.
	(frv-tdep.o): Update dependencies.

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

	* avr-tdep.c (avr_frame_this_id): Do not call
	deprecated_inside_entry_file.
	* m68hc11-tdep.c (m68hc11_frame_this_id): Ditto.
	* m32r-tdep.c (m32r_frame_this_id): Ditto.
	* d10v-tdep.c (d10v_frame_this_id): Ditto.
	* arm-tdep.c (arm_prologue_this_id): Ditto.
	* alpha-tdep.c (alpha_heuristic_frame_this_id): Ditto.

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

	* elfread.c (elf_symtab_read): Allocate correct number of tail
	elements to sectinfo structure.  (Fix from Woody LaRue.)

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

	* stack.c (return_command): Use get_frame_type, instead of
	CALL_DUMMY_HAS_COMPLETED.
	* inferior.h (CALL_DUMMY_HAS_COMPLETED): Delete definition.
	* config/pa/tm-hppa.h (CALL_DUMMY_HAS_COMPLETED): Delete macro.

2003-10-31  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-linux-tdep.c (x86_64_linux_sc_reg_offset): Don't
	explicitly specify size of array.
	(x86_64_linux_init_abi): Use ARRAY_SIZE to initialize
	TDEP->sc_num_regs.

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

	* s390-tdep.c (s390_cannot_extract_struct_value_address): New
	function.
	(s390_gdbarch_init): Set extract_struct_value_address.
	* arch-utils.c (generic_cannot_extract_struct_value_address):
	Delete function.
	* arch-utils.h (generic_cannot_extract_struct_value_address):
	Delete definition.

2003-10-31  Mark Kettenis  <kettenis@gnu.org>

	* i386-linux-nat.c (fetch_core_registers): Remove.
	(linux_elf_core_fns): Remove.
	(_initialize_i386_linux_nat): Remove.

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

	* solib-svr4.c: Update copyright.  Include "bfd-target.h" and
	"exec.h".
	(exec_entry_point): New function.
	(enable_break): Create a "tmp_bfd_target", use that and
	entry_point_address when computing the relocation offset.
	(svr4_relocate_main_executable): Ditto with exec_bfd and exec_ops.
	* Makefile.in (solib-svr4.o): Update dependencies.

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

	* defs.h (XZALLOC): Define.
	* target.h (struct target_ops): Add "to_data";
	* bfd-target.h, bfd-target.c: New files.
	* Makefile.in (SFILES): Add "bfd-target.c".
	(COMMON_OBS): Add "bfd-target.o".
	(bfd-target.o): Specify dependencies.
	(bfd_target_h): Define.
	* defs.h (XZALLOC): Define.

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

	* rs6000-tdep.c (rs6000_gdbarch_init): For 64-bit ABI, set
	adjust_breakpoint_address.
	* Makefile.in (ppc-sysv-tdep.o): Add $(target_h).
	* ppc-tdep.h (ppc64_sysv_abi_adjust_breakpoint_address): Declare.
	* ppc-sysv-tdep.c: Include "target.h".  Update copyright.
	(ppc64_sysv_abi_adjust_breakpoint_address): New function.

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

	* target.h (struct target_ops): Replace "to_read_partial" and
	"to_write_partial" with "to_xfer_partial".  Update comments.
	* target.c (debug_to_write_partial): Delete function.
	(debug_to_xfer_partial): Replace debug_to_read_partial.
	(add_target, update_current_target, setup_target_debug): Set
	"to_xfer_partial" instead of "to_read_partial" and
	"to_write_partial".
	(default_xfer_partial): Replace "default_write_partial".
	(default_read_partial): Delete.
	(target_read_partial, target_write_partial): Call
	"to_xfer_partial".
	* remote.c (init_remote_ops): Set "to_xfer_partial".
	(init_remote_async_ops): Ditto.
	(remote_xfer_partial): Replace "remote_read_partial".

2003-10-31  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_supply_fpregset): Support floating-point
	registers in `fxsave' format.
	(i386_regset_from_core_section): Deal with ".reg-xfp" sections.

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

	* i386-linux-tdep.c (i386_linux_gregset_reg_offset): New variable.
	(i386_linux_init_abi): Initialize TDEP->gregset_reg_offset,
	TDEP->gregset_num_regs and tdep->sizeof_gregset.

	* i386-linux-tdep.c (i386_linux_sc_reg_offset): Don't explicitly
	specify size of array.
	(i386_linux_init_abi): Remove initialization of
	TDEP->num_xmm_regs.  Use I386_LINUX_NUM_REGS for number of
	registers.  Use ARRAY_SIZE to initialize TDEP->sc_num_regs.

	* config/i386/fbsd64.mt (TDEPFILES): Add corelow.o.
	* config/i386/fbsd64.mh (NATDEPFILES): Remove corelow.o and
	core-regset.o.

	* fbsd-proc.c (fbsd_make_corefile_notes): Put a "FreeBSD" label in
	the ELF header.

2003-10-29  Mark Kettenis  <kettenis@gnu.org>

	* config/i386/fbsd.mt (TDEPFILES): Add corelow.o.
	* config/i386/fbsd.mh (NATDEPFILES): Remove corelow.o and
	core-regset.o.

	* fbsd-proc.c (fbsd_make_corefile_notes): Remove unecessary casts.

	* corelow.c: Include "arch-utils.h", "regset.h" and
	"gdb_assert.h".
	(core_gdbarch): New variable.
	(sniff_core_bfd): Don't sniff if we have support for register sets
	in CORE_GDBARCH.
	(core_close): Reset CORE_GDBARCH.
	(core_open): Initialize CORE_GDBARCH.
	(get_core_register_section): Use register sets if they are
	supported by CORE_GDBARCH.
	(get_core_registers): Don't print error message if we have support
	for register sets in CORE_GDBARCH.

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

	* ppc-linux-tdep.c (_initialize_ppc_linux_tdep): Instead of the
	default PPC machine, register 32-bit and 64-bit PPC, and rs6k.

2003-10-29  Mark Kettenis  <kettenis@gnu.org>

	* objfiles.h (clear_objfile_data): New prototype.
	* objfiles.c (clear_objfile_data): New function.
	* symfile.c (reread_symbols): Clear per-objfile data.

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

	* symfile.c (symbol_file_add_with_addrs_or_offsets): Switch to use
	printf_unfiltered instead of printf_filtered for output messages.
	(add_symbol_file_command): Ditto.
	(reread_symbols): Ditto.
	(overlay_auto_command): Ditto.
	(overlay_manual_command): Ditto.
	(overlay_off_command): Ditto.

2003-10-27  Mark Kettenis  <kettenis@gnu.org>

	* arch-utils.c (deprecated_select_gdbarch_hack): New function.
	(gdbarch_from_bfd): New function.
	(set_gdbarch_from_file): Re-implement using gdbarch_from_bfd and
	deprecated_select_gdbarch_hack.
	* arch-utils.h (gdbarch_from_bfd): New prototype.

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

	* osabi.c (gdbarch_init_osabi): Use info.bfd_arch_info instead of
	arch_info.  Use warning instead of fprintf_filtered.  Do not use
	deprecated bfd_printable_arch_mach.

2003-10-26  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (frv_register_raw_size, frv_register_virtual_size):
	Delete.
	(frv_register_type): Rename from frv_register_virtual_type.  Add
	``struct gdbarch *'' parameter.
	(frv_gdbarch_init): Delete calls to the following functions:
	set_gdbarch_deprecated_size(),
	set_gdbarch_deprecated_register_bytes(),
	set_gdbarch_deprecated_register_raw_size(),
	set_gdbarch_deprecated_max_register_raw_size(),
	set_gdbarch_deprecated_register_virtual_size(),
	set_gdbarch_deprecated_max_register_virtual_size(),
	set_gdbarch_deprecated_register_virtual_size(),
	set_gdbarch_deprecated_register_virtual_type().
	Add call to function set_gdbarch_register_type().

2003-10-26  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.h (FCS_REGNUM, FCOFF_REGNUM, FDS_REGNUM,
	FDOFF_REGNUM): Remove defines.
	* win32-nat.c (do_child_fetch_inferior_registers): Include
	"i387-tdep.h".
	(do_child_fetch_inferior_registers): Use I387_FISEG_REGNUM and
	I387_FOP_REGNUM instead of FCS_REGNUM and FOP_REGNUM.  Define and
	undefine I387_ST0_REGNUM.

	* i386-tdep.h (FPU_REG_RAW_SIZE): Remove define.
	* x86-64-tdep.c (x86_64_store_return_value): Use
	I386_MAX_REGISTER_SIZE instead of FPU_REG_RAW_SIZE.

	Change register numbers to enumartion values.
	* i386-tdep.h (enum i386_regnum): New.
	(I386_EAX_REGNUM, I386_EDX_REGNUM, I386_ESP_REGNUM,
	I386_EBP_REGNUM, I386_IP_REGNUM, I386_EFLAGS_REGNUM,
	I386_ST0_REGNUM): Remove defines.
	* i386-tdep.c (I386_EBX_REGNUM, I386_ECX_REGNUM, I386_ESI_REGNUM,
	I386_EDI_REGNUM): Remove defines.

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

	* target.c: Include "gdbcore.h".
	(get_target_memory, get_target_memory_unsigned): New functions.
	* target.h (get_target_memory, get_target_memory_unsigned): Declare.
	* ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr):
	Use get_target_memory_unsigned.
	* Makefile.in (target.o): Update dependencies.

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

	* osabi.c (gdbarch_init_osabi): Fix typos, and "fortunatly"[sic].
	* PROBLEMS, arch-utils.c, cli-out.c, command.h: Ditto.
	* complaints.c, cris-tdep.c, disasm.c, dwarf2-frame.c: Ditto.
	* frame.c, frame.h, infcall.c, infcmd.c, infrun.c: Ditto.
	* kod.c, mips-tdep.c, regcache.c, regcache.h, remote.c: Ditto.

	* osabi.c (gdbarch_init_osabi): Add comment on 32-bit vs 64-bit.
	(can_run_code_for): Use the OO term "singleton".

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

	* Makefile.in (stack.o): Add $(regcache_h).
	* stack.c: Include "regcache.h"
	(return_command): Rewrite.  Use get_frame_id and
	get_selected_frame.  Eliminate "deprecated_selected_frame".  Warn
	about unhandled return-values.
	* value.h (set_return_value): Delete declaration.
	* values.c (set_return_value): Delete function.

2003-10-23  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c: (ia64_frame_cache): Add new prev_cfm field.
	(pseudo_regs): Add comment regarding register stack registers.
	(ia64_alloc_frame_cache):  Initialize new prev_cfm field to 0.
	(floatformat_valid): New static routine.
	(floatformat_ia64_ext): Add name field and set up is_valid routine
	to floatformat_valid().
	(examine_prologue):  For the previous cfm, use
	frame_unwind_register()
	if the cfm is not stored in a register-stack register.  Save the
	previous cfm value in the prev_cfm field.  Add debug output.
	(ia64_frame_this_id): Use frame_id_build_special() to also register
	the bsp.  Add debug output.
	(ia64_sigtramp_frame_this_id): Ditto.
	(ia64_frame_prev_register):  Look at cache saved_regs for a few more
	registers and also add some checks for framelessness before accepting
	current register values for fields such as return address.  For cfm,
	use the cached prev_cfm field if available.  Add comment to explain
	PSR logic.  Add debug output.
	(ia64_sigtramp_frame_init_saved_regs): Save the bsp and sp addresses
	as part of initialization.
	(ia64_sigtramp_frame_cache): Hard-code stack size as it can't be
	calculated.  Cache the bsp and cfm values.
	(ia64_sigtramp_frame_prev_register): Add logic to this routine out
	instead of using ia64_frame_prev_register() which doesn't expect most
	registers to be saved.  The saved values for bsp and sp
	can be taken from the cache.  Add debug output.
	(ia64_push_dummy_call): Use frame_id_build_special() to also register
	the bsp.

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

	* osabi.c (gdbarch_init_osabi): A handler is okay if it's for an
	architecture the current arch can run code for --- but not if it's
	a superset.
	(can_run_code_for): New function.

2003-10-22  James E Wilson  <wilson@specifixinc.com>

	* MAINTAINERS: Move myself from paper trail section back to write
	after approval section.

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

	* exec.h: New file.
	* win32-nat.c: Include "exec.h".
	* solib.c: Include "exec.h".
	* target.h (build_section_table): Delete declaration.
	* somsolib.c: Include "exec.h".
	(exec_ops): Delete extern declaration.
	* rs6000-nat.c: Update copyright.  Include "exec.h".
	(exec_ops): Delete extern declaration.
	* pa64solib.c: Update copyright.  Include "exec.h".
	(exec_ops): Delete extern declaration.
	* exec.c: Update copyright.  Include "exec.h".
	* corelow.c: Update dependencies.  Include "exec.h".
	* Makefile.in (exec_h): Define.
	(exec.o, somsolib.o): Update dependencies.
	(pa64solib.o, corelow.o): Update dependencies.

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

	* target.c: Include "gdb_assert.h" (target_read): Call
	"target_read_partial", not "target_write_partial".
	(default_read_partial, default_write_partial): New function.
	(target_read_partial, target_write_partial): Simplify, assume that
	there is always a read/write method.
	(update_current_target, add_target): Always set "to_read_partial"
	and "to_write_partial".
	(target_write, target_read): Fail on a zero byte transfer.
	* Makefile.in (target.o): Update dependencies.
	* target.h: Update copyright date.
	(target_object): Fix typo.

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

	* gdbarch.sh (convert_from_func_ptr_addr): Convert to a pure
	multi-arch method, add "targ" parameter.
	(struct target_ops): Declare.
	* gdbarch.h, gdbarch.c: Re-generate.
	* Makefile.in (c-valprint.o): Update dependencies.
	* arch-utils.h: Update copyright.
	(convert_from_func_ptr_addr_identity): Declare.
	* arch-utils.c (convert_from_func_ptr_addr_identity): New function.
	* ia64-tdep.c (ia64_convert_from_func_ptr_addr): Update.
	* rs6000-tdep.c (rs6000_convert_from_func_ptr_addr): Upate.
	* ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): Update.
	* infcall.c (find_function_addr, call_function_by_hand): Update.
	* c-valprint.c: Include "target.h".
	(print_function_pointer_address): Update.

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

	* target.c (target_close): New function.
	(debug_to_close): Use "target_close".
	(push_target): Use "target_close".
	(unpush_target): Use "target_close".
	(pop_target): Use "target_close".
	* target.h (struct target_ops): Add "to_xclose".
	(target_open): Delete macro.  Move comment to "to_open".
	(target_close): Replace macro with function that takes a target.
	* top.c (quit_target): Pass "current_target" to "target_close".

2003-10-21  Elena Zannoni  <ezannoni@redhat.com>

	* minsyms.c (lookup_minimal_symbol_text): Remove unused parameter.
	Remove SOFUN_ADDRESS_MAYBE_MISSING ifdeffed code.
	* symtab.h (lookup_minimal_symbol_text): Update.
 	* breakpoint.c (create_overlay_event_breakpoint,
 	create_longjmp_breakpoint): Update callers.
	* ppc-linux-tdep.c (ppc_linux_skip_trampoline_code): Update caller.
	* symtab.c (find_pc_sect_line): Ditto.

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

	* target.c (errno): Delete extern declaration.

2003-10-20  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c: Change all occurrences of
	DEPRECATED_REGISTER_RAW_SIZE to use register_size() instead.
	(ia64_frame_prev_register): Minor whitespace change.

2003-10-20  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: Add lines for:
	sim/testsuite/sim/frv/interrupts/Ipipe-fr400.cgs,
	sim/testsuite/sim/frv/interrupts/Ipipe-fr500.cgs,
	sim/testsuite/sim/frv/interrupts/badalign-fr550.cgs,
	sim/testsuite/sim/frv/interrupts/compound-fr550.cgs,
	sim/testsuite/sim/frv/interrupts/data_store_error-fr550.cgs,
	sim/testsuite/sim/frv/interrupts/fp_exception-fr550.cgs,
	sim/testsuite/sim/frv/interrupts/insn_access_error-fr550.cgs.

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

	* values.c (register_value_being_returned): Update comments.  Use
	"gdbarch_return_value" when available.
	(using_struct_return): Ditto.
	(set_return_value): Ditto.  Use "gdbarch_return_value" when
	available..  Print a warning, and not an error, when an unhandled
	return type is encountered.
	* infcmd.c: Include "gdb_assert.h".
	(print_return_value): When gdbarch_return_value_p, and using
	struct return, assume that the value is not available.
	* defs.h (return_value_convention): Define.
	* gdbarch.sh (gdbarch_return_value): New predicate method.
	* gdbarch.h, gdbarch.c: Re-generate
	* ppc-sysv-tdep.c (return_value_convention): Delete definition.

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

	* symtab.c: Replace "struct sec" with "struct bfd_section".
	* objfiles.c, linespec.c, blockframe.c, block.c: Ditto.

2003-10-19  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: Add lines for:
	gdb/amd64nbsd-nat.c, gdb/amd64nbsd-tdep.c,
	gdb/i386fbsd-nat.c, gdb/i386fbsd-tdep.c,
	gdb/sparc64fbsd-nat.c, gdb/sparc64bsd-tdep.c.

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

	* amd64fbsd-nat.c (fetch_inferior_registers,
	store_inferior_registers): Remove functions.
	* config/i386/fbsd64.mh (NATDEPFILES): Add amd64bsd-nat.o.

2003-10-18  Mark Kettenis  <kettenis@gnu.org>

	Add NetBSD/amd64 native configuration:
	* x86-64-tdep.h (amd64nbsd_r_reg_offset): Add extern declarations.
	* amd64nbsd-tdep.c: New file.
	* amd64nbsd-nat.c: New file.
	* amd64bsd-nat.c: New file.
	* config/i386/nbsd64.mh: New file.
	* config/i386/nbsd64.mt: New file.
	* configure.host: Add x86_64-*-netbsd*.
	* configure.tgt: Add x86_64-*-netbsd*.
	* Makefile.in (amd64bsd-nat.o, amd64nbsd-nat.o, amd64nbsd-tdep.o):
	New targets.
	* NEWS (New native configurations): Mention NetBSD/amd64.

2003-10-17  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: Remove dead lines for:
	bfd/elf32-i386qnx.c, bfd/elf32-ppcqnx.c, bfd/elf32-shqnx.c,
	bfd/elf32-sh-lin.c, bfd/elf32-sh-nbsd.c, bfd/elf32-sh64-nbsd.c,
	bfd/elf64-alpha-fbsd.c, bfd/elf64-sh64-nbsd.c,
	gdb/alphanbsd-nat.c, gdb/config/i386/tm-i386mk.h,
	gdb/config/i386/tm-i386v42mp.h, gdb/config/i386/xm-i386mach.h,
	gdb/config/i386/xm-i386mk.h, gdb/config/i386/xm-i386v32.h,
	gdb/config/m68k/apollo68v.mh, gdb/config/m68k/nm-apollo68v.h,
	gdb/config/m68k/xm-apollo68v.h, gdb/config/m88k/tm-delta88v4.h,
	gdb/config/mips/tm-bigmips64.h, gdb/config/mips/tm-embed64.h,
	gdb/config/mips/tm-embedl.h, gdb/config/mips/tm-embedl64.h,
	gdb/config/mips/tm-vr4300el.h, gdb/config/mips/tm-vr4xxxel.h,
	gdb/config/mips/tm-vr5000el.h, gdb/config/sparc/tm-sparclet.h,
	gdb/config/sparc/tm-sparclite.h,
	gdb/gdbtk/generic/ChangeLog-2001,
	gdb/gdbtk/library/ChangeLog-2001, gdb/remote-adapt.c,
	gdb/remote-eb.c, gdb/remote-mm.c, gdb/remote-nrom.c,
	gdb/remote-udi.c, gdb/remote-vx29k.c, gdb/remote-vx960.c,
	gdb/sparclet-rom.c, gdb/sparclet-stub.c,
	gdb/testsuite/gdb.mi/mi0-var-block.exp,
	gdb/testsuite/gdb.mi/mi0-var-child.exp,
	gdb/testsuite/gdb.mi/mi0-var-cmd.exp,
	gdb/testsuite/gdb.mi/mi0-var-display.exp,
	itcl/iwidgets3.0.0/demos/extfileselectionbox,
	itcl/iwidgets3.0.0/demos/extfileselectiondialog,
	itcl/iwidgets3.0.0/demos/fileselectionbox,
	itcl/iwidgets3.0.0/demos/fileselectiondialog,
	itcl/iwidgets3.0.0/demos/html/buttonbox.n.html,
	itcl/iwidgets3.0.0/demos/html/canvasprintbox.n.html,
	itcl/iwidgets3.0.0/demos/html/canvasprintdialog.n.html,
	itcl/iwidgets3.0.0/demos/html/combobox.n.html,
	itcl/iwidgets3.0.0/demos/html/dialog.n.html,
	itcl/iwidgets3.0.0/demos/html/dialogshell.n.html,
	itcl/iwidgets3.0.0/demos/html/entryfield.n.html,
	itcl/iwidgets3.0.0/demos/html/feedback.n.html,
	itcl/iwidgets3.0.0/demos/html/fileselectionbox.n.html,
	itcl/iwidgets3.0.0/demos/html/fileselectiondialog.n.html,
	itcl/iwidgets3.0.0/demos/html/hyperhelp.n.html,
	itcl/iwidgets3.0.0/demos/html/iwidgets2.2.0UserCmds.html,
	itcl/iwidgets3.0.0/demos/html/labeledwidget.n.html,
	itcl/iwidgets3.0.0/demos/html/menubar.n.html,
	itcl/iwidgets3.0.0/demos/html/messagedialog.n.html,
	itcl/iwidgets3.0.0/demos/html/notebook.n.html,
	itcl/iwidgets3.0.0/demos/html/optionmenu.n.html,
	itcl/iwidgets3.0.0/demos/html/panedwindow.n.html,
	itcl/iwidgets3.0.0/demos/html/promptdialog.n.html,
	itcl/iwidgets3.0.0/demos/html/pushbutton.n.html,
	itcl/iwidgets3.0.0/demos/html/radiobox.n.html,
	itcl/iwidgets3.0.0/demos/html/scrolledcanvas.n.html,
	itcl/iwidgets3.0.0/demos/html/scrolledframe.n.html,
	itcl/iwidgets3.0.0/demos/html/scrolledhtml.n.html,
	itcl/iwidgets3.0.0/demos/html/scrolledlistbox.n.html,
	itcl/iwidgets3.0.0/demos/html/scrolledtext.n.html,
	itcl/iwidgets3.0.0/demos/html/selectionbox.n.html,
	itcl/iwidgets3.0.0/demos/html/selectiondialog.n.html,
	itcl/iwidgets3.0.0/demos/html/shell.n.html,
	itcl/iwidgets3.0.0/demos/html/spindate.n.html,
	itcl/iwidgets3.0.0/demos/html/spinint.n.html,
	itcl/iwidgets3.0.0/demos/html/spinner.n.html,
	itcl/iwidgets3.0.0/demos/html/spintime.n.html,
	itcl/iwidgets3.0.0/demos/html/tabnotebook.n.html,
	itcl/iwidgets3.0.0/demos/html/tabset.n.html,
	itcl/iwidgets3.0.0/demos/html/toolbar.n.html,
	itcl/iwidgets3.0.0/demos/scrolledcanvas,
	itcl/iwidgets3.0.0/demos/scrolledframe,
	itcl/iwidgets3.0.0/demos/scrolledhtml,
	itcl/iwidgets3.0.0/demos/scrolledlistbox,
	itcl/iwidgets3.0.0/demos/scrolledtext,
	itcl/iwidgets3.0.0/demos/selectionbox,
	itcl/iwidgets3.0.0/demos/selectiondialog,
	itcl/iwidgets3.0.0/doc/canvasprintbox.n,
	itcl/iwidgets3.0.0/doc/canvasprintdialog.n,
	itcl/iwidgets3.0.0/doc/extfileselectionbox.n,
	itcl/iwidgets3.0.0/doc/extfileselectiondialog.n,
	itcl/iwidgets3.0.0/doc/fileselectionbox.n,
	itcl/iwidgets3.0.0/doc/fileselectiondialog.n,
	itcl/iwidgets3.0.0/doc/scopedobject.n.backup,
	itcl/iwidgets3.0.0/doc/scrolledcanvas.n,
	itcl/iwidgets3.0.0/doc/scrolledframe.n,
	itcl/iwidgets3.0.0/doc/scrolledhtml.n,
	itcl/iwidgets3.0.0/doc/scrolledlistbox.n,
	itcl/iwidgets3.0.0/doc/scrolledtext.n,
	itcl/iwidgets3.0.0/doc/selectionbox.n,
	itcl/iwidgets3.0.0/doc/selectiondialog.n,
	itcl/iwidgets3.0.0/generic/canvasprintbox.itk,
	itcl/iwidgets3.0.0/generic/canvasprintdialog.itk,
	itcl/iwidgets3.0.0/generic/extfileselectionbox.itk,
	itcl/iwidgets3.0.0/generic/extfileselectiondialog.itk,
	itcl/iwidgets3.0.0/generic/fileselectionbox.itk,
	itcl/iwidgets3.0.0/generic/fileselectiondialog.itk,
	itcl/iwidgets3.0.0/generic/scrolledcanvas.itk,
	itcl/iwidgets3.0.0/generic/scrolledframe.itk,
	itcl/iwidgets3.0.0/generic/scrolledhtml.itk,
	itcl/iwidgets3.0.0/generic/scrolledlistbox.itk,
	itcl/iwidgets3.0.0/generic/scrolledtext.itk,
	itcl/iwidgets3.0.0/generic/scrolledwidget.itk,
	itcl/iwidgets3.0.0/generic/selectionbox.itk,
	itcl/iwidgets3.0.0/generic/selectiondialog.itk,
	itcl/iwidgets3.0.0/tests/canvasprintbox.test,
	itcl/iwidgets3.0.0/tests/canvasprintdialog.test,
	itcl/iwidgets3.0.0/tests/extfileselectionbox.test,
	itcl/iwidgets3.0.0/tests/extfileselectiondialog.test,
	itcl/iwidgets3.0.0/tests/fileselectionbox.test,
	itcl/iwidgets3.0.0/tests/fileselectiondialog.test,
	itcl/iwidgets3.0.0/tests/scrolledcanvas.test,
	itcl/iwidgets3.0.0/tests/scrolledframe.test,
	itcl/iwidgets3.0.0/tests/scrolledhtml.test,
	itcl/iwidgets3.0.0/tests/scrolledlistbox.test,
	itcl/iwidgets3.0.0/tests/scrolledtext.test,
	itcl/iwidgets3.0.0/tests/selectionbox.test,
	itcl/iwidgets3.0.0/tests/selectiondialog.test,
	itcl/iwidgets3.0.0/unix/iwidgets.tcl.in,
	itcl/iwidgets3.0.0/unix/pkgIndex.tcl.in,
	tix/docs/Release-4.1.0.html, tix/docs/Release-4.1.0.txt,
	tix/docs/Release-4.1a2.html, tix/docs/Release-4.1a2.txt,
	tix/docs/Release-4.1a3.html, tix/docs/Release-4.1a3.txt,
	tix/docs/Release-4.1b1.html, tix/docs/Release-4.1b1.txt,
	tix/docs/Release-4.1b2.html, tix/docs/Release-4.1b2.txt,
	tix/tixConfig.sh.in, tix/unix/tk4.2/pkgIndex.tcl.in,
	tix/unix/tk8.0/pkgIndex.tcl.in, tix/unix/tk8.0/pkgIndex.tcl.in,
	tix/unix/tk8.1/pkgIndex.tcl.in, tix/win/tkConsole41.c,
	tix/win/tkConsole42.c, tix/win/tkConsole80a1.c,
	tix/win/tkConsole80b1.c, tix/win/tkConsole81.c, tk/doc/tk4.0.ps,
	tk/mac/tkMacProjects.sit.hqx.

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

	* target.c (target_section_by_addr): New function.
	(do_xfer_memory): Use "target_section_by_addr".
	* target.h (target_section_by_addr): Declare.

	* target.h (struct target_ops): Add "to_read_partial" and
	"to_write_partial", delete "to_query".
	(target_read_partial, target_write_partial): Declare.
	(target_read, target_write): Declare.
	(target_query): Delete macro.
	* target.c (target_read_partial): New function.
	(target_write_partial, target_read, target_write): New function.
	(update_current_target): Delete inheritance of "to_query".  Add
	comments about "to_read_partial" and "to_write_partial".
	(debug_to_partial_read, debug_to_partial_write): New functions.
	(debug_to_query): Delete function.
	(setup_target_debug): Set "to_read_partial" and "to_write_partial"
	instead of "to_query".
	* remote.c (remote_read_partial): Replace "remote_query".
	(init_remote_ops): Set "to_read_partial" instead of "to_query".
	(init_remote_async_ops): Ditto.
	* kod.c (gdb_kod_query): Make "bufsize" a LONGEST.  Use
	"target_read_partial" instead of "target_query".
	* avr-tdep.c (avr_io_reg_read_command): Make "bufsize" a LONGEST.
	Use "target_read_partial" instead of "target_query".

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

	* frame.h (struct frame_id): Add new field: special_addr.
	(frame_id_build_special): New prototype.
	* frame.c (frame_id_build_special): New function.
	(frame_id_build): Change to call frame_id_build_special().
	(frame_id_eq): Change to also test special_addr field.
	(frame_id_inner): Update comment.

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

	* target.c (update_current_target): Perform the target cleanup.
	Put the target stack beneath the squashed "current_target".
	(add_target): Delete disabled call to "cleanup_target".
	(cleanup_target): Delete function.
	(push_target, unpush_target): Do not call "cleanup_target".

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

	* target.c (target_stack): Change to a static target_ops.
	(update_current_target): Walk the "struct target_ops" stack.
	(pop_target, do_xfer_memory, target_info): Ditto.
	(find_target_beneath): Ditto.
	(push_target): Rewrite to use the "struct target_ops" stack.
	(unpush_target): Ditto.
	* target.h (struct target_stack_item): Delete definition.
	(target_stack): Delete declaration.
	(struct target_ops): Add field "beneath".

2003-10-17  Shrinivas Atre  <shrinivasa@KPITCummins.com>

	* config/h8300/tm-h8300.h (h8300_normal_mode): Add external
	declaration.
	* h8300-tdep.c (BINWORD): Update BINWORD for h8300_normal_mode
        (h8300_examine_prologue): Use h8300_normal_mode flag
        (h8300_gdbarch_init): Set architecture info for normal mode

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

	* remote.c (remote_protocol_vcont): New variable.
	(set_remote_protocol_vcont_packet_cmd): New function.
	(show_remote_protocol_vcont_packet_cmd): New function.
	(init_all_packet_configs): Handle remote_protocol_vcont.
	(remote_vcont_probe): New function.
	(remote_vcont_resume): New function.
	(remote_resume): Use it.
	(remote_async_resume): Call remote_resume.
	(_initialize_remote): Add verbose-resume packet commands.

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

	* infrun.c (handle_inferior_event): Add comment about
	"frame_id_inner" being too weak.

2003-10-16  Elena Zannoni  <ezannoni@redhat.com>

	* minsyms.c (lookup_minimal_symbol_solib_trampoline): Remove
	second parameter, which is always null. Remove
	SOFUN_ADDRESS_MAYBE_MISSING ifdeffed code.
	* symtab.h (lookup_minimal_symbol_solib_trampoline): Update
	accordingly.
	* somsolib.c (som_solib_create_inferior_hook,
	som_solib_desire_dynamic_linker_symbols): Update callers.
	* hppa-tdep.c (hppa_fix_call_dummy): Ditto.

2003-10-16  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* remote-m32r-sdi.c : New file, interface to m32r on-chip
	debug interface, SDI (Scalable Debug Interface).
	* NEWS: Mention m32r SDI protocol was supported.
	* Makefile.in (remote-m32r-sdi.o): Add build rule.
	* config/m32r/m32r.mt (TDEPFILES) : Add remote-m32r-sdi.o.

2003-10-15  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-linux-tdep.c: Include gdbcore.h.
	(IA64_LINUX_SIGCONTEXT_OFFSET): Magic constant removed.
	(ia64_linux_sigcontext_register_addr): Find the address of the
	sigcontext area stored in the sigframe instead of using
	a magic offset constant.

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

	* remote.c (remote_search): Delete function.
	* target.h (target_search): Delete disabled macro.
	(struct target_ops): Delete disabled field "to_search".

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

	* frv-tdep.c (frv_frame_this_id): Call inside_entry_func()
	instead of deprecated_inside_entry_file().

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

	* sh-tdep.c: Fix copy/paste hangover in comment.
	(sh_push_dummy_call_fpu): Accomodate double passing in little endian
	mode.
	(sh3e_sh4_extract_return_value): Ditto.

2003-10-13  Richard Henderson  <rth@redhat.com>

	* f-typeprint.c (f_type_print_base): Handle TYPE_CODE_REF.
	* f-valprint.c (f_val_print): Likewise.  Tweak TYPE_CODE_PTR to
	match c_val_print a bit closer.

2003-10-13  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (max_instrs_per_bundle, frv_instr_size): New constants.
	(frv_gdbarch_adjust_breakpoint_address): New function.
	(frv_gdbarch_init): Initialize ``gdbarch_adjust_breakpoint_address''
	method.

2003-10-13  Kevin Buettner  <kevinb@redhat.com>

	* breakpoint.h (struct breakpoint): Add new member
	``requested_address''.
	* breakpoint.c (breakpoint_adjustment_warning)
	(adjust_breakpoint_address): New static functions.
	(print_it_typical): Issue warning if breakpoint's address is different
	from its requested address.
	(set_raw_breakpoint, set_longjmp_resume_breakpoint, watch_command_1)
	(breakpoint_re_set_one):  Set breakpoint's
	``requested_address'' field.  Set ``address'' field to the
	result of calling adjust_breakpoint_address() on the requested
	address.

2003-10-13  Kevin Buettner  <kevinb@redhat.com>

 	* gdbarch.sh (ADJUST_BREAKPOINT_ADDRESS): New method.
 	* gdbarch.h, gdbarch.c: Regenerate.

2003-10-11  Mark Kettenis  <kettenis@gnu.org>

	* i386bsd-tdep.c (i386bsd_init_abi): Use ARRAY_SIZE to initialize
	TDEP->sc_num_regs.

	* i386fbsd-tdep.c: New file.
	(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
	i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
	i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
	i386bsd-tdep.c.
	(_initialize_i386fbsd_tdep): New function.
	(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
	(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
	TDEP->gregset_num_regs, TDEP->sizeof_gregset and
	TDEP->sizeof_fpregset.  Use ARRAY_SIZE to initialize
	TDEP->sc_num_regs.
	(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
	TDEP->gregset_num_regs and TDEP->sizeof_gregset.  Use ARRAY_SIZE
	to initialize TDEP->sc_num_regs.
	* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
	i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
	i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
	(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
	FreeBSD ELF OS/ABI's here.
	* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
	(i386fbsd-tdep.o): New target.
	* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
	* config/i386/fbsd64.mt (TDEPFILES):  Add i386fbsd-tdep.o.

	* amd64fbsd-tdep.c (amd64fbsd_r_reg_offset): New variable.
	(amd64fbsd_init_abi): Set TDEP->gregset_reg_offset,
	TDEP->gregset_num_regs and TDEP->sizeof_gregset.  Use ARRAY_SIZE
	in initialization of TDEP->sc_num_regs.

	* x86-64-tdep.c (x86_64_regset_from_core_section): New function.
	(x86_64_init_abi): Initialize regset_from_core_section if
	appropriate.

	* i386-tdep.c (i386_regset_from_core_section): New function.
	(i386_gdbarch_init): Initialize regset_from_core_section if
	appropriate.
	* i386-tdep.h (i386_regset_from_core_section): New declaration.

	* i386-tdep.h (struct regset): Declare opaque.

	* gdbarch.sh (regset_from_core_section): New method.
	(struct regset): Declare opaque.
	* gdbarch.c, gdbarch.h: Regenerated.

2003-10-11  Alan Modra  <amodra@bigpond.net.au>

	* hppa-tdep.c (hppa_in_solib_call_trampoline): Don't refer directly to
	_cooked_size and vma;  Use bfd_section_size and bfd_get_section_vma.
	Correct test for pc within section.

2003-10-11  Mark Kettenis  <kettenis@gnu.org>

	* gdbarch.sh: Remove trailing whitepsace from comments.

2003-10-08  Roland McGrath  <roland@redhat.com>

	* gcore.c (make_mem_sec): Function removed, folded into ...
	(gcore_create_callback): ... here.  To omit a section, clear its
	SEC_LOAD bit rather than zeroing its size.
	Omit read-only sections only if they correspond to a known disk file.
	(gcore_copy_callback): Ignore sections without SEC_LOAD flag set.

2003-10-10  Michael Snyder  <msnyder@redhat.com>

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

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

	* rs6000-tdep.c (e500_store_return_value): Delete function.
	(e500_extract_return_value): Delete function.
	(rs6000_gdbarch_init): When SYSV, set "extract_return_value" and
	"restore_return_value" to "ppc_sysv_abi_extract_return_value" and
	"ppc_sysv_abi_restore_return_value" where applicable.
	* ppc-tdep.h: (ppc_sysv_abi_store_return_value): Declare.
	(ppc_sysv_abi_extract_return_value): Declare.
	(ppc_sysv_abi_broken_store_return_value): Declare.
	(ppc_sysv_abi_broken_extract_return_value): Declare.
	(ppc_sysv_abi_broken_use_struct_convention:) Delete declaration.
	* ppc-sysv-tdep.c (return_value_convention): Move definition to
	start of file.
	(do_ppc_sysv_return_value): New function.
	(ppc_sysv_abi_extract_return_value): New function.
	(ppc_sysv_abi_store_return_value): New function.
	(ppc_sysv_abi_broken_extract_return_value): New function.
	(ppc_sysv_abi_broken_store_return_value): New function.
	(ppc_sysv_abi_use_struct_convention): Call
	do_ppc_sysv_return_value.

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

	* blockframe.c (inside_main_func): No longer use symbol_lookup()
	to lookup the main function symbol.

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

	* sh-tdep.c (sh_treat_as_flt_p): New function to recognize float
	types correctly.
	(sh_push_dummy_call_fpu): Fix argument passing rules.
	(sh3e_sh4_extract_return_value): Call sh_treat_as_flt_p to recognize
	float types.
	(sh3e_sh4_store_return_value): Ditto.

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

	* sh-tdep.c (sh_use_struct_convention): Clarify one case in
	comment.

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

	* sh-tdep.c (sh_use_struct_convention): Clean up to have a
	more readable code.  Accomodate passing of bitfields.

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

	* Makefile.in (ppc-sysv-tdep.o): Add $(gdb_assert_h).
	* rs6000-tdep.c (rs6000_gdbarch_init): When 64 bit SysV ABI, set
	push_dummy_call to ppc64_sysv_abi_push_dummy_call.
	* ppc-sysv-tdep.c: Include "gdb_assert.h".
	(ppc64_sysv_abi_push_dummy_call): New function.
	(ppc64_sysv_abi_broken_push_dummy_call): New function.
	* ppc-tdep.h (ppc64_sysv_abi_push_dummy_call): Declare.
	(ppc64_sysv_abi_broken_push_dummy_call): Declare.

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

	* NEWS: Replace "Hitachi" and "Mitsubishi" with "Renesas".
	* README: Ditto.
	* d10v-tdep.c: Ditto.
	* h8300-tdep.c: Ditto.
	* remote-e7000.c: Ditto.
	* remote-hms.c: Ditto.
	* ser-e7kpc.c: Ditto.
	* sh-stub.c: Ditto.
	* sh-tdep.c: Ditto.
	* sh-tdep.h: Ditto.
	* sh3-rom.c: Ditto.
	* sh64-tdep.c: Ditto.
	* top.c: Ditto.
	* wince.c: Ditto.
	* config/d10v/d10v.mt: Ditto.
	* config/sh/embed.mt: Ditto.
	* config/sh/linux.mt: Ditto.
	* config/sh/tm-linux.h: Ditto.
	* config/sh/tm-sh.h: Ditto.
	* config/sh/wince.mt: Ditto.

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

	* ppc-tdep.h (struct type): Declare opaque.
	* x86-64-tdep.h (struct regcache): Declare opaque.
	* sh-tdep.c (sh_do_fp_register): Delete "register" attribute, fix
	coding style.

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

	Changes from 2003-09-09 Jimi Xenidis <jimix@watson.ibm.com>:
	* config/rs6000/tm-rs6000.h (SOFTWARE_SINGLE_STEP): Delete macro.
	(SOFTWARE_SINGLE_STEP_P): Ditto.
	* config/powerpc/tm-ppc-eabi.h (SOFTWARE_SINGLE_STEP_P): Ditto.
	* config/powerpc/tm-linux.h (SOFTWARE_SINGLE_STEP): Ditto.
	(SOFTWARE_SINGLE_STEP_P): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): When AIX, set
	software_single_step to rs6000_software_single_step.

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

	* MAINTAINERS: Mark m32r-elf as buildable with -Werror.

2003-10-09  Michael Snyder  <msnyder@redhat.com>

	* frame.h: Fix typo in comment.
	* dummy-frame.c: Fix typo in comment.
	* d10v-tdep.c: Random whitespace/comment tweaks.

2003-10-09  Elena Zannoni  <ezannoni@redhat.com>

	* sh-tdep.c (sh_gdbarch_init): Delete setting of push_dummy_code.
	(sh_push_dummy_code): Delete function, it's only used for dummy calls
	on stack.

	Based on input by Stephen Clarke (stephen.clarke@superh.com):
	* sh-tdep.c (sh_use_struct_convention): Add comment explaining ABI
	in detail.

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

	* remote-mips.c (mips_initialize): Remove unneeded call to
	get_selected_frame.  Suggested by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.

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

	* dwarf2expr.c (execute_stack_op): Don't treat the frame base as
	a memory pointer.

2003-10-08  Jeff Johnston  <jjohnstn@redhat.com>

	* lin-lwp.c (stop_and_resume_callback): Set the resumed flag
	for any lwp we resume.
	(running_callback): Add lwps that have pending status events
	against them to be considered running.

2003-10-08  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* m32r-tdep.c : Include "dis-asm.h".
	* Makefile.in (m32r-tdep.o): Update dependencies.

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

	* completer.h (get_gdb_completer_word_break_characters): Delete.
	* completer.c: include language.h.
	(gdb_completer_word_break_characters): Delete.
	(get_gdb_completer_word_break_characters): Delete.
	(location_completer): Use the word break characters of the current
	language.
	(complete_line): Likewise.
	(line_completion_function): Likewise.
	(skip_quoted_chars): Likewise.
	* Makefile.in (completer.o): Add dependency on language.h.
	* top.c (init_main): Set the readline word break characters
	to GDB's default word break characters.

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

	* language.h (language_defn): new field, la_word_break_characters.
	* language.c (unknown_language_defn): Set new field to
	default_word_break_characters.
	(auto_language_defn): Likewise.
	(local_language_defn): Likewise.
	* ada-lang.c (ada_language_defn): Likewise.
	* c-lang.c (c_language_defn): Likewise.
	(cplus_language_defn): Likewise.
	(asm_language_defn): Likewise.
	(minimal_language_defn): Likewise.
	* f-lang.c (f_language_defn): Likewise.
	* jv-lang.c (java_language_defn): Likewise.
	* m2-lang.c (m2_language_defn): Likewise.
	* objc-lang.c (objc_language_defn): Likewise.
	* p-lang.c (pascal_language_defn): Likewise.
	* scm-lang.c (scm_language_defn): Likewise.

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

	* ppc-sysv-tdep.c: Re-indent.

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

	* language.h (default_word_break_characters): Add prototype.
	* language.c (default_word_break_characters): New function.

2003-10-06  Andreas Schwab  <schwab@suse.de>

	* i386-tdep.c (i386_analyze_frame_setup): Also handle xorl/subl
	with %eax.

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

	* Makefile.in (ALLDEPFILES): Remove "z8k-tdep.c" and
	"h8500-tdep.c".
	(z8k-tdep.o): Delete custom build rule.

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

	* Makefile.in: Update all dependencies.

	* MAINTAINERS: Mention that h8500, mn10200, and z8k were deleted.
	No longer list PA as as obsolete candidate.  List m32r as
	broken instead of obsolete.

	* config/nm-m3.h, config/h8500/h8500.mt: Delete obsolete files.
	* config/h8500/tm-h8500.h, config/i386/nm-ptx4.h: Ditto.
	* config/i386/nm-symmetry.h, config/i386/ptx.mh: Ditto.
	* config/i386/ptx.mt, config/i386/ptx4.mh: Ditto.
	* config/i386/ptx4.mt, config/i386/symmetry.mh: Ditto.
	* config/i386/symmetry.mt, config/i386/tm-ptx.h: Ditto.
	* config/i386/tm-ptx4.h, config/i386/tm-symmetry.h: Ditto.
	* config/i386/xm-ptx.h, config/i386/xm-ptx4.h: Ditto.
	* config/i386/xm-symmetry.h, config/mips/mipsm3.mh: Ditto.
	* config/mips/mipsm3.mt, config/mips/tm-mipsm3.h: Ditto.
	* config/mips/xm-mipsm3.h, config/mn10200/mn10200.mt: Ditto.
	* config/mn10200/tm-mn10200.h, config/pa/hppabsd.mh: Ditto.
	* config/pa/hppabsd.mt, config/pa/hppaosf.mh: Ditto.
	* config/pa/hppaosf.mt, config/pa/hppapro.mt: Ditto.
	* config/pa/nm-hppab.h, config/pa/nm-hppao.h: Ditto.
	* config/pa/tm-hppab.h, config/pa/tm-hppao.h: Ditto.
	* config/pa/tm-pro.h, config/pa/xm-hppab.h: Ditto.
	* config/pa/xm-pa.h, config/sparc/sparclet.mt: Ditto.
	* config/sparc/sparclite.mt, config/sparc/tm-sparclet.h: Ditto.
	* config/sparc/tm-sparclite.h, config/z8k/tm-z8k.h: Ditto.
	* config/z8k/z8k.mt: Ditto.

	* NEWS: Mention that z8k-zilog-none, z8ksim, mn10200-*-*,
	h8500hms, hppa*-*-bsd*, hppa*-*-osf*, hppa*-*-pro*,
	mips*-*-mach3*, i[3456]86-sequent-sysv4*, i[3456]86-sequent-sysv*,
	i[3456]86-sequent-bsd*, sparclet-*-*, sparclite-fujitsu-none, and
	sparclite were removed.
	* configure.host, configure.tgt: Remove corresponding tuples.

	* breakpoint.c, breakpoint.h: Remove obsolete code.
	* buildsym.c, dbxread.c, gdbtypes.c, mdebugread.c: Ditto.
	* monitor.c, sparc-tdep.c, stabsread.c: Ditto.
	* stabsread.h, xcoffread.c: Ditto.

	* z8k-tdep.c, symm-tdep.c, symm-nat.c: Delete obsolete file.
	* sparclet-stub.c, sparclet-rom.c: Delete obsolete file.
	* sparcl-tdep.c, sparcl-stub.c, h8500-tdep.c: Delete obsolete file.
	* m3-nat.c, mipsm3-nat.c, mn10200-tdep.c: Delete obsolete file.

2003-10-06  David Lecomber  <dsl@sources.redhat.com>

	* f-valprint.c: Reformatting

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

	* x86-64-tdep.c: Remove duplicate comment.

	* x86-64-tdep.c (x86_64_store_return_value): Don't use
	DEPRECATED_REGISTER_RAW_SIZE.  Use symbolic names for register
	names for return values.  This fixes a bug since we looked at %rbx
	instead of %rdx.

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

	* x86-64-tdep.c: Include "regset.h".

	* i386-tdep.h (struct gdbarch_tdep): Add members gregset,
	gregset_reg_offset, gregset_num_regs, sizeof_gregset, fpregset,
	sizeof_fpregset.
	* i386-tdep.c: Include "regset.h".
	(i386_supply_gregset): New function.
	(i386_supply_fpregset): New function.
	(i386_gdbarch_init): Initialze register set-related members of
	TDEP.
	* x86-64-tdep.c (x86_64_supply_fpregset): New function.
	(x86_64_init_abi): Initialize TDEP->sizeof_fpregset.

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

	* rs6000-tdep.c (rs6000_gdbarch_init): When the 64 bit SysV ABI,
	set extract_return_value, store_return_value and
	use_struct_convention to ppc64_sysv_abi_extract_return_value,
	ppc64_sysv_abi_store_return_value and
	ppc64_sysv_abi_use_struct_convention.
	* ppc-tdep.h (ppc64_sysv_abi_extract_return_value): Declare.
	(ppc64_sysv_abi_store_return_value): Declare.
	(ppc64_sysv_abi_use_struct_convention): Declare.
	* ppc-sysv-tdep.c (enum return_value_convention): Define.
	(ppc64_sysv_abi_extract_return_value): New function.
	(ppc64_sysv_abi_store_return_value): New function.
	(ppc64_sysv_abi_use_struct_convention): New function.
	(ppc64_sysv_abi_return_value): New function.

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

	* ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): Only
	convert a descriptor to a function when it's in the ".opd"
	section.

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

	* sh-tdep.c (sh_push_dummy_call_fpu): Initialize flt_argreg and
	reg_size to keep GCC silent.

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

	* dwarf2-frame.c (struct comp_unit): Add tbase member to store
	base for DW_EH_PE_textrel encodings.
	(read_encoded_value): Add a DW_EH_PE_textrel case.
	(dwarf2_build_frame_info): Set unit.tbase to beginning of text
	section.

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

	* dwarf2-frame.c (dwarf2_build_frame_info): Fix comment.

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

	* gdbarch.sh (DEPRECATED_REGISTER_RAW_SIZE): Rename
	REGISTER_RAW_SIZE.
	* gdbarch.h, gdbarch.c: Re-generate.
	* aix-thread.c, alpha-tdep.h, arm-tdep.c, core-sol2.c: Update.
	* cris-tdep.c, dve3900-rom.c, findvar.c, frame.c: Update.
	* hppa-tdep.c, hppab-nat.c, hppah-nat.c, hppam3-nat.c: Update.
	* hpux-thread.c, i386gnu-nat.c, ia64-aix-nat.c: Update.
	* ia64-linux-nat.c, ia64-tdep.c, infcmd.c, infptrace.c: Update.
	* infrun.c, irix5-nat.c, lynx-nat.c, mips-linux-tdep.c: Update.
	* mips-nat.c, mips-tdep.c, mipsv4-nat.c, mn10300-tdep.c: Update.
	* monitor.c, ns32k-tdep.c, ppc-linux-nat.c, regcache.c: Update.
	* remote-e7000.c, remote-mips.c, remote-sim.c: Update.
	* remote-vxmips.c, remote-vxsparc.c, remote.c: Update.
	* rom68k-rom.c, rs6000-nat.c, rs6000-tdep.c, s390-tdep.c: Update.
	* sh64-tdep.c, sparc-nat.c, sparc-tdep.c, stack.c: Update.
	* target.c, tracepoint.c, v850-tdep.c, v850ice.c, valops.c: Update.
	* vax-tdep.c, vax-tdep.h, x86-64-tdep.c, xstormy16-tdep.c: Update.
	* config/m68k/tm-delta68.h, config/m68k/tm-vx68.h: Update.
	* config/sparc/tm-sparc.h, config/sparc/tm-sparclynx.h: Update.

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

	* dwarf2read.c (struct die_info): Doc fix.

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

	* sh-tdep.c: Running thru gdb_indent.sh.

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

	* sh-tdep.c (sh_justify_value_in_reg): New function.
	(sh_stack_allocsize): Ditto.
	(flt_argreg_array): New array used for floating point argument
	passing.
	(sh_init_flt_argreg): New function.
	(sh_next_flt_argreg): Ditto.
	(sh_push_dummy_call_fpu): Simplify. Rename "odd_sized_struct" to
	"pass_on_stack". Use new helper functions.  Accomodate Renesas ABI.
	Fix argument passing strategy.
	(sh_push_dummy_call_nofpu): Ditto.

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

	* value.h (register_value_being_returned): Declare.  Replace
	"value_being_returned".
	* infcall.c (call_function_by_hand): Use
	register_value_being_returned.
	* infcmd.c (print_return_value): Call
	"register_value_being_returned", handle struct return locally.
	* values.c (register_value_being_returned): New function.  Replace
	"value_being_returned".

2003-09-30  Elena Zannoni  <ezannoni@redhat.com>

	* linux-proc.c (linux_do_registers): New function.
	(linux_make_note_section): Use linux_do_registers in case of
	single threaded inferior programs.

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

	* infcall.c (call_function_by_hand): When STRUCT_RETURN, always
	use STRUCT_ADDR.  When not using "struct return convention", pass
	"0" to "value_being_returned".  Add FIXMEs.
	* infcmd.c (print_return_value): Pass an explicit 0/1 to
	value_being_returned.  Add comments.
	* values.c (value_being_returned): Add fixme.
	* hppa-tdep.c (hppa_extract_struct_value_address): Add FIXME.
	(hppa_value_returned_from_stack): Add FIXME.

2003-09-30  David Carlton  <carlton@kealia.com>

	* dwarf2read.c (struct die_info): Add 'parent' field; replace
	'has_children' and 'next' by 'child' and 'sibling'.
	(read_comp_unit): Rework algorithm, breaking body into
	read_die_and_children and read_die_and_siblings.
	(read_die_and_children, read_die_and_siblings): New.
	(read_full_die): Add 'has_children' argument; set it instead of
	the die's 'has_children' field.  Minor formatting cleanup.
	(free_die_list): Use die->child and die->sibling instead of
	die->next.
	(dump_die_list): Ditto.
	(sibling_die): Use die->sibling.
	(psymtab_to_symtab_1): Use die's 'child' field in place of its
	'has_children' and 'next' fields.
	(process_die, read_file_scope, read_func_scope)
	(read_lexical_block_scope, read_structure_scope)
	(read_enumeration, read_array_type, read_common_block)
	(read_namespace, read_subroutine_type, dump_die): Ditto.

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

	* rs6000-tdep.c (rs6000_gdbarch_init): Set the PowerOpen red zone
	to 224, not 220.

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

	* gdbarch.sh (DEPRECATED_REGISTER_VIRTUAL_SIZE): Rename
	REGISTER_VIRTUAL_SIZE.
	* gdbarch.h, gdbarch.c: Regenerate.
	* vax-tdep.h, sparc-tdep.c, regcache.h: Update.
	* regcache.c, mn10300-tdep.c, mips-tdep.c: Update.
	* infcmd.c, frame.c, findvar.c, cris-tdep.c: Update.

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

	* gdbarch.sh (DEPRECATED_REGISTER_VIRTUAL_TYPE): Rename
	REGISTER_VIRTUAL_TYPE.
	* gdbarch.h, gdbarch.c: Regenerate.
	* arch-utils.c,	hppa-tdep.c, regcache.c, regcache.h: Update.
	* sh64-tdep.c, sparc-tdep.c: Update.

	* remote-vxsparc.c (vx_read_register): Replace bzero with memset.
	* remote-vxmips.c (vx_read_register): Ditto.
	* remote-vx68.c (vx_read_register): Ditto.
	* gnu-nat.c (inf_validate_procs): Ditto.

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

	* infcall.c (call_function_by_hand): Fix build failure
	introduced in the previous change to this file.

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

	* NEWS: Mention Objective-C.

2003-09-29  Jerome Guitton  <guitton@act-europe.fr>

	* arm-tdep.c (arm_make_prologue_cache): Use trad_frame_addr_p to
	test if the register has been saved on the stack.
	(arm_scan_prologue_cache): When analysing the instruction
	"str lr, [sp, #-4]", save the address where lr has been stored.

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

	* frame.c (frame_read_unsigned_register): Delete function.
	* frame.h (frame_read_unsigned_register): Delete declaration.
	* sparc-tdep.c (sparc_init_extra_frame_info): Use
	get_frame_register_unsigned.
	(sparc_frame_saved_pc, sparc_pop_frame): Ditto.
	* m68hc11-tdep.c (m68hc11_print_register): Ditto.
	* d10v-tdep.c (d10v_print_registers_info): Ditto.

	* frame.h (frame_read_register): Delete declaration.
	* frame.c (frame_read_register): Delete function.
	* arch-utils.c (legacy_register_to_value): Use get_frame_register.
	* sparc-tdep.c (sparc_fetch_pointer_argument): Ditto.
	* rs6000-tdep.c (rs6000_fetch_pointer_argument): Ditto.
	* mips-tdep.c (mips_register_to_value): Ditto.
	* hppa-tdep.c (hppa_fetch_pointer_argument): Ditto.
	* d10v-tdep.c (d10v_print_registers_info): Ditto.

	* frame.c (frame_read_signed_register): Delete function.
	(frame_read_unsigned_register): Update comments.
	* frame.h (frame_read_signed_register): Delete declaration.
	* h8300-tdep.c (h8300_print_register): Use
	get_frame_register_signed.
	* m68hc11-tdep.c (m68hc11_print_register): Ditto.

	* config/pa/tm-hppa.h (DEPRECATED_VALUE_RETURNED_FROM_STACK):
	Rename VALUE_RETURNED_FROM_STACK.
	* infcmd.c (print_return_value): Update.
	* infcall.c (call_function_by_hand): Update.

2003-09-28  Mark Kettenis  <kettenis@gnu.org>

	* i387-tdep.c (i387_supply_fsave, i387_supply_fxsave): Add
	regcache argument and reverse the order of the other two
	arguments.  Remove local regcache variable.  Determine
	architecture from REGCACHE.  Update comments.
	* x86-64-tdep.c (x86_64_supply_fxsave): Add regcache argument and
	reverse the order of the other two arguments.  Remove local
	regcache variable.  Determine architecture from REGCACHE.  Update
	comments.
	* i387-tdep.h (i387_supply_fsave, i387_supply_fxsave): Adjust
	prototypes.  Update comments.
	* x86-64-tdep.c (x86_64_supply_fxsave): Adjust prototype.  Adjust
	comment.
	* amd64fbsd-nat.c (supply_fpregset, fetch_inferior_registers):
	Update.
	* go32-nat.c (fetch_register, go32_fetch_registers): Update.
	* i386-interix-nat.c (supply_fpregset): Update.
	* i386-linux-nat.c (supply_fpregset, supply_fpxregset): Update.
	* i386-nto-tdep.c (i386nto_supply_fpregset): Update.
	* i386gnu-nat.c (fetch_fpregs, supply_fpregset): Update.
	* i386bsd-nat.c (supply_fpregset, fetch_inferior_registers): Update.
	* i386nbsd-tdep.c (fetch_core_registers, fetch_elfcore_registers):
	Update.
	* i386obsd-tdep.c (fetch_core_registers): Update.
	* i386v4-nat.c (supply_fpregset): Update.
	* x86-64-linux-nat.c (supply_fpregset): Update.
	* x86-64-linux-tdep.c (fetch_core_registers): Update.

2003-09-27  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.h: Put opaque declarations in alphabetical
	order.  Remove spurious whitespace.
	(struct gdbarch_tdep): add st0_regnum and mm0_regnum members.
	(i386_sse_regnum_p, i386_mxcsr_regnum_p): Remove prototypes.
	* i386-tdep.c (MM0_REGNUM): Remove define.
	(i386_mmx_regnum_p): Add gdbarch argument.
	(i386_sse_regnum_p, i386_mxcsr_regnum_p): Add gdbarch argument.
	Rewrite using new macro definitions for FPU/SSE registers.
	(i386_fp_regnum_p, i386_fpc_regnum_p): Rewrite using new macro
	definitions from i387-tdep.h.
	(i386_register_name): Update.
	(i386_stab_reg_to_regnum, i386_dwarf_reg_to_regnum): Update to use
	new macro definitions for FPU/SSE registers.
	(i386_extract_return_value): Determine whether floating-point
	registers are present by examining REGCACHE's architecture.
	(i386_store_return_value): Likewise.  Use I386_MAX_REGISTER_SIZE
	instead of FPU_REG_RAW_SIZE.  Use new macro definitions for
	FPU/SSE registers.
	(i386_register_type): Update.
	(i386_mmx_regnum_to_fp_regnum): Rewrite using new macro
	definitions for FPU registers.  Use REGCACHE's architecture to
	determine the appropriate register numbers.
	(i386_pseudo_register_read, i386_pseudo_register_write,
	i386_register_reggroup_p): Update.
	(i386_gdbarch_init): Initialize TDEP->st0_regnum and
	TDEP->mm0_regnum.
	* i387-tdep.h (I387_FCTRL_REGNUM, I387_FSTAT_REGNUM,
	I387_FTAG_REGNUM, I387_FISEG_REGNUM, I387_FIOFF_REGNUM,
	I387_FOSEG_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM,
	I387_XMM0_REGNUM, I387_MXCSR_REGNUM): New defines.
	(i387_supply_fsave, i387_fill_fsave, i387_supply_fxsave,
	i387_fill_fxsave): Change type of fsave/fxsave argument from `char
	*' to `void *'.
	* i387-tdep.c (i387_print_float_info, fsave_offset, FSAVE_ADDR,
	i387_supply_fsave, i387_fill_fsave, fxsave_offset, FXSAVE_ADDR,
	i387_supply_fxsave, i387_fill_fxsave): Update to use new macro
	definitions for FPU/SSE registers.
	(FXSAVE_MXCSR_ADDR): New define.
	* x86-64-tdep.c (x86_64_init_abi): Override TDEP->st0_regnum and
	TDEP->mm0_regnum.
	(I387_FISEG_REGNUM, I387_FOSEG_REGNUM): Remove defines.
	(I387_ST0_REGNUM): Define.

	* regcache.h (get_regcache_arch): New prototype.
	* regcache.c (get_regcache_arch): New function.

	* x86-64-tdep.c (x86_64_store_return_value): Remove spurious
	whitespace.

	* i386-tdep.c (i386_num_register_names, i386_num_mmx_regs):
	Initialize using ARRAY_SIZE.

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

	* arch-utils.c (deprecated_init_frame_pc_default): Rename
	"init_frame_pc_default".
	* arch-utils.h (deprecated_init_frame_pc_default): Update.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sh64-tdep.c (sh64_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* config/pa/tm-hppa.h (DEPRECATED_INIT_FRAME_PC): Update.

2003-09-26  Mark Kettenis  <kettenis@gnu.org>

	* regset.h: New file.
	* Makefile.in (regset_h): Add.

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

	* frame.h (deprecated_frame_saved_regs): Rename
	get_frame_saved_regs.
	* cris-tdep.c, frame.c, h8300-tdep.c, hppa-tdep.c: Update.
	* mcore-tdep.c, mips-tdep.c, mn10300-tdep.c: Update.
	* ns32k-tdep.c, ppc-linux-tdep.c, rs6000-tdep.c: Update.
	* s390-tdep.c, sh64-tdep.c, stack.c: Update.
	* v850-tdep.c, vax-tdep.c, xstormy16-tdep.c: Update.

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

	* NEWS: Mention the new backtrace mechanism, DWARF 2 CFI, hosted
	file I/O, multi-arch, TLS and NPTL, DWARF 2 Location Expressions,
	and Java.
	* PROBLEMS: Mention that mips*-*-*, powerpc*-*-*, sparc*-*-* and
	arm*-*-* do not use the new frame code.

2003-09-25  David Carlton  <carlton@kealia.com>

	* c-exp.y: Remove 'register' declarations.
	* f-exp.y, jv-exp.y, m2-exp.y, objc-exp.y, p-exp.y: Ditto.

2003-09-25  David Carlton  <carlton@kealia.com>

	* c-exp.y: Include cp-support.h.  Add qualified_type.
	(yylex): Delete nested type hack; add comments.
	* cp-namespace.c (cp_lookup_nested_type): New function.
	* cp-support.h: Declare cp_lookup_nested_type.
	* eval.c (evaluate_subexp_standard): Call value_aggregate_elt
	instead of value_struct_elt_for_reference.
	* valops.c: Include cp-support.h.
	(value_aggregate_elt): New function.
	(value_namespace_elt): Ditto.
	(value_struct_elt_for_reference): Make static.
	* value.h: Delete declaration of value_struct_elt_for_reference;
	add declaration for value_aggregate_elt.
	* Makefile.in (c-exp.tab.o): Depend on $(cp_support_h).
	(valops.o): Ditto.

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

	* stack.c: Include "reggroups.h".
	(frame_info): Only display registers in all_reggroup.
	* Makefile.in (stack.o): Update dependencies.

2003-09-25  Jerome Guitton  <guitton@act-europe.fr>

	* arm-tdep.c (arm_skip_prologue): Handle "sub ip, sp #n" and
	"add ip, sp #n" in the prologue.
	(arm_scan_prologue): Ditto.

2003-09-25  Jerome Guitton  <guitton@act-europe.fr>

	* MAINTAINERS (write after approval): Add myself.

2003-09-25  Andreas Schwab  <schwab@suse.de>

	* m68k-tdep.c: Include "dwarf2-frame.h".
	(m68k_gdbarch_init): Add the DWARF CFI frame unwinder.
	* Makefile.in (m68k-tdep.o): Update dependencies.

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

	* sh-tdep.c (struct frame_extra_info): Remove.
	(struct sh_frame_cache): New structure.
	(GET_SOURCE_REG): New macro extracting source register of an opcode.
	(GET_TARGET_REG): Ditto but target register.
	(GET_PUSHED_REG): Remove.
	(IS_MOV_ARG_TO_REG): New macro.
	(IS_MOV_ARG_TO_IND_R14): New macro.
	(IS_MOV_ARG_TO_IND_R14_WITH_DISP): New macro.
	(IS_MOVW_PCREL_TO_REG): New macro.
	(IS_MOVL_PCREL_TO_REG): New macro.
	(IS_SUB_REG_FROM_SP): New macro.
	(IS_ARG_MOV): Remove.
	(IS_MOV_TO_R14): Remove.
	(IS_RESTORE_FP): New macro.
	(IS_RTS): New macro.
	(IS_LDS): New macro.
	(IS_MOV_FP_SP): New macro.
	(IS_ADD_REG_TO_FP): New macro.
	(IS_ADD_IMM_FP): New macro.
	(sh_skip_prologue_hard_way): Remove.
	(sh_saved_pc_after_call): Remove.
	(sh_frame_chain): Remove.
	(sh_find_callers_reg): Remove.
	(sh_nofp_frame_init_saved_regs): Remove.
	(sh_fp_frame_init_saved_regs): Remove.
	(sh_init_extra_frame_info): Remove.
	(sh_analyze_prologue): New function.
	(sh_skip_prologue): Remove deprecated code.  Rely on new function
	sh_analyze_prologue when after_prologue fails.
	(sh_frame_saved_pc): Remove.
	(sh_alloc_frame_cache): New function.
	(sh_frame_cache): Ditto.
	(sh_frame_prev_register): Ditto.
	(sh_frame_this_id): Ditto.
	(sh_frame_unwind): New structure defining the heuristic frame
	sniffer interface.
	(sh_frame_sniffer): New function.
	(sh_unwind_sp): Ditto.
	(sh_unwind_pc): Ditto.
	(sh_unwind_dummy_id): Ditto.
	(sh_frame_base_address): Ditto.
	(sh_frame_base): New structure defining new frame base code.
	(sh_in_function_epilogue_p): New function.
	(sh_gdbarch_init): Restructure and simplify to eliminate deprecated
	code and to call all new code instead.  Initialize dwarf2 and
	heuristic frame sniffer.

2003-09-24  Paul N. Hilfinger  <hilfingr@nile.gnat.com>

	* parser-defs.h (struct exp_descriptor): New definition, containing
	language-specific info for printing, prefixifying, dumping, and
	evaluating expressions.
	(exp_descriptor_standard): Declare new variable.
	(print_subexp): Make global and declare here (from expprint.c).
	(dump_subexp): Ditto.
	(dump_subexp_body_standard): Declare.
	(operator_length_standard): Declare.
	(op_name_standard): Declare.
	(print_subexp): Declare.
	(print_subexp_standard): Declare.

	* language.h (struct language_defn): Add la_exp_desc field to hold
	pointer to table for language-specific operators.
	Remove evaluate_exp field, which is now in struct exp_descriptor.

	* parse.c (operator_length): Move most code to new
	operator_length_standard function.  Use language-specific information.
	(operator_length_standard): New function taking most code from
	operator_length.
	(exp_descriptor_standard): New constant.

	* expression.h (enum exp_opcode): Add definitions of OP_EXTENDED0
	and OP_EXTENDED_LAST.

	* expprint.c (print_subexp): Use language-specific print_subexp.
	Make global; remove static declaration.
	Move most code to print_subexp_standard.
	(print_subexp_standard): New function, containing code formerly in
	print_subexp.
	(op_name): Add expression to argument signature.
	Use langauge-specific op_name.
	Move most code to op_name_standard.
	(op_name_standard): New function, containing code formerly in op_name.
	(dump_subexp): 	Use new version of op_name function.
	Use language-specific dump_subexp_body, and move most existing code to
	dump_subexp_body_standard.
	(dump_raw_expression): Use new op_name interface.
	(dump_subexp_body): Move most code to dump_subexp_body_standard.
	(dump_subexp_body_standard): New function, containing code formerly
	in dump_subexp_body.

	* language.c (unknown_language): Add default la_exp_desc field and
	remove evaluate_exp field.
	(auto_language): Ditto.
	(local_language): Ditto.
	* f-lang.c (f_language_defn): Ditto.
	* c-lang.c (c_language_defn): Ditto.
	(cplus_language_defn): Ditto.
	(asm_language_defn): Ditto.
	(minimal_language_defn): Ditto.
	* p-lang.c (pascal_language_defn): Ditto.
	* m2-lang.c (m2_language_defn): Ditto.
	* objc-lang.c (objc_language_defn): Ditto.

	* jv-lang.c (exp_descriptor_java): New variable, containing
	Java-specific expression evaluator.
	(java_language_defn): Add la_exp_desc field and remove evaluate_exp
	field.
	* scm-lang.c (exp_descriptor_scm): New variable, containing
	Scheme-specific expression evaluator.
	(scm_language_defn): Add la_exp_desc field and remove evaluate_exp
	field.
	* objc-lang.c (print_object_command): Take evaluate_exp from the
	la_exp_desc field.

	* Makefile.in (eval.o): Add dependency on parser-defs.h.

	* eval.c: Include parser-defs.h for the full declaration of
	la_exp_desc's type.
	(evaluate_subexp): Get evaluate_exp out of la_exp_desc field.

2003-09-23  Paul N. Hilfinger  <hilfingr@nile.gnat.com>

	* parser-defs.h (operator_length): Declare.

	* parse.c (length_of_subexp): Use operator_length to get operator
	lengths and arities for operators.
	Move most code to new operator_length function.
	(operator_length): New function absorbing most code from
	length_of_subexp.
	(prefixify_subexp): Remove large case and use operator_length instead.
	(parse_exp_1): Use renamings:
	dump_prefix_expression => dump_raw_expression and
	dump_postfix_expression => dump_prefix_expression.

	* expression.h (dump_prefix_expression): Rename to ...
	(dump_raw_expression): New name.
	(dump_postfix_expression): Rename to ...
	(dump_prefix_expression): New name.

	* expprint.c (dump_subexp): Make global.  Add comment.
	Move most existing code to dump_subexp_body.
	(dump_subexp_body): New function.
	(dump_prefix_expression): Rename to dump_raw_expression.
	Remove attempt to print the expression via print_expression: it can't
	work before the expression is prefixified.
	(dump_raw_expression): Renamed from dump_prefix_expression.
	(dump_postfix_expression): Rename to dump_prefix_expression, since
	that's what it does.
	Remove 'note' parameter, since this routine must be used on
	prefixified expression.
	(dump_prefix_expression): Renamed from dump_postfix_expression.

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

	* dwarf2read.c (read_array_type): When building the type for an
	array of unspecified length, make sure to choose the upper bound
	so that the array's total length comes out to be zero --- that's
	how we represent such arrays.

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

	* MAINTAINERS: Rename gdb.c++ to gdb.cp.

2003-09-22  Jeff Johnston  <jjohnstn@redhat.com>

	* top.c (quit_force): Fix indirect call to quit_target so
	a struct qt_args pointer is passed.

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

	* arch-utils.h (init_frame_pc_noop): Delete declaration.
	* arch-utils.c (init_frame_pc_noop): Delete function.
	* mn10300-tdep.c (mn10300_gdbarch_init): Do not set
	"init_frame_pc".
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* i386-interix-tdep.c (i386_interix_init_abi): Ditto.
	* config/sparc/tm-sparc.h (init_frame_pc_noop): Delete
	declaration.
	(DEPRECATED_INIT_FRAME_PC): Delete macro.
	* config/rs6000/tm-rs6000.h (init_frame_pc_noop): Delete
	declaration.
	(DEPRECATED_INIT_FRAME_PC): Delete macro.

2003-09-22  Anthony Green  <green@redhat.com>

	* monitor.c (monitor_expect): Delete unused conflicting targ_ops
	declaration.

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

	* breakpoint.c: Eliminate ARGSUSED.
	* buildsym.c, cli/cli-cmds.c, cli/cli-script.c: Ditto.
	* coffread.c, corelow.c, dwarf2read.c, event-top.c: Ditto.
	* exec.c, gcore.c, hpux-thread.c, infcmd.c, inflow.c: Ditto.
	* infrun.c, inftarg.c, maint.c, ocd.c, printcmd.c: Ditto.
	* procfs.c, regcache.c, remote-rdi.c, remote-sds.c: Ditto.
	* remote.c, sol-thread.c, source.c, stabsread.c: Ditto.
	* stack.c, symfile.c, target.c, top.c, typeprint.c: Ditto.
	* utils.c, v850ice.c, valprint.c, values.c, win32-nat.c: Ditto.
	* wince.c, remote-vx.c: Ditto.

	* cli/cli-script.c: Remove "register" attributes.
	* config/pa/tm-hppa.h: Ditto.
	* cli/cli-decode.c: Ditto.
	* cli/cli-cmds.c: Ditto.

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

	* sparcnbsd-nat.c (getregs_supplies): Rename NPC_REGNUM to
	DEPRECATED_NPC_REGNUM.
	* sparc64nbsd-nat.c (getregs_supplies): Ditto.

2003-09-19  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c (mappings): Remove HAVE_SSE conditional.

2003-09-19  Jim Blandy  <jimb@redhat.com>

	* macrotab.c (macro_include): Use the correct comparison to find
	the appropriate place for this inclusion in the list.

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

	* config/pa/nm-hppah.h (NEED_TEXT_START_END): Delete.
	(DEPRECATED_HPUX_TEXT_END): Define.
	(deprecated_hpux_text_end): Declare.
	(struct target_ops): Declare opaque.
	* hppah-nat.c (text_end): Make static.
	(deprecated_hpux_text_end): New function.
	* exec.c (text_end): Delete global variable.
	(NEED_TEXT_START_END): Do not define.
	(exec_file_attach): Replace code computing "text_end" code with
	call to DEPRECATED_HPUX_TEXT_END.

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

	* utils.c (align_up, align_down): New functions.
	* defs.h (align_up, align_down): Declare.
	* ppc-sysv-tdep.c (align_up, align_down): Delete functions.
	* s390-tdep.c: Replace "round_up" and "round_down" with "align_up"
	and "align_down".
	(round_up, round_down): Delete functions.
	* mips-tdep.c: Replace ROUND_UP and ROUND_DOWN with "align_up" and
	"align_down".
	(ROUND_DOWN, ROUND_UP): Delete macros.
	(mips_dump_tdep): Do not print "ROUND_UP" or "ROUND_DOWN".
	* h8300-tdep.c: Replace "round_up" and "round_down" with
	"align_up" and "align_down".
	(round_up, round_down): Delete macros.
	* frv-tdep.c: Replace ROUND_UP and ROUND_DOWN with "align_up" and
	"align_down".
	(ROUND_UP, ROUND_DOWN): Delete macros.

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

	* hppa-hpux-tdep.c (_initialize_hppa_hpux_tdep): Remove a
	hard-coded constant. Use the proper machine name instead.

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

	* sparc-tdep.c (legacy_register_name): Delete function.
	* mips-tdep.c (mips_dump_tdep): Do not print REGISTER_NAME.
	(mips_gdbarch_init): Refer to MIPS_REGISTER_NAME in comments.
	* infcmd.c (gdb_register_name): Delete variable.
	* gdbarch.sh (SDB_REG_TO_REGNUM): Delete reference to
	REGISTER_NAME and "tm.h".
	* gdbarch.h, gdbarch.c: Regenerate.
	* dpx2-nat.c (regmap): Refer to REGISTER_NAME and not
	REGISTER_NAMES in comments.
	* remote-st.c (get_reg_name), i386b-nat.c (tregmap): Ditto.
	* m68klinux-nat.c (regmap): Ditto.

2003-09-17  Jim Blandy  <jimb@redhat.com>

	* Makefile.in (dis_asm_h): Note that this #includes "bfd.h".

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

	* ppcnbsd-tdep.c (ppcnbsd_use_struct_convention): New function.
	(ppcnbsd_init_abi): Set "use_struct_convention" to
	"ppcnbsd_use_struct_convention".

2003-09-17  Mark Kettenis  <kettenis@gnu.org>

	* gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Add comment.
	* gdbarch.h, gdbarch.c: Regenerate.
	(stabs_argument_has_addr): New architecture method.
	* arch-utils.h (default_stabs_argument_has_addr): New prototype.
	* arch-utils.c: Include "buildsym.h".
	(default_stabs_argument_has_addr): New function.
	* stabsread.c (define_symbol): Use stabs_argument_has_addr
	instead of DEPRECATED_REG_STRUCT_HAS_ADDR.

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

	* gdbarch.sh (DEPRECATED_NPC_REGNUM): Deprecate NPC_REGNUM.
	* gdbarch.h, gdbarch.c: Regenerate.
	* core-sol2.c, hppa-tdep.c, lynx-nat.c, procfs.c: Update.
	* regcache.c, remote-vxsparc.c, sparc-linux-nat.c: Update.
	* sparc-nat.c, sparc-tdep.c, sparc64-tdep.c: Update.
	* sparcnbsd-tdep.c: Update.

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

	* gdbarch.sh (DEPRECATED_REGISTER_BYTE): Rename REGISTER_BYTE.
	* gdbarch.h, gdbarch.c: Regenerate.
	* arm-linux-tdep.c, core-sol2.c, cris-tdep.c: Update.
	* d10v-tdep.c, frame.c: Update.
	* hppa-tdep.c, hppab-nat.c, hppah-nat.c, hppam3-nat.c: Update.
	* hpux-thread.c, i386gnu-nat.c, ia64-aix-nat.c: Update.
	* ia64-linux-nat.c, irix5-nat.c, lynx-nat.c, m68knbsd-nat.c: Update.
	* mcore-tdep.c, mips-linux-tdep.c, mips-tdep.c: Update.
	* mipsv4-nat.c, mn10300-tdep.c, ns32k-tdep.c: Update.
	* ns32knbsd-nat.c, ppc-bdm.c, regcache.c, remote-sds.c: Update.
	* remote-vx68.c, remote-vxmips.c, remote-vxsparc.c: Update.
	* remote.c, rs6000-tdep.c, s390-tdep.c, sh64-tdep.c: Update.
	* sparc-nat.c, sparc-tdep.c, sun3-nat.c, v850-tdep.c: Update.
	* v850ice.c, vax-tdep.c, xstormy16-tdep.c: Update.
	* config/m68k/tm-cisco.h, config/m68k/tm-delta68.h: Update.
	* config/pa/nm-hppah.h: Update.

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

	* ppc-linux-tdep.c (ppc_linux_init_abi): Set the 32 bit
	"use_struct_convention" to "ppc_linux_use_struct_convention".
	(ppc_linux_use_struct_convention): New function.
	* rs6000-tdep.c (rs6000_use_struct_convention): New function.
	(rs6000_gdbarch_init): For AIX, set "use_struct_convention" to
	"rs6000_use_struct_convention".
	* ppc-tdep.h (ppc_sysv_abi_broken_use_struct_convention): Delete
	declaration.
	* ppc-sysv-tdep.c (ppc_sysv_abi_broken_use_struct_convention):
	Delete function.

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

	* buildsym.c: Remove more occurances of "register".
	* coffread.c, dbxread.c, dcache.c, dwarf2read.c: Ditto.
	* environ.c, eval.c, f-valprint.c, findvar.c: Ditto.
	* gdbtypes.c, gnu-v2-abi.c, h8300-tdep.c, hppa-tdep.c: Ditto.
	* infcmd.c, mdebugread.c, minsyms.c, mips-tdep.c: Ditto.
	* printcmd.c, remote-vx.c, sh-stub.c, sh-tdep.c: Ditto.
	* sh64-tdep.c, source.c, stabsread.c, stack.c: Ditto.
	* standalone.c, symfile.c, symmisc.c, symtab.c: Ditto.
	* utils.c, valops.c, values.c, xcoffread.c: Ditto.

2003-09-16  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.h (struct gdbarch_tdep): Remove.  Change all register
	numbers to enumeration values.
	* sh-tdep.c: Accomodate above change.
	(SH_NUM_REGS): Rename from SH_DEFAULT_NUM_REGS.
	(NUM_PSEUDO_REGS_SH_MEDIA): Remove (sh5 only).
	(NUM_PSEUDO_REGS_SH_COMPACT): Remove (sh5 only).
	(IS_ADD_IMM_SP): Rename from IS_ADD_SP.
	(IS_FPUSH): Rename from IS_FMOV.
	(sh_extract_struct_value_address): Remove useless comment.
	(sh_dsp_register_sim_regno): Use register values from sh-tdep.h
	instead of own local values.
	(sh_dump_tdep): Remove.
	(_initialize_sh_tdep): Accomodate removing sh_dump_tdep.
	* sh3-rom.c (sh3_supply_register): Accomodate sh-tdep.h changes.

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

	* doublest.c (convert_floatformat_to_doublest): No longer need to
	cast "exp_bias" to an int.  Reverts 2002-12-04 change.

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

	* values.c (unpack_double): Call floatformat_is_valid.

2003-09-15  Mark Kettenis  <kettenis@gnu.org>

	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Change type of
	ps_strings into a long.

	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Rename from
	_initialize_am64fbsd_nat.

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

	* dwarf2read.c (dwarf2_get_pc_bounds): Complain if offset
	associated with DW_AT_ranges attribute is out of bounds.

2003-09-15  David Lecomber  <dsl@sources.redhat.com>

	* f-valprint.c: Apply array element printing limits to multi-dimensional arrays

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

	* config/m68k/nm-apollo68v.h: Delete.
	* config/m68k/xm-apollo68v.h: Delete.

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

	* rs6000-tdep.c (rs6000_push_dummy_call): Fix typos.
	* dcache.c: Update copyrights and descriptions.
	* scm-exp.c, ia64-aix-nat.c, hppam3-nat.c: environ.c: Ditto.

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

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

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

	* alpha-nat.c: Remove some occurances of "register".
	* alpha-tdep.c, arm-tdep.c, blockframe.c, breakpoint.c: Ditto.
	* buildsym.c, c-typeprint.c, c-valprint.c, coffread.c: Ditto.
	* corefile.c, cp-support.c, cp-valprint.c, cris-tdep.c: Ditto.
	* dbxread.c, dcache.c, dwarf2read.c, elfread.c: Ditto.
	* environ.c, eval.c, event-top.c, f-typeprint.c: Ditto.
	* f-valprint.c, findvar.c, frame.c, gdbtypes.c: Ditto.
	* h8300-tdep.c, hppa-tdep.c, hppab-nat.c, hppah-nat.c: Ditto.
	* hppam3-nat.c, hpread.c, ia64-aix-nat.c, ia64-linux-nat.c: Ditto.
	* infcall.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Ditto.
	* infttrace.c, irix5-nat.c, jv-typeprint.c: Ditto.
	* jv-valprint.c, m68k-tdep.c, m68klinux-nat.c, main.c: Ditto.
	* mdebugread.c, minsyms.c, mips-linux-tdep.c: Ditto.
	* mips-nat.c, mips-tdep.c, mipsread.c, mipsv4-nat.c: Ditto.
	* ns32k-tdep.c, objfiles.c, p-typeprint.c: Ditto.
	* p-valprint.c, ppc-linux-nat.c, printcmd.c: Ditto.
	* remote-mips.c, remote-vx.c, rs6000-nat.c: Ditto.
	* rs6000-tdep.c, scm-exp.c, sh-tdep.c, sh64-tdep.c: Ditto.
	* solib.c, somread.c, source.c, sparc-tdep.c: Ditto.
	* stabsread.c, stack.c, standalone.c, symfile.c: Ditto.
	* symmisc.c, symtab.c, top.c, tracepoint.c: Ditto.
	* typeprint.c, utils.c, valarith.c, valops.c: Ditto.
	* values.c, vax-tdep.c, xcoffread.c: Ditto.

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

	* config/pa/tm-hppa64.h (struct frame_info): Declare opaque.
	* ppc-tdep.h (struct regcache): Declare opaque.
	* objfiles.h (struct objfile_data): Declare opaque.
	* cp-support.h (struct objfile): Declare opaque.
	* linux-nat.h (target_waitstatus): Declare opaque.

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

	* gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Add comment.
	(stabs_argument_has_addr): New architecture method.
	* arch-utils.h (default_stabs_argument_has_addr): New prototype.
	* arch-utils.c: Include "buildsym.h".
	(default_stabs_argument_has_addr): New function.
	* stabsread.c (define_symbol): Use stabs_argument_has_addr
	instead of DEPRECATED_REG_STRUCT_HAS_ADDR.

	* cris-tdep.c (cris_gdbarch_init): Set
	deprecated_reg_struct_has_addr instead of reg_struct_has_addr.
	* hppa-tdep.c (hppa_gdbarch_init): Likewise.
	* mcore-tdep.c (mcore_gdbarch_init): Likewise.
	* mips-tdep.c (mips_gdbarch_init): Likewise.
	* mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
	* sparc-tdep.c (sparc_gdbarch_init): Likewise.

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

	* values.c (using_struct_return): Delete "function" and "funcaddr"
	parameters.
	* value.h (using_struct_return): Update declaration.
	* infcmd.c (finish_command_continuation): Update.
	(finish_command): Update.
	* infcall.c (call_function_by_hand): Update.
	* eval.c (evaluate_subexp_standard): Update.

2003-09-13  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c: Just rely on CONTEXT_EXTENDED_REGISTER being defined for
	SSE registers since gdb will not operate correctly without this.
	Restore include file ordering munged in previous change.
	* config/i386/tm-cygwin.h: Remove HAVE_SSE_REGS define.

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

	* gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Renamed from
	REG_STRUCT_HAS_ADDR.
	* gdbarch.c, gdbarch.h: Updated.
	* infcall.c (call_function_by_hand): Update.
	* stabsread.c (define_symbol): Updated.

	* Makefile.in (xm-i386-sv32.h, tm-i386gas.h): Remove.

2003-09-12  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c: Reorganize so that defines used by target headers are
	actually defined by the system headers.
	* config/i386/tm-cygwin.h: Check for CONTEXT_EXTENDED_REGISTERS rather
	than HAVE_CONTEXT_EXTENDED_REGISTERS, since the latter actually exists.

2003-09-12  Jim Blandy  <jimb@redhat.com>

	* dbxread.c (read_dbx_symtab): Don't report an internal error if
	the file has no .data, .bss, or .rodata sections.  Instead wait
	until we see a variable alleged to live in one of those sections.

	* dbxread.c (read_dbx_symtab): If we have no .data section and no
	.bss section, presume that any variables we find live in the
	.rodata section.

	* dbxread.c (read_dbx_symtab): Add FIXME about finding section
	offsets for global and static variables.

	* dbxread.c (read_dbx_symtab): The N_DATA and N_DATA | N_EXT
	symbol types are, by definition, in the .data section, so it is
	correct to use SECT_OFF_DATA (objfile) here, not data_sect_index.
	If there is no .data section, there should be no N_DATA or N_DATA
	| N_EXT symbols.

2003-09-12  Mark Kettenis  <kettenis@gnu.org>

	* amd64fbsd-tdep.c: Fix sigtramp recognition.
	(amd64fbsd_sigcontext_addr): Rewrite.
	(amd64fbsd_sigtramp_start, amd64fbsd_sigtramp_end): Initialize
	with correct values.
	(amd64fbsd_sc_reg_offset): Initialize with correct values.
	(amd64fbsd_init_abi): Fix typo.

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

	* ppc-sysv-tdep.c (align_up, align_down): Replace "round2" macro.
	(ppc_sysv_abi_push_dummy_call): Rewrite, use a two pass loop.

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

	* objfiles.h (struct entry_info): Deprecate "entry_file_lowpc" and
	"entry_file_highpc".  Update comments.
	* defs.h (deprecated_inside_entry_file): Rename
	"inside_entry_file".
	* blockframe.c (deprecated_inside_entry_file): Rename
	"inside_entry_file".
	* frame.c (get_prev_frame): Update.  Use if 0 instead of #if 0.
	* vax-tdep.c (vax_frame_chain): Update.
	* sh64-tdep.c (sh64_frame_chain): Update.
	* sh-tdep.c (sh_frame_chain): Update.
	* rs6000-tdep.c (rs6000_frame_chain): Update.
	* ns32k-tdep.c (ns32k_frame_chain): Update.
	* mips-tdep.c (mips_frame_chain): Update.
	* m68hc11-tdep.c (m68hc11_frame_this_id): Update.
	* m32r-tdep.c (m32r_frame_this_id): Update.
	* i386-interix-tdep.c (i386_interix_frame_chain_valid): Update.
	* frv-tdep.c (frv_frame_this_id): Update.
	* d10v-tdep.c (d10v_frame_this_id): Update.
	* cris-tdep.c (cris_frame_chain): Update.
	* blockframe.c (legacy_frame_chain_valid): Update.
	* avr-tdep.c (avr_frame_this_id): Update.
	* arm-tdep.c (arm_prologue_this_id): Update.
	* alpha-tdep.c (alpha_heuristic_frame_this_id): Update.
	* objfiles.c (objfile_relocate): Update.
	* mipsread.c (mipscoff_symfile_read): Update.
	(mipscoff_symfile_read): Update.
	* mdebugread.c (parse_partial_symbols): Update.
	* dwarfread.c (read_file_scope): Update.
	* dwarf2read.c (read_file_scope): Update.
	* dbxread.c (read_dbx_symtab): Update.
	(read_dbx_symtab): Update.
	* coffread.c (complete_symtab): Update.

2003-09-12  Jeff Johnston  <jjohnstn@redhat.com>

	* top.c (quit_target): New static helper function.
	(quit_force): Moved code to quit_target().  Call quit_target()
	via catch_errors() to catch errors during quit.

2003-09-11  David Carlton  <carlton@kealia.com>

	* buildsym.c (finish_block): Use allocate_block to allocate the
	block.
	* mdebugread.c (new_block): Add FIXME.

2003-09-11  David Carlton  <carlton@kealia.com>

	* gdbtypes.h: Add TYPE_CODE_NAMESPACE.
	* gdbtypes.c (init_type): Handle TYPE_CODE_NAMESPACE.
	(recursive_dump_type): Ditto.
	* printcmd.c (print_formatted): Ditto.
	* typeprint.c (print_type_scalar): Ditto.
	* c-typeprint.c (c_type_print_varspec_prefix): Ditto.
	(c_type_print_varspec_suffix, c_type_print_base): Ditto.
	* cp-support.h: Declare cp_check_possible_namespace_symbols,
	maint_cplus_cmd_list.
	* cp-support.c: Make maint_cplus_cmd_list extern.
	* cp-namespace.c: Include objfiles.h, gdbtypes.h, dictionary.h,
	command.h.
	(lookup_symbol_file): Look in possible namespace blocks when
	appropriate.
	(initialize_namespace_symtab): New.
	(get_possible_namespace_block, free_namespace_block)
	(check_possible_namespace_symbols)
	(check_possible_namespace_symbols_loop)
	(check_one_possible_namespace_symbol)
	(lookup_possible_namespace_symbol, maintenance_cplus_namespace)
	(_initialize_cp_namespace): Ditto.
	* block.h: Declare allocate_block.
	* block.c (allocate_block): New.
	* jv-lang.c (get_java_class_symtab): Allocate blocks via
	allocate_block.
	* symfile.h: Update declaration of add_psymbol_to_list.
	* symfile.c (add_psymbol_to_list): Return the partial symbol in
	question.
	* dwarf2read.c (dwarf2_build_psymtabs_hard): Add argument to
	scan_partial_symbols_call.
	(scan_partial_symbols): Add NAMESPACE argument; update calls to
	helper functions.
	(add_partial_symbol): If necessary, scan mangled names for names
	of namespaces.
	(add_partial_namespace): Add NAMESPACE argument; generate partial
	symbols associated  to namespaces.
	(add_partial_enumeration): Add NAMESPACE argument.
	(new_symbol): Allow namespace syms.
	(read_namespace): Generate namespace syms.
	* objfiles.h: Add opaque declaration of struct symtab.
	(struct objfile): Add cp_namespace_symtab member.
	* objfiles.c (allocate_objfile): Set
	objfile->cp_namespace_symtab.
	* Makefile.in (cp-namespace.o): Depend on objfiles_h, gdbtypes_h,
	dictionary_h, command_h.

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

	* rs6000-tdep.c (rs6000_push_dummy_call): Use
	regcache_raw_write_signed to set SP_REGNUM, move the operation to
	near the function's end.
	(rs6000_gdbarch_init): Do not set "deprecated_dummy_write_sp".
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Use
	regcache_raw_write_signed to set SP_REGNUM.

2003-09-11  Elena Zannoni  <ezannoni@redhat.com>

	* symfile.c (symbol_file_add_with_addrs_or_offsets): Make sure
	orig_addrs is set up properly.

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

	* gdbarch.sh (DEPRECATED_STACK_ALIGN): Rename STACK_ALIGN.
	* gdbarch.h, gdbarch.c: Re-generate.
	* infcall.c (call_function_by_hand): Update.
	* hppa-tdep.c (hppa_push_arguments): Update.
	* ada-lang.c (place_on_stack): Update.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Delete comment refering to
	stack_align.

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

	* dwarf2loc.c (dwarf2_loc_desc_needs_frame): Variables in a
	register do need a frame.

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

	Since the IRIX 4 configuration was forcing K&R mode it hasn't been
	buildable since GDB 5.0.
	* NEWS: Mention that IRIX 3 and IRIX 4 support were removed.
	* configure.host: Delete "mips-sgi-irix3*" and "mips-sgi-irix4*".
	* configure.tgt: Delete "mips*-sgi-*" a.k.a. irix3.
	* irix4-nat.c: Delete file.
	* config/mips/irix4.mh: Delete file.
	* config/mips/irix3.mh: Delete file.
	* config/mips/irix3.mt: Delete file.
	* config/mips/tm-irix3.h: Delete file.
	* config/mips/nm-irix3.h: Delete file.
	* config/mips/xm-irix3.h: Delete file.
	* config/mips/nm-irix4.h: Delete file.
	* config/mips/xm-irix4.h: Delete file.
	* config/mips/tm-irix5.h: Inline contents of "tm-irix3.h".

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

	* hppa-tdep.c: Include "dis-asm.h". Fixes a build failure.
	* Makefile.in (hppa-tdep.o): Update dependencies.

2003-09-10  James E Wilson  <wilson@specifixinc.com>

	* MAINTAINERS: Change my e-mail address.  Move to paper trail
	section.

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

	* MAINTAINERS (frv): New ISA entry.

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

	* frv-tdep.c (dis-asm.h): Include.
	* Makefile.in (frv-tdep.o): Update dependencies.

2003-09-09  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c (ia64_sigtramp_frame_init_saved_regs):
	Fix typo for high range of floating registers.

2003-09-09  David Carlton  <carlton@kealia.com>

	* dwarf2read.c (dwarf2_build_psymtabs_hard): Move lowpc and
	highpc initialization here out of scan_partial_symbols.
	(scan_partial_symbols): Restructure into a recursive version,
	calling add_partial_namespace and add_partial_enumeration when
	appropriate.
	(add_partial_namespace): New.
	(add_partial_enumeration, locate_pdi_sibling): Ditto.

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

	* rs6000-tdep.c (ppc_push_return_address): Delete function.
	(rs6000_push_dummy_call): Set LR to BP_ADDR.
	(rs6000_gdbarch_init): Do not set deprecated_push_return_address.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Ditto.

	* rs6000-tdep.c (rs6000_fix_call_dummy): Delete function.
	(rs6000_push_dummy_call): Set the "TOC" register.

	* rs6000-tdep.c (rs6000_gdbarch_init): Do not set the deprecated
	methods "max_register_raw_size", "max_register_virtual_size" or
	"register_virtual_size".

2003-09-09  Ian Lance Taylor  <ian@wasabisystems.com>

	* MAINTAINERS: Update my e-mail address.

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

	* rs6000-tdep.c (rs6000_store_struct_return): Delete function.
	(rs6000_push_dummy_call): Store the struct return address.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Ditto.

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

	* ppc-tdep.h (ppc_sysv_abi_push_dummy_call): Replace
	"ppc_sysv_abi_push_arguments".
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Replace
	"ppc_sysv_abi_push_arguments".
	* rs6000-tdep.c (rs6000_gdbarch_init): Set "push_dummy_call"
	instead of "push_arguments".
	(rs6000_push_dummy_call): Replace "rs6000_push_arguments".

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

	* sh64-tdep.c (sh64_push_return_address): Use ENTRY_POINT_ADDRESS
	instead of CALL_DUMMY_ADDRESS.

2003-09-09  Paul N. Hilfinger  <hilfingr@gnat.com>

	* p-lang.c: Eliminate "register".
	* c-lang.c: Ditto.
	* expprint.c: Ditto.
	* f-lang.c: Ditto.
	* jv-lang.c: Ditto.
	* language.c: Ditto.
	* m2-lang.c: Ditto.
	* parse.c: Ditto.
	* scm-lang.c: Ditto.
	* objc-lang.c: Ditto.

2003-09-09  Nick Clifton  <nickc@redhat.com>

	* v850-tdep.c (v850_processor_type_table): Add bfd_mach_v850e1.

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

	* avr-tdep.c: Include "dis-asm.h".
	* cris-tdep.c: Include "dis-asm.h".
	(cris_delayed_get_disassembler): Use "struct disassemble_info"
	instead of corresponding typedef.
	* h8300-tdep.c: Include "dis-asm.h".
	* ia64-tdep.c: Include "dis-asm.h".
	* i386-tdep.c: Include "dis-asm.h".
	(i386_print_insn): Use "struct disassemble_info" instead of
	corresponding typedef.
	* m68k-tdep.c: Include "dis-asm.h".
	* mcore-tdep.c: Include "dis-asm.h".
	* mips-tdep.c: Include "dis-asm.h".
	(gdb_print_insn_mips): Make static, use "struct disassemble_info"
	instead of corresponding typedef.
	* ns32k-tdep.c: Include "dis-asm.h".
	* s390-tdep.c: Include "dis-asm.h".
	* sparc-tdep.c: Include "dis-asm.h".
	* vax-tdep.c: Include "dis-asm.h".
	* v850-tdep.c: Include "dis-asm.h".
	* mn10300-tdep.c: Include "dis-asm.h".
	* rs6000-tdep.c: Include "dis-asm.h".
	* xstormy16-tdep.c: Include "dis-asm.h".
	(_initialize_xstormy16_tdep): Delete "extern" declaration of
	print_insn_xstormy16.
	* Makefile.in (v850-tdep.o): Update dependencies.
	(vax-tdep.o, sparc-tdep.o, s390-tdep.o): Ditto.
	(ns32k-tdep.o, mips-tdep.o, mcore-tdep.o): Ditto.
	(m68k-tdep.o, ia64-tdep.o, i386-tdep.o): Ditto.
	(h8300-tdep.o, cris-tdep.o, avr-tdep.o): Ditto.
	(mn10300-tdep.o, xstormy16-tdep.o, disasm.o): Ditto.
	(gdbarch_h): Remove $(dis_asm_h).
	* disasm.c: Include "dis-asm.h".
	(dis_asm_read_memory): Use "struct disassemble_info" instead of
	corresponding typedef.
	(dis_asm_memory_error, dump_insns, do_assembly_only): Ditto.
	(gdb_disassemble_info, gdb_disassembly, gdb_print_insn): Ditto.
	* gdbarch.sh: Do not include "dis-asm.h".
	(struct disassemble_info): Declare opaque.
	(TARGET_PRINT_INSN): Update declaration.
	* gdbarch.h, gdbarch.c: Re-generate.

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

	* gdbarch.sh (DEPRECATED_CALL_DUMMY_ADDRESS): Rename
	CALL_DUMMY_ADDRESS, change to a predicate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* blockframe.c (deprecated_pc_in_call_dummy_at_entry_point):
	Use either DEPRECATED_CALL_DUMMY_ADDRESS or entry_point_address.
	* infcall.c (call_function_by_hand): Ditto.
	* sparc-tdep.c (sparc_push_return_address): Ditto.
	(sparc_gdbarch_init): Set deprecated_call_dummy_address.
	* xstormy16-tdep.c (xstormy16_push_return_address): Replace
	CALL_DUMMY_ADDRESS with entry_point_address.
	* v850-tdep.c (v850_push_return_address): Ditto.
	* s390-tdep.c (s390_push_return_address): Ditto.
	* rs6000-tdep.c (ppc_push_return_address): Ditto.
	* mn10300-tdep.c (mn10300_push_return_address): Ditto.
	* mcore-tdep.c (mcore_push_return_address): Ditto.
	* cris-tdep.c (cris_push_return_address): Ditto.
	* arm-tdep.c (arm_push_return_address): Ditto.

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

	* dwarf2-frame.c (enum dwarf2_reg_rule): New, replace anonymous
	enum.  Add REG_UNSPECIFIED, rename REG_UNSAVED to REG_UNDEFINED
	and REG_UNMODIFIED to REG_SAME_VALUE.
	(execute_cfa_program): Update.
	(dwarf2_frame_cache): Update.  Initialize table to
	REG_UNSPECIFIED, complain if CFI fails to specify a register's
	location.
	(dwarf2_frame_prev_register): Update.  Handle REG_UNSPECIFIED.

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

	* gnu-nat.c: Remove "inline" function attribute.
	* alpha-tdep.c, ppc-linux-tdep.c, macroexp.c: Ditto.

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

	* config/frv/frv.mt (SIM_OBS, SIM): Enable simulator for FR-V
	target.

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

	* frv-tdep.c (frame-unwind.h, frame-base.h): Include.
	(frame_extra_info): Rename this struct to frv_unwind_cache.
	Delete fields ``fp_to_callers_sp_offset'' and ``lr_saved_on_stack''.
	Add fields ``prev_sp'' and ``base''.
	(frv_frame_chain, frv_frame_saved_pc, frv_frame_init_saved_regs)
	(frv_saved_pc_after_call, frv_init_extra_frame_info)
	(frv_push_return_address, frv_pop_frame, frv_pop_frame_regular):
	Delete.
	(frv_analyze_prologue): Add ``struct frv_unwind_cache *'' argument.
	Revise all callers.  Fill in the unwind cache argument and make
	other adjustments to account for new frame mechanisms.
	(frv_frame_unwind_cache, frv_frame_align, frv_unwind_pc)
	(frv_frame_this_id, frv_frame_prev_register, frv_frame_sniffer)
	(frv_frame_base_address, frv_unwind_dummy_id): New functions.
	(frv_frame_unwind, frv_frame_base): New structs.
	(frv_push_arguments): Change name to frv_push_dummy_call().  Add
	additional arguments expected by this method and adjust function
	body accordingly.
	(frv_gdbarch_init): Remove calls to the following functions:
	set_gdbarch_deprecated_init_frame_pc(),
	set_gdbarch_deprecated_saved_pc_after_call(),
	set_gdbarch_deprecated_frame_chain(),
	set_gdbarch_deprecated_frame_saved_pc(),
	set_gdbarch_deprecated_frame_init_saved_regs(),
	set_gdbarch_deprecated_push_arguments(),
	set_gdbarch_deprecated_push_return_address(),
	set_gdbarch_deprecated_pop_frame(),
	set_gdbarch_deprecated_call_dummy_words(),
	set_gdbarch_deprecated_sizeof_call_dummy_words(),
	set_gdbarch_deprecated_init_extra_frame_info(),
	set_gdbarch_deprecated_dummy_write_sp(), and
	set_gdbarch_deprecated_pc_in_call_dummy().
	Add calls to the following functions:
	set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(),
	set_gdbarch_frame_align(), frame_unwind_append_sniffer(), and
	frame_base_set_default().
	* Makefile.in (frv-tdep.o): Update dependencies.

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

	* dwarf2-frame.c (read_encoded_value): Add support for
	DW_EH_PE_aligned encoding.

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

	* infrun.c (normal_stop): Don't print a message if the inferior
	has exited.

2003-09-08  Jim Blandy  <jimb@redhat.com>

	* Makefile.in (dbxread.o): Note new dependency on $(gdb_assert_h).
	* dbxread.c: #include "gdb_assert.h".
	(read_dbx_symtab): If the objfile has no .data section, use the
	section index for the .bss section instead.

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

	* frame.c (deprecated_safe_get_selected_frame): New function.
	* frame.h (deprecated_safe_get_selected_frame): Add prototype.
	* findvar.c (read_var_value): Call it.

2003-09-08  Corinna Vinschen  <vinschen@redhat.com>

	* Makefile.in (ALLDEPFILES): Add sh64-tdep.c.
	(sh64-tdep.o): Add dependencies.
	* configure.tgt: Add FIXME to sh-*-linux*.
	* sh-tdep.c: Move sh64 support to sh64-tdep.c.
	(sh_gdbarch_init): Always set correct sh_show_regs function
	pointer.  Call sh64_gdbarch_init() if machine type is sh5.
	* sh-tdep.h: Move sh64 support to sh64-tdep.c.
	* sh64-tdep.c: New file, containing all sh64 related code from
	sh-tdep.c.
	* config/sh/embed.mt (TDEPFILES): Add sh64-tdep.o.
	* config/sh/linux.mt (TDEPFILES): Ditto.
	* config/sh/nbsd.mt (TDEPFILES): Ditto.
	* config/sh/tm-sh.h: Drop REGISTER_TYPE definition.
	* config/sh/wince.mt (TDEPFILES): Ditto.

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

	* lin-lwp.c (detach_callback): Don't call stop_wait_callback.
	(stop_wait_callback): Handle !lp->signalled also.
	(lin_lwp_has_pending, flush_callback): New functions.
	(lin_lwp_wait): Call flush_callback.
	* linux-proc.c (linux_proc_add_line_to_sigset): New function.
	(linux_proc_pending_signals): New function.
	* linux-nat.h (linux_proc_pending_signals): Add prototype.

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

	From Nick Kelsey <nickk@ubicom.com>:
	* infrun.c (handle_inferior_event): Check IN_SOLIB_RETURN_TRAMPOLINE
	when the stop PC is at the beginning of a function also.

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

	* arm-linux-tdep.c (arm_linux_arm_be_breakpoint): New.
	(arm_linux_init_abi): Use arm_linux_arm_be_breakpoint.

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

	* sol-thread.c: Include "gdb_string.h".

2003-09-03  Mark Kettenis  <m.kettenis@osp.nl>

	* gcore.c: Reorder include files in alphabetical order.  Include
	"gdb_assert.h".  Various coding style fixes.
	(derive_stack_segment, derive_heap_segment): Replace check for
	non-null BOTTOM and TOP with gdb_assert.
	(derive_heap_segment): Replace check for successful creation of
	ZERO with gdb_assert.
	(make_mem_sec): Use bfd_section_lma to set OSEC->lma.

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

	* thread-db.c (verbose_dlsym): New function.
	(thread_db_load): Use verbose_dlsym
	(thread_db_new_objfile): Print that libthread_db was loaded, and
	that thread debugging was enabled.

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

	* configure.tgt: Add "mips64*-*-*" target.  Delete
	mips64*el-*-ecoff*, mips64*el-*-elf*, mips*el-*-ecoff*,
	mips*el-*-elf*, mips*-*-lnews*, mips*-*-sysv*, mips*-*-riscos*,
	mips*-*-ecoff*, mips*-*-elf*, mips*-little-*, mips*-big-*,
	mips*-dec-*, mips64*-big-*, mips64*vr*-*-elf*, mips64*-*-ecoff*,
	mips*-sony-*, and mips64*-*-elf* targets.
	* config/mips/embedl.mt: Delete file.
	* config/mips/embedl64.mt: Delete file.
	* config/mips/mips.mt: Delete file.
	* config/mips/mips64.mt: Delete file.
	* config/mips/tm-embed.h: Delete file.
	* config/mips/embed.mt (TM_FILE): Set to "tm-mips.h".
	* config/mips/embed64.mt: Delete out-of-date comment.

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

	* hppa-tdep.c (hppa_gdbarch_init): Set
	"have_nonsteppable_watchpoint".
	* config/pa/nm-hppah.h (HAVE_NONSTEPPABLE_WATCHPOINT): Delete.
	* mips-tdep.c (mips_dump_tdep): Do not print
	HAVE_NONSTEPPABLE_WATCHPOINT.
	(mips_gdbarch_init): Set "have_nonsteppable_watchpoint".
	* config/mips/tm-embed.h (HAVE_NONSTEPPABLE_WATCHPOINT): Delete.
	* config/mips/nm-irix5.h (HAVE_NONSTEPPABLE_WATCHPOINT): Delete.
	* config/mips/nm-irix4.h (HAVE_NONSTEPPABLE_WATCHPOINT): Delete.

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

	* breakpoint.c (watchpoint_check): Remove accidentally checked in
	unused code.  Add comment.

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

	* breakpoint.c (watchpoint_check): Check for pc being in an
	epilogue if watchpoint frame couldn't be found.

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

	* Makefile.in: Re-generate all dependencies.

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

	* arch-utils.h (legacy_print_insn): Delete declaration.
	* arch-utils.c (legacy_print_insn): Delete function.
	* disasm.c (deprecated_tm_print_insn_info): Delete.
	(_initialize_disasm): Delete function, contained code initializing
	deprecated_tm_print_insn_info.
	* gdbarch.sh (deprecated_tm_print_insn): Delete.
	(deprecated_tm_print_insn_info): Delete.
	(TARGET_PRINT_INSN): Do not provide a default.
	* gdbarch.h, gdbarch.c: Re-generate.

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

	* disasm.c (fprintf_disasm): New function.
	(gdb_disassemble_info): Call "init_disassemble_info", instead of
	INIT_DISASSEMBLE_INFO_NO_ARCH.  Do not initialize "insn_sets",
	reverts 2003-08-14 change.
	(_initialize_disasm): Call "init_disassemble_info", instead of
	INIT_DISASSEMBLE_INFO_NO_ARCH.

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

	* config/djgpp/fnchange.lst: Fix up sim/frv/profile-fr*.[ch].

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

	* config/rs6000/tm-rs6000.h (IBM6000_TARGET): Delete definition.
	* config/rs6000/nm-rs6000.h (DEPRECATED_IBM6000_TARGET): Define.
	* symfile.c (syms_from_objfile): Update.
	(reread_symbols): `Update
	* exec.c (exec_file_attach): Update.
	(exec_file_attach): Update.
	* config/powerpc/tm-nbsd.h: Delete #undef IBM6000_TARGET, revert
	2003-08-29 change.
	* config/powerpc/tm-linux.h: Delete #undef IBM6000_TARGET.

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

	* arm-tdep.c: Include frame-unwind.h, frame-base.h, and
	trad-frame.h.
	(arm_get_cache): Delete macro.
	(struct arm_prologue_cache): Update comments.  Make saved_regs into
	a trad_frame_saved_reg pointer.  Remove unwound_pc; rename unwound_sp
	to prev_sp.
	(thumb_scan_prologue): Update for cache changes.  Don't call
	DEPRECATED_PC_IN_CALL_DUMMY.
	(arm_scan_prologue): Update for cache changes.  Take NEXT_FRAME
	argument and use it in desperation search for our prologue.  Do not
	search past the specified PC.
	(arm_make_prologue_cache): Simplify.

	(arm_prologue_this_id, arm_prologue_prev_register)
	(arm_prologue_unwind, arm_prologue_unwind_sniffer)
	(arm_normal_frame_base, arm_normal_base, arm_make_sigtramp_cache)
	(arm_sigtramp_this_id, arm_sigtramp_prev_register)
	(arm_sigtramp_unwind, arm_sigtramp_unwind_sniffer)
	(arm_unwind_dummy_id, arm_unwind_pc, arm_unwind_sp): New.

	(arm_frame_chain_valid, arm_find_callers_reg)
	(arm_frame_saved_pc, arm_read_fp, arm_frame_init_saved_regs)
	(arm_pop_frame): Delete obsolete methods.
	(arm_minimal_frame_chain, arm_minimal_frame_info): Delete.

	(arm_gdbarch_init): Update for new frame methods.  Register prologue
	and sigtramp unwinders.  Set the default frame base method.

	* Makefile.in (arm-tdep.o): Update dependencies.
	* varobj.c (find_frame_addr_in_frame_chain): Call
	get_frame_base_address.
	* std-regs.c (value_of_builtin_frame_fp_reg): Likewise.

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

	* arm-tdep.c (arm_minimal_frame_chain): Renamed from
	arm_frame_chain.  Take NEXT_FRAME and CACHE arguments.
	Use the cache instead of DEPRECATED_FRAME_SAVED_PC.
	(arm_minimal_frame_info): Renamed from arm_init_extra_frame_info.
	Take NEXT_FRAME and CACHE arguments.  Call
	FRAMELESS_FUNCTION_INVOCATION instead of checking FROMLEAF argument.
	Set unwound_pc in CACHE instead of modifying the frame argument.
	Don't bother checking the frame type when looking for sigtramp
	frames.
	(arm_make_prologue_cache, arm_frame_chain)
	(arm_init_extra_frame_info): New functions.

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

	* arm-tdep.c (arm_get_cache): Define.
	(struct arm_prologue_cache): Renamed from frame_extra_info.  Add
	unwound_sp, unwound_pc, and saved_regs.
	(thumb_scan_prologue): Take a cache instead of the frame.
	(arm_scan_prologue): Likewise.
	(arm_frame_chain): Create a temporary cache for arm_scan_prologue
	instead of a temporary frame.
	(arm_init_extra_frame_info): Allocate and use a cache.
	(arm_frame_saved_pc, arm_pop_frame): Use the cache.

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

	* config/arm/wince.mt (TM_CLIBS): Replace WIN32LIBS.
	* config/mips/wince.mt (TM_CLIBS): Ditto.
	* config/sh/wince.mt (TM_CLIBS): Ditto.
	* config/pa/hppa64.mt (TM_CLIBS): Delete.
	* config/sparc/sp64.mt (CC): Delete.

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

	* defs.h: Do not include "arch-utils.h".
	(GDB_MULTI_ARCH): If not defined, set to GDB_MULTI_ARCH_PARTIAL or
	GDB_MULTI_ARCH_PURE.
	* configure.in (GDB_MULTI_ARCH): Do not define.
	* configure, config.in: Regenerate.
	* configure.tgt: Do not set variable "gdb_multi_arch".
	* config/s390/s390x.mt (GDB_MULTI_ARCH): Delete.
	* config/s390/s390.mt (GDB_MULTI_ARCH): Delete.
	* config/i386/x86-64linux.mt (GDB_MULTI_ARCH): Delete.
	* config/v850/v850.mt (TM_FILE): Delete disabled definition.
	* config/m68hc11/m68hc11.mt (TM_FILE): Delete definition.
	* config/vax/tm-vax.h (GDB_MULTI_ARCH): Delete definition.
	* config/sparc/tm-sparc.h (GDB_MULTI_ARCH): Delete definition.
	* config/sparc/tm-sun4sol2.h (GDB_MULTI_ARCH): Delete definition.
	* config/sparc/tm-nbsd.h (GDB_MULTI_ARCH): Delete definition.
	* config/sparc/tm-linux.h (GDB_MULTI_ARCH): Delete definition.
	* config/sparc/tm-sp64.h (GDB_MULTI_ARCH): Delete definition.
	* config/pa/tm-hppa64.h (GDB_MULTI_ARCH): Delete definition.
	* config/ns32k/tm-ns32k.h (GDB_MULTI_ARCH): Delete definition.
	* config/m68k/tm-m68k.h (GDB_MULTI_ARCH): Delete definition.
	* config/i386/tm-i386.h (GDB_MULTI_ARCH): Delete definition.
	* config/h8300/tm-h8300.h (GDB_MULTI_ARCH): Delete definition.
	* config/frv/tm-frv.h (GDB_MULTI_ARCH): Delete definition.
	* config/alpha/tm-alpha.h (GDB_MULTI_ARCH): Delete definition.

2003-08-30  Michael Chastain  <mec@shout.net>

	* Makefile.in: Remove tm-hp300bsd.h, tm-hp300hpux.h.
	* config/m68k/nm-hp300hpux.h: Delete.
	* config/m68k/tm-hp300hpux.h: Delete.
	* config/m68k/xm-hp300hpux.h: Delete.
	* config/m68k/xm-hp300bsd.h: Delete.
	* config/djgpp/fnchange.lst: Remove nm-hp300hpux.h,
	tm-hp300hpux.h, xm-hp300hpux.h.
	* somsolib.c: Remove comment about hp300 shared libraries.

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

	* i386-linux-nat.c (ps_get_thread_area): Don't define as extern.
	Only define PTRACE_GET_THREAD_AREA is not already defined.
	Various style fixes in code and comments and some additional
	spelling fixes in comments.  Move after functions dealing with
	debug registers.
	* x86-64-linux-nat.c (ps_get_thread_area): Don't define as extern.
	Fix coding-style.

	* alphafbsd-tdep.c (alphafbsd_sigcontext_addr): Use
	frame_unwind_register_unsigned instead of
	frame_unwind_unsigned_register.

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

	* configure.in: Search for gethostbyname in libnsl.
	* configure: Regenerated.

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

	* configure.in: Remove redundant AC_MSG_RESULT in check for
	uintptr_t in stdint.h.
	* configure: Regenerated.

	* amd64-nat.h (struct regcache): Add opaque declaration.

	* i386-linux-tdep.h (I386_LINUX_NUM_REGS): New define.
	* x86-64-linux-nat.c: Include "i386-linux-tdep.h" and "amd64.h".
	Change "register array" to "register cache" in comments.
	(x86_64_linux_gregset64_reg_offset): New variable.
	(GETREGS_SUPPLIES): Remove macro.
	(supply_gregset): Call amd64_supply_native_gregset instead of
	x86_64_linux_supply_gregset.
	(fill_gregset): Rename `regno' to `regnum'.  Call
	amd64_collect_native_gregset instead of x86_64_linux_fill_gregset.
	(store_regs): Rename `regno' to `regnum'.
	(store_fpregs): Rename `regno' to `regnum'.
	(fetch_inferior_registers): Rename `regno' to `regnum'.  Use
	amd64_native_gregset_supplies_p instead of GREGSET_SUPPLIES.
	Reorganize function a bit.
	(store_inferior_registers): Rename `regno' to `regnum'.  Use
	amd64_native_gregset_supplies_p instead of GREGSET_SUPPLIES.
	Reorganize function a bit.
	(_initialize_x86_64_linux_nat): New function.
	* config/i386/x86-64linux.mh.

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

	* config/mips/tm-embed.h (STOPPED_BY_WATCHPOINT): Delete macro.
	(TARGET_CAN_USE_HARDWARE_WATCHPOINT): Delete macro.
	(target_remove_watchpoint): Delete macro.
	(target_insert_watchpoint): Delete macro.
	(remote_mips_can_use_hardware_watchpoint): Delete declaration.
	(remote_mips_stopped_by_watchpoint): Delete declaration.
	(remote_mips_remove_watchpoint): Delete declaration.
	(remote_mips_set_watchpoint): Delete declaration.
	(TARGET_HAS_HARDWARE_WATCHPOINTS): Delete macro.
	* remote-mips.c (_initialize_remote_mips): Set
	"to_insert_watchpoint", "to_stopped_by_watchpoint",
	"to_can_use_hardware_watchpoint", and "to_remove_watchpoint".
	(mips_insert_watchpoint): Rename remote_mips_set_watchpoint.
	(mips_remove_watchpoint): Rename remote_mips_remove_watchpoint.
	(mips_stopped_by_watchpoint): Rename
	remote_mips_stopped_by_watchpoint.
	(mips_can_hardware_watchpoint): Rename
	remote_mips_can_use_hardware_watchpoint, update function
	signature.

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

	* x86-64-linux-tdep.c (user_to_gdb_regmap): Remove USER_CS and
	USER_DS.  We haven't given them a register number yet.

	* amd64-nat.h: New file.
	* amd64-nat.c: New file.
	* amd64fbsd-nat.c: Include "amd64-nat.h".
	(REG_ADDR, GETREGS_SUPPLIES): Remove macros.
	(amd64fbsd32_r_reg_offset): New variable.
	(supply_gregset): Simply call amd64_supply_native_gregset.
	(fill_gregset): Rename `regno' to `regnum'.  Simply call
	amd64_collect_native_gregset.
	(fill_fpregset): Rename `regno' to `regnum'.
	(fetch_inferior_registers): Rename `regno' to `regnum'.  Replace
	usage of GETREGS_SUPPLIES with amd64_native_gregset_supplies_p.
	Use `struct reg' and `struct fpreg' instead of `gregset_t' and
	`fpregset_t'.  Call amd64_supply_native_gregset instead of
	supply_gregset.  Call x86_64_supply_fxsave instead of
	supply_fpregset.
	(store_inferior_registers): Rename `regno' to `regnum'.  Replace
	usage of GETREGS_SUPPLIES with amd64_native_gregset_supplies_p.
	Use `struct reg' and `struct fpreg' instead of `gregset_t' and
	`fpregset_t'.  Call amd64_collect_native_gregset instead of
	fill_gregset.  Call x86_64_collect_fxsave instead of
	fill_fpregset.
	(_initialize_am64fbsd_nat): Initialize
	amd64_native_gregset32_reg_offset and
	amd64_native_gregset64_reg_offset.
	* config/i386/fbsd64.mh (NATDEPFILES): Add amd64-nat.o.

	* regcache.c (regcache_raw_supply): Don't assert that BUF isn't a
	null pointer.  Fix typo in comment.

	* regcache.c (supply_register): Reimplement to call
	regcache_raw_supply.
	(regcache_collect): Reimplement by calling regcache_raw_collect.

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

	* regcache.c (register_buffer): Consitify first argument.
	(regcache_raw_supply, regcache_raw_collect): New
	functions.

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

	* config/powerpc/tm-nbsd.h: Undefine IBM6000_TARGET.  Suggested
	by Nathan J. Williams.

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

	* lin-lwp.c (wait_lwp): New function, copied from
	stop_wait_callback.  Clean up.
	(stop_wait_callback): Use wait_lwp.

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

	* mips-tdep.c (gdb_print_insn_mips): Set the disassembler's
	flavour and disassembler options.
	(_initialize_mips_tdep): Do not set deprecated_tm_print_insn.
	(mips_gdbarch_init): Set "print_insn".  Delete initialization of
	deprecated_tm_print_insn_info.

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

	* s390-tdep.c (s390_readinstruction): Delete "info" parameter.
	Use target_read_memory.
	(s390_get_frame_info): Update.  Do not reference
	deprecated_tm_print_insn_info.
	(s390_check_function_end, s390_is_sigreturn): Ditto.

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

	* Makefile.in (cris-tdep.o): Update dependencies.
	* cris-tdep.c: Include "gdb_assert.h".
	(cris_gdbarch_init): Set print_insn.
	(_initialize_cris_tdep): Do not set deprecated_tm_print_insn.
	(cris_delayed_get_disassembler): Simplify, directly call the
	disassembler returned by cris_get_disassembler.
	* hppa-tdep.c (hppa_gdbarch_init): Set print_insn.
	(_initialize_hppa_tdep): Do not set deprecated_tm_print_insn.
	* ns32k-tdep.c (ns32k_gdbarch_init): Set print_insn.
	(_initialize_ns32k_tdep): Do not set deprecated_tm_print_insn.
	* mn10300-tdep.c (mn10300_gdbarch_init): Set print_insn.
	(_initialize_mn10300_tdep): Do not set deprecated_tm_print_insn.
	* mcore-tdep.c (mcore_gdbarch_init): Set print_insn.
	(_initialize_mcore_tdep): Do not set deprecated_tm_print_insn.
	* frv-tdep.c (frv_gdbarch_init): Set print_insn.
	(_initialize_frv_tdep): Do not set deprecated_tm_print_insn.
	* sparc-tdep.c (sparc_gdbarch_init): Set print_insn.
	(gdb_print_insn_sparc): Delete function.
	(_initialize_sparc_tdep): Do not set deprecated_tm_print_insn or
	deprecated_tm_print_insn_info.
	* v850-tdep.c (v850_gdbarch_init): Set print_insn.
	(_initialize_v850_tdep): Do not set deprecated_tm_print_insn.
	(v850_gdbarch_init): Do not set deprecated_tm_print_insn_info.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Set print_insn.
	(_initialize_xstormy16_tdep): Do not set deprecated_tm_print_insn.
	* s390-tdep.c (gdb_print_insn_s390): Delete function.
	(_initialize_s390_tdep): Do not set deprecated_tm_print_insn.
	(s390_gdbarch_init): Set print_insn.

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

	* ppc-linux-tdep.c (ppc64_call_dummy_address): Delete function.
	(ppc_linux_init_abi): For PPC64, do not set call_dummy_address.
	* infcall.c (call_function_by_hand): Convert the entry point
	address into a code address.

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

	* dsrec.c: Include "gdb_string.h".
	* Makefile.in (dsrec.o): Update dependencies.

2003-08-27  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.mi/mi2-var-*.

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

	* alpha-osf1-tdep.c (alpha_call_dummy_address): Delete function.
	(alpha_osf1_init_abi): Do not set call_dummy_address.

2003-08-27  David Carlton  <carlton@kealia.com>

	From Randolph Chung  <tausq@debian.org>:
	* linux-proc.c (linux_info_proc_cmd): rework the code so that it
	compiles with -Wformat-nonliteral -Werror.

2003-08-26  Jim Blandy  <jimb@redhat.com>

	* solib-svr4.c (bfd_lookup_symbol): New SECT_FLAGS argument.
	(enable_break): Pass SEC_CODE as the SECT_FLAGS argument to
	bfd_lookup_symbol, since we only want symbols in code sections.
	(look_for_base): Pass zero as the SECT_FLAGS argument to
	bfd_lookup_symbol, since we're not concerned about which section
	the symbol is in.

2003-08-26  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c (examine_prologue): Only stop at predicated insns if
	we are frameless or the return address register is already known.

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

	* i386-linux-nat.c (ps_get_thread_area): Make "desc" four "int"s
	in size.  Add comments.

2003-08-26  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c (ia64_convert_from_func_addr): New function.
	(ia64_gdbarch_init): Call set_gdbarch_convert_from_func_addr().

2003-08-26  Jason Merrill  <jason@redhat.com>

	* dwarf2read.c (dwarf_attr_name): Move DW_AT_MIPS_linkage_name
	case out of #ifdef MIPS block.

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

	PR java/1322
	* dwarf2-frame.c (dwarf2_frame_find_fde): Check whether any FDEs are
	available before calling SECT_OFF_TEXT.
	* PROBLEMS: Remove description of java/1322.

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

	* ia64-tdep.c (pseudo_regs): New enum that lists gr32-gr127, p0-p63,
	bof, and nat0-nat127 as pseudo-registers.
	(ia64_frame_cache): New struct used to cache frame info.
	(ia64_register_reggroup_p): New routine used to override default
	register grouping so registers without names are still saved and
	restored.
	(ia64_dwarf_reg_to_regnum): New routine to map gr32-gr127 to their
	pseudo values.
	(ia64_pseudo_register_read): New routine to read pseudo-registers.
	(ia64_pseudo_register_write): New routine to write pseudo-registers.
	(ia64_alloc_frame_cache): New routine to create a new
	ia64_frame_cache.
	(examine_prologue): Change prototype to add next_frame pointer.
	Assume frameless until otherwise proven.  Verify that the cfm for
	current frame matches the cfm that should occur for the prologues
	alloc insn and if equal, mark as not frameless.  At end of routine,
	if not frameless, calculate registers for the previous frame and store
	in the cache, if a cache is provided.
	(ia64_skip_prologue):  Use new prototype when calling examine_prologue
	and pass 0 for next_frame.
	(ia64_store_return_value): Change to use convert_typed_floating()
	instead of calling ia64_convert_to_raw().
	(ia64_extract_return_value): Change to use convert_typed_floating()
	instead of calling ia64_convert_to_virtual().
	(ia64_frame_cache): New routine to support new frame model.
	(ia64_frame_this_id, ia64_frame_prev_register): Ditto.
	(ia64_frame_sniffer): Ditto.
	(ia64_sigtramp_frame_init_saved_regs): Ditto.
	(ia64_sigtramp_frame_cache, ia64_sigtramp_frame_this_id): Ditto.
	(ia64_sigtramp_frame_prev_register): Ditto.
	(ia64_sigtramp_frame_sniffer): Ditto.
	(ia64_frame_base_address): Ditto.
	(ia64_extract_struct_value_address): Change to issue error message.
	(ia64_frame_align): New routine to align sp.
	(ia64_push_dummy_call): New routine based on ia64_push_arguments().
	(ia64_push_arguments): Removed.  Logic moved to
	ia64_push_dummy_call().
	(ia64_push_return_address): Ditto.
	(ia64_unwind_dummy_id): New function.
	(ia64_unwind_pc): Ditto.
	(ia64_convert_register_p): Ditto.
	(ia64_register_to_value): Ditto.
	(ia64_value_to_register): Ditto.
	(ia64_pop_frame, ia64_pop_frame_regular): Removed.
	(ia64_register_byte, ia64_register_raw_size): Ditto.
	(ia64_register_virtual_size, ia64_register_virtual_byte): Ditto.
	(ia64_saved_pc_after_call): Ditto.
	(ia64_frame_chain, ia64_frame_saved_pc): Ditto.
	(ia64_frame_init_saved_regs, ia64_get_saved_register): Ditto.
	(ia64_register_convertible, ia64_register_convert_to_virtual): Ditto.
	(ia64_register_convert_to_raw): Ditto.
	(ia64_store_struct_return, ia64_call_dummy_words): Ditto.
	(ia64_init_extra_frame_info): Ditto.
	(ia64_frame_args_address, ia64_frame_locals_address): Ditto.
	(ia64_gdbarch_init): Remove registering of deprecated functions that
	are no longer used.  Add registration of new gdbarch functions.
	Remove registering deprecated_write_sp.  Replace
	set_gdbarch_register_virtual_type() with set_gdbarch_register_type().
	Delete set_gdbarch_deprecated_register_convertible(),
	set_gdbarch_deprecated_register_convert_to_virtual(), and
	set_gdbarch_deprecated_register_convert_to_raw() calls.  Remove
	set_gdbarch_deprecated_register_size(),
	set_gdbarch_deprecated_register_bytes(),
	set_gdbarch_pcregnum(),
	set_gdbarch_deprecated_register_byte(),
	set_gdbarch_deprecated_register_raw_size(),
	set_gdbarch_deprecated_max_register_raw_size(),
	set_gdbarch_deprecated_register_virtual_size(),
	and set_gdbarch_deprecated_max_register_virtual_size() calls.
	Replace set_gdbarch_deprecated_extract_return_value() with
	set_gdbarch_extract_return_value().  Remove calls to:
	set_gdbarch_deprecated_saved_pc_after_call();
	set_gdbarch_deprecated_frame_chain(),
	set_gdbarch_deprecated_frame_saved_pc(),
	set_gdbarch_deprecated_frame_init_saved_regs(),
	set_gdbarch_deprecated_get_saved_register(),
	set_gdbarch_deprecated_call_dummy_words(),
	set_gdbarch_deprecated_sizeof_call_dummy_words(),
	set_gdbarch_deprecated_init_extra_frame_info(),
	set_gdbarch_deprecated_frame_args_address(),
	set_gdbarch_deprecated_frame_locals_address(),
	and set_gdbarch_deprecated_dummy_write_sp().
	Add set_gdbarch_convert_register_p(),
	set_gdbarch_register_to_value(),
	set_gdbarch_value_to_register(),
	set_gdbarch_push_dummy_call(),
	set_gdbarch_frame_align(),
	set_gdbarch_unwind_dummy_id(),
	set_gdbarch_unwind_pc(),
	frame_unwind_append_sniffer(),
	frame_unwind_append_sniffer(),
	and frame_base_set_default().

2003-08-25  Chris Demetriou  <cgd@broadcom.com>

	* configure.tgt: Document need for special "mipsisa64" handling.
	(mipsisa64*-*-linux64): Handle as target linux64.
	(mipsisa64*-*-*): Handle as target embed64.

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

	* PROBLEMS: Document pr gdb/1322, the Java anonymous
	objfile bug.

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

	* i387-tdep.h: Update copyright date.
	(I387_SIZEOF_FSAVE, I387_SIZEOF_FXSAVE): New defines.

	* linux-proc.c (linux_proc_xfer_memory): Remove comment about
	CFLAGS games to reflect reality.

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

	* arm-tdep.c (_initialize_arm_tdep): Simplify by assuming
	GDB_MULTI_ARCH is always non-zero.
	* osabi.c (_initialize_gdb_osabi): Ditto.
	(gdbarch_init_osabi): Ditto.
	* sparc-tdep.c: Ditto for #if code.

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

	* x86-64-tdep.c (x86_64_supply_fxsave): Add `regnum' argument.
	Update comments.
	* x86-64-tdep.h (x86_64_supply_fxsave): Adjust prototype.  Update
	comments.
	* x86-64-linux-tdep.c (fetch_core_registers): Adjust call to
	x86_64_supply_fxsave.
	* x86-64-linux-nat.c (supply_fpregset): Adjust call to
	x86_64_supply_fxsave.
	* amd64fbsd-nat.c (supply_fpregset): Adjust call to
	x86_64_supply_fxsave.

2003-08-23  Andreas Jaeger  <aj@suse.de>

        * x86-64-tdep.c (x86_64_supply_fxsave): Adjust call to
        i387_supply_fxsave.

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

	* go32-nat.c (fetch_register): Call i387_supply_fsave instead of
	i387_supply_register.
	(go32_fetch_registers): Adjust call to i387_supply_fsave.
	* i386nbsd-tdep.c (fetch_core_registers): Adjust call to
	i387_supply_fsave.
	(fetch_elfcore_registers): Adjust call to i387_supply_fsave and
	i387_supply_fxsave.
	* i386obsd-tdep.c (fetch_core_registers): Adjust call to
	i387_supply_fsave.
	* i386bsd-nat.c (supply_fpregset): Adjust call to
	i387_supply_fsave.
	(fetch_inferior_registers): Remove extraneous whitespace.  Adjust
	call to i387_supply_fxsave.  Call i387_supply_fsave instead of
	supply_fpregset.
	(store_inferior_registers): Remove extraneous whitespace.  Call
	i387_fill_fsave instead of fill_fpregset.
	* i386gnu-nat.c (fetch_fpregs): Adjust call to i387_supply_fsave.
	(supply_fpregset): Likewise.
	* i386v4-nat.c (supply_fpregset): Adjust call to
	i387_supply_fsave.
	* i386-interix-nat.c (supply_fpregset): Adjust call to
	i387_supply_fsave.
	* i386-linux-nat.c (supply_fpregset): Adjust call to
	i387_supply_fsave.
	(supply_fpxregset): Adjust call to i387_adjust_fxsave.
	* i386-nto-tdep.c (i386nto_supply_fpregset): Adjust calls to
	i387supply_fsave and i387_supply_fxsave.
	* i387-tdep.c (i387_supply_fsave): Add `regnum' argument.
	Incorporate code from `i387_supply_register.
	(i387_supply_register): Remove.
	(i387_supply_fxsave): Add `regnum' argument.
	Update comments.
	* i387-tdep.h (i387_supply_fsave, i387_supply_fsxave): Adjust
	prototype.
	(i387_supply_register): remove prototype.
	Update comments.

2003-08-22  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: Remove gdb/testsuite/gdb.c++/*.
	Add lines for files in gdb/testsuite/gdb.cp/* that are
	still not 8.3 unique.

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

	* gnu-v3-abi.c (gnuv3_baseclass_offset): Check whether
	TYPE_VPTR_FIELDNO is valid.

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

	* utils.c (set_width_command): Remove prototypes.
	(set_screen_size): New prototype.
	(init_page_info): Simplify by fetching the screen size from
	Readline.  Call set_screen_size.
	(set_screen_size): New function.
	(set_width): Add missing whitespace in comment.
	(set_width_command): Call set_screen_size.
	(set_height_command): New function.
	(initialize_utils): Fix formatting.  Make "set height" command
	call set_height_command.  Remove redundant code that turns off
	pagination if output isn't a terminal.  Remove redundant call to
	set_width_command.

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

	* sparc64-tdep.h (sparc64_regnum): Fix comment.
	(sparc64_supply_rwindow, sparc64_fill_rwindow): Remove prototypes.
	(sparc_supply_rwindow, sparc_fill_rwindow): New prototypes.
	* sparc64-tdep.c (sparc64_pseudo_register_read): Add missing
	`case' keyword.
	(sparc64_register_info): Give the reister with number
	SPARC64_STATE_REGNUM a name.
	(sparc64_pseudo_register_write): Add support for %cwp, %pstate,
	%asi and %ccr.
	(sparc64_push_dummy_call): Take BIAS into account when checking
	stcak alignment.
	(sparc_software_single_step): Remove assertions that check whether
	NPC and NNPC were zero.
	(sparc_supply_rwindow): Make public.  Merge functionality with
	sparc64_supply_rwindow.
	(sparc_fill_rwindow): Make public.  Merge functionality with
	sparc64_fill_rwindow.
	(sparc64_supply_rwindow, sparc64_fill_rwindow): Remove.
	* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Set
	SPARCBSD_FPREG_SUPPLIES_P to sparc64fbsd_fpreg_supplies_p.
	* sparc64fbsd-tdep.c (sparc64fbsd_supply_reg): Call
	sparc_supply_rwindow instead of sparc64_supply_rwindow.

	* reggroups.c: Add whitespace after declarations of local
	variables in functions.

2003-08-21  Michael Chastain  <mec@shout.net>

	* gdbtypes.h: Change array bound type from an int to enum.

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

	* config/sparc/tm-sp64.h: Delete #if !GDB_MULTI_ARCH and #if 0 code.
	* config/sparc/tm-sparc.h: Ditto.
	* config/arm/tm-arm.h (GDB_MULTI_ARCH): Define GDB_MULTI_ARCH
	unconditionally.
	* config/pa/tm-hppa.h (GDB_MULTI_ARCH): Ditto.

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

	* objfiles.h (struct objfile): Add memebers `data' and `num_data'.
	(register_objfile_data, set_objfile_data, objfile_data): New
	prototypes.
	* objfiles.c (objfile_alloc_data, objfile_free_data): New
	prototypes.
	(allocate_objfile): Call objfile_alloc_data.
	(free_objfile): Call objfile_free_data.
	(struct objfile_data): New.
	(struct objfile_data_registration): New.
	(struct objfile_data_registry): New.
	(objfile_data_registry): New variable.
	(register_objfile_data): New function.
	(objfile_alloc_data, objfile_free_data): New functions.
	(set_objfile_data, objfile_data): New functions.
	* dwarf2-frame.c (dwarf2_frame_data): New variable.
	(dwarf2_frame_find_fde, add_fde): Use new per-objfile data mechanism.
	(_initialize_dwarf2_frame): New function and prototype.

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

	* sh3-rom.c (sh3_open, sh3e_open): Use gdbarch_update_p to select
	a specific architecture.
	* arch-utils.h (set_architecture_from_arch_mach): Delete
	declaration.
	(target_architecture_hook): Delete declaration.
	* arch-utils.c: Delete non GDB_MULTI_ARCH includes.
	(default_float_format): Assume GDB_MULTI_ARCH.
	(default_double_format): Assume GDB_MULTI_ARCH.
	(set_endian_from_file): Delete function.
	(arch_ok): Delete function.
	(set_arch): Delete function.
	(set_architecture_from_arch_mach): Delete function.
	(set_architecture_from_file): Delete function.
	(set_architecture): Assume GDB_MULTI_ARCH.
	(set_gdbarch_from_file): Assume GDB_MULTI_ARCH.

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

	Rewrite FreeBSD/sparc64 native configuration.
	* sparcbsd-nat.c, sparcbsd-nat.h: New files.
	* sparc64fbsd-nat.c: New file.
	* sparc64fbsd-tdep.c: New file.
	* sparc64-tdep.c sparc64-tdep.h: New files.
	* Makefile.in (sparcbsd-nat.o, sparc64fbsd-nat.o, sparc64-tdep.o,
	sparc64fbsd-tdep.o): New dependencies.
	(SFILES): Add sparcbsd-nat.c, sparc64fbsd-nat.c, sparc64-tdep.c
	and sparc64fbsd-tdep.c.
	(sparc64_tdep_h, sparcbsd_nat_h): New variables.
	* config/sparc/fbsd.mh: Remove copyright notice.
	(NATDEPFILES): Remove sparc-nat.o, add sparc64fbsd-nat.o and
	sparcbsd-nat.o.
	* config/sparc/fbsd.mt: Remove copyright notice.
	(TDEPFILES): Remove sparc-tdep.o, solib.o solib-svr4.o,
	solib-legacy.o.  Add sparc64-tdep.o and sparc64fbsd-tdep.o.
	* config/sparc/nm-fbsd.h: Don't include "elf/common.h".
	(SVR4_SHARED_LIBS, PTRACE_GETREGS, PTRACE_SETREGS,
	PTRACE_GETFPREGS, PTRACE_SETFPREGS, GDB_GREGSET_T, GDB_FPREGSET_T,
	regs, r_g1, r_ps, r_pc, r_npc, r_y, FPU_FSR_TYPE, fp_status, fpu,
	fpu_regs, fp_fr, fpu_fsr, Fpu_fsr): Remove defines.
	* config/sparc/tm-fbsd.h: Don't include "solib.h" and
	"sparc/tm-sp64.h".
	(SVR4_SHARED_LIBS, START_INFERIOR_TRAPS_EXPECTED): Remove defines.
	(GDB_MULTI_ARCH): Define to GDB_MULTI_ARCH_TM.

2003-08-21  Michael Chastain  <mec@shout.net>

	* symtab.h: Add doco on the space critical structures and
	some measurements of space usage.

2003-08-21  Michael Snyder  <msnyder@redhat.com>

	* tracepoint.c (trace_dump_command): Trace break address
	is subject to DECR_PC_AFTER_BREAK.
	(set_traceframe_context): Make "trace_line" an int.
	Fixes suggested by Mark Newman  <mark.newman@lmco.com>

2003-08-20  Michael Snyder  <msnyder@redhat.com>

	* sh-tdep.h (struct gdbarch_tdep): New member FLOAT_ARGLAST_REG.
	* sh-tdep.c (sh_gdbarch_init): For sh2e, sh3e, and sh4, set
	FLOAT_ARG0_REGNUM and FLOAT_ARGLAST_REGNUM, to be used for
	argument passing.
	(sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu): New
	functions, replace sh_push_dummy_call.
	(sh_gdbarch_init): Set push_dummy_call to one of new methods.

2003-08-20  Michael Chastain  <mec@shout.net>

	* gdbtypes.h (struct main_type): Rearrange to save space.

2003-08-20  Michael Snyder  <msnyder@redhat.com>

	* trad-frame.c: Comment typo fix.

2003-08-20  Michael Snyder  <msnyder@redhat.com>
            Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (gdb_string.h, frame.h, trad-frame.h): Include.
	(frv_frame_init_saved_regs): Add declaration.
	(frame_extra_info): Add new field ``saved_regs''.
	(frv_frame_chain, frv_frame_saved_pc, frv_analyze_prologue)
	(frv_skip_prologue, frv_init_extra_frame_info, frv_pop_frame_regular):
	Update frame related code.
	(frv_extract_struct_value_address): Adjust formatting.
	* Makefile.in (frv-tdep.o): Update dependencies.
	* config/frv/tm-frv.h (target_insert_watchpoint)
	(target_remove_watchpoint, target_insert_hw_breakpoint)
	(target_remove_hw_breakpoint): Delete these macros.
	(remote_insert_watchpoint, remote_remove_watchpoint)
	(remote_insert_hw_watchpoint, remote_remove_hw_watchpoint): Remove
	these declarations.

2003-08-20  Michael Chastain  <mec@shout.net>

	* defs.h (ENUM_BITFIELD): New macro.
	* symtab.h (ENUM_BITFIELD): Use it.
	(BYTE_BITFIELD): Remove old macro, which was already disabled.

2003-08-19  Shrinivas Atre <shrinivasa@kpitcummins.com>

	* MAINTAINERS (write after approval): Add myself.

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

	* gdbarch.sh (FRAME_RED_ZONE_SIZE): New architecture method.
	* gdbarch.h, gdbarch.c: Re-generate.
	* infcall.c (call_function_by_hand): Adjust the SP by
	frame_red_zone_size before allocating any stack space.
	* rs6000-tdep.c (rs6000_gdbarch_init): Set "frame_red_zone_size".
	* x86-64-tdep.c (x86_64_frame_align): New function.
	(x86_64_init_abi): Set "frame_red_zone_size" and "frame_align".

	* x86-64-tdep.c (x86_64_push_arguments): Revert 2003-08-07 change.
	Remove code adjusting SP so that it skips over the Red Zone.

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

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

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

	* m68hc11-tdep.c (m68hc11_gdbarch_init): Do not set
	"dwarf2_build_frame_info".  Append "m68k_frame_sniffer" instead of
	"m68k_frame_p".
	(m68hc11_frame_sniffer): Replace "m68hc11_frame_p".

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

	* x86-64-tdep.c (x86_64_dwarf_regmap): Remove trailing whitespace.

2003-08-18  Michal Ludvig  <mludvig@suse.cz>

	* config/i386/nm-x86-64linux.h (LINUX_CHILD_POST_STARTUP_INFERIOR):
	Define.
	* i386-linux-nat.c: Include "linux-nat.h".
	(child_post_startup_inferior): New function.

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

	* i386-tdep.c (i386_analyze_register_saves): Handle register saves
	at the start of a frameless function.  This probably fixes PR
	backtrace/1338.

2003-08-17  Michael Chastain  <mec@shout.net>

	* symfile.c (find_sym_fns): Remove special case for apollo target.

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

	* linux-nat.c (PTRACE_O_TRACEVFORKDONE, PTRACE_O_TRACEEXIT): Define.
	(PTRACE_EVENT_VFORKDONE, PTRACE_EVENT_EXIT): Define.
	(linux_parent_pid, linux_supports_tracevforkdone_flag): New variable.
	(linux_test_for_tracefork): Set linux_supports_tracevforkdone_flag.
	(linux_supports_tracevforkdone): New function.
	(linux_enable_event_reporting): Enable TRACEVFORK, TRACEEXEC, and
	TRACEVFORKDONE.
	(child_follow_fork): Handle vfork.
	(linux_handle_extended_wait): Likewise.  Also handle exec.
	(child_insert_vfork_catchpoint, child_insert_exec_catchpoint): Enable.
	* NEWS: Mention fork tracing.

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

	* lin-lwp.c (child_wait): Call linux_record_stopped_pid.

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

	* Makefile.in (i386-linux-nat.o): Update dependencies.
	* config/i386/nm-linux.h (LINUX_CHILD_POST_STARTUP_INFERIOR): Define.
	* config/nm-linux.h (CHILD_POST_STARTUP_INFERIOR, CHILD_POST_ATTACH)
	(CHILD_FOLLOW_FORK, KILL_INFERIOR): Define.
	* i386-linux-nat.c: Include "linux-nat.h".
	(child_post_startup_inferior): New function.
	* i386-nat.c (child_post_startup_inferior): Wrap in #ifdef.
	* infptrace.c (kill_inferior): Wrap in #ifdef.
	* lin-lwp.c (lin_lwp_attach_lwp): Call child_post_attach after
	attaching to each LWP.
	(child_wait, lin_lwp_wait): Call linux_handle_extended_wait.
	(init_lin_lwp_ops): Fill in some more operations.
	* linux-nat.h (linux_enable_event_reporting)
	(linux_handle_extended_wait, linux_child_post_startup_inferior): New
	prototypes.
	* linux-nat.c (linux_enable_event_reporting): New function.
	(child_post_attach, linux_child_post_startup_inferior)
	(child_post_startup_inferior, child_follow_fork)
	(linux_handle_extended_wait, kill_inferior): New functions.

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

	* gdbarch.sh: Delete all #if not GDB_MULTI_ARCH code.
	* gdbarch.h, gdbarch.c: Re-generate.

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

	* config/alpha/nm-fbsd.h (SVR4_SHARED_LIBS): Remove define.

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

	* NEWS: Mention that "set prompt-escape-char" was deleted.
	* top.c (get_prompt_1): Delete function.
	(gdb_prompt_escape):
	(init_main): Do not clear "gdb_prompt_escape".  Delete "set
	prompt-escape-char" command.
	(MAX_PROMPT_SIZE): Delete macro.
	(get_prompt): Simplify, do not call get_prompt_1.

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

	* Makefile.in (printcmd.o, valprint.o): Do not try to build with
	-Werror.  -Wformat-nonliteral problems.

2003-08-15  J. Brobecker  <brobecker@gnat.com>

	Further multiarching work mostly for hppa64-*-hpux11:
	* hppa-tdep.h: New file.
	* hppa-tdep.c: #include hppa-tdep.c.
	(hppa32_num_regs): Renamed from hppa_num_regs.
	(hppa64_num_regs): New constant.
	(hppa64_call_dummy_breakpoint_offset): New constant.
	(hppa32_call_dummy_length): New constant.
	(hppa64_call_dummy_length): New constant.
	(hppa32_stack_align): Make name 32bit explicit.
	(hppa32_register_virtual_type): Likewise.
	(hppa32_extract_return_value): Likewise.
	(hppa32_use_struct_convention): Likewise.
	(hppa32_store_return_value): Likewise.
	(hppa64_register_virtual_type): New function.
	(hppa64_extract_return_value): New function.
	(hppa64_use_struct_convention): New function.
	(hppa64_store_return_value): New function.
	(hppa_frame_locals_address): Remove declaration, function does
	not exist anymore.
	(hppa_register_byte): Add support for PA64 ABI.
	(hppa_gdbarch_init): Add support for PA64 ABI.
	* hppa-hpux-tdep.c (hppa32_hpux_frame_saved_pc_in_sigtramp):
	Make name 32bit explicit.
	(hppa32_hpux_frame_base_before_sigtramp): Likewise.
	(hppa32_hpux_frame_find_saved_regs_in_sigtramp): Likewise.
	(hppa64_hpux_frame_saved_pc_in_sigtramp): New function.
	(hppa64_hpux_frame_base_before_sigtramp): New function.
	(hppa64_hpux_frame_find_saved_regs_in_sigtramp): New function.
	* config/pa/tm-hppa64.h: Remove macros that are no longer
	necessary now that the gdbarch vector is properly setup.
	Transform some macros into function calls. Some minor cleanup.
	* config/pa/tm-hppah.h: Update function calls in macros
	following the function renaming in hppa-hpux-tdep.c.
	* Makefile.in (hppa_tdep_h): New variable.
	(hppa-tdep.o): Add dependency over hppa_tdep_h.

2003-08-14  Michael Snyder  <msnyder@redhat.com>

	* disasm.c (gdb_disassemble_info): Set info->insn_sets to zero.

2003-08-13  J. Brobecker  <brobecker@gnat.com>

	* hppa-hpux-tdep.c (_initialize_hppa_hpux_tdep): Use the correct
	bfd arch_info when registering the GDB_OSABI_HPUX_ELF initialization
	routine.

2003-08-13  Michael Snyder  <msnyder@redhat.com>

	* frv-tdep.c (frv_push_arguments): Use deprecated ftype.
	(frv_saved_pc_after_call): Use deprecated ftype.
	(stupid_useless_init_extra_frame_info): Remove orphan prototype.
	(frv_remote_translate_xfer_address): Remove.
	(frv_gdbarch_init): Use generic_remote_translate_xfer_address.

2003-08-13  J. Brobecker  <brobecker@gnat.com>

	* hppa-tdep.c (hppa_gdbarch_init): Perform the ABI-specific gdbarch
	initialization after the common gdbarch initialization, not before.

2003-08-13  J. Brobecker  <brobecker@gnat.com>

	* config/pa/tm-hppa64.h (HPUX_1100): Remove, not used.
	(ADDR_BITS_REMOVE): Remove, redundant.

2003-08-13  J. Brobecker  <brobecker@gnat.com>

	* hppa-tdep.c (hppa_gdbarch_init): Set the addr_bits_remove
	gdbarch method to clear the 2 low bits of text addresses.

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

	* Makefile.in (dsrec.o): Update dependencies.
	* dsrec.c: Include "gdb_assert.h".
	(make_srec): Use snprintf instead of sprintf, use a literal format
	string.

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

	* frame.c (deprecated_frame_xmalloc): Use XMALLOC, instead of
	FRAME_OBSTACK_ZALLOC.

2003-08-12  Kevin Buettner  <kevinb@redhat.com>

	* i386-tdep.c (i386_gdbarch_init): Enable default support for
	SSE registers.

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

	* x86-64-tdep.h (amd64fbsd_sigtramp_start, amd64fbsd_sigtramp_end,
	amd64fbsd_sc_reg_offset): Add extern declarations.
	* amd64fbsd-nat.c (_initialize_am64fbsd_nat): Remove extern
	declarations.

2003-08-11  Ben Elliston  <bje@wasabisystems.com>

	* MAINTAINERS (write after approval): Update my mail address.

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

	* Makefile.in (monitor.o): Do not build monitor.c with -Werror.

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

	* i386-tdep.h (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
	i386obsd_sigtramp_start, i386obsd_sigtramp_end,
	i386fbsd4_sc_reg_offset, i386fbsd_sc_reg_offset,
	i386nbsd_sc_reg_offset, i386obsd_sc_reg_offset,
	i386bsd_sc_reg_offset): Add extern declarations.
	* i386obsd-nat.c: Include "i386-tdep.h"
	(_initialize_i386obsd_nat): Remove extern declarations.
	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Remove extern
	declarations.
	* i386bsd-nat.c (_initialize_i386bsd_nat): Remove extern
	declarations.

	* i386-tdep.c (i386_register_to_value): Use get_frame_register
	instead of frame_read_register.
	(i386_fetch_pointer_argument): Use get_frame_register_unsigned
	instead of frame_read_register.  Use I386_ESP_REGNUM instead of
	SP_REGNUM.
	(i386_frame_prev_register): Use frame_unwind_register_unsigned
	instead of frame_unwind_unsigned_register.  Use
	I386_EFLAGS_REGISTER instead of PS_REGNUM.
	(i386_get_longjmp_target): Use regcache_read_unsigned_register
	instead of read_register.  Use builtin_type_void_data_ptr instead
	of builtin_type_void_func_ptr when extracting the address of the
	jmp_buf.
	(i386_extract_return_value, i386_store_return_value,
	i386_pseudo_register_read, i386_pseudo_register_write): Use
	register_size instead REGISTER_RAW_SIZE.

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

	* infcall.c (call_function_by_hand): Use xstrprintf instead of
	sprintf.  Make "name" constant.

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

	* i387-tdep.c (i387_register_to_value): Use get_frame_register
	instead of frame_read_register.
	(i387_print_float_info): Use get_frame_register and
	get_frame_register_unsigned instead of frame_register_read.

	* i386fbsd-nat.c: Include "i386-tdep.h".
	(child_resume): Make `eflags' an ULONGEST.  Use
	regcache_cooked_read_unsigned and regcache_cooked_write_unsigned
	instead of register_read and register_write.

	* i386bsd-nat.c (fetch_inferior_registers,
	store_inferior_registers): Don't use && at the end of a line.
	(_initialize_i386bsd_nat): Fix typo.

	* frame.c (_initialize_frame): Add missing backslash.

	From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
	* sol-thread.c (sol_thread_store_registers): Use regcache_collect
	and supply_register instead of manipulating the register buffer
	directly.

	From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
	* config/i386/nm-i386sol2.h
	(TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Define to one.

	Based on a patch from Michael Elizabeth Chastain (mec@shout.net):
	* i386-tdep.c (i386_analyze_frame_setup): Recognize more
	instructions that GCC likes to mingle into the prologue.  Fixes
	gdb/1253 and gdb/1255.

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

	Fix GDB PR cli/926.
	* cli/cli-decode.c (add_setshow_uinteger_cmd): New function.
	* command.h (add_setshow_uinteger_cmd): Declare.
	* frame.c (set_backtrace_cmd): New function.
	(show_backtrace_cmd): New function.
	* frame.c (_initialize_frame): Replace "set/show
	backtrace-below-main" with "set/show backtrace past-main".  Add
	command "set/show backtrace limit".
	(backtrace_past_main): Rename "backtrace_below_main".
	(backtrace_limit): New variable.
	(get_prev_frame): Update.  Check the backtrace_limit.

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

	* defs.h (xstrprintf): Declare.
	* utils.c (xstrprintf): New function.
	* breakpoint.c (insert_breakpoints): Replace sprintf and
	non-literal format strings, with xstrprintf and cleanups.
	(delete_breakpoint,breakpoint_re_set): Ditto.
	(commands_command, insert_breakpoints): Ditto.
	(bpstat_stop_status, break_at_finish_at_depth_command_1): Ditto.
	(break_at_finish_command_1): Ditto.

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

	* MAINTAINERS (language support): List Adam Fedor as Objective C
	maintainer.

2003-08-08  J. Brobecker  <brobecker@gnat.com>

	* NEWS (Multi-arched targets): Document that all hppa-hpux targets
	are now multiarched.

2003-08-08  J. Brobecker  <brobecker@gnat.com>

	* config/pa/tm-hppa64.h: Remove lots of macros that are no
	longer necessary now that hppa64 is partially multiarch'ed.

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

	* interps.c (interp_set): Check for a NULL "old_interp".

2003-08-08  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (FLAGS_TO_PASS): Add DESTDIR.
	(install-only): Support DESTDIR.
	(uninstall): Likewise.
	(install-gdbtk): Likewise.

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

	* symtab.c (lookup_symbol_aux): Make sure that is_a_field_of_this
	contains something meaningful at all times.

Fri Aug  8 00:28:46 UTC 2003  Brendan Conoboy  <blc@redhat.com>

	* configure.host: Set gdb_host_cpu=arm when host_cpu=xscale.

Fri Aug  8 00:28:38 UTC 2003  Brendan Conoboy  <blc@redhat.com>

	* MAINTAINERS (write after approval): Added self.

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

	* inferior.h (AT_SYMBOL): Define.
	* blockframe.c (inside_entry_file): Check for AT_SYMBOL.
	* infcall.c (call_function_by_hand): Add code to handle AT_SYMBOL.
	* mips-tdep.c (mips_call_dummy_address): Delete function.
	(mips_gdbarch_init): Set call_dummy_location to AT_SYMBOL, do not
	set call_dummy_address.

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

	* language.c (op_error): Delete function.
	(binop_type_check): Delete function.
	* language.h (type_op_error, range_op_error): Delete macros.
	(op_error): Delete declaration.

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

	* interps.h (INTERP_MI2, INTERP_MI3): Define.

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

	* x86-64-tdep.c (x86_64_dwarf_regmap): Correct register numbers.
	(x86_64_push_arguments): Skip the red zone.

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

	* reggroups.c (reggroup_next): Check for the final entry.

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

	* monitor.h (monitor_dump_reg_block): Remove ATTR_FORMAT.
	* cli/cli-script.c (define_command): Call query directly, instead
	of passing it a buffer.
	* ocd.c (ocd_error): Pass error a constant format string.
	* remote-mips.c (mips_error): Use fputs_filtered.

	* solib-svr4.c (_initialize_svr4_solib): Update
	register_gdbarch_data call.
	* mips-linux-tdep.c (_initialize_mips_linux_tdep): Ditto.

	* gdbarch.sh (gdbarch_data_free_ftype): Delete declaration.
	(register_gdbarch_data): Delete "free" parameter.  Update
	comments.
	* gdbarch.h, gdbarch.c: Re-generate.
	* reggroups.c (_initialize_reggroup): Update.
	* gnu-v3-abi.c (init_gnuv3_ops): Update.
	* frame-base.c (_initialize_frame_base): Update.
	* frame-unwind.c (_initialize_frame_unwind): Update.
	* user-regs.c (_initialize_user_regs): Update.
	* remote.c (_initialize_remote): Update.
	* regcache.c (_initialize_regcache): Update.

	* regcache.c (xfree_regcache_descr): Delete function.
	(_initialize_regcache): Update call to register_gdbarch_data.
	(init_regcache_descr, init_legacy_regcache_descr): Use
	GDBARCH_OBSTACK_XALLOC and GDBARCH_OBSTACK_CALLOC.

	* remote.c (free_remote_state): Delete function.
	(_initialize_remote): Update register_gdbarch_data.
	(init_remote_state): Use GDBARCH_OBSTACK_XALLOC and
	GDBARCH_OBSTACK_CALLOC instead of xmalloc / xcalloc.

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

	* reggroups.c (struct reggroup_el): Define.
	(struct reggroups): Delete field "nr_group".  Replace array
	"group" with a "first" to "last" linked list.
	(reggroups_init): Update.  Allocate using gdbarch's obstack.
	(reggroups_free): Delete function.
	(add_group): Update.  Add "el" parameter.
	(reggroup_add): Pass gdbarch obstack allocated space to add_group.
	(default_groups): Update.
	(reggroup_next): Replace reggroups.
	(reggroups_dump): Update.
	(_initialize_reggroup): Pass XMALLOC allocated space to add_group.
	* regcache.c (regcache_dump): Use reggroup_next instead of reggroups.
	* infcmd.c (registers_info): Use reggroup_next instead of reggroups.

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

	* Makefile.in (tui-interp.o): Update dependencies.

2003-08-04  David Carlton  <carlton@kealia.com>

	* charset.c (cached_iconv_convert): Add __FILE__ and __LINE__ args
	to internal_error call.
	* source.c (forward_search_command): Add "%s" format argument.
	(reverse_search_command): Ditto.
	* top.c (quit_confirm): Ditto.
	* cli/cli-setshow.c (do_setshow_command): Ditto.
	* cp-valprint.c (cp_print_class_method): Replace
	{f,}printf_{un,}filtered by {f,}puts_{un,}filtered.
	(cp_print_class_member): Ditto.
	* event-top.c (command_line_handler): Ditto.
	* linux-proc.c (linux_info_proc_cmd): Ditto.
	* p-typeprint.c (pascal_type_print_base): Ditto.
	* p-valprint.c (pascal_object_print_class_method): Ditto.
	(pascal_object_print_class_member): Ditto.
	* printcmd.c (print_scalar_formatted,printf_command): Ditto.
	* remote.c (remote_cisco_section_offsets): Ditto.
	* top.c (command_line_input): Ditto.
	* utils.c (vwarning,error_stream,quit): Ditto.
	* valprint.c (print_floating,print_binary_chars)
	(print_octal_chars,print_decimal_chars,print_hex_chars): Ditto.

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

	* frame.c (frame_func_unwind): Use frame_unwind_address_in_block.

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

	* config/djgpp/fnchange.lst: Fix up testsuite/gdb.c++/annota3.cc,
	gdb/testsuite/gdb.c++/annota3.exp, amd64fbsd-tdep.c and
	amd64fbsd-nat.c.

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

	* Makefile.in: Update all dependencies and definitions.

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

	* linespec.c (is_objc_method_format): New function
	(decode_line_1, locate_first_half): Use it.
	Fixes PR objc/1298

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

	* NEWS: Mention that m32r is multi-arch.
	From 2003-07-28 Kei Sakamoto <sakamoto.kei@renesas.com>:
	* configure.tgt: Recognize m32r-*-*.
	* config/m32r/tm-m32r.h: Delete file.
	* config/m32r/m32r.mt: New file.
	* m32r-rom.c (m32r_upload_command): Use hostent only when
        gethostname succeeds, in order to avoid a compilation
        warning.
	* m32r-tdep.c (m32r_store_return_value): Add a cast to remove a
	compiler warning.

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

	* sh-tdep.c (sh_frame_align): New gdbarch method.
	(sh_gdbarch_init): Set up frame_align method.

2003-07-31  Michael Snyder  <msnyder@redhat.com>

	* value.h, values.c, infcall.c, infcmd.c: Revert 07-30 change,
	which is already covered by the new frames infrastructure.

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

	* user-regs.c (struct user_reg): Add "next" link.
	(struct user_regs): Replace "user" with "first" and "last" links.
	(append_user_reg): Add pre-allocated "reg" parameter.
	(builtin_user_regs): Provide initial value for "last".
	(user_reg_add_builtin): XMALLOC memory for append_user_reg.
	(user_regs_init): Allocate memory from the gdbarch obstack.
	(user_reg_add): GDBARCH_OBSTACK_ZALLOC memory for append_user_reg.
	(user_reg_map_name_to_regnum): Rewrite to search the user_reg
	linked list.
	(usernum_to_user_reg): New function.
	(user_reg_map_regnum_to_name): Use usernum_to_user_reg.
	(value_of_user_reg): Use usernum_to_user_reg.
	(user_regs_free): Delete function.
	(_initialize_user_regs): Update register_gdbarch_data call.

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

	* dwarf2read.c (new_symbol): Use var_decode_location for parameters.

2003-07-30  Michael Snyder  <msnyder@redhat.com>

	* value.h (value_being_returned): Add a struct_addr argument.
	* infcall.c (call_function_by_hand): Pass struct_addr to
	value_being_returned.
	* infcmd.c (print_return_value): Pass zero as struct_addr.
	* values.c (value_being_returned): If struct_addr is passed,
	use it instead of trying to recover it from the inferior.

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

	* mn10300-tdep.c (analyze_dummy_frame): Pass ``pc'' so that
	the prologue analyzer won't need to attempt to extract the pc
	value from the woefully incomplete dummy frame.
	(mn10300_analyze_prologue): Avoid calls to get_frame_pc() when
	possible.  Disable code which modifies the frame.

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

	* annotate.c (annotate_breakpoints_headers): Restrict annotation
	to level 2.
	(annotate_breakpoints_table, annotate_record): Ditto.
	(annotate_breakpoints_table_end, annotate_field_begin): Ditto.
	(annotate_field_name_end, annotate_field_value): Ditto.
	(annotate_field_end, annotate_frame_source_begin): Ditto.
	(annotate_frame_source_file, annotate_frame_source_file_end): Ditto.
	(annotate_frame_source_line, annotate_frame_source_end): Ditto.
	(annotate_frame_begin, annotate_frame_function_name): Ditto.
	(annotate_frame_address_end, annotate_frame_address): Ditto.
	(annotate_frame_args, annotate_frame_end): Ditto.
	(annotate_frame_where, annotate_arg_begin): Ditto.
	(annotate_arg_name_end, annotate_arg_value): Ditto.
	(annotate_arg_end, annotate_signal_handler_caller): Ditto.
	(annotate_function_call, annotate_signal_name): Ditto.
	(annotate_signal_string, annotate_signal_name_end): Ditto.
	(annotate_signal_string_end, annotate_value_history_begin): Ditto.
	(annotate_value_begin, annotate_value_history_value): Ditto.
	(annotate_value_history_end, annotate_value_end): Ditto.
	(annotate_display_begin, annotate_display_number_end): Ditto.
	(annotate_display_format, annotate_display_expression): Ditto.
	(annotate_display_expression_end, annotate_display_value): Ditto.
	(annotate_display_end, annotate_array_section_begin): Ditto.
	(annotate_elt_rep, annotate_elt_rep_end): Ditto.
	(annotate_elt, annotate_array_section_end): Ditto.

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

	* regcache.c (struct regcache_descr): Update comments on
	nr_raw_registers.
	(init_legacy_regcache_descr): Don't set nr_raw_registers or
	sizeof_raw_register_valid_p.
	(init_regcache_descr): Set nr_raw_registers and
	sizeof_raw_register_valid_p before calling
	init_legacy_regcache_descr.

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

	* mips-tdep.c (print_gp_register_row): Print the GPR's register
	MOD NUM_REGS.

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

	* thread.c (info_threads_command): Use get_selected_frame ().
	Check that there is at least one non-sentinel frame.

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

	* m68hc11-tdep.c (struct frame_extra_info): Remove.
	(m68hc11_pop_frame): Remove.
	(m68hc11_frame_saved_pc): Remove.
	(m68hc11_frame_chain): Remove.
	(m68hc11_frame_init_saved_regs): Remove.
	(m68hc11_init_extra_frame_info): Remove.
	(m68hc11_store_struct_return): Remove.
	(m68hc11_saved_pc_after_call): Remove.

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

	* m68hc11-tdep.c (struct m68hc11_unwind_cache): New struct to hold
	frame unwind information.
	(m68hc11_scan_prologue): New function from m68hc11_guess_from_prologue
	and adapted for frame unwinding.
	(m68hc11_skip_prologue): Update to scan prologue in temporary object.
	(m68hc11_unwind_pc): New function.
	(m68hc11_frame_unwind_cache): New function to analyze frames.
	(m68hc11_frame_this_id): New function to create new frame struct.
	(m68hc11_frame_prev_register): New function to unwind a register from
	the frame.
	(m68hc11_frame_unwind): Default 68hc11/68hc12 unwinder.
	(m68hc11_frame_p): New function for the above.
	(m68hc11_frame_base_address): New function to return fp of frame.
	(m68hc11_frame_args_address): Update for frame.
	(m68hc11_frame_base): Default 68hc11/68hc12 frame.
	(m68hc11_unwind_sp): New function.
	(m68hc11_unwind_dummy_id): New function.
	(m68hc11_gdbarch_init): Install the above frames; remove deprecated
	calls.

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

	* m68hc11-tdep.c (m68hc11_analyze_instruction): Don't advance the pc.
	(m68hc11_guess_from_prologue): Advance the pc and frame size only
	when we are beyond the current pc.

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

	* m68hc11-tdep.c (m68hc11_push_dummy_call): New function adapted
	from m68hc11_push_arguments.
	(m68hc11_push_arguments): Remove.
	(m68hc11_push_return_address): Remove.
	(m68hc11_gdbarch_init): Install the above; remove above deprecated
	handlers; remove deprecated_extra_stack_alignment_needed.

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

	* config/pa/tm-hppa.h (init_frame_pc_default): Declare.
	* infcall.c (legacy_push_dummy_code) [GDB_TARGET_IS_HPPA]: Update
	REAL_PC and not the pointer.
	* hppa-hpux-tdep.c: Include frame.h

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

	* config/pa/tm-hppa64.h (GDB_MULTI_ARCH): Set to
	GDB_MULTI_ACH_PARTIAL.

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

	Patch from 2003-07-22 Kei Sakamoto <sakamoto.kei@renesas.com>:
	* m32r-tdep.c (m32r_memory_insert_breakpoint): Fix code style -
	operator at start and not end of line.
	(decode_prologue): Ditto.
	(m32r_frame_unwind_cache, m32r_unwind_sp, m32r_unwind_pc): Use
	frame_unwind_register_unsigned instead of
	frame_unwind_unsigned_register.
	(m32r_read_pc): Use regcache_cooked_read_unsigned instead of
	read_register.
	(m32r_push_dummy_call): Use register_size instead of
	REGISTER_RAW_SIZE.
	(m32r_frame_sniffer): Replace m32r_frame_p.
	(m32r_gdbarch_init): Call frame_unwind_append_sniffer.
	* m32r-rom.c (report_transfer_performance): Delete extern
	declaration.
	(m32r_load, m32r_upload_command): Use print_transfer_performance
	instead of report_transfer_performance.
	(_initialize_m32r_rom): Use add_setshow_cmd instead of add_set_cmd
	/ add_show_from_set.

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

	* m68hc11-tdep.c (m68hc11_gdbarch_init): Set non-deprecated
	store_return_value and extract_struct_value_address.

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

	PR c++/1267
	* minsyms.c (lookup_minimal_symbol_by_pc_section): If SECTION is
	NULL, default to the section containing PC.

2003-07-24  Stephane Carrez  <stcarrez@nerim.fr>

	* NEWS: Mention "regs" deprecated for m68hc11 too.

	* m68hc11-tdep.c (_initialize_m68hc11_tdep): Deprecate "regs" command.
	(m68hc11_print_register): New function to print out one register.
	(m68hc11_print_registers_info): New function to print registers.
	(show_regs): Deprecate and use the above.
	(m68hc11_gdbarch_init): Install the print_registers_info.

2003-07-24  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-linux-nat.c (ia64_linux_stopped_by_watchpoint): Verify
	that we have a SIGTRAP before returning non-zero.

2003-07-23  Michal Ludvig  <mludvig@suse.cz>
	    Elena Zannoni  <ezannoni@redhat.com>

 	* linespec.c (decode_line_2): Avoid crash if
 	find_function_start_sal() returns empty record.

2003-07-23  Andreas Schwab  <schwab@suse.de>

	* ia64-tdep.c (ia64_print_insn): New function.
	(ia64_gdbarch_init): Set print_insn to it.
	(_initialize_ia64_tdep): Don't set deprecated_tm_print_insn and
	deprecated_tm_print_insn_info.

2003-07-22  Michael Snyder  <msnyder@redhat.com>

	* h8300-tdep.c (h8300_extract_return_value): Teach it how to
	handle 8-bit returns (long long).
	(h8300h_extract_return_value): Ditto.
	(h8300_gdbarch_init): Long long is 8 bytes, char is unsigned.

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

	* gdbarch.c Include "gdb_obstack.h".
	(struct gdbarch): Add an "obstack".
	(alloc_gdbarch_data): Allocate the gdbarch data using
	GDBARCH_OBSTACK_CALLOC.
	(free_gdbarch_data): Delete function.
	(gdbarch_obstack_zalloc): New function.
	(gdbarch_free): Free the obstack, do not call free_gdbarch_data.
	Assert that the architecture is not initialized.
	(gdbarch_alloc): Allocate an obstack, allocate the architecture
	vector from the obstack.
	(alloc_gdbarch_data, init_gdbarch_swap): Allocate memory using the
	architecture obstack.
	(GDBARCH_OBSTACK_CALLOC, GDBARCH_OBSTACK_ZALLOC): Define.
	(set_gdbarch_data): Assert that the data is not initialized.
	(struct gdbarch_data): Delete member "free".
	(register_gdbarch_data): Do not initialize "free".
	* gdbarch.h, gdbarch.c: Re-generate.

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

	* configure.in (build_warnings): Add -Wformat-nonliteral.
	* configure: Re-generate.

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

	* dwarf2loc.c (locexpr_describe_location): Fix typos.

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

	* findvar.c (read_var_value): Remove case for thread local storage
	variables.  It is now entirely handled by the dwarf2 location
	expression code.
	* printcmd.c (address_info): Ditto.
	* symtab.h (address_class): Remove LOC_THREAD_LOCAL_STATIC
	enumeration value.
	(struct symbol): Remove objfile field, which was used by
	LOC_THREAD_LOCAL_STATIC only.
	* dwarf2read.c (decode_locdesc): Remove is_thread_local variable.
	* dwarf2loc.h (struct dwarf2_loclist_baton): Add comment about
	usage of objfile pointer.
	* dwarf2loc.c (locexpr_describe_location): Add case to handle
	thread local variables.
	Add include of objfiles.h.
	* dwarf2expr.c (execute_stack_op): Add comments about thread local
	storage variables.
	* Makefile.in (dwarf2loc.o): Update dependencies.

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

	* config/pa/tm-hppa64.h (FRAME_SAVED_PC_IN_SIGTRAMP): Use
	get_frame_base.
	(FRAME_BASE_BEFORE_SIGTRAMP): Ditto.
	(FRAME_FIND_SAVED_REGS_IN_SIGTRAMP): Ditto.
	(struct value): Add opaque declaration.
	(DEPRECATED_FRAME_ARGS_ADDRESS): Delete.

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

	From 2003-07-04 Kei Sakamoto <sakamoto.kei@renesas.com>:
	* m32r-tdep.c, m32r-stub.c, m32r-tdep.c: Rewrite.

2003-07-20  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (m68hc11_pseudo_register_read): Use
	regcache_cooked_read_unsigned instead of read_register.
	(m68hc11_saved_pc_after_call): Likewise.
	(m68hc11_pseudo_register_write): Use regcache_cooked_write_unsigned
	instead of write_register.
	(m68hc11_register_type): New function.
	(m68hc11_register_virtual_type): Remove.
	(m68hc11_store_return_value): Convert to use the regcache.
	(m68hc11_extract_struct_value_address): Likewise.
	(m68hc11_gdbarch_init): Remove deprecated ops for register to use
	m68hc11_register_type; undeprecate store_return_value and
	extract_struct_value_address.

2003-07-20  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (m68hc11_extract_return_value): Use regcache_raw_read
	and translate to use regcache.
	(m68hc11_gdbarch_init): Undeprecate extract_return_value.

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

	* gdbarch.sh (DWARF2_BUILD_FRAME_INFO): Delete method.
	* gdbarch.h, gdbarch.c: Re-generate.
	* i386-tdep.c (i386_gdbarch_init): Do not set
	DWARF2_BUILD_FRAME_INFO.
	* elfread.c (elf_symfile_read): Call dwarf2_build_frame_info
	unconditionally.
	* alpha-tdep.c (alpha_dwarf2_init_abi): Do not set
	DWARF2_BUILD_FRAME_INFO.

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

	From 2003-07-04 Kei Sakamoto <sakamoto.kei@renesas.com>:
        * disasm.c (gdb_disassemble_info): Initilize di.arch.

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

	* dwarf2-frame.c (dwarf2_frame_sniffer): Use
	frame_unwind_address_in_block, instead of frame_pc_unwind.
	(dwarf2_frame_cache): Ditto.

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

	* user-regs.h (struct gdbarch): Declare opaque.
	* ui-out.h (struct ui_file): Declare opaque.
	* dwarf2-frame.h (struct frame_info): Declare opaque.

2003-07-18  Kris Warkentin  <kewarken@qnx.com>

	* nto-procfs.c: Clean ARI hits.  Change #include <..> to
	#include "...".
	(procfs_meminfo): Change strerror to safe_strerror.
	(procfs_can_run): Remove K&R badness.

2003-07-17  Michael Snyder  <msnyder@redhat.com>

	* remote-sim.c: Comment typo fix.

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

	* defs.h (GDB_MULTI_ARCH): Delete conditional define.  Handled by
	configure.
	* sparc-tdep.c (sparc_intreg_size): Make non-static.
	* config/sparc/tm-sparc.h (GDB_MULTI_ARCH): Define to
	GDB_MULTI_ARCH_PARTIAL.

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

	* Makefile.in (x86-64-linux-nat.o): Update dependencies.
	* x86-64-linux-nat.c (ps_get_thread_area): New function.  Add
	include of asm/prctl.h, asm/ptrace.h, and gdb_proc_service.h.

2003-07-16  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_skip_prologue): Return PC unchanged if no prologue
	found.
	(avr_frame_unwind_cache): Don't unwind FP for main.
	Update a comment.
	Save the computed prev_sp.
	(avr_saved_regs_unwinder): Remove function.
	(avr_frame_prev_register): Use PC unwind logic from
	avr_saved_regs_unwinder(), otherwise use trad_frame_prev_register().

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

	* frame-base.h (frame_base_p_ftype): Delete definition.
	(frame_base_append_predicate): Delete declaration.
	* frame-unwind.h (frame_unwind_p_ftype): Delete definition.
	(frame_unwind_append_predicate): Delete declaration.
	* frame-unwind.c (struct frame_unwind_table): Delete field "p".
	(append_predicate): Delete parameter "p".
	(frame_unwind_append_predicate): Delete function.
	(frame_unwind_append_sniffer): Update call to append_predicate.
	(frame_unwind_free): Delete function.
	(_initialize_frame_unwind): Pass NULL as "free" to
	register_gdbarch_data.
	(frame_unwind_init): Append the dummy_frame_sniffer.
	(frame_unwind_find_by_frame): Simplify.
	* frame-base.c (struct frame_base_table): Delete field "p".
	(append_predicate): Delete parameter "p".
	(frame_base_append_predicate): Delete function.
	(frame_base_append_sniffer): Update call to append_predicate.
	(frame_base_free): Delete function.
	(frame_base_find_by_frame): Simplify.
	(_initialize_frame_base): Pass NULL as "free" to
	register_gdbarch_data.
	* x86-64-tdep.c (x86_64_frame_sniffer): Replace "x86_64_frame_p".
	(x86_64_sigtramp_frame_sniffer): Replace
	"x86_64_sigtramp_frame_p".
	(x86_64_init_abi): Set the frame unwind sniffers.
	* m68k-tdep.c (m68k_frame_sniffer): Replace "m68k_frame_p".
	(m68k_sigtramp_frame_sniffer): Replace "m68k_sigtramp_frame_p"
	(m68k_gdbarch_init): Set the frame unwind sniffers.
	* i386-tdep.c (i386_sigtramp_frame_sniffer): Replace
	"i386_sigtramp_frame_p".
	(i386_frame_sniffer): Replace "i386_frame_p".
	(i386_gdbarch_init): Set the frame unwind sniffers.
	* avr-tdep.c (avr_frame_sniffer): Replace "avr_frame_sniffer".
	(avr_gdbarch_init): Set the frame unwind sniffers.
	* alpha-tdep.c (alpha_sigtramp_frame_sniffer): Replace
	"alpha_sigtramp_frame_p"
	(alpha_heuristic_frame_sniffer): Replace
	"alpha_heuristic_frame_p".
	(alpha_gdbarch_init): Set the frame unwind sniffers.
	(alpha_dwarf2_init_abi): Ditto.
	* alpha-mdebug-tdep.c (alpha_mdebug_frame_sniffer): Replace
	"alpha_debug_frame_p".
	(alpha_mdebug_frame_base_sniffer): Replace
	"alpha_mdebug_frame_base_p".
	(alpha_mdebug_init_abi): Set the frame unwind sniffers.
	* d10v-tdep.c (d10v_frame_sniffer): Replace "d10v_frame_p".
	(d10v_gdbarch_init): Set the frame unwind sniffer.
	* dwarf2-frame.c (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
	(dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
	* dwarf2-frame.h (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
	(dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
	* dummy-frame.c (dummy_frame_sniffer): Replace "dummy_frame_p".
	* dummy-frame.h (dummy_frame_sniffer): Replace "dummy_frame_p".

2003-07-16  Michael Snyder  <msnyder@redhat.com>

	* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp
	should go thru sh_dsp_register_sim_regno, else the dsp regs
	will not get the right values.

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

	* sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to
	deprecated_store_floating by call to store_typed_floating.
	(sh_sh4_register_convert_to_raw): Substitute call to
	deprecated_extract_floating by call to extract_typed_floating.

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

	* sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e.

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

	* sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to
	register_size and calls to REGISTER_VIRTUAL_TYPE by calls to
	gdbarch_register_type in 32 bit code throughout.  Avoid current_gdbarch
	as possible.
	(do_pseudo_register): Remove.
	(sh_push_dummy_code): New function.
	(sh64_store_struct_return): Rename from sh_store_struct_return.
	Only called for sh64 now.
	(sh_extract_struct_value_address): Regcache'ify.
	(sh_push_dummy_call): Rename from sh_push_arguments.  Regcache'ify
	and accomodate new tasks.
	(sh64_push_return_address): Rename from sh_push_return_address.
	Only called for sh64 now.
	(sh_default_extract_return_value): Rename from sh_extract_return_value.
	Regcache'ify.
	(sh3e_sh4_extract_return_value): Regcache'ify.
	(sh_default_store_return_value): Ditto.
	(sh3e_sh4_store_return_value): Ditto.
	(sh_default_register_byte): Remove.
	(sh_sh4_register_byte): Remove.
	(sh_default_register_raw_size): Remove.
	(sh_sh4_register_raw_size): Remove.
	(sh_register_virtual_size): Remove.
	(sh_sh3e_register_virtual_type): Remove.
	(sh_sh3e_register_type): New function.
	(sh_sh4_register_virtual_type): Remove.
	(sh_sh4_register_type): New function.
	(sh_default_register_virtual_type): Remove.
	(sh_default_register_type): New function.
	(do_fv_register_info): Add parameters to accomodate call from
	sh_print_registers_info.
	(do_dr_register_info): Ditto.
	(sh_print_pseudo_register): Rename from sh_do_pseudo_register.
	Add parameters to accomodate call from sh_print_registers_info.
	(sh_do_fp_register): Ditto.
	(sh64_do_pseudo_register): Call do_dr_register_info,
	do_fv_register_info and sh_do_fp_register with default parameters.
	(sh_do_register): Add parameters to accomodate call from
	sh_print_registers_info.
	(sh_print_register): Ditto.
	(sh_print_registers_info): Rename from sh_do_registers_info.
	Add parameters to be used as gdbarch_print_registers_info
	implementation.  Accomodate removed do_pseudo_register function
	pointer.
	(sh_compact_do_registers_info): Accomodate removed do_pseudo_register
	function pointer. Call sh_print_register with default parameters.
	(sh64_do_registers_info): Call sh_print_registers_info instead of
	sh_do_registers_info.
	(sh_gdbarch_init): Rearrange to cleanup and to allow easier
	detection of deprecated vs. non-deprecated functionality.
	Rename sh_call_dummy_words to sh64_call_dummy_words.  Remove
	function pointer assignments by direct function calls.

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

	* frame.c (get_frame_id): Use frame_unwind_find_by_frame.
	(frame_register_unwind, create_new_frame): Ditto.
	(legacy_get_prev_frame, get_frame_type): Ditto.
	(get_frame_base_address): Use frame_base_find_by_frame.
	(get_frame_locals_address): Use frame_base_find_by_frame.
	(get_frame_args_address): Use frame_base_find_by_frame.
	* frame-base.h (frame_base_sniffer_ftype): Declare.
	(frame_base_append_sniffer): Declare.
	(frame_base_find_by_frame): Replace frame_base_find_by_pc.
	* frame-base.c (append_predicate): Add a "sniffer" parameter.
	(frame_base_append_sniffer): New function.
	(frame_base_append_predicate): Add a NULL sniffer.
	(frame_base_find_by_frame): Replace "frame_base_find_by_pc".
	(struct frame_base_table): Add "sniffer".
	(frame_base_free): Free the "sniffer" table.
	* frame-unwind.h (frame_unwind_sniffer_ftype): Define.
	(frame_unwind_append_sniffer): Declare.
	(frame_unwind_find_by_frame): Replace frame_unwind_find_by_pc.
	* frame-unwind.c (frame_unwind_free): Free the "sniffer" table.
	(struct frame_unwind_table): Add "sniffer", delete "middle".
	(append_predicate): Add "sniffer" parameter, append the sniffer.
	(frame_unwind_init): Update append_predicate call.
	(frame_unwind_append_sniffer): New function.
	(frame_unwind_append_predicate): Update append_predicate call.
	(frame_unwind_find_by_frame): Replace frame_unwind_find_by_pc.

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

	* frame.c (get_prev_frame): Move disabled inside_entry_func to
	before code inhibiting repeated unwind attempts.  Add to
	commentary on that test's problems.
	* blockframe.c (inside_main_func): Look for "main" in the minimal
	symbol table.
	* d10v-tdep.c (d10v_frame_this_id): Delete check that frames are
	identical.

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

	* complaints.c (struct explanation): Define.
	(struct complaints): Change type of "explanation" to "struct
	explanation".
	(symfile_explanations): Convert to a "struct explanation" table.
	(vcomplaint): Update.

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

	* x86-64-linux-nat.c (regmap): Removed.
	(supply_gregset, fill_gregset): Call
	x86_64_linux_(fill,supply)_gregset functions.
	* x86-64-linux-tdep.c (USER_*): New defines.
	(user_to_gdb_regmap, x86_64_core_fns): New structure.
	(x86_64_linux_supply_gregset, x86_64_linux_fill_gregset):
	New functions.
	(fetch_core_registers): Ditto.
	(_initialize_x86_64_linux_tdep): Call add_core_fns().
	* x86-64-linux-tdep.h: New file.
	* config/i386/x86-64linux.mh (NATDEPFILES): Remove corelow.o
	and core-regset.o.
	* config/i386/x86-64linux.mt (TDEPFILES): Add corelow.o.

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

	* x86-64-tdep.c (x86_64_store_return_value): Use
	regcache_cooked_write_part instead of regcache_cooked_write.

	* configure.host: Add x86_64-*-freebsd*.
	* configure.tgt: Add x86_64-*-freebsd*.
	* Makefile.in (amd64fbsd-nat.o, amd64fbsd-tdep.o): New targets.
	* amd64fbsd-nat.c: New file.
	* amd64fbsd-tdep.c: New file.
	* config/i386/nm-fbsd64.h: New file.
	* config/i386/fbsd64.mh: New file.
	* config/i386/fbsd64.mt: New file.

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

	* alpha-tdep.h (struct gdbarch_tdep): Add members `sc_pc_offset',
	`sc_regs_offset' and `sc_fpregs_offset'.
	* alpha-tdep.c (SIGFRAME_PC_OFF, SIGFRAME_REGSAVE_OFF,
	SIGFRAME_FPREGSAVE_OFF): Remove defines.
	(alpha_sigtramp_register_address): Rewrite to use new members of
	`struct gdbarch_tdep'.
	(alpha_gdbarch_init): Initialize new members of struct
	gdbarch_tdep'.
	* alphafbsd-tdep.c (alphafbsd_use_struct_convention): Use
	ALPHA_REGISTER_SIZE instead of DEPRECATED_REGISTER_SIZE.
	(alphafbsd_sigtramp_start, alphafbsd_sigtramp_end): Nre variables.
	(alphafbsd_pc_in_sigtramp): Implement.
	(alphafbsd_sigtramp_offset): New function.
	(alphafbsd_sigcontext_addr): New function.
	(alphafbsd_init_abi): Initialize signal trampoline related members
	of `struct gdbarch_tdep'.
	(_initialize_alphafbsd_tdep): Add prototype.

2003-07-11  Theodore A. Roth  <troth@openavr.org>

	* Makefile.in (install-only): Quote sed expression when generating
	transformed_name.

2003-07-11  Richard Henderson  <rth@redhat.com>

	* Makefile.in (dwarf2-frame.o): Add complaints_h.
	* dwarf2-frame.c: Include complaints.h.
	(decode_frame_entry_1): Rename from decode_frame_entry; tidy
	variable initialization; return NULL on error.
	(decode_frame_entry): New.

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

	* frame.h (frame_address_in_block): Delete declaration.
	* blockframe.c (frame_address_in_block): Delete function.
	(get_frame_block): Use get_frame_address_in_block.
	(block_innermost_frame): Ditto.
	* stack.c (print_frame, backtrace_command_1): Ditto.

	* frame.h (get_frame_address_in_block): Declare.
	(frame_unwind_address_in_block): Declare.
	* frame.c (frame_unwind_address_in_block): New function.
	(get_frame_address_in_block): New function.

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

	* gdbarch.sh: Simplify predicate methods.  Remove need to provide
	pre-default.   Note: re-generate has no effect.

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

	* gdbarch.sh: When a variable, but not a function, compare against
	0.  Fix problem in previous patch.
	* gdbarch.c: Re-generate.

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

	* gdbarch.sh: Use gdb_assert instead of internal_error.  Compare
	functions against NULL, not 0.
	* gdbarch.c: Re-generate.

2003-07-10  Fred Fish  <fnf@ninemoons.com>

	* coff-solib.h (SOLIB_LOADED_LIBRARY_PATHNAME): Default to a
	null string instead of a null pointer.
	* solib.h (SOLIB_LOADED_LIBRARY_PATHNAME): Ditto.

2003-07-09  Michael Snyder  <msnyder@redhat.com>

	* sh-tdep.c (sh_dsp_register_sim_regno): Off-by-one error.

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

	* x86-64-tdep.h (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): Moved here ...
	* x86-64-tdep.c: ... from here.

2003-07-09  Andreas Schwab  <schwab@suse.de>

	* m68k-tdep.h (enum struct_return): Define.
	(struct gdbarch_tdep): Add struct_return.
	* m68k-tdep.c (m68k_push_dummy_call): Non-scalars bigger than 4
	bytes are padded to the right, not to the left.  Pass struct value
	address in register %a1, not on stack.
	(m68k_use_struct_convention): New function.
	(m68k_gdbarch_init): Set use_struct_convention.  Initialize
	struct_return in tdep to pcc_struct_return.
	* m68klinux-tdep.c (m68k_linux_init_abi): Set struct_return to
	reg_struct_return.

2003-07-09  Joel Brobecker  <brobecker@gnat.com>

	* somread.c (som_symfile_offsets): Fix compilation error.

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

	* regcache.c (register_size): Only check REGISTER_RAW_SIZE once.
	Add comments about the checks.

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

	* Makefile.in: Make dependency section headers consistent.
	(config_h): Move to $BUILD headers section.
	(exc_request_U_h, exc_request_S_h, msg_reply_S_h): Ditto.
	(msg_U_h, notify_S_h, process_reply_S_h): Ditto.
	(ada-exp.tab.c): Move to YACC/LEX section.
	(ada-lex.c, c-exp.tab.c, f-exp.tab.c): Ditto.
	(jv-exp.tab.c, m2-exp.tab.c, objc-exp.tab.c, p-exp.tab.c): Ditto.

2003-07-08  Kris Warkentin  <kewarken@qnx.com>

	* nto-procfs.c: Cleaned up a bunch of ARI hits.
	Include "gdb_dirent.h" instead of <dirent.h>, replace all instances
	of strerror with safe_strerror, use ISO C function definitions,
	and replace instances of sprintf with snprintf.

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

	* frame.c (get_prev_frame): Enable check for identical frames.
	Update comments.  Update error messages.

2003-07-07  Joel Brobecker  <brobecker@gnat.com>

        * hpread.c (hpread_psymtab_to_symtab_1): Fix compilation failure.

2003-07-07  Joel Brobecker  <brobecker@gnat.com>

        * xcoffread.c (xcoff_psymtab_to_symtab_1): Remove call to
        sort_symtab_syms, no longer necessary.

2003-07-07  Joel Brobecker  <brobecker@gnat.com>

	* config/mips/tm-irix6.h (MIPS_REGISTER_TYPE): Add comment.

2003-07-07  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips_register_raw_size): Fix compilation failure.
	(mips_register_byte): Likewise.

2003-07-07  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (sparc_tdep_h): New.
	(sparc-linux-nat.o, sparc-nat.o, sparc-tdep.o, sparc64nbsd-nat.o)
	(sparcnbsd-nat.o, sparcnbsd-tdep.o): Depend on $(sparc_tdep_h).
	* sparc-linux-nat.c: Include "sparc-tdep.h".
	* sparc-nat.c: Likewise.
	* sparc-tdep.c: Likewise.
	* sparc64nbsd-nat.c: Likewise.
	* sparcnbsd-nat.c: Likewise.
	* sparcnbsd-tdep.c: Likewise.
	* sparc-tdep.h: New file.
	* config/sparc/tm-sparc.h: Remove prototypes for sparc_y_regnum
	and sparc_npc_regnum.

2003-07-07  Daniel Jacobowitz  <drow@mvista.com>

	* mips-linux-nat.c (mips_linux_cannot_fetch_register)
	(mips_linux_cannot_store_register): List supported instead of
	unsupported registers.

2003-07-07  Daniel Jacobowitz  <drow@mvista.com>

	* disasm.c (dump_insns): Separate instructions from addresses.

2003-07-07  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (m68k-tdep.o, m68klinux-tdep.o): Update
	dependencies.
	* m68k-tdep.c (NUM_FREGS): Delete.
	(SIG_PC_FP_OFFSET): Delete.
	(TARGET_M68K): Delete.
	(P_MOVEAL_SP_FP, P_ADDAW_SP, P_ADDAL_SP, P_SUBQW_SP,
	P_SUBQL_SP, P_LEA_SP_SP, P_LEA_PC_A5, P_FMOVEMX_SP,
	P_MOVEL_SP, P_MOVEML_SP): Define.
	(P_MOVL_SP_FP, P_MOVL, P_JSR, P_BSR, P_LEAL, P_MOVML, P_FMOVM,
	P_TRAP): Delete.
        (m68k_register_raw_size): Delete.
	(m68k_register_virtual_size): Delete.
	(m68k_register_type): Renamed from m68k_register_virtual_type and
	add gdbarch argument.
	(m68k_store_struct_return): Delete.
	(m68k_deprecated_extract_return_value): Delete.
	(m68k_deprecated_extract_struct_value_address): Delete.
	(m68k_frame_chain): Delete.
	(m68k_frame_saved_pc): Delete.
	(m68k_fix_call_dummy): Delete.
	(m68k_push_dummy_frame): Delete.
	(m68k_pop_frame): Delete.
	(m68k_extract_return_value): New function.
	(m68k_store_return_value): Rewrite using regcache.
	(m68k_extract_struct_value_address): Rewrite using regcache.
	(m68k_push_dummy_call): New function.
	(struct m68k_frame_cache): Define.
	(m68k_alloc_frame_cache): New function.
	(m68k_analyze_frame_setup): New function.
	(m68k_analyze_register_saves): New function.
	(m68k_analyze_prologue): New function.
	(m68k_skip_prologue): Rewrite using above functions.
	(m68k_unwind_pc): New function.
	(m68k_frame_cache): New function.
	(m68k_frame_this_id): New function.
	(m68k_frame_prev_register): New function.
	(m68k_frame_unwind): New variable.
	(m68k_frame_p): New function.
	(m68k_sigtramp_frame_cache): New function.
	(m68k_sigtramp_frame_this_id): New function.
	(m68k_sigtramp_frame_prev_register): New function.
	(m68k_sigtramp_frame_unwind): New variable.
	(m68k_sigtramp_frame_p): New function.
	(m68k_frame_base_address): New function.
	(m68k_frame_base): New function.
	(m68k_unwind_dummy_id): New function.
	(fill_gregset): Use regcache_collect.
	(fill_fpregset): Likewise.
	(m68k_saved_pc_after_call): Only define if SYSCALL_TRAP is
	defined.
	(m68k_gdbarch_init): Don't define call_dummy_words.  Don't set
	deprecated_init_frame_pc, deprecated_store_struct_return,
	deprecated_extract_return_value, deprecated_store_return_value,
	deprecated_frame_chain, deprecated_frame_saved_pc,
	deprecated_frame_init_saved_regs, deprecated_register_raw_size,
	deprecated_register_virtual_size,
	deprecated_max_register_raw_size,
	deprecated_max_register_virtual_size,
	deprecated_register_virtual_type, deprecated_register_size,
	deprecated_register_byte, deprecated_register_bytes,
	deprecated_fp_regnum, deprecated_use_generic_dummy_frames,
	call_dummy_location, deprecated_call_dummy_breakpoint_offset,
	deprecated_pc_in_call_dummy, deprecated_call_dummy_length,
	deprecated_call_dummy_start_offset, deprecated_call_dummy_words,
	deprecated_sizeof_call_dummy_words, deprecated_fix_call_dummy,
	deprecated_push_dummy_frame, deprecated_pop_frame,
	deprecated_dummy_write_sp.  Set deprecated_saved_pc_after_call
	only if SYSCALL_TRAP is defined.  Set extract_return_value,
	store_return_value, extract_struct_value_address, register_type,
	push_dummy_call, unwind_dummy_id, unwind_pc.  Add two frame unwind
	predicates.
	* m68k-tdep.h (M68K_D1_REGNUM, M68K_NUM_REGS,
	M68K_MAX_REGISTER_SIZE): Define.
	(struct m68k_sigtramp_info): Define.
	(struct gdbarch_tdep): Add get_sigtramp_info.
	* m68klinux-nat.c (fetch_register): Use register_size instead of
	REGISTER_RAW_SIZE.  Don't put assignment in if.
	(store_register): Likewise.
	(fetch_inferior_registers): Likewise.
	(store_inferior_registers): Likewise.
	* m68klinux-tdep.c (m68k_linux_sigtramp_saved_pc): Delete.
	(m68k_linux_frame_saved_pc): Delete.
	(m68k_linux_sigcontext_reg_offset,
	m68k_linux_ucontext_reg_offset): Define.
	(m68k_linux_get_sigtramp_info): New function.
	(m68k_linux_extract_return_value): Rewrite using regcache.
	(m68k_linux_store_return_value): Likewise.
	(m68k_linux_extract_struct_value_address): Likewise.
	(m68k_linux_init_abi): Set get_sigtramp_info in tdep structure.
	Don't set deprecated_frame_saved_pc,
	deprecated_extract_return_value, deprecated_store_return_value,
	deprecated_extract_struct_value_address.  Set
	extract_return_value, store_return_value,
	extract_struct_value_address.

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

	* expprint.c: Include "user-regs.h" instead of "frame.h".
	(print_subexp): Use user_reg_map_regnum_to_name, instead of
	frame_map_regnum_to_name.
	* frame.c: Include "user-regs.h" instead of "builtin-regs.h".
	(frame_map_name_to_regnum): Simplify, call
	user_reg_map_name_to_regnum.
	(frame_map_regnum_to_name): Simplify, call
	user_reg_map_regnum_to_name.
	(frame_register_unwind): Update.
	* std-regs.c: Include "user-regs.h" instead of "builtin-regs.h".
	(_initialize_frame_reg): Call user_reg_add_builtin.
	* findvar.c: Include "user-regs.h" instead of "builtin-regs.h".
	(value_of_register): Use value_of_user_reg.
	* eval.c (evaluate_subexp_standard): Update.
	* parse.c (write_dollar_variable): Update.
	* d10v-tdep.c (d10v_print_registers_info): Update.
	* infcmd.c (registers_info): Update.
	* Makefile.in (SFILES): Delete "builtin-regs.c", add "user-regs.c".
	(builtin_regs_h): Delete macro.
	(user_regs_h): Define.
	(COMMON_OBS): Delete "builtin-regs.o", add "user-regs.o".
	(builtin-regs.o): Delete target.
	(user-regs.o): Specify dependencies.
	(expprint.o): Update dependencies.
	(findvar.o): Update dependencies.
	(frame.o): Update dependencies.
	(std-regs.o): Update dependencies.

2003-07-06  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c (solib_symbols_add): Use one variable for all section
	address stuff.  Pass variable rather than address of variable to
	safe_symbol_file_add.

2003-07-06  Andreas Schwab  <schwab@suse.de>

	* m68klinux-nat.c (fill_fpregset): Fix use of loop index.

2003-07-04  Joel Brobecker  <brobecker@gnat.com>

	* rs6000-nat.c (vmap_symtab): Fix compilation error.

2003-07-04  Kris Warkentin  <kewarken@qnx.com>

	* config/i386/nto.mh: Set XM_FILE to xm-i386.h

2003-07-04  Kris Warkentin  <kewarken@qnx.com>

	* nto-procfs.c: New file.  Native procfs support for QNX Neutrino.
	* config/i386/nto.mh: New file.
	* config/i386/nm-nto.h: New file.
	* configure.host: Add i[3456]86-*-nto*.

2003-07-03  Joel Brobecker  <brobecker@gnat.com>

	* remote-vx.c (vx_add_symbols): Fix compilation error.

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

	* gdbarch.sh (REGISTER_NAME): Do not supply a default.
	* gdbarch.h, gdbarch.c: Re-generate.
	* config/sparc/tm-sparc.h (REGISTER_NAME): Define.
	(legacy_register_name): Declare.
	* config/sparc/tm-sp64.h (legacy_register_name): Declare.
	(REGISTER_NAME): Define.
	* sparc-tdep.c (legacy_register_name): New function.
	* config/pa/tm-hppa64.h (REGISTER_NAMES): Delete macro.
	(REGISTER_NAME): Define.
	(hppa64_register_name): Declare.
	* config/pa/tm-hppa.h (REGISTER_NAMES): Delete macro.
	* hppa-tdep.c (hppa_gdbarch_init): Set hppa_register_name.
	(hppa64_register_name): New function.
	(hppa_register_name): New function.
	* arch-utils.c (legacy_register_name): Delete.
	* arch-utils.h (legacy_register_name): Delete.

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

	* cli/cli-interp.c (cli_interpreter_resume): Update the
	cli_uiout's stream to gdb_stdout.

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

	* gdbarch.sh (REGISTER_RAW_SIZE, REGISTER_VIRTUAL_SIZE): Add
	predicate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* regcache.c (init_regcache_descr): Use legacy code when either
	REGISTER_BYTE or REGISTER_RAW_SIZE is set.

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

	* NEWS: Move "set logging" entry into GDB 6.0 section.

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

	* s390-tdep.c (struct frame_extra_info): new member:
	'stack_bought_valid'.
	(s390_get_frame_info): Set fextra_info->stack_bought_valid if we
	initialize fextra_info->stack_bought.
	(s390_frameless_function_invocation): Don't trust the value of
	fextra_info_ptr->stack_bought unless
	fextra_info->stack_bought_valid is set.

	New S390 prologue analyzer.
	* s390-tdep.c (struct prologue_value, enum pv_boolean): New types.
	(pv_set_to_unknown, pv_set_to_constant, pv_set_to_register,
	pv_constant_last, pv_add, pv_add_constant, pv_subtract,
	pv_logical_and, pv_is_identical, pv_is_register, pv_is_array_ref,
	compute_x_addr, s390_on_stack, s390_store,
	s390_get_signal_frame_info): New functions.
	(S390_NUM_SPILL_SLOTS): New macro.
	(s390_get_frame_info): Rewritten.
	(is_arg_reg): Deleted.

        Break out the decoding of S/390 instructions into separate
        functions, to make it more legible, and easier to check
        against the spec.
        * s390-tdep.c (is_ri, is_ril, is_rr, is_rre, is_rs, is_rse,
	is_rx, is_rxe): New functions.
	(op1_aghi, op2_aghi, op1_ahi, op2_ahi, op_ar, op_basr, op1_bras,
	op2_bras, op_l, op_la, op1_larl, op2_larl, op_lgr, op1_lghi,
	op2_lghi, op1_lhi, op2_lhi, op_lr, op_nr, op_ngr, op_s, op_st,
	op_std, op1_stg, op2_stg, op_stm, op1_stmg, op2_stmg, op_svc): New
	enums for opcode values.  (Is this an improvement?)

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

	* i386-tdep.c: Revert change committed as part of trad-frame code
	below.

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

	* breakpoint.c (insert_catchpoint): Make static.

2003-07-02  Andreas Schwab  <schwab@suse.de>

	* ia64-tdep.c (ia64_push_dummy_call): Define as combination of
	former ia64_push_arguments and ia64_push_return_address, and use
	regcache functions instead of read/write_register.
	(ia64_gdbarch_init): Set push_dummy_call instead of
	deprecated_push_arguments and deprecated_push_return_address.

2003-07-01  Andreas Jaeger  <aj@suse.de>

	* x86-64-tdep.c (x86_64_push_arguments): Align stack to 16-byte
	before the call.
	Set %rax only to number of SSE registers used.

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

	* trad-frame.h: Update comments, a -1 .addr is reserved.
	(trad_frame_value_p, trad_frame_addr_p): Declare.
	(trad_frame_reg_p): Declare.
	(trad_frame_set_value): Rename trad_frame_register_value.
	(trad_frame_set_unknown): Declare.
	* trad-frame.c (trad_frame_realreg_p): New function.
	(trad_frame_addr_p, trad_frame_value_p): New function.
	(trad_frame_set_unknown): New function.
	(trad_frame_alloc_saved_regs): Initialize .addr to -1, not zero.
	(trad_frame_prev_register): Use trad_frame_realreg_p,
	trad_frame_addr_p and trad_frame_value_p.
	(trad_frame_set_value): Rename trad_frame_register_value.
	* d10v-tdep.c (d10v_frame_unwind_cache): Use trad_frame_addr_p
	and trad_frame_set_value.

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

	Patch from IBM (authors unspecified, probably Ulrich Weigand and
	Gerhard Tonn) for argument passing on the S/390 and S/390x:
	* s390-tdep.c (S390_STACK_FRAME_OVERHEAD): This is always space
	for 16 registers, and then 32 more bytes.
	(S390_STACK_PARAMETER_ALIGNMENT, S390_NUM_FP_PARAMETER_REGISTERS):
	New macros.
	(is_double_arg): The s390x doesn't handle DOUBLE_ARGS specially.
	Move up in the file, since it's now used by is_simple_arg.
	(is_simple_arg): Don't assume registers are four bytes long.
	Exclude all double arguments.  Extended floats are not simple
	args.
	(is_power_of_two): New function.
	(pass_by_copy_ref): Call is_power_of_two, and check that the
	length fits in a register, rather than listing all the acceptable
	sizes.  Extended floats are not passed by reference.
	(s390_push_arguments): Don't assume registers are four bytes long.
	Reserve an argument register to point to the buffer for structures
	returned by value.  Use S390_NUM_FP_PARAMETER_REGISTERS and
	S390_STACK_FRAME_OVERHEAD.

2003-06-30  Andreas Schwab  <schwab@suse.de>

	* utils.c (internal_vproblem): Use xvasprintf, not xasprintf, to
	format error message.

2003-06-30  Joel Brobecker  <brobecker@gnat.com>

	* sparc-tdep.c (stop_after_trap): Remove declaration, not used.

2003-06-30  David Carlton  <carlton@kealia.com>

	Band-aid for PR c++/1245.
	* Makefile.in (cp-support.o): Depend on complaints_h.
	* cp-support.c: Include complaints.h.  Add declaration for
	find_last_component.
	(cp_find_first_component): Separate code into
	cp_find_first_component_aux.
	(cp_find_first_component_aux): Call demangled_name_complaint.
	(demangled_name_complaint): New.

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

	* remote.c (remote_write_bytes): Explicitly compute and then use
	the payload size.  Update comments to reflect.  Fixes problem of
	GDB not sending small packets as found by Fred Fish.

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

	* remote.c (remote_async_wait): Fix -Wformat problem.

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

	* remote.c (remote_wait): Call error, and not warning, when the
	packet is corrupt.
	(remote_async_wait): Ditto.

2003-06-29  Daniel Jacobowitz  <drow@mvista.com>

	* sparc-tdep.c (sparc_y_regnum): Make external again.

2003-06-29  Daniel Jacobowitz  <drow@mvista.com>

	* cli/cli-logging.c (pop_output_files): Add void to function
	definition.

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

	* frame.c (frame_register_unwind): Use unsigned char when dumping
	the buffer contents.

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

	* cli/cli-logging.c: New file.
	* cli-out.c (struct ui_out_data): Add original_stream.
	(cli_redirect): New function.
	(cli_ui_out_impl): Add cli_redirect.
	(cli_out_new): Initialize original_stream.
	* ui-out.c (default_ui_out_impl): Add NULL for redirect member.
	(uo_redirect, ui_out_redirect): New.
	* ui-out.h (struct ui_out_impl): Add redirect member.
	(redirect_ftype): New.
	(ui_out_redirect): Add prototype.
	* Makefile.in: Add rules for cli-logging.c.
	* NEWS: Mention "set logging".

2003-06-27  Elena Zannoni  <ezannoni@redhat.com>

	* config/powerpc/ppc64-linux.mh (NATDEPFILES): Add linux-nat.o.

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

	* m68hc11-tdep.c (m68hc11_call_dummy_address): Delete function.
	(m68hc11_gdbarch_init): Do not set call_dummy_address.
	* avr-tdep.c (avr_call_dummy_address): Delete function.
	(avr_gdbarch_init): Do not set call_dummy_address.

2003-06-27  Elena Zannoni  <ezannoni@redhat.com>

	* symfile.c (syms_from_objfile): Move variables to inner block.
	Move the checks for the non-mainline case a bit earlier to avoid
	doing some useless computations.

2003-06-27  Elena Zannoni  <ezannoni@redhat.com>

        * dwarfread.c (decode_modified_type): Gag new compiler warning.

2003-06-26  Elena Zannoni  <ezannoni@redhat.com>

	* dwarf2read.c (dwarf2_locate_sections): Ignore empty .eh_frame
	sections.

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

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

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

	* config/djgpp/fnchange.lst: Fix 8.3 problem with sim/ppc's
	altivec_expression.h and altivec_registers.h.

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

	* mips-tdep.c (gdb_print_insn_mips): Only explicitly set
	info->mach when MIPS16.  Patch suggested by Fred Fish.

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

	* utils.c (internal_vproblem): Print the problem to a reason
	buffer and then pass to query.  Make the msg variable more local.

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

	* gdbarch.sh (FRAME_ARGS_ADDRESS): Add predicate.  Deprecate.
	(FRAME_LOCALS_ADDRESS): Add predicate.  Deprecate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame-base.c (default_frame_args_address): Update.  Use
	default_frame_base_address when DEPRECATED_FRAME_ARGS_ADDRESS is
	not available.
	(default_frame_locals_address): Ditto for
	DEPRECATED_FRAME_LOCALS_ADDRESS.
	* vax-tdep.c (vax_sigtramp_saved_pc): Update.
	(vax_frame_num_args): Update.
	(vax_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* symtab.h (address_class): Update comments.
	* ns32k-tdep.c (ns32k_sigtramp_saved_pc): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
	(DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
	* config/pa/tm-hppa64.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
	(DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
	(DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
	* alpha-mdebug-tdep.c: Update.
	* ada-lang.c (add_symbols_from_enclosing_procs): Update.

2003-06-26  Andreas Jaeger  <aj@suse.de>

	* x86-64-tdep.c (x86_64_push_arguments): Always set %rax to number
	of SSE registers so that varargs functions work.  Rework handling
	of passing arguments on the stack.
	(x86_64_store_return_value): Return double and float values in SSE
	register.

2003-06-24  Michael Chastain  <mec@shout.net>

	* PROBLEMS: Document pr gdb/1091 and pr gdb/1193,
	the "constructor breakpoints ignored" bug.

2003-06-25  David Carlton  <carlton@kealia.com>

	* MAINTAINERS: Update e-mail address.

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

	* ppc-linux-tdep.c: More "Linux" -> "GNU/Linux".

	* ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): New
	function.
	(ppc_linux_init_abi): Register it as the
	CONVERT_FROM_FUNC_PTR_ADDR method under the PPC64 Linux ABI.

	* ppc-linux-tdep.c (ppc64_call_dummy_address): New function.
	(ppc_linux_init_abi): Set it as the gdbarch's call_dummy_address
	method.

	* ppc-linux-tdep.c (ppc64_desc_entry_point): New function.
	(ppc64_standard_linkage_target): Use it.

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

	* rs6000-tdep.c (rs6000_register_virtual_type): Add explict cases
	for 0 "int0" and 4 "int32" sized registers.
	* gdbtypes.c (builtin_type_int0): Define.
	(build_gdbtypes): Initialize builtin_type_int0.
	* gdbtypes.h (builtin_type_int0): Declare.

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

	* m68hc11-tdep.c (m68hc11_gdbarch_init): Clear gdb_arch_char_signed
	as characters are unsigned.

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

	PR gdb/1179
	* dwarfread.c (struct_type): Skip static fields without crashing.

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

	GDB 6.0 branch created.
	* README: Update.
	* PROBLEMS: Update.  Empty.
	* NEWS: Update.

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

	* symfile.c (add_symbol_file_command): Use parse_and_eval_address.
	Suggested by Nick Hibma <n_hibma@webweaving.org>.

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

	* osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Handle
	GNU_ABI_TAG_FREEBSD and GNU_ABI_TAG_NETBSD.  Suggested by Momchil
	Velikov.

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

	* cli/cli-cmds.c (shell_escape): Silence warnings from old
	compilers.

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

	* c-valprint.c (c_value_print): Add VALUE_OFFSET to the address
	argument of val_print.
	* cp-valprint.c (cp_print_value): Don't add the offset parameter
	to the address argument of baseclass_offset or target_read_memory.
	Do add it to the argument of cp_print_value_fields.

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

	* mips-tdep.c: Include "reggroups.h" and "sim-regno.h".
	(mips_register_name): Return names for NUM_REGS..2*NUM_REGS
	instead of 0..NUM_REGS.
	(mips_register_reggroup_p): New function.
	(mips_pseudo_register_write): New function.
	(mips_pseudo_register_read): New function.
	(mips_register_raw_size): For NUM_REGS..2*NUM_REGS return the size
	based on the register's type.
	(read_next_frame_reg): Simplify.  Assert that REGNO is a pseudo /
	cooked.
	(mips_get_saved_register): Simplify.  Assert that REGNO is a
	pseudo / cooked.
	(mips_register_byte): New function.  Use MIPS_REGISTER_BYTE.
	(mips_register_type): Replace mips_register_virtual_type.  Map
	NUM_REGS..2*NUM_REGS onto 0..NUM_REGS.  Use MIPS_REGISTER_TYPE
	when available.
	(read_next_frame_reg): Simplify, but handle SP_REGNUM.  Assert
	that the register is cooked / virtual.
	(mips_frame_saved_pc): Fetch the cooked PC, and not the raw PC.
	Only get the extra info when needed.
	(set_reg_offset): Save the offset in NUM_REGS..2*NUM_REGS as well.
	(mips32_heuristic_proc_desc): Fetch the cooked register.
	(heuristic_proc_desc, mips_pop_frame, get_frame_pointer): Ditto.
	(mips_init_extra_frame_info, get_frame_pointer): Ditto.
	(mips_print_register): Use gdbarch_register_type, instead of
	REGISTER_VIRTUAL_TYPE.
	(print_gp_register_row): Use gdbarch_register_type, instead of
	REGISTER_VIRTUAL_TYPE.  Allow for a pseudo / cooked REGNUM.
	(mips_print_registers_info): Assert REGNO is pseodo / cooked.
	Print the pseudo / cooked registers.
	(mips_print_registers_info): Assert REGNO is pseodo / cooked.
	Print the pseudo / cooked registers.
	(mips_xfer_register): Use regcache_cooked_read_part.  Assert that
	REG_NUM is pseudo / cooked.
	(mips_o32_xfer_return_value): Xfer the pseudo / cooked register.
	(mips_n32n64_xfer_return_value): Ditto.
	(mips_stab_reg_to_regnum): Map onto NUM_REGS..2*NUM_REGS.
	(mips_dwarf_dwarf2_ecoff_reg_to_regnum): Ditto.
	(mips_register_sim_regno): New function.
	(mips_gdbarch_init): Set deprecated_register_byte,
	register_group_p, pseudo_register_write, pseudo_register_read,
	register_sim_regno, and num_pseudo_regs.  Set register_type,
	instead of register_virtual_type.
	* Makefile.in (mips-tdep.o): Update dependencies.
	* config/mips/tm-mips64.h (MIPS_REGISTER_TYPE): Rename
	REGISTER_VIRTUAL_TYPE.
	* config/mips/tm-mips.h	(MIPS_REGISTER_TYPE): Ditto.
	* config/mips/tm-irix5.h (MIPS_REGISTER_TYPE): Ditto.
	* config/mips/tm-mips.h (MIPS_REGISTER_BYTE): Rename REGISTER_BYTE.
	* config/mips/tm-irix6.h (MIPS_REGISTER_BYTE): Ditto.
	* config/mips/tm-irix5.h (MIPS_REGISTER_BYTE): Ditto.

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

	* Makefile.in (cli-cmds.o): Depend on $(gdb_vfork_h)
	* cli/cli-cmds.c: Include "gdb_vfork.h".
	(shell_escape): Use vfork.

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

	* mips-tdep.c (mips_find_saved_regs): Rewrite mdebug code handling
	32 bit floating-point register saves.

	* frame.h (deprecated_unwind_get_saved_register): Delete.
	* frame.c (deprecated_unwind_get_saved_register): Delete function.
	* mips-tdep.c (mips_get_saved_register): Use frame_register_unwind
	and deprecated_get_next_frame_hack instead of
	deprecated_unwind_get_saved_register.

	* mips-tdep.c (mips_dump_tdep): Do not print
	REGISTER_CONVERT_FROM_TYPE or REGISTER_CONVERT_TO_TYPE.

	* frame.c (get_frame_register): New function.
	(frame_unwind_register_signed): New function.
	(get_frame_register_signed): New function.
	(frame_unwind_register_unsigned): New function.
	(get_frame_register_unsigned): New function.
	* frame.h: Add comments on naming schema.
	(get_frame_register, frame_unwind_register_signed): Declare.
	(get_frame_register_signed, get_frame_register_signed): Declare.
	(frame_unwind_register_unsigned): Declare.
	(get_frame_register_unsigned): Declare.

2003-06-20  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_bfd_vma_bit.

2003-06-20  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_read_pc): Use regcache instead of read_register.
	(avr_read_sp): Ditto.

2003-06-20  Daniel Jacobowitz  <drow@mvista.com>

	* config/arm/linux.mt: Remove code protected by GDBSERVER define.
	* config/arm/nm-linux.h: Likewise.
	* config/arm/tm-linux.h: Likewise.
	* config/ia64/nm-linux.h: Likewise.
	* config/ia64/tm-ia64.h: Likewise.
	* config/s390/tm-linux.h: Likewise.
	* config/s390/tm-s390.h: Likewise.
	* s390-nat.c: Likewise.
	* s390-tdep.c: Likewise.

	* config/i386/linux.mt: Don't set GDBSERVER_DEPFILES.
	* config/ia64/linux.mt: Likewise.
	* config/m68k/linux.mh: Likewise.
	* config/mips/linux.mt: Likewise.
	* config/powerpc/linux.mh: Likewise.
	* config/sh/linux.mt: Likewise.

2003-06-19  Kris Warkentin  <kewarken@qnx.com>

	* solib.c (solib_open): Change tests for whether to search
	LD_LIBRARY_PATH and PATH to better deal with remotes.  Update
	comments.

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

	* avr-tdep.c (avr_frame_address): Delete function.
	(avr_gdbarch_init): Don't call set_gdbarch_frame_args_address,
	set_gdbarch_frame_args_address.

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

	* config/mips/tm-mips.h (REGISTER_CONVERT_TO_TYPE): Delete.
	(REGISTER_CONVERT_FROM_TYPE): Delete.
	(mips_register_convert_to_type): Delete declaration.
	(mips_register_convert_from_type): Delete declaration.
	* linux-nat.h (struct target_ops): Declare opaque.  s/Linux/Linux
	kernel/.

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

	* linux-nat.h: New file.
	* linux-nat.c: Include linux-nat.h.
	* lin-lwp.c: Include linux-nat.h.
	Move struct lwp_info def to linux-nat.h.
	* linux-proc.c: Include linux-nat.h.
	(linux_make_note_section): Iterate over lwps instead of threads.
	(linux_do_thread_registers): Use lwp instead of merged pid.
	* config/nm-linux.h: Move miscelaneous def'ns to linux-nat.h.
	* Makefile.in (lin-lwp.o, linux-proc.o, linux-nat.o):
	Add dependency on linux_nat_h.

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

	* avr-tdep.c (avr_extract_return_value): Delete debugging fprintf.

2003-06-19  Daniel Jacobowitz  <drow@mvista.com>

	* varobj.c (get_type, get_target_type): Use check_typedef.

2003-06-19  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (insert_catchpoint): Call internal_error.

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

	* avr-tdep.c (avr_push_dummy_code): Delete function.
	(avr_gdbarch_init): Don't call set_gdbarch_push_dummy_code.

2003-06-19  Daniel Jacobowitz  <drow@mvista.com>

	* arch-utils.c (default_prepare_to_proceed): Remove.
	(generic_prepare_to_proceed): Remove.
	* arch-utils.h (default_prepare_to_proceed): Remove prototype.
	(generic_prepare_to_proceed): Remove prototype.
	* gdbarch.sh (PREPARE_TO_PROCEED): Remove.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* hppa-tdep.c (hppa_prepare_to_proceed): Remove dangling prototype.
	* hppah-nat.c (hppa_switched_threads): Remove.
	* infrun.c (prepare_to_proceed): New static function, copied from
	generic_prepare_to_proceed.  Remove select_it argument.
	(proceed): Call prepare_to_proceed.
	* infttrace.c (old_gdb_pid, reported_pid, reported_bpt): Remove
	variables.
	(ptrace_wait): Don't set the removed variables.
	(hppa_switched_threads): Remove.
	* lin-lwp.c (lin_lwp_prepare_to_proceed): Remove.
	* config/nm-linux.h (PREPARE_TO_PROCEED): Don't define.
	(lin_lwp_prepare_to_proceed): Remove prototype.
	* config/i386/nm-x86-64linux.h (PREPARE_TO_PROCEED): Don't undefine.
	* config/pa/nm-hppah.h (PREPARE_TO_PROCEED): Don't define.

2003-06-18  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c: Include frame.h, frame-unwind.h, frame-base.h, and
	trad-frame.h.
	(AVR_MAX_PROLOGUE_SIZE): Increase from 56 to 64.
	(AVR_ARG1_REGNUM, AVR_ARGN_REGNUM): Define.
	(AVR_RET1_REGNUM, AVR_RETN_REGNUM): Define.
	(AVR_PROLOGUE_*): Enumerate prologue types.
	(struct frame_extra_info): Remove.
	(struct avr_unwind_cache): Define.
	(avr_write_sp): Delete function.
	(avr_read_fp): Ditto.
	(avr_init_extra_frame_info): Ditto.
	(avr_pop_frame): Ditto.
	(avr_frame_saved_pc): Ditto.
	(avr_saved_pc_after_call): Ditto.
	(avr_push_return_address): Ditto.
	(avr_frame_chain): Ditto.
	(avr_store_struct_return): Ditto.
	(avr_push_arguments): Ditto.
	(avr_scan_prologue): Update comments. Changed to set up the info for
	cache unwinding. Now returns end of prologue PC.
	(avr_skip_prologue): Better handling of functions lacking a prologue
	by using avr_scan_prologue.
	(avr_scan_arg_moves): New function.
	(avr_saved_regs_unwinder): Ditto.
	(avr_frame_unwind_cache): Ditto.
	(avr_unwind_pc): Ditto.
	(avr_frame_this_id): Ditto.
	(avr_frame_prev_register): Ditto.
	(avr_frame_p): Ditto.
	(avr_frame_base_address ): Ditto.
	(avr_unwind_dummy_id): Ditto.
	(avr_push_dummy_code): Ditto.
	(push_stack_item): Ditto.
	(pop_stack_item): Ditto.
	(avr_push_dummy_call): Ditto.
	(struct stack_item): Define.
	(avr_frame_unwind): Declare structure.
	(avr_frame_base): Ditto.
	(avr_gdbarch_init): Remove calls to
	set_gdbarch_deprecated_init_frame_pc,
	set_gdbarch_deprecated_target_read_fp,
	set_gdbarch_deprecated_dummy_write_sp,
	set_gdbarch_deprecated_fp_regnum,
	set_gdbarch_deprecated_push_arguments,
	set_gdbarch_deprecated_push_return_address,
	set_gdbarch_deprecated_pop_frame,
	set_gdbarch_deprecated_store_struct_return,
	set_gdbarch_deprecated_frame_init_saved_regs,
	set_gdbarch_deprecated_init_extra_frame_info,
	set_gdbarch_deprecated_frame_chain,
	set_gdbarch_deprecated_frame_saved_pc,
	set_gdbarch_deprecated_saved_pc_after_call.
	Add calls to set_gdbarch_push_dummy_call,
	set_gdbarch_push_dummy_code,
	frame_unwind_append_predicate,
	frame_base_set_default,
	set_gdbarch_unwind_dummy_id,
	set_gdbarch_unwind_pc.
	Wrap a long line.

2003-06-18  Corinna Vinschen  <vinschen@redhat.com>

	* h8300-tdep.c (h8300s_register_name): Enable MACH and MACL
	registers for H8/300S.
	(h8300_print_registers_info): Ditto.
	(h8300_gdbarch_init): Accommodate register count for H8/300S.

2003-06-18  Daniel Jacobowitz  <drow@mvista.com>

	* config/nm-linux.h (linux_record_stopped_pid): New prototype.
	* lin-lwp.c (child_wait): Call linux_record_stopped_pid.
	(lin_lwp_wait): Likewise.  Update comments.
	* linux-nat.c (struct simple_pid_list, add_to_pid_list)
	(pull_pid_from_list, linux_record_stopped_pid): New.

2003-06-17  Stephane Carrez  <stcarrez@nerim.fr>

	* ada-lang.c (scan_discrim_bound): Name first argument.
	(ada_add_block_symbols): Remove BLOCK_SYM to use local variable
	declared by ALL_BLOCK_SYMBOLS.

2003-06-17  Stephane Carrez  <stcarrez@nerim.fr>

	* ada-tasks.c (find_function_in_inferior): Don't declare it.
	("regcache.h"): Include it.
	* ada-lex.l (block_lookup): Replace VAR_NAMESPACE with VAR_DOMAIN.

2003-06-17  Daniel Jacobowitz  <drow@mvista.com>

        * NEWS: Mention gdbserver detach change and "disconnect" command.
        * infcmd.c (disconnect_command): New function.
        (_initialize_infcmd): Add ``disconnect'' command.
        * remote.c (remote_async_detach): Delete.
        (remote_detach): Merge remote_async_detach.
        (remote_disconnect): New.
        (init_remote_ops): Set to_disconnect.
        (init_remote_cisco_ops): Likewise.
        (init_remote_async_ops): Likewise.  Use remote_detach.
        * target.c (cleanup_target): Default to_disconnect.
        (update_current_target): Inherit to_disconnect.
        (target_disconnect, debug_to_disconnect): New functions.
        (setup_target_debug): Set to_disconnect.
        * target.h (struct target_ops): Add to_disconnect.
        (target_disconnect): Add prototype.

2003-06-17  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (insert_catchpoint): New function.
	(insert_breakpoints): Use catch_exceptions to call
	insert_catchpoint.  Disable catchpoints if they fail to insert.

2003-06-17  Daniel Jacobowitz  <drow@mvista.com>

	* symfile.c (reread_symbols): Clear sym_private.

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

	* trad-frame.h (struct frame_info): Add opaque declaration.
	* remote-fileio.h (struct cmd_list_element): Add opaque
	declaration.
	* h8300-tdep.c (h8300s_register_name): Avoid C++ // style
	comments.

2003-06-17  Daniel Jacobowitz  <drow@mvista.com>

	* remote.c (remote_prepare_to_store): Replace call to
	deprecated_read_register_bytes with multiple regcache_raw_read
	calls.

2003-06-17  Kris Warkentin  <kewarken@qnx.com>

	* nto-tdep.c (nto_map_arch_to_cputype): Recognize "powerpc".
	(nto_find_and_open_solib): Likewise.
	(nto_init_solib_absolute_prefix): Likewise.
	(_initialize_nto_tdep): Fix indentation.

2003-06-17  Kris Warkentin  <kewarken@qnx.com>

	* i386-nto-tdep.c (i386nto_sigcontext_addr): Make sp a CORE_ADDR.

2003-06-17  Kris Warkentin  <kewarken@qnx.com>

	* i386-nto-tdep.c (i386nto_sigcontext_addr): Declare sp before using.

2003-06-17  Jim Blandy  <jimb@redhat.com>

	* ppc-linux-tdep.c: "Linux" -> "GNU/Linux"

2003-06-16  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_extract_return_value): New function.
	(avr_gdbarch_init): Set extract_return_value method.

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

	* frame.h (deprecated_get_next_frame_hack): Declare.
	* frame.c (legacy_saved_regs_prev_register): Only require
	DEPRECATED_FRAME_INIT_SAVED_REGS when it is needed.  Assert that
	there are always saved regs.
	(deprecated_generic_get_saved_register): Do not require
	DEPRECATED_FRAME_INIT_SAVED_REGS.
	(legacy_get_prev_frame): Do not require DEPRECATED_FRAME_CHAIN,
	use frame ID unwind instead.
	(deprecated_get_next_frame_hack): New function.

2003-06-16  Corinna Vinschen  <vinschen@redhat.com>

	* h8300-tdep.c (h8300_push_arguments): Remove.  Substitute by...
	(h8300_push_dummy_call): ...this function.  Some minor optimization.
	(h8300_push_return_address): Remove.
	(h8300_gdbarch_init): Remove calls to
	set_gdbarch_deprecated_dummy_write_sp,
	set_gdbarch_deprecated_push_arguments and
	set_gdbarch_deprecated_push_return_address.
	Add call to set_gdbarch_push_dummy_call.

2003-06-16  Corinna Vinschen  <vinschen@redhat.com>

	* h8300-tdep.c (E_PSEUDO_CCR_REGNUM): New define.
	(E_PSEUDO_EXR_REGNUM): Ditto.
	(h8300_is_argument_spill): Check for instructions moving argument
	registers into safe registers.
	(h8300_skip_prologue): Check for stm instruction to push registers
	used for register variables onto stack.
	(gdb_print_insn_h8300): Remove.
	(h8300_examine_prologue): Add a comment.
	(h8300_register_name): Take pseudo registers into account.
	(h8300s_register_name): Ditto.
	(h8300sx_register_name): Ditto.
	(h8300_print_register): Ditto.
	(h8300_print_registers_info): Define "nice" printing order.
	(h8300_saved_pc_after_call): Take pseudo registers into account.
	(h8300_register_type): Ditto.  Return type used for remote connection
	when requesting real CCR or EXR register, return actual type when
	requesting pseudo CCR or EXR.
	(h8300_pseudo_register_read): New function.
	(h8300_pseudo_register_write): Ditto.
	(h8300_dbg_reg_to_regnum): Ditto.
	(h8300s_dbg_reg_to_regnum): Ditto.
	(h8300_gdbarch_init): Call set_gdbarch_num_pseudo_regs,
	set_gdbarch_ecoff_reg_to_regnum, set_gdbarch_dwarf_reg_to_regnum,
	set_gdbarch_dwarf2_reg_to_regnum, set_gdbarch_stab_reg_to_regnum and
	set_gdbarch_print_insn architecture dependent.
	Call set_gdbarch_pseudo_register_read and
	set_gdbarch_pseudo_register_write.
	(_initialize_h8300_tdep): Remove assignment to deprecated_tm_print_insn.

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

	* gdbarch.sh (SAVE_DUMMY_FRAME_TOS): Deprecate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* infcall.c (call_function_by_hand): Update.
	* ia64-tdep.c (ia64_push_arguments): Update comment.
	* frame.c (legacy_get_prev_frame): Do not assume
	SAVE_DUMMY_FRAME_TOS_P.
	* dummy-frame.c (find_dummy_frame): Update comment.

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

	* regcache.c (do_cooked_read): Do not use register_valid_p.

2003-06-15  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_register_type): Remove a blank line.
	(avr_scan_prologue): Correct some comments.

2003-06-15  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_scan_prologue): Update comment describing the various
	prologue types.
	Properly scan prologues generated by gcc with the -mcall-prologues
	option.
	Add code to scan -mcall-prologues for mega devices.

2003-06-15  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_register_byte): Delete function.
	(avr_register_raw_size): Delete function.
	(avr_register_virtual_size): Delete function.
	(avr_register_virtual_type): Delete function.
	(avr_register_type): New function.
	(avr_address_to_pointer): Remove unused code.
	(avr_read_fp): Need to read FP as two separate bytes due to change to
	avr_register_type() usage.
	(avr_gdbarch_init): Don't set deprecated_register_size.
	Don't set deprecated_register_bytes.
	Don't set deprecated_register_byte.
	Don't set deprecated_register_raw_size.
	Don't set deprecated_max_register_raw_size.
	Don't set deprecated_register_virtual_size.
	Don't set deprecated_max_register_virtual_size.
	Don't set deprecated_register_virtual_type.
	Set register_type method.

2003-06-15  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (linux-nat.o): Add rule.
	* linux-nat.c: New file.
	* config/nm-linux.h (CHILD_INSERT_FORK_CATCHPOINT): Define.
	(CHILD_INSERT_VFORK_CATCHPOINT): Define.
	(CHILD_INSERT_EXEC_CATCHPOINT): Define.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Add linux-nat.o.
	* config/arm/linux.mh (NATDEPFILES): Likewise.
	* config/i386/linux.mh (NATDEPFILES): Likewise.
	* config/i386/x86-64linux.mh (NATDEPFILES): Likewise.
	* config/ia64/linux.mh (NATDEPFILES): Likewise.
	* config/m68k/linux.mh (NATDEPFILES): Likewise.
	* config/mips/linux.mh (NATDEPFILES): Likewise.
	* config/powerpc/linux.mh (NATDEPFILES): Likewise.
	* config/s390/s390.mh (NATDEPFILES): Likewise.
	* config/sparc/linux.mh (NATDEPFILES): Likewise.

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

	* i387-tdep.c: Reorder includes, fix some whitespace issues and
	replace out-of-date comment.

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

	* rdi-share/host.h (Fail): Change to a varargs function.
	* remote-rdi.c (Fail): Update.

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

	* i386-tdep.c (i386_next_regnum): Fix bounds checking.
	(i386_convert_register_p, i386_register_to_value,
	i386_register_from_value): Handle types longer than 8 bytes.

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

	* i386-tdep.c (i386_register_to_value, i386_value_to_register):
	Move floating-point code to new function in i387-tdep.c.
	* i387-tdep.c (i387_register_to_value, i387_value_to_register):
	New functions containing code moved here from i386-tdep.c.
	* i387-tdep.h: Add opaque declaration for `struct type'.
	(i387_register_to_value, i387_value_to_register): New prototypes.
	* x86-64-tdep.c (x86_64_convert_register_p): New function.
	(x86_64_init_abi): Set convert_register_p, register_to_value and
	value_to_register here.

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

	* mips-tdep.c (mips_register_to_value): Make static.
	(mips_value_to_register): Make static.
	* i386-tdep.c (i386_fetch_pointer_argument): Make static.
	* ia64-tdep.c (ia64_register_raw_size): Make static.
	(ia64_register_virtual_size): Make static.
	(ia64_register_byte): Make static.
	* i387-tdep.c: Include "i387-tdep.h".
	(print_387_control_word): Delete function.
	(print_387_status_word): Delete function.
	(print_387_status_bits): Delete function.
	(print_387_control_bits): Delete function.
	* Makefile.in (i387-tdep.o): Update dependencies.
	* rdi-share/host.h (Fail): Declare.
	* remote-rdi.c (Fail): Update to match declaration.

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

	* config/mips/embedl64.mt (TDEPFILES): Delete "remote-array.o".
	* config/mips/embedl.mt (TDEPFILES): Delete "remote-array.o".
	* config/mips/embed64.mt (TDEPFILES): Delete "remote-array.o".
	* config/djgpp/fnchange.lst: Delete "remote-array.c".
	* README: Delete reference to remote-array.
	* Makefile.in (ALLDEPFILES): Remove "remote-array.c".
	(remote-array.o): Delete target.
	* config/mips/embed.mt (TDEPFILES): Delete "remote-array.o".
	* remote-array.c: Delete file.

2003-06-14  Andrew Cagney  <cagney@redhat.com>
            Mark Kettenis  <kettenis@gnu.org>

	* gdbarch.sh (CONVERT_REGISTER_P): Add "type" parameter.
	(REGISTER_TO_VALUE, VALUE_TO_REGISTER): Replace raw buffer
	parameter with "frame".
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame.h (put_frame_register): Declare.
	* frame.c (put_frame_register): New function.
	* arch-utils.c (legacy_convert_register_p): Add "type" parameter.
	(legacy_register_to_value): Rewrite, use "frame" to get the
	register value.
	(legacy_value_to_register): Rewrite, use "frame" to find the
	register's location before storing.
	* arch-utils.h (legacy_convert_register_p): Update.
	(legacy_register_to_value, legacy_value_to_register): Update.
	* findvar.c (value_from_register): Rewrite, eliminate use of
	REGISTER_CONVERT_TO_TYPE, pass "type" to CONVERT_REGISTER_P, pass
	"frame" to REGISTER_TO_VALUE.
	* valops.c (value_assign): Move the CONVERT_REGISTER code to the
	lval_reg_frame_relative + lval_register branch of the switch.  Do
	not use REGISTER_CONVERT_FROM_TYPE.  Use put_frame_register.
	* i386-tdep.c (I386_EBX_REGNUM, I386_ECX_REGNUM, I386_ESI_REGNUM,
	I386_EDI_REGNUM): New defines.
	(i386_next_regnum, i386_convert_register_p,
	i386_register_to_value, i386_value_to_register): New functions.
	(i386_register_convertible, i386_register_convert_to_virtual,
	i386_convert_to_raw): Remove functions.
	(i386_gdbarch_init): Set convert_register_p, register_to_value and
	value_to_register instead of register_convertible,
	register_convert_to_virtual and register_convert_to_raw.
	* mips-tdep.c (mips_convert_register_p): New function.
	(mips_value_to_register): Replace mips_register_convert_from_type.
	(mips_register_to_value): Replace mips_register_convert_to_type.
	(mips_gdbarch_init): Set conver_register_p, value_to_register and
	register_to_value.
	* alpha-tdep.c (alpha_convert_register_p): Update.
	(alpha_value_to_register): Update, store the register.
	(alpha_register_to_value): Update, fetch the register.

2003-06-14  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_remote_translate_xfer_address): Delete function.
	(avr_gdbarch_init): Remove avr_call_dummy_words variable.
	Don't set deprecated_call_dummy_words.
	Remove commented out set_gdbarch_believe_pcc_promotion() call.
	Don't set remote_translate_xfer_address.
	(avr_io_reg_read_command): Remove commented out debug printf.
	Wrap a long line.

2003-06-14  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_scan_prologue): Fix to avoid a buffer over run which
	causes gdb to seg fault.

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

	* sparc-nat.c (fetch_inferior_registers): Correct
	a reference to "registers".

2003-06-14  Jeroen Dekkers  <jeroen@dekkers.cx>

	* Makefile.in (exc_request_U_h): Define
	(exc_request_S_h): Likewise.
	(msg_reply_S_h): Likewise.
	(msg_U_h): Likewise.
	(notify_S_h): Likewise.
	(process_reply_S_h): Likewise.
	(gnu-nat.o): Depend on gdb_obstack_h
	* gnu-nat.c: Include "gdb_obstack.h".

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

	* gdbarch.sh: Document what PUSH_DUMMY_CALL replaces.
	* gdbarch.h, gdbarch.c: Re-generate.

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

	* gdbarch.sh: Document what UNWIND_DUMMY_ID replaces.  Clarify
	when deprecated REGISTER macros can be deleted.
	* gdbarch.h, gdbarch.c: Re-generate.

2003-06-13  Jim Blandy  <jimb@redhat.com>

	* solib-svr4.c (solib_break_names): Recognize the 64-bit PowerPC
	Linux entry point symbols for _dl_debug_state, too.

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

	* infcall.c (call_function_by_hand): When UNWIND_DUMMY_ID is
	available, do not use the FP register, and always save the TOS.
	* dummy-frame.c (dummy_frame_this_id): Do not assert
	SAVE_DUMMY_FRAME_TOS.
	* i386-tdep.c (i386_save_dummy_frame_tos): Delete function.
	(i386_gdbarch_init): Do not set save_dummy_frame_tos.
	(i386_push_dummy_call): Add 8 to the returned SP.
	* frame.c (legacy_frame_p): Do not require SAVE_DUMMY_FRAME_TOS.
	* d10v-tdep.c (d10v_unwind_dummy_id): Use d10v_unwind_sp.
	(d10v_gdbarch_init): Do not set save_dummy_frame_tos.
	* x86-64-tdep.c (x86_64_save_dummy_frame_tos): Delete function.
	(x86_64_push_dummy_call): Return "sp + 16".
	(x86_64_init_abi): Do not set save_dummy_frame_tos.
	* alpha-tdep.c (alpha_gdbarch_init): Do not set
	save_dummy_frame_tos.

2003-06-13  Jim Blandy  <jimb@redhat.com>

	* frv-tdep.c (frv_use_struct_convention): Delete static
	declaration for function deleted in my change of 2003-06-12.

2003-06-13  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_address_to_pointer): Shift code addrs right 1 bit.
	(avr_pointer_to_address): Shift code addrs left 1 bit.
	(avr_convert_from_func_ptr_addr): Delete function since operation is
	better handled by avr_address_to_pointer and avr_pointer_to_address.
	(avr_gdbarch_init): Don't set convert_from_func_ptr_add method.

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

	From Kelley Cook  <kelleycook@wideopenwest.com>:
	* configure.host: Accept i[34567]86 variants.
	* configure.tgt: Likewise.
	* nlm/configure.in: Likewise.
	* nlm/configure: Regenerated.

2003-06-13  Richard Earnshaw  <rearnsha@arm.com>

	* arm-tdep.c (solib-svr4.h): Dont' include it.
	(arm_linux_svr4_fetch_link_map_offsets): Move to ...
	* arm-linux-tdep.c: ... here.  Make static.
	(arm_linux_init_abi): Register it.
	(solib-svr4.h): Include it.
	* Makefile.in: Update dependencies.
	* config/arm/tm-linux.h (SVR4_FETCH_LINK_MAP_OFFSETS): Delete.
	(arm_linux_svr4_fetch_link_map_offsets): Delete declaration.

2003-06-13  Corinna Vinschen  <vinschen@redhat.com>

	* h8300-tdep.c: Add definitions E_RET0_REGNUM and E_RET1_REGNUM to
	indicate registers used for return values.
	(struct frame_extra_info): Drop args_pointer and locals_pointer.
	(h8300_examine_prologue): Remove initializing dropped frame_extra_info
	members.
	(h8300_init_extra_frame_info): Ditto.
	(h8300_frame_locals_address): Removed.
	(h8300_frame_args_address): Removed.
	(h8300_extract_return_value): Use new regcache structure. Only care
	for 16 bit CPUs.
	(h8300h_extract_return_value): Same function for 32 bit CPUs.
	(h8300_store_return_value): Use new regcache structure. Only care
	for 16 bit CPUs.
	(h8300h_store_return_value): Same function for 32 bit CPUs.
	(h8300_store_struct_return): Removed.
	(h8300_extract_struct_value_address): Use new regcache structure.
	(h8300h_extract_struct_value_address): Removed.
	(h8300_push_dummy_code): New function.
	(h8300_gdbarch_init): Slightly rearranged to stress deprecated calls.
	Remove call_dummy_words.  Call set_gdbarch_extract_return_value and
	set_gdbarch_store_return_value architecture dependent.
	Call set_gdbarch_push_dummy_code and
	set_gdbarch_extract_struct_value_address.
	Remove calls to set_gdbarch_frame_args_address,
	set_gdbarch_frame_locals_address,
	set_gdbarch_deprecated_store_struct_return,
	set_gdbarch_deprecated_extract_return_value,
	set_gdbarch_deprecated_extract_struct_value_address,
	set_gdbarch_deprecated_call_dummy_words and
	set_gdbarch_deprecated_sizeof_call_dummy_words.

2003-06-13  Corinna Vinschen  <vinschen@redhat.com>

	* h8300-tdep.c (h8300_register_byte): Remove.
	(h8300h_register_byte): Remove.
	(h8300_register_virtual_type): Remove.  Substitute by...
	(h8300_register_type): New function.
	(h8300_extract_struct_value_address): Drop usage of h8300_register_byte.
	(h8300h_extract_struct_value_address): Ditto.
	(h8300_gdbarch_init): Drop calls to
	set_gdbarch_deprecated_register_byte and
	set_gdbarch_deprecated_register_virtual_type.
	Add call to set_gdbarch_register_type.

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

	* gdbarch.sh: Update comments on registers.
	(deprecated_register_byte): Rename register_byte.
	(deprecated_register_raw_size): Rename register_raw_size.
	(deprecated_register_virtual_size): Rename register_virtual_size.
	(deprecated_register_virtual_type): Rename register_virtual_type.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c: Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.

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

	* mips-tdep.c (mips_gdbarch_init): Replace remaining instances of
	mips_o32_use_struct_convention with always_use_struct_convention.

2003-06-12  David Carlton  <carlton@kealia.com>

	* cp-namespace.c (cp_set_block_scope): Comment out
	processing_has_namespace_info branch.

2003-06-12  Jim Blandy  <jimb@redhat.com>

	Recognize and skip 64-bit PowerPC Linux linkage functions.
	* ppc-linux-tdep.c (insn_d, insn_ds, insn_xfx, read_insn, struct
	insn_pattern, insns_match_pattern, d_field, ds_field): New
	functions, macros, and types for working with PPC instructions.
	(ppc64_standard_linkage, PPC64_STANDARD_LINKAGE_LEN,
	ppc64_in_solib_call_trampoline, ppc64_standard_linkage_target,
	ppc64_skip_trampoline_code): New functions, variables, and macros
	for recognizing and skipping linkage functions.
	(ppc_linux_init_abi): Use ppc64_in_solib_call_trampoline and
	ppc64_skip_trampoline_code for the 64-bit PowerPC Linux ABI.

	* ppc-linux-nat.c (ppc_register_u_addr): Correctly compute u-area
	register offsets for both the 32- and 64-bit interfaces.

	Actually finish the job started by my change of 2003-05-29.
	* config/powerpc/tm-linux.h (SKIP_TRAMPOLINE_CODE): Remove the
	other #definition of this.
	(ppc_linux_skip_trampoline_code): Remove declaration.
	* ppc-linux-tdep.c (ppc_linux_skip_trampoline_code): Make this
	static.
	(ppc_linux_init_abi): Register it as the skip_trampoline_code
	method for GDBARCH.

	* config/powerpc/nm-ppc64-linux.h (PTRACE_XFER_TYPE): This is
	'long' on ppc64-*-linux*.

	* ppc-linux-nat.c (ppc_register_u_addr, fill_gregset): If PT_MQ
	isn't #defined, assume the register doesn't exist: act as if
	tdep->ppc_mq_regnum were -1.

	* configure.host, configure.tgt: Add entries for
	powerpc64-*-linux, selecting powerpc/ppc64-linux.mh and
	powerpc/linux.mt.
	* config/powerpc/ppc64-linux.mh, config/powerpc/nm-ppc64-linux.mh:
	New files.

	* arch-utils.c (always_use_struct_convention): New function.
	* arch-utils.h (always_use_struct_convention): New prototype.
	* alpha-tdep.c (alpha_use_struct_convention): Delete.
	(alpha_gdbarch_init): Register always_use_struct_convention,
	instead of alpha_use_struct_convention.
	* cris-tdep.c (cris_use_struct_convention): Delete.
	(cris_gdbarch_init): Register always_use_struct_convention,
	instead of cris_use_struct_convention.
	* frv-tdep.c (frv_use_struct_convention): Delete.
	(frv_gdbarch_init): Register always_use_struct_convention,
	instead of frv_use_struct_convention.
	* h8300-tdep.c (h8300_use_struct_convention): Delete.
	(h8300_gdbarch_init): Register always_use_struct_convention,
	instead of h8300_use_struct_convention.
	* mips-tdep.c (mips_o32_use_struct_convention): Delete.
	(mips_o32_gdbarch_init): Register always_use_struct_convention,
	instead of mips_o32_use_struct_convention.

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

	* wince.c: Include "mips-tdep.h".
	* mips-tdep.h (mips_next_pc): Declare.
	* mcore-tdep.c: Make more local functions static.
	* Makefile.in (wince.o): Update dependencies.

2003-06-12  David Carlton  <carlton@kealia.com>

	* symtab.c (lookup_symbol_aux_minsyms): Replace
	DEPRECATED_SYMBOL_NAME by SYMBOL_LINKAGE_NAME.
	(find_pc_sect_line, search_symbols, rbreak_command): Ditto.
	(COMPLETION_LIST_ADD_SYMBOL): Rewrite in terms of
	SYMBOL_NATURAL_NAME.

2003-06-12  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (tuiDisassem.o): Update dependencies.

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

	* symtab.h: Delete declaration of make_symbol_overload_list.
	Add declaration of lookup_partial_symbol.
	* symtab.c (remove_params): Move to cp-support.c.
	(overload_list_add_symbol, make_symbol_overload_list)
	(sym_return_val_size, sym_return_val_index): Ditto.
	(lookup_partial_symbol): Make extern.
	* cp-support.h: Add declaration of make_symbol_overload_list.
	* cp-support.c: Include dictionary.h, objfiles.h, frame.h,
	symtab.h, and block.h.
	(remove_params): Move here from symtab.c.
	(overload_list_add_symbol, make_symbol_overload_list)
	(sym_return_val_size, sym_return_val_index): Ditto.
	* valops.c: Include cp-support.h.
	* Makefile.in (cp-support.o): Depend on dictionary_h, objfiles_h,
	frame_h, and block_h.
	(valops.o): Depend on cp_support_h.

2003-06-12  Corinna Vinschen  <vinschen@redhat.com>

	* h8300-tdep.c: Add H8SX registers. Drop E_NUM_REGS entirely,
	substitute by NUM_REGS throughout.
	(h8300_register_name): Only care for H8/300 and H8/300H registers.
	(h8300s_register_name): New function for H8S registers.
	(h8300sx_register_name): Ditto for H8SX registers.
	(h8300_print_register): Revise register printing, avoid depending
	on 32 bit long.
	(h8300_register_byte): Only care for H8/300 registers.
	(h8300h_register_byte): New function for any other architecture.
	(h8300_register_raw_size): Remove.
	(h8300_register_virtual_type): Revise to return actually useful
	type.
	(h8300_extract_struct_value_address): Only care for H8/300 registers.
	(h8300h_extract_struct_value_address): New function for any other
	architecture.
	(h8300_gdbarch_init): Add h8300sxn.  Call set_gdbarch_num_regs,
	set_gdbarch_register_name, set_gdbarch_register_byte,
	set_gdbarch_ptr_bit and set_gdbarch_addr_bit architecture dependent.
	Remove calls to set_gdbarch_deprecated_register_size,
	set_gdbarch_deprecated_register_bytes, set_gdbarch_register_raw_size,
	set_gdbarch_deprecated_max_register_raw_size,
	set_gdbarch_register_virtual_size and
	set_gdbarch_deprecated_max_register_virtual_size entirely.
	Call set_gdbarch_long_long_bit, set_gdbarch_double_bit and
	set_gdbarch_long_double_bit.

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

	* doublest.c (convert_doublest_to_floatformat): When dealing
	with the implied integer bit, only alter mant_bits if we are
	processing a full 32 bits of mantissa.

2003-06-11  David Carlton  <carlton@bactrian.org>

	* dictionary.h: New.
	* dictionary.c: New.
	* block.h: Add opaque declaration for struct dictionary.
	(struct block): Add 'dict' member; delete 'hashtable', 'nsyms',
	'sym' members.
	(BLOCK_DICT): New macro.
	Delete macros BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM,
	BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE,
	BLOCK_SHOULD_SORT.
	(ALL_BLOCK_SYMBOLS): Update definition.
	* Makefile.in (SFILES): Add dictionary.c.
	(dictionary_h): New.
	(COMMON_OBS): Add dictionary.o.
	(dictionary.o): New.
	(ada-lang.o): Depend on dictionary_h.
	(buildsym.o, coffread.o, jv-lang.o, mdebugread.o, objfiles.o)
	(stack.o, symmisc.o, symtab.o, tracepoint.o, valops.o)
	(mi-cmd-stack.o): Ditto.
	(gdbtk-cmds.o): Update dependencies.
	(gdbtk-stack.o): Ditto.
	* ada-lang.c: Include dictionary.h.
	(symtab_for_sym): Update uses of ALL_BLOCK_SYMBOLS.
	(fill_in_ada_prototype, debug_print_block): Ditto.
	(ada_add_block_symbols): Update uses of ALL_BLOCK_SYMBOLS; replace
	explicit iteration by use of ALL_BLOCK_SYMBOLS.  Delete variable
	'is_sorted'.
	* mdebugread.c: Include dictionary.h.
	(struct parse_stack): Delete 'maxsyms' member.
	(parse_symbol): Update calls to new_block.  Delete calls to
	shrink_block.  Use dictionary methods.
	(psymtab_to_symtab_1): Delete calls to sort_symtab_syms.
	Update calls to new_symtab.  Don't maintain maxsyms data.
	(mylookup_symbol): Update use of ALL_BLOCK_SYMBOLS.
	(add_symbol): Just call dict_add_symbol.
	(new_symtab): Delete 'maxsyms' argument.
	(new_symtab): Update calls to new_block.
	(new_block): Delete 'maxsyms' argument; add 'function' argument.
	(shrink_block): Delete function.
	(fixup_sigtramp): Update call to new_block.  Add symbol via
	dict_add_symbol.
	* jv-lang.c: Include dictionary.h.
	(get_java_class_symtab): Set the BLOCK_DICT of the blocks
	appropriately.  Set class_symtab->free_func.  Make sure the
	blockvector is big enough to hold two blocks.
	(add_class_symtab_symbol): Use dictionary methods.
	(free_class_block): New function.
	(type_from_class): Replace explicit iteration by
	ALL_BLOCK_SYMBOLS.
	* symtab.h (struct symtab): Replace 'free_ptr' method by
	'free_func'.
	* dwarf2read.c (psymtab_to_symtab_1): Delete call to
	sort_symtab_syms.
	* dwarfread.c (psymtab_to_symtab_1): Delete call to
	sort_symtab_syms.
	* coffread.c (coff_symfile_read): Delete call to sort_symtab_syms.
	Include dictionary.h.
	(patch_opaque_types): Update use of ALL_BLOCK_SYMBOLS.
	* dbxread.c (dbx_psymtab_to_symtab_1): Delete call to
	sort_symtab_syms.
	* objfiles.c: Include dictionary.h.
	(objfile_relocate): Update use of ALL_BLOCK_SYMBOLS.
	* buildsym.c: Include dictionary.h.
	(finish_block): Use dictionary methods.
	(end_symtab): Set free_func to NULL, not free_ptr.
	* tracepoint.c: Include dictionary.h.
	(add_local_symbols): Update use of ALL_BLOCK_SYMBOLS.
	(scope_info): Ditto.
	* stack.c: Include dictionary.h.
	(print_block_frame_locals): Update use of ALL_BLOCK_SYMBOLS.
	(print_block_frame_labels, print_frame_arg_vars)
	(print_frame_args): Ditto.
	* symmisc.c (free_symtab_block): Use dictionary methods.
	(dump_symtab): Ditto.
	(free_symtab): Replace use of 'free_ptr' by 'free_func'.
	Include	dictionary.h.
	* symfile.h: Delete declarations of sort_block_syms,
	sort_symtab_syms.
	* symfile.c (sort_block_syms): Delete.
	(sort_symtab_syms): Delete.
	* symtab.c: Include dictionary.h.
	(lookup_block_symbol): Use dictionary iterators.
	(find_pc_sect_symtab): Update use of ALL_BLOCK_SYMBOLS.
	(search_symbols, make_symbol_completion_list): Ditto.
	(make_symbol_overload_list): Ditto.
	* valops.c (value_of_local): Use dict_empty.
	Include dictionary.h.

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

	* win32-nat.c (solib_symbols_add): Fix a small compilation error.

2003-06-11  David Carlton  <carlton@bactrian.org>

	* block.h (BLOCK_SHOULD_SORT): Delete.
	* symtab.c (lookup_block_symbol): Don't worry about sorted linear
	blocks.
	* ada-lang.c (ada_add_block_symbols): Ditto.
	* symfile.c (sort_block_syms): Delete.
	(sort_symtab_syms): Ditto.
	* symfile.h: Delete sort_symtabs_syms and sort_block_syms
	declarations.
	* coffread.c (coff_symfile_read): Don't call sort_symtab_syms.
	* dbxread.c (dbx_psymtab_to_symtab_1): Ditto.
	* dwarf2read.c (psymtab_to_symtab_1): Ditto.
	* dwarfread.c (psymtab_to_symtab_1): Ditto.
	* hpread.c (hpread_psymtab_to_symtab_1): Ditto.
	* mdebugread.c (psymtab_to_symtab_1): Ditto.
	* xcoffread.c (xcoff_psymtab_to_symtab_1): Ditto.

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

	* ia64-tdep.c (ia64_gdbarch_init): Set number of long double
	bits to 128.

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

	* gdbarch.sh (DEPRECATED_REGISTER_CONVERTIBLE): Deprecate
	REGISTER_CONVERTIBLE.
	(DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL): Same.
	(DEPRECATED_REGISTER_CONVERT_TO_RAW): Same, make "from" constant.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arch-utils.h (deprecated_register_convertible_not): Rename
	generic_register_convertible_not.
	* arch-utils.c (deprecated_register_convertible_not): Rename
	generic_register_convertible.
	(legacy_convert_register_p, legacy_register_to_value): Update.
	* sh-tdep.c (sh64_push_arguments): Update.
	* m68klinux-tdep.c (m68k_linux_extract_return_value): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_EXTRACT_RETURN_VALUE): Update.
	* m68klinux-tdep.c (m68k_linux_store_return_value): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_STORE_RETURN_VALUE): Update.
	* arch-utils.c (legacy_value_to_register): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	(rs6000_register_convert_to_raw): Make parameter "from" const.
	* mips-tdep.c (mips_gdbarch_init): Update.
	(mips_register_convert_to_raw): Make  parameter"virt_buf" const.
	* infcmd.c (default_print_registers_info): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	(ia64_register_convert_to_raw): Make parameter "from" const.
	* i386-tdep.c (i386_gdbarch_init): Update.
	(i386_register_convert_to_raw): Update.

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

	* remote-fileio.c: Include "remote-fileio.h".
	* Makefile.in (remote-fileio.o): Update dependencies.
	(remote_fileio_h): Fix typo.

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

	* xstormy16-tdep.c (xstormy16_push_return_address): Make static.
	(xstormy16_save_dummy_frame_tos): Make static.
	(_initialize_xstormy16_tdep): Add declaration.
	* vax-tdep.c (_initialize_vax_tdep): Add declaration.
	* v850-tdep.c: Make local functions static.
	(_initialize_v850_tdep): Add declaration.
	* sparc-tdep.c: Make local functions static.
	(_initialize_sparc_tdep): Add declaration.
	* sh-tdep.c: Make local functions static.
	(_initialize_sh_tdep): Add declaration.
	* sh3-rom.c (_initialize_sh3_rom): Add declaration.
	* s390-tdep.c: Make local functions static.
	(_initialize_s390_tdep): Add declaration.
	* dbxread.c (find_stab_function_addr): Make static.
	* ppc-bdm.c (_initialize_bdm_ppc): Add declaration.
	* ocd.c (_initialize_remote_ocd): Add declaration.
	* dink32-rom.c (_initialize_dink32_rom): Add declaration.
	* ppcbug-rom.c (_initialize_ppcbug_rom): Add declaration.
	* ns32k-tdep.c (_initialize_ns32k_tdep): Add declaration.
	* ns32knbsd-tdep.c (_initialize_ns32knbsd_tdep): Add declaration.
	* mips-tdep.c (_initialize_mips_tdep): Add declaration.
	* remote-array.c (_initialize_array): Add declaration.
	(_initialize_remote_monitors): Add declaration.
	* remote-mips.c: Make local functions static.
	(_initialize_remote_mips): Add declaration.
	* mcore-tdep.c: Make all local functions static.
	(_initialize_mcore_tdep): Add declaration.
	* dbug-rom.c (_initialize_dbug_rom): Add declaration.
	* abug-rom.c (_initialize_abug_rom): Add declaration.
	* rom68k-rom.c (_initialize_rom68k): Add declaration.
	* cpu32bug-rom.c (_initialize_cpu32bug_rom): Add declaration.
	* m68k-tdep.c (_initialize_m68k_tdep): Add declaration.
	* remote-est.c (_initialize_est): Add declaration.
	* m68hc11-tdep.c (_initialize_m68hc11_tdep): Add declaration.
	(m68hc11_call_dummy_address): Make static.
	* ia64-tdep.c: Make local functions static.
	(_initialize_ia64_tdep): Add declaration.
	* solib-legacy.c (_initialize_svr4_lm): Add declaration.
	* monitor.c (monitor_wait_filter): Make static.
	(_initialize_remote_monitors): Add declaration.
	* remote-hms.c (_initialize_remote_hms): Add declaration.
	* remote-e7000.c (fetch_regs_from_dump): Make static.
	(expect_n): Make static.
	(_initialize_remote_e7000): Add declaration.
	* ser-e7kpc.c: Always include "defs.h".
	(_initialize_ser_e7000pc): Add declaration.
	* h8300-tdep.c (_initialize_h8300_tdep): Add declaration.
	* cris-tdep.c: Make all but one function static.
	(_initialize_cris_tdep): Add declaration.
	* solib-svr4.c (_initialize_svr4_solib): Add declaration.
	* solib.c (update_solib_list): Make static.
	(_initialize_solib): Add declaration.
	* avr-tdep.c (avr_breakpoint_from_pc): Make static.
	(_initialize_avr_tdep): Add declaration.
	* remote-rdi.c (voiddummy): Make static.
	(_initialize_remote_rdi): Add declaration.
	* arm-tdep.c (_initialize_arm_tdep): Add declaration.
	* remote-rdp.c (send_rdp): Make static.
	(_initialize_remote_rdp): Add declaration.
	* alpha-tdep.c (_initialize_alpha_tdep): Add declaration.

2003-06-11  Corinna Vinschen  <vinschen@redhat.com>

	* remote-fileio.c: Make ari happy.

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

	* rs6000-nat.c (child_xfer_memory): Compute the right address when
	fetching the trailing bytes of the buffer we are about to write.

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

	* remote-fileio.h (REMOTE_FILEIO_H): Replace FILEIO_H.
	* Makefile.in (remote-fileio.o): Update dependencies.
	* remote-fileio.c: Include "gdb_wait.h" and "gdb_stat.h".  Do not
	include <setjmp.h>, or <sys/types.h> conditional on USG.
	(remote_fio_jmp_buf): Delete global variable.

2003-06-10  Corinna Vinschen  <vinschen@redhat.com>
            Martin M. Hunt  <hunt@redhat.com>

	* Makefile.in (REMOTE_OBS): Add remote-fileio.o
	(SFILES): Add remote-fileio.c.
	Add dependencies for building remote-fileio.o.  Add remote-fileio.h to
	dependencies for building remote.o.
	* remote-fileio.c: New file implementing the remote File-I/O protocol.
	* remote-fileio.h: New header file defining remote File-I/O interface.
	* remote.c (remote_write_bytes, remote_read_bytes): Remove
	static storage class.
	(remote_wait, remote_async_wait): Call remote_fileio_request() on
	'F' packet.
	(_initialize_remote): Call initialize_remote_fileio().
	* remote.h: Declare remote_write_bytes() and remote_read_bytes().
	* defs.h: Declare gdb_stdin, gdb_stdtargerr and gdb_stdtargin.
	* main.c: New ui_file gdb_stdin, gdb_stdtargerr and gdb_stdtargin.
	(captured_main): Initialize new ui_files.
	* ui-file.c: Add read and fgets input functions.
	(ui_file_new): set ui_file_fputs and ui_file_read to null functions.
	(null_file_read): New function.
	(ui_file_read): New function.
	(set_ui_file_read): New function.
	(stdio_file_read): New function.
	* ui-file.h: New type ui_file_read_ftype.
	(set_ui_file_read): Declare.
	(ui_file_read): Declare.

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

	* frame.h (deprecated_unwind_get_saved_register): Rename
	generic_unwind_get_saved_register, update comments.
	* mips-tdep.c (mips_get_saved_register): Update.
	* frame.c (deprecated_unwind_get_saved_register): Update.

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

	* vax-tdep.c (vax_frame_locals_address): Delete function.
	(vax_gdbarch_init): Do not set frame_locals_address.
	* m68hc11-tdep.c (m68hc11_frame_locals_address): Delete function.
	(m68hc11_gdbarch_init): Do not set frame_locals_address.
	* s390-tdep.c (s390_frame_args_address): Delete function.
	(s390_gdbarch_init): Do not set frame_args_address or
	frame_locals_address.
	* ns32k-tdep.c (ns32k_frame_locals_address): Delete.
	(ns32k_gdbarch_init): Do not set frame_locals_address.
	* hppa-tdep.c (hppa_frame_args_address): Delete function.
	(hppa_frame_locals_address): Delete function.
	(hppa_gdbarch_init): Do not set frame_args_address, or
	frame_locals_address.
	* arm-tdep.c (arm_frame_args_address): Delete.
	(arm_frame_locals_address): Delete.
	(arm_gdbarch_init): Do not set frame_args_address, or
	frame_locals_address.

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

	* gdbarch.sh (FRAME_NUM_ARGS): Change to function with predicate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arch-utils.h (frame_num_args_unknown): Delete both declarations.
	* arch-utils.c (frame_num_args_unknown): Delete function.
	* stack.c (print_args_stub): Use FRAME_NUM_ARGS_P.
	(frame_info): Use FRAME_NUM_ARGS_P.
	* arm-tdep.c (arm_frame_num_args): Delete function.
	(arm_gdbarch_init): Do not set frame_num_args.
	* config/pa/tm-hppa64.h (FRAME_NUM_ARGS): Delete.
	* hppa-tdep.c (hppa_frame_num_args): Delete function.
	(hppa_gdbarch_init): Do not set frame_num_args.
	* config/sparc/tm-sparc.h (FRAME_NUM_ARGS): Delete.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	frame_num_args to default frame_num_args_unknown.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Ditto.

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

	* printcmd.c (print_frame_nameless_args): Moved to "stack.c".
	(print_frame_args): Moved to "stack.c".
	* stack.c: Include "gdb_assert.h".
	(print_frame_nameless_args): Moved from "printcmd.c", made static.
	(print_frame_args): Moved from "printcmd.c".
	* frame.h (print_frame_args): Delete declaration.
	* Makefile.in (stack.o): Update dependencies.

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

	* frame.c (get_prev_frame): Remove reference to
	frame_args_address_correct in comments.
	* frame-base.c (default_frame_args_address): Delete code
	conditional on FRAME_ARGS_ADDRESS_CORRECT.
	* vax-tdep.c (vax_frame_args_address_correct): Delete.
	(vax_frame_args_address): Merge in vax_frame_args_address_correct.
	* config/vax/tm-vax.h (FRAME_ARGS_ADDRESS_CORRECT): Delete
	(vax_frame_args_address_correct): Delete declaration.

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

	* gdbarch.sh (UNWIND_SP): Add.
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame.c (frame_sp_unwind): New function.
	(get_frame_sp): New function.
	* frame.h (get_frame_sp, frame_sp_unwind): Declare.
	* regcache.c (read_sp): Rewrite, try each of TARGET_READ_SP,
	gdbarch_unwind_sp and SP_REGNUM when looking for the SP register
	value.
	* d10v-tdep.c (d10v_unwind_sp): Replace d10v_read_sp.
	(d10v_gdbarch_init): Set unwind_sp instead of read_sp.

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

	Deprecate BIG_REMOTE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT and
	REMOTE_BREAKPOINT.
	* remote.c: Update.
	* config/sh/tm-sh.h (DEPRECATED_BIG_REMOTE_BREAKPOINT): Update.
	(DEPRECATED_LITTLE_REMOTE_BREAKPOINT): Update.
	* config/m68k/tm-sun3.h: Update.
	* config/m68k/tm-m68klynx.h: Update.
	* config/h8300/tm-h8300.h (DEPRECATED_REMOTE_BREAKPOINT): Update.

	* trad-frame.h (struct trad_frame_saved_reg): Rename "struct
	trad_frame".  Update comments.
	* d10v-tdep.c (struct d10v_unwind_cache): Update.
	* trad-frame.c (trad_frame_alloc_saved_regs): Update.
	(trad_frame_register_value, trad_frame_prev_register): Update.

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

	* acinclude.m4 (gcc_AC_CHECK_DECL, (gcc_AC_CHECK_DECL): Stolen
	from GCC's acinclude.m4.
	* configure.in: Check for getopt's delcaration.
	* aclocal.m4, config.in, configure: Re-generate.
	* main.c (error_init): Delete declaration.
	* defs.h (error_init): Declare.
	* rs6000-tdep.c (rs6000_fetch_pointer_argument): Make static.
	(rs6000_convert_from_func_ptr_addr): Make static.
	(_initialize_rs6000_tdep): Add declaration.
	* cli/cli-cmds.c (dont_repeat): Delete declaration.
	(show_commands, set_verbose, show_history): Delete declaration.
	* top.h (set_verbose): Add declaration.
	(show_history, set_history, show_commands): Add declaration.
	(do_restore_instream_cleanup): Add declaration.
	* objc-lang.c (specialcmp): Make static.
	(print_object_command): Make static.
	(find_objc_msgsend): Make static.
	(find_objc_msgcall_submethod_helper): Make static.
	(find_objc_msgcall_submethod): Make static.
	(_initialize_objc_language): Add declaration.
	(find_implementation_from_class): Make static.
	(find_implementation): Make static.
	* objc-exp.y (yylex): Delete lookup_struct_typedef declaration.
	* objc-lang.h (lookup_struct_typedef): Add declaration.
	* cli/cli-interp.c (_initialize_cli_interp): Add declaration.
	* cli/cli-script.c (clear_hook_in_cleanup): Make static.
	(do_restore_user_call_depth): Make static.
	(do_restore_instream_cleanup): Delete declaration.
	(dont_repeat): Delete declaration.
	* cli/cli-decode.c (add_abbrev_cmd): Delete function.
	* cli/cli-dump.c (_initialize_cli_dump): Add declaration.
	* reggroups.c (_initialize_reggroup): Add declaration.
	* cp-support.c (_initialize_cp_support): Add declaration.
	* cp-abi.c (_initialize_cp_abi): Add declaration.
	* hpacc-abi.c (_initialize_hpacc_abi): Add declaration.
	* gnu-v3-abi.c (gnuv3_baseclass_offset): Make static.
	(_initialize_gnu_v3_abi): Add declaration.
	* gnu-v2-abi.c (gnuv2_value_rtti_type): Make static.
	(_initialize_gnu_v2_abi): Add declaration.
	* frame-base.c (_initialize_frame_base): Add declaration.
	* doublest.c (floatformat_from_length): Make static.
	* frame-unwind.c (_initialize_frame_unwind): Add declaration.
	* frame.c (create_sentinel_frame): Make static.
	(_initialize_frame): Add declaration.
	* top.c (do_catch_errors): Make static.
	(gdb_rl_operate_and_get_next_completion): Make static.
	* typeprint.c: Include "typeprint.h".
	* sentinel-frame.c (sentinel_frame_prev_register): Make static.
	(sentinel_frame_this_id): Make static.
	* p-valprint.c (_initialize_pascal_valprint): Add declaration.
	* ui-out.c (make_cleanup_ui_out_begin_end): Delete function.
	* dwarf2-frame.c (dwarf2_frame_cache): Make static.
	* p-exp.y (push_current_type, pop_current_type): ISO C declaration.
	* dwarf2expr.h (dwarf_expr_context): ISO C declaration.
	* maint.c (maintenance_print_architecture): Make static.
	* signals/signals.c (_initialize_signals): Add declaration.
	* std-regs.c (_initialize_frame_reg): Add declaration.
	* jv-exp.y (push_variable): ISO C definition.
	(push_qualified_expression_name): Ditto.
	* memattr.c (_initialize_mem): Add declaration.
	* remote.c (remote_check_watch_resources): Make static.
	(remote_stopped_by_watchpoint): Make static.
	(remote_stopped_data_address): Make static.
	* d10v-tdep.c (nr_dmap_regs): Make static.
	(a0_regnum): Make static.
	(d10v_frame_unwind_cache): Make static.
	(d10v_frame_p): Make static.
	* osabi.c (show_osabi): Make static.
	(_initialize_gdb_osabi): Add extern declaration.
	* gdbtypes.c (make_qualified_type): Make static.
	(safe_parse_type): Make static.
	* macrocmd.c (_initialize_macrocmd): Add extern declaration.
	* macrotab.c (macro_bcache_free): Make static.
	* interps.c (interp_set_quiet): Make static.
	(interpreter_exec_cmd): Make static.
	* stack.h (select_frame_command): New file.
	* stack.c: Include "stack.h".
	(select_frame_command_wrapper): Delete function.
	(select_frame_command): Make global.
	* infcall.c: Include "infcall.h".
	* linespec.c: Include "linespec.h".
	* symfile.c (sections_overlap): Make static.
	* cp-support.h (cp_initialize_namespace): ISO C declaration.
	* charset.c (_initialize_charset): Add missing prototype.
	* regcache.c (init_legacy_regcache_descr): Make static.
	(do_regcache_xfree): Make static.
	(regcache_xfer_part): Make static.
	(_initialize_regcache): Add missing prototype.
	* breakpoint.c (parse_breakpoint_sals): Make static.
	(breakpoint_sals_to_pc): Make static.
	* interps.h (clear_interpreter_hooks): ISO C declaration.
	* Makefile.in (stack_h): Define.
	(stack.o, typeprint.o, mi-main.o): Update dependencies.
	(mi-cmd-stack.o, infcall.o, linespec.o): Update dependencies.

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

	* Makefile.in (d10v-tdep.o): Update dependencies.
	(SFILES): Add trad-frame.c.
	(trad_frame_h): Define.
	(COMMON_OBS): Add trad-frame.o.
	(trad-frame.o): Specify dependencies.
	* d10v-tdep.c: Include "trad-frame.h".
	(saved_regs_unwinder): Delete function.
	(d10v_frame_prev_register): Use trad_frame_prev_register.
	(struct d10v_unwind_cache): Change type of "saved_regs" to "struct
	trad_frame", delete "regs" and "prev_sp".
	(prologue_find_regs): Use trad-frame.
	* trad-frame.h, trad-frame.c: New files.

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

	* dwarf2cfi.c, dwarf2cfi.h: Remove.

2003-06-07  Adam Fedor  <fedor@gnu.org>

	* objc-lang.c (FETCH_ARGUMENT): Remove macro.
	(OBJC_FETCH_POINTER_ARGUMENT): Shorthand macro for
	using FETCH_POINTER_ARGUMENT with Objective-C method arguments.
	(find_implementation, resolve_msgsend, resolve_msgsend_stret,
	resolve_msgsend_super, resolve_msgsend_super_stret):
	Use it.

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

	* symfile.h: Re-indent, clean up comments.

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

	* inferior.h (deprecated_write_sp): Replace
	generic_target_write_sp.
	* regcache.c (deprecated_write_sp): Replace
	generic_target_write_sp.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* config/pa/tm-hppa.h (DEPRECATED_DUMMY_WRITE_SP): Update.

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

	* dwarf2-frame.c (dwarf2_frame_cache): Add comments on PC_REGNUM.
	Assert that PC_REGNUM is valid.
	(dwarf2_frame_prev_register): Add comments on SP_REGNUM.

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

	* gdbarch.sh (TARGET_READ_SP): Add predicate, delete default.
	* gdbarch.h, gdbarch.c: Regenerate.
	* mn10300-tdep.c: Include "gdb_assert.h".
	(mn10300_read_fp): New function.
	(mn10300_gdbarch_init): Set deprecated_target_read_fp to
	mn10300_read_fp.  Do not set read_sp to generic_target_read_sp.
	* ia64-tdep.c: Include "gdb_assert.h".
	(ia64_read_fp): New function.
	(ia64_gdbarch_init): Set deprecated_target_read_fp to
	ia64_read_sp.  Do not set read_sp to generic_target_read_sp.
	* regcache.c (generic_target_read_sp): Delete function.
	(read_sp): Try TARGET_READ_SP and SP_REGNUM for the SP register.
	* inferior.h (generic_target_read_sp): Delete declaration.
	* frv-tdep.c (frv_gdbarch_init): Do not set read_sp to
	generic_target_read_sp.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* Makefile.in (mn10300-tdep.o, ia64-tdep.o): Update dependencies.

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

	* gdbarch.sh: Comment each field of startup_gdbarch.
	* gdbarch.h, gdbarch.c: Re-generate.

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

	* gdbarch.sh (TARGET_READ_PC): Add predicate, remove default.
	* gdbarch.h, gdbarch.c: Re-generate.
	* regcache.c: Update comments on read_pc et.al.
	(generic_target_read_pc): Delete function.
	(read_pc_pid): Try TARGET_READ_PC and PC_REGNUM for a PC register.
	* inferior.h (generic_target_read_pc): Delete declaration.
	* frv-tdep.c (frv_gdbarch_init): Do not set read_pc to
	generic_target_read_pc.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.

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

	* elfread.c (elf_symtab_read): Replace "special_local_sym_p" and
	"index" with "special_local_sect".  Use strcmp instead of STREQ.
	Append period to coments.

2003-06-06  Mark Mitchell  <mark@codesourcery.com>

	* elfread.c (elf_symtab_read): Avoid use of SECT_OFF_MAX.
	(elfstab_offset_sections): Likewise.
	* gdb-stabs.h (stab_section_info): Likewise.
	* i386-interix-tdep.c (pei_adjust_objfile_offsets): Likewise.
	* objfiles.c (objfile_relocate): Likewise.
	* pa64solib.c (pa64_solib_add_solib_objfile): Likewise.
	* remote.c (get_offsets): Likewise.
	(remote_cisco_objfile_relocate): Likewise.
	* somread.c (som_symfile_offsets): Likewise.
	* symfile.c (alloc_section_addr_info): New function.
	(build_section_addr_info_from_section_tab): Use it.
	(free_section_addr_info): Adjust.
	(default_symfile_offsets): Avoid use of SECT_OFF_MAX.
	(syms_from_objfile): Allocate local_addr dynamically.
	(symbol_file_add_with_addrs_or_offsets): Allocate orig_addrs
	dynamically.
	(add_symbol_file_command): Allocate sect_opts dynamically.
	(reread_symbols): Avoid use of SECT_OFF_MAX.
	* symfile.h (section_addr_info): Do not use MAX_SECTIONS.
	(alloc_section_addr_info): Declare it.
	* symtab.h (SIZEOF_SECTION_OFFSETS): Remove.
	* win32-nat.c (solib_symbols_add): Allocate section_addrs
	dynamically.
	* xcoffread.c (xcoff_symfile_offsets): Avoid use of SECT_OFF_MAX.

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

	* d10v-tdep.c (struct d10v_unwind_cache): Delete "return_pc".
	(d10v_frame_unwind_cache): Do not set "return_pc".

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

	* h8300-tdep.c: Make tidy (long lines).

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

	* x86-64-tdep.c (x86_64_fill_fxsave): Pass correct regnums
	to regcache_collect().

2003-06-05  J. Brobecker  <brobecker@gnat.com>

	* hppa-hpux-tdep.c (hppa_hpux_init_abi): New function, setting
	pc_in_sigtramp multiarch method.
	(hppa_hpux_som_init_abi): Use it.
	(hppa_hpux_elf_init_abi): Likewise.
	* config/pa/tm-hppah.h (PC_IN_SIGTRAMP): Remove, now that this
	macro has been multiarched.
	* config/pa/tm-hppa64.h (PC_IN_SIGTRAMP): Temporarily set this
	macro here, as hppa64 isn't multiarched yet.

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

	* Makefile.in (value_h): Add $(frame_h).
	* value.h: Include "frame.h".
	(struct value): Replace "frame_addr" with "frame_id".
	(VALUE_FRAME_ID): Replace VALUE_FRAME.
	* values.c (allocate_value): Use VALUE_FRAME_ID.
	(value_copy): Use VALUE_FRAME_ID.
	* findvar.c (value_from_register): Use VALUE_FRAME_ID.
	* valops.c (value_assign): Update.  Use frame_find_by_id.

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

	* x86-64-tdep.c (x86_64_push_arguments): Don't clear offset
	in each pass.

2003-06-05  Jeff Johnston  <jjohnstn@redhat.com>

	* thread-db.c (check_event): For create/death event breakpoints,
	loop through all messages to ensure that we read the message
	corresponding to the breakpoint we are at.

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

	* h8300-tdep.c (h8300_gdbarch_init): Add h8300hn, h8300sn.

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

	* dwarf2-frame.c (struct comp_unit): Add member `dbase'.
	(read_encoded_value): Handle DW_EH_PE_datarel encoding.
	(dwarf2_build_frame_info): Set base for DW_EH_PE_datarel encodings
	when handling .eh_frame sections.

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

	* config/pa/nm-hppah.h (PREPARE_TO_PROCEED): Use the generic
	prepare_to_proceed procedure instead of the hppa-specific one.
	* hppa-tdep.c (hppa_prepare_to_proceed): Remove, no longer used.

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

	* acconfig.h: Add HAVE_TKILL_SYSCALL definition check.
	* config.in: Regenerated.
	* configure.in: Add test for syscall function and check for
	__NR_tkill macro in <syscall.h> to set HAVE_TKILL_SYSCALL.
	* configure: Regenerated.
	* lin-lwp.c [HAVE_TKILL_SYSCALL]: Include <unistd.h> and
	<sys/syscall.h>.
	(kill_lwp): New function that uses tkill syscall or
	uses kill, depending on whether threading model is nptl or not.
	All callers of kill() changed to use kill_lwp().
	(lin_lwp_wait): Make special check when WIFEXITED occurs to
	see if all threads have already exited in the nptl model.
	(stop_and_resume_callback): New callback function used by the
	lin_lwp_wait thread exit handling code.
	(stop_wait_callback): Check for threads already having exited and
	delete such threads fromt the lwp list when discovered.
	(stop_callback): Don't assert retcode of kill call.

	Roland McGrath  <roland@redhat.com>
	* i386-linux-nat.c (ps_get_thread_area): New function needed by
	nptl libthread_db.

2003-06-03  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_next_pc): Use alpha_read_insn.
	(alpha_sigtramp_frame_this_id): Use get_frame_memory.
	(alpha_sigtramp_frame_prev_register): Likewise.
	(alpha_heuristic_frame_prev_register): Likewise.
	* alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Likewise.

	* alpha-mdebug-tdep.c (alpha_mdebug_after_prologue): Use
	alpha-specific register id names.
	(alpha_mdebug_frame_unwind_cache): Likewise.
	(alpha_mdebug_frame_prev_register): Likewise.

2003-06-03  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_dwarf2_init_abi): New.
	* alpha-tdep.h (alpha_dwarf2_init_abi): Declare it.
	* alpha-linux-tdep.c (alpha_linux_init_abi): Use it.
	* alphafbsd-tdep.c (alphafbsd_init_abi): Register dwarf2 and mdebug
	unwind routines.
	* alphanbsd-tdep.c (alphanbsd_init_abi): Likewise.
	* config/alpha/fbsd.mt (TDEPFILES): Add alpha-mdebug-tdep.o.
	* config/alpha/nbsd.mt (TDEPFILES): Likewise.

	* alpha-linux-tdep.c: Remove unnecessary includes.
	* Makefile.in (alpha-linux-tdep.o): Update.

2003-06-03  Richard Henderson  <rth@redhat.com>

	* alphabsd-tdep.c (alphabsd_supply_fpreg): Fix typo last change.
	(alphabsd_fill_fpreg): Likewise.

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

	* alphanbsd-tdep.c (alphanbsd_sigcontext_addr):  Replace
	references to struct frame_info fields by calls to the equivalent
	accessors. Necessary now that frame_info is opaque.

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

	* alphanbsd-tdep.c (alphanbsd_skip_sigtramp_frame): Delete.
	(alphanbsd_init_abi): Do not set skip_sigtramp_frame in tdep
	structure, field no longer exists.

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

	* config/alpha/alpha-osf1.mt (TDEPFILES): Add alpha-mdebug-tdep.o.
	* alpha-osf1-tdep.c (alpha_osf1_init_abi): Enable the mdebug module.

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

	* alpha-osf1-tdep.c (alpha_osf1_sigcontext_addr): Replace
	references to struct frame_info fields by calls to the equivalent
	accessors. Necessary now that frame_info is opaque.

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

	* alpha-osf1-tdep.c (alpha_osf1_skip_sigtramp_frame): Delete.
	(alpha_osf1_init_abi): Do not set skip_sigtramp_frame in tdep
	structure, field no longer exists.

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

	* remote.c (init_remote_state): Compute sizeof_g_packet by
	accumulation of the size of all registers instead of blindly using
	DEPRECATED_REGISTER_BYTES.

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

	* config/h8300/tm-h8300.h (h8300sxmode): Declare.
	* h8300-tdep.c (h8300_gdbarch_init): Set machine mode
	for h8300sx.

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

	* alpha-osf1-tdep.c (objfiles.h): #include, needed for symfile_objfile.
	* Makefile.in (alpha-osf1-tdep.o): Update dependencies.

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

	* sparc-tdep.c (sparc_convert_to_virtual): Delete function.
	(sparc_convert_to_raw): Delete function.
	(sparc_gdbarch_init): Do not set register_convert_to_raw or
	register_convert_to_virtual.

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

	* thread-db.c (thread_db_mourn_inferior): Unpush thread target
	layer if not dealing with a statically-linked threaded program.

2003-06-03  Kris Warkentin  <kewarken@qnx.com>

	* solib.c (solib_open): Update comment to reflect actual search order.

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

	* frame.c (get_frame_memory_signed): New function.
	(get_frame_memory, get_frame_memory_unsigned): New function.
	(get_frame_arch): New function.
	* frame.h (get_frame_signed_memory, get_frame_arch): Declare.
	(get_frame_memory, get_frame_unsigned_memory): Declare.
	* d10v-tdep.c (d10v_frame_unwind_cache): Use
	get_frame_memory_unsigned and get_frame_arch.
	(d10v_frame_unwind_cache, saved_regs_unwinder): Ditto.

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

	* MAINTAINERS (write after approval): Add myself.

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

	* s390-nat.c (supply_gregset, fill_gregset): On the s390x, the
	elements of gregset_t are 64 bits each, but access registers
	are still 32 bits, so they're packed two per gregset_t
	element.  Unpack/pack them properly.

2003-06-02  David Carlton  <carlton@bactrian.org>

	* linespec.c (find_methods): Break out code into
	add_matching_methods and add_constructors.
	(add_matching_methods): New.
	(add_constructors): Ditto.

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

	* sparc-tdep.c (sparc_print_registers): Delete call to
	REGISTER_CONVERTIBLE.
	(sparc_gdbarch_init): Do not set register_convertible.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.

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

	* target.h (TARGET_SYMFILE_POSTREAD): Delete unused macro.
	* symfile.c (reread_symbols): Delete call to TARGET_SYMFILE_POSTREAD.
	(syms_from_objfile): Ditto.

2003-06-03  Andreas Schwab  <schwab@suse.de>

	* m68k-tdep.c (m68k_gdbarch_init): Use set_gdbarch_print_insn ...
	(_initialize_m68k_tdep): ... instead of deprecated_tm_print_insn.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_register_reggroup_p): Zero is only
	a member of all_reggroup.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_register_type): Change from _virtual_type.
	(alpha_convert_flt_dbl, alpha_convert_dbl_flt): Remove.
	(alpha_lds, alpha_sts): New.
	(alpha_convert_register_p): Change from _register_convertible.
	(alpha_register_to_value): Change from _convert_to_virtual;
	restructure and fail for type sizes other than 4 or 8.
	(alpha_value_to_register): Similarly.
	(alpha_extract_return_value): Use alpha_sts.
	(alpha_store_return_value): Use alpha_lds.
	(alpha_gdbarch_init): Update hooks.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_register_virtual_type): Use alpha-specific
	regnum identifiers.
	(alpha_sigtramp_register_address): Likewise.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_supply_int_regs, alpha_fill_int_regs): New.
	(alpha_supply_fp_regs, alpha_fill_fp_regs): New.
	* alpha-tdep.h: Declare them.

	* alpha-nat.c (fetch_osf_core_registers): Constify core_reg_mapping.
	Remove zerobuf.  Don't error on UNIQUE.
	(fetch_elf_core_registers): Use alpha_supply_{int,fp}_regs.
	(ALPHA_REGSET_UNIQUE): Provide default.
	(supply_gregset): Use alpha_supply_int_regs.
	(fill_gregset): Use alpha_fill_int_regs.
	(supply_fpregset): Use alpha_supply_fp_regs.
	(fill_fpregset): Use alpha_fill_fp_regs.
	* alphabsd-tdep.c (NUM_GREGS, NUM_FPREGS): Remove.
	(alphabsd_supply_reg): Use alpha_supply_int_regs.
	(alphabsd_fill_reg): Use alpha_fill_int_regs.
	(alphabsd_supply_fpreg): Use alpha_supply_fp_regs.
	(alphabsd_fill_fpreg): Use alpha_fill_fp_regs.
	* config/alpha/nm-linux.h (ALPHA_REGSET_UNIQUE): New.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_store_return_value): Avoid switch fallthru.

	* alpha-tdep.c (alpha_extract_return_value): Use internal_error.
	(alpha_store_return_value): Likewise.

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

	* block.c (contained_in): Add 'const' to arguments.
	(block_function): Ditto.
	* block.h: Update declarations for block_function and
	contained_in.

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

	* objc-lang.c (find_imps): Delete unneeded variable 'sym_symtab'.
	* c-valprint.c (c_val_print): Delete unneeded variable 's'.
	* p-valprint.c (pascal_val_print): Ditto.
	* ada-lang.c (standard_lookup): Delete unneded variable 'symtab'.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_push_dummy_call): Use
	builtin_type_ieee_double_little instead of builtin_type_double.

	* alpha-tdep.c (alpha_push_dummy_call): Handle ABI mandated
	sign-extension of 32-bit values.
	(alpha_store_return_value): Similarly.

	* alpha-tdep.c (alpha_push_dummy_call): Handle COMPLEX types.
	(alpha_extract_return_value): Likewise.
	(alpha_store_return_value): Likewise.

	* alpha-tdep.c (alpha_extract_return_value): Handle IEEE Quad floats.
	(alpha_store_return_value): Error on IEEE Quad floats.

	* alpha-tdep.c (alpha_extract_return_value): Convert to regcache.
	(alpha_extract_struct_value_address): Likewise.
	(alpha_store_return_value): Likewise.
	(alpha_store_struct_return): Remove.
	(alpha_gdbarch_init): Update hook registration to match.

	* alpha-tdep.c (alpha_register_convert_to_virtual): Tidy use of
	deprecated interfaces; use ALPHA_REGISTER_SIZE instead of gdbarch
	macros where appropriate.
	(alpha_register_convert_to_raw): Similarly.  Use unpack_long.
	(alpha_convert_flt_dbl, alpha_convert_dbl_flt): New.

	* alpha-tdep.c (alpha_register_virtual_type): Use void_data_ptr
	for SP, GP; void_func_ptr for PC; non-language-specific types
	for all others.
	* alpha-tdep.h (ALPHA_GP_REGNUM): New.

2003-06-02  Richard Henderson  <rth@redhat.com>

	* top.h (lim_at_start): Declare.
	* main.c (captured_main): Set it.
	* top.c (lim_at_start): Define.
	(command_loop): Use it instead of &environ.
	* event-top.c (command_handler): Likewise.

2003-06-01  Jason Thorpe  <thorpej@wasabisystems.com>

	* mipsnbsd-tdep.c: Update copyright years.
	(fetch_core_registers): Correct arguments to mipsnbsd_supply_fpreg.

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

	* Makefile.in (ALLDEPFILES): Add alpha-mdebug-tdep.c.
	(alpha-linux-tdep.o): Update dependencies.
	(alpha-nat.o, alpha-tdep.o, alpha-mdebug-tdep.o): Likewise.
	* alpha-mdebug-tdep.c: Remove unneeded includes.

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

	* alpha-tdep.c (alpha_register_reggroup_p): New.
	(alpha_gdbarch_init): Register it.

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

	* dwarfread.c: Eliminate "register"
	(decode_die_type): Eliminate assignment within "if".
	(struct_type, decode_array_element_type): Ditto.
	(dwarf_read_array_type, read_tag_pointer_type): Ditto.
	(read_subroutine_type, enum_type, add_enum_psymbol): Ditto.
	(decode_modified_type, completedieinfo): Ditto.
	* block.c: Eliminate "register".
	(blockvector_for_pc_sect): Eliminate assignment within "if".
	* cp-support.h (struct symbol): Opaque declaration.
	* breakpoint.c (handle_gnu_v3_exceptions): Use xfree, not free.

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

	* alpha-tdep.c (alpha_gdbarch_init): Use set_gdbarch_print_insn ...
	(_initialize_alpha_tdep): ... not deprecated_tm_print_insn.

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

	* gdbarch.sh (function_list): Add FETCH_POINTER_ARGUMENT.
	* gdbarch.[ch]: Regenerate.
	* hppa-tdep.c (hppa_fetch_pointer_argument): New function.
	(hppa_gdbarch_init): Set it in the gdbarch vector.
	* i386-tdep.c (i386_fetch_pointer_argument): New
	(i386_gdbarch_init): Set it into gdbarch.
	* rs6000-tdep.c (rs6000_fetch_pointer_argument): New.
	(rs6000_gdbarch_init): Set it in gdbarch.
	* sparc-tdep.c (sparc_fetch_pointer_argument): New
	(sparc_gdbarch_init): Set it in gdbarch.

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

	* defs.h (extract_address): Delete declaration.
	* findvar.c (extract_address): Delete function.
	* xstormy16-tdep.c (xstormy16_extract_return_value): Replace
	extract_address with the inline equivalent,
	extract_unsigned_integer.
	(xstormy16_extract_struct_value_address): Ditto.
	(xstormy16_pointer_to_address): Ditto.
	* vax-tdep.c (vax_extract_struct_value_address): Ditto.
	* v850-tdep.c (v850_push_arguments): Ditto.
	(v850_extract_return_value): Ditto.
	(v850_extract_struct_value_address): Ditto.
	* sparcnbsd-tdep.c (sparcnbsd_get_longjmp_target_32): Ditto.
	(sparcnbsd_get_longjmp_target_64): Ditto.
	* sparc-tdep.c (sparc_frame_saved_pc): Ditto.
	(get_longjmp_target): Ditto.
	* sh-tdep.c (sh_extract_struct_value_address): Ditto.
	(sh64_extract_struct_value_address): Ditto.
	(sh_push_arguments): Ditto.
	(sh64_push_arguments): Ditto.
	* remote-vxsparc.c (vx_read_register): Ditto.
	* ppc-linux-tdep.c (ppc_linux_skip_trampoline_code): Ditto.
	* ns32k-tdep.c (ns32k_extract_struct_value_address): Ditto.
	* mn10300-tdep.c (mn10300_extract_struct_value_address): Ditto.
	* mipsv4-nat.c (get_longjmp_target): Ditto.
	* mipsnbsd-tdep.c (mipsnbsd_get_longjmp_target): Ditto.
	* mips-nat.c (get_longjmp_target): Ditto.
	* mips-linux-tdep.c (mips_linux_get_longjmp_target): Ditto.
	* mcore-tdep.c (mcore_extract_struct_value_address): Ditto.
	* m68k-tdep.c (m68k_get_longjmp_target): Ditto.
	* m68hc11-tdep.c (m68hc11_extract_struct_value_address): Ditto.
	* irix5-nat.c (get_longjmp_target): Ditto.
	* irix4-nat.c (get_longjmp_target): Ditto.
	* ia64-tdep.c (generic_elf_find_global_pointer): Ditto.
	(ia64_push_arguments): Ditto.
	* hpux-thread.c (hpux_thread_store_registers): Ditto.
	* h8300-tdep.c (h8300_push_arguments): Ditto.
	(h8300_store_return_value): Ditto.
	(h8300_extract_struct_value_address): Ditto.
	* frv-tdep.c (frv_extract_struct_value_address): Ditto.
	(frv_push_arguments): Ditto.
	* avr-tdep.c (avr_pointer_to_address): Ditto.
	(avr_push_arguments): Ditto.
	* arm-tdep.c (arm_push_dummy_call): Ditto.
	(arm_get_longjmp_target): Ditto.
	* arm-linux-tdep.c (arm_linux_push_arguments): Ditto.
	* alpha-tdep.c (alpha_extract_struct_value_address): Ditto.
	(alpha_get_longjmp_target): Ditto.

	* solib-irix.c (extract_mips_address): Inline extract_address,
	replacing it with extract_signed_integer.
	* solib-svr4.c (SOLIB_EXTRACT_ADDRESS): Ditto.
	(LM_NAME, IGNORE_FIRST_LINK_MAP_ENTRY): Ditto.
	(first_link_map_member, open_symbol_file_object): Ditto.
	(svr4_fetch_objfile_link_map, svr4_fetch_objfile_link_map): Ditto.
	* solib-sunos.c (SOLIB_EXTRACT_ADDRESS): Ditto.
	(LM_NEXT, LM_NAME): Ditto.

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

	* alpha-tdep.h (ALPHA_FP_REGNUM): Remove.
	* alpha-tdep.c (alpha_register_name): Remove vfp entry.
	(alpha_cannot_fetch_register): Remove ALPHA_FP_REGNUM.
	(alpha_cannot_store_register): Likewise.
	* alphabsd-nat.c (fetch_inferior_registers): Don't set FP_REGNUM.
	* alpha-nat.c (supply_gregset): Likewise.
	* alphanbsd-tdep.c (fetch_core_registers): Likewise.

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

	* infcall.c (call_function_by_hand): Update comment on
	DEPRECATED_DUMMY_WRITE_SP.

	* mips-tdep.c (mips_gdbarch_init): Do not set
	deprecated_dummy_write_sp.
	(mips_eabi_push_dummy_call): Set the SP register.
	(mips_o64_push_dummy_call): Set the SP register.
	(mips_o32_push_dummy_call): Set the SP register.
	(mips_n32n64_push_dummy_call): Set the SP register.

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

	* alpha-nat.c (fetch_osf_core_registers): Use ALPHA_REGISTER_SIZE
	instead of ALPHA_MAX_REGISTER_RAW_SIZE.
	(supply_gregset): Likewise.
	* alpha-tdep.c (alpha_store_return_value): Likewise.
	(alpha_get_longjmp_target): Likewise.
	(alpha_register_name): Constify array.
	(alpha_gdbarch_init): Remove deprecated_fp_regnum,
	deprecated_register_size, deprecated_register_bytes,
	deprecated_max_register_raw_size, deprecated_max_register_virtual_size.
	* alpha-tdep.h (ALPHA_MAX_REGISTER_RAW_SIZE): Remove.
	(ALPHA_MAX_REGISTER_VIRTUAL_SIZE): Remove.

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

	* alpha-tdep.c (alpha_push_dummy_call): Store sp.  Tidy copies
	from arg_reg_buffer to regcache to avoid double conversion.

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

	* i386-linux-nat.c (child_resume): Use I386_ESP_REGNUM instead of
	SP_REGNUM.
	* i386-linux-tdep.c (i386_linux_sigcontext_addr): Likewise.
	* i386bsd-tdep.c (i386bsd_sigcontext_addr): Likewise.

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

	* dwarf2-frame.c (struct dwarf2_cie): Add saw_z_augmentation.
	(decode_frame_entry): Set it.  Skip FDE augmentation.

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

	* dwarf2-frame.c (dwarf2_frame_cache): Handle retaddr_column
	not overlapping PC_REGNUM.

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

	* alpha-tdep.c (alpha_push_dummy_call): Transmography from
	alpha_push_arguments.  Don't dump argument register data to
	the target stack.  Fix float and 128-bit long double semantics.
	Store $t12 and $ra as specified by the ABI.  Use regcache everywhere.
	(alpha_fix_call_dummy): Remove.
	(alpha_call_dummy_words): Remove.
	(alpha_gdbarch_init): Kill deprecated call hooks; add push_dummy_call.

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

	* alpha-linux-tdep.c (alpha_linux_init_abi): Install dwarf2 unwinder.

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

	* mips-tdep.c (is_mips16_addr): New function.
	(make_mips16_addr, unmake_mips16_addr): New functions.
	(pc_is_mips16, mips_fetch_instruction): Use.
	(gdb_print_insn_mips, mips_breakpoint_from_pc): Use.
	(gdb_print_insn_mips): Eliminate TM_PRINT_INSN_MACH.
	(mips_dump_tdep): Delete print of TM_PRINT_INSN_MACH,
	UNMAKE_MIPS16_ADDR, MAKE_MIPS16_ADDR, IS_MIPS16_ADDR and
	TARGET_MIPS.
	* config/mips/tm-mips.h: Update copyright.
	(TARGET_MIPS, TM_PRINT_INSN_MACH): Delete.
	(DEPRECATED_REGISTER_SIZE, DEPRECATED_REGISTER_BYTES): Delete.
	(IS_MIPS16_ADDR, MAKE_MIPS16_ADDR, UNMAKE_MIPS16_ADDR): Delete.
	* config/mips/tm-irix6.h (DEPRECATED_REGISTER_BYTES): Delete.
	(TM_PRINT_INSN_MACH): Delete.
	* config/mips/tm-irix5.h (DEPRECATED_REGISTER_BYTES): Delete.

	* configure.tgt: Replace mips64*vr4xxx*el-*-elf*,
	mips64*vr4xxx*-*-elf*, mips64*vr4300*el-*-elf*,
	mips64*vr4300*-*-elf*, mips64*vr4100*el-*-elf*,
	mips64*vr4100*-*-elf*, mips64*vr5000*el-*-elf*, and
	mips64*vr5000*-*-elf* with mips64 mips64*vr*-*-elf*.  Delete
	mips*tx39*el*-elf*.  Map mips*-sony-* and mips64*-big-* onto
	mips64.  Map mips*-dec-*, mips*-big-*, mips*-little-*,
	mips*-*-riscos* and mips*-*-sysv* onto mips.
	* config/mips/mips64.mt: New file.
	* config/mips/mips.mt: New file.
	* config/mips/littlemips.mt: Delete file.
	* config/mips/decstation.mt: Delete file.
	* config/mips/vr4300el.mt: Delete file.
	* config/mips/vr5000el.mt: Delete file.
	* config/mips/vr5000.mt: Delete file.
	* config/mips/vr4100.mt: Delete file.
	* config/mips/vr4xxxel.mt: Delete file.
	* config/mips/vr4300.mt: Delete file.
	* config/mips/vr4xxx.mt: Delete file.
	* config/mips/bigmips.mt: Delete file.
	* config/mips/bigmips64.mt: Delete file.
	* config/mips/tx39l.mt (TM_FILE): Set to "tm-tx39.h".
	* config/mips/embedl64.mt (TM_FILE): Set to "tm-mips64.h".
	* config/mips/embed64.mt (TM_FILE): Set to "tm-mips64.h"
	* config/mips/embedl.mt (TM_FILE): Set to "tm-mips.h".
	* config/mips/tm-tx39.h: Include "tm-mips.h" instead of
	"tm-bigmips.h".
	* config/mips/tm-irix3.h: Ditto.
	* config/mips/tm-mipsv4.h: Ditto.
	* config/mips/tm-embed.h: Ditto.
	* config/mips/tm-irix6.h: Include "tm-mips64.h" instead of
	"tm-bigmips64.h".
	* config/mips/tm-vr5000el.h: Delete file.
	* config/mips/tm-tx39l.h: Delete file.
	* config/mips/tm-vr4300el.h: Delete file.
	* config/mips/tm-vr4xxxel.h: Delete file.
	* config/mips/tm-vr4300.h: Delete file.
	* config/mips/tm-vr4100.h: Delete file.
	* config/mips/tm-vr4xxx.h: Delete file.
	* config/mips/tm-vr5000.h: Delete file.
	* config/mips/tm-embedl64.h: Delete file.
	* config/mips/tm-embedl.h: Delete file.
	* config/mips/tm-embed64.h: Delete file.
	* config/mips/tm-bigmips64.h: Delete file.
	* config/mips/tm-bigmips.h: Delete file.

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

	Fix gdb/1216.
	* shnbsd-nat.c: Include "sh-tdep.h".

	From Richard Henderson  <rth@redhat.com>:
	* dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Fix ptr arithmetic.

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

	* mips-tdep.c (set_reg_offset): Add saved_regs parameter.  Add
	forward declaration.
	(mips16_heuristic_proc_desc): Pass temp_saved_regs.
	(mips16_heuristic_proc_desc): Pass temp_saved_regs.
	(mips_find_saved_regs): Use set_reg_offset.
	(mips_frame_init_saved_regs): Delete function.
	(mips_pop_frame): Call mips_find_saved_regs instead of
	DEPRECATED_FRAME_INIT_SAVED_REGS.

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

	* mips-tdep.c (mips_gdbarch_init): Do not set
	deprecated_max_register_raw_size, register_virtual_size, and
	deprecated_max_register_virtual_size.

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

	* i386-tdep.c: Include "dwarf2-frame.h".
	(i386_gdbarch_init): Hook in the DWARF CFI frame unwinder.
	* Makefile.in (i386-tdep.o): Update dependencies.

	* dwarf2-frame.c, dwarf2-frame.h: New files.
	* Makefile.in (SFILES): Add dwarf2-frame.c.
	(dwarf2_frame_h): Define.
	(COMMON_OBS): Add dwarf2-frame.o.
	(dwarf2-frame.o): Add dependencies.

2003-05-31  Andreas Jaeger  <aj@suse.de>

	* x86-64-linux-nat.c: Fix comment.

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

	* x86-64-tdep.c (x86_64_push_dummy_call): Adjust for changed
	function signature.

	* i386-tdep.c (i386_sigtramp_frame_p): Only handle frames if we
	have a sigcontext_addr handler.
	* x86-64-tdep.c (x86_64_sigtramp_frame_p): Assert that we have a
	sigcontext_addr handler.

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

	* mips-tdep.c (print_gp_register_row): Replace do_gp_register_row.
	(print_fp_register_row): Replace do_fp_register_row.
	(mips_print_fp_register): Add "file" and "frame" parameters.
	(mips_print_register): Add "file" and "frame" parameters.
	(mips_print_registers_info): Replace mips_do_registers_info.
	(mips_gdbarch_init): Set print_registers_info instead of
	deprecated_do_registers_info.
	(mips_read_fp_register_single): Add "frame" parameter.
	(mips_read_fp_register_double): Add "frame" parameter.

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

	* i386-tdep.c (i386_register_name): Check for MMX registers first.
	Fixes a bug where GDB would print the wrong register names for
	targets without SSE.

	* x86-64-tdep.c (X86_64_NUM_SAVED_REGS): Set to X86_64_NUM_GREGS.
	(x86_64_sigtramp_frame_cache): Use `sc_reg_offset' to find saved
	registers.

	* x86-64-linux-tdep.c (x86_64_linux_sc_reg_offset): New variable.
	(x86_64_linux_init_abi): Initialize TDEP->sc_reg_offset and
	TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
	TDEP->sc_sp_offset.

	From Michal Ludvig  <mludvig@suse.cz>:
	* i386-tdep.h (struct gdbarch_tdep): Add members `sc_reg_offset'
	and `sc_num_regs'.
	(I386_EAX_REGNUM, I386_EDX_REGNUM, I386_ESP_REGNUM,
	I386_EBP_REGNUM, I386_EIP_REGNUM, I386_EFLAGS_REGNUM,
	I386_ST0_REGNUM): Move here from...
	* i386-tdep.c: ... here.
	(I386_NUM_SAVED_REGS): Define to I386_NUM_REGS.
	(i386_sigtramp_frame_cache): Use `sc_reg_offset' to find saved
	registers if possible.
	(i386_gdbarch_init): Initialize TDEP->sc_reg_offset.
	* i386bsd-tdep.c (i386bsd_sc_pc_offset, i386bsd_sc_sp_offset):
	Remove variables.
	(i386bsd_sc_reg_offset): New variable.
	(i386bsd_init_abi): Initialize TDEP->sc_reg_offset and
	TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
	TDEP->sc_sp_offset.
	(i386fbsd_sc_reg_offset): New variable.
	(i386fbsdaout_init_abi): Initialize TDEP->sc_reg_offset and
	TDEP->sc_num_regs.
	(i386fbsd4_sc_pc_offset, i386fbsd4_sc_sp_offset): Remove
	variables.
	(i386fbsd4_sc_reg_offset): New variable.
	(i3864bsd4_init_abi): Initialize TDEP->sc_reg_offset and
	TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
	TDEP->sc_sp_offset.
	* i386-linux-tdep.c (i386_linux_sc_reg_offset): New variable.
	(i386_linux_init_abi): Set TDEP->sc_reg_offset and TDEP->sc_num_regs.
	* i386nbsd-tdep.c (i386nbsd_sc_pc_offset, i386nbsd_sc_sp_offset):
	Remove variables.
	(i386nbsd_sc_reg_offset): New variable.
	(i386nbsd_init_abi): Initialize TDEP->sc_reg_offset and
	TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
	TDEP->sc_sp_offset.
	* i386obsd-tdep.c (i386obsd_sc_pc_offset, i386obsd_sc_sp_offset):
	Remove variables.
	(i386obsd_sc_reg_offset): New variable.
	(i386obsd_init_abi): Initialize TDEP->sc_reg_offset and
	TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
	TDEP->sc_sp_offset.
	* i386bsd-nat.c (_initialize_i386bsd_nat): Adjust for changes in
	i386bsd-tdep.c, i386nbsd-tdep.c and i386obsd-tdep.c.  Add check
	for frame pointer offset in `struct sigcontext'.

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

	* mips-tdep.c (mips_gdbarch_init): Do not set the deprecated
	architecture methods call_dummy_words, sizeof_call_dummy_words,
	push_return_address, store_struct_return, and fix_call_dummy.  Set
	push_dummy_call instead of deprecated_push_arguments.
	(mips_store_struct_return): Delete function.
	(mips_fix_call_dummy): Delete function.
	(mips_push_return_address): Delete function.
	(mips_eabi_push_dummy_call): Replace mips_eabi_push_arguments, set
	RA_REGNUM and T9_REGNUM.
	(mips_n32n64_push_dummy_call): Ditto for
	mips_n32n64_push_arguments.
	(mips_o32_push_dummy_call): Ditto for mips_o32_push_arguments.
	(mips_o64_push_dummy_call): Ditto for mips_o64_push_arguments.

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

	* gdbarch.sh (PUSH_DUMMY_CALL): Add "func_addr" parameter.  Rename
	"dummy_addr" to "bp_addr".
	* infcall.c (call_function_by_hand): Pass "funaddr" to
	gdbarch_push_dummy_call.
	* gdbarch.h, gdbarch.c: Re-generate.
	* i386-tdep.c (i386_push_dummy_call): Update.
	* arm-tdep.c (arm_push_dummy_call): Update.
	* d10v-tdep.c (d10v_push_dummy_call): Update.

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

	* x86-64-tdep.h (x86_64_num_regs, x86_64_num_gregs): Remove
	variable declarations.
	(x86_64_register_number, x86_64_register_name): Remove prototypes.
	(x86_64_linux_frame_saved_pc, x86_64_linux+saved_pc_after_call,
	x86_64_linux_in_sigtramp, x86_64_linux_frame_chain,
	x86_64_init_frame_pc, x86_64_init_frame_pc,
	x86_64_function_has_prologue): Remove prototypes.
	(X86_64_NUM_GREGS): New define.
	(x86_64_supply_fxsave, x86_64_fill_fxsave): New prototypes.
	* x86-64-tdep.c: Don't include "dwarf2cfi.h".  Include
	"dummy_frame.h", "frame.h", "frame-base.h", "frame-unwind.h".
	(RAX_REGNUM, RDX_REGNUM, RDI_REGNUM, EFLAGS_REGNUM, ST0_REGNUM,
	XMM1_REGNUM): Remove defines.
	(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): New defines.
	(struct x86_64_register_info): Renamed from `struct
	register_info'.  Remove `size' member.
	(x86_64_register_info_table): Remove variable.
	(x86_64_register_info): New variable.
	(X86_64_NUM_REGS): New define.
	(X86_64_NUM_GREGS): Remove define.
	(x86_64_num_regs, x86_64_num_gregs): Remove variables.
	(x86_64_dwarf2gdb_regno_map, x86_64_dwarf2gdb_regno_map_length):
	Remove variables.
	(x86_54_dwarf2_reg_to_regnum): Remove function.
	(x86_64_dwarf_regmap, x86_64_dwarf_regmap_len): New variables.
	(x86_64_dwarf_reg_to_regnum): New function.
	(x86_64_register_name): Rewrite.
	(x86_64_register_raw_size): Remove function.
	(x86_64_register_byte_table): Remove variable.
	(x86_64_register_byte): Remove function.
	(x86_64_register_virtual_type): Remove function.
	(x86_64_register_type): New function.
	(x86_64_register_convertible, x86_64_register_convert_to_virtual,
	x86_64_register_convert_to_raw): Remove functions.
	(x86_64_push_return_address, x86_64_pop_frame): Remove functon.
	(x86_64_use_struct_convention): Make static.  Adjust for renamed
	defines.
	(x86_64_frame_init_saved_regs): Remove function.
	(x86_64_push_arguments): Make static.  Change to accept a regcache
	as argument.
	(x86_64_store_return_value, x86_64_extract_return_value): Make
	static.  Rewrite based on i386 counterparts.
	(x86_64_push_dummy_call): New function.
	(X86_64_NUM_SAVED_REGS): New define.
	(x86_64_register_number): Remove function.
	(x86_64_store_struct_return): Remove function.
	(x86_64_frameless_function_invocation,
	x86_64_function_has_prologue): Remove functions.
	(PROLOG_BUFSIZE): Remove define.
	(struct x86_64_frame_cache): New structure.
	(x86_64_alloc_frame_cache, x86_64_analyze_prologue,
	x86_64_frame_cache, x86_64_frame_this_id,
	x86_64_frame_prev_register, x86_64_frame_p,
	x86_64_sigtramp_frame_cache, x86_64_sigtramp_frame_this_id,
	x86_64_sigtramp_frame_prev_register, x86_sigtramp_frame_p): New
	functions.
	(x86_64_frame_unwind, x86_64_sigtramp_frame_unwind): New
	variables.
	(x86_64_skip_prologue): Rewrite in terms of
	x86_64_analyze_prologue.
	(x86_64_frame_base_address): New function.
	(x86_64_frame_base): New variable.
	(x86_64_save_dummy_frame_tos, x86_64_unwind_dummy_id): Rewrite.
	(x86_64_init_abi): Set register_type and push_dummy_call.  Don't
	set deprecated_fp_regnum, deprecated_register_size,
	deprecated_register_bytes, register_raw_size, register_byte,
	register_virtual_type, register_convertiable,
	register_convert_to_virtual, convert_to_raw,
	deprecated_get_saved_register, deprecated_target_read_fp,
	deprecated_push_arguments, deprecated_push_return_address,
	deprecated_pop_frame, deprecated_store_struct_return,
	deprecated_frame_init_saved_regs, deprecated_frame_chain,
	frameless_function_invocation, deprecated_frame_saved_pc,
	deprecated_saved_pc_after_call, frame_num_args, pc_in_sigtramp,
	dwarf2_build_frame_info, deprecated_init_extra_frame_info,
	deprecated_init_frame_pc and virtual_frame_pointer.  Call
	frame_unwind_append_predicate to register x86_64_sigtramp_frame_p
	and x86_64_frame_p.  Call frame_base_set_default to register
	x86_64_frame_base.
	(I387_FISEG_REGNUM, I387_FOSEG_REGNUM): New defines.
	(x86_64_supply_fxsave, x86_64_fill_fxsave): New functions.
	(_initialize_x86_64_tdep): Remove function.
	* x86-64-linux-tdep.c: Don't include "dwarf2cfi.h".
	(LINUX_SIGINFO_SIZE, LINUX_UCONTEXT_SIGCONTEXT_OFFSET,
	LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_FP_OFFSET): Don't
	define.
	(X86_64_LINUX_UCONTEXT_SIGCONTEXT_OFFSET): Define.
	(x86_64_linux_sigcontext_addr): Rewrite.
	(x86_64_linux_sigtramp_saved_pc, x86_64_linux_saved_pc_after_call,
	x86_64_linux_frame_saved_pc): Remove functions.
	(x86_64_linux_pc_in_sigtramp): Renamed from
	x86_64_linux_in_sigtramp.  Try harder to recognize a signal
	trampoline.
	(x86_64_linux_frame_chain, x86_64_init_frame_pc):
	Remove_functions.
	(x86_64_linux_init_abi): Set pc_in_sigtramp.  Initialize
	TDEP->sigcontext_addr, TDEP->sc_pc_offset and TDEP->sc_sp_offset.
	* x86-64-linux-nat.c: Sync with i386-linux-tdep.c.
	(x86_64_regmap): Rename to regmap.
	(GETREGS_SUPPLIES): Use X86_64_NUM_GREGS instead of
	x86_64_num_gregs.
	(supply_gregset, fill_gregset): Likewise.  Use regmap instead of
	x86_64_regmap.
	(x86_64_fxsave_offset): Remove function.
	(supply_fpregset): Simply call x86_64_supply_fxsave.
	(fill_fpregset): Simply call x86_64_fill_fxsave.
	(fetch_inferior_registers, store_inferior_registers): Avoid
	asignment in if-statement.
	(LINUX_SYSCALL_LEN, LINUX_SYSCALL_REGNUM, SYS_Sigreturn,
	SYS_rt_sigreturn, LINUX_SIGCONTEXT_EFLAGS_OFFSET,
	LINUX_UCONTEXT_SIGCONTEXT_OFFSET): Remove defines.
	(fetch_core_registers): Remove function.
	(linux_elf_core_fns): Remove.
	(offsetoff): Don't define.
	(_initialize_x86_64_linux_nat, kernel_u_size): Remove functions.
	* config/i386/x86-64linux.mt (TDEPFILES): Add i386-linux-tdep.o.
	* config/i386/x86-64linux.mh (NATDEPFILES): Remove core-aout.o,
	add core-regset.o.
	* config/i386/nm-x86-64linux.h: Use NM_X86_64_LINUX_H for
	protection against multiple includes instead of NM_X86_64_h.  Add
	various comments.  Include "config/nm-linux.h".  Don't include
	<signal.h>.
	(REGISTER_U_ADDR, KERNEL_U_SIZE, U_REGS_OFFSET, KERN_U_ADDR,
	GET_THREAD_SIGNALS): Remove defines.
	(x86_64_register_u_addr, kernel_u_size,
	lin_thread_get_thread_signals): Remove prototypes.
	(PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Define to `long'.
	[HAVE_LINK_H]: Don't include "solib.h".
	[HAVE_LINK_H] (SVR4_SHARED_LIBS): Remove define.
	* config/i386/tm-x86-64linux.h: Fix comments.
	* Makefile.in (x86-64-linux-nat.o, x86_64-linux-tdep.o,
	x86-64-tdep.o): Update dependencies.

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

	* config/sparc/tm-sparc.h (sparc_extract_struct_value_address):
	Change parameter type to a "struct regcache *".

	* gdbarch.sh: Regardless of the multi-arch level, always define
	the macro when not already defined.
	* gdbarch.h, gdbarch.c: Re-generate.

2003-05-30  Richard Henderson  <rth@redhat.com>

	* alpha-mdebug-tdep.c (alpha_mdebug_frame_p): Reject prologues.
	(alpha_mdebug_frame_unwind_cache): Don't call the heuristic unwinder.
	(alpha_mdebug_frame_this_id): Likewise.
	(alpha_mdebug_frame_prev_register): Likewise.
	(alpha_mdebug_frame_base_address): Likewise.
	(alpha_mdebug_frame_locals_address): Likewise.
	(alpha_mdebug_frame_args_address): Likewise.
	(struct alpha_mdebug_unwind_cache): Remove in_prologue_cache.
	* alpha-tdep.c (alpha_heuristic_proc_start): Use get_pc_function_start.
	(alpha_heuristic_frame_unwind_cache): Make static; add missing
	loop increment.
	(alpha_heuristic_frame_this_id): Make static.
	(alpha_heuristic_frame_prev_register): Likewise.
	(alpha_heuristic_frame_base_address): Likewise.
	* alpha-tdep.h: Update.

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

	* i386-tdep.h (i386bsd_sigcontext_addr): Remove prototype.
	(I386_SIZEOF_GREGS, I386_SIZEOF_FREGS, I386_SIZEOF_XREGS): Remove
	defenitions.
	(IS_FP_REGNUM, IS_SSE_REGNUM): Remove definitions.
	* i386-tdep.c: Mark functions that are 64-bit safe as such.
	(I386_EAX_REGNUM, I386_EDX_REGNUM, I386_ESP_REGNUM,
	I386_EBP_REGNUM, I386_EIP_REGNUM, I386_EFLAGS_REGNUM,
	I386_ST0_REGNUM): New defines.
	(CODESTREAM_BUFSIZ, codestream_tell, codestream_peek,
	codestream_get): Remove define.
	(codestream_next_addr, condestream_addr, condestream_buf,
	codestream_off, codestream_cnt): Remove variables.
	(codestream_fill, codestream_seek, codestream_read): Remove
	functions.
	(i386_follow_jump): Rewrite to avoid usage of removed codestream
	functionality.
	(i386_get_frame_setup, i386_frameless_signal_p, i386_frame_chain,
	i386_sigtramp_saved_pc, i386_sigtramp_saved_sp,
	i386_frame_saved_pc, i386_saved_pc_after_call,
	i386_frame_num_args, i386_frame_init_saved_regs,
	i386_push_return_address, i386_do_pop_frame, i386_pop_frame,
	i386_push_arguments): Remove functions.
	(i386_skip_prologue): Rewrite to avoid usage of removed codestream
	functionality.  Use i386_analyze_prologue instead of
	i386_get_frame_setup.
	(I386_NUM_SAVED_REGS): New define.
	(struct i386_frame_cache): New structure.
	(i386_alloc_frame_cache, i386_analyze_struct_return,
	i386_skip_probe, i386_analyze_frame_setup,
	i386_analyze_register_saves, i386_analyze_prologue,
	i386_unwind_pc, i386_frame_cache, i386_frame_this_id,
	i386_frame_prev_register, i386_sigtramp_frame_cache,
	i386_sigtramp_frame_this_id, i386_sigtramp_frame_prev_register,
	i386_frame_p, i386_sigtramp_frame_p, i386_frame_base_address,
	i386_unwind_dummy_id, i386_save_dummy_tos, i386_push_dummy_call):
	New functions.
	(i386_frame_unwind, i386_sigtramp_frame_unwind, i386_frame_base):
	New variables.
	(LOW_RETURN_REGNUM, HIGH_RETURN_REGNUM): Define in terms of
	I386_EAX_REGNUM and I386_EDX_REGNUM.
	(i386_extract_return_value, i386_store_return_value): Use
	I386_ST0_REGNUM where appropriate.
	(i386_extract_struct_value_address): Rewrite to use extract_address.
	(i386_svr4_pc_in_sigtramp): Add comment.
	(i386_svr4_sigcontext_addr): Rewrite.
	(i386_svr4_init_abi): Adjust TDEP->sc_pc_offset and
	TDEP->sc_sp_offset.
	(i386_gdbarch_init): Don't set deprecated_init_frame_pc.  Set
	sp_regnum, fp_regnum, pc_regnum, ps_regnum and fp0_regnum in terms
	of new defines.  Set push_dummy_call, don't set
	deprecated_push_arguments, deprecated_push_return_address,
	deprecated_pop_frame.  Don't set parm_boundary.  Don't set
	deprecated_frame_chain, deprecated_frame_saved_pc,
	deprecated_saved_pc_after_call.  Set unwind_dummy_id,
	save_dummy_frame_tos, unwind_pc.  Call
	frame_unwind_append_predicate and frame_base_set_default.  Don't
	set deprecated_dummy_write_pc.  Don't set deprecated_fp_regnum.
	Don't set frameless_function_invocation.  Don't set
	deprecated_register_bytes, deprecated_register_size,
	deprecated_call_dummy_words and deprecated_sizeof_call_dummy.
	* i386-linux-tdep.c: Fix formatting in some comments.
	(LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_OFFSET0,
	LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_OFFSET1,
	LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_OFFSET2,
	LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_OFFSET0,
	LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_OFFSET1): Drop
	redundant parentheses.
	(I386_LINUX_UCONTEXT_SIGCONTEXT_OFFSET): New define.
	(i386_linux_sigcontext_addr): Use it.  Rewrite.
	(find_minsym_and_objfile): Change name of second argument.
	(skip_gnu_resolver): Renamed from skip_hurd_resolver.  All callers
	changed.  Use frame_pc_unwind instead of
	DEPRECATED_SAVED_PC_AFTER_CALL.
	(i386_linux_init_abi): Don't set deprecated_register_bytes.
	* i386bsd-tdep.c (i386bsd_sigcontext_addr): Rewrite.
	* i386-nto-tdep.c (i386nto_sigcontext_addr): Adapt for new frame
	unwinder.
	* i386-cygwin-tdep.c: Don't include "gdbcore.h", "frame.h" and
	"dummy-frame.h".
	(i386_cygwin_frame_chain_valid, i386_cygwin_frame_chain): Removed.
	(_initialize_i386_cygwin_tdep): New prototype.
	(i386_cygwin_init_abi): Don't set deprecated_frame_chain and
	deprecated_frame_chain_valid.
	* i386-sol2-tdep.c (i386_sol2_init_abi): Don't set
	TDEP->sigcontext_addr, TDEP->sc_pc_offset and TDEP->sc_sp_offset.
	Rely on the SVR4 defaults.
	* config/i386/i386sol2.mt (TDEPFILES): Remove i386bsd-tdep.o.
	* Makefile.in (i386-tdep.o, i386-cygwin-tdep.o): Update dependencies.

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

	* infcall.c (call_function_by_hand): Always call
	DEPRECATED_FIX_CALL_DUMMY, even for AT_ENTRY_POINT case.

2003-05-30  Richard Henderson  <rth@redhat.com>

	* alpha-tdep.c (alpha_heuristic_frame_unwind_cache): Fix loop
	increment.

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

	Use gdbarch methods for solib stuff on PowerPC Linux.
	* config/powerpc/tm-linux.h (IN_SOLIB_CALL_TRAMPOLINE,
	SKIP_TRAMPOLINE_CODE): #undef these, so the gdbarch methods will
	show through.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Register
	IN_SOLIB_CALL_TRAMPOLINE and SKIP_TRAMPOLINE_CODE methods here,
	giving the same effect as the #definitions above.

2003-05-29  Adam Fedor  <fedor@gnu.org>

	* objc-lang.c (CONVERT_FUNCPTR): Remove macro
	(find_implementation_from_class): Replace it with the standard
	case i.e. do nothing.

2003-05-29  Richard Henderson  <rth@redhat.com>

	* alpha-linux-tdep.c (alpha_linux_sigtramp_offset_1): New.
	(alpha_linux_sigtramp_offset): Use it.  Make static.
	(alpha_linux_sigcontext_addr): Handle __NR_rt_sigreturn;
	update for new frame model.
	* alpha-mdebug-tdep.c: New file.
	* alpha-osf1-tdep.c (alpha_call_dummy_address): Move from alpha-tdep.c.
	(alpha_osf1_init_abi): Install it.
	* alpha-tdep.c (PROC_*): Move to alpha-mdebug-tdep.c.
	(linked_proc_desc_table): Remove.
	(alpha_frame_past_sigtramp_frame): Remove.
	(alpha_dynamic_sigtramp_offset): Remove.
	(ALPHA_PROC_SIGTRAMP_MAGIC): Remove.
	(alpha_proc_desc_is_dyn_sigtramp): Remove.
	(alpha_set_proc_desc_is_dyn_sigtramp): Remove.
	(push_sigtramp_desc): Remove.
	(alpha_cannot_fetch_register): Use ALPHA_FP_REGNUM.
	(alpha_cannot_store_register): Likewise.
	(alpha_sigcontext_addr): Remove.
	(alpha_find_saved_regs): Remove.
	(alpha_frame_init_saved_regs): Remove.
	(alpha_init_frame_pc_first): Remove.
	(read_next_frame_reg): Remove.
	(alpha_frame_saved_pc): Remove.
	(alpha_saved_pc_after_call): Remove.
	(temp_proc_desc, temp_saved_regs): Remove.
	(alpha_about_to_return): Remove.
	(cached_proc_desc): Remove.
	(alpha_frame_chain): Remove.
	(alpha_print_extra_frame_info): Remove.
	(alpha_init_extra_frame_info): Remove.
	(alpha_frame_locals_address): Remove.
	(alpha_frame_args_address): Remove.
	(alpha_push_arguments): Use ALPHA_REGISTER_BYTES not sizeof CORE_ADDR.
	(alpha_push_dummy_frame): Remove.
	(alpha_pop_frame): Remove.
	(alpha_after_prologue): Rename from after_prologue; remove mdebug bits.
	(alpha_read_insn): New.
	(alpha_skip_prologue): Merge alpha_skip_prologue_internal; adjust
	for different insn encodings.
	(alpha_in_lenient_prologue): Remove.
	(struct alpha_sigtramp_unwind_cache): New.
	(alpha_sigtramp_frame_unwind_cache): New.
	(alpha_sigtramp_register_address): New.
	(alpha_sigtramp_frame_this_id): New.
	(alpha_sigtramp_frame_prev_register): New.
	(alpha_sigtramp_frame_unwind): New.
	(alpha_sigtramp_frame_p): New.
	(struct alpha_heuristic_unwind_cache): New.
	(alpha_heuristic_proc_start): Rename from heuristic_proc_start;
	don't count nop insns that occur between functions.
	(alpha_heuristic_frame_unwind_cache): New; incorporate much of
	heuristic_proc_desc, but without the mdebug wrapping.
	(alpha_heuristic_frame_this_id): New.
	(alpha_heuristic_frame_prev_register): New.
	(alpha_heuristic_frame_unwind): New.
	(alpha_heuristic_frame_p): New.
	(alpha_heuristic_frame_base_address): New.
	(alpha_heuristic_frame_base): New.
	(alpha_unwind_dummy_id): New.
	(alpha_unwind_pc): New.
	(alpha_gdbarch_init): Don't set skip_sigtramp_frame.  Kill use of
	frame related deprecated initializations; install replacements.
	(alpha_dump_tdep): Remove.
	* alpha-tdep.h (struct gdbarch_tdep): Remove skip_sigtramp_frame.
	(alpha_read_insn, alpha_after_prologue,
	alpha_heuristic_frame_unwind_cache, alpha_heuristic_frame_this_id,
	alpha_heuristic_frame_prev_register,
	alpha_heuristic_frame_base_address, alpha_mdebug_init_abi): Declare.
	* config/alpha/alpha-linux.mt (TDEPFILES): Add alpha-mdebug-tdep.o.
	* config/alpha/tm-alpha.h (PRINT_EXTRA_FRAME_INFO): Remove.
	* config/alpha/tm-alphalinux.h (SIGTRAMP_START, SIGTRAMP_END): Remove.

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

	* gdb_assert.h (gdb_assert_fail): Provide different definitions
	dependant on the availability of ASSERT_FUNCTION.
	(ASSERT_FUNCTION): Do not define when there is no function name.

2003-05-29  Kevin Buettner  <kevinb@redhat.com>

	From Jimi X <jimix@watson.ibm.com>:
	* rs6000-tdep.c (skip_prologue): Improve support for 64-bit code.

2003-05-28  Jim Blandy  <jimb@redhat.com>

	* ppc-linux-nat.c (store_altivec_registers): Don't cast fourth
	argument to ptrace to int; the system headers should give it the
	right type, and pointers don't fit in ints on powerpc64-*-*.

2003-05-28  H.J. Lu <hongjiu.lu@intel.com>

	* dwarf2read.c (process_die): Handle DW_TAG_try_block and
	DW_TAG_catch_block.

2003-05-26  Elena Zannoni  <ezannoni@redhat.com>

	* stabsread.c (dbx_lookup_type): Make static.
	(read_type): Ditto.
	(add_undefined_type): Ditto.
	* stabsread.h (dbx_lookup_type, read_type, add_undefined_type): Do
	not export.

2003-05-26  Elena Zannoni  <ezannoni@redhat.com>

	* hpread.c (hpread_has_name): Make static.
	(hpread_psymtab_to_symtab): Ditto.
	(file_exists): Ditto.
	(hpread_call_pxdb): Ditto.
	(hpread_pxdb_needed): Ditto.
	(hpread_quick_traverse): Ditto.
	(hpread_get_header): Ditto.
	(hpread_get_lntt): Ditto.
	(hpread_get_slt): Ditto.
	(class_of): Ditto.

2003-05-25  Andreas Schwab  <schwab@suse.de>

	* m68k-tdep.c (m68k_gdbarch_init): Set parm_boundary instead of
	stack_align and deprecated_extra_stack_alignment_needed.
	(m68k_stack_align): Delete.

	* m68k-tdep.c (m68k_register_raw_size): Remove cast.
	(m68k_register_virtual_size): Likewise.
	(altos_skip_prologue): Remove obsolete function.
	(isi_frame_num_args): Likewise.
	(news_frame_num_args): Likewise.
	(m68k_fix_call_dummy): Make static.
	(m68k_push_dummy_frame): Likewise.
	(m68k_pop_frame): Likewise.
	(m68k_skip_prologue): Likewise.
	(m68k_frame_init_saved_regs): Likewise.
	(m68k_saved_pc_after_call): Likewise.
	(m68k_get_longjmp_target): Make multi-arch.
	(m68k_gdbarch_init): Allocate and initialize gdbarch_tdep
	structure.  Register m68k_get_longjmp_target if enabled.
	* m68k-tdep.h (struct gdbarch_tdep): Define.
	* config/m68k/tm-m68k.h: Don't include "regcache.h".

	* Makefile.in (config.status): Also depend on configure.tgt
	and configure.host.
	(m68klinux-tdep.o): Update dependencies.
	* configure.tgt (m68*-*-linux*): Set gdb_multi_arch to 1.
	* m68klinux-tdep.c (M68K_LINUX_JB_ELEMENT_SIZE): Define.
	(M68K_LINUX_JB_PC): Define.
	(m68k_linux_pc_in_sigtramp): Renamed from m68k_linux_in_sigtramp
	and take additional parameter.
	(m68k_linux_sigtramp_saved_pc): Update.
	(m68k_linux_init_abi): Set jb_pc and jb_elt_size.  Register
	m68k_linux_pc_in_sigtramp, in_plt_section,
	find_solib_trampoline_target.
	* config/m68k/tm-linux.h: Don't include any tm headers.
	(START_INFERIOR_TRAPS_EXPECTED): Remove definition.
	(JB_ELEMENT_SIZE): Likewise.
	(JB_PC): Likewise.
	(GET_LONGJMP_TARGET): Likewise.
	(IN_SIGTRAMP): Likewise.
	(SVR4_SHARED_LIBS): Define this and include "solib.h".

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

	* sparc-tdep.c (sparc32_do_push_arguments): New function.
	(sparc32_push_arguments): Re-implement by calling
	sparc32_do_push_arguments.

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

	* sparc-tdep.c (SPARC_F0_REGNUM, SPARC_F1_REGNUM, SPARC_O0_REGNUM,
	SPARC_O1_REGNUM): New defines.
	(sparc32_extract_return_value): Rewrite to operate on a regcache.
	(sparc32_store_return_value): New function.
	(sparc_extract_struct_value_address): Rewrite to operate on a
	regcache.
	(sparc_gdbarch_init): Don't set
	deprecated_extract_struct_value_address.  Set
	extract_struct_value_address instead. Don't set
	deprecated_extract_return_value and deprecated_store_return_value
	for 32-bit targets.  Set extract_return_value and
	store_return_value instead.
	* config/sparc/tm-sparc.h (DEPRECATED_STORE_RETURN_VALUE,
	DEPRECATED_EXTRACT_RETURN_VALUE,
	DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Don't define these.
	(STORE_RETURN_VALUE, EXTRACT_RETURN_VALUE,
	EXTRACT_STRUCT_VALUE_ADDRESS): Define these instead.
	(sparc_store_return_value): Remove prototype.
	(sparc32_store_return_value): New prototype.
	(sparc32_extract_return_value, sparc_extract_struct_value_address):
	Adjust prototypes.

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

	* sparcnbsd-tdep.c: Include "gdb_string.h".

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

	* p-valprint.c (pascal_val_print): Replace extract_address with
	the inline equivalent extract_unsigned_integer.
	* jv-valprint.c (java_value_print): Ditto.
	* ada-valprint.c (ada_val_print_1): Ditto.
	* ada-lang.h (EXTRACT_ADDRESS): Ditto.

2003-05-23  Theodore A. Roth  <troth@openavr.org>

	* blockframe.c (frameless_look_for_prologue): Remove unused
	after_prologue variable.

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

	* blockframe.c (get_pc_function_start): Rewrite to avoid
	asignments in if-statements.

2003-05-23  Raoul Gough  <RaoulGough@yahoo.co.uk>

	Committed by Elena Zannoni  <ezannoni@redhat.com>.
	* coffread.c(coff_symtab_read): Do relocate static symbols from PE
	files, don't relocate absolute symbols (and do use mst_abs).

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

	* objc-lang.c: Include "gdb_assert.h".
	(objc_op_print_tab): Use OP_NULL and PREC_NULL instead of 0.
	(CHECK, CHECK_FATAL, __CHECK_FUNCTION): Delete macros.
	(gdb_check, gdb_check_fatal): Delete functions.
	(read_objc_methlist_method): Replace CHECK and CHECK_FATAL with
	gdb_assert.
	(parse_selector, parse_method, find_methods, find_imps): Ditto.
	* Makefile.in (objc-lang.o): Update dependencies.

2003-05-22  Ian Lance Taylor  <ian@airs.com>

	* disasm.c (gdb_disassemble_info): Initialize disassemble_info
	with fprintf_filtered, not fprintf_unfiltered.

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

	* stack.c (frame_info): Inline extract_address, replacing it with
	extract_unsigned_integer.
	* findvar.c (unsigned_pointer_to_address): Ditto.
	* dwarf2loc.c (dwarf_expr_read_reg): Ditto.
	* dwarf2expr.c (dwarf2_read_address): Ditto.
	* frame.c (frame_pc_unwind): Update comment.
	* dummy-frame.c (deprecated_read_register_dummy): Update comment.

2003-05-22  Jeff Johnston  <jjohnstn@redhat.com>

	* infptrace.c (detach): Call print_sys_errmsg rather than
	perror_with_name to issue warning message when errno is non-zero
	after calling ptrace detach.

2003-05-21  J. Brobecker  <brobecker@gnat.com>

	* config/pa/tm-hppa.h: Delete some unused macros. Move some
	macro definitions from here...
	* hppa-tdep.c: ...to there.

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

	* mips-nat.c (REGISTER_PTRACE_ADDR): Convert macro to function
	register_ptrace_addr().  Fix all callers.

2003-05-21  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (m68k-tdep.o, m68klinux-tdep.o): Update
	dependencies.
	* m68k-tdep.c (m68k_gdbarch_init): Call gdbarch_init_osabi at the
	end.
	* m68klinux-tdep.c (m68k_linux_init_abi): New function.
	(_initialize_m68k_linux_tdep): New function.
	(m68k_linux_frame_saved_pc): Make static.
	(m68k_linux_extract_return_value): Likewise.
	(m68k_linux_store_return_value): Likewise.
	(m68k_linux_extract_struct_value_address): Likewise.
	* config/m68k/tm-linux.h (DEPRECATED_EXTRACT_RETURN_VALUE):
	Remove.
	(DEPRECATED_STORE_RETURN_VALUE): Remove.
	(DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Remove.
	(DEPRECATED_FRAME_SAVED_PC): Remove.

2003-05-20  Kris Warkentin  <kewarken@qnx.com>

	* nto-tdep.c (fetch_core_registers): Match gdb's idea of
	regset numbering rather than our own.

2003-05-19  David Carlton  <carlton@bactrian.org>

	* config/djgpp/fnchange.lst: Add testsuite/gdb.c++/rtti*.

2003-05-19  David Carlton  <carlton@bactrian.org>

	Partial fix for PR c++/827.
	* cp-support.h: Include symtab.h.
	Declare cp_lookup_symbol_nonlocal, cp_lookup_symbol_namespace.
	* cp-namespace.c: Update contributors.
	(cp_lookup_symbol_nonlocal): New.
	(lookup_namespace_scope, cp_lookup_symbol_namespace)
	(lookup_symbol_file): Ditto.
	* c-lang.c (cplus_language_defn): Use cp_lookup_symbol_nonlocal.
	* block.h: Declare block_scope, block_using, block_global_block.
	* block.c (block_scope): New.
	(block_using, block_global_block): Ditto.
	* Makefile.in (cp_support_h): Depend on symtab_h.
	* config/djgpp/fnchange.lst: Add testsuite/gdb.c++/namespace1.cc.

2003-05-19  David Carlton  <carlton@bactrian.org>

	* language.h (struct language_defn): Add 'la_value_of_this'
	and 'la_lookup_symbol_nonlocal' members.
	* symtab.h: Declare basic_lookup_symbol_nonlocal,
	lookup_symbol_static, lookup_symbol_global,
	lookup_symbol_aux_block.
	* symtab.c (lookup_symbol_aux): Call language hooks to determine
	if we should search fields of this and how to do static/global
	lookup.
	(lookup_symbol_aux_block): Make extern.
	(basic_lookup_symbol_nonlocal): New.
	(lookup_symbol_static, lookup_symbol_global): Ditto.
	* ada-lang.c (ada_language_defn): Set 'la_value_of_this' and
	'la_lookup_symbol_nonlocal' members.
	* c-lang.c (c_language_defn, cplus_language_defn)
	(asm_language_defn, minimal_language_defn): Ditto.
	* jv-lang.c (java_language_defn): Ditto.
	* language.c (unknown_language_defn, auto_language_defn)
	(local_language_defn): Ditto.
	* m2-lang.c (m2_language_defn): Ditto.
	* objc-lang.c (objc_language_defn): Ditto.
	* scm-lang.c (scm_language_defn): Ditto.
	* f-lang.c (f_language_defn): Ditto, and include value.h as well.
	* p-lang.c (pascal_language_defn): Ditto for both.
	* Makefile.in (f-lang.o): Depend on value_h.
	(p-lang.o): Ditto.

2003-05-19  David Carlton  <carlton@bactrian.org>

	* block.h: Declare block_static_block.
	* block.c (block_static_block): New.
	* symtab.c (lookup_symbol_aux): Remove 'static_block' argument to
	lookup_symbol_aux_local, calling block_static_block instead.
	(lookup_symbol_aux_local): Delete 'static_block' argument.

2003-05-19  David Carlton  <carlton@bactrian.org>

	* symtab.c (lookup_symbol_aux): Delete #if 0 hunk.

2003-05-19  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-tdep.c (x86_64_dwarf2gdb_regno_map): Fix
	register numbers mapping.

2003-05-18  Adam Fedor  <fedor@gnu.org>

	* symtab.c (completion_list_objc_symbol): New function.
	(make_symbol_completion_list): Use it to add ObjC symbols
	when looking though the list.
	(language_search_unquoted_string): New function.
	(make_file_symbol_completion_list): Use it.

2003-05-18  Andreas Schwab  <schwab@suse.de>

	* Makefile (m68klinux-nat.o, m68klinux-tdep.o): Update
	dependencies.
	* config/m68k/tm-linux.h (DEPRECATED_EXTRACT_RETURN_VALUE): Define
	as m68k_linux_extract_return_value.
	(DEPRECATED_STORE_RETURN_VALUE): Define as
	m68k_linux_store_return_value.
	(DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Define as
	m68k_linux_extract_struct_value_address.
	* m68klinux-tdep.c (m68k_linux_sigtramp_saved_pc): Use
	get_next_frame, get_frame_base, get_frame_pc.
	(m68k_linux_frame_saved_pc): Use get_frame_base.
	(m68k_linux_extract_return_value): New function.
	(m68k_linux_store_return_value): New function.
	(m68k_linux_extract_struct_value_address): New function.
	* config/m68k/tm-m68k.h: Declare m68k_get_longjmp_target.

	* c-exp.y (typebase): Remove duplicate occurence of
	`SIGNED_KEYWORD LONG LONG'.  Use builtin_type_long_long instead
	of lookup_signed_typename.

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

	* dwarf2loc.c (find_location_expression): Change type of second
	argument to `size_t *'.
	(loclist_read_variable, loclist_tracepoint_var_ref): Use size_t
	for size variable.

2003-05-18  David Carlton  <carlton@bactrian.org>

	* symtab.c (lookup_symbol_aux): Rename 'mangled_name' argument to
	'linkage_name'.  Add comment.
	(lookup_symbol_aux_local): Rename 'mangled_name' argument to
	'linkage_name'.
	(lookup_symbol_aux_block, lookup_symbol_aux_symtabs)
	(lookup_symbol_aux_psymtabs, lookup_symbol_aux_minsyms)
	(lookup_block_symbol): Ditto.

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

	* gdbarch.sh (DEPRECATED_REGISTER_BYTES): Rename REGISTER_BYTES.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arm-linux-tdep.c (arm_linux_extract_return_value): Delete reference.
	* TODO (REGISTER_BYTES): Delete reference.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init_32082): Update.
	(ns32k_gdbarch_init_32382): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* i386-linux-tdep.c (i386_linux_init_abi): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* sparc-tdep.c (sparc_pop_frame): Update.
	* rs6000-tdep.c (rs6000_pop_frame): Update.
	* remote.c (init_remote_state): Update.
	(remote_prepare_to_store): Update.
	* remote-vx.c (vx_prepare_to_store): Update.
	* remote-sds.c (sds_fetch_registers): Update.
	(sds_prepare_to_store): Update.
	* remote-array.c: Update.
	* regcache.c (init_legacy_regcache_descr): Update.
	(init_regcache_descr): Update.
	* mips-tdep.c (mips_eabi_extract_return_value): Update.
	(mips_o64_extract_return_value): Update.
	* irix5-nat.c (fetch_core_registers): Update.
	* irix4-nat.c (fetch_core_registers): Update.
	* i386-tdep.h: Update.
	* hppa-tdep.c (pa_do_registers_info): Update.
	(pa_do_strcat_registers_info): Update.
	* cris-tdep.c (cris_register_bytes_ok): Update.
	* config/nm-gnu.h (CHILD_PREPARE_TO_STORE): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_REGISTER_BYTES): Update.
	* config/sparc/nm-sun4sol2.h (CHILD_PREPARE_TO_STORE): Update.
	* config/sparc/nm-sun4os4.h (CHILD_PREPARE_TO_STORE): Update.
	* config/sparc/nm-nbsd.h (CHILD_PREPARE_TO_STORE): Update.
	* config/sparc/tm-sp64.h (DEPRECATED_REGISTER_BYTES): Update.
	* config/s390/tm-s390.h (DEPRECATED_REGISTER_BYTES): Update.
	* config/pa/tm-hppa64.h (DEPRECATED_REGISTER_BYTES): Update.
	* config/mips/tm-mips.h (DEPRECATED_REGISTER_BYTES): Update.
	* config/mips/tm-irix6.h (DEPRECATED_REGISTER_BYTES): Update.
	* config/mips/tm-irix5.h (DEPRECATED_REGISTER_BYTES): Update.
	* config/m68k/tm-sun3.h (DEPRECATED_REGISTER_BYTES): Update.
	(REGISTER_BYTES_OK): Update.
	* config/m68k/nm-sun3.h (CHILD_PREPARE_TO_STORE): Update.
	* config/ia64/tm-ia64.h (DEPRECATED_REGISTER_BYTES): Update.

2003-05-16  Ian Lance Taylor  <ian@airs.com>

	* vax-tdep.c (INVALID_FLOAT, MAXLEN, NOPCODES): Don't define.
	(vax_print_insn, print_insn_arg): Remove static functions.
	(vax_gdbarch_init): Call set_gdbarch_print_insn with
	print_insn_vax from opcodes library.
	(_initialize_vax_tdep): Don't set deprecated_tm_print_insn.

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

	* arch-utils.h (legacy_breakpoint_from_pc): Delete declaration.
	* target.h (memory_breakpoint_from_pc): Delete declaration.
	* mem-break.c (memory_breakpoint_from_pc): Delete function.
	* arch-utils.c (legacy_breakpoint_from_pc): Delete function.
	* monitor.c (monitor_insert_breakpoint): Use
	gdbarch_breakpoint_from_pc instead of memory_breakpoint_from_pc.
	* gdbarch.sh (BREAKPOINT_FROM_PC): Do not provide a default.
	* gdbarch.h, gdbarch.c: Re-generate.
	* sparc-tdep.c (sparc_breakpoint_from_pc): New function.
	(sparc_gdbarch_init): Set breakpoint_from_pc to
	sparc_breakpoint_from_pc.
	* config/sparc/tm-sparc.h (BREAKPOINT): Delete macro.
	(BREAKPOINT_FROM_PC): Define.
	(sparc_breakpoint_from_pc): Declare.
	* hppa-tdep.c (hppa_breakpoint_from_pc): New function.
	* config/pa/tm-hppa.h (hppa_breakpoint_from_pc): Declare.
	(BREAKPOINT_FROM_PC): Define.
	(BREAKPOINT): Delete macro.
	* target.h: Update comment.
	* s390-tdep.c (s390_gdbarch_init): Update comments.
	* remote.c: Update comments.
	* remote-mips.c: Update comments.
	* proc-api.c (write_with_trace): Do not check for a breakpoint.
	* mem-break.c: Update comment.
	* ia64-tdep.c (IA64_BREAKPOINT): Rename BREAKPOINT.
	(ia64_memory_insert_breakpoint): Update.
	* config/sparc/tm-sparc.h: Update comment.
	* config/pa/tm-hppa64.h: Update comment.
	* rs6000-tdep.c (BIG_BREAKPOINT, LITTLE_BREAKPOINT): Delete macro.
	(rs6000_breakpoint_from_pc): Update.
	* mips-tdep.c (BIG_BREAKPOINT, LITTLE_BREAKPOINT): Delete macro.
	(PMON_BIG_BREAKPOINT, PMON_LITTLE_BREAKPOINT): Delete macro.
	(IDT_LITTLE_BREAKPOINT, IDT_LITTLE_BREAKPOINT): Delete macro.
	(MIPS16_LITTLE_BREAKPOINT, MIPS16_BIG_BREAKPOINT): Delete macro.
	(mips_breakpoint_from_pc): Update.
	(mips_dump_tdep): Update.

	* symtab.h (DEPRECATED_SYMBOL_MATCHES_NAME): Delete macro.
	* minsyms.c (lookup_minimal_symbol): Inline
	DEPRECATED_SYMBOL_MATCHES_NAME.  Replace STREQ with strcmp.

	* c-lang.c (c_printstr): Delete "extern inspect_it" declaration.
	* p-valprint.c (pascal_object_print_value_fields): Ditto.
	* p-lang.c (pascal_printstr): Ditto.
	* objc-lang.c (objc_printstr): Ditto.
	* m2-lang.c (m2_printstr): Ditto.
	* jv-valprint.c (java_print_value_fields): Ditto.
	* f-lang.c (f_printstr): Ditto.
	* cp-valprint.c (cp_print_value_fields): Ditto.  Include "valprint.h".
	* ada-valprint.c (inspect_it, repeat_count_threshold): Ditto, and
	for repeat_count_threshold.
	* Makefile.in (cp-valprint.o): Update dependencies.

2003-05-15  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c: Increase max_skip_non_prologue_insns to 40.
	(examine_prologue): Support looking through leaf functions, knowing
	they start with mov r2,r12.  Support skipping over indirect stores
	of the input registers.  Upon hitting a non-nop branch instruction
	or predicated instruction, bail out by setting lim_pc to the current
	pc value in the loop.  At the end, if the lim_pc value is still
	beyond our calculated value and we have trust_limit set,
	use the lim_pc value.

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

	* dummy-frame.h (deprecated_find_dummy_frame_regcache): Rename
	generic_find_dummy_frame.
	* dummy-frame.c (deprecated_find_dummy_frame_regcache): Update.
	(deprecated_generic_find_dummy_frame): Update.
	(deprecated_read_register_dummy): Update.
	* frame.c (deprecated_generic_get_saved_register): Update.

2003-05-15  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_breakpoint_from_pc): New function.
	(avr_gdbarch_init): Set breakpoint_from_pc method.

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

	* regcache.c (build_regcache): Set deprecated_register_valid
	directly.
	(deprecated_grub_regcache_for_register_valid): Delete function.
	* regcache.h (deprecated_grub_regcache_for_register_valid): Delete
	declaration.

2003-05-15  David Carlton  <carlton@bactrian.org>

	Committed by Elena Zannoni <ezannoni@redhat.com>
	* symtab.c (lookup_symbol_aux): Delete calls to
	lookup_symbol_aux_minsyms.
	(lookup_symbol_aux_minsyms): Comment out function and
	prototype. Delete lookup by mangled name.

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

	* dwarf2expr.c (new_dwarf_expr_context): Set ``stack_len'' to
	correctly indicate an empty stack and ``stack_allocated'' to the
	indicate the number of elements initially allocated.
	(dwarf_expr_grow_stack): Simplify method for computing new
	stack size.  Don't loop infinitely if ``stack_len'' is zero.
	(execute_stack_op): Move ``ctx->in_reg'' initialization
	out of loop.  Allow DW_OP_reg0 ... DW_OP_reg31 and DW_OP_regx to
	be used in conjunction with DW_OP_piece.  Revise error message
	accordingly.

2003-05-14  Theodore A. Roth  <troth@openavr.org>

	* MAINTAINERS: Update my email address.
	* avr-tdep.c: Ditto.

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

	* symtab.h (enum domain_enum): Rename from namespace_enum.
	(UNDEF_DOMAIN, VAR_DOMAIN, STRUCT_DOMAIN, LABEL_DOMAIN,
	VARIABLES_DOMAIN, FUNCTIONS_DOMAIN, TYPES_DOMAIN, METHODS_DOMAIN):
	Rename from UNDEF_NAMESPACE, VAR_NAMESPACE, STRUCT_NAMESPACE,
	LABEL_NAMESPACE, VARIABLES_NAMESPACE, FUNCTIONS_NAMESPACE,
	TYPES_NAMESPACE, METHODS_NAMESPACE.
	(SYMBOL_NAMESPACE): Rename to SYMBOL_DOMAIN.
	(struct symbol, struct partial_symbol): Rename field
	'namespace_enum namespace' to 'domain_enum domain'.
	(PSYMBOL_NAMESPACE): Rename to PSYMBOL_DOMAIN.
	Delete old define kludge for namespace.

	* ada-exp.y, ada-lang.c, ada-lang.h, alpha-tdep.c, arm-tdep.c,
	blockframe.c, c-exp.y, c-valprint.c, coffread.c, dbxread.c,
	dwarf2read.c, dwarfread.c, f-exp.y, gdbtypes.c, gdbtypes.h,
	gnu-v3-abi.c, hppa-tdep.c, hpread.c, jv-exp.y, jv-lang.c,
	language.c, linespec.c, m2-exp.y, m3-nat.c, mdebugread.c,
	mips-tdep.c, nlmread.c, objc-exp.y, objc-lang.c, objfiles.c,
	p-exp.y, p-valprint.c, parse.c, printcmd.c, scm-lang.c, source.c,
	stabsread.c, stack.c, symfile.c, symfile.h, symmisc.c, symtab.c,
	valops.c, values.c, xcoffread.c, xstormy16-tdep.c: Replace all
	occurrences of the above.

2003-05-14  Ian Lance Taylor  <ian@airs.com>

	* Makefile.in (install-only): Use $(SHELL) when running
	mkinstalldirs.

2003-05-13  Ian Lance Taylor  <ian@airs.com>

	* MAINTAINERS (write after approval): Add myself.

	* ser-pipe.c (_initialize_ser_pipe): Correct call to memset--swap
	second and third arguments.
	* ser-tcp.c (_initialize_ser_tcp): Likewise.
	* ser-unix.c (_initialize_ser_hardwire): Likewise.

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

	* defs.h (store_address): Delete declaration.
	findvar.c (store_address): Delete function.
	* arm-tdep.c (arm_push_dummy_call): Replace store_address with
	store_unsigned_integer.
	* xstormy16-tdep.c (xstormy16_address_to_pointer): Ditto.
	* v850-tdep.c (v850_push_arguments): Ditto.
	* sparc-tdep.c (sparc_get_saved_register): Ditto.
	* sh-tdep.c (sh64_get_saved_register): Ditto.
	* rs6000-tdep.c (rs6000_push_arguments): Ditto.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_arguments): Ditto.
	* mips-tdep.c (mips_eabi_push_arguments): Ditto.
	(mips_get_saved_register): Ditto.
	* ia64-tdep.c (ia64_get_saved_register): Ditto.
	(find_func_descr, ia64_push_arguments): Ditto.
	* i386-tdep.c (i386_push_arguments): Ditto.
	* hpux-thread.c (hpux_thread_fetch_registers): Ditto.
	* frv-tdep.c (frv_push_arguments): Ditto.
	* frame.c (legacy_saved_regs_prev_register): Ditto.
	(deprecated_generic_get_saved_register): Ditto.
	* findvar.c (unsigned_address_to_pointer): Ditto.
	* dwarf2read.c (dwarf2_const_value): Ditto.
	* arm-linux-tdep.c (arm_linux_push_arguments): Ditto.
	* alpha-tdep.c (alpha_push_arguments): Ditto.

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

	* NEWS: Mention that the hppa-hpux port has been partially
	multiarched (32bit ABIT only, so far).

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

	* Makefile.in (mi-symbol-cmds.o): Rename mi-cmd-symbol.
	* config/djgpp/fnchange.lst: Rename include/xtensa-isa-internal.h,
	include/xtensa-isa.h, sim/testsuite/sim/arm/misaligned1.ms,
	sim/testsuite/sim/arm/misaligned2.ms, and
	sim/testsuite/sim/arm/misaligned3.ms.
	* disasm.h (struct ui_file): Add opaque struct declaration.
	* config/pa/tm-hppa64.h (struct type, struct frame_info): Ditto.
	* frame.h (struct ui_file): Ditto.

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

	* value.h: Pretty print.

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

	* config/i386/tm-linux.h (I386_GNULINUX_TARGET): Remove define.

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

	* regcache.h (max_register_size): Delete declaration.
	* regcache.c (max_register_size): Delete function.
	(struct regcache_descr): Delete field "max_register_size".
	(init_regcache_descr, init_legacy_regcache_descr): Assert that all
	registers fit in MAX_REGISTER_SIZE.
	(regcache_save): Replace max_register_size with MAX_REGISTER_SIZE.
	(regcache_restore, regcache_xfer_part, regcache_dump): Ditto.
	* thread-db.c: Replace max_register_size with MAX_REGISTER_SIZE.
	* sh-tdep.c, rom68k-rom.c, remote-sim.c, remote-mips.c: Ditto.
	* remote-e7000.c, monitor.c, mipsv4-nat.c, mips-nat.c: Ditto.
	* m68klinux-nat.c, lynx-nat.c, irix4-nat.c: Ditto.
	* hpux-thread.c, hppah-nat.c, hppab-nat.c, hppa-tdep.c: Ditto.
	* dve3900-rom.c, hppa-tdep.c: Ditto.

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

	* valops.c (push_word): Fix typo.

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

	* gdbarch.sh: Delete references to MAX_REGISTER_RAW_SIZE.
	* gdbarch.h: Re-generate.
	* defs.h (MAX_REGISTER_RAW_SIZE): Delete macro.
	(legacy_max_register_raw_size): Delete declaration.
	* regcache.c (legacy_max_register_raw_size): Delete function.
	* valops.c: Replace MAX_REGISTER_RAW_SIZE with MAX_REGISTER_SIZE.
	* target.c, stack.c, sparc-tdep.c, sh-tdep.c: Ditto.
	* rs6000-tdep.c, rs6000-nat.c, remote.c, remote-sim.c: Ditto.
	* remote-rdp.c, remote-array.c, regcache.c: Ditto.
	* ppc-linux-nat.c, monitor.c, mn10300-tdep.c: Ditto.
	* mips-tdep.c, mips-linux-tdep.c, m68klinux-nat.c: Ditto.
	* infptrace.c, ia64-tdep.c, i386-tdep.c, frame.c: Ditto.
	* findvar.c, dwarf2cfi.c: Ditto.

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

	* mips-tdep.c (read_signed_register): New function, moved to here
	from "regcache.c".
	(read_signed_register_pid): Ditto.
	* regcache.c (read_signed_register_pid): Delete function, moved to
	"mips-tdep.c".
	(read_signed_register): Ditto.
	* regcache.h (read_signed_register): Delete declaration.
	(read_signed_register_pid): Delete declaration.

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

	* gdbarch.sh: Add comments on MAX_REGISTER_SIZE.
	* gdbarch.h: Re-generate.
	* defs.h (MAX_REGISTER_VIRTUAL_SIZE): Delete macro.
	(legacy_max_register_virtual_size): Delete declaration.
	* infcmd.c (default_print_registers_info): Use MAX_REGISTER_SIZE.
	* d10v-tdep.c (d10v_print_registers_info): Ditto.
	* tracepoint.c (memrange_sortmerge): Ditto.
	* sparc-tdep.c (sparc_print_registers): Ditto.
	* regcache.c (legacy_max_register_virtual_size): Delete function.

2002-05-08  J. Brobecker  <brobecker@gnat.com>

	* fork-child.c (escape_bang_in_quoted_argument): New function.
	(fork_inferior): Escape '!' characters in quoted arguments
	only when needed.

2003-05-08  J. Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (set_cu_language): Set the language to "minimal" if
	the language of the CU is not currently supported by GDB.

2003-05-08  J. Brobecker  <brobecker@gnat.com>

	* defs.h (language): Add language_minimal enum value.
	* c-lang.c (minimal_language_defn): New language definition.
	(_initialize_c_language): Add the new minimal language to the list
	of languages known to GDB.

2003-05-08  Kevin Buettner  <kevinb@redhat.com>

	* frame.c (get_frame_type): Don't attempt to lazily initialize
	frame's unwinder for legacy frames.

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

	* ia64-tdep.c (ia64_remote_translate_xfer_address): Add "gdbarch"
	and "regcache" parameters.
	* avr-tdep.c (avr_remote_translate_xfer_address): Ditto.

2003-05-07  Jeff Johnston  <jjohnstn@redhat.com>

	* dwarf2read.c (dwarf_decode_lines): Only use output of
	check_cu_functions() when calling record_line().  Do not update
	the current address.

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

	* fork-child.c (startup_inferior): Delete #ifdef STARTUP_INFERIOR
	code.

2003-05-07  Jim Blandy  <jimb@redhat.com>

	Rename commands 'maint list symtabs' and 'maint list psymtabs' to
	'maint info symtabs' and 'maint info psymtabs'.
	* symmisc.c (maintenance_info_symtabs, maintenance_info_psymtabs):
	Renamed from maintenance_list_symtabs and maintenance_list_psymtabs.
	* symtab.h (maintenance_info_symtabs, maintenance_info_psymtabs):
	Declarations updated.
	* maint.c (maintenance_list_command): Delete.
	(_initialize_maint_cmds): Update calls to add_cmd.
	* gdbcmd.h (maintenancelistlist): Delete declaration.
	* cli/cli-cmds.c (maintenancelistlist): Delete.
	(init_cmd_lists): Don't initialize it.
	* cli/cli-cmds.h (maintenancelistlist): Delete declaration.

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

	* d10v-tdep.c (remote_d10v_translate_xfer_address): Add
	"regcache".
	(d10v_print_registers_info): Update.
	(d10v_dmap_register, d10v_imap_register): Delete functions.
	(struct gdbarch_tdep): Add "regcache" parameter to "dmap_register"
	and "imap_register".
	(d10v_ts2_dmap_register, d10v_ts2_imap_register): Add "regcache".
	(d10v_ts3_dmap_register, d10v_ts3_imap_register): Add "regcache".
	* arch-utils.c (generic_remote_translate_xfer_address): Add
	"regcache" and "gdbarch" parameters.
	* gdbarch.sh (REMOTE_TRANSLATE_XFER_ADDRESS): Add "regcache"
	parameter.  Change class to multi-arch.
	* gdbarch.h, gdbarch.c: Re-generate.
	* remote.c (remote_xfer_memory): Use
	gdbarch_remote_translate_xfer_address.

2003-05-07  Jeff Johnston  <jjohnstn@redhat.com>

	* infrun.c (prev_pc): Move declaration ahead of proceed().
	(proceed): Refresh prev_pc value before resuming.
	(stop_stepping): Remove code to refresh prev_pc.

2003-05-06  Kris Warkentin <kewarken@qnx.com>

	* nto-tdep.c: Removed stray comment.

2003-05-06  Kris Warkentin <kewarken@qnx.com>

	* i386-nto-tdep.c: Fix old K&R function definitions.
	* nto-tdep.c: Likewise and change stat.h include to gdb_stat.h.
	Also change add_show_from_set() call to add_setshow_cmd().
	* nto-tdep.h: Remove PARAMS and grep ^func ARI hits.

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

	* dummy-frame.c: Include "command.h" and "gdbcmd.h".
	(fprint_dummy_frames): New function.
	(maintenance_print_dummy_frames): New function.
	(_initialize_dummy_frame): Add command "maint print dummy-frames".
	* frame.c (fprint_frame_id): Make global.
	* frame.h (fprint_frame_id): Declare.
	* Makefile.in (dummy-frame.o): Update dependencies.

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

	* gdbarch.sh (DEPRECATED_REGISTER_SIZE): Rename REGISTER_SIZE.
	(DEPRECATED_SIZEOF_CALL_DUMMY_WORDS): Rename
	SIZEOF_CALL_DUMMY_WORDS.
	(DEPRECATED_CALL_DUMMY_WORDS): Rename CALL_DUMMY_WORDS.
	(DEPRECATED_FIX_CALL_DUMMY): Rename FIX_CALL_DUMMY.
	(DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET): Rename
	CALL_DUMMY_BREAKPOINT_OFFSET.
	(DEPRECATED_CALL_DUMMY_START_OFFSET): Rename
	CALL_DUMMY_START_OFFSET.
	(DEPRECATED_CALL_DUMMY_LENGTH): Rename CALL_DUMMY_LENGTH.
	* gdbarch.h, gdbarch.c: Re-generate.
	* alpha-tdep.c, alphafbsd-tdep.c, arm-linux-tdep.c: Update.
	* arm-tdep.c, avr-tdep.c, breakpoint.c, cris-tdep.c: Update.
	* dummy-frame.c, dummy-frame.h, frv-tdep.c, gdbarch.c: Update.
	* gdbarch.h, gdbarch.sh, h8300-tdep.c, hppa-tdep.c: Update.
	* i386-tdep.c, ia64-tdep.c, infcall.c, inferior.h: Update.
	* m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c: Update.
	* mips-tdep.c, mn10300-tdep.c, ns32k-tdep.c: Update.
	* rs6000-tdep.c, s390-tdep.c, sh-tdep.c, sol-thread.c: Update.
	* sparc-tdep.c, target.c, v850-tdep.c, valops.c: Update.
	* vax-tdep.c, x86-64-tdep.c, xstormy16-tdep.c: Update.
	* config/ia64/tm-ia64.h, config/m68k/tm-vx68.h: Update.
	* config/mips/tm-mips.h, config/pa/nm-hppah.h: Update.
	* config/pa/tm-hppa.h, config/pa/tm-hppa64.h: Update.
	* config/s390/tm-s390.h, config/sparc/tm-sp64.h: Update.
	* config/sparc/tm-sparc.h: Update.

2003-05-05  Kris Warkentin <kewarken@qnx.com>

	* configure.tgt: Add i[3456]86-*-nto*.
	* i386-nto-tdep.c: New file.  i386 specific support for QNX Neutrino.
	* nto-tdep.c: New file. Neutrino target support routines.
	* nto-tdep.h: New file. Neutrino target header.
	* config/tm-qnxnto.h: New file.
	* config/i386/i386nto.mt: New file.
	* config/i386/tm-i386nto.h: New file.

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

	* gdbthread.h (save_infrun_state): Drop prev_func_name parameter.
	(load_infrun_state): Ditto.
	(struct thread_info): Drop "prev_func_name" field.
	* thread.c (load_infrun_state): Update.
	(save_infrun_state): Update.
	* infrun.c (prev_func_name): Delete variable.
	(init_wait_for_inferior): Do not clear prev_func_name.
	(stop_stepping, keep_going, context_switch): Do not swap
	prev_func_name.
	(handle_inferior_event, check_sigtramp2): Use pc_in_sigtramp
	instead of PC_IN_SIGTRAMP.

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

	* sentinel-frame.c (sentinel_frame_prev_register): Replace
	REGISTER_BYTE with register_offset_hack.
	* regcache.c (init_regcache_descr): When REGISTER_BYTE_P, check
	that REGISTER_BYTE is consistent with the regcache.
	* gdbarch.sh (REGISTER_BYTE): Add a predicate.
	* gdbarch.h, gdbarch.c: Regenerate.

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

	* i387-tdep.c (fxsave_offset): Add entries for %xmm8-%xmm15.
	(FXSAVE_ADDR, i387_supply_fxsave): Add support for %xmm8-%xmm15.

	* i386-linux-nat.c (supply_gregset): Remove unnecessary casts.

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

	From Thierry Schneider <tpschneider1@yahoo.com>
	* Makfile.in (SUBDIR_MI_OBS): Add dependency on mi-cmd-symbol.o.
	(SUBDIR_MI_SRCS): Add mi-cmd-symbol.c.
	(mi-cmd-symbol.o): Add rule.

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

	* gdbarch.sh (PUSH_DUMMY_CODE): New architecture method, add
	comments noteing that it replaces the old FIX_CALL_DUMMY code.
	* gdbarch.h, gdbarch.c: Re-generate.
	* d10v-tdep.c (d10v_push_dummy_code): New function.
	(d10v_gdbarch_init): Set push_dummy_code.
	* infcall.c (legacy_push_dummy_code): New function.
	(generic_push_dummy_code): New function.
	(push_dummy_code): New function.
	(call_function_by_hand): Call push_dummy_code.  Pass bp_addr,
	instead of dummy_addr, to push_dummy_call.  Move call to
	generic_save_call_dummy_addr to outside of CALL_DUMMY_LOCATION
	switch.
	* sparc-tdep.c (sparc_gdbarch_init): Mention push_dummy_code.

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

	* disasm.h (print_insn): Declare.
	* disasm.c (init_gdb_disassemble_info): New function.
	(gdb_disassembly): Call init_gdb_disassemble_info.
	(gdb_print_insn): New function.
	* v850-tdep.c (v850_scan_prologue): Call gdb_print_insn, instead
	of TARGET_PRINT_INSN.  Send debug info to "gdb_stdlog".
	* mcore-tdep.c: Include "disasm.h"
	(mcore_dump_insn): Call gdb_print_insn, instead of TARGET_PRINT_INSN.
	* d10v-tdep.c: Include "disasm.h".
	(display_trace): Call gdb_print_insn, instead of print_insn.
	(print_insn): Delete function.
	* printcmd.c: Include "disasm.h".
	(print_insn): Delete function.
	(print_formatted): Call gdb_print_insn, instead of print_insn.
	* Makefile.in (printcmd.o): Update dependencies.
	(mcore-tdep.o, d10v-tdep.o): Ditto.

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

	* std-regs.c (value_of_builtin_frame_pc_reg): Delete #ifdef
	PC_REGNUM, re-indent.
	* stack.c (frame_info): Use "pc" for the name of get_frame_pc when
	PC_REGNUM isn't set.

	* gdbarch.sh (REGISTER_SIZE, REGISTER_BYTES): Make optional.
	* gdbarch.h, gdbarch.c: Re-generate.
	* d10v-tdep.c (d10v_gdbarch_init): Do not set register_size,
	register_virtual_size, pc_regnum, or register_bytes.
	(D10V_PC_REGNUM): Rename _PC_REGNUM.
	(d10v_register_type): Use D10V_PC_REGNUM.
	(d10v_print_registers_info, d10v_read_pc): Ditto.
	(d10v_write_pc, d10v_eva_prepare_to_trace): Ditto.
	(d10v_unwind_pc, d10v_frame_prev_register): Ditto.

2003-05-02  David Carlton  <carlton@bactrian.org>

	* objfiles.c (allocate_objfile): For anonymous objfiles, allocate
	the name with mstrsave.

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

	* charset.c (GDB_DEFAULT_TARGET_CHARSET,
	GDB_DEFAULT_HOST_CHARSET): Move to earlier in the file.
	(host_charset_name, target_charset_name): New vars for use by
	set/show commands.
	(host_charset_enum, target_charset_enum): New enums for set/show
	commands.
	(set_charset_sfunc, set_host_charset_sfunc,
	set_target_charset_sfunc): New functions.
	(set_host_charset, set_target_charset): Make static.
	(list_charsets, set_host_charset_command,
	set_target_charset_command): Delete functions.
	(show_charset_command): Rewrite as....
	(show_charset): Hook this up with the set/show command mechanism.
	(_initialize_charset): Change names of charsets to match the
	set/show enums. Use host_charset_name and target_charset_name.
	Use set/show mechanism for charset, host-charset, target-charset
	commands. Do not make 'show host-charset' and 'show
	target-charset' be aliases of 'show charset'.

	* charset.h (set_host_charset, set_target_charset): Don't export,
	they are not used outside the file.

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

	* disasm.c (gdb_disassemble_from_exec): Delete global variable.
	(gdb_disassembly): Make "di" non static, always initialize and
	cleanup.  Always use dis_asm_read_memory.
	(gdb_dis_asm_read_memory): Delete function.

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

	* d10v-tdep.c (d10v_frame_align): Replace d10v_stack_align.
	(d10v_gdbarch_init): Set frame_align instead of stack_align.

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

	* gdbarch.sh (deprecated_tm_print_insn_info): Rename
	"tm_print_insn_info".
	(TARGET_PRINT_INSN_INFO): Delete macro.
	(dis_asm_read_memory): Delete function declaration.
	(dis_asm_memory_error, dis_asm_print_address): Ditto.
	(tm_print_insn_info): Delete variable definition.
	(_initialize_gdbarch): Do not initialize "tm_print_insn_info".
	* gdbarch.h, gdbarch.c: Re-generate.
	* d10v-tdep.c (display_trace): Replace "tm_print_insn_info" with
	"deprecated_tm_print_insn_info".
	* mcore-tdep.c (mcore_dump_insn): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* sparc-tdep.c (_initialize_sparc_tdep): Ditto.
	* v850-tdep.c (v850_scan_prologue, v850_gdbarch_init): Ditto.
	* ia64-tdep.c (_initialize_ia64_tdep): Ditto.
	* printcmd.c (print_insn): Use "deprecated_tm_print_insn_info"
	instead of TARGET_PRINT_INSN_INFO, add comment.
	* s390-tdep.c (s390_get_frame_info): Instead of
	"dis_asm_read_memory", use "deprecated_tm_print_insn_info".
	(s390_check_function_end, s390_is_sigreturn): Ditto.
	* corefile.c (dis_asm_read_memory): Move to "disasm.c".
	(dis_asm_memory_error, dis_asm_print_address): Ditto.
	* disasm.c: Include "gdbcore.h".
	(_initialize_disasm): New function, initialize
	"deprecated_tm_print_insn_info".
	(deprecated_tm_print_insn_info): New variable.
	(dis_asm_read_memory): Moved from "corefile.c", made static.
	(dis_asm_print_address, dis_asm_memory_error): Ditto.
	* Makefile.in (disasm.o): Update dependencies.

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

	* sparc-tdep.c (SPARC_HAS_FPU): When multi-arch, define as 1.

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

	* eval.c (evaluate_subexp_standard): Handle ObjC ops.
	* infcall.c (find_function_addr): Make non-static.
	* infcall.h (find_function_addr): Declare.
	* Makefile.in (eval.o): Update dependencies.

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

	* symtab.c (symbol_find_demangled_name): Check for and demangle
	ObjC symbols.
	(symbol_init_demangled_name): Init for language_objc as well.

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

	* gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP.
	(DEPRECATED_FP_REGNUM): Replace FP_REGNUM.
	* gdbarch.h, gdbarch.c: Re-generate.
	* infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM,
	DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID.
	* inferior.h (deprecated_read_fp): Rename read_fp.
	(generic_target_read_fp): Delete declaration.
	* regcache.c (generic_target_read_fp): Delete function.
	(deprecated_read_fp): Replace read_fp, use
	DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM.
	* d10v-tdep.c (d10v_read_fp): Delete function.
	(d10v_gdbarch_init): Do not set deprecated_read_fp.

	* sparc-tdep.c (sparc_gdbarch_init): Do not set
	deprecated_target_read_fp to generic_target_read_fp.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.

	* xstormy16-tdep.c (xstormy16_gdbarch_init): Set
	deprecated_fp_regnum.
	* x86-64-tdep.c (x86_64_init_abi): Ditto.
	* vax-tdep.c (vax_gdbarch_init): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Ditto.

	* x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.

	* vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with
	DEPRECATED_FP_REGNUM.
	(vax_push_dummy_frame, vax_pop_frame): Ditto.
	* std-regs.c (value_of_builtin_frame_fp_reg): Ditto.
	* sparc-tdep.c (sparc_init_extra_frame_info): Ditto.
	(sparc_push_dummy_frame, sparc64_read_fp): Ditto.
	(sparc32_register_virtual_type): Ditto.
	* sh-tdep.c (sh64_frame_chain): Ditto.
	(sh64_get_saved_register, sh64_pop_frame): Ditto.
	(sh_nofp_frame_init_saved_regs): Ditto.
	(sh64_nofp_frame_init_saved_regs): Ditto.
	(sh_fp_frame_init_saved_regs): Ditto.
	* remote-mips.c (mips_wait, mips_fetch_registers): Ditto.
	* remote-e7000.c (fetch_regs_from_dump): Ditto.
	* procfs.c (procfs_fetch_registers): Ditto.
	(procfs_store_registers): Ditto.
	* ns32knbsd-nat.c (fetch_inferior_registers): Ditto.
	(store_inferior_registers, fetch_core_registers): Ditto.
	(fetch_kcore_registers, clear_regs): Ditto.
	* ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto.
	(ns32k_push_dummy_frame, ns32k_pop_frame): Ditto.
	* nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto.
	* nlm/i386.c (do_status): Ditto.
	* mipsv4-nat.c (supply_gregset): Ditto.
	* mips-tdep.c: Ditto for comments.
	* mips-nat.c (fetch_inferior_registers): Ditto.
	(store_inferior_registers, fetch_core_registers): Ditto.
	* m68k-tdep.c (m68k_push_dummy_frame): Ditto.
	(m68k_pop_frame, m68k_frame_init_saved_regs): Ditto.
	* i386-tdep.c (i386_frame_init_saved_regs): Ditto.
	(i386_do_pop_frame, i386_register_type): Ditto.
	* hppa-tdep.c (hppa_frame_chain): Ditto.
	(hppa_push_dummy_frame, find_dummy_frame_regs): Ditto.
	(hppa_pop_frame, hppa_read_fp): Ditto.
	(skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto.
	* cris-tdep.c (cris_examine, cris_pop_frame): Ditto.
	* config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto.
	* config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto.
	* config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto.
	* config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto.
	* config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto.
	* config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto.
	* blockframe.c: Ditto for comments.
	* arch-utils.h: Ditto for comments.
	* arch-utils.c (legacy_virtual_frame_pointer): Ditto.
	* alphanbsd-tdep.c (fetch_core_registers): Ditto.
	* alphabsd-nat.c (fetch_inferior_registers): Ditto.
	* alpha-tdep.h: Ditto for comments.
	* alpha-tdep.c (alpha_cannot_fetch_register): Ditto.
	(alpha_cannot_store_register): Ditto.
	(alpha_push_dummy_frame): Ditto.
	* alpha-nat.c (supply_gregset): Ditto.

	* config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update.
	* config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update.
	* config/sparc/tm-sparc.h: Update comment.

	* hppa-tdep.c (hppa_init_extra_frame_info): Use
	deprecated_read_fp instead of TARGET_READ_FP.
	(hppa_init_extra_frame_info, hppa_frame_chain): Ditto.
	(hppa_push_dummy_frame, hppa_read_fp): Ditto.
	* sparc-tdep.c (sparc_init_extra_frame_info): Use
	deprecated_read_fp instead of read_fp.
	* s390-tdep.c (s390_push_arguments): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* frame.h: Ditto in comments.
	* frame.c (legacy_get_prev_frame): Ditto.
	* dummy-frame.c (dummy_frame_this_id): Ditto.
	* arm-tdep.c (arm_init_extra_frame_info): Ditto.

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

	* gdbarch.sh (deprecated_tm_print_insn): Rename tm_print_insn.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (_initialize_xstormy16_tdep): Update.
	* vax-tdep.c (_initialize_vax_tdep): Update.
	* v850-tdep.c (_initialize_v850_tdep): Update.
	* sparc-tdep.c (_initialize_sparc_tdep): Update.
	* s390-tdep.c (_initialize_s390_tdep): Update.
	* ns32k-tdep.c (_initialize_ns32k_tdep): Update.
	* mn10300-tdep.c (_initialize_mn10300_tdep): Update.
	* mips-tdep.c (_initialize_mips_tdep): Update.
	* mcore-tdep.c (_initialize_mcore_tdep): Update.
	* m68k-tdep.c (_initialize_m68k_tdep): Update.
	* ia64-tdep.c (_initialize_ia64_tdep): Update.
	* hppa-tdep.c (_initialize_hppa_tdep): Update.
	* h8300-tdep.c (_initialize_h8300_tdep): Update.
	* frv-tdep.c (_initialize_frv_tdep): Update.
	* cris-tdep.c (cris_delayed_get_disassembler): Update.
	(_initialize_cris_tdep): Update.
	* arch-utils.c (legacy_print_insn): Update.
	* alpha-tdep.c (_initialize_alpha_tdep): Update.

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

	* linespec.c (decode_objc): New function to decode ObjC calls
	(decode_line_1): Check for ObjC calls (using decode_objc)
	* Makefile (linespec.o): Update dependencies.

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

	* breakpoint.h (struct breakpoint_ops): New.
	(struct breakpoint): Add ops member.

	* breakpoint.c (print_bp_stop_message, print_one_breakpoint)
	(mention): Use new breakpoint ops member.
	(set_raw_breakpoint): Initialize ops field to NULL.
	(print_exception_catchpoint, print_one_exception_catchpoint)
	(print_mention_exception_catchpoint, handle_gnu_v3_exceptions): New.
	(gnu_v3_exception_catchpoint_ops): New.
	(catch_exception_command_1): Call handle_gnu_v3_exceptions.

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

	* Makefile.in (COMMON_OBS): Add objc-lang.o

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

	* d10v-tdep.c (print_insn): Delete function.
	(display_trace): Use TARGET_PRINT_INSN.
	(_initialize_d10v_tdep): Do not set tm_print_insn.
	(d10v_gdbarch_init): Set print_insn.

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

	* d10v-tdep.c (d10v_extract_return_value): Delete call to printf.
	(_initialize_d10v_tdep): Use add_setshow_boolean_cmd.
	(d10v_frame_unwind_cache): Use FRAME_OBSTACK_CALLOC.
	(NR_DMAP_REGS, A0_REGNUM): Delete, replaced by ...
	(nr_dmap_regs, a0_regnum): ... new functions.
	(d10v_print_registers_info): Use a0_regnum, use register_size.
	(d10v_register_byte): Delete function.
	(d10v_register_raw_size): Delete function.
	(d10v_register_type): Use a0_regnum.
	(d10v_print_registers_info): Use a0_regnum.
	(D10V_SP_REGNUM): Rename _SP_REGNUM, replace it and SP_REGNUM.
	(d10v_gdbarch_init): Do not set register_byte or
	register_raw_size, use D10V_SP_REGNUM to set sp_regnum.
	(d10v_pointer_to_address): Use extract_unsigned_integer instead of
	extract_address.
	(trace_command): Use XCALLOC.
	(print_insn): Delete reference to tm_print_insn.
	(saved_regs_unwinder): Use store_unsigned_integer instead of
	store_address.
	* frame.h (FRAME_OBSTACK_CALLOC): Define

2003-04-25  David Carlton  <carlton@bactrian.org>

	* config/djgpp/fnchange.lst: Add testsuite/gdb.c++/maint.exp.

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

	* objc-lang.c: Include "valprint.h"
	* Makefile.in (objc-lang.o): Update dependencies.

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

	* objc-lang.c (FETCH_ARGUMENT, CONVERT_FUNCPTR): Remove
	architecture dependant compilation and mark as unimplemented
	(until they get put in the gdbarch vector).

2003-04-23  David Carlton  <carlton@bactrian.org>

	* cp-support.c (cp_find_first_component): Accept 'operator' in
	more locations.

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

	* infcall.c (call_function_by_hand): Eliminate redundant
	indentation.  Move "saved_async" and "old_cleanups" to where they
	are needed.

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

	* infcall.c (call_function_by_hand): Eliminate the variables "rc"
	and "buffer".  Move the "name" code to where it is needed.

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

	* infcall.c (call_function_by_hand): Move variables "start_sp",
	"dummy", "sizeof_dummy1" and "dummy1" and corresponding dummy call
	code to ON_STACK switch branch.

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

	* infcall.c (call_function_by_hand): Make declaration of "i",
	"sal", "bpt" and "old_sp" more local to their use.  Delete #if
	lint.

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

	* infcall.c (call_function_by_hand): Delete variable
	"n_method_args".  Localize "param_type"'s declaration to the loop
	that it is used.  Reinstate code assigning to said variable -
	deleted on 2002-06-14.  Rationalize calls to value_args_coerce.
	Rationalize code using "param_type".

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

	* infcall.c (call_function_by_hand): Use new variable "bp_addr" to
	compute the breakpoint address.  Only call FIX_CALL_DUMMY when
	ON_STACK.  Eliminate the variable "addr".  Do not pass "real_pc"
	to DEPRECATED_PUSH_RETURN_ADDRESS.

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

	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Invoke DWARF2_REG_TO_REGNUM
	on the DWARF2 register number prior to fetching a register.

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

	* config/pa/tm-hppa.h (SOFT_FLOAT): Delete this macro.
	Update all the tests using SOFT_FLOAT considering the fact that
	this macro was always set to 0.
	* config/pa/tm-hppa64.h: Update all the tests using SOFT_FLOAT
	considering the fact that this macro was always set to 0.
	* hppa-tdep.h (hppa_store_return_value): Likewise.
	(hppa_extract_return_value): Likewise.

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

	* config/pa/tm-hppa.h: Remove obsolete code, was used by
	the hppa-pro target only.

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

	Ongoing multi-arch conversion effort for HP/UX:
	* config/pa/tm-hppa.h: Move all macro that are no longer
	defined now that GDB_MULTI_ARCH is now set to 1 from here...
	* config/pa/tm-hppa64.h: ... to here (hppa64 is not multiarch'ed yet).

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

	* config/pa/tm-hppa.h: Obsolete a section that was only used
	for hppa-pro.

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

	Ongoing multi-arch conversion for HP/UX.
	* config/pa/tm-hppa.h (GDB_MULTI_ARCH): Set to 1. Do not define
	if already defined (allows hppa64 to stay non-multiarched for now).
	* config/pa/tm-hppa64.h (GDB_MULTI_ARCH): Define.

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

	* frame.c (frame_id_eq): Fail when the code_addr's do not match.

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

	* i386-tdep.c (i386_gdbarch_init): Replace "mmx_num_regs" with
	"i386_num_mmx_regs".

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

	* infcall.c: New file.
	* infcall.h: New file.
	* valarith.c: Include "infcall.h".
	* scm-lang.c, objc-lang.cm, hppa-tdep.c, gcore.c: Ditto.
	* eval.c, ada-valprint.c, ada-lang.c: Ditto.
	* Makefile.in (valarith.o, scm-lang.o): Update dependencies.
	(objc-lang.o, hppa-tdep.o, gcore.o): Update dependencies.
	(eval.o, ada-valprint.o, ada-lang.o): Update dependencies.
	(SFILES): Add "infcall.c"
	(COMMON_OBS): Add "infcall.o".
	(infcall.o): Specify dependencies.
	* value.h (call_function_by_hand): Delete declaration.
	* inferior.h (run_stack_dummy): Delete declaration.
	* infcmd.c (breakpoint_auto_delete_contents): Move to "infcall.c".
	(run_stack_dummy): Move to "infcall.c", merged into
	call_function_by_hand.
	* valops.c (call_function_by_hand): Moved to "infcall.c".
	(find_function_addr, value_arg_coerce): Ditto.
	(unwindonsignal_p, coerce_float_to_double): Ditto.
	(_initialize_valops): Move "set/show coerce-float-to-double", and
	"set/show unwindonsignal" commands to "infcall.c".
	* v850-tdep.c, target.h: Update comments.
	* sparc-tdep.c (sparc_fix_call_dummy): Update comments.
	* sh-tdep.c (sh_init_extra_frame_info): Update comments.
	(sh64_init_extra_frame_info): Update comments.
	* mn10300-tdep.c: Update comments.
	* mcore-tdep.c (mcore_init_extra_frame_info): Update comments.
	* config/sparc/tm-sparc.h: Update comments.
	* breakpoint.h: Update comments.
	* avr-tdep.c (avr_init_extra_frame_info): Update comments.
	* arm-tdep.c: Update comment.

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

	* i386-tdep.c (i386_num_register_names): New variable.
	(i386_num_mmx_regs): Renamed from mmx_num_regs.
	(MM0_REGNUM): Remove redundant parentheses in define.
	(i386_mmx_regnum_p): Use i386_mmx_regnum instead of mmx_num_regs.
	(i386_fp_regnum_p, i386_fpc_regnum_p, i386_sse_regnum_p,
	i386_mxcsr_regnum_p): Remove redundant parentheses.
	(i386_register_name): Use i386_num_register_names.

	* i386-tdep.c (i386_extract_return_value,
	i386_store_return_value): Correct check for availability of
	floating-point registers.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* thread-db.c: Reindented.

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

	* gdb_indent.sh: Recognize td_thrhandle_t, td_event_msg_t,
	td_thr_events_t, td_notify_t, td_thr_iter_f, and td_thrinfo_t
	as types.

























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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* stack.c (print_frame_info): Use get_frame_pc.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* frame.h (get_frame_locals_address, get_frame_args_address):
	Refer to the base address, instead of the address of the first
	local or parameter.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* d10v-tdep.c (d10v_gdbarch_init): Do not set call_dummy_words or
	sizeof_call_dummy_words.
	* gdbarch.sh (CALL_DUMMY_WORDS, SIZEOF_CALL_DUMMY_WORDS): Always
	define.
	* gdbarch.h: Regenerate.

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS (write after approval): Add myself.

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

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

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

	* regcache.c (write_sp): Delete function and references.
	* inferior.h (write_sp): Delete declaration.
	* valops.c (hand_function_call): Replace write_sp with
	TARGET_WRITE_SP.
	* sparc-tdep.c (sparc_push_dummy_frame): Ditto.
	(sparc_pop_frame): Ditto.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS (tui): Maintainer of tui code.

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

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

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

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

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

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

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

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

	Continuing work to convert the hppa targets to multiarch partial.

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

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

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

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

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

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

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

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

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

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	* infrun.c (observer.h): Add #include.
	(normal_stop): Add call to observer_notify_normal_stop.
	* Makefile.in (infrun.o): Add dependency on observer.h.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	Continuing work to convert the hppa targets to multiarch partial.
	* hppa-tdep.c (hppa_push_dummy_frame): Remove unused function
	parameter. Reformat comment.
	* config/pa/tm-hppa.h (hppa_push_dummy_frame): Update profile.
	(DEPRECATED_PUSH_DUMMY_FRAME): Update call to hppa_push_dummy_frame()
	to match new profile.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	* hppa-tdep.c (hppa_push_dummy_frame): Remove hack which does not
	appear to be working in any case.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	* observer.c (observer_test_first_observer): New static variable.
	(observer_test_second_observer): Likewise.
	(observer_test_third_observer): Likewise.
	(observer_test_first_notification_function): New static function.
	(observer_test_second_notification_function): Likewise.
	(observer_test_third_notification_function): Likewise.

2003-03-17  J. Brobecker  <brobecker@gnat.com>

	* hppa-tdep.c (gdb_assert.h): Add missing #include.
	* somsolib.c (gdb_assert.h): Likewise.
	* Makefile.in (hppa-tdep.o): Add dependency on gdb_assert.h.
	(somsolib.o): Likewise.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	* disasm.c (gdb_disassembly): Set di.mach using the architecture's
	BFD.  Simplify setting of di.endian.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	* rs6000-tdep.c (ppc_floating_point_unit_p): New function.
	* ppc-tdep.h (ppc_floating_point_unit_p): Declare.

	From Elena Zannoni  <ezannoni@redhat.com>
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_arguments): Handle e500
	vector and floating-point parameters.
	(ppc_sysv_abi_use_struct_convention): Handle e500 struct return
	convention.
	(ppc_sysv_abi_broken_use_struct_convention): Ditto.

2003-03-17  Fernando Nasser  <fnasser@redhat.com>

	* MAINTAINERS: Remove my name from several maintainership roles.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	Fix frame off-by-one bug.
	* frame-unwind.h (frame_this_id_ftype): Replace
	frame_unwind_id_ftype.
	(frame_prev_register_ftype): Replace frame_unwind_reg_ftype.
	(struct frame_unwind): Replace "id" with "this_id".  Replace "reg"
	with "prev_register".
	* frame-unwind.c (frame_unwind_find_by_pc): Return
	legacy_saved_regs_unwind instead of trad_frame_unwind.  Update
	comment.
	* dummy-frame.c (cached_find_dummy_frame): Delete function.
	(dummy_frame_this_id): Replace dummy_frame_id_unwind.
	(dummy_frame_prev_register): Replace dummy_frame_register_unwind.
	(dummy_frame_unwind): Update.
	* sentinel-frame.c (sentinel_frame_prev_register): Replace
	sentinel_frame_register_unwind.
	(sentinel_frame_this_id): Replace sentinel_frame_id_unwind.
	(sentinel_frame_unwinder): Update.
	* frame.h (legacy_saved_regs_unwind): Replace trad_frame_unwind.
	(struct frame_info): Rename "unwind_cache" to "prologue_cache".
	* frame.c (create_sentinel_frame): Update. Initialize
	"prologue_cache" instead of "unwind_cache".
	(frame_register_unwind): Call this frame's prev_register with the
	next frame and this frame's prologue cache.
	(get_prev_frame): Simplify.  Always call prev frame's this_id with
	this frame and prev frame's prologue cache.  Document that this
	call is shifted one to the left when compared to the
	frame_register_unwind call.
	(legacy_saved_regs_prev_register): Replace
	frame_saved_regs_register_unwind.
	(legacy_saved_regs_this_id): Replace frame_saved_regs_id_unwind.
	(legacy_saved_regs_unwinder): Replace trad_frame_unwinder.
	(legacy_saved_regs_unwind): Replace trad_frame_unwind.
	* d10v-tdep.c (d10v_frame_this_id): Replace d10v_frame_id_unwind.
	(d10v_frame_unwind): Update.
	(d10v_frame_prev_register): Replace d10v_frame_register_unwind.
	(d10v_frame_unwind_cache): Replace this "fi" with "next_frame".
	(saved_regs_unwinder): Replace this "frame" with "next_frame", and
	"saved_regs" with "this_saved_regs".

2003-03-16  Andrew Cagney  <cagney@redhat.com>

	* frame.c (frame_pop): Don't call target_store_registers.  Fix
	problem reported by Mark Kettenis.

2003-03-16  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_register_type): Renamed from
	i386_register_virtual_type.  Adjust function signature.
	(i386_gdbarch_init): Set register_type instead of
	deprecated_max_register_raw_size,
	deprecated_max_register_virtual_size and register_virtual_type.

2003-03-14  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): When a legacy frame, always call
	legacy_get_prev_frame.  Simplify unwind code using assumption that
	the unwinder is new.
	(legacy_get_prev_frame): Handle legacy sentinel frame unwind here.
	(legacy_frame_p): When no gdbarch_unwind_dummy_id, or
	SAVED_DUMMY_FRAME_TOS, assume a legacy frame.

2003-03-14  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_saved_register): Delete function.
	* frame.h (get_saved_register): Delete declaration.
	* xstormy16-tdep.c: Update comment.
	* regcache.h: Update comments.
	* sparc-tdep.c (sparc_init_extra_frame_info): Instead of
	get_saved_register and extract_address, use
	frame_read_unsigned_register.
	(sparc_frame_saved_pc): Ditto.
	(sparc_get_saved_register): Instead of get_saved_register, use
	frame_register.
	(sparc_pop_frame): Ditto.
	* findvar.c: Update comments.
	(value_of_register): Call frame_register instead of
	get_saved_register.
	(value_from_register): Ditto.
	* config/sparc/tm-sparc.h: Update comment.
	* breakpoint.c: Update comment.

2003-03-14  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_GET_SAVED_REGISTER): Replace
	GET_SAVED_REGISTER.
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame.h: Update comments.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* frame.c (frame_register): Update.
	(get_saved_register): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_GET_SAVED_REGISTER): Update.

2003-03-13  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_POP_FRAME): Replace POP_FRAME.
	* gdbarch.h, gdbarch.c: Regenerate.
	* valops.c (hand_function_call): Update comment.
	* stack.c (return_command): Update comment.
	* config/sparc/tm-sparc.h (DEPRECATED_POP_FRAME): Update.
	* config/pa/tm-hppa.h (DEPRECATED_POP_FRAME): Update.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2003-03-13  Andrew Cagney  <cagney@redhat.com>

	* frame.c (legacy_frame_p): New function.
	(get_prev_frame): Use legacy_frame_p.
	* frame.h (legacy_frame_p): Declare.

2003-03-13  D. Venkatasubramanian <dvenkat@noida.hcltech.com>

	* MAINTAINERS (write after approval): Alphabetically
	listing corrected.

2003-03-13  D. Venkatasubramanian <dvenkat@noida.hcltech.com>

	* MAINTAINERS (write after approval): Add myself.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): Rename the frame parameter to
	"this_frame".
	(get_next_frame, legacy_get_prev_frame): Ditto.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_current_frame): Check target_has_registers before
	checking target_has_stack.
	* eval.c (evaluate_subexp_standard): Use get_selected_frame,
	instead of deprecated_selected_frame.
	* findvar.c (value_of_register): Pass "frame", not
	deprecated_selected_frame, to value_of_builtin_reg.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* regcache.c (regcache_cooked_write_signed): New function.
	(regcache_cooked_write_unsigned): New function.
	(regcache_cooked_read_unsigned): Fix regnum in range assertion.
	(regcache_cooked_read_signed): Fix regnum in range assertion.
	* regcache.h (regcache_cooked_write_signed): Declare.
	(regcache_cooked_write_unsigned): Declare.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_FRAME_SAVED_PC): Replace FRAME_SAVED_PC.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.h: Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* i386-interix-tdep.c (i386_interix_init_abi): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* sh-tdep.c (sh_init_extra_frame_info): Update.
	(sh64_init_extra_frame_info): Update.
	* ns32knbsd-nat.c (frame_num_args): Update.
	* m68hc11-tdep.c (m68hc11_init_extra_frame_info): Update.
	* xstormy16-tdep.c (xstormy16_pop_frame): Update.
	(xstormy16_frame_chain_valid): Update.
	* vax-tdep.c (vax_saved_pc_after_call): Update.
	* v850-tdep.c (v850_frame_chain): Update.
	(v850_pop_frame): Update.
	(v850_init_extra_frame_info): Update.
	* sparc-tdep.c (setup_arbitrary_frame): Update.
	* ns32k-tdep.c (umax_frame_num_args): Update.
	* s390-tdep.c (s390_pop_frame_regular): Update.
	* mn10300-tdep.c (mn10300_frame_chain): Update.
	(mn10300_pop_frame_regular): Update.
	(mn10300_init_extra_frame_info): Update.
	* mips-tdep.c (mips_init_frame_pc_first): Update.
	(mips_frame_chain): Update.
	(mips_pop_frame): Update.
	* mcore-tdep.c (mcore_frame_chain): Update.
	(mcore_pop_frame): Update.
	(mcore_init_extra_frame_info): Update.
	* arch-utils.c (init_frame_pc_default): Update.
	* m68k-tdep.c (isi_frame_num_args): Update.
	(delta68_frame_num_args): Update.
	(news_frame_num_args): Update.
	* ia64-tdep.c (ia64_pop_frame_regular): Update.
	* alpha-tdep.c (alpha_init_frame_pc_first): Update.
	(alpha_frame_chain): Update.
	(alpha_pop_frame): Update.
	* hppa-tdep.c (hppa_saved_pc_after_call): Update.
	(hppa_init_extra_frame_info): Update.
	(hppa_frame_chain): Update.
	(hppa_frame_chain_valid): Update.
	* cris-tdep.c (cris_init_extra_frame_info): Update.
	* avr-tdep.c (avr_init_extra_frame_info): Update.
	* arm-tdep.c (arm_frame_chain_valid): Update.
	(arm_init_extra_frame_info): Update.
	(arm_pop_frame): Update.
	* frame.c (frame_pc_unwind): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_SAVED_PC): Update.
	(DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update.
	* config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	Eliminate the need for POP_FRAME.
	* frame.c (do_frame_unwind_register): New function.
	(frame_pop): When no POP_FRAME, pop the frame using register
	unwind and a scratch regcache.
	(frame_saved_regs_pop): Delete function.
	(trad_frame_unwinder): Update.
	* d10v-tdep.c (d10v_frame_pop): Delete function.
	(d10v_frame_unwind): Update.
	* sentinel-frame.c (sentinel_frame_pop): Delete function.
	(sentinel_frame_unwinder): Update.
	* dummy-frame.c (dummy_frame_pop): Delete function.
	(dummy_frame_unwind): Update.
	* frame-unwind.h (frame_unwind_pop_ftype): Delete definition.
	(struct frame_unwind): Update.

2003-03-11  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (mips_ecoff_reg_to_regnum): Rename to
	mips_dwarf_dwarf2_ecoff_reg_to_regnum().
	(mips_dwarf_dwarf2_ecoff_reg_to_regnum, mips_stab_reg_to_regnum):
	Do range checks on register number obtained from debugging info.
	(mips_gdbarch_init): Call set_gdbarch_dwarf_reg_to_regnum() and
	set_gdbarch_dwarf2_reg_to_regnum().  Adjust call of
	set_gdbarch_ecoff_reg_to_regnum() to account for new name of
	mapping function.
	(do_fp_register_row): Fix typo which caused double type to be
	used when attempting to unpack a float.

2003-03-11  J. Brobecker  <brobecker@gnat.com>

	* breakpoint.c (bpstat_stop_status): Fix a small memory leak.

2003-03-11  Andrew Cagney  <cagney@redhat.com>

	* frame.c (deprecated_update_frame_pc_hack): Don't assume a next
	frame.  Problem found by Corinna Vinschen.

2003-03-11  Pierre Muller  <muller@ics.u-strasbg.fr>

	* doublest.c (floatformat_from_length): Accept also
	the real size of 'long double' type.

2003-03-10  Daniel Jacobowitz  <drow@mvista.com>

	From Klee Dienes <kdienes@apple.com>:
	* breakpoint.c (bpstat_copy): Copy the command lines as well
	as the old value, to match what is freed in bpstat_clear.

2003-03-10  David Carlton  <carlton@math.stanford.edu>

	* minsyms.c (add_minsym_to_hash_table): Replace
	DEPRECATED_SYMBOL_NAME by SYMBOL_LINKAGE_NAME.
	(compare_minimal_symbols, compact_minimal_symbols)
	(install_minimal_symbols, find_solib_trampoline_target): Ditto.
	(lookup_minimal_symbol_text): Use strcmp on linkage names instead
	of DEPRECATED_SYMBOL_MATCHES_NAME.
	(lookup_minimal_symbol_solib_trampoline): Ditto.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* regcache.h (regcache_cooked_read_ftype): Define.
	(regcache_save, regcache_restore): Add a cooked_read parameter.
	* regcache.c (regcache_save, regcache_restore): Update.
	(do_cooked_read): New function.
	(regcache_cpy): Pass do_cooked_read to regcache_save and
	regcache_restore.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_FRAME_SAVED_PC): Replace FRAME_SAVED_PC.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.h: Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* i386-interix-tdep.c (i386_interix_init_abi): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* sh-tdep.c (sh_init_extra_frame_info): Update.
	(sh64_init_extra_frame_info): Update.
	* ns32knbsd-nat.c (frame_num_args): Update.
	* m68hc11-tdep.c (m68hc11_init_extra_frame_info): Update.
	* xstormy16-tdep.c (xstormy16_pop_frame): Update.
	(xstormy16_frame_chain_valid): Update.
	* vax-tdep.c (vax_saved_pc_after_call): Update.
	* v850-tdep.c (v850_frame_chain): Update.
	(v850_pop_frame): Update.
	(v850_init_extra_frame_info): Update.
	* sparc-tdep.c (setup_arbitrary_frame): Update.
	* ns32k-tdep.c (umax_frame_num_args): Update.
	* s390-tdep.c (s390_pop_frame_regular): Update.
	* mn10300-tdep.c (mn10300_frame_chain): Update.
	(mn10300_pop_frame_regular): Update.
	(mn10300_init_extra_frame_info): Update.
	* mips-tdep.c (mips_init_frame_pc_first): Update.
	(mips_frame_chain): Update.
	(mips_pop_frame): Update.
	* mcore-tdep.c (mcore_frame_chain): Update.
	(mcore_pop_frame): Update.
	(mcore_init_extra_frame_info): Update.
	* arch-utils.c (init_frame_pc_default): Update.
	* m68k-tdep.c (isi_frame_num_args): Update.
	(delta68_frame_num_args): Update.
	(news_frame_num_args): Update.
	* ia64-tdep.c (ia64_pop_frame_regular): Update.
	* alpha-tdep.c (alpha_init_frame_pc_first): Update.
	(alpha_frame_chain): Update.
	(alpha_pop_frame): Update.
	* hppa-tdep.c (hppa_saved_pc_after_call): Update.
	(hppa_init_extra_frame_info): Update.
	(hppa_frame_chain): Update.
	(hppa_frame_chain_valid): Update.
	* cris-tdep.c (cris_init_extra_frame_info): Update.
	* avr-tdep.c (avr_init_extra_frame_info): Update.
	* arm-tdep.c (arm_frame_chain_valid): Update.
	(arm_init_extra_frame_info): Update.
	(arm_pop_frame): Update.
	* frame.c (frame_pc_unwind): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_SAVED_PC): Update.
	(DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
	* config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update.
	* config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (gdbarch_unwind_pc): New method.
	* gdbarch.h, gdbarch.c: Regenerate.
	* frame.c (frame_pc_unwind): Rewrite.  Prefer gdbarch_unwind_pc,
	but use read_pc and FRAME_SAVED_PC as fall backs.
	(frame_saved_regs_pc_unwind): Delete function.
	(trad_frame_unwinder): Update.
	* frame-unwind.h (frame_unwind_pc_ftype): Delete declaration.
	(struct frame_unwind): Update.
	* dummy-frame.c (dummy_frame_pc_unwind): Delete function.
	(dummy_frame_unwind): Update.
	* sentinel-frame.c (sentinel_frame_pc_unwind): Delete function.
	(sentinel_frame_unwinder): Update.
	* d10v-tdep.c (d10v_frame_pc_unwind): Delete function.
	(d10v_frame_unwind): Update.
	(d10v_unwind_pc): New function.
	(d10v_gdbarch_init): Set unwind_pc.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.h: Re-generate.

	* d10v-tdep.c (d10v_frame_register_unwind): Correctly unwind the
	PC.
	(d10v_frame_pop): Unwind the PC, and not the LR, when restoring
	the PC register.

2003-03-08  Mark Kettenis  <kettenis@gnu.org>

	* gdbarch.sh (save_dummy_frame_tos): Add comment.

2003-03-08  Andrew Cagney  <cagney@redhat.com>

	* cli-out.c: Update copyright.
	(cli_out_data): Define typedef.  Use instead of ui_out_data.

2003-03-08  Andrew Cagney  <cagney@redhat.com>

	* valarith.c (value_subscripted_rvalue): Copy the array's REGNO to
	the result.

2003-03-07  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh: Don't generate two macro definitions when an
	undefined macro taking no arguments.
	* gdbarch.h: Regenerate.

2002-03-07  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-tdep.c (x86_64_save_dummy_frame_tos)
	(x86_64_unwind_dummy_id): New functions.
	(x86_64_init_abi): Register these two new functions.

2003-03-07  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-tdep.c (x86_64_function_has_prologue): New function.
	(x86_64_skip_prologue): Move prologue detection to
	separate function.
	* x86-64-tdep.h (x86_64_function_has_prologue): New prototype.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_unwind_dummy_id): New function.
	(d10v_gdbarch_init): Set unwind_dummy_id and save_dummy_frame_tos.
	* frame.c (get_prev_frame): Restructure the frame ID unwind code
	to use unwind_dummy_id when a dummy frame.
	* gdbarch.sh (unwind_dummy_id): New multi-arch method with
	predicate.
	* gdbarch.h, gdbarch.c: Regneerate.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (struct d10v_unwind_cache): Add field "base".
	(d10v_frame_unwind_cache): Rewrite code computing the base and SP.
	Do not use d10v_read_sp or d10v_read_fp when obtaining register
	values.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (struct frame_extra_info): Delete unused structure.
	(struct d10v_unwind_cache): Delete field "frameless".  Replace
	"next_addr" with "sp_offset".  Add "r11_offset".
	(d10v_frame_unwind_cache): Update.
	(prologue_find_regs): Update.  When "mv r11, sp", save the
	"sp_offset" in "r11_offset".  Recognize "st rn, @r11", note that
	RN was saved in r11_offset.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* frame.c (deprecated_update_frame_pc_hack): Also update the the
	cached PC value in the next frame.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* frame.h (struct frame_info): Replace "id_unwind_cache_p" and
	"id_unwind_cache" with "id".
	(frame_id_unwind): Delete declaration.
	* frame.c (frame_id_unwind): Delete function.
	(get_prev_frame): Call the frame id unwind method directly.  Store
	the returned next frame's ID value in NEXT_FRAME.  Note that there
	is a problem with the wrong unwind ID being called with the wrong
	unwind cache.

2003-03-05  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (FLAGS_TO_PASS): Add LDFLAGS.

2003-03-05  James Ingham <jingham@apple.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* cp-abi.c: Include "command.h", "gdbcmd.h", and "ui-out.h".
	(auto_cp_abi): New variable.
	(current_cp_abi, num_cp_abis): Make static.
	(CP_ABI_MAX): Define.
	(cp_abis): Turn into an array.
	(value_virtual_fn_field): Fix formatting.
	(switch_to_cp_abi, register_cp_abi): Update.  register_cp_abi now
	takes a pointer.
	(set_cp_abi_as_auto_default, set_cp_abi_cmd, show_cp_abi_cmd)
	(list_cp_abis, _initialize_cp_abi): New functions.
	* cp-abi.h: Add prototype for set_cp_abi_as_auto_default.  Remove
	declarations for cp_abis, num_cp_abis, current_cp_abi, and
	switch_to_cp_abi.  Update prototype for register_cp_abi.
	* Makefile.in (cp-abi.o): Update dependencies.
	* minsyms.c (install_minimal_symbols): Call set_cp_abi_as_auto_default
	instead of switch_to_cp_abi.
	* gnu-v2-abi.c (_initialize_gnu_v2_abi): Likewise.  Update call to
	register_cp_abi.
	* gnu-v3-abi.c (_initialize_gnu_v3_abi): Update call to
	register_cp_abi.
	* hpacc-abi.c (_initialize_hpacc_abi): Likewise.

2003-03-05  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2expr.c (new_dwarf_expr_context): Add (void) to definition.
	* dwarf2loc.c: Include "regcache.h".
	(dwarf_expr_read_reg): Rename regnum argument to dwarf_regnum.  Use
	register_size.
	* Makefile.in (dwarf2loc.o): Update dependencies.

2003-03-04  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_io_reg_read_command): Fix to handle case when the
	number of io registers reported by remote target is not a multiple of
	step.

2003-03-04  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (lookup_partial_symbol): Add linkage_name argument.
	(lookup_symbol_aux_psymtabs): Update call to
	lookup_partial_symbol.
	(lookup_transparent_type, find_main_psymtab)
	(make_symbol_overload_list): Ditto.

2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS (Write after approval): Update my email address.

2003-03-03  Andrew Cagney  <cagney@redhat.com>

	Make MAX_REGISTER_RAW_SIZE and MAX_REGISTER_VIRTUAL_SIZE optional.
	* gdbarch.sh (DEPRECATED_MAX_REGISTER_RAW_SIZE): Variable with
	predicate.  Replace MAX_REGISTER_RAW_SIZE.
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto for
	MAX_REGISTER_VIRTUAL_SIZE.
	* regcache.c (legacy_max_register_raw_size): New function.
	(legacy_max_register_virtual_size): New function.
	* defs.h (MAX_REGISTER_VIRTUAL_SIZE): Define.
	(MAX_REGISTER_RAW_SIZE): Define.
	(legacy_max_register_raw_size): Declare.
	(legacy_max_register_virtual_size): Declare.
	* config/sparc/tm-sparc.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Update.
	* config/sparc/tm-sp64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto.
	* config/pa/tm-hppa.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto.
	* config/pa/tm-hppa64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
	* config/ia64/tm-ia64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
	* config/i386/tm-ptx.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* d10v-tdep.c (d10v_gdbarch_init): Do not set
	max_register_raw_size or max_register_virtual_size.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (DEPRECATED_SYMBOL_MATCHES_NAME): Rename from
	SYMBOL_MATCHES_NAME, add comment.
	(SYMBOL_MATCHES_NATURAL_NAME): New.
	* minsyms.c (lookup_minimal_symbol_solib_trampoline): Replace
	SYMBOL_MATCHES_NAME with DEPRECATED_SYMBOL_MATCHES_NAME.
	(lookup_minimal_symbol, lookup_minimal_symbol_text): Ditto.
	* symtab.c (lookup_partial_symbol): Use
	SYMBOL_MATCHES_NATURAL_NAME, not SYMBOL_MATCHES_NAME.  Delete
	unhelpful comment.
	(lookup_block_symbol): Use SYMBOL_MATCHES_NATURAL_NAME, not
	SYMBOL_MATCHES_NAME.
	Fix for PR c++/33.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (SYMBOL_MATCHES_REGEXP): Delete.
	* symtab.c (search_symbols): Replace uses of SYMBOL_MATCHES_REGEXP
	by regexp matching against SYMBOL_NATURAL_NAME.

2003-03-03  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (find_method): Extract code into collect_methods.
	(collect_methods): New.

2003-03-02  Mark Kettenis  <kettenis@gnu.org>

	* i386bsd-tdep.c (i386bsd_sigcontext_addr): Use get_next_frame and
	get_frame_base.

	* i386-tdep.c (i386_pe_skip_trampoline_code): Replace usage of
	DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME.

2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>

	* arch-utils.c (generic_register_byte): Fix to use the loop index
	and not regnum when summing the size of all registers up to regnum.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename
	FRAME_INIT_SAVED_REGS.
	* gdbarch.h, gdbarch.c: Regenerate.
	* stack.c (frame_info): Update.
	* sh-tdep.c (sh_find_callers_reg, sh64_get_saved_pr): Update.
	(sh_init_extra_frame_info, sh64_init_extra_frame_info): Update.
	(sh64_get_saved_register, sh_pop_frame, sh64_pop_frame): Update.
	* ns32k-tdep.c (ns32k_pop_frame): Update.
	* mips-tdep.c (mips_pop_frame): Update.
	* m68hc11-tdep.c (m68hc11_pop_frame): Update.
	* ia64-tdep.c (ia64_frame_chain): Update.
	(ia64_frame_saved_pc, ia64_get_saved_register): Update.
	(ia64_frameless_function_invocation): Update.
	(ia64_init_extra_frame_info): Update.
	(ia64_pop_frame_regular): Update.
	* frame.h (struct frame_info): Update comment.
	(DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro.
	* frame.c (frame_saved_regs_register_unwind): Update.
	(frame_saved_regs_register_unwind): Update.
	(deprecated_generic_get_saved_register): Update.
	* cris-tdep.c: Update comment.
	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_INIT_SAVED_REGS):
	Rename macro.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* i386-tdep.c (i386_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* main.c (captured_main): Add OPT_WINDOWS and OPT_NOWINDOWS to
	option enum and switch.  When no windows, set the interpreter to
	INTERP_CONSOLE.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* main.c (captured_main): Replace magic option characters with an
	enum.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename
	INIT_EXTRA_FRAME_INFO.
	* gdbarch.h, gdbarch.c: Regenerate.
	* arm-tdep.c: Update comments.
	* sh-tdep.c, mcore-tdep.c, m68hc11-tdep.c: Ditto.
	* i386-interix-tdep.c, hppa-tdep.c, h8300-tdep.c: Ditto.
	* frame.h, avr-tdep.c: Ditto.
	* frame.c (get_prev_frame): DEPRECATED_INIT_EXTRA_FRAME_INFO.
	(create_new_frame, legacy_get_prev_frame): Ditto.
	* config/sparc/tm-sparc.h (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename.
	* config/pa/tm-hppa.h (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Initialize
	deprecated_init_extra_frame_info instead of init_extra_frame_info.
	* x86-64-tdep.c (x86_64_init_abi): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-interix-tdep.c (i386_interix_init_abi): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (register_type): New function with predicate.
	(REGISTER_VIRTUAL_TYPE): Change to function with predicate.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arch-utils.c (generic_register_byte): Use generic_register_size.
	(generic_register_size): When available, use
	gdbarch_register_type.
	* regcache.c (init_regcache_descr): When available, initialize the
	register type array using gdbarch_register_type.  If the
	architecture supplies gdbarch_register_type, do not use the legacy
	regcache layout.
	* d10v-tdep.c (d10v_register_type): Replace
	d10v_register_virtual_type.
	(d10v_gdbarch_init): Set register_type instead of
	register_virtual_type.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (ax-gdb.o): Update dependencies.
	* ax-gdb.c: Include "regcache.h".
	(gen_expr): Use register_type instead of REGISTER_VIRTUAL_TYPE.
	* findvar.c (value_of_register): Ditto.
	* infcmd.c (default_print_registers_info): Ditto.

2003-03-01  Mark Kettenis  <kettenis@gnu.org>

	* i386-linux-tdep.c (find_minsym_and_objfile): Replace usage of
	DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME.

2003-03-01  Mark Kettenis  <kettenis@gnu.org>

	* i386-linux-tdep.c (find_minsym_and_objfile): Use strcmp instead
	of STREQ.

2003-02-28  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (dwarf2loc.o): Update dependencies.
	* ax-gdb.c (gen_var_ref): Handle LOC_COMPUTED and LOC_COMPUTED_ARG.
	* dwarf2expr.c (read_uleb128, read_sleb128): Make non-static.
	* dwarf2expr.h (read_uleb128, read_sleb128): Add prototypes.
	* dwarf2loc.c: Include "ax.h" and "ax-gdb.h".
	(locexpr_tracepoint_var_ref): New function.
	(dwarf2_locexpr_funcs): Add locexpr_tracepoint_var_ref.

2003-02-28  Andrew Cagney  <cagney@redhat.com>

	* regcache.c (register_size): New function.
	* regcache.h (register_size): Declare
	* d10v-tdep.c: Use register_size instead of REGISTER_RAW_SIZE, use
	max_register_size instead of MAX_REGISTER_RAW_SIZE.

2003-02-28  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_compound): Extract code into find_method.
	(find_method): New.

2003-02-28  J. Brobecker  <brobecker@gnat.com>

	* Makefile.in: Add rules to build and link in observer.o.

2003-02-27  J. Brobecker  <brobecker@gnat.com>

	* observer.c: Minor comments edits.

2003-02-27  J. Brobecker  <brobecker@gnat.com>

	* observer.h, observer.c: New file.

2003-02-27  Andrew Cagney  <cagney@redhat.com>

	* arm-tdep.c (gdb_print_insn_arm): Rename _bfd to just bfd.

2003-02-27  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (M6811_OP_LDX_EXT, M6811_OP_STS_EXT): New defines.
	(M6812_OP_STS_EXT): Likewise.
	(m6811_prologue): Use the above to recognize prologue.
	(m6812_prologue): Likewise.

2003-02-27  David Carlton  <carlton@math.stanford.edu>

	* symfile.c (compare_symbols): Use SYMBOL_NATURAL_NAME, not
	SYMBOL_PRINT_NAME.
	(compare_psymbols): Ditto.
	* symtab.c (lookup_partial_symbol, lookup_block_symbol): Ditto.

2003-02-27  Michael Snyder  <msnyder@redhat.com>

	* f-lang.c (build_fortran_types): New function.
	(_initialize_f_language): Gdbarch-register built-in fortran types.
	* doublest.c (extract_floating): Fix warning text.

2003-02-27  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_PUSH_DUMMY_FRAME): Procedure with
	predicate.  Replaces PUSH_DUMMY_FRAME.
	* gdbarch.h, gdbarch.c: Regnerate.
	* valops.c (hand_function_call): Update.  Call
	generic_push_dummy_frame directly.
	* vax-tdep.c (vax_gdbarch_init): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_PUSH_DUMMY_FRAME): Update.
	* config/pa/tm-hppa.h (DEPRECATED_PUSH_DUMMY_FRAME): Update.
	* inferior.h (PUSH_DUMMY_FRAME): Delete definition.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Don't set
	push_dummy_frame to generic_push_dummy_frame.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.

2003-02-26  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (show_mips_abi): New function.
	(_initialize_mips_tdep): Use show_mips_abi() to implement the
	command ``show mips abi''.

2003-02-26  Jeff Johnston  <jjohnstn@redhat.com>

	From Elena Zannoni  <ezannoni@redhat.com>
	* dbxread.c (process_one_symbol): Only record line 0 if one or
	more sline entries have been seen for the function.

2003-02-26  Michael Chastain  <mec@shout.net>

	* configure: Regenerate with autoconf 000227.

2003-02-26  Michael Chastain  <mec@shout.net>

	Close PR build/660.
	* PROBLEMS (i[3456]86-*-linux*): Note explicit error message
	for old libc5/glibc.
	* gdb_thread_db.h: Die if not HAVE_UINTPTR_T.

2003-02-26  Kris Warkentin  <kewarken@qnx.com>

	* defs.h (gdb_osabi): Add GDB_OSABI_QNXNTO.
	* osabi.c (gdb_osabi_names): Add "QNX Neutrino".

2003-02-26  Michael Chastain  <mec@shout.net>

	* configure.in: New variable HAVE_UINTPTR_T.
	* configure, config.in: Regenerated.

2003-02-26  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR build/1097.
	* utils.c (gdb_realpath): Move closing brace outwards one #endif.

2003-02-25  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): Add comment on check for
	inside_entry_func. Only check for inside_entry_file when not a
	dummy and not a sentinel.  Check that the new frame is not inner
	to the old frame.

2003-02-25  Andrew Cagney  <cagney@redhat.com>

	* frame.c (frame_debug): New variable.
	(_initialize_frame): Add "set/show debug frame" command.
	(get_prev_frame): When frame_debug, print reason why unwind
	failed.

2003-02-25  Michael Chastain  <mec@shout.net>

	* PROBLEMS (i[3456]86-*-linux*): Require glibc 2.1.3 or later
	to avoid uintptr_t definition problems.

2003-02-25  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (SYMBOL_NATURAL_NAME): New macro.
	(SYMBOL_LINKAGE_NAME): Ditto.
	(SYMBOL_PRINT_NAME): Use SYMBOL_NATURAL_NAME and
	SYMBOL_LINKAGE_NAME.
	(struct general_symbol_info): Expand comment.
	(DEPRECATED_SYMBOL_NAME): Rename from SYMBOL_NAME.
	(SYMBOL_MATCHES_NAME): Use DEPRECATED_SYMBOL_NAME.
	(SYMBOL_MATCHES_REGEXP): Ditto.
	* symtab.c (symbol_natural_name): New function.
	* objfiles.h: Replace all uses of SYMBOL_NAME by
	DEPRECATED_SYMBOL_NAME.
	* xcoffread.c, valops.c, typeprint.c, tracepoint.c: Ditto.
	* symtab.c, symmisc.c, symfile.c, stack.c, stabsread.c: Ditto.
	* somsolib.c, sol-thread.c, rs6000-tdep.c, p-valprint.c: Ditto.
	* printcmd.c, objfiles.c, objc-lang.c, mipsread.c: Ditto.
	* minsyms.c, mdebugread.c, linespec.c, jv-lang.c: Ditto.
	* i386-tdep.c, i386-linux-tdep.c, hpread.c, hppa-tdep.c: Ditto.
	* gnu-v2-abi.c, f-valprint.c, findvar.c, expprint.c: Ditto.
	* dwarfread.c, dwarf2read.c, dbxread.c, c-valprint.c: Ditto.
	* cp-valprint.c, coffread.c, buildsym.c, breakpoint.c: Ditto.
	* blockframe.c, ax-gdb.c, arm-linux-tdep.c, ada-lang.c: Ditto.
	* ada-exp.y: Ditto.
	* ada-exp.y: Update copyright.
	* sol-thread.c, mipsread.c, jv-lang.c, f-valprint.c: Ditto.
	* cp-valprint.c: Ditto.

2003-02-25  Jeff Johnston  <jjohnstn@redhat.com>

	* infptrace.c (detach): Do not flag error if ptrace detach fails
	and errno is set to ESRCH.

2003-02-24  Andrew Cagney  <cagney@redhat.com>

	* infptrace.c (udot_info): Change type of udot_off to long.  Use
	paddr when printing udot_off's value.

2003-02-24  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (make_symbol_overload_list): Only read in partial
	symtabs containing a matching partial symbol.

2003-02-24  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (lookup_partial_symbol): Use strcmp_iw_ordered to
	do the comparison, not strcmp.
	* symfile.c (compare_psymbols): Ditto.
	* defs.h: Declare strcmp_iw_ordered.
	* utils.c (strcmp_iw_ordered): New function.

2003-02-24  Jim Blandy  <jimb@redhat.com>

	* MAINTAINERS (GNU/Linux/x86, linespec, breakpoints, Scheme
	support, shared libs): Remove my name from here, to better reflect
	reality.

2003-02-24  Kris Warkentin  <kewarken@qnx.com>

	* target.h: (HAVE_CONTINUABLE_WATCHPOINT): Define.
	(target_ops): Add to_have_continuable_watchpoint.
	* target.c (update_current_target): Add INHERIT line for
	to_have_continuable_watchpoint.
	* infrun.c: Remove HAVE_CONTINUABLE_WATCHPOINT defines.
	* config/i386/nm-i386.h, config/i386/nm-i386sco5.h,
	config/i386/nm-i386sol2.h, config/s390/nm-linux.h,
	config/sparc/nm-sun4sol2.h: HAVE_CONTINUABLE_WATCHPOINT defined as 1.

2003-02-24  Elena Zannoni  <ezannoni@redhat.com>

	* MAINTAINERS (Core): Drop main.c and top.c. Clarify event loop
	maintainership.

2003-02-24  Kris Warkentin  <kewarken@qnx.com>

	* solib.c (solib_open): Call target defined search function after
	failing with solib-search-path.
	* solist.h (target_so_ops): Add find_and_open_solib function hook and
	create define TARGET_SO_FIND_AND_OPEN_SOLIB.

2003-02-24  Kris Warkentin  <kewarken@qnx.com>

	* MAINTAINERS: Add myself to Write After section.

2003-02-23  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (m68hc11_gdbarch_init): long double is 64-bit wide.

2003-02-22  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (m68hc11_init_reggroups): New function.
	(m68hc11_add_reggroups): New function.
	(m68hc11_register_reggroup_p): New to register hard/soft reggroups.
	(m68hc11_gdbarch_init): Install the reggroups.
	(_initialize_m68hc11_tdep): Initialize them.

2003-02-21  James E Wilson  <wilson@tuliptree.org>

	* MAINTAINERS: Update my email address.

2003-02-21  David Carlton  <carlton@math.stanford.edu>

	* arm-tdep.c (arm_gdbarch_init): Add break after default label.

2003-02-21  Daniel Jacobowitz  <drow@mvista.com>

	Based on a patch from Daniel Berlin (dberlin@dberlin.org).
	* symtab.h: Add opaque declarations of struct axs_value and
	struct agent_expr.
	(enum address_class): Add LOC_COMPUTED and LOC_COMPUTED_ARG.
	(struct location_funcs): New type.
	(struct symbol): Add "loc" to aux_value.
	(SYMBOL_LOCATION_BATON, SYMBOL_LOCATION_FUNCS): New macros.
	* dwarf2read.c: Include "dwarf2expr.h".
	(dwarf2_symbol_mark_computed): New function.
	(read_func_scope): Use it.
	(var_decode_location): New function.
	(new_symbol): Use it.
	* dwarf2expr.c, dwarf2expr.h, dwarf2loc.c, dwarf2loc.h: New files.

	* Makefile.in (SFILES): Add dwarf2loc.c and dwarf2expr.c.
	(dwarf2expr_h, dwarf2loc_h): New variables.
	(COMMON_OBS): Add dwarf2expr.o and dwarf2loc.o.
	(dwarf2expr.o, dwarf2loc.o): New rules.
	(dwarf2read.o): Add $(dwarf2expr_h) and $(dwarf2loc_h).
	* buildsym.c (finish_block): Handle LOC_COMPUTED and
	LOC_COMPUTED_ARG.
	* findvar.c (symbol_read_needs_frame, read_var_value): Likewise.
	* m2-exp.y (yylex): Likewise.
	* printcmd.c (address_info, print_frame_args): Likewise.
	* stack.c (print_block_frame_locals, print_frame_arg_vars): Likewise.
	* symmisc.c (print_symbol, print_partial_symbols): Likewise.
	* ada-lang.c (ada_resolve_subexp, symtab_for_sym)
	(ada_add_block_symbols, fill_in_ada_prototype): Likewise.
	* symtab.c (lookup_block_symbol): Likewise.

2003-02-20  Adam Fedor  <fedor@gnu.org>

	* symtab.h: Remove objc_specific struct
	(SYMBOL_OBJC_DEMANGLED_NAME): Remove.
	* symtab.c (symbol_init_language_specific, symbol_demangled_name):
	Have language_objc use cplus_specific struct.

2003-02-20  Tom Tromey  <tromey@redhat.com>

	* jv-valprint.c (java_value_print): Look at TYPE_TAG_NAME, not
	TYPE_NAME, when printing a String value.  PR java/1075.

2003-02-20  Adam Fedor  <fedor@gnu.org>

	* objc-lang.h (find_methods): Remove declaration.
	* objc-lang.c (find_methods): Make static.

2003-02-20  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c (get_image_name): Check return value from
	ReadProcessMemory.
	(child_xfer_memory): Ditto.

2003-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (TARGET_SYSTEM_ROOT): Set default to
	${exec_prefix}/${target_alias}/sys-root.  Match explicit
	'${exec_prefix}' (in addition to the expansion thereof) as
	relocatable.
	* configure: Rebuilt.

2003-02-20  David Carlton  <carlton@math.stanford.edu>

	* symtab.c (search_symbols): Revert the search_symbols part of my
	2002-12-23 patch.  Add comment.

2002-02-20  Daniel Jacobowitz  <drow@mvista.com>

	* coffread.c (coff_symfile_read): Clean up minimal symbols earlier.
	* dbxread.c (elfstab_build_psymtabs): Don't call
	install_minimal_symbols.
	(stabsect_build_psymtabs): Likewise.
	* elfread.c (elf_symfile_read): Call install_minimal_symbols
	earlier.
	* somread.c (som_symfile_read): Call install_minimal_symbols
	and do_cleanups earlier.
	* nlmread.c (nlm_symfile_read): Likewise.
	* mdebugread.c (elfmdebug_build_psymtabs): Call
	install_minimal_symbols and make appropriate cleanups.

2003-02-20  Kevin Buettner  <kevinb@redhat.com>

	* solib.c (reload_shared_libraries): New function.
	(_initialize_solib): Add callbacks for ``set solib-search-path''
	and ``set solib-absolute-prefix''.

2003-02-20  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (SYMBOL_PRINT_NAME): Rename from SYMBOL_SOURCE_NAME;
	expand comment.
	* ada-lang.c (user_select_syms, ada_finish_decode_line_1): Replace
	SYMBOL_PRINT_NAME with SYMBOL_SOURCE_NAME.
	* ada-typeprint.c (ada_typedef_print): Ditto.
	* ax-gdb.c (gen_var_ref): Ditto.
	* breakpoint.c (print_one_breakpoint): Ditto.
	* buildsym.c (finish_block): Ditto.
	* c-valprint.c (c_val_print): Ditto.
	* expprint.c (print_subexp): Ditto.
	* findvar.c (locate_var_value): Ditto.
	* infcmd.c (jump_command): Ditto.
	* linespec.c (decode_line_2, decode_compound): Ditto.
	* maint.c (maintenance_translate_address): Ditto.
	* objc-lang.c (compare_selectors, compare_classes): Ditto.
	* printcmd.c (build_address_symbolic, sym_info, print_frame_args):
	Ditto.
	* p-valprint.c (pascal_val_print): Ditto.
	* stabsread.c (define_symbol): Ditto.
	* stack.c (print_frame, frame_info, print_block_frame_locals)
	(print_frame_arg_vars, return_command): Ditto.
	* symfile.c (compare_symbols, compare_psymbols): Ditto.
	* symmisc.c (print_symbol): Ditto.
	* symtab.c (lookup_partial_symbol, lookup_block_symbol)
	(compare_search_syms, print_symbol_info, print_msymbol_info)
	(rbreak_command): Ditto.
	* tracepoint.c (tracepoints_info): Ditto.
	* typeprint.c (typedef_print): Ditto.
	* valops.c (value_of_variable, hand_function_call): Ditto.
	* cli/cli-cmds.c (edit_command, list_command): Ditto.
	* ada-typeprint.c: Update Copyright.
	* infcmd.c, objc-lang.c, p-valprint.c, symmisc.c: Ditto.
	* tracepoint.c, cli/cli-cmds.c: Ditto.

2003-02-20  Kevin Buettner  <kevinb@redhat.com>

	* frame.c (generic_unwind_get_saved_register): Make non-static.
	* frame.h (generic_unwind_get_saved_register): Declare.
	* mips-tdep.c (read_next_frame_reg): Fetch register from
	current regcache when frame is NULL.
	(mips_init_extra_frame_info): Pass NULL explicitly for parameter
	that must be NULL.
	(mips_get_saved_register): Call generic_unwind_get_saved_register()
	instead of frame_register_unwind().

2003-02-20  Andrew Cagney  <ac131313@redhat.com>

	* remote-sim.c (gdbsim_insert_breakpoint)
	(gdbsim_remove_breakpoint): Delete #ifdef SIM_HAS_BREAKPOINTS
	code.

2003-02-20  Andrew Cagney  <ac131313@redhat.com>

	* remote.c (_initialize_remote): Add commands "set/show remote
	hardware-watchpoint-limit" and "set/show remote
	hardware-breakpoint-limit".
	(remote_hw_watchpoint_limit): Initialize to -1.
	(remote_hw_breakpoint_limit): Ditto.
	(remote_check_watch_resources): Treat a limit of -1 as unlimited.

2003-02-19  Raoul Gough  <RaoulGough@yahoo.co.uk>

	* coff-pe-read.c: New file - support reading of minimal symbols from a
	portable executable using the export table.
	* coff-pe-read.h: New file.
	* coffread.c: Include coff-pe-read.h.
	(coff_symtab_read): Call read_pe_exported_syms iff no recognized
	debugging symbols found.
	* Makefile.in (SFILES): Add coff-pe-read.o.
	(coff_pe_read_h): Define.
	(COMMON_OBS): Add coff-pe-read.o.
	(coffread.o): Add coff_pe_read_h dependency.
	(coff-pe-read.o): New target.

2003-02-19  David Carlton  <carlton@math.stanford.edu>

	* Makefile.in (SFILES): Add block.c.
	(block_h): New.
	(COMMON_OBS): Add block.o.
	(block.o): New.
	(x86-64-tdep.o): Add $(block_h).
	(values.o, valops.o, tracepoint.o, symtab.o, symmisc.o, symfile.o)
	(stack.o, printcmd.o, p-exp.tab.o, parse.o, objfiles.o)
	(objc-exp.tab.o, objc-lang.o, nlmread.o, mips-tdep.o, mdebugread.o)
	(m2-exp.tab.o, linespec.o, jv-lang.o, jv-exp.tab.o, infcmd.o)
	(f-valprint.o, findvar.o, f-exp.tab.o, expprint.o, coffread.o)
	(c-exp.tab.o, buildsym.o, breakpoint.o, blockframe.o, ax-gdb.o)
	(alpha-tdep.o, ada-lang.o, ada-exp.tab.o, mi-cmd-stack.o): Ditto.
	* value.h: Add opaque declaration for struct block.
	* parser-defs.h, objc-lang.h, buildsym.h, breakpoint.h: Ditto.
	* ada-lang.h: Ditto.
	* x86-64-tdep.c: #include "block.h"
	* values.c, valops.c, tracepoint.c, symtab.c, symmisc.c: Ditto.
	* symfile.c, stack.c, printcmd.c, p-exp.y, parse.c: Ditto.
	* objfiles.c, objc-exp.y, objc-lang.c, nlmread.c: Ditto.
	* mips-tdep.c, mdebugread.c, m2-exp.y, linespec.c: Ditto.
	* jv-lang.c, jv-exp.y, infcmd.c, f-valprint.c: Ditto.
	* findvar.c, f-exp.y, expprint.c, coffread.c, c-exp.y: Ditto.
	* buildsym.c, breakpoint.c, blockframe.c, ax-gdb.c: Ditto.
	* alpha-tdep.c, ada-lang.c, ada-exp.y: Ditto.
	* blockframe.c (blockvector_for_pc_sect): Move to "block.c".
	(blockvector_for_pc, block_for_pc_sect, block_for_pc): Ditto.
	* symtab.c (block_function): Ditto.
	(contained_in): Ditto.
	* frame.h: Move block_for_pc and block_for_pc_sect declarations to
	block.h.  Add opaque declaration for struct block.
	* symtab.h: Move block_function and contained_in declarations to
	block.h.  Add opaque declarations for struct block, struct
	blockvector.
	(struct block): Move to block.h.
	(struct blockvector): Ditto.
	(BLOCK_START, BLOCK_END, BLOCK_FUNCTION, BLOCK_SUPERBLOCK)
	(BLOCK_GCC_COMPILED, BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM)
	(BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE)
	(ALL_BLOCK_SYMBOLS, BLOCK_SHOULD_SORT, BLOCKVECTOR_NBLOCKS)
	(BLOCKVECTOR_BLOCK, GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOCK):
	Ditto.
	* block.c: New file.
	* block.h: New file.

2003-02-19  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c (avr_extract_return_value): Remove function.
	(avr_store_return_value): Remove function.
	(avr_extract_struct_value_address): Remove function.
	(avr_gdbarch_init): Remove set_gdbarch_deprecated_*() calls.

2003-02-19  Andrew Cagney  <ac131313@redhat.com>

	* rs6000-tdep.c: Include "gdb_assert.h".
	(registers_e500): Add "acc" and "spefscr".
	(PPC_GPRS_PSEUDO_REGS): Remove trailing comma.
	(rs6000_gdbarch_init): Update initialization of ppc_gp0_regnum,
	ppc_gplast_regnum, sp_regnum and fp_regnum.  Check that gp0_regnum
	really is "r0".
	(registers_e500): Mark the "acc" as a 64 bit (from Jim Willson).

2003-02-18  Keith Seitz  <keiths@redhat.com>

	* Makefile.in: Add gdbtk-interps.c.

2003-02-18  Kevin Buettner  <kevinb@redhat.com>

	* sparc-tdep.c (sparc_frame_chain): Adjust return value.
	* config/sparc/tm-sparc.h (init_frame_pc_noop): Declare.

2003-02-18  Andrew Cagney  <cagney@redhat.com>

	* symtab.h (struct objfile): Add opaque declaration.

2003-02-18  Elena Zannoni  <ezannoni@redhat.com>

	From Jim Ingham   <jingham@apple.com>:
	* dbxread.c (process_one_symbol): Use last_function_start rather
	than function_start_offset to find the real beginning of the
	current function.  The latter is just the text section offset on
	some systems, the former is always the real function start.

2003-02-17  Andrew Cagney  <cagney@redhat.com>

	* configure.in: Revert ${target} != ${host}.

2003-02-17  Andrew Cagney  <ac131313@redhat.com>

	* configure.in (Makefile): Use the test ${target} != ${host},
	instead of the absence of the "nm.h" file, to determine of the
	configuration non-native.
	* configure: Regenerate.

2003-02-14  Elena Zannoni  <ezannoni@redhat.com>

	From Brian Ford  <ford@vss.fsi.com>

	* cli/cli-decode.c (lookup_cmd_composition) [TUI]: Properly
	conditionalize tui_active test.
	(lookup_cmd_1): Ditto.

2003-02-14  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Add check for _etext.
	* maint.c (maintenance_set_profile_cmd): Use etext if _etext isn't
	available.
	* config.in, configure: regenerated.

2003-02-14  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_get_pc_bounds): Offset addresses by base.

2003-02-14  Andrew Cagney  <ac131313@redhat.com>

	* main.c (tui_version): Delete variable.
	(captured_main): When --tui, set interpreter_p to "tui" instead of
	enabling tui_version.
	* printcmd.c (display_command) [TUI]: Test tui_active instead of
	tui_version.
	* cli/cli-decode.c (lookup_cmd_composition): Ditto.
	* cli/cli-cmds.c (disassemble_command): Ditto.
	* defs.h (tui_version): Delete declaration.
	* Makefile.in (SUBDIR_TUI_SRCS): Add "tui/tui-interp.c".
	(tui-interp.o): Add rules.
	(SUBDIR_TUI_OBS): Add "tui-interp.o".

2003-02-14  Christopher Faylor  <cgf@redhat.com>

	* win32-nat.c (register_loaded_dll): Correctly set address range for
	just-loaded dll.

2003-02-12  Jason Molenda  (jmolenda@apple.com)

	* symmisc.c (print_objfile_statistics): Include information about
	the number of psymtabs and symtabs in each object file.

2003-02-13  Keith R Seitz  <keiths@redhat.com>

	* main.h (struct captured_main_args): Add interpreter_p.
	* main.c (captured_main): Initialize interpreter_p from context.
	* gdb.c (main): Set interpreter_p argument.
	* Makefile.in (gdb.o): Add dependency for interps.h.

2003-02-12  Andrew Cagney  <ac131313@redhat.com>

	* event-top.c (cli_command_loop): Delete declaration.
	(_initialize_event_loop): Delete function setting event_loop_hook.
	* event-top.h (cli_command_loop): Declare.  Update copyright.
	(EVENT_TOP_H): Define.  Wrap header in #ifdef EVENT_TOP_H.
	* interps.c (current_interp_command_loop): When event_loop_p, call
	cli_command_loop.

2003-02-12  Andrew Cagney  <ac131313@redhat.com>

	* interps.h (interp_command_loop_ftype): Change return type to
	void.

2003-02-12  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-tdep.c (x86_64_extract_return_value)
	(x86_64_store_return_value): Use regcache instead of regbuf.
	(x86_64_gdbarch_init): Change related set_gdbarch_* functions.
	* x86-64-linux-nat.c (fill_gregset): Use regcache.

2003-02-11  Andrew Cagney  <ac131313@redhat.com>

	* acinclude.m4 (no_tcl): SUBST TCL_CC_SEARCH_FLAGS.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* Makefile.in (TCL): Use TCL_CC_SEARCH_FLAGS instead of
	TCL_LD_SEARCH_FLAGS.

2003-02-10  Michal Ludvig  <mludvig@suse.cz>

	* dwarf2cfi.c: Reindented.

2003-02-09  Andrew Cagney  <ac131313@redhat.com>

	* interps.c (clear_interpreter_hooks): Convert function definition
	to ISO C.

2003-02-07  David Carlton  <carlton@math.stanford.edu>

	* gdb_mbuild.sh: Delete extra shift after parsing '-f'.

2003-02-07  Kevin Buettner  <kevinb@redhat.com>

	* gdbtypes.h (struct main_type): Move ``length'' field from here...
	(struct type): ...to here.
	(TYPE_LENGTH): Adjust to reflect different location of ``length''
	field.
	* gdbtypes.c (make_qualified_type): Set length on newly created type.
	(replace_type): Set length on all type variants for a given type.

2003-02-07  Andrew Cagney  <ac131313@redhat.com>

	* sol-thread.c, hpux-thread.c: Include "gdb_stat.h" instead of
	<sys/stat.h>.
	* Makefile.in (sol-thread.o, hpux-thread.o): Update dependencies.

2003-02-06  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (symm-nat.o): Update dependencies.
	(sparc-nat.o, procfs.o, proc-api.o, ppc-linux-nat.o): Ditto.
	(lynx-nat.o, ia64-linux-nat.): Ditto.
	* symm-nat.c, sparc-nat.c, procfs.c, proc-api.c: Include
	"gdb_wait.h" instead of <wait.h> or <sys/wait.h>.
	* ppc-linux-nat.c, lynx-nat.c, ia64-linux-nat.c: Ditto.

	* Makefile.in (inflow_h): Define.
	(procfs.o, inflow.o, procfs.o): Update dependencies.
	* inftarg.c (child_stop): Delete extern declaration of
	inferior_process_group.  Include "inflow.h".
	* procfs.c (procfs_stop): Ditto.  Include "inflow.h".
	* inflow.c (PROCESS_GROUP_TYPE): Move definitions from here ...
	* inflow.h (PROCESS_GROUP_TYPE): ... to here.  New file.
	(our_process_group, inferior_process_group): Extern declarations.

	* procfs.c: Include "gdb_assert.h".

	* linux-proc.c: Include "gdb_stat.h" instead of <sys/stat.h>.
	* cp-valprint.c (cp_print_value_fields): Eliminate STREQN.
	* jv-typeprint.c (java_type_print_base): Ditto.
	* typeprint.c (typedef_print): Eliminate STREQ.
	* cli/cli-script.c (define_command, define_command): Ditto.
	* main.c (captured_main): Ditto.
	* values.c (lookup_internalvar): Ditto.
	* utils.c (safe_strerror, parse_escape): Eliminate assignment
	within `if' conditional.
	* linespec.c (decode_line_2): Ditto.
	* cli/cli-dump.c (bfd_openr_with_cleanup): Ditto.
	(bfd_openw_with_cleanup): Ditto.

2003-02-07  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (x86_64_init_abi): Set extract_return_value to
	legacy_extract_return_value and store_return_value to
	legacy_return_value.

2003-02-06  Raoul Gough  <RaoulGough@yahoo.co.uk>

	* win32-nat.c (get_relocated_section_addrs): New function.  Find
	section load addresses for symbol handling in relocated DLLs.
	(solib_symbols_add): Open a bfd and call get_relocated_section_addrs.

2003-02-05  Fred Fish  <fnf@intrinsity.com>

	* remote-e7000.c (e7000_drain_command): Fix precedence problem with
	'=' and '!='.
	* rdi-share/ardi.c (wait_for_debug_message): Fix precedence problem
	with '&' and '=='.
	(angel_RDI_info): Ditto.
	* infttrace.c (threads_continue_all_but_one): Fix precedence problem
	with '&' and '!='.
	(threads_continue_all_with_signals): Ditto.

2003-02-05  Jim Ingham <jingham@apple.com>
	    Keith Seitz  <keiths@redhat.com>
	    Elena Zannoni  <ezannoni@redhat.com>
	    Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (SUBDIR_CLI_OBS): Add "cli-interp.o".
	(SUBDIR_CLI_SRCS): Add "cli/cli-interp.c".
	(SUBDIR_MI_OBS): Add "mi-interp.o".
	(SUBDIR_MI_SRCS): Add "mi/mi-interp.c".
	(SFILES): Add "interps.c".
	(COMMON_OBS): Add "interps.o".
	(interps_h, mi_main_h): Define.
	(interps.o, cli-interp.o, mi-interp.o): Add dependencies.
	(mi-main.o, main.o, event-top.o): Update dependencies.
	* cli/cli-interp.c: New file.
	* interps.h, interps.c: New files.
	* top.c: (gdb_init): Don't install the default interpreter, handed
	by captured_main.
	* main.c: Include "interps.h".
	(interpreter_p): Note that it should malloc'ed.
	(captured_command_loop): Call current_interp_command_loop.
	(captured_main): Initialize interpreter_p to INTERP_CONSOLE.  Use
	xfree and xstrdup when updating interpreter_p.  Install the
	default interpreter.  Add hack to stop mi1's copyright notice
	being encoded.
	* event-top.h (gdb_setup_readline): Declare.
	(gdb_disable_readline): Declare.
	* event-top.c: Include "interps.h".
	(display_gdb_prompt): Call current_interp_display_prompt_p.
	(gdb_setup_readline): Initialize gdb_stdout, gdb_stderr,
	gdb_stdlog, and gdb_stdtarg.
	(_initialize_event_loop): Don't call gdb_setup_readline.
	* cli-out.c (cli_out_set_stream): New function.
	* cli-out.h (cli_out_set_stream): Declare.

2003-02-06  Mark Kettenis  <kettenis@gnu.org>

	* configure.tgt (i[3456]86-*-sysv4.2*, i[3456]86-*-sysv4*,
	i[3456]86-*-sysv5*, i[3456]86-*-sco3.2v5*): Remove.  These are all
	handled fine by i[3456]86-*sco* and i[3456]86-sysv*.
	* config/i386/i386sco5.mt, config/i386/i386v4.mt,
	config/i386/i386v42mp.mt: Removed.

2003-02-05  Mark Kettenis  <kettenis@gnu.org>

	* configure.tgt (*-*-solaris*): Set gdb_osabi to
	GDB_OSABI_SOLARIS.

2003-02-05  Michael Chastain  <mec@shout.net>

	* PROBLEMS (i[3456]86-*-linux*): Warn about binutils
	2.12.1 and earlier versions.

2003-02-05  Andrew Cagney  <ac131313@redhat.com>

	Remove orphaned hosts, targets and files.
	* config/i386/gdbserve.mt, config/m68k/nm-apollo68b.h: Delete.
	* config/m68k/nm-hp300bsd.h, config/m68k/tm-apollo68b.h: Delete.
	* config/m68k/tm-es1800.h, config/m68k/tm-hp300bsd.h: Delete.
	* config/m68k/tm-mac.h, config/m68k/xm-apollo68b.h: Delete.
	* config/pa/hpux1020.mt, config/pa/hpux11.mt: Delete.
	* config/pa/hpux11w.mt, config/powerpc/gdbserve.mt: Delete.
	* config/powerpc/ppcle-eabi.mt, config/powerpc/ppcle-sim.mt: Delete.
	* config/powerpc/tm-ppc-sim.h, config/sparc/sp64sim.mt: Delete.
	* config/sparc/tm-sp64sim.h: Delete.
	* configure.host: Delete strongarm-*-*, xscale-*-*, and arm*-*-*
	hosts.
	* configure.tgt: Delete i[3456]86-*-sco3.2v4*, and
	mips*-dec-mach3* targets.

2003-02-04  Michael Chastain  <mec@shout.net>

	* NEWS: Fix typo: sepcifying -> specifying.

2003-02-04  Michael Chastain  <mec@shout.net>

	* dwarfread.c: Add documentation on the state of dwarf-1,
	looking towards obsoletion.

2003-02-03  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.c++/pr-1023.cc,
	gdb/testsuite/gdb.c++/pr-1023.exp.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* values.c: Delete code conditional on IS_TRAPPED_INTERNALVAR.
	* TODO: Delete reference to IS_TRAPPED_INTERNALVAR.

	* utils.c (init_page_info): Delete reference to MPW in comments.
	* main.c (captured_main): Delete #ifdef MPW.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* NEWS: Note that the m32r-*-elf* is obsolete.
	* monitor.c (monitor_expect): Obsolete reference to m32r.
	* configure.tgt: Mark m32r-*-elf* as obsolete.
	* MAINTAINERS: Mark m32k as obsolete.
	* m32r-rom.c: Obsolete file.
	* config/m32r/m32r.mt: Obsolete file.
	* config/m32r/tm-m32r.h: Obsolete file.
	* m32r-stub.c: Obsolete file.
	* m32r-tdep.c: Obsolete file.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* NEWS: Mention that the z8k-zilog-none is obsolete.
	* MAINTAINERS: Mark z8k as obsolete.
	* configure.tgt: Obsolete the z8k-*-coff* target.
	* config/z8k/z8k.mt: Obsolete file.
	* config/z8k/tm-z8k.h: Obsolete file.
	* z8k-tdep.c: Obsolete file.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* NEWS: Mention that the mn10200-elf is obsolete.
	* configure.tgt: Obsolete mn10200-*-* target.
	* breakpoint.c (update_breakpoints_after_exec): Update comment to
	mention that the mn10200 is obsolete.
	* breakpoint.h: Ditto.
	* MAINTAINERS: Mark the mn10200-elf as obsolete.
	* config/mn10200/mn10200.mt: Obsolete file.
	* config/mn10200/tm-mn10200.h: Obsolete file.
	* mn10200-tdep.c: Obsolete file.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* MAINTAINERS: Mark h8500 as obsolete.
	* configure.tgt (h8500-*-*): Mark h8500 code as obsolete.
	* findvar.c (value_from_register): Ditto.
	* h8500-tdep.c: Mark file as obsolete.
	* config/h8500/h8500.mt: Ditto.
	* config/h8500/tm-h8500.h: Ditto.
	* NEWS: Mention that h8500 is obsolete.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* objfiles.c (allocate_objfile): Always set name.  Add comment at
	start of function.
	* jv-lang.c (get_dynamics_objfile): Add comment.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* symtab.h (SYMBOL_LINKAGE_NAME): Delete.
	* printcmd.c (build_address_symbolic): Replace uses of
	SYMBOL_LINKAGE_NAME by equivalent uses of SYMBOL_SOURCE_NAME,
	SYMBOL_NAME, and asm_demangle.
	Update copyright.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_compound): Extract code into
	lookup_prefix_sym.
	(lookup_prefix_sym): New function.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* gdbtypes.h: Delete INTEGER_COERCION_BADNESS,
	FLOAT_COERCION_BADNESS.
	* gdbtypes.c (rank_one_type): Replace all uses of
	INTEGER_COERCION_BADNESS by INTEGER_CONVERSION_BADNESS.

2003-02-04  Jim Blandy  <jimb@redhat.com>

	* dwarf2read.c (dwarf2_locate_sections): When we find a macro info
	section, let dwarf_macinfo_section point to it, not
	dwarf_loc_section.

2003-02-04  Daniel Jacobowitz  <drow@mvista.com>

	Pointed out by Anton Blanchard <anton@samba.org>.
	* ppc-linux-tdep.c (insn_is_sigreturn): New function.
	(ppc_linux_at_sigtramp_return_path): Use it.

2003-02-04  Daniel Jacobowitz  <drow@mvista.com>

	* defs.h (streq): Add prototype.
	* utils.c (streq): New function.

	* dwarf2read.c (new_symbol): Use SYMBOL_SET_NAMES instead of
	SYMBOL_NAME and SYMBOL_INIT_DEMANGLED_NAME.
	* mdebugread.c (new_symbol): Likewise.
	* stabsread.c (define_symbol): Likewise.
	* coffread.c (process_coff_symbol): Likewise.
	* dwarfread.c (new_symbol): Likewise.

	* minsyms.c (prim_record_minimal_symbol_and_info): Use
	SYMBOL_SET_NAMES instead of setting SYMBOL_NAME.  Set the language
	here.
	(install_minimal_symbols): Don't set SYMBOL_LANGUAGE or call
	SYMBOL_INIT_DEMANGLED_NAME.
	* objfiles.c: Include "hashtab.h".
	(allocate_objfile): Call htab_set_functions_ex for the
	demangled_names_hash.
	(free_objfile): Call htab_delete for the demangled_names_hash.
	* objfiles.h (struct htab): Add declaration.
	(struct objfile): Add demangled_names_hash.
	* symfile.c: Include "hashtab.h".
	(reread_symbols): Call htab_delete for the demangled_names_hash.
	(add_psymbol_to_list): Use SYMBOL_SET_NAMES instead of putting
	SYMBOL_NAME in the bcache.
	* symtab.c: Include "hashtab.h".  Update comments.
	(create_demangled_names_hash, symbol_set_names): New functions.
	(symbol_find_demangled_name): New function, broken out from
	symbol_init_demangled_names.
	(symbol_init_demangled_names): Use it.
	* symtab.h (SYMBOL_INIT_DEMANGLED_NAME): Add missing parentheses.
	(SYMBOL_SET_NAMES): New macro.
	(symbol_set_names): Add prototype.

2003-02-03  Jim Blandy  <jimb@redhat.com>

	Use a single, consistent representation for an empty minimal
	symbol table in an objfile.
	* objfiles.c (terminate_minimal_symbol_table): New function.
	(allocate_objfile): Call it.
	* objfiles.h (terminate_minimal_symbol_table): New declaration.
	(ALL_MSYMBOLS): No need to test whether (objfile)->msymbols is
	non-NULL.
	* minsyms.c (lookup_minimal_symbol_by_pc_section): To see whether
	objfile has minimal symbols, compare minimal_symbol_count to zero,
	instead of comparing msymbols with NULL.
	* objfiles.c (have_minimal_symbols): Same.
	* solib-sunos.c (solib_add_common_symbols): Call
	terminate_minimal_symbol_table.
	* symfile.c (reread_symbols): Same.

2003-02-03  Kevin Buettner  <kevinb@redhat.com>

	* s390-tdep.c (s390_address_class_type_flags)
	(s390_address_class_type_flags_to_name)
	(s390_address_class_name_to_type_flags): New functions.
	(s390_gdbarch_init): Define ADDRESS_CLASS_TYPE_FLAGS_TO_NAME,
	ADDRESS_CLASS_NAME_TO_TYPE_FLAGS, and ADDRESS_CLASS_TYPE_FLAGS.

2003-02-03  Michael Snyder  <msnyder@redhat.com>

	* arm-tdep.c: Fix spell-o in comment.

2003-02-03  Michal Ludvig  <mludvig@suse.cz>

	* dwarf2cfi.c (pointer_encoding): Added new parameter.
	* dwarf2cfi.c, dwarf2read.c: Changed all warnings and
	error messages to contain BFD filename.

2003-02-02  Elena Zannoni  <ezannoni@redhat.com>

	Fix PR gdb/742 gdb/743 gdb/877
	* disasm.c (dump_insns): Use make_cleanup_ui_out_tuple_begin_end.
	(do_mixed_source_and_assembly): Use
	make_cleanup_ui_out_tuple_begin_end and
	make_cleanup_ui_out_tuple_begin_end.
	(do_mixed_source_and_assembly): Ditto.
	* thread.c (do_captured_list_thread_ids): Ditto.
	* ui-out.h (ui_out_table_begin, ui_out_list_begin,
	ui_out_tuple_begin, ui_out_table_end, ui_out_list_end,
	ui_out_tuple_end): Delete prototypes.
	* ui-out.c (ui_out_list_begin, ui_out_tuple_begin,
	ui_out_list_end, ui_out_tuple_end): Delete.

	From Kevin Buettner  <kevinb@redhat.com>:
	* ui-out.h (make_cleanup_ui_out_table_begin_end): New function.
	* ui-out.c (make_cleanup_ui_out_table_begin_end)
	(do_cleanup_table_end):  New functions.
	* breakpoint.c (print_it_typical, print_one_breakpoint, mention):
	Use cleanups to invoke_ui_out_tuple_end().
	(breakpoint_1): Use cleanup to invoke ui_out_table_end().
	* cli/cli-setshow.c (cmd_show_list): Use
	make_cleanup_ui_out_tuple_begin_end.

2003-02-02  Andrew Cagney  <ac131313@redhat.com>

	* frame.c (frame_unwind_register): New function.
	(frame_unwind_unsigned_register): Use.
	(frame_unwind_signed_register): Use.
	(frame_read_register): New function.
	* frame.h (frame_unwind_register): Declare.
	(frame_read_register): Declare.

	* d10v-tdep.c (d10v_frame_pop): Rewrite. Use regcache_cooked_write
	and frame_unwind_register instead of read_memory, write_register
	and deprecated_write_register_bytes.

2003-02-02  Andrew Cagney  <ac131313@redhat.com>

	* frame.h: Note that namelen can be negative.
	* frame.c (frame_map_name_to_regnum): When LEN is negative, use
	NAME's length.

	* NEWS: Mention that the d10v's `regs' command is deprecated.
	* d10v-tdep.c (d10v_gdbarch_init): Set print_registers_info.
	(d10v_print_registers_info): New function.
	(show_regs): Call d10v_print_registers_info.
	(_initialize_d10v_tdep): Mark "show regs" command as deprecated.

2003-02-02  Mark Kettenis  <kettenis@gnu.org>

	* stack.c (print_frame_info): Restore call to annotate_frame_begin
	lost in the previous patch.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	From 2002-11-09 Jason Molenda (jason-cl@molenda.com)
	* stack.c (print_frame_info_base): Output complete FRAME tuple
	for synthesized frames.

2003-02-02  Andrew Cagney  <ac131313@redhat.com>

	* mips-nat.c (zerobuf): Delete.
	(fetch_inferior_registers): Alloc local zerobuf.
	(fetch_core_registers): Alloc local zerobuf.
	* d10v-tdep.c (show_regs): Don't allocate a dynamic array using
	MAX_REGISTER_RAW_SIZE or MAX_REGISTER_VIRTUAL_SIZE.
	* thread-db.c (thread_db_store_registers): Ditto.
	* sh-tdep.c (sh_do_register): Ditto.
	* rom68k-rom.c (rom68k_supply_one_register): Ditto.
	* remote-sim.c (gdbsim_store_register): Ditto.
	* remote-mips.c (mips_wait, mips_fetch_registers): Ditto.
	* remote-e7000.c (fetch_regs_from_dump): Ditto.
	* monitor.c (monitor_supply_register): Ditto.
	* mipsv4-nat.c (supply_gregset, supply_fpregset): Ditto.
	* mips-nat.c (fetch_inferior_registers): Ditto.
	* m68klinux-nat.c (fetch_register): Ditto.
	* lynx-nat.c (fetch_inferior_registers): Ditto.
	(fetch_inferior_registers): Ditto.
	* irix4-nat.c (supply_gregset, supply_fpregset): Ditto.
	* hpux-thread.c (hpux_thread_fetch_registers): Ditto.
	(hpux_thread_store_registers): Ditto.
	* hppah-nat.c (fetch_register): Ditto.
	* hppab-nat.c (fetch_register): Ditto.
	* hppa-tdep.c (pa_register_look_aside): Ditto.
	(pa_print_fp_reg, pa_strcat_fp_reg): Ditto.
	* dve3900-rom.c (fetch_bitmapped_register): Ditto.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbarch.sh: Explictly specify all method levels.  When a
	variable with an empty level, provide a non-multi-arch default.
	(BELIEVE_PCC_PROMOTION_TYPE): Set level to empty.
	* gdbarch.h: Re-generate.
	* stabsread.c (BELIEVE_PCC_PROMOTION_TYPE): Delete.  Always defined.
	* config/m68k/tm-sun3.h (BELIEVE_PCC_PROMOTION_TYPE): Define as 1

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* defs.h (host_pointer_to_address): Delete declaration.
	(address_to_host_pointer): Delete declaration.
	* utils.c (host_pointer_to_address): Delete function.
	(address_to_host_pointer): Delete function.
	* procfs.c (procfs_address_to_host_pointer): New function.
	* procfs.c (proc_set_watchpoint): Use.
	(procfs_can_use_hw_breakpoint): Update comments.
	* somsolib.c (hpux_address_to_host_pointer_hack): New function.
	(som_solib_add): Use.
	* hppa-tdep.c (hppa_pointer_to_address_hack): New function.
	* hppa-tdep.c (unwind_command): Use.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* gdb_dirent.h: Mark up valid uses of <dirent.h>, d_namelen and
	strlen d_name.

	* main.c (captured_main): Delete #ifdef ADDITIONAL_OPTIONS,
	ADDITIONAL_OPTION_CASES, and ADDITIONAL_OPTION_HANDLER code.
	(print_gdb_help): Delete #ifdef ADDITIONAL_OPTION_HELP code.
	* stabsread.c (DBX_PARM_SYMBOL_CLASS): Delete macro.
	(define_symbol): Update.
	* symfile.c (generic_load): Remove references to nindy.
	* symtab.c: Remove references to nindy.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* infcmd.c (print_float_info): Delete code conditional on
	FLOAT_INFO.
	* config/nm-lynx.h: Delete #undef FLOAT_INFO.  Update copyright.
	* config/m68k/nm-apollo68b.h: Ditto.
	* config/i386/tm-ptx.h (FLOAT_INFO): Delete.  Update copyright.
	* config/ns32k/nm-nbsd.h (FLOAT_INFO): Ditto.
	* config/i386/tm-symmetry.h (FLOAT_INFO): Ditto.

2003-02-01  Mark Kettenis  <kettenis@gnu.org>

	* config/i386/tm-i386os9k.h: Removed.

	* configure.host (i[3456]86-*-isc*): Set gdb_host to i386v.
	Remove i[3456]86-*-sysv3.2* and i[3456]86-*-sysv32* entries since
	they're identical to i[3456]86-*-sysv* now.
	* config/i386/i386v32.mh: Removed.
	* config/i386/xm-i386v32.h: Removed.
	* config/i386/xm-i386sco.h (U_FPSTATE): Remove macro.

	* config/i386/i386mk.mt, config/i386/i386mk.mh: Removed.

	* config/i386/i386dgux.mh: Removed.
	* configure.host (i[3456]86-*-dgux): Set gdb_host to i386v4.

	* configure.in: Fix typo.
	* configure: Regenerated.

2003-01-31  David Carlton  <carlton@math.stanford.edu>

	* dwarf2read.c (dwarf2_locate_sections): Set
	dwarf_ranges_section.

2003-01-31  Andrew Cagney  <ac131313@redhat.com>

	* objc-exp.y, c-exp.y, f-exp.y: Remove PTR casts.
	* utils.c: Update comments documenting legitimate uses of PTR.

	* utils.c: Re-indent.

	* config/djgpp/fnchange.lst: Delete nindy files.
	* nindy-share/ttyflush.c, nindy-share/stop.h: Delete files.
	* nindy-share/nindy.c, nindy-share/env.h: Delete files.
	* nindy-share/coff.h, nindy-share/block_io.h: Delete files.
	* nindy-share/b.out.h, nindy-share/VERSION: Delete files.
	* nindy-share/README, nindy-share/Onindy.c: Delete files.
	* nindy-tdep.c, nindy-share/Makefile: Delete files.
	* Makefile.in (init.c): Remove nindy references.
	(saber_gdb): Delete rule.
	(ALLDEPFILES): Delete hp300ux-nat.c, nindy-tdep.c,
	nindy-share/Onindy.c, nindy-share/nindy.c, nindy-share/ttyflush.c,
	and a68v-nat.c.
	(hp300ux-nat.o, a68v-nat.o, ptx4-nat.o): Delete rules.
	(Onindy.o, nindy.o, ttyflush.o, nindy-tdep.o): Delete rules.
	(HFILES_NO_SRCDIR): Delete nindy-share/b.out.h,
	nindy-share/block_io.h, nindy-share/coff.h, nindy-share/env.h, and
	nindy-share/stop.h.
	* hp300ux-nat.c, a68v-nat.c, ptx4-nat.c: Delete files.
	* saber.suppress: Delete file.

2003-01-31  Daniel Jacobowitz  <drow@mvista.com>

	* dbxread.c (stabs_data): New static variable.
	(fill_symbuf): Support an in-memory buffer for stabs data.
	(stabs_seek): New function.
	(dbx_psymtab_to_symtab): Relocate the stabs data if necessary.
	(read_ofile_symtab): Use stabs_seek.
	(elfstab_build_psymtabs): Take an asection* instead of
	an offset and size.  Relocate the stabs data if necessary.
	Save the section* for dbx_psymtab_to_symtab.
	* dwarf2read.c: Add section variables for each debug section.
	(dwarf2_locate_sections): Fill them in.
	(dwarf2_read_section): Take an asection* argument.
	Relocate the section contents if necessary.
	(dwarf2_build_psymtabs, dwarf2_build_psymtabs_easy): Update callers.
	* dwarf2cfi.c (parse_frame_info): Take a section argument and pass
	it to dwarf2_read_section.
	(dwarf2_build_frame_info): Update callers.
	* elfread.c (elf_symfile_read): Update call to
	elfstab_build_psymtabs.
	* gdb-stabs.h (struct dbx_symfile_info): Add stab_section.
	(DBX_STAB_SECTION): New macro.
	* stabsread.h (elfstab_build_psymtabs): Update prototype.
	* symfile.c (symfile_dummy_outputs): New function.
	(symfile_relocate_debug_section): New function.
	* symfile.h (symfile_relocate_debug_section): Add prototype.

2003-01-31  Richard Henderson  <rth@redhat.com>

	* alpha-nat.c (REGISTER_PTRACE_ADDR): Merge into ...
	(register_addr): ... here.  Support ALPHA_UNIQUE_REGNUM.
	(fetch_elf_core_registers): Support ALPHA_UNIQUE_REGNUM.
	* alpha-tdep.c (alpha_register_name): Add "unique".
	* alpha-tdep.h (ALPHA_NUM_REGS): Increment.
	(ALPHA_UNIQUE_REGNUM): New.
	* config/alpha/nm-linux.h (ALPHA_UNIQUE_PTRACE_ADDR): New.

2003-01-31  Andrew Cagney  <ac131313@redhat.com>

	* README: Remove reference to Ericsson 1800 monitor.
	* Makefile.in (remote-es.o): Delete rule.
	(ALLDEPFILES): Delete remote-es.c.
	* remote-es.c: Delete file.
	* config/m68k/es1800.mt: Delete file.
	* config/djgpp/fnchange.lst: Update.
	* configure.tgt: Delete m68*-ericsson-* target.

2003-01-31  Adam Fedor  <fedor@gnu.org>

	* infrun.c (handle_inferior_event): Rename 'tmp' to real_stop_pc.
	Remove duplicate/shadowing variable of same name.

2003-01-30  Jim Blandy  <jimb@redhat.com>

	* symfile.c (find_separate_debug_file): Assert that the objfile's
	directory name we compute ends with a slash, and then assume that
	that's so everywhere we use it.

2003-01-30  Daniel Jacobowitz  <drow@mvista.com>

	* valops.c (value_assign): Flush frame cache after stores to memory
	also.

2003-01-30  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (mon960-rom.o): Delete rule.
	* mon960-rom.c: Delete file.

2003-01-30  Andrew Cagney  <ac131313@redhat.com>

	* d10v-tdep.c: Include "frame-unwind.h".
	(d10v_gdbarch_init): Append d10v_frame_p to the unwind predicate
	list.
	(next_addr, uses_frame): Delete.
	(struct d10v_unwind_cache): Define.
	(prologue_find_regs): Add struct d10v_unwind_cache info parameter.
	Use info instead of next_addr and uses_frame globals.
	(d10v_frame_init_saved_regs): Delete function.
	(d10v_init_extra_frame_info): Delete function.
	(d10v_gdbarch_init): Do not initialize init_extra_frame_info,
	frame_init_saved_regs or pop_frame, frame_chain, frame_chain_valid,
	init_frame_pc or frame_saved_pc.
	(d10v_pop_frame): Delete function.
	(do_d10v_pop_frame): Delete function.
	(d10v_frame_chain): Delete function.
	(d10v_frame_chain_valid): Delete function.
	(d10v_frame_pc_unwind): New function.
	(d10v_frame_id_unwind): New function.
	(saved_regs_unwinder): New function.
	(d10v_frame_register_unwind): New function.
	(d10v_frame_pop): New function.
	(d10v_frame_unwind): New variable.
	(d10v_frame_p): New function.
	(d10v_frame_saved_pc): Delete function.
	* Makefile.in (d10v-tdep.o): Update dependencies.

2003-01-30  J. Brobecker  <brobecker@gnat.com>

	* config/pa/tm-hppa64.h (CALL_DUMMY_LOCATION): Remove #undef
	causing some regressions due to a change in the default value
	for this macro.

2003-01-29  Richard Henderson  <rth@redhat.com>
	    Elena Zannoni  <ezannoni@redhat.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/961.
	* dwarf2read.c	(dwarf_ranges_offset, dwarf_ranges_size): New
	variables.
	(RANGES_SECTION): New.
	(dwarf_ranges_buffer): New variable.
	(struct comp_unit_head): Add member "die".
	(struct dwarf2_pinfo): Add dwarf_ranges_buffer, dwarf_ranges_size.
	(DWARF_RANGES_BUFFER, DWARF_RANGES_SIZE): New.
	(dwarf2_has_info): Init dwarf_ranges_offset and dwarf_ranges_size.
	(dwarf2_locate_sections): Likewise.
	(dwarf2_build_psymtabs): Read .debug_ranges.
	(dwarf2_build_psymtabs_hard): Swap dwarf_ranges out.
	(psymtab_to_symtab_1): Swap dwarf_ranges in.  Set cu_header.die.
	(dwarf2_get_pc_bounds): New cu_header argument; adjust all callers.
	Look for DW_AT_ranges and return the bounding box.

2003-01-29  Brian Ford <ford@vss.fsi.com>

	* win32-nat.c (cygwin_pid): Removed as unused.
	(child_attach): Try fall back to Cygwin pid.

2003-01-29  Jim Blandy  <jimb@redhat.com>

	* objfiles.h (struct objfile): Doc fix.

2003-01-29  Andrew Cagney  <ac131313@redhat.com>

	* frame.c (frame_saved_regs_id_unwind): Assert FRAME_CHAIN_P.
	(legacy_get_prev_frame): Assert FRAME_CHAIN_P.
	(get_prev_frame): When FRAME_CHAIN_P, call legacy_get_prev_frame.
	(frame_saved_regs_pc_unwind): Assert FRAME_SAVED_PC_P.
	* gdbarch.sh (FRAME_CHAIN): Change to a function with predicate.
	(FRAME_SAVED_PC): Change to a function with predicate.
	* gdbarch.h, gdbarch.c: Re-generate.

2003-01-28  Andrew Cagney  <ac131313@redhat.com>

	* hppah-nat.c (child_pid_to_exec_file): Don't use boolean.

	* complaints.c (complain): Delete function.
	* complaints.h (struct deprecated_complaint): Delete definition.
	(complain): Delete declaration.

2003-01-28  Kevin Buettner  <kevinb@redhat.com>

	* mips-tdep.c (mips_init_extra_frame_info): Return early for
	dummy frames.

2003-01-27  Andrew Cagney  <ac131313@redhat.com>

	* sentinel-frame.h, sentinel-frame.c: New files.
	* Makefile.in (frame.o): Update dependencies.
	(SFILES): Add sentinel-frame.c.
	(sentinel_frame_h): Define.
	(COMMON_OBS): Add sentinel-frame.o.
	(sentinel-frame.o): Specify dependencies.
	* frame.c: Include "sentinel-frame.h".
	(frame_register_unwind): Rewrite assuming that there is always a a
	->next frame.
	(frame_register, generic_unwind_get_saved_register): Ditto.
	(frame_read_unsigned_register, frame_read_signed_register): Ditto.
	(create_sentinel_frame, unwind_to_current_frame): New functions.
	(get_current_frame): Rewrite using create_sentinel_frame and
	unwind_to_current_frame.  When possible, always create a frame.
	(create_new_frame): Set next to the sentinel frame.
	(get_next_frame): Rewrite.  Don't go below the level 0 frame.
	(deprecated_update_frame_pc_hack): Update the next frame's PC and
	ID cache when necessary.
	(frame_saved_regs_id_unwind): Use frame_relative_level.
	(deprecated_generic_get_saved_register): Use frame_relative_level,
	get_frame_saved_regs, get_frame_pc, get_frame_base and
	get_next_frame.
	(frame_saved_regs_register_unwind): Use get_frame_saved_regs and
	frame_register.

2003-01-27  Daniel Jacobowitz  <drow@mvista.com>

	* gdb_indent.sh: Add -T bfd and -T asection to the indent arguments.

2003-01-27  Daniel Jacobowitz  <drow@mvista.com>

	* maint.c [! (HAVE_MONSTARTUP && HAVE__MCLEANUP)]
	(maintenance_set_profile_cmd): Use error () instead of warning ().

2003-01-27  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Check that -pg works if using --enable-profiling.
	Check for monstartup and _mcleanup regardless of --enable-profiling.
	* maint.c: Check for monstartup and _mcleanup before using them.
	* config.in: Regenerated.
	* configure: Regenerated.

2003-01-24  Nick Clifton  <nickc@redhat.com>

	* Add sh2e support:

	2002-04-02  Elena Zannoni  <ezannoni@redhat.com>

		* sh-tdep.c (sh_sh2e_register_name): New.
		(sh2e_show_regs): New.
		(sh_gdbarch_init): Handle bfd_mach_sh2e.
		* config/sh/tm-sh.h: Added sh2e to comments.

2003-01-23  Jim Blandy  <jimb@redhat.com>

	* symfile.c (syms_from_objfile): Don't print the "(no debugging
	symbols found)" message here; we haven't checked for a separate
	debug info file yet, so we don't know yet.
	(symbol_file_add_with_addrs_or_offsets): Print it here, after
	we've looked everywhere.  Also, there's no need to print a special
	message when we're loading the separate debug info file: the one
	symbol_file_add prints is fine.

2003-01-23  Alexander Larsson <alexl@redhat.com>
	    Jim Blandy  <jimb@redhat.com>

	Add support for executables whose debug info has been separated
	out into a separate file, leaving only a link behind.
	* objfiles.h (struct objfile): New fields: separate_debug_objfile
	and separate_debug_objfile_backlink.
	(put_objfile_before): New declaration.
	* symfile.c: #include "filenames.h".
	(symbol_file_add_with_addrs_or_offsets): If this objfile has its
	debug info in a separate file, read that, too. Save the addrs
	argument, so we can use it again to read the separated debug info;
	syms_from_objfile modifies the table we pass it.
	(reread_symbols): After re-reading an objfile, call
	reread_separate_symbols to refresh its separate debug info
	objfile, if it has one.
	(reread_separate_symbols, find_separate_debug_file,
	get_debug_link_info, separate_debug_file_exists): New functions.
	(debug_file_directory): New global var.
	(_initialize_symfile): Initialize debug_file_directory, and
	provide the new `set debug-file-directory' command to let the user
	change it.
	* objfiles.c (free_objfile): If this objfile has its debug info in
	a separate objfile, free that one too.  If this is itself a
	separate debug info objfile, clear our parent's backlink.
	(put_objfile_before): New function.
	* utils.c (gnu_debuglink_crc32): New function.
	* defs.h (gnu_debuglink_crc32): New declaration.
	* Makefile.in (symfile.o): Note dependency on "filenames.h".
	* configure.in: Handle --with-separate-debug-dir config option.
	* acinclude.m4 (AC_DEFINE_DIR): New macro.
	* acconfig.h (DEBUGDIR): New macro.
	* configure, aclocal.m4, config.in: Regenerated.

2003-01-22  Jim Blandy  <jimb@redhat.com>

	* symfile.c (symbol_file_add_with_addrs_or_offsets): New function,
	like the old symbol_file_add, but taking new arguments: you can
	now pass in either a `struct section_addr_info' list to say where
	each section is loaded, or a `struct section_offsets' table.  Pass
	these new arguments through to syms_from_objfile as appropriate.
	(symbol_file_add): Just call symbol_file_add_with_addrs_or_offsets,
	with the appropriate quiescent values for the new arguments.

	* symfile.c: #include "gdb_assert.h".
	(syms_from_objfile): Add the ability to pass in a section offset
	table directly, as an alternative to the section_addr_info table.
	Document arguments better.
	(symbol_file_add): Pass extra arguments to syms_from_objfile.
	* symfile.h (syms_from_objfile): Update declaration.
	* rs6000-nat.c (objfile_symbol_add): Pass new arguments to
	syms_from_objfile.
	* Makefile.in (symfile.o): List dependency on $(gdb_assert_h).

2003-01-22  Daniel Jacobowitz  <drow@mvista.com>

	Original patch by Tom Tromey <tromey@cygnus.com> and
	Jason Molenda <jmolenda@apple.com>.
	* Makefile.in (PROFILE_CFLAGS): Substitute from configure.
	(INTERNAL_LDFLAGS): Don't include PROFILE_CFLAGS.
	* NEWS: Mention profiling.
	* configure.in (--enable-gdbtk): Fix typo.
	(--enable-profiling): New.  Set PROFILE_CFLAGS.
	* maint.c (maintenance_set_profile_cmd): Remove NOTYET.
	Fill in function.
	(profiling_state): New variable.
	(mcleanup_wrapper): New function.
	(_initialize_maint): Remove NOTYET, fix call to
	add_setshow_boolean_cmd for "maint set profile".
	* configure: Regenerated.

2003-01-21  Martin M. Hunt  <hunt@redhat.com>

	* Makefile.in (install-gdbtk): Install PNG images too.

2003-01-21  Andrew Cagney  <ac131313@redhat.com>

	* exec.c (text_start): Delete global variable.
	(exec_file_attach): Make text_start local to the function.
	* inferior.h (BEFORE_TEXT_END, AFTER_TEXT_END): Delete macros.
	* valops.c (hand_function_call): Delete code that handles
	BEFORE_TEXT_END and AFTER_TEXT_END.
	* gdbarch.sh (CALL_DUMMY_LENGTH): Test call_dummy_length instead
	of CALL_DUMMY_LOCATION.
	* gdbarch.c: Regenerate.
	* inferior.h (deprecated_pc_in_call_dummy_before_text_end)
	(deprecated_pc_in_call_dummy_after_text_end): Delete declaration.
	* blockframe.c (deprecated_pc_in_call_dummy_before_text_end)
	(deprecated_pc_in_call_dummy_after_text_end): Delete functions.
	(text_end): Delete extern declaration.

2003-01-21  Andrew Cagney  <ac131313@redhat.com>

	* frame.h (FRAME_OBSTACK_ZALLOC): Define.
	* blockframe.c (backtrace_below_main): Move to "frame.c".
	(frame_chain_valid): Delete check for backtrace_below_main.
	(_initialize_blockframe): Delete initialization, move ``set
	backtrace-below-main'' command to "frame.c".
	(do_flush_frames_sfunc): Delete function.
	* frame.c: Include "command.h" and "gdbcmd.h".
	(frame_type_from_pc): New function.
	(create_new_frame): Use frame_type_from_pc.
	(legacy_get_prev_frame): New function.
	(get_prev_frame): Rewrite.  When an old style frame, call
	legacy_get_prev_frame.  Otherwize, unwind the PC first.
	(_initialize_frame): Add ``set backtrace-below-main'' command.
	* Makefile.in (frame.o): Update dependencies.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* config/pa/tm-hppa.h (DEPRECATED_DO_REGISTERS_INFO): Rename
	DEPRECATED_REGISTERS_INFO.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* MAINTAINERS: Replace `Blanket Write Privs' with `Global
	Maintainers'.  Update `Various Maintainers'.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* frame.c (frame_saved_regs_pop): Assert POP_FRAME_P.
	* gdbarch.sh (POP_FRAME): Change to function with predicate.
	Suppress actual parameters when `-'.
	* gdbarch.h, gdbarch.c: Regenerate.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* d10v-tdep.c (d10v_frame_saved_pc, d10v_frame_chain): Restore
	code handling dummy frames.

2003-01-19  Andrew Cagney  <ac131313@redhat.com>

	* frame-unwind.h (frame_unwind_pop_ftype): Declare.
	(struct frame_unwind): Add field pop.
	* frame.h (frame_pop): Declare.
	* frame.c (frame_saved_regs_pop): New function.
	(trad_frame_unwinder): Add frame_saved_regs_pop.
	(frame_pop): New function.
	* dummy-frame.c (dummy_frame_pop): New function.
	(discard_innermost_dummy): New function.
	(generic_pop_dummy_frame): Use discard_innermost_dummy.
	(dummy_frame_unwind): Add dummy_frame_pop.
	* infrun.c (normal_stop): Call frame_pop instead of POP_FRAME.
	* valops.c (hand_function_call): Ditto.
	* stack.c (return_command): Ditto.

2003-01-18  Andrew Cagney  <ac131313@redhat.com>

	* cris-tdep.c: Fix function declaration indentation.
	* dwarfread.c, gdbcore.h, gdbtypes.h, i386v-nat.c: Ditto.
	* mips-tdep.c, monitor.h, parse.c, proc-utils.h: Ditto.
	* rs6000-nat.c, ser-go32.c, somread.c, stabsread.c: Ditto.
	* symfile.h, symtab.h, target.c, target.h, value.h: Ditto.
	* xcoffread.c, config/pa/tm-hppa.h: Ditto.
	* config/sparc/tm-sp64.h, config/sparc/tm-sparc.h: Ditto.

2003-01-18  Michael Chastain  <mec@shout.net>

	* README (Unpacking and Installation -- quick overview):
	Warn against ".../gdb-5.3/gdb/configure".

2003-01-18  Andrew Cagney  <ac131313@redhat.com>

	* dummy-frame.h (dummy_frame_id_unwind): Delete declaration.
	(dummy_frame_pc_unwind, dummy_frame_register_unwind): Ditto.
	(struct frame_unwind): Declare opaque.
	(dummy_frame_p): Declare function.
	* dummy-frame.c (dummy_frame_id_unwind): Make static.
	(dummy_frame_pc_unwind, dummy_frame_register_unwind): Ditto.
	* dummy-frame.c: Include "frame-unwind.h".
	(dummy_frame_p): New function.
	(dummy_frame_unwind): New variable.
	* frame.c: Include "frame-unwind.h".
	(frame_pc_unwind, frame_id_unwind, frame_register_unwind): Update
	to use the new unwind field.
	(set_unwind_by_pc): Delete function.
	(create_new_frame, get_prev_frame): Set unwind field using
	frame_unwind_find_by_pc.
	(trad_frame_unwind, trad_frame_unwinder): New variables.
	* frame.h (trad_frame_unwind): Declare variable.
	(frame_id_unwind_ftype): Delete declaration.
	(frame_pc_unwind_ftype, frame_register_unwind_ftype): Ditto.
	(struct frame_unwind): Declare opaque.
	(struct frame_info): Replace the fields id_unwind, pc_unwind and
	register_unwind with a single unwind pointer.
	* frame-unwind.h, frame-unwind.c: New files.
	* Makefile.in (SFILES): Add frame-unwind.c.
	(frame_unwind_h): Define.
	(COMMON_OBS): Add frame-unwind.o.
	(frame-unwind.o): Specify dependencies.
	(frame.o, dummy-frame.o): Update dependencies.

2003-01-18  Andrew Cagney  <ac131313@redhat.com>

	* ada-valprint.c: Eliminate PTR.
	* breakpoint.c, corelow.c, cris-tdep.c, dbxread.c: Ditto.
	* defs.h, dve3900-rom.c, dwarf2read.c, dwarfread.c: Ditto.
	* exec.c, hppa-tdep.c, hpread.c, infcmd.c, mdebugread.c: Ditto.
	* objfiles.c, objfiles.h, ocd.c, remote-es.c: Ditto.
	* remote-mips.c, remote-sds.c, remote-vx.c: Ditto.
	* solib-svr4.c, solib.c, stack.c, symfile.c, symfile.h: Ditto.
	* symmisc.c, v850ice.c, xcoffread.c, cli/cli-script.c: Ditto.

2003-01-17  Andrew Cagney  <ac131313@redhat.com>

	* main.c (captured_main): Don't use PTR.
	* cp-valprint.c (cp_print_class_method): Replace STREQ with strcmp.
	* gdbtypes.c (lookup_primitive_typename): Ditto.
	(lookup_struct_elt_type): Ditto.
	* f-valprint.c (info_common_command): Ditto.
	(list_all_visible_commons): Ditto.
	* jv-typeprint.c (java_type_print_base): Ditto.

	* config/djgpp/fnchange.lst: Rename mi1-var-block.exp,
	mi1-var-child.exp, mi1-var-cmd.exp and mi1-var-display.exp.
	Rename opcodes/iq2000-desc.c and opcodes/iq2000-dis.c.  Rename
	i386-interix-nat.c and i386-interix-tdep.c.  Rename
	m68klinux-nat.c and m68klinux-tdep.c.  Rename
	config/mips/tm-linux.h and config/mips/tm-linux64.h.  Rename
	bfd/po/.cvsignore and opcodes/po/.cvsignore.  Rename
	gdb/objc-exp.tab.c and gdb/ada-exp.tab.c
	* main.c (captured_main): Use xfree, not free.

2003-01-16  Andrew Cagney  <ac131313@redhat.com>

	* frame.h (frame_id_unwind_ftype): Change type so that the frame's
	ID back using a parameter.
	* frame.c (frame_id_unwind): Update call.
	(frame_saved_regs_id_unwind): Update.
	* dummy-frame.c (dummy_frame_id_unwind): Update function.
	* dummy-frame.h (struct frame_id): Add opaque declaration.
	(dummy_frame_id_unwind): Update declaration.

2003-01-15  Andrew Cagney  <ac131313@redhat.com>

	* sparc-tdep.c: Delete reference to PRINT_REGISTER_HOOK.

2003-01-15  Stephen P. Smith <ischis2@cox.net>

	* MAINTAINERS (Stephen P. Smith): Updated email address.

2003-01-14  Elena Zannoni  <ezannoni@redhat.com>

	Fix PR gdb/898
	* breakpoint.c (until_break_command): Add new argument.  Use it to
	decide whether to stop only at the current frame or not.
	* breakpoint.h (until_break_command): Update prototype.
	* infcmd.c (until_command): Add new argument to until_break_command
	call.
	(advance_command): New function.
	(_initialize_infcmd): Update help string for 'until' command.
	Add new 'advance' command.

2003-01-14  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_line_1): Normalize comments.
	(set_flags): Ditto.
	(locate_first_half): Ditto.
	(decode_compound): Ditto.
	(symtab_from_filename): Ditto.
	(decode_all_digits): Ditto.
	(decode_dollar): Ditto.
	(find_methods): Ditto.
	(find_toplevel_char): Ditto.

2003-01-13  Andrew Cagney  <ac131313@redhat.com>

	* ax-gdb.c, c-valprint.c, charset.c, corefile.c: Update copyright.
	* demangle.c, disasm.c, dwarf2cfi.c, dwarfread.c: Update copyright.
	* elfread.c, eval.c, expprint.c, expression.h: Update copyright.
	* f-typeprint.c, findvar.c, gcore.c, gdb_mbuild.sh: Update copyright.
	* gdbtypes.h, gnu-v2-abi.c, inferior.h, inftarg.c: Update copyright.
	* language.c, language.h, m32r-tdep.c: Update copyright.
	* mn10200-tdep.c, scm-lang.c, scm-lang.h: Update copyright.
	* somsolib.c, somsolib.h, symfile.c, symtab.h: Update copyright.
	* thread-db.c, typeprint.c, utils.c, valarith.c: Update copyright.
	* values.c, win32-nat.c, x86-64-linux-nat.c: Update copyright.
	* x86-64-linux-tdep.c, z8k-tdep.c: Update copyright.
	* cli/cli-decode.h, config/h8500/tm-h8500.h: Update copyright.

2003-01-13  Elena Zannoni  <ezannoni@redhat.com>

	* stabsread.h (process_later, resolve_cfront_continuation):
	Obsolete.
	Update copyright years.
	* buildsym.c (start_subfile): Obsolete comment pertinent to Cfront.
	Update copyright year.
	* dbxread.c(struct cont_elem): Obsolete.
	(process_later, process_now): Obsolete functions.
	(read_dbx_symtab, read_ofile_symtab): Obsolete cfront support.
	Update copyright year.
	* gdbtypes.c (INIT_EXTRA, ADD_EXTRA): Obsolete macros.
	(add_name, add_mangled_type, cfront_mangle_name): Obsolete functions.
	* mdebugread.c (parse_type): Obsolete comment pertinent to Cfront.
	(parse_partial_symbols): Obsolete cfront support.
	* stabsread.c
	(CFRONT_VISIBILITY_PRIVATE,CFRONT_VISIBILITY_PUBLIC): Obsolete
	macros.
	(get_substring, get_cfront_method_physname, msg_unknown_complaint,
	read_cfront_baseclasses, read_cfront_member_functions,
	resolve_cfront_continuation,read_cfront_static_fields,
	copy_cfront_struct_fields): Obsolete functions.
	(define_symbol, read_one_struct_field): Obsolete cfront support.
	* xcoffread.c (scan_xcoff_symtab): Obsolete CFront support.
	Update Copyright year.

2003-01-13  Elena Zannoni  <ezannoni@redhat.com>

	* stack.c (print_frame_info, print_stack_frame_base_stub,
	print_stack_frame_base, show_and_print_stack_frame_stub,
	show_and_print_stack_frame, print_only_stack_frame_stub,
	print_only_stack_frame): Delete functions.
	(print_stack_frame_stub): Call print_frame_info instead of
	print_frame_info_base.
	(print_frame_info_base): Rename to print_frame_info.
	(backtrace_command_1): Call print_frame_info, instead of
	print_frame_info_base.
	(current_frame_command): Call print_stack_frame, instead of
	print_only_stack_frame.
	(frame_command): Call print_stack_frame, instead of
	show_and_print_stack_frame.
	(up_command): Ditto.
	(down_command): Ditto.
	* frame.h (print_only_stack_frame): Delete prototype.
	* infrun.c (normal_stop): Call print_stack_frame, instead of
	show_and_print_stack_frame.
	* thread.c (info_threads_command): Call print_stack_frame, instead
	of print_only_stack_frame.

2003-01-13  Andrew Cagney  <ac131313@redhat.com>

	* README (Graphical interface to GDB): Update URL.  Point at
	gdb/links/.

	* gdb_indent.sh: Update to version 2.2.9.  Warn when not exact
	version match.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* symtab.c (find_pc_sect_line): Don't consider end-of-function
	lines.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* thread-db.c (attach_thread): Prototype.
	(struct private_thread_info): Remove lwpid.  Add thread handle (th),
	thread information (ti), and valid flags (th_valid, ti_valid).
	(attach_thread): Move target_pid_to_str call to after the thread
	is added to GDB's list.  Initialize the cache.
	(thread_get_info_callback, thread_db_map_id2thr)
	(thread_db_get_info): New functions.
	(thread_from_lwp, lwp_from_thread, thread_db_fetch_registers)
	(thread_db_store_registers, thread_db_thread_alive)
	(thread_db_get_thread_local_address): Use them.
	(thread_db_pid_to_str): Likewise.  Return "Missing" instead
	of calling error() for threads in unknown state.

	(clear_lwpid_callback): New function.
	(thread_db_resume): Use it to clear the cache.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* lin-lwp.c (struct private_thread_info, find_lwp_callback): Remove.
	(resume_callback): Remove dead code.

2003-01-13  Andrew Cagney  <ac131313@redhat.com>

	* gdbarch.sh (FRAME_INIT_SAVED_REGS): Change to function with
	predicate.
	* gdbarch.h, gdbarch.c: Regenerate.
	* stack.c (frame_info): Only initialize the saved registers when
	FRAME_INIT_SAVED_REGS_P.
	* frame.c (frame_saved_regs_register_unwind): Assert
	FRAME_INIT_SAVED_REGS_P.
	(deprecated_generic_get_saved_register): Ditto.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* source.c (openp): Squelch warning about "filename".

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* source.c (openp): If the file does not exist don't necessarily
	search the path.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/872.
	* gdbtypes.c (init_type): Mark "char" as TYPE_FLAG_NOSIGN.
	(integer_types_same_name_p): New function.
	(rank_one_type): Use it.
	* stabsread.c (read_range_type): Mark "char" as TYPE_FLAG_NOSIGN.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE): New
	variables.
	(main.o): Custom rule which uses $(TARGET_SYSTEM_ROOT_DEFINE).
	* configure.in: Add --with-sysroot.
	* configure: Regenerated.
	* main.c (gdb_sysroot): New variable.
	(captured_main): Initialize gdb_sysroot.
	* defs.h (gdb_sysroot): New extern declaration.
	* solib.c (_initialize_solib): Initialize solib_absolute_prefix.

2003-01-12  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: add gdb/ChangeLog-2002.

2003-01-12  Michael Chastain  <mec@shout.net>

	* top.c (print_gdb_version): Bump copyright year to 2003.

2003-01-12  David Carlton  <carlton@bactrian.org>

	* linespec.c (symtab_from_filename): Rename variable 's' to
	'file_symtab'.

2003-01-12  Andrew Cagney  <ac131313@redhat.com>

	* d10v-tdep.c (d10v_init_extra_frame_info): Remove checks for a
	dummy frame.
	(d10v_frame_saved_pc, d10v_frame_chain): Ditto.

2003-01-12  Andrew Cagney  <ac131313@redhat.com>

	* d10v-tdep.c: Include "gdb_assert.h".
	(d10v_store_return_value): Rewrite to match current interface.
	(d10v_extract_struct_value_address): Ditto.
	(d10v_extract_return_value): Ditto.
	(d10v_gdbarch_init): Set store_restore_value,
	extract_struct_value_address and extract_return_value.

2003-01-12  J. Brobecker  <brobecker@gnat.com>

	* hpread.c (set_namestring): New procedure replacing the
	SET_NAMESTRING macro.
	(hpread_build_psymtabs): Replace calls to SET_NAMESTRING
	by calls to set_namestring.

2003-01-11  J. Brobecker  <brobecker@gnat.com>

	* hpread.c (SET_NAMESTRING): Remove an incorrect cast to fix
	a compilation warning.
	(hpread_process_one_debug_symbol): Likewise.

2003-01-10  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_line_1): Rename variable 's' to
	'file_symtab'.
	(decode_all_digits): Rename argument 's' to 'file_symtab'.
	(decode_dollar): Ditto.
	(decode_variable): Ditto.
	(symbol_found): Ditto.

2003-01-09  Michael Chastain  <mec@shout.net>

	* config/djgpp/fnchange.lst: update file list for testsuite/gdb.c++.

2003-01-07  Corinna Vinschen  <vinschen@redhat.com>

	* win32-nat.c (set_process_privilege): New function.
	(child_attach): Call set_process_privilege() to enable the
	SE_DEBUG_NAME user privilege if available in process token.

2003-01-10  J. Brobecker  <brobecker@gnat.com>

	* hpread.c (hpread_process_one_debug_symbol): Fix a small
	compilation error in the previous revision.

2003-01-09  David Carlton  <carlton@math.stanford.edu>

	* linespec.c: Update copyright.

2003-01-09  Daniel Jacobowitz  <drow@mvista.com>

	* lin-lwp.c (child_wait): Ignore exit statuses for processes other
	than inferior_ptid.
	(lin_lwp_wait): Ignore exit statuses for unknown LWPs.

2003-01-09  Andrew Cagney  <ac131313@redhat.com>

	* frame.h (frame_obstack_zalloc): Replace frame_obstack_alloc.
	Update comments.
	* frame.c (frame_obstack_zalloc): Replace frame_obstack_alloc.
	(frame_saved_regs_zalloc): Update.
	(frame_saved_regs_register_unwind): Update.
	(create_new_frame): Update.
	(get_prev_frame): Update.
	(frame_extra_info_zalloc): Update.
	(deprecated_get_frame_saved_regs): Update.
	* dwarf2cfi.c (cfi_init_extra_frame_info): Update.
	* cris-tdep.c: Update comment.

	* somsolib.h: Fix function indentation.
	* disasm.c, buildsym.c, buildsym.h: Eliminate PTR.
	* gnu-v2-abi.c, f-typeprint.c, x86-64-linux-tdep.c: Eliminate STREQ.
	* demangle.c, ax-gdb.c, c-valprint.c: Eliminate STREQ.
	* alpha-osf1-tdep.c, corefile.c: Eliminate STREQ.
	* somsolib.c, inftarg.c: Remove assignment in if conditional.

	* infrun.c (follow_fork): Use ISO C definition.
	* expprint.c (print_subexp): Use xfree instead of free.
	* charset.c: Include "gdb_string.h" instead of <string.h>.
	(register_iconv_charsets): Use ISO C definition.
	(host_charset, target_charset): Ditto.
	* Makefile.in (charset.o): Update dependencies.
	(mi-cmd-env.o): Update dependencies.

2003-01-08  Andrew Cagney  <cagney@redhat.com>

	* alpha-linux-tdep.c (alpha_linux_sigcontext_addr): Use
	get_frame_base.

2003-01-08  Andrew Cagney  <ac131313@redhat.com>

	* gdb_mbuild.sh: Add --keep option.  When specified, keep the
	build directories.  Save edited gdb output in Mbuild.log.  If a
	build fails, remove any final GDB executable.

2003-01-08  Andrew Cagney  <ac131313@redhat.com>

	* gdb_mbuild.sh: Edit the output of `maint print architecture'
	replacing hex constants with function names and stripping leading
	file name directory prefixes.

2003-01-08  Andrew Cagney  <cagney@redhat.com>

	* gcore.c, i386-linux-tdep.c: Use get_frame_pc, get_next_frame and
	get_frame_base.

2003-01-08  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_line_1): Move code into decode_variable.
	(decode_variable): New function.

2003-01-08  Andrew Cagney  <ac131313@redhat.com>

	* mn10300-tdep.c (analyze_dummy_frame): Fix typo.

2003-01-08  Andrew Cagney  <cagney@redhat.com>

	* cris-tdep.c (cris_frame_init_saved_regs): Use
	get_frame_saved_regs and SIZEOF_FRAME_SAVED_REGS when copying a
	saved_regs buffer.
	* sh-tdep.c (sh_nofp_frame_init_saved_regs): Ditto.
	(sh64_nofp_frame_init_saved_regs): Ditto.
	(sh_fp_frame_init_saved_regs): Ditto.
	* arm-tdep.c: Use deprecated_set_frame_saved_regs_hack.
	* mips-tdep.c (mips_init_extra_frame_info): Ditto.
	* mcore-tdep.c (analyze_dummy_frame): Ditto.
	* mn10300-tdep.c (analyze_dummy_frame): Ditto.

2003-01-08  Daniel Jacobowitz  <drow@mvista.com>

	* minsyms.c (lookup_minimal_symbol): Update comment.
	(lookup_minimal_symbol_text): Update comment.  Use the hash table.
	(lookup_minimal_symbol_solib_trampoline): Likewise.

2003-01-08  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_init_extra_frame_info): Use
	frame_relative_level.

	* alpha-tdep.c: Use get_frame_extra_info.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* h8300-tdep.c, ia64-tdep.c, m68hc11-tdep.c, mcore-tdep.c: Ditto.
	* mips-tdep.c, mn10300-tdep.c, s390-tdep.c, sh-tdep.c: Ditto.
	* sparc-tdep.c, xstormy16-tdep.c: Ditto.

	* alpha-tdep.c: Use get_next_frame.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* dwarf2cfi.c, h8300-tdep.c, i386-tdep.c, ia64-tdep.c: Ditto.
	* m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c: Ditto.
	* mips-tdep.c, mn10200-tdep.c, mn10300-tdep.c: Ditto.
	* ns32k-tdep.c, s390-tdep.c, sh-tdep.c, sparc-tdep.c: Ditto.
	* v850-tdep.c, vax-tdep.c, x86-64-linux-tdep.c: Ditto.
	* xstormy16-tdep.c: Ditto.

2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* alpha-tdep.c: Use get_frame_base.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
	* m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
	* mn10300-tdep.c, ns32k-tdep.c, s390-tdep.c, sh-tdep.c: Ditto.
	* sparc-tdep.c, v850-tdep.c, vax-tdep.c: Ditto.
	* x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
	* config/h8500/tm-h8500.h, config/mn10200/tm-mn10200.h: Ditto.
	* config/sparc/tm-sparc.h: Ditto.

2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* frame.c (deprecated_get_frame_context): New function.
	(deprecated_set_frame_context): New function.
	* frame.h (deprecated_get_frame_context): Declare.
	(deprecated_set_frame_context): Declare.
	* dwarf2cfi.c (UNWIND_CONTEXT): Use deprecated_get_frame_context.
	(cfi_init_extra_frame_info): Use deprecated_set_frame_context.

2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* frame.c (deprecated_set_frame_next_hack): New function.
	(deprecated_set_frame_prev_hack): New function.
	* frame.h (deprecated_set_frame_next_hack): Declare.
	(deprecated_set_frame_prev_hack): Declare.
	* mcore-tdep.c (analyze_dummy_frame): Use
	deprecated_set_frame_next_hack and deprecated_set_frame_prev_hack.
	* mn10300-tdep.c (analyze_dummy_frame): Ditto.

2003-01-07  David Carlton  <carlton@math.stanford.edu>

	* linespec.c (decode_line_1): Move code into decode_dollar.
	(decode_dollar): New function.

2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* arm-tdep.c (arm_init_extra_frame_info): Use
	deprecated_update_frame_base_hack.
	* xstormy16-tdep.c (xstormy16_scan_prologue): Ditto.
	* mn10300-tdep.c (analyze_dummy_frame): Ditto.
	(fix_frame_pointer): Ditto.
	(mn10300_analyze_prologue): Ditto.

2003-01-07  Andrew Cagney  <cagney@redhat.com>

	* xstormy16-tdep.c (xstormy16_init_extra_frame_info): Allocate
	extra_info using frame_extra_info_zalloc.
	* sparc-tdep.c (sparc_init_extra_frame_info): Ditto.
	* sh-tdep.c (sh_init_extra_frame_info): Ditto.
	(sh64_init_extra_frame_info): Ditto.
	* mn10300-tdep.c (mn10300_init_extra_frame_info): Ditto.
	* s390-tdep.c (s390_init_extra_frame_info): Ditto.
	* mips-tdep.c (mips_init_extra_frame_info): Ditto.
	* mcore-tdep.c (mcore_init_extra_frame_info): Ditto.
	* frv-tdep.c (frv_init_extra_frame_info): Ditto.
	* m68hc11-tdep.c (m68hc11_init_extra_frame_info): Ditto.
	* ia64-tdep.c (ia64_init_extra_frame_info): Ditto.
	* h8300-tdep.c (h8300_init_extra_frame_info): Ditto.
	* d10v-tdep.c (d10v_init_extra_frame_info): Ditto.
	* cris-tdep.c (cris_init_extra_frame_info): Ditto.
	* arm-tdep.c (arm_init_extra_frame_info): Ditto.
	* alpha-tdep.c (alpha_init_extra_frame_info): Ditto.

	* mn10300-tdep.c (analyze_dummy_frame): Use
	deprecated_set_frame_extra_info_hack.
	* mcore-tdep.c (analyze_dummy_frame): Ditto.

2003-01-07  J. Brobecker  <brobecker@gnat.com>

	* mdebugread.c (parse_symbol): Skip stProc entries which storage
	class is not scText. These do not define "real" procedures.
	(parse_partial_symbols): Likewise.

2003-01-06  Michael Snyder  <msnyder@redhat.com>

	* lin-lwp.c: Added or elaborated on "debug lin-lwp" info.

2003-01-06  Andrew Cagney  <ac131313@redhat.com>

	* frame.h (deprecated_frame_xmalloc_with_cleanup): Declare.
	* frame.c (deprecated_frame_xmalloc_with_cleanup): New function.
	* arm-tdep.c (arm_frame_chain): Allocate caller_fi using
	deprecated_frame_xmalloc_with_cleanup.
	* m32r-tdep.c (m32r_virtual_frame_pointer): Allocate `fi' using
	deprecated_frame_xmalloc.
	* mcore-tdep.c (analyze_dummy_frame): Ditto for dummy.
	* mn10200-tdep.c (mn10200_frame_chain): Ditto for dummy_frame.

2003-01-06  Andrew Cagney  <cagney@redhat.com>

	* x86-64-linux-tdep.c: Include "osabi.h".
	* Makefile.in (x86-64-linux-tdep.o): Update dependencies.

	* sparc-tdep.c (sparc_dump_tdep): Fix typo, match -> mach.

2003-01-06  Andrew Cagney  <cagney@redhat.com>

	* MAINTAINERS (Target Instruction Set Architectures): Update
	arm-elf.  Can be built with -Werror, has been multiarched.

	* value.h (unpack_long): Make buffer parameter constant.
	(unpack_double, unpack_pointer, unpack_field_as_long): Ditto.
	* scm-lang.h (scm_parse): Ditto.
	* defs.h (extract_typed_address, extract_address): Ditto.
	(extract_long_unsigned_integer): Ditto.
	* inferior.h (unsigned_pointer_to_address): Ditto.
	(signed_pointer_to_address): Ditto.
	* gdbarch.sh (POINTER_TO_ADDRESS): Ditto.
	* gdbarch.h, gdbarch.c: Regenerate.
	* findvar.c (extract_long_unsigned_integer): Update.
	(extract_address): Update.
	(extract_typed_address): Update.
	(unsigned_pointer_to_address): Update.
	* values.c (unpack_long): Update.
	(unpack_double): Update.
	(unpack_pointer): Update.
	(unpack_field_as_long): Update.
	* d10v-tdep.c (d10v_pointer_to_address): Update.
	* avr-tdep.c (avr_pointer_to_address): Update.
	* scm-lang.c (scm_unpack): Update.
	* findvar.c (signed_pointer_to_address): Update.

2003-01-06  Michal Ludvig  <mludvig@suse.cz>

	* x86-64-linux-nat.c (i386_sse_regnum_p): Deleted. Not needed anymore
	since it is in i386-tdep.c.

2003-01-06  J. Brobecker  <brobecker@gnat.com>

	* alpha-tdep.c (alpha_gdbarch_init): Fix a small compilation
	failure introduced in the previous change.

2003-01-05  Michael Chastain  <mec@shout.net>

	* README: Remove references to deleted remote-*.c files:
	remote-adapt.c, remote-eb.c, remote-mm.c, remote-nindy.c,
	remote-nrom.c, remote-os9k.c, remote-udi.c.

2003-01-05  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_get_longjmp_target): Make usable on x86-64.
	* x86-64-tdep.c (x86_64_init_abi): Remove FIXME about
	i386_get_longjmp_target.

2003-01-05  Andrew Cagney  <ac131313@redhat.com>

	* arm-tdep.c (prologue_cache): Change to a pointer.
	(_initialize_arm_tdep): Allocate prologue_cache.
	(check_prologue_cache): Update.
	(save_prologue_cache): Update.
	(arm_gdbarch_init): Update.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* stabsread.c (update_method_name_from_physname): Call complaint()
	instead of error.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* arm-tdep.c (arm_frame_chain_valid):  Remove unnecessary test.
	* d10v-tdep.c (d10v_frame_chain_valid): Remove unnecessary tests.
	* hppa-tdep.c (hppa_frame_chain_valid): Remove unnecessary test.

	* blockframe.c: Include "gdbcmd.h" and "command.h".
	(backtrace_below_main): New variable.
	(file_frame_chain_valid, func_frame_chain_valid)
	(nonnull_frame_chain_valid, generic_file_frame_chain_valid)
	(generic_func_frame_chain_valid): Remove functions.
	(frame_chain_valid, do_flush_frames_sfunc): New functions.
	(_initialize_blockframe): New function.
	* Makefile.in (blockframe.o): Update dependencies.
	* frame.c (frame_saved_regs_id_unwind, get_prev_frame): Remove FIXME
	comment.  Call frame_chain_valid ().
	* frame.h: Remove old prototypes.  Add prototype for
	frame_chain_valid and update comments to match.
	* gdbarch.sh: Change FRAME_CHAIN_VALID into a predicated function.
	Remove old comment.
	* gdbarch.h: Regenerated.
	* gdbarch.c: Regenerated.

	* alpha-tdep.c (alpha_gdbarch_init): Don't call
	set_gdbarch_frame_chain_valid.
	* avr-tdep.c (avr_gdbarch_init): Likewise.
	* cris-tdep.c (cris_gdbarch_init): Likewise.
	* frv-tdep.c (frv_gdbarch_init): Likewise.
	* h8300-tdep.c (h8300_gdbarch_init): Likewise.
	* i386-tdep.c (i386_svr4_init_abi): Likewise.
	(i386_nw_init_abi): Likewise.
	(i386_gdbarch_init): Likewise.
	* ia64-tdep.c (ia64_gdbarch_init): Likewise.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Likewise.
	* m68k-tdep.c (m68k_gdbarch_init): Likewise.
	* mcore-tdep.c (mcore_gdbarch_init): Likewise.
	* mips-tdep.c (mips_gdbarch_init): Likewise.
	* mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
	* ns32k-tdep.c (ns32k_gdbarch_init): Likewise.
	* ppcnbsd-tdep.c (ppcnbsd_init_abi): Likewise.
	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
	* s390-tdep.c (s390_gdbarch_init): Likewise.
	* sh-tdep.c (sh_gdbarch_init): Likewise.
	* sparc-tdep.c (sparc_gdbarch_init): Likewise.
	* v850-tdep.c (v850_gdbarch_init): Likewise.
	* vax-tdep.c (vax_gdbarch_init): Likewise.
	* x86-64-tdep.c (x86_64_init_abi): Likewise.

	* config/m32r/tm-m32r.h (FRAME_CHAIN_VALID): Don't define.
	* config/m68k/tm-apollo68b.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-m68kv4.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-monitor.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-os68k.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-vx68.h (FRAME_CHAIN_VALID): Likewise.
	* config/mn10200/tm-mn10200.h (FRAME_CHAIN_VALID): Likewise.
	* config/sparc/tm-sparclite.h (FRAME_CHAIN_VALID): Likewise.

2002-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (acconfig_h): Remove incorrect macro.
	(config_h): Define.
	(osabi.o): Update dependencies.
	* configure.tgt: Set gdb_osabi based on target triplet.
	* configure.in: Define GDB_OSABI_DEFAULT based on gdb_osabi.
	* configure: Regenerated.
	* config.in: Regenerated.
	* osabi.c: Include "arch-utils.h", "gdbcmd.h", and "command.h".
	(GDB_OSABI_DEFAULT): Define if not already defined.
	(user_osabi_state, user_selected_osabi, gdb_osabi_available_names)
	(set_osabi_string): New variables.
	(gdbarch_register_osabi): Add new OS ABI to
	gdb_osabi_available_names.
	(gdbarch_lookup_osabi): Honor specified and default OS ABIs.
	(set_osabi, show_osabi): New functions.
	(_initialize_gdb_osabi): Add "set osabi" and "show osabi" commands.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* arch-utils.c (gdbarch_info_init): Set osabi to
	GDB_OSABI_UNINITIALIZED.
	* gdbarch.sh: Add osabi to struct gdbarch and to struct
	gdbarch_info.  Include "osabi.h" in gdbarch.c.  Check osabi
	in gdbarch_list_lookup_by_info and in gdbarch_update_p.
	* gdbarch.c: Regenerated.
	* gdbarch.h: Regenerated.
	* osabi.c (gdbarch_lookup_osabi): Return GDB_OSABI_UNINITIALIZED if
	there's no BFD.
	(gdbarch_init_osabi): Remove osabi argument; use info.osabi.
	* osabi.h (enum gdb_osabi): Move to defs.h.
	(gdbarch_init_osabi): Update prototype.
	* defs.h (enum gdb_osabi): Moved here.
	* Makefile.in: Update dependencies.

	* alpha-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* alpha-tdep.c: Include "osabi.h".
	(alpha_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(alpha_dump_tdep): Don't dump osabi.
	* alpha-linux-tdep.c: Include "osabi.h".
	* alpha-osf1-tdep.c: Include "osabi.h".
	* alphafbsd-tdep.c: Include "osabi.h".
	* alphanbsd-tdep.c: Include "osabi.h".

	* arm-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* arm-tdep.c: Include "osabi.h".
	(arm_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(arm_dump_tdep): Don't dump osabi.
	* arm-linux-tdep.c: Include "osabi.h".
	* armnbsd-tdep.c: Include "osabi.h".

	* hppa-tdep.c (hppa_gdbarch_init): Don't call gdbarch_lookup_osabi.
	Update call to gdbarch_init_osabi.

	* i386-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* i386-tdep.c: Include "osabi.h".
	(i386_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(i386_dump_tdep): Don't dump osabi.
	* i386-linux-tdep.c: Include "osabi.h".
	* i386-sol2-tdep.c: Include "osabi.h".
	* i386bsd-tdep.c: Include "osabi.h".
	* i386gnu-tdep.c: Include "osabi.h".
	* i386ly-tdep.c: Include "osabi.h".
	* i386nbsd-tdep.c: Include "osabi.h".
	* i386obsd-tdep.c: Include "osabi.h".

	* mips-tdep.c (struct gdbarch_tdep): Remove osabi member.
	(mips_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	check osabi when iterating over arches.  Update call to
	gdbarch_init_osabi.
	(mips_dump_tdep): Don't dump osabi.

	* ns32k-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove.
	* ns32k-tdep.c (ns32k_gdbarch_init): Don't call
	gdbarch_lookup_osabi.  Don't iterate over arches.  Don't
	allocate tdep.  Update call to gdbarch_init_osabi.
	(ns32k_dump_tdep): Remove.
	(_initialize_ns32k_tdep): Update call to gdbarch_register.
	* ns32knbsd-tdep.c: Include "osabi.h".

	* ppc-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* rs6000-tdep.c: Include "osabi.h".
	(rs6000_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't check
	osabi when iterating over arches.  Update call to
	gdbarch_init_osabi.
	(rs6000_dump_tdep): Don't dump osabi.
	* ppc-linux-tdep.c: Include "osabi.h".
	* ppcnbsd-tdep.c: Include "osabi.h".

	* sh-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* sh-tdep.c: Include "osabi.h".
	(sh_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(sh_dump_tdep): Don't dump osabi.
	* shnbsd-tdep.c: Include "osabi.h".

	* sparc-tdep.c: Include "osabi.h".
	(sparc_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(sparc_dump_tdep): Don't dump osabi.  Do dump the rest of the
	tdep structure.

	* vax-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove.
	* vax-tdep.c: Include "osabi.h".
	(vax_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Don't allocate tdep.  Update call
	to gdbarch_init_osabi.
	(vax_dump_tdep): Remove.
	(_initialize_vax_tdep): Update call to gdbarch_register.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (insert_breakpoints): Skip disabled breakpoints
	entirely.
	(breakpoint_re_set_one): Don't fetch the value for a disabled
	watchpoint.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* buildsym.h (processing_hp_compilation): Remove obsolete variable.
	* gdbarch.sh Remove include of "value.h" in gdbarch.h.
	(COERCE_FLOAT_TO_DOUBLE): Remove.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* Makefile.in: Remove value_h from gdbarch_h.
	* valops.c (coerce_float_to_double): New variable.
	(default_coerce_float_to_double): Remove.
	(standard_coerce_float_to_double): Remove.
	(value_arg_coerce): Use coerce_float_to_double.
	(_initialize_valops): Add "set coerce-float-to-double".
	* value.h (default_coerce_float_to_double): Remove prototype.
	(standard_coerce_float_to_double): Remove prototype.

	* hpread.c (hpread_process_one_debug_symbol): Mark C++ functions as
	prototyped.
	* mdebugread.c (parse_symbol): Likewise.
	* stabsread.c (define_symbol): Mark all functions as prototyped.

	* hppa-tdep.c (hppa_coerce_float_to_double): Remove.
	* alpha-tdep.c (alpha_gdbarch_init): Remove call to
	set_gdbarch_coerce_float_to_double.
	* arm-tdep.c (arm_gdbarch_init): Likewise.
	* frv-tdep.c (frv_gdbarch_init): Likewise.
	* h8300-tdep.c (h8300_gdbarch_init): Likewise (commented out).
	* i386-sol2-tdep.c (i386_sol2_init_abi): Likewise.
	* mips-tdep.c (mips_gdbarch_init): Likewise.
	(mips_coerce_float_to_double): Remove.
	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
	(rs6000_coerce_float_to_double): Remove.
	* s390-tdep.c (s390_gdbarch_init): Likewise.
	* sh-tdep.c (sh_gdbarch_init): Likewise.
	(sh_coerce_float_to_double): Remove.
	* sparc-tdep.c (sparc_gdbarch_init): Likewise.
	(sparc_coerce_float_to_double): Remove.
	* v850-tdep.c (v850_gdbarch_init): Likewise.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
	* config/m32r/tm-m32r.h (COERCE_FLOAT_TO_DOUBLE): Remove.
	* config/pa/tm-hppa.h: (COERCE_FLOAT_TO_DOUBLE): Remove.
	(hppa_coerce_float_to_double): Remove prototype.
	* config/sparc/tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Remove.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* regformats/reg-m68k.dat: Remove fpcode and fpflags.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	Suggested by Stewart Brown <sb24@avaya.com>:
	* c-typeprint.c (c_type_print_varspec_prefix): Pass value of show
	in recursive calls.  Handle TYPE_CODE_TYPEDEF.
	(c_type_print_varspec_suffix): Likewise.

2003-01-04  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Don't set and AC_SUBST SUBDIRS.
	* configure: Regenerated.

	* configure.in: Remove code dealing with shared libraries.
	* Makefile.in: Remove HLDFLAGS and HLDENV.
	* configure: Regenerated.

2003-01-04  Andrew Cagney  <ac131313@redhat.com>

	* frame.c (deprecated_frame_xmalloc): New function.
	(deprecated_set_frame_saved_regs_hack): New function.
	(deprecated_set_frame_extra_info_hack): New function.
	* frame.h (deprecated_frame_xmalloc): Declare.
	(deprecated_set_frame_saved_regs_hack): Declare.
	(deprecated_set_frame_extra_info_hack): Declare.

2003-01-04  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Move code that provides the --enable-gdbtk option
	right after the code that handles the --enable-tui option, and
	polish it somewhat.
	* configure: Regenerated.

	* configure.in: Call AC_GNU_SOURCE.  Check for pread64 using
	AC_CHECK_FUNCS and remove the old check for pread64.
	* acinclude.m4 (AC_GNU_SOURCE): New macro.
	* acconfig.h (_GNU_SOURCE): Add.
	(HAVE_PREAD64): Remove.
	* configure, aclocal.m4, config.in: Regenerated.

2003-01-03  Andrew Cagney  <ac131313@redhat.com>

	* alpha-tdep.c: Use get_frame_saved_regs.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
	* m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10300-tdep.c: Ditto.
	* ns32k-tdep.c, s390-tdep.c, sh-tdep.c, v850-tdep.c: Ditto.
	* vax-tdep.c, xstormy16-tdep.c: Ditto.

2003-01-03  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Remove all use of the SUBDIRS variable; add
	directories using the AC_CONFIG_SUBDIRS macro instead.  Polish
	code providing the --enable-multi-ice option, and move it right in
	front of the code that checks whether gdbserver is supported.
	Polish that too.
	* configure: Regenerated.
	* Makefile.in (SUBDIRS): Substitute @subdirs@ instead of
	@SUBDIRS@.

2003-01-03  Andrew Cagney  <cagney@redhat.com>

	* alpha-tdep.c: Use deprecated_update_frame_base_hack.
	* avr-tdep.c, cris-tdep.c: Ditto.
	* mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
	* sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.

2003-01-03  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Remove --enable-netrom option.
	* configure: Regenerated.

2003-01-03  Mark Kettenis  <kettenis@gnu.org>

	* cli/cli-decode.h: Don't include "gdb_regex.h"; provide a forward
	declaration for `struct re_pattern_buffer' instead.
	* Makefile.in (cli_decode_h): Remove $(gdb_regex_h).

2003-01-03  J. Brobecker  <brobecker@gnat.com>

	* mdebugread.c (parse_symbol): Count until the stEnd matching
	the structure name.

2003-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Remove --with-cpu option.
	subscripts.  Remove evil changequotes here.
	* acconfig.h (TARGET_CPU_DEFAULT): Remove.
	* config.in, configure: Regenerated.

	* acconfig.h (DEFAULT_BFD_ARCH, DEFAULT_BFD_VEC): Remove.
	* configure.in: Cleanup section that sources GDB and BFD configure
	subscripts.  Remove evil changequotes here.
	* config.in, configure: Regenerated.

2003-01-02  Andrew Cagney  <ac131313@redhat.com>

	* arm-tdep.c: Use get_frame_pc and deprecated_update_frame_pc_hack
	frame accessor methods.
	* alpha-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* dwarf2cfi.c, h8300-tdep.c, i386-tdep.c, ia64-tdep.c: Ditto.
	* m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c, mips-tdep.c: Ditto.
	* mn10200-tdep.c, mn10300-tdep.c, ns32k-tdep.c: Ditto.
	* s390-tdep.c, sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.
	* vax-tdep.c, x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
	* z8k-tdep.c: Ditto.

2003-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Remove UI_OUT configuration code.
	* ada-lang.c: Update assuming UI_OUT is always true.
	* Makefile.in (UIOUT_CFLAGS): Remove.
	* configure: Regenerated.
	* TODO: Remove blurb about elimination of -DUI_OUT.

	* configure.in: Move code that provides the --enable-gdbcli,
	--enable-gdbmi options right before the code that handles the
	--enable-tui option.  Polish a bit.
	* configure: Regenerated.

	* configure.in: Rewrite check for GNU regex and the
	--without-included regex option, and move it into the "Checks for
	library functions" section.  This makes us use the system regex
	again by default on systems with version 2 of the GNU C library.
	This was apparently broken.
	* gdb_regex.h [!USE_INCLUDED_REGEX] (_REGEX_RE_COMP): Define.
	* acconfig.h (USE_INCLUDED_REGEX): Remove.
	* config.in, configure: Regenerated.

	* configure.in: Move code that provides the --enable-tui option
	before the "Checks for libraries" section.  Polish the code
	somewhat and set need_curses to yes if we build the TUI.  Rewrite
	code that looks for a library providing termcap functionality to
	match more closely what's done in the Readline library, and move
	it into to the "Checks for libraries" section.
	* configure: Regenerated.
	* Makefile.in (TERMCAP): Remove variable.
	* config/i386/go32.mh (TERMCAP): Remove variable.

2003-01-02  Andrew Cagney  <ac131313@redhat.com>

	* MAINTAINERS: Mention gdb_mbuild.sh.
	* gdb_mbuild.sh: Rewrite.

2003-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Fix typo in last change.
	* config.in, configure: Regenerated.

2003-01-02  Andrew Cagney  <ac131313@redhat.com>

	* valarith.c (value_binop): Delete obsolete code and comments.
	* configure.host: Ditto.
	* buildsym.h (make_blockvector): Ditto.
	* buildsym.c (make_blockvector): Ditto.
	* defs.h (enum language): Ditto.
	(chill_demangle): Ditto.
	* elfread.c (elf_symtab_read): Ditto.
	* dwarfread.c (CHILL_PRODUCER): Ditto.
	(set_cu_language): Ditto.
	(handle_producer): Ditto.
	* expprint.c (print_subexp): Ditto.
	* gdbtypes.c (chill_varying_type): Ditto.
	* gdbtypes.h (builtin_type_chill_bool): Ditto.
	(builtin_type_chill_char, builtin_type_chill_long): Ditto.
	(builtin_type_chill_ulong, builtin_type_chill_real): Ditto.
	(chill_varying_type): Ditto.
	* language.h (_LANG_chill): Ditto.
	* language.c (binop_result_type, integral_type): Ditto.
	(character_type, string_type, structured_type): Ditto.
	(lang_bool_type, binop_type_check): Ditto.
	* stabsread.h (os9k_stabs): Ditto.
	* stabsread.c (os9k_type_vector, dbx_lookup_type): Ditto.
	(define_symbol, read_type, read_struct_fields): Ditto.
	(read_array_type, read_enum_type, read_huge_number): Ditto.
	(read_range_type, start_stabs): Ditto.
	* symfile.c (init_filename_language_table): Ditto.
	(add_psymbol_with_dem_name_to_list): Ditto.
	* symtab.c (symbol_init_language_specific): Ditto.
	(symbol_init_demangled_name, symbol_demangled_name): Ditto.
	* symtab.h (struct general_symbol_info): Ditto.
	(SYMBOL_CHILL_DEMANGLED_NAME): Ditto.
	* typeprint.c (typedef_print): Ditto.
	* utils.c (fprintf_symbol_filtered): Ditto.
	* valops.c (value_cast, search_struct_field, value_slice): Delete
	obsolete code.
	(varying_to_slice): Delete function.
	* value.h (COERCE_VARYING_ARRAY): Delete obsolete macro contents.
	(varying_to_slice): Delete declaration.
	* MAINTAINERS: Update.

2003-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Reorganize "Checks for library functions section"
	a bit.  Remove check for `btowc' and `isascii' functions.
	* configure: Regenerated.

	* acconfig.h (_MSE_INT_H): Remove.
	* configure.in: Create "Checks for header files" section, and move
	appropriate tests there.  Don't check for objlist.h, wchar.h,
	wctype.h and asm/debugreg.h.  Rewrite Solaris 2.[78] <curses.h>
	misdetection fix.  Also add "Checks for types", "Checks for
	compiler characteristics" and "Checks for library functions"
	sections.
	* config.in, configure: Regenerated.

	* configure.in: Create "Checks for programs" section, and move
	appropriate tests there.

2003-01-01  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Create "Checks for libraries" section, and move
	appropriate tests there.  Cleanup check for wctype in libw.  Use
	AC_SEARCH_LIBS to see whether we need libsocket.
	* configure: Regenerated.

For older changes see ChangeLog-2002

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
