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 conjuction 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:
