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>

	* gdb/config/h8300/tm-h8300.h (h8300_normal_mode): Add external
	declaration.
	* gdb/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>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* frame.h (get_frame_locals_address, get_frame_args_address):
	Refer to the base address, instead of the address of the first
	local or parameter.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* d10v-tdep.c (d10v_gdbarch_init): Do not set call_dummy_words or
	sizeof_call_dummy_words.
	* gdbarch.sh (CALL_DUMMY_WORDS, SIZEOF_CALL_DUMMY_WORDS): Always
	define.
	* gdbarch.h: Regenerate.

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS (write after approval): Add myself.

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

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

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

	* regcache.c (write_sp): Delete function and references.
	* inferior.h (write_sp): Delete declaration.
	* valops.c (hand_function_call): Replace write_sp with
	TARGET_WRITE_SP.
	* sparc-tdep.c (sparc_push_dummy_frame): Ditto.
	(sparc_pop_frame): Ditto.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS (tui): Maintainer of tui code.

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

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

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

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

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

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

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

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

	Continuing work to convert the hppa targets to multiarch partial.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS: Remove my name from several maintainership roles.

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

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

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

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

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

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

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

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

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

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

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

	* gdbarch.sh (DEPRECATED_GET_SAVED_REGISTER): Replace
	GET_SAVED_REGISTER.
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame.h: Update comments.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* x86-64-tdep.c (x86_64_init_abi): Update.
	* sparc-tdep.c (sparc_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* frame.c (frame_register): Update.
	(get_saved_register): Update.
	* config/sparc/tm-sparc.h (DEPRECATED_GET_SAVED_REGISTER): Update.

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

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

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

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

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

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

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

	* MAINTAINERS (write after approval): Add myself.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdbarch.h: Re-generate.

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

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

	* gdbarch.sh (save_dummy_frame_tos): Add comment.

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

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

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

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

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

	* gdbarch.sh: Don't generate two macro definitions when an
	undefined macro taking no arguments.
	* gdbarch.h: Regenerate.

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

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

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

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

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

	* d10v-tdep.c (d10v_unwind_dummy_id): New function.
	(d10v_gdbarch_init): Set unwind_dummy_id and save_dummy_frame_tos.
	* frame.c (get_prev_frame): Restructure the frame ID unwind code
	to use unwind_dummy_id when a dummy frame.
	* gdbarch.sh (unwind_dummy_id): New multi-arch method with
	predicate.
	* gdbarch.h, gdbarch.c: Regneerate.

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

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

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

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

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

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

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

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

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

	* Makefile.in (FLAGS_TO_PASS): Add LDFLAGS.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* main.c (captured_main): Add OPT_WINDOWS and OPT_NOWINDOWS to
	option enum and switch.  When no windows, set the interpreter to
	INTERP_CONSOLE.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* observer.c: Minor comments edits.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* configure: Regenerate with autoconf 000227.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS: Add myself to Write After section.

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

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

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

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

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

	* MAINTAINERS: Update my email address.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* configure.in (Makefile): Use the test ${target} != ${host},
	instead of the absence of the "nm.h" file, to determine of the
	configuration non-native.
	* configure: Regenerate.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* dwarf2cfi.c: Reindented.

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

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

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

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

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

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

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

	* sol-thread.c, hpux-thread.c: Include "gdb_stat.h" instead of
	<sys/stat.h>.
	* Makefile.in (sol-thread.o, hpux-thread.o): Update dependencies.

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

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

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

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

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

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

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

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

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

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

	* remote-e7000.c (e7000_drain_command): Fix precedence problem with
	'=' and '!='.
	* rdi-share/ardi.c (wait_for_debug_message): Fix precedence problem
	with '&' and '=='.
	(angel_RDI_info): Ditto.
	* infttrace.c (threads_continue_all_but_one): Fix precedence problem
	with '&' and '!='.
	(threads_continue_all_with_signals): Ditto.

2003-02-05  Jim Ingham <jingham@apple.com>
	    Keith Seitz  <keiths@redhat.com>
	    Elena Zannoni  <ezannoni@redhat.com>
	    Andrew Cagney  <ac131313@redhat.com>

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

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

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

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

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

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

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

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

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

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

	* NEWS: Fix typo: sepcifying -> specifying.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* defs.h (host_pointer_to_address): Delete declaration.
	(address_to_host_pointer): Delete declaration.
	* utils.c (host_pointer_to_address): Delete function.
	(address_to_host_pointer): Delete function.
	* procfs.c (procfs_address_to_host_pointer): New function.
	* procfs.c (proc_set_watchpoint): Use.
	(procfs_can_use_hw_breakpoint): Update comments.
	* somsolib.c (hpux_address_to_host_pointer_hack): New function.
	(som_solib_add): Use.
	* hppa-tdep.c (hppa_pointer_to_address_hack): New function.
	* hppa-tdep.c (unwind_command): Use.

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

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

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

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

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

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

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

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

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

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

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

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

	* dwarf2read.c (dwarf2_locate_sections): Set
	dwarf_ranges_section.

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

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

	* utils.c: Re-indent.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* Add sh2e support:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* linespec.c: Update copyright.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* alpha-tdep.c: Use get_next_frame.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* dwarf2cfi.c, h8300-tdep.c, i386-tdep.c, ia64-tdep.c: Ditto.
	* m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c: Ditto.
	* mips-tdep.c, mn10200-tdep.c, mn10300-tdep.c: Ditto.
	* ns32k-tdep.c, s390-tdep.c, sh-tdep.c, sparc-tdep.c: Ditto.
	* v850-tdep.c, vax-tdep.c, x86-64-linux-tdep.c: Ditto.
	* xstormy16-tdep.c: Ditto.

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

	* alpha-tdep.c: Use get_frame_base.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
	* m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
	* mn10300-tdep.c, ns32k-tdep.c, s390-tdep.c, sh-tdep.c: Ditto.
	* sparc-tdep.c, v850-tdep.c, vax-tdep.c: Ditto.
	* x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
	* config/h8500/tm-h8500.h, config/mn10200/tm-mn10200.h: Ditto.
	* config/sparc/tm-sparc.h: Ditto.

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

	* frame.c (deprecated_get_frame_context): New function.
	(deprecated_set_frame_context): New function.
	* frame.h (deprecated_get_frame_context): Declare.
	(deprecated_set_frame_context): Declare.
	* dwarf2cfi.c (UNWIND_CONTEXT): Use deprecated_get_frame_context.
	(cfi_init_extra_frame_info): Use deprecated_set_frame_context.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* alpha-tdep.c (alpha_gdbarch_init): Fix a small compilation
	failure introduced in the previous change.

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

	* README: Remove references to deleted remote-*.c files:
	remote-adapt.c, remote-eb.c, remote-mm.c, remote-nindy.c,
	remote-nrom.c, remote-os9k.c, remote-udi.c.

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

	* i386-tdep.c (i386_get_longjmp_target): Make usable on x86-64.
	* x86-64-tdep.c (x86_64_init_abi): Remove FIXME about
	i386_get_longjmp_target.

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

	* arm-tdep.c (prologue_cache): Change to a pointer.
	(_initialize_arm_tdep): Allocate prologue_cache.
	(check_prologue_cache): Update.
	(save_prologue_cache): Update.
	(arm_gdbarch_init): Update.

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

	* stabsread.c (update_method_name_from_physname): Call complaint()
	instead of error.

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

	* arm-tdep.c (arm_frame_chain_valid):  Remove unnecessary test.
	* d10v-tdep.c (d10v_frame_chain_valid): Remove unnecessary tests.
	* hppa-tdep.c (hppa_frame_chain_valid): Remove unnecessary test.

	* blockframe.c: Include "gdbcmd.h" and "command.h".
	(backtrace_below_main): New variable.
	(file_frame_chain_valid, func_frame_chain_valid)
	(nonnull_frame_chain_valid, generic_file_frame_chain_valid)
	(generic_func_frame_chain_valid): Remove functions.
	(frame_chain_valid, do_flush_frames_sfunc): New functions.
	(_initialize_blockframe): New function.
	* Makefile.in (blockframe.o): Update dependencies.
	* frame.c (frame_saved_regs_id_unwind, get_prev_frame): Remove FIXME
	comment.  Call frame_chain_valid ().
	* frame.h: Remove old prototypes.  Add prototype for
	frame_chain_valid and update comments to match.
	* gdbarch.sh: Change FRAME_CHAIN_VALID into a predicated function.
	Remove old comment.
	* gdbarch.h: Regenerated.
	* gdbarch.c: Regenerated.

	* alpha-tdep.c (alpha_gdbarch_init): Don't call
	set_gdbarch_frame_chain_valid.
	* avr-tdep.c (avr_gdbarch_init): Likewise.
	* cris-tdep.c (cris_gdbarch_init): Likewise.
	* frv-tdep.c (frv_gdbarch_init): Likewise.
	* h8300-tdep.c (h8300_gdbarch_init): Likewise.
	* i386-tdep.c (i386_svr4_init_abi): Likewise.
	(i386_nw_init_abi): Likewise.
	(i386_gdbarch_init): Likewise.
	* ia64-tdep.c (ia64_gdbarch_init): Likewise.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Likewise.
	* m68k-tdep.c (m68k_gdbarch_init): Likewise.
	* mcore-tdep.c (mcore_gdbarch_init): Likewise.
	* mips-tdep.c (mips_gdbarch_init): Likewise.
	* mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
	* ns32k-tdep.c (ns32k_gdbarch_init): Likewise.
	* ppcnbsd-tdep.c (ppcnbsd_init_abi): Likewise.
	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
	* s390-tdep.c (s390_gdbarch_init): Likewise.
	* sh-tdep.c (sh_gdbarch_init): Likewise.
	* sparc-tdep.c (sparc_gdbarch_init): Likewise.
	* v850-tdep.c (v850_gdbarch_init): Likewise.
	* vax-tdep.c (vax_gdbarch_init): Likewise.
	* x86-64-tdep.c (x86_64_init_abi): Likewise.

	* config/m32r/tm-m32r.h (FRAME_CHAIN_VALID): Don't define.
	* config/m68k/tm-apollo68b.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-m68kv4.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-monitor.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-os68k.h (FRAME_CHAIN_VALID): Likewise.
	* config/m68k/tm-vx68.h (FRAME_CHAIN_VALID): Likewise.
	* config/mn10200/tm-mn10200.h (FRAME_CHAIN_VALID): Likewise.
	* config/sparc/tm-sparclite.h (FRAME_CHAIN_VALID): Likewise.

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

	* Makefile.in (acconfig_h): Remove incorrect macro.
	(config_h): Define.
	(osabi.o): Update dependencies.
	* configure.tgt: Set gdb_osabi based on target triplet.
	* configure.in: Define GDB_OSABI_DEFAULT based on gdb_osabi.
	* configure: Regenerated.
	* config.in: Regenerated.
	* osabi.c: Include "arch-utils.h", "gdbcmd.h", and "command.h".
	(GDB_OSABI_DEFAULT): Define if not already defined.
	(user_osabi_state, user_selected_osabi, gdb_osabi_available_names)
	(set_osabi_string): New variables.
	(gdbarch_register_osabi): Add new OS ABI to
	gdb_osabi_available_names.
	(gdbarch_lookup_osabi): Honor specified and default OS ABIs.
	(set_osabi, show_osabi): New functions.
	(_initialize_gdb_osabi): Add "set osabi" and "show osabi" commands.

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

	* arch-utils.c (gdbarch_info_init): Set osabi to
	GDB_OSABI_UNINITIALIZED.
	* gdbarch.sh: Add osabi to struct gdbarch and to struct
	gdbarch_info.  Include "osabi.h" in gdbarch.c.  Check osabi
	in gdbarch_list_lookup_by_info and in gdbarch_update_p.
	* gdbarch.c: Regenerated.
	* gdbarch.h: Regenerated.
	* osabi.c (gdbarch_lookup_osabi): Return GDB_OSABI_UNINITIALIZED if
	there's no BFD.
	(gdbarch_init_osabi): Remove osabi argument; use info.osabi.
	* osabi.h (enum gdb_osabi): Move to defs.h.
	(gdbarch_init_osabi): Update prototype.
	* defs.h (enum gdb_osabi): Moved here.
	* Makefile.in: Update dependencies.

	* alpha-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* alpha-tdep.c: Include "osabi.h".
	(alpha_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(alpha_dump_tdep): Don't dump osabi.
	* alpha-linux-tdep.c: Include "osabi.h".
	* alpha-osf1-tdep.c: Include "osabi.h".
	* alphafbsd-tdep.c: Include "osabi.h".
	* alphanbsd-tdep.c: Include "osabi.h".

	* arm-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* arm-tdep.c: Include "osabi.h".
	(arm_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(arm_dump_tdep): Don't dump osabi.
	* arm-linux-tdep.c: Include "osabi.h".
	* armnbsd-tdep.c: Include "osabi.h".

	* hppa-tdep.c (hppa_gdbarch_init): Don't call gdbarch_lookup_osabi.
	Update call to gdbarch_init_osabi.

	* i386-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* i386-tdep.c: Include "osabi.h".
	(i386_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(i386_dump_tdep): Don't dump osabi.
	* i386-linux-tdep.c: Include "osabi.h".
	* i386-sol2-tdep.c: Include "osabi.h".
	* i386bsd-tdep.c: Include "osabi.h".
	* i386gnu-tdep.c: Include "osabi.h".
	* i386ly-tdep.c: Include "osabi.h".
	* i386nbsd-tdep.c: Include "osabi.h".
	* i386obsd-tdep.c: Include "osabi.h".

	* mips-tdep.c (struct gdbarch_tdep): Remove osabi member.
	(mips_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	check osabi when iterating over arches.  Update call to
	gdbarch_init_osabi.
	(mips_dump_tdep): Don't dump osabi.

	* ns32k-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove.
	* ns32k-tdep.c (ns32k_gdbarch_init): Don't call
	gdbarch_lookup_osabi.  Don't iterate over arches.  Don't
	allocate tdep.  Update call to gdbarch_init_osabi.
	(ns32k_dump_tdep): Remove.
	(_initialize_ns32k_tdep): Update call to gdbarch_register.
	* ns32knbsd-tdep.c: Include "osabi.h".

	* ppc-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* rs6000-tdep.c: Include "osabi.h".
	(rs6000_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't check
	osabi when iterating over arches.  Update call to
	gdbarch_init_osabi.
	(rs6000_dump_tdep): Don't dump osabi.
	* ppc-linux-tdep.c: Include "osabi.h".
	* ppcnbsd-tdep.c: Include "osabi.h".

	* sh-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove osabi member.
	* sh-tdep.c: Include "osabi.h".
	(sh_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(sh_dump_tdep): Don't dump osabi.
	* shnbsd-tdep.c: Include "osabi.h".

	* sparc-tdep.c: Include "osabi.h".
	(sparc_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Update call to gdbarch_init_osabi.
	(sparc_dump_tdep): Don't dump osabi.  Do dump the rest of the
	tdep structure.

	* vax-tdep.h: Don't include "osabi.h".
	(struct gdbarch_tdep): Remove.
	* vax-tdep.c: Include "osabi.h".
	(vax_gdbarch_init): Don't call gdbarch_lookup_osabi.  Don't
	iterate over arches.  Don't allocate tdep.  Update call
	to gdbarch_init_osabi.
	(vax_dump_tdep): Remove.
	(_initialize_vax_tdep): Update call to gdbarch_register.

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

	* breakpoint.c (insert_breakpoints): Skip disabled breakpoints
	entirely.
	(breakpoint_re_set_one): Don't fetch the value for a disabled
	watchpoint.

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

	* buildsym.h (processing_hp_compilation): Remove obsolete variable.
	* gdbarch.sh Remove include of "value.h" in gdbarch.h.
	(COERCE_FLOAT_TO_DOUBLE): Remove.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* Makefile.in: Remove value_h from gdbarch_h.
	* valops.c (coerce_float_to_double): New variable.
	(default_coerce_float_to_double): Remove.
	(standard_coerce_float_to_double): Remove.
	(value_arg_coerce): Use coerce_float_to_double.
	(_initialize_valops): Add "set coerce-float-to-double".
	* value.h (default_coerce_float_to_double): Remove prototype.
	(standard_coerce_float_to_double): Remove prototype.

	* hpread.c (hpread_process_one_debug_symbol): Mark C++ functions as
	prototyped.
	* mdebugread.c (parse_symbol): Likewise.
	* stabsread.c (define_symbol): Mark all functions as prototyped.

	* hppa-tdep.c (hppa_coerce_float_to_double): Remove.
	* alpha-tdep.c (alpha_gdbarch_init): Remove call to
	set_gdbarch_coerce_float_to_double.
	* arm-tdep.c (arm_gdbarch_init): Likewise.
	* frv-tdep.c (frv_gdbarch_init): Likewise.
	* h8300-tdep.c (h8300_gdbarch_init): Likewise (commented out).
	* i386-sol2-tdep.c (i386_sol2_init_abi): Likewise.
	* mips-tdep.c (mips_gdbarch_init): Likewise.
	(mips_coerce_float_to_double): Remove.
	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
	(rs6000_coerce_float_to_double): Remove.
	* s390-tdep.c (s390_gdbarch_init): Likewise.
	* sh-tdep.c (sh_gdbarch_init): Likewise.
	(sh_coerce_float_to_double): Remove.
	* sparc-tdep.c (sparc_gdbarch_init): Likewise.
	(sparc_coerce_float_to_double): Remove.
	* v850-tdep.c (v850_gdbarch_init): Likewise.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
	* config/m32r/tm-m32r.h (COERCE_FLOAT_TO_DOUBLE): Remove.
	* config/pa/tm-hppa.h: (COERCE_FLOAT_TO_DOUBLE): Remove.
	(hppa_coerce_float_to_double): Remove prototype.
	* config/sparc/tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Remove.

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

	* regformats/reg-m68k.dat: Remove fpcode and fpflags.

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

	Suggested by Stewart Brown <sb24@avaya.com>:
	* c-typeprint.c (c_type_print_varspec_prefix): Pass value of show
	in recursive calls.  Handle TYPE_CODE_TYPEDEF.
	(c_type_print_varspec_suffix): Likewise.

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

	* configure.in: Don't set and AC_SUBST SUBDIRS.
	* configure: Regenerated.

	* configure.in: Remove code dealing with shared libraries.
	* Makefile.in: Remove HLDFLAGS and HLDENV.
	* configure: Regenerated.

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

	* frame.c (deprecated_frame_xmalloc): New function.
	(deprecated_set_frame_saved_regs_hack): New function.
	(deprecated_set_frame_extra_info_hack): New function.
	* frame.h (deprecated_frame_xmalloc): Declare.
	(deprecated_set_frame_saved_regs_hack): Declare.
	(deprecated_set_frame_extra_info_hack): Declare.

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

	* configure.in: Move code that provides the --enable-gdbtk option
	right after the code that handles the --enable-tui option, and
	polish it somewhat.
	* configure: Regenerated.

	* configure.in: Call AC_GNU_SOURCE.  Check for pread64 using
	AC_CHECK_FUNCS and remove the old check for pread64.
	* acinclude.m4 (AC_GNU_SOURCE): New macro.
	* acconfig.h (_GNU_SOURCE): Add.
	(HAVE_PREAD64): Remove.
	* configure, aclocal.m4, config.in: Regenerated.

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

	* alpha-tdep.c: Use get_frame_saved_regs.
	* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
	* m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10300-tdep.c: Ditto.
	* ns32k-tdep.c, s390-tdep.c, sh-tdep.c, v850-tdep.c: Ditto.
	* vax-tdep.c, xstormy16-tdep.c: Ditto.

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

	* configure.in: Remove all use of the SUBDIRS variable; add
	directories using the AC_CONFIG_SUBDIRS macro instead.  Polish
	code providing the --enable-multi-ice option, and move it right in
	front of the code that checks whether gdbserver is supported.
	Polish that too.
	* configure: Regenerated.
	* Makefile.in (SUBDIRS): Substitute @subdirs@ instead of
	@SUBDIRS@.

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

	* alpha-tdep.c: Use deprecated_update_frame_base_hack.
	* avr-tdep.c, cris-tdep.c: Ditto.
	* mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
	* sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.

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

	* configure.in: Remove --enable-netrom option.
	* configure: Regenerated.

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

	* cli/cli-decode.h: Don't include "gdb_regex.h"; provide a forward
	declaration for `struct re_pattern_buffer' instead.
	* Makefile.in (cli_decode_h): Remove $(gdb_regex_h).

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

	* mdebugread.c (parse_symbol): Count until the stEnd matching
	the structure name.

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

	* configure.in: Remove --with-cpu option.
	subscripts.  Remove evil changequotes here.
	* acconfig.h (TARGET_CPU_DEFAULT): Remove.
	* config.in, configure: Regenerated.

	* acconfig.h (DEFAULT_BFD_ARCH, DEFAULT_BFD_VEC): Remove.
	* configure.in: Cleanup section that sources GDB and BFD configure
	subscripts.  Remove evil changequotes here.
	* config.in, configure: Regenerated.

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

	* arm-tdep.c: Use get_frame_pc and deprecated_update_frame_pc_hack
	frame accessor methods.
	* alpha-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
	* dwarf2cfi.c, h8300-tdep.c, i386-tdep.c, ia64-tdep.c: Ditto.
	* m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c, mips-tdep.c: Ditto.
	* mn10200-tdep.c, mn10300-tdep.c, ns32k-tdep.c: Ditto.
	* s390-tdep.c, sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.
	* vax-tdep.c, x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
	* z8k-tdep.c: Ditto.

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

	* configure.in: Remove UI_OUT configuration code.
	* ada-lang.c: Update assuming UI_OUT is always true.
	* Makefile.in (UIOUT_CFLAGS): Remove.
	* configure: Regenerated.
	* TODO: Remove blurb about elimination of -DUI_OUT.

	* configure.in: Move code that provides the --enable-gdbcli,
	--enable-gdbmi options right before the code that handles the
	--enable-tui option.  Polish a bit.
	* configure: Regenerated.

	* configure.in: Rewrite check for GNU regex and the
	--without-included regex option, and move it into the "Checks for
	library functions" section.  This makes us use the system regex
	again by default on systems with version 2 of the GNU C library.
	This was apparently broken.
	* gdb_regex.h [!USE_INCLUDED_REGEX] (_REGEX_RE_COMP): Define.
	* acconfig.h (USE_INCLUDED_REGEX): Remove.
	* config.in, configure: Regenerated.

	* configure.in: Move code that provides the --enable-tui option
	before the "Checks for libraries" section.  Polish the code
	somewhat and set need_curses to yes if we build the TUI.  Rewrite
	code that looks for a library providing termcap functionality to
	match more closely what's done in the Readline library, and move
	it into to the "Checks for libraries" section.
	* configure: Regenerated.
	* Makefile.in (TERMCAP): Remove variable.
	* config/i386/go32.mh (TERMCAP): Remove variable.

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

	* MAINTAINERS: Mention gdb_mbuild.sh.
	* gdb_mbuild.sh: Rewrite.

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

	* configure.in: Fix typo in last change.
	* config.in, configure: Regenerated.

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

	* valarith.c (value_binop): Delete obsolete code and comments.
	* configure.host: Ditto.
	* buildsym.h (make_blockvector): Ditto.
	* buildsym.c (make_blockvector): Ditto.
	* defs.h (enum language): Ditto.
	(chill_demangle): Ditto.
	* elfread.c (elf_symtab_read): Ditto.
	* dwarfread.c (CHILL_PRODUCER): Ditto.
	(set_cu_language): Ditto.
	(handle_producer): Ditto.
	* expprint.c (print_subexp): Ditto.
	* gdbtypes.c (chill_varying_type): Ditto.
	* gdbtypes.h (builtin_type_chill_bool): Ditto.
	(builtin_type_chill_char, builtin_type_chill_long): Ditto.
	(builtin_type_chill_ulong, builtin_type_chill_real): Ditto.
	(chill_varying_type): Ditto.
	* language.h (_LANG_chill): Ditto.
	* language.c (binop_result_type, integral_type): Ditto.
	(character_type, string_type, structured_type): Ditto.
	(lang_bool_type, binop_type_check): Ditto.
	* stabsread.h (os9k_stabs): Ditto.
	* stabsread.c (os9k_type_vector, dbx_lookup_type): Ditto.
	(define_symbol, read_type, read_struct_fields): Ditto.
	(read_array_type, read_enum_type, read_huge_number): Ditto.
	(read_range_type, start_stabs): Ditto.
	* symfile.c (init_filename_language_table): Ditto.
	(add_psymbol_with_dem_name_to_list): Ditto.
	* symtab.c (symbol_init_language_specific): Ditto.
	(symbol_init_demangled_name, symbol_demangled_name): Ditto.
	* symtab.h (struct general_symbol_info): Ditto.
	(SYMBOL_CHILL_DEMANGLED_NAME): Ditto.
	* typeprint.c (typedef_print): Ditto.
	* utils.c (fprintf_symbol_filtered): Ditto.
	* valops.c (value_cast, search_struct_field, value_slice): Delete
	obsolete code.
	(varying_to_slice): Delete function.
	* value.h (COERCE_VARYING_ARRAY): Delete obsolete macro contents.
	(varying_to_slice): Delete declaration.
	* MAINTAINERS: Update.

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

	* configure.in: Reorganize "Checks for library functions section"
	a bit.  Remove check for `btowc' and `isascii' functions.
	* configure: Regenerated.

	* acconfig.h (_MSE_INT_H): Remove.
	* configure.in: Create "Checks for header files" section, and move
	appropriate tests there.  Don't check for objlist.h, wchar.h,
	wctype.h and asm/debugreg.h.  Rewrite Solaris 2.[78] <curses.h>
	misdetection fix.  Also add "Checks for types", "Checks for
	compiler characteristics" and "Checks for library functions"
	sections.
	* config.in, configure: Regenerated.

	* configure.in: Create "Checks for programs" section, and move
	appropriate tests there.

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

	* configure.in: Create "Checks for libraries" section, and move
	appropriate tests there.  Cleanup check for wctype in libw.  Use
	AC_SEARCH_LIBS to see whether we need libsocket.
	* configure: Regenerated.

For older changes see ChangeLog-2002

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
