2004-12-28  Jim Blandy  <jimb@redhat.com>

 	* remote.c (fetch_register_using_p): Recognize a register value
	starting with 'x' as indicating an unfetchable register.

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

	* config/mips/obsd64.mh (NATDEPFILES): Unwrap line.

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

	* inftarg.c (child_xfer_partial): Remove code that handles
	TARGET_OBJ_WCOOKIE.

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

	* inftarg.c (child_create_inferior) [HPUXHPPA]: Remove code.

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

	* target.h (TARGET_DISABLE_HW_WATCHPOINTS)
	(TARGET_ENABLE_HW_WATCHPOINTS): Remove macros.
	* infrun.c (struct execution_control_state): Remove
	enable_hw_watchpoints_after_wait member.
	(number_of_threads_in_syscalls): Remove variable.
	(init_wait_for_inferior): Don't initialize
	number_of_threads_in_syscalls.
	(init_execution_control_state): Don't initialize
	ECS->enable_hw_watchpoints_after_wait.
	(handle_inferior_event): Never invoke TARGET_ENABLE_HW_WATCHPOINTS
	or TARGET_DISABLE_HW_WATCHPOINTS.

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

	* i386-nto-tdep.c: Reorder include files.
	(i386nto_svr4_fetch_link_map_offsets): Remove function.
	(init_i386nto_ops, i386nto_init_abi): Use
	svr4_ilp32_fetch_link_map_offsets instead of
	i386nto_svr4_fetch_link_map_offsets.

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

	* hppa-tdep.c (hppa_frame_prev_register_helper): Make 64-bit safe.

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

	* hppa-tdep.c (hppa64_return_value): Fix previous commit.

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

	* hppa-tdep.c (hppa32_return_value): Move further down.
	(hppa64_return_value): Re-implement.

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

	* remote.c (fetch_register_using_p): Fix formatting.
	
2004-12-21  Paul N. Hilfinger  <hilfingr@otisco.mckusick.com>

	* ada-lang.c (ada_print_subexp): Remove i18n markup from Ada code
	output.
	* ada-typeprint.c (ada_typedef_print): Ditto.
	(print_unchecked_union_type): Ditto.
	(print_record_type): Ditto, and correct output for non-derived
	types that was inadvertently left off during the markup.

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

	* hppa-hpux-tdep.c (hppa64_hpux_search_dummy_call_sequence): Check
	whether the name returned by find_pc_partial_function is a null
	pointer, not whether it is an empty string.

	* hppa-tdep.h (hppa_regnum): Add HPPA_DP_REGNUM, HPPA_RET0_REGNUM,
	HPPA_RET1_REGNUM and HPPA64_FP4_REGNUM.
	* hppa-tdep.c (hppa64_integral_or_pointer_p)
	(hppa64_floating_p) New functions.
	(hppa64_push_dummy_call): Re-implement.
	(hppa32_register_type): Rename argument reg_nr to regnum.
	(hppa64_register_type): Likewise.  Use HPPA64_FP4_REGNUM instead
	of HPPA_FP4_REGNUM.
	(hppa32_cannot_store_register): Renamed from
	hppa_cannot_store_register.
	(hppa64_cannot_store_register): New function.
	(hppa_gdbarch_init): Set cannot_store_register and
	cannot_fetch_register to hppa32_cannot_store_register or
	hppa64_cannot_store_register when appropriate.

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

	* hppah-nat.c: Remove file.
	* infttrace.h: Remove file.
	* infttrace.c: Remove file.
	* Makefile.in (ALLDEPFILES): Remove hppah-nat.c
	(infttrace_h): Remove variable.
	(hppah-nat.o, infttrace.o): Remove dependencies.
	* configure.host (hppa*64*-*-hpux11*): Remove.
	* config/pa/hpux11w.mh: Remove file.
	* config/pa/nm-hppah.h: Remove file.
	* config/pa/nm-hppah11.h: Remove file.

	* config/djgpp/fnchange.lst: Resolve name clash between
	../bfd/elf32-arm.c and ../bfd/elf32-arc.c, i386-sol2-nat.c and
	i386-sol2-tdep.c, mips64obsd-nat.c and mips64obsd-tdep.c,
	testsuite/gdb.base/bitfields.c and
	testsuite/gdb.base/bitfields2.c, testsuite/gdb.base/bitfields.exp
	and testsuite/gdb.base/bitfields2.exp.  Remove entry for
	config/m88k/xm-delta88v4.h.

	* solib-pa64.c: Only include <dlfcn.h>, <elf.h> and <elf_hp.h> if
	PA_SOM_ONLY isn't defined.

	* somread.c: Include "solib-som.h".
	(som_symfile_init, som_new_init, som_symfile_read,
	som_symfile_finish, som_symtab_read, som_symfile_offsets): Remove
	redudant prototypes.
	* Makefile.in (somread.o): Update dependencies.

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

	* remote.c (fetch_register_using_p): Indentation cleanup.

2004-12-17  Randolph Chung  <tausq@debian.org>

	* hppa-hpux-tdep.c (setup_d_pid_in_inferior): Make static.
	(find_stub_with_shl_get): Make static.

2004-12-17  Randolph Chung  <tausq@debian.org>

	* hppa-hpux-tdep.c (IS_32BIT_TARGET): New.
	(in_opd_section): New.
	(hppa32_hpux_find_global_pointer): Rename from 
	hppa_hpux_som_find_global_pointer.
	(hppa64_hpux_find_global_pointer): New.
	(ldsid_pattern): New.
	(hppa_hpux_search_pattern): New.
	(hppa32_hpux_search_dummy_call_sequence): New.
	(hppa64_hpux_search_dummy_call_sequence): New.
	(hppa_hpux_find_import_stub_for_addr): New.
	(hppa_hpux_sr_for_addr): New.
	(hppa_hpux_find_dummy_bpaddr): New.
	(hppa_hpux_init_abi): Use IS_32BIT_TARGET predicate.
	(hppa_hpux_som_init_abi): Set find_global_pointer method to
	hppa32_hpux_find_global_pointer instead of
	hppa_hpux_som_find_global_pointer.
	(hppa_hpux_elf_init_abi): Set find_global_pointer method.
	* hppa-tdep.c (hppa_init_objfile_priv_data): New.
	(read_unwind_info): Use function to initialize objfile-private data.
	(hppa32_push_dummy_call): Don't automatically set the RP if there is
	a push_dummy_code method.
	(hppa64_push_dummy_call): Retrieve and set the global pointer.
	Don't automatically set the RP if there is a push_dummy_code method.
	* hppa-tdep.h (hppa_objfile_private): Add dummy_call_sequence_reg and
	dummy_call_sequence_addr members.
	(hppa_init_objfile_priv_data): New prototype.

2004-12-17  Joel Brobecker  <brobecker@gnat.com>

	* hppa-tdep.c (hppa_lookup_stub_minimal_symbol): New function.
	* hppa-tdep.h (hppa_lookup_stub_minimal_symbol): Add declaration.
	* solib-som.c (som_solib_create_inferior_hook): Replace stub
	msymbol search by call to hppa_lookup_stub_minimal_symbol. This
	extends the search to all objfiles, not just shared libraries.
	Remove unused variable.

2004-12-16  Michael Snyder  <msnyder@redhat.com>

	* MAINTAINERS: Add myself as maintainer for mn10300.
	* NEWS: Mention mn10300.

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

	* xstormy16-tdep.c (xstormy16_skip_prologue): Clear/initialize the
	frame cache.

2004-12-14  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_in_function_epilogue_p): New function.
	(hppa_gdbarch_init): Set in_epilogue_p method.

2004-12-14  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (sh_extract_return_value_nofpu): Rename from
	sh_default_extract_return_value.
	(sh_extract_return_value_fpu): Rename from
	sh3e_sh4_extract_return_value.
	(sh_store_return_value_nofpu): Rename from
	sh_default_store_return_value.
	(sh_store_return_value_fpu): Rename from sh3e_sh4_store_return_value.
	(sh_return_value_nofpu): Accomodate above changes.
	(sh_return_value_fpu): Ditto.

2004-12-13  Jerome Guitton  <guitton@gnat.com>

	* stabsread.c (read_huge_number): Add support for reading octal
	signed number in twos complement, based on the size of this
	number.
	(read_range_type): Add support for reading octal signed bounds
	in twos complements, based on the size of the type.
	(read_type_number, read_cpp_abbrev, read_member_functions,
	read_cpp_abbrev, read_one_struct_field, read_baseclasses,
	read_struct_type, read_array_type, read_enum_type,
	read_sun_builtin_type, read_sun_floating_type): Update calls to
	read_huge_number.
	(read_type): Update call to read_range_type.

2004-12-13  Randolph Chung  <tausq@debian.org>

	* hppa-hpux-tdep.c (internalize_hp_cxx_exception_support): Call
	solib_get_solib_by_pc method through target vector.
	(hppa_hpux_som_find_global_pointer): Call solib_get_got_by_pc
	method through target vector.

2004-12-13  Joel Brobecker  <brobecker@gnat.com>

	* alpha-osf1-tdep.c (alpha_osf1_sigcontext_addr): Change
	parameter name to make it clear that we already have a next
	frame.  Return the sigcontext from that next frame instead
	of the frame following it.

2004-12-13  Randolph Chung  <tausq@debian.org>

	* Makefile.in (pa64solib_h, somsolib_h): Delete.
	(solib_pa64_h, solib_som_h): New.
	(HFILES_NO_SRCDIR, ALLDEPFILES): Replace somsolib.h with solib-som.h.
	(hppa-hpux-tdep.o, hpread.o): Update dependencies.
	(pa64solib.o, somsolib.o): Delete.
	(solib-pa64.o, solib-som.o): New.
	* hppa-hpux-tdep.c: Include new solib interfaces.
	(hppa_hpux_som_init_abi): Attach to SOM solib interface.
	(hppa_hpux_elf_init_abi): Attach to PA64 ELF solib interface.
	* hppa-tdep.c (internalize_unwinds): If solib_get_text_base method
	is available, use it to determine the base of unwind records.
	* hppa-tdep.h (gdbarch_tdep): Add new solib methods.
	* hpread.c: Replace somsolib.h with solib-som.h.
	(hpread_process_one_debug_symbol): Use target vector to get thread 
	start address.
	* config/pa/hppa64.mt (TDEPFILES): Use new solib interface.
	* config/pa/hppahpux.mt (TDEPFILES): Likewise.
	* config/pa/hpux.mh (NATDEPFILES): Delete references to target objects.
	* config/pa/tm-hppah.h: Use new solib interface.

2004-12-13  Randolph Chung  <tausq@debian.org>

	* tramp-frame.c (tramp_frame_sniffer): Allow frames with names or 
	sections to be trampolines too.

2004-12-13  Ben Elliston  <bje@au.ibm.com>

	* f-exp.y (typename): Remove unused nonterminal.
	(name): Likewise.

2004-12-12  Baurjan Ismagulov  <ibr@ata.cs.hun.edu.tr>

	Committed by Andrew Cagney.
	* abug-rom.c, ada-lang.c, ada-typeprint.c, alpha-tdep.c: i18n
	markup.
	
2004-12-12  Andrew Cagney  <cagney@gnu.org>

	* frame.c (get_prev_frame): When unwinding normal frames, check
	that the PC isn't zero.
	* hppa-tdep.c (hppa_stub_frame_unwind_cache): Delete check for a
	zero PC.

	* MAINTAINERS: Reword description of what "Target Instruction Set
	Architectures" covers.

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

	* hppa-hpux-nat.c (hppa_hpux_child_can_run): Tweak comment.

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

	* hppa-hpux-nat.c (ss_mpsfu_high): Remove define.
	(hppa_hpux_save_state_offset): New function, replacing variable
	with the same name.
	(hppa_cannot_fetch_register, hppa_cannot_store_register): Remove
	functions.
	(hppa_hpux_fetch_register): Don't call hppa_cannot_fetch_register.
	Use new hppa_hpux_save_state_offset function.  Add special
	handling for handling 64-bit "flags" register.
	(hppa_hpux_store_register): Likewise.
	(hppa_hpux_child_can_run): Tweak comment.

	* inf-ttrace.c (inf_ttrace_him): Set TTEVT_BPT_SSTEP if available.
	(inf_ttrace_attach): Likewise.
	(inf_ttrace_resume_callback): New function.
	(inf_ttrace_resume): Don't use TT_PROC_CONTINUE.  Iterate over all
	lwps and call inf_ttrace_resume_callback instead.
	(inf_ttrace_wait): Handle TTEVT_BPT_SSTEP.

	* inf-ttrace.c (_initialize_inf_ttrace): Unconditionially compile.

2004-12-10  Michael Snyder  <msnyder@redhat.com>

	* mn10300-tdep.c: New file.  This is a re-implementation of
	the mn10300 target back-end using the new frame api etc.
	* mn10300-tdep.h: New file.
	* config/mn10300/mn10300.mt: New file (or replace old file).
	* configure.tgt: Add mn10300 target.

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

	* configure.host (hppa*-*-hpux11*): Remove.
	* config/pa/hpux11.mh: Remove file.

	* hppa-hpux-tdep.c (hppa_hpux_sigtramp_frame_unwind_cache): Fix
	typo.

2004-12-10  Kris Warkentin  <kewarken@qnx.com>

	* nto-tdep.h: Include osabi.h.  Prototypes for generic Neutrino
	osabi sniffer, signal handling initializer, 'in_dynsym_resolve_code'
	function and nto_set_target function.
	(struct nto_target_ops): Put comments inline with struct.  Add osabi
	sniffer hook.  Redefine macros to permit testing/assignment.  Remove
	nto_ prefix from members.
	* nto-tdep.c (nto_find_and_open_solib): Allocate all buffers
	dynamically to support arbitrary root paths.  Check for basename of
	lib in search path and then check for absolute.
	(nto_in_dynsym_resolve_code): New function.
	(nto_core_sniffer): New function.
	(regset_core_fns): Register core sniffer.
	(nto_initialize_signals): New function.
	(_initialize_nto_tdep): Move signal initialization code to above to
	avoid initialization race conditions.
	(nto_set_target): New function.
	* nto-procfs.c: Minor formatting/indenting changes.
	(procfs_is_nto_target): New function.
	(procfs_open): Set nto_is_nto_target.
	(_initialize_procfs): Ditto.  Remove notice_signals() call to avoid
	initialization race conditions.
	(procfs_create_inferior): Resume inferior after creation.
	* i386-nto-tdep.c: Declare i386_nto_target.
	(init_i386nto_ops): Initialize i386_nto_target instead of
	current_nto_target.
	(i386nto_init_abi): Initialize signals.  Call nto_set_target.  Set
	TARGET_SO_IN_DYNSYM_RESOLVE_CODE.
	(_initialize_i386nto_tdep): Call init_i386nto_ops.  Register osabi
	sniffer.

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

	* hppa-hpux-tdep.c (child_enable_exception_callback): Use XMALLOC.
	(hppa_hpux_sigtramp_frame_unwind_cache): Use ARRAY_SIZE.
	(hppa_hpux_init_abi): Reformat long line.

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

	* hppa-hpux-tdep.c: Include "regset.h".
	(HPPA_HPUX_SS_WIDEREGS, HPPA_HPUX_SS_FLAGS_OFFSET)
	(HPPA_HPUX_SS_NARROW_OFFSET, HPPA_HPUX_SS_FPBLOCK_OFFSET)
	(HPPA_HPUX_SS_WIDE_OFFSET, HPPA_HPUX_SAVE_STATE_SIZE)
	(HPPA_HPUX_PA89_SAVE_STATE_SIZE): New defines.
	(hppa_hpux_supply_ss_narrow, hppa_hpux_supply_ss_fpblock)
	(hppa_hpux_supply_ss_wide, hppa_hpux_supply_save_state): New
	functions.
	(hppa_hpux_regset): New variable.
	(hppa_hpux_regset_from_core_section): New function.
	(hppa_hpux_init_abi): Set regset_from_core_section.
	(hppa_hpux_core_osabi_sniffer): New function.
	(_initialize_hppa_hpux_tdep): Register
	hppa_hpux_core_osabi_sniffer.
	* Makefile.in (hppa-hpux-tdep.o): Update dependencies.
	* config/pa/hppahpux.mt (TDEPFILES): Add corelow.o.

2004-12-09  Randolph Chung  <tausq@debian.org>

	* solib-pa64.c (pa64_relocate_section_addresses): Properly relocate
	text and data sections.
	(pa64_current_sos): Also include the dld in the list of current shared
	objects.
	(pa64_solib_get_solib_by_pc): Update comments.
	(pa64_solib_get_text_base): New function.
	(pa64_solib_select): Set solib_get_text_base method.

2004-12-08  Daniel Jacobowitz  <dan@debian.org>

	* linux-thread-db.c (BUILD_THREAD): Delete.
	(thread_get_info_callback): Include LWP ID in thread ID.
	(thread_from_lwp, check_event, find_new_threads_callback): Likewise.
	(lwp_from_thread): Use the LWP ID from the thread ID.

2004-12-07  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_prev_register_helper): Zero out the entire
	register for both 32- and 64-bit targets.

2004-12-07  Randolph Chung  <tausq@debian.org>

	* frame.c (get_prev_frame): Don't terminate unwinding at main if we
	are unwinding through a dummy frame.

2004-12-07  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.h (gdbarch_tdep): Add unwind_adjust_stub method.
	* hppa-hpux-tdep.c (hppa_hpux_unwind_adjust_stub): New function.
	(hppa_hpux_init_abi) Set unwind_adjust_stub method.
	* hppa-tdep.c (hppa_frame_cache): Call unwind_adjust_stub method
    	if defined.

2004-12-07  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_stub_Frame_unwind_cache): Stop unwinding if 
	unwinding from a frame with pc == 0.
	(hppa_stub_frame_this_id): Likewise.
	(hppa_stub_frame_prev_register): Only provide real values if the frame
	cache is not NULL.

2004-12-07  Randolph Chung  <tausq@debian.org>

	* solib-som.c: New file.
	* solib-som.h: New file.
	* solib-pa64.c: New file.
	* solib-pa64.h: New file.

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

	* Makefile.in (inf-ttrace.o): Fix typo.

2004-12-07  Jim Blandy  <jimb@redhat.com>

	* remote.c (remote_threads_info, remote_current_thread): Use
	strtoul to parse thread ID numbers.

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

	* inf-ttrace.c: Include "gdbthread.h".
	(inf_ttrace_num_lwps): New variable.
	(inf_ttrace_num_lwps_in_syscall): Renamed from
	inf_ttrace_num_threads_in_syscall.
	(inf_ttrace_him): Track TTEVT_LWP_CREATE, TTEVT_LWP_EXIT and
	TTEVT_LWP_TERMINATE events.
	(inf_ttrace_create_inferior): Assert that INF_TTRACE_NUM_LWPS is
	zero.
	(inf_ttrace_mourn_inferior): Set INF_TTRACE_NUM_LWPS to zero.
	(inf_ttrace_attach): Assert that INF_TTRACE_NUM_LWPS is zero.
	Track TTEVT_LWP_CREATE, TTEVT_LWP_EXIT and TTEVT_LWP_TERMINATE
	events.
	(inf_ttrace_wait): Report status as TARGET_WAITKIND_SPURIOUS by
	default.  Handle TTEVT_LWP_CREATE, TTEVT_LWP_EXIT and
	TTEVT_LWP_TERMINATE events.
	(inf_ttrace_thread_alive, inf_ttrace_pid_to_str): New functions.
	(inf_ttrace_target): Set to_thread_alive and to_pid_to_str.
	* Makefile.in (inf-ttrace.o): Update dependencies.

	* hppa-tdep.h (hppa_read_pc, hppa_write_pc, hppa_unwind_pc): New
	prototypes.
	* hppa-tdep.c (hppa_read_pc): Rename from hppa_target_read_pc.
	Make global.  Remove HP-UX specific code.  Use
	frame_unwind_register_unsigned instead of
	frame_unwind_register_signed.
	(hppa_write_pc): Rename from hppa_target_write_pc.  Make global.
	Remove HP-UX specific code.
	(hppa_unwind_pc): Make global.  Remove HP-UX specific code.
	(hppa_frame_prev_register_helper): Set "flags" register to zero
	for all unwound frames.
	(hppa_gdbarch_init): Adjust.
	* hppa-hpux-tdep.c (HPPA_HPUX_SS_INSYSCALL): New define.
	(hppa_hpux_read_pc, hppa_hpux_write_pc)
	(hppa_hpux_unwind_pc): New functions.
	(hppa_hpux_init_abi): Set read_pc, write_pc and unwind_pc.

2004-12-07  Andreas Schwab  <schwab@suse.de>

	* main.c (long_options): Add entry for "-l".
	(print_gdb_help): Add line for -l option.
	* NEWS: Mention it.

2004-12-05  Randolph Chung  <tausq@debian.org>

	* hppah-nat.c (store_inferior_registers): Rewrite logic to not use
	DEPRECATED_REGISTER_BYTE.

2004-12-05  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (unwind_command): Print the stub type for stub unwind
	records.

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

	* somsolib.c [PA_SOM_ONLY] (no_shared_libraries): New function.
	* config/pa/hppahpux.mt (TDEPFILES): Remove solib.o.

	* hppa-hpux-tdep.c: Update copyright notice and year.

2004-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* doublest.c (FLOATFORMAT_LARGEST_BYTES): New define.
	(get_field, put_field): Assert that the format is one we can handle.
	Simplify logic accordingly.
	(floatformat_normalize_byteorder): New function.
	(convert_floatformat_to_doublest): Use floatformat_normalize_byteorder
	to normalize and select modified byte order. Pass modified byte order
	to get_field.
	(floatformat_is_negative, floatformat_is_nan, floatformat_mantissa): 
	Likewise.
	(convert_doublest_to_floatformat): Select an appropriate intermediate
	byte order if necessary.  Always convert to the final format before
	returning.

2004-12-04  Daniel Jacobowitz  <dan@debian.org>

	PR tui/1703
	* linux-nat.c (linux_tracefork_child): Use _exit instead of exit.
	Suggested by Joshua Neuheisel.

2004-12-03  Randolph Chung  <tausq@debian.org>

	* gdbarch.sh (instruction_nullified): Delete.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* hppa-tdep.c (hppa_target_read_pc): Adjust pc if instruction is
	nullified.
	(hppa_unwind_pc): Likewise. 
	(hppa_instruction_nullified): Delete.
	(hppa_gdbarch_init): Don't set instruction_nullified method.
	* infrun.c (infwait_states): Remove infwait_nullified_state.
	(handle_inferior_event): Remove handling of infwait_nullified_state.
	Remove handling of nullified instructions.

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

	* inf-ttrace.c: Include <sys/mman.h>.
	(struct inf_ttrace_page): New.
	(struct inf_ttrace_page_dict): New.
	(inf_ttrace_num_threads_in_syscall)
	(inf_ttrace_reenable_page_protections): New variables.
	(inf_ttrace_enable_syscall_events)
	(inf_ttrace_disable_syscall_events, inf_ttrace_get_page)
 	(inf_ttrace_add_page, inf_ttrace_insert_page)
	(inf_ttrace_remove_page, inf_ttrace_mask_page_protections)
	(inf_ttrace_enable_page_protections)
	(inf_ttrace_disable_page_protections)
	(inf_ttrace_insert_watchpoint, inf_ttrace_remove_watchpoint)
	(inf_ttrace_can_use_hw_breakpoint)
	(inf_ttrace_region_size_ok_for_hw_watchpoint)
	(inf_ttrace_stopped_by_watchpoint): New functions.
	(inf_ttrace_him): Remove unsused varaible `tts'.
	(inf_ttrace_create_inferior): Add assertionts.
	(inf_ttrace_mourn_inferior): Clear page dictionary.
	(inf_ttrace_attach): Set initial event mask.
	(inf_ttrace_detach): Reset number of threads in system call.
	(inf_ttrace_wait): Deal with system call events.
	(inf_ttrace_target): Initialize "hardware" watchpoint-related
	parts of the target vector.
	(_initialize_inf_ttrace): New prototype and function.

	* hppa-hpux-tdep.c (hppa_hpux_push_dummy_code): Use ULONGEST as
	type of `gp' variable.

2004-12-03  Richard Sandiford  <rsandifo@redhat.com>

	* README: Remove config.if from directory listing.

2004-12-01  Joel Brobecker  <brobecker@gnat.com>

	* alpha-tdep.c (alpha_register_name): Add comment.
	(alpha_cannot_fetch_register): Exclude registers numbers which
	are no longer used from the list of registers that can be fetched.
	(alpha_cannot_store_register): Exclude registers numbers which
	are no longer used from the list of registers that can be stored.
	* alpha-nat.c (fetch_osf_core_registers): Add missing value in
	core_reg_mapping array.

2004-12-01  Joel Brobecker  <brobecker@gnat.com>

	* alpha-tdep.c (alpha_heuristic_frame_prev_register): Fetch
	the register value from the correct frame.

2004-11-30  Randolph Chung  <tausq@debian.org>

	* hppa-linux-tdep.c (insns_match_pattern_relaxed): New function.
	(hppa_linux_in_dyncall): Check that we are inside the range of 
	$$dyncall, not necessarily at the first insn.
	(hppa_linux_in_solib_call_trampoline): Identify a trampoline 
	even if the pc does not point to the first insn of the trampoline.

2004-11-30  Randolph Chung  <tausq@debian.org>

	* breakpoint.c (break_at_finish_command): Delete.
	(break_at_finish_command_1): Delete.
	(break_at_finish_at_depth_command): Delete.
	(break_at_finish_at_depth_command_1): Delete.
	(tbreak_at_finish_command): Delete.
	* hppa-tdep.c (_initialize_hppa_tdep): Remove deprecated xbreak, tbreak
	and bx commands.

2004-11-30  Andrew Cagney  <cagney@gnu.org>

	* config/nm-gnu.h: Delete file.
	* config/i386/nm-i386gnu.h: Inline "config/nm-gnu.h".

	* config/nm-sysv4.h: Delete file.
	* config/i386/nm-i386v4.h: Inline "config/nm-sysv4.h".
	* config/i386/nm-i386v42mp.h: Inline "config/nm-sysv4.h".
	* config/i386/nm-i386sol2.h: Inline "config/nm-sysv4.h".
	* config/ia64/nm-aix.h: Inline "config/nm-sysv4.h".
	* config/mips/nm-irix5.h: Inline "config/nm-sysv4.h".

2004-11-29  Andrew Cagney  <cagney@gnu.org>

	* MAINTAINERS: Add Randolph Chung (pa), Jeff Johnston (ia64), Kei
	Sakamoto (m32r), Joel Brobecker (mips), and Ulrich Weigand (s390)
	as can-commit architecture developers.

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

	* sparc-tdep.c (X_RS1, X_SIMM13): New macros.
	(sparc32_skip_prologue): Skip instructions that store arguments in
	registers into their corresponding stack slots.

	* config/m68k/nbsdaout.mh (NAT_FILE): Set to solib.h instead of
	tm-solib.h.
	* config/m68k/obsd.mh (NAT_FILE): Likewise.

	* sparc-tdep.h (sparc32nbsd_elf_init_abi): New prototype.
	* sparcnbsd-tdep.c (sparc32nbsd_elf_init_abi): Make global.
	* sparcobsd-tdep.c (sparc32obsd_init_abi): Call
	sparc32nbsd_elf_init_abi.  Remove duplicate code.

	* config/sparc/nbsdaout.mh (NAT_FILE): Set to solib.h.
	* config/sparc/nbsdelf.mh (NAT_FILE): Remove variable.
	* config/sparc/nm-nbsd.h: Remove file.
	* config/sparc/nm-nbsdaout.h: Remove file.

	* sparc-nat.c (inf_ptrace_xfer_partial): New variable.
	(sparc_xfer_partial): New function.
	(sparc_target): Save value of to_xfer_partial from ptrace vector.
	Set to_xfer_partial.

	* fork-child.c (fork_inferior): Fork instead of vfork if
	PRE_TRACE_FUN is non-null.

2004-11-24  Fred Fish  <fnf@specifixinc.com>

	* rs6000-tdep.c (skip_prologue): Use line table info to skip over
	compiler generated function calls made as part of a prologue.

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

	* inf-ttrace.c: New file.
	* inf-ttrace.h: New file.
	* hppa-hpux-nat.c [HAVE_TTRACE]: Include <sys/ttrace>.
	Include "inf-ttrace.h".
	(ss_mpsfu_high): Define to ss_tlsp if necessary.
	(hppa_hpux_fetch_register, hppa_hpux_store_register): Use
	ptid_get_pid instead of PIDGET.  Modify to handle both ttrace and
	ptrace systems.
	(_initialize_hppa_hpux_nat) [HAVE_TTRACE]: Call inf_ttrace_traget
	instead of inf_ptrace_target.
	* config/pa/hpux.mh (NATDEPFILES): Add inf-ttrace.o.
	* Makefile.in (inf_ttrace_h): New variable.
	(hppa-hpux-nat.o): Update dependency.
	(inf-ttrace.o): New dependency.
	(ALLDEPFILES): Add inf-ptrace.c and inf-ttrace.c.

2004-11-23  Randolph Chung  <tausq@debian.org>

	* arch-utils.c (generic_instruction_nullified): New.
	* arch-utils.h (generic_instruction_nullified): New.
	* gdbarch.sh (instruction_nullified): New method.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Regenerate.
	* infrun.c (INSTRUCTION_NULLIFIED): Delete.
	(handle_inferior_event): Replace INSTRUCTION_NULLIFIED with calls to
	new gdbarch method.
	* config/pa/tm-hppa.h (INSTRUCTION_NULLIFIED): Delete definition.
	* hppa-tdep.c (hppa_instruction_nullified): Remove prototype and make
	static.  Rewrite to work directly off the passed regcache.
	(hppa_gdbarch_init): Set instruction_nullified method.

2004-11-23  Joel Brobecker  <brobecker@gnat.com>

	* sparc-tdep.c (sparc_is_unimp_insn): New function.
	(sparc32_frame_cache): For functions where there is no debugging
	information to help us determine whether it's a struct-return
	function or not, fallback on checking whether the instruction
	at the return address is an "unimp" instruction or not.

2004-11-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* MAINTAINERS: Add myself to write after approval section.

	* hppa-hpux-nat.c (child_suppress_run): Add variable to allow
	hpux-thread.c to suppress children from running.
	(hppa_hpux_child_can_run): New function.
	(_initialize_hppa_hpux_nat): Use hppa_hpux_child_can_run.
	* hpux-thread.c: Include string.h and hppa-tdep.h.
	(FLAGS_REGNUM, SP_REGNUM, PC_REGNUM): Rename to HPPA_FLAGS_REGNUM,
	HPPA_SP_REGNUM and HPPA_PCOQ_HEAD_REGNUM, respectively.
	(hpux_thread_store_registers): Replace deprecated_registers with
	calls to regcache_raw_read.
	* config/pa/hpux11.mh, config/pa/hpux11w.mh: Delete HOST_IPC.

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

	* sparc64fbsd-nat.c: Update copyright year.
	(_initialize_sparc64fbsd_nat): Construct and add target vector.
	* config/sparc/fbsd.mh (NATDEPFILES): Remove infptrace.o,
	inftarg.o.

2004-11-21  Daniel Jacobowitz  <dan@debian.org>

	* sparc-tdep.c (sparc_software_single_step): Handle stepping to NULL.

2004-11-21  Daniel Jacobowitz  <dan@debian.org>

	* linux-nat.c (my_waitpid): New function.
	(linux_test_for_tracefork): Make more robust and verbose.  Take
	an ORIGINAL_PID argument and test for PTRACE_SETOPTIONS first.
	(linux_supports_tracefork, linux_supports_tracevforkdone): Take a PID
	argument.  Update calls to linux_test_for_tracefork.
	(linux_enable_event_reporting, child_follow_fork)
	(child_insert_fork_catchpoint, child_insert_vfork_catchpoint)
	(child_insert_exec_catchpoint): Update calls to
	linux_supports_tracefork and linux_supports_tracevforkdone.

2004-11-21  Daniel Jacobowitz  <dan@debian.org>

	* valarith.c (value_subscript): Copy VALUE_FRAME_ID.
	(value_subscripted_rvalue): Likewise.
	* valops.c (search_struct_field, value_slice): Likewise.

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

	* inf-ptrace.c: Don't include "regcache.h" and "gdbcmd.h".
	Reorder includes a bit.  Fix comment.
	* Makefile.in (inf-ptrace.o): Update dependencies.

2004-11-21  Andreas Schwab  <schwab@suse.de>

	* m68klinux-tdep.c: Include "glibc-tdep.h" and "solib-svr4.h".
	(m68k_linux_init_abi): Set solib_svr4_fetch_link_map_offsets to
	svr4_ilp32_fetch_link_map_offsets and gdbarch_skip_solib_resolver
	to glibc_skip_solib_resolver.
	* config/m68k/linux.mt (TDEPFILES): Add glibc-tdep.o.  Remove
	solib-legacy.o.
	* Makefile.in (m68klinux-tdep.o): Update dependencies.

2004-11-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* infttrace.h (ttrace_write_reg_64): Add prototype.
	* hppah-nat.c (store_inferior_registers): Fix warning from ambiguous
	expression.  
	(store_inferior_registers): Correct formatting.  Replace uses of
	deprecated_registers with calls to regcache_raw_read,
	regcache_raw_write_part and regcache_raw_read_part.

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

	* config/pa/hppahpux.mh: Remove file.
	* config/pa/hpux1020.mh: Remove file.

2004-11-20  Andreas Schwab  <schwab@suse.de>

	* configure.host: Set host floatformat for m68k.

2004-11-20  Eli Zaretskii  <eliz@gnu.org>

	* config/djgpp/fnchange.lst: Resolve file-name clash between
	hppa-hpux-tdep.c and the new hppa-hpux-nat.c.

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

	* hppa-hpux-nat.c: New file.
	* config/pa/hpux.mh (NATDEPFILES): New file.
	* Makefile.in (ALLDEPFILES): Add hppa-hpux-nat.c.
	(hppa-hpux-nat.o): New dependency.
	* configure.host: Remove hppa*-*-hpux10.20.
	(hppa*-*-hpux*, hppa*-*-hiux*): Set gdb_host to hpux.mh.

	* inf-ptrace.c: Fix coding style.

	* gdb_ptrace.h [PTRACE_TYPE_ARG5] (ptrace): New macro.
	* infptrace.c (call_ptrace): Simply call ptrace with four
	arguments.

	* dbxread.c (process_one_symbol): Fix a few coding standard
	issues.  Improve code formatting.

	* dbxread.c: Include "gdb_string.h".
	(record_minimal_symbol, read_ofile_symtab): Replace
	DEPRECATED_STREQ and DEPRECATED_STREQN with strcmp and strncmp.
	* Makefile.in (dbxread.o): Update dependencies.

	* dwarf2-frame.c (read_encoded_value): Correctly calculate number
	of bytes read for aligned LEB128 encodings.

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

	* bsd-kvm.c (bsd_kvm_pcb_cmd): Cast return value from
	parse_and_eval_address to u_long before converting it to a pointer
	type.
	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Change type of
	ps_strings from int to u_long.
	* i386obsd-nat.c (_initialize_i386obsd_nat): Cast _ps.val to
	u_long instead of CORE_ADDR.

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

	* dbxread.c (process_one_symbol): Do not adjust address of first
	N_SLINE stab for a function for code generated by non-GCC
	compilers.

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

	* solib-null.c: New file.

2004-11-17  Andrew Cagney  <cagney@gnu.org>

	* MAINTAINERS: Drop MIPS and remote.

2004-11-15  Andrew Cagney  <cagney@gnu.org>

	* findvar.c (value_of_register): Set the frame ID.
	* value.c (value_primitive_field): Copy the frame ID.
	* valops.c (value_assign): Simplify lval_register case, there's
	always a frame.

2004-11-14  Daniel Jacobowitz  <dan@debian.org>

	* Makefile.in (mips-linux-tdep.o): Update dependencies.
	* mips-linux-tdep.c: Include "regcache.h".
	(fill_fpregset, mips64_fill_fpregset): Use regcache_raw_collect.

2004-11-14  Daniel Jacobowitz  <dan@debian.org>

	* Makefile.in (linux-thread-db.o): Fix typo in last change.

2004-11-14  Daniel Jacobowitz  <dan@debian.org>

	* linux-thread-db.c: New file, renamed from thread-db.c.
	* thread-db.c: Remove.
	* Makefile.in (linux-thread-db.o): Rename from thread-db.o rule.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Rename thread-db.o
	to linux-thread-db.o.
	* config/arm/linux.mh (NATDEPFILES): Likewise.
	* config/i386/linux.mh (NATDEPFILES): Likewise.
	* config/i386/linux64.mh (NATDEPFILES): Likewise.
	* config/ia64/linux.mh (NATDEPFILES): Likewise.
	* config/m32r/linux.mh (NATDEPFILES): Likewise.
	* config/m68k/linux.mh (NATDEPFILES): Likewise.
	* config/mips/linux.mh (NATDEPFILES): Likewise.
	* config/pa/linux.mh (NATDEPFILES): Likewise.
	* config/powerpc/linux.mh (NATDEPFILES): Likewise.
	* config/powerpc/ppc64-linux.mh (NATDEPFILES): Likewise.
	* config/s390/s390.mh (NATDEPFILES): Likewise.
	* config/sparc/linux.mh (NATDEPFILES): Likewise.
	* config/sparc/linux64.mh (NATDEPFILES): Likewise.

2004-11-13  Andrew Cagney  <cagney@gnu.org>

	* config/i386/i386lynx.mh: Delete file.
	* config/i386/i386lynx.mt: Delete file.
	* Makefile.in (ALLDEPFILES, i386ly-tdep.o): Remove i386ly-tdep.c.
	* i386ly-tdep.c: Delete.

	* config/tm-lynx.h: Delete, inline contents ...
	* config/rs6000/tm-rs6000ly.h: ... here.

	* config/tm-sysv4.h: Delete file, inlining contents.
	* config/ia64/tm-aix.h (SKIP_TRAMPOLINE_CODE): Define.
	* config/tm-linux.h (SKIP_TRAMPOLINE_CODE): Define.
	* config/tm-nto.h (SKIP_TRAMPOLINE_CODE): Define.

	* regcache.h (deprecated_register_valid): Delete.
	(deprecated_registers): Delete.
	* regcache.c (deprecated_register_valid): Delete.
	(deprecated_registers): Delete.
	(deprecated_read_register_byte, _initialize_regcache)
	(deprecated_write_register_bytes, build_regcache): Update.
	* config/powerpc/ppc-sim.mt (TDEPFILES): Remove ppc-bdm.o and
	remote-sds.o.
	* config/powerpc/ppc-eabi.mt (TDEPFILES): Ditto.
	* config/mips/embed.mt (TDEPFILES): Remove remote-mips.o.

	* NEWS: List h8300*-*-*, mcore-*-*, mn10300-*-*, ns32k-*-*, and
	v850-*-* under removed.
	* configure.host: Delete ns32k-*-netbsd*.
	* configure.tgt: Delete h8300-*-*, mcore*-*-*, mn10300-*-*,
	ns32k-*-netbsd*, and v850*-*-*.
	* MAINTAINERS: Mark h8300, mcore, mn10300, ns32k, v850 as
	"Deleted"
	* config/h8300/tm-h8300.h, config/h8300/h8300.mt: Delete.
	* h8300-tdep.c, config/mcore/mcore.mt, mcore-rom.c: Delete.
	* mcore-tdep.c, config/mn10300/mn10300.mt: Delete.
	* mn10300-tdep.c, config/ns32k/nbsdaout.mh: Delete.
	* config/ns32k/nbsdaout.mt, config/ns32k/nm-nbsd.h: Delete.
	* config/ns32k/nm-nbsdaout.h, config/ns32k/tm-ns32k.h: Delete.
	* ns32knbsd-nat.c, ns32knbsd-tdep.c, ns32k-tdep.c: Delete.
	* ns32k-tdep.h, config/v850/v850.mt, v850ice.c: Delete.
	* v850-tdep.c: Delete.
	
2004-11-13  Joel Brobecker  <brobecker@gnat.com>

	* irix5-nat.c (fetch_core_registers): Replace use of
	deprecated_registers by equivalent code.

2004-11-13  Joel Brobecker  <brobecker@gnat.com>

	* irix5-nat.c (fill_gregset): Replace use of deprecated_registers
	with equivalent code.
	(fill_fpregset): Likewise.

2004-11-13  Andrew Cagney  <cagney@gnu.org>

	* MAINTAINERS: Do not list "Deleted" architectures.

	* configure.tgt: Delete i[34567]86-*-vxworks*, m68*-netx-*,
	m68*-*-vxworks*, mips*-*-vxworks*, powerpc-*-vxworks*, and
	sparc-*-vxworks*.
	* NEWS: Mention that vxworks was deleted.
	* config/m68k/tm-vx68.h, config/mips/tm-vxmips.h: Delete.
	* config/powerpc/tm-vxworks.h, config/tm-vxworks.h: Delete.
	* config/i386/vxworks.mt, config/m68k/vxworks68.mt: Delete.
	* config/mips/vxmips.mt, config/powerpc/vxworks.mt: Delete.
	* config/sparc/vxworks.mt, vx-share/dbgRpcLib.h: Delete.
	* vx-share/ptrace.h, vx-share/regPacket.h: Delete.
	* vx-share/vxTypes.h, vx-share/vxWorks.h: Delete.
	* vx-share/wait.h, vx-share/xdr_ld.c: Delete.
	* vx-share/xdr_ld.h, vx-share/xdr_ptrace.c: Delete.
	* vx-share/xdr_ptrace.h, vx-share/xdr_rdb.c: Delete.
	* vx-share/xdr_rdb.h, remote-vxsparc.c: Delete.
	* remote-vxmips.c, remote-vx.c: Delete.
	* remote-vx68.c: Delete.
	* config/m68k/tm-os68k.h: Remove reference to VxWorks.
	* config/m68k/os68k.mt, ada-lang.h: Ditto.
	* Makefile.in (HFILES_NO_SRCDIR, ALLDEPFILES, remote-vx68.o)
	(remote-vx.o, remote-vxmips.o, remote-vxsparc.o): Delete vx files.

2004-11-13  Eli Zaretskii  <eliz@gnu.org>

	* config/i386/xm-go32.h: Don't include fopen-bin.h.
	Don't define CRLF_SOURCE_FILES and DIRNAME_SEPARATOR.

	* source.c (OPEN_MODE, FDOPEN_MODE): Remove the definitions in the
	branch that doesn't define CRLF_SOURCE_FILES; always use
	binary-mode open.
	(print_source_lines_base, forward_search_command)
	(reverse_search_command): Enable the code that accepts DOS-style
	CRLF line endings on all platforms (this removes the need for
	CRLF_SOURCE_FILES).

	* defs.h: Fix wording of the comment before FOPEN_RB.
	(DIRNAME_SEPARATOR) [__MSDOS__]: Define to ';'.

	* config/djgpp/fnchange.lst: Group renames for opcode directory
	together.

	* config/djgpp/djconfig.sh: Replace file names that don't exist
	anymore with existing files, for checking the unpacked
	distribution.

	* config/djgpp/config.sed (am_cv_exeext, lt_cv_sys_max_cmd_len):
	Export pre-cooked values in configure-* targets that begin with
	"@test -f stage_last".

2004-11-12  Andrew Cagney  <cagney@gnu.org>

	* defs.h (enum lval_type): Delete lval_reg_frame_relative.
	* value.h (struct value): Update comment.
	* valops.c (value_assign): Fold lval_reg_fame_relative into
	lval_register.
	* findvar.c (value_from_register, locate_var_value): Ditto.

2004-11-12  Randolph Chung  <tausq@debian.org>

	* config/tm/tm-hppa.h (SYMBOLS_CAN_START_WITH_DOLLAR): Remove.
	* parse.c (SYMBOLS_CAN_START_WITH_DOLLAR): Remove.
	(write_exp_msymbol): Remove conditional check for symbols starting 
	with $.  Update comments.

2004-11-12  Randolph Chung  <tausq@debian.org>

	* pa64solib.c (pa64_solib_thread_start_addr): Rename from 
	so_lib_thread_start_addr.
	* pa64solib.h (so_list): Forward declare.
	(pa64_solib_thread_start_addr): Prototype.
	* somsolib.c (SHL_LOAD, SHL_UNLOAD): Define if not already defined.
	(no_shared_libraries): Remove.
	(som_solib_thread_start_addr): Rename from so_lib_thread_start_addr.
	* somsolib.h (som_solib_thread_start_addr): Likewise; prototype.
	* hpread.c (hpread_process_one_debug_symbol): Use either the som or
	the elf solib handler to find the start address.

	* config/pa/hppahpux.mh (NATDEPFILES): Move target-specific support 
	files to the target makefile.
	* config/pa/hpux1020.mh (NATDEPFILES):  Likewise.
	* config/pa/hpux11.mh (NATDEPFILES): Likewise.
	* config/pa/hpux11w.mh (NATDEPFILES): Likewise.

	* config/pa/hppa64.mt (TDEPFILES): Put target-specific support 
	files for symbol reading and shared library handling here.
	* config/pa/hppahpux.mt (TDEPFILES): Likewise.  
	(PA_SOM_ONLY): Define so we can build a 32-bit SOM only target 
	without bringing in 64-bit support.

2004-11-12  Andrew Cagney  <cagney@gnu.org>

	* sparc-tdep.c: Replace VALUE_TYPE with value_type.
	* v850-tdep.c, sparc64-tdep.c, sh-tdep.c: Ditto.
	* sh64-tdep.c, s390-tdep.c, mcore-tdep.c: Ditto.
	* h8300-tdep.c, arm-linux-tdep.c, amd64-tdep.c: Ditto.
	* hppa-tdep.c, mips-tdep.c, m88k-tdep.c: Ditto.
	* m68hc11-tdep.c, m32r-tdep.c, ia64-tdep.c: Ditto.
	* frv-tdep.c, cris-tdep.c, avr-tdep.c, alpha-tdep.c: Ditto.

	Merge VALUE_REGNO and VALUE_FRAME_REGNUM into VALUE_REGNUM.
	* value.h (VALUE_REGNO, VALUE_FRAME_REGNUM): Delete.
	(VALUE_REGNUM): Define.
	(struct value): Delete location.regnum, rename "regno" to
	"regnum".
	* value.c, valops.c, valarith.c, findvar.c: Update.

	* value.h (VALUE_TYPE, VALUE_NEXT, VALUE_OFFSET, VALUE_BITSIZE)
	(VALUE_BITPOS): Delete.
	(value_type, value_offset, value_bitsize, value_bitpos): Declare.
	* value.c (value_type, value_offset, value_bitpos)
	(value_bitsize): New functions.  Update references.
	* arm-tdep.c, gnu-v3-abi.c, hpacc-abi.c, gnu-v2-abi.c: Update.
	* f-valprint.c, cp-valprint.c, c-valprint.c: Update.
	* ada-valprint.c, typeprint.c, scm-valprint.c, scm-exp.c: Update.
	* p-valprint.c, jv-valprint.c, jv-lang.c, varobj.c: Update.
	* objc-lang.c, ada-lang.c, std-regs.c, stack.c: Update.
	* infcall.c, linespec.c, printcmd.c, valarith.c: Update.
	* valops.c, eval.c, findvar.c, breakpoint.c: Update.
	* tracepoint.c, ax-gdb.c, mi/mi-main.c, cli/cli-dump.c:
	* rs6000-tdep.c, ppc-sysv-tdep.c: Update.

2004-11-12  Andrew Cagney  <cagney@gnu.org>

	* cris-tdep.c (cris_register_offset): Delete, never called.
	(cris_spec_reg_applicable): Delete cris_ver_sim.
	* MAINTAINERS: List d10v as OBSOLETE.
	* rdi-share/host.h (FOPEN_WB): #ifdef 0 out definitions of
	FOPEN_WB et.al., defined by "fopen-bin.h".

2004-11-12  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_skip_permanent_breakpoint): Move definition ...
	* hppa-hpux-tdep.c (hppa_skip_permanent_breakpoint): ... to here.
	* config/pa/tm-hppa.h (SKIP_PERMANENT_BREAKPOINT): Move definition ...
	* config/pa/tm-hppah.h (SKIP_PERMANENT_BREAKPOINT): ... to here.

2004-11-12  Mark Kettenis  <kettenis@jive.nl>

	* tui/tui-io.c: Don't include "terminal.h".
	* Makefile.in (tui-io.o): Update dependencies.

2004-11-12  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* Makefile.in (m32r-linux-tdep.o): Update dependencies.
	* m32r-linux-tdep.c (m32r_linux_init_abi): Call
	set_gdbarch_regset_from_core_section for core file support.
	(m32r_linux_supply_gregset, m32r_linux_regset_from_core_section):
	New functions.

2004-11-11  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (skip_prologue_hard_way): Make static, add
	stop_after_branch parameter and use it to determine if we should look
	at the delay slot of the first branch insn to find prologue insns.
	(hppa_skip_prologue): Update comment and call to skip_prologue_hard_way.
	(hppa_frame_cache): Likewise.

2004-11-11  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_cache): Properly handle the frame pointer
	register so that it can be unwound from anywhere in the prologue.

2004-11-10  msnyder  <msnyder@redhat.com>

	* rs6000-tdep.c (skip_prologue): After saving lr_offset, 
	must invalidate lr_reg (so we don't try to save it again).  
	Ditto for cr_offset and cr_reg.

2004-11-05  Jon Beniston <jon@beniston.com>

	Committed by Andrew Cagney.
	* remote.c (putpkt_binary) Fix PR gdb/1806. Send an ACK 
	when an unexpected packet is received, as the target stubs 
	continually retransmit the same packet until ACKed.
	
2004-11-10  Randolph Chung  <tausq@debian.org>

	* frame.c (get_prev_frame): Use get_frame_type to retrieve the 
	frame's type.

2004-11-10  Randolph Chung  <tausq@debian.org>

	* blockframe.c (inside_entry_func): Move to .....
	* frame.c (inside_entry_func): ... here, and make static.
	(backtrace_past_entry): New flag.
	(get_prev_frame): Stop backtrace at the entry function if enabled
	by flag.  Update comments.
	(_initialize_frame): Add command to set backtrace_past_entry flag.
	* defs.h (inside_entry_func): Remove prototype.

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

	* dwarf2read.c: Fix formatting.

2004-11-10  Andrew Cagney  <cagney@gnu.org>

	* value.h (COERCE_REF, COERCE_ARRAY, COERCE_NUMBER, COERCE_ENUM)
	(coerce_ref, coerce_array, coerce_number, coerce_enum): Replace
	macros with function declarations.
	* value.c (coerce_ref, coerce_array, coerce_number)
	(coerce_enum): New functions.
	(value_as_long, value_as_address): Update.
	* ada-lang.c (ada_coerce_ref, ada_value_binop) 
	(ada_evaluate_subexp, ada_value_assign, ada_value_struct_elt): Update.
	* jv-lang.c (evaluate_subexp_java): Update.
	* valarith.c (value_less, value_neg, value_complement)
	(value_binop, value_add, value_subscript, value_x_binop) 
	(value_logical_not, value_sub): Update.
	* valops.c (check_field, value_struct_elt, value_ind)
	(value_find_oload_method_list, value_cast, value_assign): Update.
	* eval.c (evaluate_subexp_standard): Update.

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

	* mips-tdep.c (mips32_relative_offset): Change return type to
	LONGEST, change argument type to ULONGEST.  Fix sign-extension.

2004-11-10  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa32_register_name, hppa64_register_name): Make static.
	(hppa32_push_dummy_call, hppa64_push_dummy_call): Likewise.
	(hppa_fetch_pointer_argument): Likewise.
	(hppa_frame_cache): Use safe_frame_unwind_memory instead of 
	deprecated_read_memory_nobpt.
	(_initialize_hppa_tdep): Replace deprecated_add_show_from_set/
	add_set_cmd sequence with add_setshow_boolean_cmd.

2004-11-09  Andrew Cagney  <cagney@gnu.org>

	GDB 6.3 released from GDB 6.3 branch.

2004-11-09  Andrew Cagney  <cagney@gnu.org>

	* values.c: Rename to ...
	* value.c: ..., new file.
	* Makefile.in: Update.

2004-11-09  Daniel Jacobowitz  <dan@debian.org>

	* dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Correct allocated
	size.

2004-11-09  Andrew Cagney  <cagney@gnu.org>

	* TODO: Delete.

	* value.h (struct value): Delete field bfd_section.
	(VALUE_BFD_SECTION): Delete macro.
	(COERCE_REF): Update.
	(value_at, value_at_lazy): Delete asection parameter.
	* printcmd.c (print_formatted, x_command): Update.
	(do_examine): Delete asection parameter.
	(next_section): Delete variable.
	* valops.c (value_cast, value_at, value_at_lazy)
	(value_coerce_function, value_addr, value_ind, value_string) 
	(find_rt_vbase_offset, value_full_object): Update.
	* hpacc-abi.c (hpacc_virtual_fn_field)
	(hpacc_value_rtti_type): Update.
	* gnu-v3-abi.c (gnuv3_rtti_type, gnuv3_virtual_fn_field) 
	(gnuv3_baseclass_offset): Update.
	* f-valprint.c (f_val_print): Update.
	* c-valprint.c (c_val_print): Update.
	* p-valprint.c (pascal_val_print): Update.
	* jv-valprint.c (java_value_print): Update.
	* jv-lang.c (java_class_from_object, evaluate_subexp_java): Update.
	* ada-lang.c (ada_value_primitive_packed_val)
	(ada_evaluate_subexp): Update.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Update.
	* expprint.c (print_subexp_standard): Update.
	* infcall.c (call_function_by_hand): Update.
	* valarith.c (value_add): Update.
	* eval.c (evaluate_subexp_standard): Update.
	* values.c (allocate_value, value_copy, value_static_field): Update.
	* findvar.c (read_var_value, locate_var_value): Update.
	
2004-11-09  Andrew Cagney  <cagney@gnu.org>

	* i386-linux-tdep.c: Include "dwarf2-frame.h".
	* Makefile.in: Update all dependencies.

2004-11-08  Andrew Cagney  <cagney@gnu.org>

	* sentinel-frame.c (sentinel_frame_prev_pc): New function.
	(sentinel_frame_unwinder): Add the prev_pc method.
	* frame.c (frame_pc_unwind): Use the per-frame pc unwinder when
	available.  Do not handle the sentinel-frame case.
	* frame-unwind.h (frame_prev_register_ftype): Define.
	(struct frame_unwind): Add prev_pc;

2004-11-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* configure.in: Check for ncurses/term.h.
	* gdb_curses.h: Include term.h here, prefering ncurses/term.h.
	* utils.c: Include gdb_curses.h instead of curses.h and term.h.
	* tui/tui.c: Don't include term.h.
	* configure, config.in: Rebuilt.

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

	* m68kbsd-nat.c: Include "inf-ptrace.h".
	(_initialize_m68kbsd_nat): Fix pasto.
	* Makefile.in (m68kbsd-nat.o): Update dependencies.

2004-11-08  Randolph Chung  <tausq@debian.org>

	* infrun.c (debug_infrun): New variable.
	(resume, proceed, wait_for_inferior): Annotate with debug messages.
	(handle_inferior_event, keep_going): Likewise.
	(_initialize_infrun): Register "set debug infrun" command.

2004-11-08  Andreas Schwab  <schwab@suse.de>

	* linux-nat.c (PTRACE_EVENT_VFORK_DONE): Renamed from
	PTRACE_EVENT_VFORKDONE.
	(child_follow_fork): Adjust.

2004-11-08  Andrew Cagney  <cagney@gnu.org>

	* README: Refer to 6.3, not 6.2, update directory listing droppng
	references to intl/ and mmalloc/.
	* PROBLEMS: Refer to 6.3 not 6.2.

	* PROBLEMS: Delete no-longer applicable problems.

2004-11-07  Andrew Cagney  <cagney@redhat.com>
	    Daniel Jacobowitz  <dan@debian.org>
	    Roland McGrath  <roland@redhat.com>

	* Makefile.in (symfile-mem.o): Update dependencies.
	* i386-linux-tdep.c (i386_linux_dwarf_signal_frame_p): New.
	(i386_linux_init_abi): Call dwarf2_frame_set_signal_frame_p.
	* inf-ptrace.c (inf_ptrace_attach): Call
	observer_notify_inferior_created.
	* inftarg.c (child_attach): Likewise.
	* symfile-mem.c: Include "observer.h", "auxv.h", and "elf/common.h".
	(symbol_file_add_from_memory): Take NAME argument.  Use it for
	the new BFD's filename.
	(add_symbol_file_from_memory_command): Update call to
	symbol_file_add_from_memory.
	(struct symbol_file_add_from_memory_args, add_vsyscall_page)
	(symbol_file_add_from_memory_wrapper): New.
	(_initialize_symfile_mem): Register add_vsyscall_page as an
	inferior_created observer.

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

	* m68kbsd-nat.c (m68kbsd_fetch_inferior_registers): Rename from
	fetch_inferior_registers.  Make static.
	(m68kbsd_store_inferior_registers): Rename from
	store_inferior_registers.  Make static.
	(_initialize_m68kbsd_nat): Construct and add target vector.
	* config/m68k/nbsdaout.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-ptrace.o.
	(NAT_FILE): Set to tm-solib.h.
	(LOADLIBES): New variable.
	* config/m68k/nbsdelf.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-ptrace.o.
	(NAT_FILE): Delete variable.
	* config/m68k/obsd.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-ptrace.o.
	(NAT_FILE): Set to tm-solib.h.
	* config/m68k/nm-nbsdaout.h: Remove file.

2004-11-07  Daniel Jacobowitz  <dan@debian.org>

	* dwarf2-frame.c (struct dwarf2_frame_ops): Add signal_frame_p.
	(dwarf2_frame_set_signal_frame_p, dwarf2_frame_signal_frame_p)
	(dwarf2_signal_frame_unwind): New.
	(dwarf2_frame_sniffer): Use dwarf2_frame_signal_frame_p.
	* dwarf2-frame.h (dwarf2_frame_set_signal_frame_p): New prototype.

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

	* Makefile.in (mips64obsd-tdep.o): Fix typo.

	* mipsnbsd-tdep.c (mipsnbsd_ilp32_fetch_link_map_offsets): Renamed
	from mipsnbsd_ilp32_solib_svr4_fetch_link_map_offsets.  Trim sizes
	to only include the structure members we actually need.
	(mipsnbsd_lp64_fetch_link_map_offsets): Renamed from
	mipsnbsd_lp64_solib_svr4_fetch_link_map_offsets.  Trim sizes to
	only include the structure members we actually need.
	(mipsnbsd_init_abi): Update.

	* mips64obsd-nat.c: Include "mips-tdep.h".
	(MIPS64OBSD_NUM_REGS): Remove define.
	(MIPS_PC_REGNUM, MIPS_FP0_REGNUM, MIPS_FSR_REGNUM): New defines.
	(mips64obsd_supply_gregset, mips64obsd_collect_gregset): Handle
	floating-point registers correctly.
	* Makefile.in (mips64obsd-nat.o): Update dependencies.

	* mips64obsd-tdep.c: Include "trad-frame.h", "tramp-frame.h" and
	"gdb_assert.h".
	(mips64obsd_sigframe_init): New function.
	(mips64obsd_sigframe): New variable.
	(mips64obsd_init_abi): Add comments.  Prepend mips64obsd_sigrame
	unwinder.
	* Makefile.in (mips64obsd-tdep.o): Update dependencies.

2004-11-06  Joel Brobecker  <brobecker@gnat.com>

	* alpha-mdebug-tdep.c: #include mdebugread.h.
	Replace alpha_extra_func_info_t by struct mdebug_extra_func_info *.
	* Makefile.in (alpha-mdebug-tdep.o): Add dependency on mdebugread.h.

2004-11-05  Andrew Cagney  <cagney@gnu.org>

	* dwarf2-frame.c (dwarf2_frame_cache): Only complain when both the
	CFI and the init_reg method leave the register unspecified.
	Include the register name in the "Incomplete CFI data" complaint.
	Supress leading zeros in the address.

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

	* dwarf2-frame.c (decode_frame_entry_1): Avoid indirection when
	skipping a personality routine in a CIE augmentation.

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

	* defs.h (fatal, vfatal): New function prototypes.
	* stack.c (backtrace_command_stub): Stub to call backtrace_command_1
	via catch_errors.
	(backtrace_command): Change to call backtrace_command_stub via
	catch_errors instead of calling backtrace_command_1 directly.
	(backtrace_full_command): Ditto.
	* utils.c (error_stream_1): New static function.
	(verror): Change to call error_stream_1 instead of error_stream.
	(error_stream): Call error_stream_1 with RETURN_ERROR argument.
	(vfatal, fatal): New functions.

2004-11-05  Andrew Cagney  <cagney@gnu.org>

	* stack.c (parse_frame_specification_1): Clear selected_frame_p
	when not using selected frame.

2004-11-05  Mark Kettenis  <kettenis@jive.nl>

	* dwarf2-frame.c (decode_frame_entry_1): Correctly skip
	personality routine in a CIE augmentation.

2004-11-05  Felix Lee  <felix+log1@specifixinc.com>

	* stack.c (set_current_sal_from_frame): New function.
	(print_args_stub): Use it.
	(print_frame_info): Don't set sal here.

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

	* dwarf2-frame.c (read_encoded_value): Change type of third
	argument to `unsigned char *'.  Add support for LEB128 encodings.

2004-11-04  Jim Blandy  <jimb@redhat.com>

	* gdbtypes.c (make_qualified_type): Doc fix.  Add assertion to
	prevent cross-objfile references.
	(make_cv_type): Doc fix.  Don't create cross-objfile references,
	even for stub types.
	(replace_type): Add assertion to prevent cross-objfile references.
	(check_typedef): Never resolve a stub type by copying over a type
	from another file.

2004-11-04  Kei Sakamoto  <sakamoto.kei@denesas.com>

	* Makefile.in (m32r-tdep.o): Update dependencies.
	* m32r-tdep.c (m32r_gdbarch_init): Call gdbarch_init_osabi for
	ABI-specific overrides.

2004-11-04  Kei Sakamoto  <sakamoto.kei@denesas.com>

	* m32r-tdep.c (m32r_memory_insert_breakpoint): Remove
	unnecessary parallel execution bit.
	(m32r_memory_remove_breakpoint): Ditto.
	(m32r_breakpoint_from_pc): Update.

2004-11-03  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_cache): Use frame_pc_unwind instead of
	frame_func_unwind to locate the unwind entry.
	(hppa_frame_this_id): Likewise.

2004-11-03  Andrew Cagney  <cagney@gnu.org>

	* gdb/NEWS: Mention internationalization, m32r-*-linux-gnu, 'p'
	packet, obsolete configurations, end-of-life deprecated_registers.

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

	* dwarf2-frame.c (read_encoded_value): Set proper size for signed
	encodings as well as unsigned encodings.

2004-11-02  Andrew Cagney  <cagney@gnu.org>

	* value.h (COERCE_VARYING_ARRAY): Delete.
	* valops.c (value_cast, value_slice): Delete use.
	* valarith.c (value_subscript, value_concat): Delete use.

2004-11-02  Paul Hilfinger  <hilfingr@nile.gnat.com>

	* NEWS: GDB understands GNAT Ada.

2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>

	* Makefile.in (ALLDEPFILES): Add amd64-sol2-tdep.c.
	(amd64-sol2-tdep.o): Add dependencies.
	* amd64-sol2-tdep.c, config/i386/sol2-64.mh,
	config/i386/sol2-64.mt: New files.
	* i386-sol2-nat.c (amd64_sol2_gregset64_reg_offset,
	amd64_sol2_gregset32_reg_offset, _initialize_amd64_sol2_nat): New.
	(supply_gregset): Correct order of arguments to
	amd64_supply_native_gregset.
	(fill_gregset): Correct order of arguments to
	amd64_collect_native_gregset.
	* configure.host (i[34567]86-*-solaris2.1[0-9]*): Add new case.
	* configure.tgt (i[34567]86-*-solaris2.1[0-9]*): Likewise.
	* configure.in (*-*-solaris2.[[6789]]): Add *-*-solaris2.1[[0-9]]
	for definition of NEW_PROC_API.
	* configure: Regenerate.

2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2004-11-01  Andrew Cagney  <cagney@gnu.org>

	* configure.tgt: Mark d10v-*-* as obsolete.
	* config/d10v/d10v.mt, d10v-tdep.c: Obsolete files.

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

	* values.c (modify_field): Correct handling of bit-fields that
	don't fit in 32 bits.  Use unsigned operations throughout and 
	simplify the code a bit.  Document preconditions.

2004-10-31  Andrew Cagney  <cagney@gnu.org>

	* config/pa/tm-linux.h: Delete #undef IN_SOLIB_CALL_TRAMPOLINE.
	* config/tm-sysv4.h (IN_SOLIB_CALL_TRAMPOLINE): Delete.
	(in_plt_section): Delete.

	* mips-tdep.c (mips_in_solib_return_trampoline): Delete.
	(mips_gdbarch_init): Do not set same.

	* arch-utils.c (generic_in_solib_call_trampoline): Delete.
	* arch-utils.h (generic_in_solib_call_trampoline): Delete.

	* gdbarch.sh (in_solib_call_trampoline): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.

	* hppa-tdep.c (hppa_stub_unwind_sniffer): Replace
	IN_SOLIB_CALL_TRAMPOLINE with tdep.in_solib_call_trampoline.
	* hppa-tdep.h (struct gdbarch_tdep): Add in_solib_call_trampoline.
	* hppa-hpux-tdep.c (hppa_hpux_init_abi): Set same.
	* hppa-linux-tdep.c (hppa_linux_init_abi): Ditto.

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

	* mipsnbsd-nat.c: Include "target.h" and "inf-ptrace.h".
	(mipsnbsd_fetch_inferior_registers): Rename from
	fetch_inferior_registers.  Make static.
	(mipsnbsd_store_inferior_registers): Rename from
	store_inferior_registers.  Make static.
	(_initialize_mipsnbsd_nat): New function and prototype.
	* Makefile.in (mipsnbsd-nat.o): Update dependencies.
	* config/mips/nbsd.mh (NAT_CLIBS, NAT_FILE): Remove variables.
	(NATDEPFILES): Remove infptrace.o and inftarg.o.  Add
	inf-ptrace.o.

2004-10-31  Andrew Cagney  <cagney@gnu.org>

	* xstormy16-tdep.c (xstormy16_in_solib_call_trampoline)
	(xstormy16_gdbarch_init): Do not set in_solib_call_trampoline,
	delete corresponding unused function.
	* armnbsd-tdep.c (arm_netbsd_aout_init_abi): Really do not set
	in_solib_call_trampoline.
	* config/arm/tm-embed.h (IN_SOLIB_CALL_TRAMPOLINE): Delete.
	* config/powerpc/tm-linux.h: Delete #undef IN_SOLIB_CALL_TRAMPOLINE.
	* config/mips/tm-nbsd.h: Ditto.
	* config/arm/tm-linux.h: Ditto.
	* config/mips/tm-linux.h: Ditto.

	* armnbsd-tdep.c (arm_netbsd_aout_init_abi)
	(arm_netbsd_aout_in_solib_call_trampoline): Do not set
	in_solib_call_trampoline, delete corresponding unused function.
	* vaxnbsd-tdep.c (vaxnbsd_aout_in_solib_call_trampoline) 
	(vaxnbsd_aout_init_abi): Ditto.
	* sparcnbsd-tdep.c (sparcnbsd_aout_in_solib_call_trampoline) 
	(sparc32nbsd_aout_init_abi): Ditto.
	* ppc-linux-tdep.c (ppc64_in_solib_call_trampoline) 
	(ppc_linux_init_abi): Ditto.
	* ns32knbsd-tdep.c (ns32knbsd_aout_in_solib_call_trampoline) 
	(ns32knbsd_init_abi_aout): Ditto.
	* mips-tdep.c (mips_in_call_stub, mips_gdbarch_init): Ditto.
	* mips-linux-tdep.c (mips_linux_init_abi): Ditto.
	* m68kbsd-tdep.c (m68kbsd_aout_in_solib_call_trampoline) 
	(m68kbsd_aout_init_abi): Ditto.
	* i386-cygwin-tdep.c (i386_cygwin_in_solib_call_trampoline) 
	(i386_cygwin_init_abi): Ditto.
	* i386bsd-tdep.c (i386bsd_aout_in_solib_call_trampoline) 
	(i386bsd_init_abi): Ditto.

	* sparc-sol2-tdep.c (sparc32_sol2_init_abi): Do not set
	in_solib_call_trampoline to in_plt_entry, IN_SOLIB_CALL_TRAMPOLINE
	isn't used by this architecture.
	* sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Ditto.
	* sparc64obsd-tdep.c (sparc64obsd_init_abi): Ditto.
	* sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* ppc-linux-tdep.c (ppc_linux_init_abi): Ditto.
	* m68klinux-tdep.c (m68k_linux_init_abi): Ditto.
	* i386-tdep.c (i386_svr4_init_abi): Ditto.
	* i386-nto-tdep.c (i386nto_init_abi): Ditto.
	* arm-linux-tdep.c (arm_linux_init_abi): Ditto.
	* amd64-tdep.c (amd64_init_abi): Ditto.

	* vaxnbsd-tdep.c (vaxnbsd_elf_init_abi): Do not set
	in_solib_call_trampoline to its default value of
	generic_in_solib_call_trampoline.
	* ppcobsd-tdep.c (ppcobsd_init_abi): Ditto.
	* m68kbsd-tdep.c (m68kbsd_elf_init_abi): Ditto.
	* i386obsd-tdep.c (i386obsd_elf_init_abi): Ditto.
	* i386nbsd-tdep.c (i386nbsdelf_init_abi): Ditto.
	* i386fbsd-tdep.c (i386fbsd_init_abi): Ditto.
	* hppabsd-tdep.c (hppabsd_init_abi): Ditto.

	* mips-tdep.c (mips_dump_tdep): Don't print any of the macros.

	* config/mips/obsd64.mt (DEPRECATED_TM_FILE): Delete.

	* config/mips/tm-mips.h: Delete file.
	* remote-mips.c: Delete tm-mips.h from comment.
	* config/mips/embed.mt (DEPRECATED_TM_FILE): Delete.
	* config/mips/tm-nbsd.h: Don't include tm-mips.h.
	* config/mips/irix6.mt (DEPRECATED_TM_FILE): Delete.
	* config/mips/tm-linux.h: Don't include tm-mips.h.
	* config/mips/tm-vxmips.h: Don't include tm-mips.h.
	* config/mips/irix5.mt (DEPRECATED_TM_FILE): 
	* config/mips/tm-wince.h: Don't include.

	* mdebugread.h (MDEBUG_EFI_SYMBOL_NAME): Define.
	* mdebugread.c (MDEBUG_EFI_SYMBOL_NAME): Delete.
	* config/alpha/tm-alpha.h (MDEBUG_EFI_SYMBOL_NAME): Delete.
	* config/mips/tm-mips.h (MDEBUG_EFI_SYMBOL_NAME): Delete.

	* mdebugread.h (ecoff_relocate_efi): Delete declaration.
	* mdebugread.c (ecoff_relocate_efi): Delete function.
	* objfiles.c (objfile_relocate): Delete #ifdef
	MDEBUG_EFI_SYMBOL_NAME code.

2004-10-31  Orjan Friberg <organ.friberg@axis.com>
	    Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh (single_step_through_delay): Add.
	* gdbarch.h, gdbarch.c: Re-generate.
	* config/mips/tm-mips.h (STEP_SKIPS_DELAY_P, STEP_SKIPS_DELAY)
	(mips_step_skips_delay): Delete.
	* mips-tdep.c (mips_single_step_through_delay): Replace
	mips_step_skips_delay.
	(mips_gdbarch_init): Set single_step_through_delay.
	(mips_dump_tdep): Do not print STEP_SKIPS_DELAY.
	
2004-10-31  Mark Kettenis  <kettenis@gnu.org>

	* tramp-frame.c (tramp_frame_prepend_unwinder): Set unwinder type
	from TRAMP_FRAME frame type.

2004-10-31  Andrew Cagney  <cagney@gnu.org>

	* mdebugread.c (parse_procedure): Wrap use of RA_REGNUM in #ifdef.

	* mips-tdep.c (mips_ignore_helper): Delete.
	* config/mips/tm-mips.h (DEPRECATED_IGNORE_HELPER_CALL): Delete.
	* infrun.c (handle_inferior_event): Delete #ifdef
	DEPRECATED_IGNORE_HELPER_CALL code.

	* config/mips/tm-mips.h (RA_REGNUM): Delete.

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

	* i386v4-nat.c (supply_gregset, supply_fpregset, fill_gregset)
	(fill_fpregset): Do not compile for 64-bit systems.
	* i386-sol2-nat.c: Don't include "i386v4-nat.c".
	* Makefile.in (i386-sol2-nat.o): Update dependencies.
	* config/i386/i386sol2.mh (NATDEPFILES): Add back i386v4-nat.c.

2004-10-30  Andrew Cagney  <cagney@gnu.org>

	* mdebugread.h: Include "coff/sym.h" and "coff/symconst.h".
	(struct mdebug_extra_func_info): Define.
	* config/alpha/tm-alpha.h: Delete same.
	* config/mips/tm-mips.h: Delete same.
	* mdebugread.c: Delete same.
	* Makefile.in: Update dependencies.
	* mips-mdebug-tdep.c: Include "mdebugread.h".

	* objfiles.c: Include "mdebugread.h".
	* mdebugread.c: Include "mdebugread.h".
	(ecoff_relocate_cfi): Delete.
	* config/alpha/tm-alpha.h (ecoff_relcate_cfi): Delete.
	* config/mips/tm-mips.h (ecoff_relcate_cfi): Delete.
	* mdebugread.h (ecoff_relocate_efi): New file.
	* Makefile.in: Update dependencies.
	
	* mips-tdep.c (struct frame_extra_info): Delete.
	(temp_proc_desc): Delete.

	* config/alpha/tm-alpha.h (MDEBUG_EFI_SYMBOL_NAME): Rename
	MIPS_EFI_SYMBOL_NAME.
	(mips_extra_func_info_t, mips_extra_func_info): Delete.
	(struct mdebug_extra_func_info): Replace struct
	alpha_extra_func_info and alpha_extra_func_info_t.
	* config/mips/tm-mips.h (MDEBUG_EFI_SYMBOL_NAME): Rename
	MIPS_EFI_SYMBOL_NAME.
	(struct mdebug_extra_func_info): Replace struct
	alpha_extra_func_info and alpha_extra_func_info_t.
	* objfiles.c, mips-tdep.c, mips-mdebug-tdep.c: Update.
	* mdebugread.c, alpha-mdebug-tdep.c: 

	Suggested by Mark Kettenis.
	* config/mips/tm-mips.h (struct mips_extra_func_info): Delete
	fields frame_adjust and high_addr.
	* mips-mdebug-tdep.c (PROC_HIGH_ADDR, PROC_FRAME_ADJUST): Delete.
	(non_heuristic_proc_desc): Delete references.

	* mips-tdep.h (MIPS_PRID_REGNUM): Add.
	* config/mips/tm-mips.h (PRID_REGNUM): Delete.
	* mips-tdep.c: Update.

	* mips-tdep.h (MIPS_FIRST_EMBED_REGNUM)
	(MIPS_LAST_EMBED_REGNUM): Add.
	* config/mips/tm-mips.h (FIRST_EMBED_REGNUM)
	(LAST_EMBED_REGNUM): Delete.
	* mipsv4-nat.c, mips-tdep.c, mips-linux-tdep.c: Update.

	* config/mips/tm-mips.h (PS_REGNUM): Delete.
	* mips-tdep.h (MIPS_PS_REGNUM): Add.
	* remote-vxmips.c, mipsv4-nat.c, mips-tdep.c: Update.
	* mips-linux-nat.c: Update.

	* mips-tdep.h: Add comments on registers.
	(MIPS_UNUSED_REGNUM): Define.
	* config/mips/tm-mips.h (ZERO_REGNUM, UNUSED_REGNUM)
	(T9_REGNUM, V0_REGNUM, A0_REGNUM): Delete.
	* irix5-nat.c, mipsv4-nat.c, mips-linux-tdep.c: Update.
	* mips-linux-nat.c, remote-mips.c: Update.

	* config/mips/tm-mips.h (t_insn): Delete.
	* mips-tdep.c (mips_fetch_instruction, mips_skip_trampoline_code):
	Replace t_insn with ULONGEST.

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

	* mipsnbsd-tdep.c: Include "regset.h" and "gdb_assert.h".
	(MIPS_PC_REGNUM, MIPS_FP0_REGNUM, MIPS_FSR_REGNUM)
	(MIPSNBSD_NUM_GREGS, MIPSNBSD_NUM_FPREGS): New defines.
	(fetch_core_registers, fetch_elfcore_registers): Remove functions.
	(mipsnbsd_core_fns, mipsnbsd_elfcore_fns): Remove variables.
	(mipsnbsd_core_osabi_sniffer): New function.
	(mipsnbsd_init_abi): Set regset_from_core_section.
	(_initialize_mipsnbsd_tdep): Remove calls to
	deprecated_add_core_fns.
	(mipsnbsd_supply_fpregset, mipsnbsd_supply_gregset)
	(mipsnbsd_regset_from_core_section): New functions.
	(mipsnbsd_gregset, mipsnbsd_fpregset): New variables.
	* Makefile.in (mipsnbsd-tdep.o): Update dependencies.

	* procfs.c (procfs_fetch_registers, procfs_store_registers): Like
	Remove optimization for DEPRECATED_FP_REGNUM.

2004-10-30  Andrew Cagney  <cagney@gnu.org>

	* alpha-tdep.c (alpha_setup_arbitrary_frame): Delete.
	* config/alpha/tm-alpha.h (SETUP_ARBITRARY_FRAME): Delete.
	(alpha_setup_arbitrary_frame): Delete.
	* mips-tdep.c (setup_arbitrary_frame): Delete.
	* config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Delete.
	(setup_arbitrary_frame): Delete.
	* stack.c (parse_frame_specification_1): When specified, call
	create_new_frame with two parameters.  Delete #ifdef
	SETUP_ARBITRARY_FRAME.

	* config/mips/tm-mips.h (MIPS16_INSTLEN, MIPS_NUMREGS)
	(MIPS_INSTLEN): Delete.
	* mips-tdep.h (enum mips_insn_size): Rename MIPS32_INSN_SIZE and
	MIPS16_INSN_SIZE to MIPS_INSN32_SIZE and MIPS_INSN16_SIZE.
	* remote-mips.c, mips-tdep.c: Update.

	* config/mips/embed.mt (TDEPFILES): Add mips-mdebug-tdep.o.
	* mips-mdebug-tdep.h, mips-mdebug-tdep.c: New files.
	* mips-tdep.c (mips_mdebug_frame_cache)
	(mips_mdebug_frame_this_id, mips_mdebug_frame_prev_register)
	(mips_mdebug_frame_unwind, mips_mdebug_frame_sniffer)
	(mips_mdebug_frame_base_address, mips_mdebug_frame_sniffer)
	(mips_mdebug_frame_base_sniffer, non_heuristic_proc_desc)
	(compare_pdr_entries, the_bfd, mips16_fetch_instruction): Delete.
	(mips_gdbarch_init): Do not append mdebug sniffers.
	(PROC_LOW_ADDR, PROC_HIGH_ADDR, PROC_FRAME_OFFSET) 
	(PROC_FRAME_REG, PROC_FRAME_ADJUST, PROC_REG_MASK) 
	(PROC_FREG_MASK, PROC_REG_OFFSET, PROC_FREG_OFFSET, PROC_PC_REG) 
	(PROC_SYMBOL, _PROC_MAGIC_): Delete.
	* Makefile.in: Update dependencies.

	* mips-tdep.h (mips_abi_regsize): Declare.
	* mips-tdep.c (mips_abi_regsize): Make non-static.

	* mips-tdep.c (gdb_print_insn_mips): Simplify.
	(make_mips16_addr): Delete.

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

	* i386-sol2-nat.c: New file.
	* Makefile.in (ALLDEPFILES): Add i386-sol2-nat.c and
	i386-sol2-tdep.c.
	(i386-sol2-nat.o): Update dependencies.
	* config/i386/i386sol2.mh (NATDEPFILES): Remove i386v4.o, add
	i386-sol2-nat.o.

2004-10-30  Andrew Cagney  <cagney@gnu.org>

	Total breakage identified by Joel Brobecker.
	* mips-tdep.c (after_prologue): Delete.
	(mips_skip_prologue): Use skip_prologue_using_sal.
	(heuristic_proc_desc): Delete, unused.

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

	* procfs.c (proc_get_gregs, proc_get_fpregs, proc_set_gregs)
	(proc_set_fpregs, procfs_fetch_registers, procfs_store_registers):
	Cleanup coding style.

2004-10-30  Andrew Cagney  <cagney@gnu.org>

	* mips-tdep.h (mips_pc_is_mips16): Declare.
	* mips-tdep.c (mips_pc_is_mips16): Rename pc_is_mips16, make
	non-static.  Update calls.

	* cli/cli-decode.c (add_setshow_enum_cmd): New function.
	* command.h (add_setshow_enum_cmd): Declare.
	* mips-tdep.c (_initialize_mips_tdep): Use add_setshow_enum_cmd.

	* mips-tdep.c (_initialize_mips_tdep): Use
	add_setshow_zinteger_cmd.
	
	* mips-tdep.c (mips_eabi_extract_return_value)
	(mips_o64_extract_return_value, mips_o64_store_return_value)
	(return_value_location, mips_eabi_reg_struct_has_addr)
	(mips_eabi_use_struct_convention)
	(mips_eabi_store_return_value): Delete.
	(mips_eabi_store_return_value): New function.
	(mips_eabi_return_value): New function.
	(mips_gdbarch_init): For O64 and EABI, delete
	extract_return_value, store_return_value, use_struct_convention
	and reg_struct_has_addr, add return_value.

	* mips-tdep.c (read_signed_register): Use
	regcache_cooked_read_signed.

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

	* mipsread.c: Cleanup coding style.
	(mipscoff_new_init, mipscoff_symfile_init, mipscoff_symfile_read)
	(mipscoff_symfile_finish): Remove prototypes.

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

	* mips-tdep.c (mips_fetch_instruction, mips16_fetch_instruction)
	(mips_mdebug_frame_cache, mips16_scan_prologue)
	(mips32_scan_prologue, mips_stub_frame_cache)
	(heuristic_proc_start, heuristic_proc_desc)
	(mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call)
	(mips_n32n64_return_value, mips_o32_push_dummy_call)
	(mips_o32_return_value, mips_o64_push_dummy_call)
	(mips_step_skips_delay, mips_skip_trampoline_code)
	(mips_gdbarch_init): Use MIPS_A0_REGNUM instead of A0_REGNUM,
	MIPS_RA_REGNUM instead of RA_REGNUM, MIPS_T9_REGNUM instead of
	T9_REGNUM, MIPS_V0_REGNUM instead of V0_REGNUM, MIPS_ZERO_REGNUM
	instead of ZERO_REGNUM, MIPS32_SIZE_INSN instead of MIPS_INSTLEN
	and MIPS16_INSN_SIZE instead of MIPS16_INSTLEN.
	(mips_dump_tdep): Don't print A0_REGNUM, RA_REGNUM,
	T9_REGNUM, V0_REGNUM, ZERO_REGNUM, MIPS_INSTLEN and
	MIPS16_INSTLEN.  Use MIPS_A0_REGNUM instead of A0_REGNUM.
	* mips-linux-tdep.c (mips_linux_o32_sigframe_init)
	(mips_linux_n32n64_sigframe_init): Use MIPS_ZERO_REGNUM instead of
	ZERO_REGNUM.
	* mipsnbsd-tdep.c (mipsnbsd_cannot_fetch_register)
	(mipsnbsd_cannot_store_register): Use MIPS_ZERO_REGNUM instead of
	ZERO_REGNUM.
	(mipsnbsd_get_longjmp_target): Use MIPS_A0_REGNUM instead of
	A0_REGNUM.
	* mipsnbsd-nat.c: Include "mips-tdep.h".
	(getregs_supplies): Use MIPS_ZERO_REGNUM instead of ZERO_REGNUM.
	* Makefile.in (mipsnbsd-nat.o): Update dependencies.

2004-10-29  Andrew Cagney  <cagney@gnu.org>

	* stack.c (parse_frame_specification_1): New function based on
	parse_frame_specification.  Add message and selected_frame_p
	paramters.  Truely always return non-NULL.
	(parse_frame_specification): Call parse_frame_specification_1.
	(frame_info): Update.  Eliminate target_has_stack check.
	(select_frame_command): Update.

2004-10-29  Andrew Cagney  <cagney@gnu.org>

	* frame.h (get_selected_frame): Add message parameter.
	* frame.c (get_selected_frame): Add and use message parameter.
	* stack.c (current_frame_command, return_command, locals_info)
	(catch_info, args_info, up_silently_base, down_silently_base): Use
	get_selected_frame with an explicit message.
	* thread.c, stack.c, sh-tdep.c, sh64-tdep.c: Update.
	* remote-rdp.c, remote-mips.c, remote-e7000.c: Update.
	* ocd.c, mi/mi-main.c, mi/mi-cmd-stack.c: Update.
	* infrun.c, inflow.c, infcmd.c, frame.c: Update.
	* findvar.c, eval.c, corelow.c, bsd-kvm.c: Update.
	* breakpoint.c: Update.

2004-10-29  Andrew Cagney  <cagney@gnu.org>

	* trad-frame.c (trad_frame_get_prev_register): Use
	frame_unwind_register instead of frame_register_unwind, do not
	recurse the register's location.
	* xstormy16-tdep.c (xstormy16_frame_prev_register): 
	* sparc-tdep.c (sparc32_frame_prev_register): Ditto.
	* sparc64-tdep.c (sparc64_frame_prev_register): Ditto.
	* sh-tdep.c (sh_frame_prev_register): Ditto.
	* m68k-tdep.c (m68k_frame_prev_register): Ditto.
	* i386-tdep.c (i386_frame_prev_register): Ditto.
	* dwarf2-frame.c (dwarf2_frame_prev_register): Ditto.
	* amd64-tdep.c (amd64_frame_prev_register): Ditto.

2004-10-28  Mark Kettenis  <kettenis@jive.nl>

	* proc-events.c: Fix several coding-style issues.  Consistently
	use #ifdef instead of #if defined().
	(proc_prettyfprint_fault, proc_prettyfprint_faultset): Use
	ARRAY_SIZE.
	(_initialize_proc_events): New prototype.

	* proc-why.c: Fix several coding-style issues.
	(proc_prettyfprint_why): Use ARRAY_SIZE.

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

	* remote.c (fetch_register_using_p): Construct 'p' packet in a
	manner independent of the host byte order.

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

	* mips-tdep.c (id_delayed): Remove prototype.

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

	* mips-tdep.h: Add MIPS_ZERO_REGNUM, MIPS_AT_REGNUM,
	MIPS_V0_REGNUM. MIPS_A0_REGNUM, MIPS_T9_REGNUM and MIPS_RA_REGNUM
	to enum with register numbers.
	(enum mips_insn_size): New enum.

2004-10-26  Andrew Cagney  <cagney@gnu.org>

	* config/mips/tm-linux.h: Delete #undef SKIP_TRAMPOLINE_CODE.
	* mips-tdep.c (mips_skip_trampoline_code): Rename mips_skip_stub.
	(mips_gdbarch_init): Update.
	(mips_dump_tdep): Do not print SKIP_TRAMPOLINE_CODE.

	* config/arm/tm-linux.h (IN_SOLIB_RETURN_TRAMPOLINE): Delete.
	* config/mips/tm-nbsd.h, config/mips/tm-linux.h: Delete #undef
	IN_SOLIB_RETURN_TRAMPOLINE.
	* mips-tdep.c (mips_dump_tdep): Do not print
	IN_SOLIB_RETURN_TRAMPOLINE.
	(mips_in_solib_return_trampoline): Rename mips_in_return_stub.
	(mips_gdbarch_init): Update.

	* mips-tdep.h (mips_software_single_step): Move to here ...
	* config/mips/tm-mips.h: ... from here.
	* config/mips/tm-linux.h (SOFTWARE_SINGLE_STEP_P) 
	(SOFTWARE_SINGLE_STEP): Delete.
	* mips-linux-tdep.c (mips_linux_init_abi): Set software_single_step.

2004-10-25  Andrew Cagney  <cagney@gnu.org>

	* NEWS: Add Changes since GDB 6.3 section.

2004-10-23  Andreas Schwab  <schwab@suse.de>

	* ada-lang.c (grow_vect): Return the new array instead of
	expecting pointer to pointer to avoid violation of aliasing rules.
	* ada-lang.h (GROW_VECT): Adapt call to grow_vect.

2004-10-23  Ulrich Weigand  <uweigand@de.ibm.com>

	* s390-tdep.c (enum pv_boolean): Remove.
	(pv_is_array_ref): Remove.
	(s390_on_stack): Remove.
	(S390_NUM_SPILL_SLOTS): Remove.
	(struct s390_prologue_data): Remove members 'spill' and 'back_chain',
	add members 'gpr_slot', 'fpr_slot', and 'back_chain_saved_p'.
	(s390_store): Track all stores of orginal incoming registers to the
	stack constant offsets relative to the CFA, instead of only tracking
	stores into specific spill slots.
	(s390_load): Likewise.
	(s390_analyze_prologue): Adapt to struct s390_prologue_data changes.
	(s390_prologue_frame_unwind_cache): Likewise.  Only track registers
	defined as call-saved by the ABI.
	(s390_push_dummy_call): Use bottom of dummy call argument save area
	as return value, not the top.  Do not store to the called function's
	register save area.
	(s390_unwind_dummy_id): Adapt accordingly.

2004-10-23  Andrew Cagney  <cagney@gnu.org>

	* objfiles.h (struct objfile): Rename obj_private to
	deprecated_obj_private, sym_private to deprecated_sym_private, and
	sym_stab_info to deprecated_sym_stab_info.
	* gdb-stabs.h: Update.
	* elfread.c: Update.
	* dbxread.c: Update.
	* coffread.c: Update.
	* xcoffread.c: Update.
	* symfile.c: Update.
	* somread.c: Update.
	* nlmread.c: Update.
	* mdebugread.c: Update.
	* hpread.c: Update.
	* coffread.c: Update.

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

	* mips64obsd-nat.c, mips64obsd-tdep.c: New files.
	* configure.host: Add mips64*-*-openbsd*.
	* configure.tgt: Add mips64*-*-openbsd*.
	* Makefile.in (ALLDEPFILES): Add mips64obsd-nat.o,
	mips64obsd-tdep.c.
	(mips64obsd-nat.o, mips64obsd-tdep.o): New dependecies.
	* config/mips/obsd64.mh, config/mips/obsd64.mt: New files.

2004-10-21  Joel Brobecker  <brobecker@gnat.com>

	* symtab.c (symbol_search_name): Minor reformatting.

2004-10-20  Joel Brobecker  <brobecker@gnat.com>

	* symtab.h: Fix typo in comment.

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

	* dwarf2read.c (struct comp_unit_head): Fix coding style.
	(dwarf_decode_line_header): Likewise.

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

	* NEWS: GDB works with GCC -feliminate-dwarf2-dups.

2004-10-19  Andrew Cagney  <cagney@gnu.org>

	GDB 6.3 branch created.
	* version.in: Bump to version 6.3.50_2004-10-19-cvs.

2004-10-15  Joel Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (set_cu_language): Set language to Ada for
	DW_LANG_Ada83 and DW_LANG_Ada95.

2004-10-15  Michael Chastain  <mec.gnu@mindspring.com>

	From Andreas Schwab <schwab@suse.de>:
	* Makefile.in (.y.c, .l.c.): Fix the substitutions for
	for xmalloc and xrealloc.

2004-10-15  Andrew Cagney  <cagney@gnu.org>

	* ada-exp.y, ada-lex.l: Use xmalloc and xrealloc through out.
	* inf-ptrace.c: Include "gdb_wait.h" instead of <wait.h>.
	* Makefile.in (.y.c, .l.c): Don't replace xmalloc with xxmalloc.
	Update dependencies.

2004-10-15  Paul Hilfinger  <Hilfinger@gnat.com>

	* ada-lang.c (ada_lookup_symbol): Correct comment.
	(ada_evaluate_subexp): Change error message for
	OP_FUNCALL case so as not to indicate an internal error.
	
2004-10-15  Joel Brobecker  <brobecker@gnat.com>

	Committed by Paul Hilfinger.
	* ada-lang.c (ada_template_to_fixed_record_type_1): Detect bogus
	type sizes in XVE/XVU types, and emit a warning when that happens,
	instead of rounding up the size of the resulting type.
	Some minor reformatting.
	(ada_is_aligner_type): Do not consider a type as an aligner type 
	if there is a corresponding XVS type as well.
	(ada_evaluate_subexp): For TERNOP_SLICE, handle cases where we 
	have several levels of pointer indirection to the array.
	
2004-10-15  Jerome Guitton  <guitton@gnat.com>

	Committed by Paul Hilfinger.
	* ada-lang.c (check_size): New function.
	(coerce_unspec_val_to_type): call check_size to make sure
	that the object size is reasonable.
	(ada_evaluate_subexp): in UNOP_IND: Ditto. In TERNOP_SLICE:
	Implements the case when we get a reference when we evaluate
	the expression of one of the bounds of the slice.
	(ada_value_struct_elt): when a packed array field is
	a reference, use ada_coerce_ref to dereference it; use 
	ada_value_ind only if it is a pointer.

2004-10-15  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips32_scan_prologue): Move the implementation up
	a bit to avoid the necessity of an advance declaration. Remove
	declaration.
	(set_reg_offset): Move implemenation up.
	(mips16_get_imm): Likewise.
	(mips16_scan_prologue): Likewise.
	(reset_saved_regs): Likewise.
	(mips32_scan_prologue): Likewise.

2004-10-14  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips32_scan_prologue): Add advance declaration.
	Remove sp as a parameter, compute it internally instead. Move
	prologue scanning limit from heuristic_proc_desc to here.
	(mips16_scan_prologue): Likewise.
	(mips_insn16_frame_cache): Replace call to heuristic_proc_desc
	by call to mips16_scan_prologue.
	(mips_insn32_frame_cache): Replace call to heuristic_proc_desc
	by call to mips32_scan_prologue.
	(heuristic_proc_desc): Remove code that's no longer necessary.
	Update calls to mips16_scan_prologue and mips32_scan_prologue.
	(mips_skip_prologue): Update calls to mips16_scan_prologue
	and mips32_scan_prologue.

2004-10-14  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips16_scan_prologue): Merge code from
	mips16_skip_prologue.  Now return the address of the first
	instruction past the function prologue.
	(mips16_skip_prologue): Remove, no longer necessary.
	(mips_skip_prologue): Replace call to mips16_skip_prologue
	by call to mips16_scan_prologue.

2004-10-14  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips32_scan_prologue): Merge code from
	mips32_skip_prologue.  Now return the address of the first
	instruction past the function prologue.
	(mips32_skip_prologue): Remove.  No longer necessary.
	(mips16_skip_prologue): Add parameter end_pc instead of
	computing it.
	(mips_skip_prologue): Compute the upper limit for the
	prologue scanning. Update call to mips16_skip_prologue.
	Replace call to mips32_skip_prologue by call to
	mips32_scan_prologue.

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

	* hppa-tdep.c (hppa_frame_cache): Add support for OpenBSD and
	NetBSD system call stubs that store %rp in the ERP slot of the
	stack frame.

	* source.c: Always define O_BINARY to 0 if not defined already.
	(openp): Unconditionally use O_BINARY.

	* top.c (gdb_readline): Always accept "\r\n" as a line-ending.
	* event-top.c (gdb_readline2): Likewise.

2004-10-14  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (_initialize_cris_tdep): Re-add call to
	deprecated_add_core_fns which was removed by mistake.

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

	* ia64-linux-nat.c (fill_gregset, fill_fpregset): Replace
	references to deprecated_registers[] with equivalent code.

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

	* rs6000-tdep.c (rs6000_push_dummy_call): Replace references to
	``deprecated_registers'' with equivalent code.  Use gdb_assert()
	instead of explicit test and print statement.

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

	* sparc-nat.c: Include "inf-ptrace.h".
	(sparc_target): New function.
	* sparc-nat.h: Update copyright year.
	(sparc_target): New prototype.
	* sparcnbsd-nat.c: Don't include "gdbcore.h", include "target.h".
	(_initialize_sparcnbsd_nat): Construct and add target vector.
	* sparc64nbsd-nat.c: Include "target.h".
	(_initialize_sparc64nbsd_nat): Construct and add target vector.
	* Makefile.in (sparc-nat.o, sparcnbsd-nat.o, sparc64nbsd-nat.o):
	Update dependencies.
	* config/sparc/nbsd64.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o, add inf-ptrace.o.
	* config/sparc/nbsdaout.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o, add inf-ptrace.o and bsd-kvm.o.
	(NAT_FILE): Set to nm-bsd.h.
	(LOADLIBES): New variable.
	* config/sparc/nbsdelf.mh (NATDEPFILES): Remove infptrace.o and
	infarg.o, add inf-ptrace.o.
	* config/sparc/nm-nbsdaout.h: Remove file.
	* config/sparc/fbsd.mh (NATDEPFILES): Add inf-ptrace.o.
	* config/sparc/linux.mh (NATDEPFILES): Add inf-ptrace.o.
	* config/sparc/linux64.mh (NATDEPFILES): Add inf-ptrace.o.

	* defs.h [!FOPEN_RB]: Include "fopen-bin.h" instead of
	"fopen-same.h".  Update comment.

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

	* i386gnu-nat.c: Include "gdb_string.h".
	(fetch_fpregs): Use i387_supply_fxsave to fill the floating-point
	registers when the floating-point state isn't initialized.
	* Makefile.in (i386gnu-nat.o): Update dependencies.

2004-10-11  David Anderson  <davea@sgi.com>

	* regcache.c (regcache_raw_read): Comment was missing "to".
	Extraneous ' removed.
	* gdb_thread_db.h (struct td_thrinfo): ti_lid field
	comment now describes use.

2004-10-11  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (cris_sigtramp_start, cris_rt_sigtramp_start)
	(cris_sigcontext_addr, cris_sigtramp_frame_unwind_cache)
	(cris_sigtramp_frame_this_id, cris_sigtramp_frame_prev_register)
	(cris_sigtramp_frame_sniffer): New functions.
	(cris_gdbarch_init): Hook in signal trampoline unwinder.
	(cris_dwarf2_reg_to_regnum, cris_dwarf2_frame_init_reg): New functions.
	(cris_gdbarch_init): Hook in Dwarf-2 unwinder.
	(struct gdbarch_tdep, set_cris_dwarf2_cfi, cris_dump_tdep)
	(cris_gdbarch_init, _initialize_cris_tdep): Add CRIS Dwarf-2 CFI usage
	command.
	(cris_version_update): Remove, replace with ...
	(set_cris_version): New function.
	(struct gdbarch_tdep, cris_mode, cris_mode_update)
	(cris_cannot_store_register, cris_dump_tdep, cris_gdbarch_init)
	(_initialize_cris_tdep): Remove CRIS mode command.
	(cris_fpless_backtrace, _initialize_cris_tdep): Remove 
	cris-fpless-backtrace command.
	(cris_scan_prologue): Fix prologue scanning limit.
	(cris_register_type): Update to reflect actual registers.
	(cris_register_bytes_ok) Remove.
	(cris_gdbarch_init): Remove support for CRIS v8 and v9.
	Remove set_gdbarch_deprecated_register_size,
	set_gdbarch_deprecated_register_byte, set_gdbarch_register_bytes_ok.
	
2004-10-10  Andrew Cagney  <cagney@gnu.org>

	* ada-lang.c (lim_warning): Add ATTR_FORMAT prototype and FIXME
	comment.

2004-10-10  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips16_scan_prologue): Remove redundant code.

2004-10-10  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips16_scan_prologue): Renames
	mips16_heuristic_proc_desc. Update comment.
	(mips32_scan_prologue): Renames mips32_heuristic_proc_desc.
	(heuristic_proc_desc): Update calls to the 2 functions above.

2004-10-10  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips_insn16_frame_cache): Remove unused variables.
	Update comments. Also immediately return empty cache when the start
	address of our function could not be found.
	(mips_insn32_frame_cache): Likewise.

2004-10-10  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips16_decode_reg_save): Delete, no longer used.
	(mips_insn16_frame_cache): Pass frame cache in call to
	heuristic_proc_desc. Move some code to mips16_heuristic_proc_desc.
	Remove code that became redundant as a consequence.
	(mips32_heuristic_proc_desc): No longer compute a fake
	procedure descriptor. Compute the full frame cache instead.
	Some minor comment reformatting.

2004-10-10  Jim Blandy  <jimb@redhat.com>

	* MAINTAINERS (generic symtabs, dwarf readers, elf reader, stabs
	reader, tracing bytecode stuff): Remove self.

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

	* sparc64-linux-tdep.c: Update copyright year.  Don't include
	"solib-svr4.h".
	(sparc64_linux_svr4_fetch_link_map_offsets): Remove function.
	(sparc64_linux_init_abi): Don't set solib_svr4_link_map_offsets.
	* Makefile.in (sparc64-linux-tdep.o): Update dependencies.

	* sparc-linux-tdep.c: Update copyright year.
	(sparc_linux_sigtramp_start): Change first argument from CORE_ADDR
	to struct frame_info *.  Use safe_frame_unwind_memory instead of
	deprecated_read_memory_nobpt.
	(sparc32_linux_sigtramp_start, sparc32_linux_rt_sigtramp_start):
	Change argumen from CORE_ADDR to struct frame_info *.  Adjust for
	changed signature of sparc_linux_sigtramp_start.
	(sparc32_linux_pc_in_sigtramp): Remove function.
	(sparc32_linux_sigtramp_p): New function.
	(sparc32_linux_sigtramp_frame_sniffer): Use
	sparc32_linux_sigtramp_p instead of sparc32_linux_pc_in_sigtramp.

	* sparc-linux-tdep.c (sparc32_linux_svr4_fetch_link_map_offsets):
	Remove function.
	(sparc32_linux_init_abi): Don't set solib_svr4_link_map_offsets.

	* ada-lang.c (lim_warning): Re-implement as a varargs function.
	(decode_packed_array_type, value_subscript_packed)
	(ada_evaluate_subexp, to_fixed_range_type): Remove redundant
	argument in call to lim_warning.

	* configure.in: Really disable the TUI if an enhanced curses
	library isn't found.
	* configure: Regenerate.

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

	* config/i386/nbsdaout.mh (NAT_FILE): Set to solib.h.
	* config/i386/nbsdelf.mh (NAT_FILE): Set to solib.h.
	* config/i386/nm-nbsdaout.h: Remove file.
	* config/i386/nm-fbsd.h (link_object, lo_name, lo_library)
	(lo_unused, lo_major, lo_minor, lo_next, link_map, lm_addr)
	(lm_name, lm_next, lm_lop, lm_lob, lm_rwt, lm_ld, lm_lpd)
	(link_dynamic_2, ld_loaded, ld_need, ld_rules, ld_got, ld_plt)
	(ld_rel, ld_hash, ld_stab, ld_stab_hash, ld_buckets, ld_symbols)
	(ld_symb_size, ld_text, ld_plt_sz, rtc_symb, rtc_sp, rtc_next)
	(ld_debug, ldd_version, ldd_in_debugger, ldd_sym_loaded)
	(ldd_bp_addr, ldd_bp_inst, ldd_cp, link_dynamic, ld_version)
	(ldd, ld_un, ld_2): Remove defines.
	* config/i386/nm-obsd.h: Likewise.

2004-10-09  Paul Hilfinger  <hilfingr@nile.gnat.com>

	* ada-lex.l: Remove useless rule whose right-context clause
	causes unreferenced static function warning for yyrealloc.
	(ada_flex_use): Remove the artificial reference to yyrealloc.

2004-10-08  Andrew Cagney  <cagney@gnu.org>

	* target.h (struct target_ops): Rename to_xfer_memory to
	deprecated_xfer_memory.
	* target.c: Update.
	(deprecated_debug_xfer_memory): Rename debug_to_xfer_memory.
	* wince.c: Update.
	* win32-nat.c: Update.
	* v850ice.c: Update.
	* uw-thread.c: Update.
	* thread-db.c: Update.
	* sol-thread.c: Update.
	* remote.c: Update.
	* remote-vx.c: Update.
	* remote-st.c: Update.
	* remote-sim.c: Update.
	* remote-sds.c: Update.
	* remote-rdp.c: Update.
	* remote-rdi.c: Update.
	* remote-mips.c: Update.
	* remote-m32r-sdi.c: Update.
	* remote-e7000.c: Update.
	* procfs.c: Update.
	* ppc-bdm.c: Update.
	* nto-procfs.c: Update.
	* monitor.c: Update.
	* linux-nat.c: Update.
	* inftarg.c: Update.
	* hpux-thread.c: Update.
	* go32-nat.c: Update.
	* gnu-nat.c: Update.
	* exec.c: Update.
	* corelow.c: Update.
	* bsd-kvm.c: Update.
	* aix-thread.c: Update.

2004-10-08  Andrew Cagney  <cagney@gnu.org>

	* target.c (debug_target): Move to near start of file.
	(target_stopped_data_address_p): Re-org logic, add casts.

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

	* solib-sunos.c [HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS] (link_map)
	(lm_addr, lm_name, lm_next, link_dynamic_2, ld_loaded, rtc_symb)
	(rtc_sp, rtc_next, ld_debug, ldd_in_debugger, ldd_bp_addr)
	(ldd_bp_inst, ldd_cp, link_dynamic, ld_version, ldd, ld_un, ld_2):
	New defines.

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

	* target.h (to_stopped_data_address): Change prototype to
	take a CORE_ADDR pointer and return an int.
	* target.c (update_current_target): Change to_stopped_data_address
	to match new prototype.
	(debug_to_stopped_data_address): Change appropriately.
	* breakpoint.c (bpstat_stop_status): Change call to
	target_stopped_data_address to use new prototype.
	* frv-tdep.c (frv_have_stopped_data_address): New function.
	(frv_stopped_data_address): Change to new prototype and
	functionality.
	* ia64-linux-nat.c (ia64_stopped_data_address): Change to new
	prototype and functionality.
	(ia64_stopped_by_watchpoint): New function.
	* i386-nat.c (i386_stopped_data_address): Change to new
	prototype and functionality.
	(i386_stopped_by_watchpoint): New function.
	* remote.c (remote_stopped_data_address): Change to new prototype
	and functionality.
	* remote-m32r-sdi.c (m32r_stopped_data_address): Ditto.
	* config/frv/tm-frv.h (frv_stopped_data_address): Change prototype.
	(STOPPED_BY_WATCHPOINT): Change to use frv_have_stopped_data_address.
	* config/i386/nm-i386.h (STOPPED_BY_WATCHPOINT): Change to use
	new i386_stopped_by_watchpoint function.
	(i386_stopped_by_watchpoint): New prototype.
	(i386_stoppped_data_address): Change to new prototype.
	* config/ia64/nm-linux.h (STOPPED_BY_WATCHPOINT): Change to use
	new ia64_stopped_by_watchpoint function.
	(ia64_stopped_by_watchpoint): New prototype.
	(ia64_stopped_data_address): Ditto.

2004-10-08  Paul Hilfinger  <Hilfinger@gnat.com>

	* ada-typeprint.c (ada_print_type): Use int_string for printing
	modulus of modular type.
	* ada-lang.h (ada_modulus): Change return type to unsigned.
	* ada-lang.c (ada_language_arch_info): Correct type of 
	string_char_type.
	(ada_modulus): Return unsigned result.
	(ada_lookup_symbol): Remove user disambiguation and modify comment 
	accordingly.
	
2004-10-08 Eric Botcazou  <ebotcazou@act-europe.fr>	

	Committed by Paul Hilfinger.
	* ada-lang.c (decode_packed_array): On big-endian targets, 
	left-justify the value if it comes with a modular type.

2004-10-08  Joel Brobecker  <brobecker@gnat.com>	

	Committed by Paul Hilfinger.
        * ada-lang.c (template_to_static_fixed_type): Fix a small typo.
	(is_name_suffix): Add support for "___JM" suffixes.
	(ada_check_typedef): Renames ada_completed_type. 
	Update all users of CHECK_TYPEDEF, check_typedef, and 
	ada_complete_type to call ada_check_typedef.
	* ada-typeprint.c: Likewise.
	* ada-valprint.c: Likewise.

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

	* infcall.c (call_function_by_hand): Use correct VALUE_TYPE macro.

2004-10-08  Nick Roberts  <nickrob@snap.net.nz>

	* MAINTAINERS: Update e-mail address.

2004-10-07  Daniel Jacobowitz  <dan@debian.org>

	From Maciej W. Rozycki  <macro@mips.com>:
	* mips-tdep.c (mips32_next_pc): Check the register's contents,
	not its number for BLEZ/BLEZL and BGTZ/BGTZL.

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

	* m32r-tdep.c (decode_prologue): Support functions written
	in assembler language. Recognize trap instructions as the
	end of prologue.
	(m32r_frame_unwind_cache): Ditto.
	(m32r_skip_prologue): Extend search limit. Quit analyzing
	prologue if pc's location is not readable.

2004-10-06  Paul N. Hilfinger  <Hilfinger@gnat.com>

	* Makefile.in (.l.c): Do conversions of names of alloc and free 
	functions that are done for .y.c files, plus special one
	for yy_flex_realloc.  Also, correct missing-file tests here.
	* ada-lex.l (malloc, free): Remove macros.
	(resize_tempbuf): Use "realloc"; rely on sed changes to convert to
	xrealloc.
	(ada_flex_use): Dummy definition to remove warnings about unused
	functions.
	* ada-exp.y (dummy_string_to_ada_operator): Temporary definition
	to suppress warning.
	
2004-10-06  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (sh_return_value_nofpu): New function, implementing
	RETURN_VALUE.
	(sh_return_value_fpu): Ditto for CPUs with FPU.
	(sh_gdbarch_init): Remove STORE_RETURN_VALUE, EXTRACT_RETURN_VALUE,
	RETURN_VALUE_ON_STACK and USE_STRUCT_CONVENTION throughout.
	Install sh_return_value_nofpu resp. sh_return_value_fpu as
	RETURN_VALUE functions.

2004-10-06  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (sh_pseudo_register_read): Add PSEUDO_BANK_REGNUM handling. 
	(sh_pseudo_register_write): Ditto.

2004-10-06  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (IS_MACL_STS): New define.
	(IS_MOVI20): Ditto.
	(IS_MACL_LDS): Ditto.
	(sh_analyze_prologue): Recognize STS.L MACL,@-r15 and MOVI20
	instructions in prologue.
	(sh_in_function_epilogue_p): Recognize LDS.L @r15+,MACL and MOVI20
	instructions in epilogue.

2004-10-06  Corinna Vinschen  <vinschen@redhat.com>

	* sh-tdep.c (SH_NUM_REGS): Define as 67.
	(sh_sh_register_name): Add eight empty register names.
	(sh_sh3_register_name): Ditto.
	(sh_sh3e_register_name): Ditto.
	(sh_sh2e_register_name): Ditto.
	(sh_sh2a_register_name): New function, defining SH2A register set.
	(sh_sh2a_nofpu_register_name): New function, defining SH2A register set
	in nofpu case.
	(sh_sh_dsp_register_name): Add eight empty register names.
	(sh_sh3_dsp_register_name): Ditto.
	(sh_sh4_register_name): Ditto.
	(sh_sh4_nofpu_register_name): Ditto.
	(sh_sh4al_dsp_register_name): Ditto.
	(sh2a_show_regs): New function.
	(sh2a_nofpu_show_regs): New function.
	(sh_sh2a_register_type): New function.
	(do_bank_register_info): New function.
	(sh_print_pseudo_register): Call do_bank_register_info.
	Call sh_print_pseudo_register for valid "bank" register.
	(sh_sh2a_register_sim_regno): New function.
	(sh_gdbarch_init): Add bfd_mach_sh2a and bfd_mach_sh2a_nofpu handling.
	Increment pseudo register count by one for all sh variants with
	pseudo registers to accomodate pseudo bank register.
	* sh-tdep.h: Add register numbers for R0_BANK0_REGNUM, MACHB_REGNUM,
	IVNB_REGNUM, PRB_REGNUM, GBRB_REGNUM, MACLB_REGNUM, BANK_REGNUM,
	IBCR_REGNUM, IBNR_REGNUM, TBR_REGNUM and PSEUDO_BANK_REGNUM. 
	Increment pseudo register numbers.

2004-10-06  Corinna Vinschen  <vinschen@redhat.com>

	* dwarf2read.c (read_subroutine_type): Call make_function_type
	instead of lookup_function_type.

2004-10-05  Jim Blandy  <jimb@redhat.com>

	* linux-nat.c (_initialize_linux_nat): Rename child_ops.
	(Previous change missed some uses.)

2004-10-05  Andrew Cagney  <cagney@gnu.org>

	* target.h (deprecated_child_ops): Rename child_ops.
	* wince.c: Update copyright.  Rename child_ops.
	* win32-nat.c: Rename child_ops.
	* target.c: Rename child_ops.
	* rs6000-nat.c: Rename child_ops.
	* linux-nat.c: Rename child_ops.
	* infttrace.c: Rename child_ops.
	* inftarg.c: Rename child_ops.
	* infptrace.c: Rename child_ops.
	* hppah-nat.c: Update copyright.  Rename child_ops.
	* hpux-thread.c: Update copyright.  Rename child_ops.

2004-10-05  Daniel Jacobowitz  <dan@debian.org>

	* remote.c (remote_xfer_partial): Handle TARGET_OBJECT_MEMORY.

2004-10-05  Andrew Cagney  <cagney@gnu.org>

	* version.in: Bump to version 6.2.50_YYYY-MM-DD-cvs.

2004-10-05  Daniel Jacobowitz  <dan@debian.org>

	* dwarf2read.c (REF_HASH_SIZE): Move earlier.
	(die_ref_table): Remove.
	(struct dwarf2_cu): Add DIES, DEPENDENCIES, and DIE_REF_TABLE.
	(struct dwarf2_per_cu_data): Add PSYMTAB.  Add a comment describing
	the usage of this type.
	(struct dwarf2_per_objfile): Update comment for ALL_COMP_UNITS.
	(struct dwarf2_pinfo, PST_PRIVATE, DWARF_INFO_OFFSET): Remove.
	(struct dwarf2_queue_item, dwarf2_queue, dwarf2_queue_tail): New.
	(dwarf2_create_include_psymtab): Update comment.
	(find_partial_die): Remove third argument.  Remove unreachable call
	to error ().
	(dwarf2_find_containing_comp_unit): Update comments.  Change one
	assertion to an error.  Remove an unreachable error.
	(dwarf2_find_comp_unit): Update comments.
	(type_at_offset): Remove dead code.
	(make_cleanup_free_die_list, dwarf2_empty_hash_tables): Remove.
	(store_in_ref_table): Add CU argument.
	(follow_die_ref): Take DIE, attribute, and CU arguments.  Handle
	inter-compilation-unit references.
	(load_full_comp_unit, process_full_comp_unit): New functions, based
	on psymtab_to_symtab_1.
	(psymtab_to_symtab_1): Use them.
	(dwarf2_add_dependence): New function.
	(dwarf2_build_psymtabs_hard): Set the psymtab in per_cu.  Always create
	a per_cu structure, and save it in READ_PSYMTAB_PRIVATE.
	(partial_die_parent_scope, guess_structure_name): Update for changes
	to find_partial_die.
	(dwarf2_psymtab_to_symtab): Initialize dwarf2_per_objfile here.
	(queue_comp_unit, process_queue, dwarf2_release_queue): New.
	(read_comp_unit): Don't call dwarf2_empty_hash_tables.
	(read_die_and_children): Update call to store_in_ref_table.
	(do_free_die_list_cleanup): Remove.
	(fixup_partial_die): Update for changes to find_partial_die.
	(read_full_die): Handle queueing absolute references.
	(read_attribute_value): Use DW_ADDR for all DW_FORM_ref* forms.
	(dwarf2_attr, die_specification, die_type)
	(die_containing_type, dwarf2_extension): Update calls to
	follow_die_ref.
	(dump_die): Update DW_FORM_ref* handling.
	(dwarf2_get_ref_die_offset): Likewise.
	(free_one_comp_unit): Release the dies list.
	(dwarf2_mark_helper): New function.
	(dwarf2_mark): Use it.

2004-10-05  Mark Kettenis  <kettenis@jive.nl>

	* procfs.c (procfs_xfer_partial): Use WRITEBUF instead of READBUF
	when writing to memory.

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

	* m32r-tdep.c (m32r_use_struct_convention): Delete function.
	(m32r_extract_struct_value_address): Delete function.
	(m32r_return_value): New function.
	(m32r_gdbarch_init): Instead of store_return_value,
	extract_return_value, deprecated_extract_struct_value_address
	and deprecated_use_struct_convention, set return_value.

2004-10-03  Daniel Jacobowitz  <dan@debian.org>

	* dwarf2read.c (read_subrange_type): Add comment for variable
	sized arrays.

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

	* Makefile.in (.l.c): Modify rule for compatibility with recent
	versions of flex, and remove most command-line options.
	* ada-lex.l: Add %options line in place of -I -i and -s command-line
	options.

2004-10-02  Paul N. Hilfinger  <Hilfinger@gnat.com>

        Turn on initial Ada support (mainly expression evaluation).
	
        * Makefile.in (SFILES): Remove ada-tasks.c.
	(HFILES_NO_SRCDIR): Add ada-lang.h.
	(COMMON_OBS): Add ada-lang.o, ada-typeprint.o, ada-valprint.o.
	(YYOBJ): Add ada-exp.o.
	(rule .l.c): Generalize to not mention ada.
	* symtab.c: Include ada-lang.h.
	(symbol_natural_name, symbol_demangled_name)
	(symbol_search_name): Add Ada case.

2004-10-01  Andrew Cagney  <cagney@gnu.org>

	* Makefile.in (COMMON_OBS): Add inf-child.o.
	* config/vax/obsd.mh (NATDEPFILES): Remove inf-child.o.
	* config/vax/nbsdelf.mh (NATDEPFILES): Remove inf-child.o.
	* config/vax/nbsdaout.mh (NATDEPFILES): Remove inf-child.o.
	* config/powerpc/nbsd.mh (NATDEPFILES): Remove inf-child.o.
	* config/m88k/obsd.mh (NATDEPFILES): Remove inf-child.o.
	* config/i386/obsdaout.mh (NATDEPFILES): Remove inf-child.o.
	* config/i386/obsd64.mh (NATDEPFILES): Remove inf-child.o.
	* config/i386/obsd.mh (NATDEPFILES): Remove inf-child.o.
	* config/i386/nbsdelf.mh (NATDEPFILES): Remove inf-child.o.
	* config/i386/nbsdaout.mh (NATDEPFILES): Remove inf-child.o.
	* config/i386/nbsd64.mh (NATDEPFILES): Remove inf-child.o.
	* config/i386/fbsd64.mh (NATDEPFILES): Remove inf-child.o.
	* config/i386/fbsd.mh (NATDEPFILES): Remove inf-child.o.

	* target.c (xfer_using_stratum): Change return type to LONGEST.
	On each iteration offset, readbuf and writebuf.
	* inf-ptrace.c (inf_ptrace_xfer_partial): Simplify computation of
	partial_length, and read/modify/write predicate, update comments.
	Pass buffer.word to ptrace write.

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

	* symfile.c (init_filename_language_table): Add extensions for
	Ada.
	* defs.h (enum language): Add language_ada.
	* gdbtypes.h (TYPE_FLAG_FIXED_INSTANCE): Define.
	* ada-lang.c: Strip code that is conditionalized out by GNAT_GDB.
	(add_symbols_from_enclosing_procs): Make a no-op for now.
	(ada_unqualified_name,add_angle_brackets,function_name_from_pc)
	(extended_canonical_line_spec, find_sal_from_funcs_and_line)
	(find_line_in_linetable, find_next_line_in_linetable)
	(read_all_symtabs, is_plausible_func_for_line)
	(adjust_pc_past_prologue, error_breakpoint_runtime_sym_not_found)
	(is_runtime_sym_defined, check_size): Remove declaration.
	(function_name_from_pc, ada_translate_error_message)
	(ada_lookup_minimal_symbol): Remove definition.
	(ada_add_block_symbols): Remove useless label.
	* ada-lang.h (ada_maybe_exception_partial_symbol): Remove 
	useless declaration.
	(ada_is_exception_sym): Likewise.

2004-09-30    Kei Sakamoto  <sakamoto.kei@renesas.com>

	Add m32r-linux support.
	* configure.tgt: Add m32r*-*-linux*.
	* Makefile.in (ALLDEPFILES): Add m32r-tdep.c, m32r-linux-nat.c
	and m32r-linux-tdep.c.
	(m32r-linux-nat.o, m32r-linux-tdep.o): New dependencies.
	* m32r-tdep.c: Move some definitions to m32r-tdep.h.
	* config/djgpp/fnchange.lst: Add m32r-linux-nat.c and
	m32r-linux-tdep.c.
	* m32r-tdep.h, m32r-linux-nat.c, m32r-linux-tdep.c,
	config/m32r/linux.mh, config/m32r/linux.mt,
	config/m32r/nm-linux.h: New files.

2004-09-30  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips32_decode_reg_save): Remove, unused.
	(mips32_fetch_instruction): Remove, unused.

2004-09-30  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips_insn16_frame_cache): Remove dead code or
	conditions that will always be true.

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

	* vaxbsd-nat.c: Include "target,h" and "inf-ptrace.h".
	(vaxbsd_fetch_inferior_registers): Rename from
	fetch_inferior_registers.  Make static.
	(vaxbsd_store_inferior_registers): Rename from
	store_inferior_registers.  Make static.
	(_initialize_vaxbsd_nat): Construct and add target vector.
	* config/vax/nbsdaout.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-child.o and inf-ptrace.o.
	* config/vax/nbsdelf.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-child.o and inf-ptrace.o.
	(NAT_FILE): Remove.
	* config/vax/obsd.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-child.o and inf-ptrace.o.
	(NAT_FILE): Remove.
	* Makefile.in (vaxbsd-nat.o): Update dependencies.

	* m88kbsd-nat.c: Include "target.h" and "inf-ptrace.h".
	(m88kbsd_fetch_inferior_registers): Rename from
	fetch_inferior_registers.  Make static.
	(m88kbsd_store_inferior_registers): Rename from
	store_inferior_registers.  Make static.
	(_initialize_m88kbsd_nat): New prototype and function.
	* config/m88k/obsd.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-child.o and inf-ptrace.o.
	(NAT_FILE): Remove.
	* Makefile.in (m88kbsd-nat.o): Update dependencies.

2004-09-30  Andrew Cagney  <cagney@gnu.org>

	* target.c (target_xfer_partial): New function.
	(target_read_memory_partial, target_write_memory_partial) 
	(default_xfer_partial, target_read_partial, target_write_partial) 
	(xfer_using_stratum): Use.
	(debug_to_xfer_partial): Delete function.
	(setup_target_debug): Do not override to_xfer_partial.

2004-09-30  Mark Kettenis  <kettenis@chello.nl>

	* fork-child.c: Update copyright year.  Fix coding style.

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

	* defs.h (msavestring, mstrsave): Remove prototypes.
	* utils.c (msavestring, mstrsave): Remove functions.
	* objfiles.c (allocate_objfile): Use xstrdup instead of mstrsave.
	* solib-sunos.c (allocate_rt_common_objfile): Use xstrdup instead
	of mstrsave.
	* source.c (find_and_open_source): Use xstrdup instead of
	mstrsave.

2004-09-30  Andrew Cagney  <cagney@gnu.org>

	* inf-ptrace.c (inf_ptrace_target): Do not set to_xfer_memory.
	(inf_ptrace_xfer_memory): Delete.
	* target.c (target_xfer_partial_p, xfer_using_stratum): New.
	(target_read_memory, target_write_memory): Use xfer_using_stratum
	when target_xfer_partial_p.
	(debug_target): Move to start of file.
	(target_read_memory_partial, target_write_memory_partial): Use
	to_xfer_partial when target_xfer_partial_p.

	* inf-ptrace.c (inf_ptrace_xfer_partial): Replace call to
	inf_ptrace_xfer_memory with equivalent code.
	* inftarg.c (child_xfer_partial): When performing a write, pass
	writebuf to child_xfer_memory.

	* target.c (target_read_string): Use target_read_memory instead of
	target_xfer_memory.

2004-09-29  Andrew Cagney  <cagney@gnu.org>

	* infptrace.c (kill_inferior): Fix typo, in previous inline.  Pass
	the address of status.

	* infptrace.c (ptrace_wait): Mention problem with HPUX.
	(kill_inferior): Inline ptrace_wait call.
	* linux-nat.c (kill_inferior): Inline ptrace_wait call.
	* inftarg.c (child_wait): Inline ptrace_wait call.

	* target.h (struct target_ops): Delete field to_post_wait.
	(target_post_wait): Delete macro.
	(child_post_wait): Delete declaration.
	* target.c (update_current_target, update_current_target)
	(debug_to_post_wait, setup_target_debug): Delete functions and
	references.
	* infttrace.c (ptrace_wait): Delete call to target_post_wait.
	* inftarg.c (child_post_wait): Delete.
	(init_child_ops): Do not set to_post_wait.
	* infptrace.c (ptrace_wait): Delete call to target_post_wait.
	* inf-ptrace.c (inf_ptrace_wait): Delete call to target_post_wait.
	* inf-child.c (inf_child_post_wait): Delete.
	(inf_child_target): Do not set to_post_wait.
	* inf-ptrace.c (inf_ptrace_post_wait): Delete.
	(inf_ptrace_target): Do not set to_post_wait.

	* wince.c (child_ops): Delete.
	* win32-nat.c (child_ops): Delete.

	* inftarg.c (inftarg_set_find_memory_regions) 
	(inftarg_set_make_corefile_notes): Delete functions.
	(_initialize_linux_nat): Inline calls.

	* target.h (child_ops): Declare.
	* inftarg.c (child_ops): Move from here ...
	* target.c (child_ops): ... to here.
	* wince.c (child_ops): Delete extern declaration.
	* win32-nat.c (child_ops): Delete extern declaration.
	* linux-nat.c (child_ops): Delete extern declaration.
	* hpux-thread.c (child_ops): Delete extern declaration.

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

	* configure.tgt: Set default OS/ABI for OpenBSD ELF targets.

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

	* configure.in: Only set host_makefile_frag when building a native
	debugger.
	* configure: Regenerate.

	* alphanbsd-tdep.c (_initialize_alphanbsd_tdep): Register OS/ABI
	for OpenBSD ELF.

2004-09-28  Andrew Cagney  <cagney@gnu.org>

	Problem identified by Paul Hilfinger.
	* Makefile.in (ada_lex_c): Define.
	(ada-lex.o): Delete rule.

	* linux-proc.c: Delete file.
	* Makefile.in: Update.
	* config/sparc/linux64.mh (NATDEPFILES): 
	* config/sparc/linux.mh (NATDEPFILES): Update.
	* config/s390/s390.mh (NATDEPFILES): Update.
	* config/powerpc/ppc64-linux.mh (NATDEPFILES): Update.
	* config/powerpc/linux.mh (NATDEPFILES): Update.
	* config/pa/linux.mh (NATDEPFILES): Update.
	* config/mips/linux.mh (NATDEPFILES): Update.
	* config/m68k/linux.mh (NATDEPFILES): Update.
	* config/ia64/linux.mh (NATDEPFILES): Update.
	* config/i386/linux64.mh (NATDEPFILES): Update.
	* config/i386/linux.mh (NATDEPFILES): Update.
	* config/arm/linux.mh (NATDEPFILES): Update.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Update.
	* linux-nat.c: Update copyright.  Include <sys/param.h>,
	<sys/procfs.h>, "elf-bfd.h", "gregset.h", <ctype.h>,
	"gdbthread.h", "gdb_stat.h", <fcntl.h>.
	(O_LARGEFILE): Possibly define.
	(_initialize_linux_nat, linux_proc_pending_signals)
	(add_line_to_sigset, linux_proc_xfer_memory)
	(linux_nat_info_proc_cmd, linux_nat_make_corefile_notes)
	(linux_nat_do_registers, linux_nat_corefile_thread_callback)
	(struct linux_corefile_thread_data)
	(linux_nat_do_thread_registers, linux_nat_find_memory_regions)
	(child_pid_to_exec_file): Insert code previously in linux-proc.c.

2004-09-16  Andrew Cagney  <cagney@gnu.org>

	* lin-lwp.c: Delete file.
	* linux-nat.c: Include "gdb_assert.h", "gdb_string.h", <unistd.h>,
	<sys/syscall.h>, "gdbthread.h", "gdbcmd.h", "regcache.h".
	(status_to_str, init_lwp_list, add_lwp, delete_lwp)
	(find_lwp_pid, iterate_over_lwps, lin_lwp_attach_lwp)
	(linux_nat_attach, detach_callback, linux_nat_detach)
	(resume_callback, resume_clear_callback, linux_nat_resume)
	(kill_lwp, linux_nat_handle_extended, wait_lwp, stop_callback)
	(stop_wait_callback, linux_nat_has_pending, flush_callback)
	(status_callback, running_callback, count_events_callback)
	(select_singlestep_lwp_callback, select_event_lwp_callback)
	(cancel_breakpoints_callback, select_event_lwp, resumed_callback)
	(child_wait, stop_and_resume_callback, linux_nat_wait)
	(kill_callback, kill_wait_callback, linux_nat_kill)
	(linux_nat_create_inferior, linux_nat_mourn_inferior)
	(linux_nat_xfer_memory, linux_nat_thread_alive)
	(linux_nat_pid_to_str, init_linux_nat_ops, sigchld_handler)
	(_initialize_linux_nat): New functions.
	* Makefile.in: Update all dependencies.
	* config/sparc/linux64.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/sparc/linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/s390/s390.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/powerpc/ppc64-linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/powerpc/linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/pa/linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/mips/linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/m68k/linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/ia64/linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/i386/linux64.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/i386/linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/arm/linux.mh (NATDEPFILES): Remove lin-lwp.o.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Remove lin-lwp.o.

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

	* config/i386/fbsd64.mh, config/i386/nbsd64.mh,
	config/i386/obsd64.mh (NAT_FILE): Remove variable.

	* configure.in: Don't comment out NATDEPFILES in the generated
	Makefile if NAT_FILE is unset.
	* configure: Regenerate.

2004-09-27  Andrew Cagney  <cagney@gnu.org>

	* infrun.c (check_for_old_step_resume_breakpoint): Delete.
	(insert_step_resume_breakpoint): Delete.
	(insert_step_resume_breakpoint_at_frame): New function.
	(insert_step_resume_breakpoint_at_sal): New function.
	(handle_inferior_event, step_into_function)
	(insert_step_resume_breakpoint): Simplify by using same.

	* gdb_indent.sh (types): Add caddr_t to list of predefined types.

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

	* fbsd-proc.c: Remove file.
	* Makefile.in (fbsd-proc.o): Remove dependency.

	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Group target related
	code together.

	* config/i386/nm-fbsd64.h: Remove file.
	* config/i386/fbsd64.mh (NAT_FILE): Set to config/nm-nbsd.h.

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

	* amd64-nat.h: Update copyright year.
	(amd64bsd_target): New prototype.
	* amd64bsd-nat.c: Include "target.h" and "inf-ptrace.h".
	(amd64bsd_target): New function.
	(amd64bsd_fetch_inferior_registers): Rename from
	fetch_inferior_registers.  Make static.
	(amd64bsd_store_inferior_registers): Rename from
	store_inferior_registers.  Make static.
	* amd64fbsd-nat.c: Include "target.h" and "fbsd-nat.h".
	(_initialize_amd64fbsd_nat): Construct and add target vector.
	* amd64nbsd-nat.o: Include "target.h".
	(_initialize_amd64nbsd_nat): Construct and add target vector.
	* amd64obsd-nat.c: Include "target.h".
	(_initialize_amd64obsd_nat): Construct and add target vector.
	* config/i386/nm-fbsd64.h (CHILD_PID_TO_EXEC_FILE): Remove define.
	* config/i386/fbsd64.mh (NATDEPFILES): Remove infptrace.o,
	inftarg.o and fbsd-proc.o.  Add inf-child.o, inf-ptrace.o and
	fbsd-nat.o.
	* config/i386/nbsd64.mh, config/i386/obsd64.mh (NATDEPFILES):
	Remove infptrace.o and inftarg.o.  Add inf-child.o and
	inf-ptrace.o.
	* Makefile.in (amd64bsd-nat.o, amd64fbsd-nat.o, amd64nbsd-nat.o)
	(amd64obsd-nat.o): Update dependencies.

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

	* config/i386/fbsd.mh (NATDEPFILES): Remove infptrace.o.
	* config/i386/nbsdaout.mh (NATDEPFILES): Remove infptrace.o.
	* config/i386/nbsdelf.mh (NATDEPFILES): Remove infptrace.o.
	* config/i386/obsd.mh (NATDEPFILES): Remove infptrace.o.
	* config/i386/obsdaout.mh (NATDEPFILES): Remove infptrace.o.

	* inf-ptrace.c (inf_ptrace_attach): Remove redundant parenthesis.
	Inline attach call.
	(inf_ptrace_detach): Inline detach call.

	* configure.in: Check for waddstr instead of mvwaddstr when
	searching for curses library.  Check for wborder.
	* configure, config.in: Regenerate.
	* tui/tui-wingeneral.c (box_win): Use box if wborder isn't
	available.

	* inf-ptrace.c (inf_ptrace_xfer_memory): Fix gdb_indent.sh wart.

2004-09-24  Robert Picco <Robert.Picco@hp.com>

	Committed by Andrew Cagney.
	* remote.c (set_remote_protocol_p_packet_cmd, remote_protocol_p)
	(show_remote_protocol_p_packet_cmd): New.  Implement 'p' packet.
	configuration.
	(fetch_register_using_p): Implement 'p' packet.  Based on code by
	Fernando Nasser.
	(remote_fetch_registers): Call fetch_register_using_p.
	(init_all_packet_configs, show_remote_cmd)
	(_initialize_remote): Add p-packet.

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

	* inf-ptrace.c (inf_ptrace_kill_inferior): Call ptrace directly
	instead of call_ptrace.  Call wait directly instead of
	ptrace_wait.
	(inf_ptrace_me): Call ptrace directly instead of call_ptrace.
	(inf_ptrace_wait): Inline ptrace_wait call.

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

	* Makefile.in (.y.c): Revert previous change.  ../ylwrap was 
	rolled back instead.

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

	* Makefile.in (.y.c): Modify $(YLWRAP) invocation to use
	the new argument order.

2004-09-23  Corinna Vinschen  <vinschen@redhat.com>

	* MAINTAINERS: Remove "broken" from XStormy16 entry.
	* xstormy16-tdep.c: Convert XStormy16 target to latest GDB methods.
	(struct gdbarch_tdep): Remove.
	(struct xstormy16_frame_cache): New frame cache structure.
	(xstormy16_register_byte, xstormy16_register_raw_size)
	(xstormy16_reg_virtual_type, xstormy16_register_type)
	(xstormy16_push_arguments, xstormy16_push_return_address)
	(xstormy16_pop_frame, xstormy16_store_struct_return)
	(xstormy16_store_return_value, xstormy16_extract_struct_value_address)
	(xstormy16_frame_saved_register, xstormy16_get_saved_register)
	(xstormy16_scan_prologue, xstormy16_frame_init_saved_regs)
	(xstormy16_frame_saved_pc, xstormy16_init_extra_frame_info)
	(xstormy16_frame_chain, xstormy16_frame_chain_valid,
	(xstormy16_saved_pc_after_call, xstormy16_save_dummy_frame_to): Remove.
	(xstormy16_use_struct_convention): Drop gcc_p parameter.
	(xstormy16_extract_return_value, xstormy16_store_return_value):
	Regcachify.  Drop useless struct convention handling.
	(xstormy16_register_type, xstormy16_return_value)
	(xstormy16_push_dummy_call, xstormy16_analyze_prologue)
	(xstormy16_alloc_frame_cache, xstormy16_frame_cache)
	(xstormy16_frame_prev_register, xstormy16_frame_this_id)
	(xstormy16_frame_base_address, xstormy16_frame_sniffer)
	(xstormy16_unwind_sp, xstormy16_unwind_pc)
	(xstormy16_unwind_dummy_id) : New functions.
	(xstormy16_skip_prologue): Call xstormy16_analyze_prologue instead
	of xstormy16_scan_prologue.
	(xstormy16_frame_unwind): New frame_unwind structure.
	(xstormy16_frame_base): New frame_base structure.
	(xstormy16_gdbarch_init): Accomodate all of the above changes.
	Reshuffle for better readability.  Also add dwarf2_frame_sniffer.

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

	* language.c (language_gdbarch_post_init): Fix off-by one error.

2004-09-21  Daniel Jacobowitz  <dan@debian.org>

	* dwarf2read.c (struct dwarf2_per_cu_data): New field type_hash.
	(struct dwarf2_offset_and_type): New.
	(set_die_type, reset_die_and_siblings_types, get_die_type)
	(offset_and_type_hash, offset_and_type_eq): New functions.
	(read_structure_type, read_enumeration_type, read_array_type)
	(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_subrange_type): Use
	set_die_type.

2004-09-20  Daniel Jacobowitz  <dan@debian.org>

	* Makefile.in (dwarf2read.o): Update dependencies.
	* dwarf2read.c: Include "command.h" and "gdbcmd.h".
	(struct dwarf2_per_objfile): Add all_comp_units, n_comp_units,
	and read_in_chain.
	(struct dwarf2_cu): Add read_in_chain, per_cu, last_used,
	mark, and has_form_ref_addr.
	(struct dwarf2_per_cu_data): New.
	(dwarf2_max_cache_age): New.
	(dwarf2_build_psymtabs_hard): Free cached compilation units
	after loading.  Create and manage the list of compilation units.
	Remove unnecessary NULL initialization.  Fix indentation.
	(psymtab_to_symtab_1): Initialize all of CU.
	(dwarf2_read_abbrevs): Set has_form_ref_addr.
	(find_partial_die): Use dwarf2_find_containing_comp_unit
	and load_comp_unit.
	(free_stack_comp_unit): Update comments.  Clear the per-cu
	pointer.  Handle aging.
	(dwarf2_find_containing_comp_unit, free_cached_comp_units)
	(age_cached_comp_units, free_one_cached_comp_unit)
	(dwarf2_mark, dwarf2_clear_marks, create_all_comp_units)
	(load_comp_unit, dwarf2_find_comp_unit, free_one_comp_unit)
	(set_dwarf2_cmdlist, show_dwarf2_cmdlist, set_dwarf2_cmd)
	(show_dwarf2_cmd): New.
	(_initialize_dwarf2_read): Provide "maint set dwarf2 max-cache-age"
	and "maint show dwarf2 max-cache-age".
	* gdbcmd.h (maintenance_set_cmdlist, maintenance_show_cmdlist): New
	externs.
	* maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): Make
	global.

2004-09-20  Jeff Johnston  <jjohnstn@redhat.com>

	* dwarf2read.c (typename_concat): Change prototype to accept obstack
	and dwarf2_cu struct pointer as arguments.  Change function to use
	obstack if provided and use dwarf2_cu to determine language-specific
	separator.
	(partial_die_parent_scope): Change comment to include java.  Use
	new version of typename_concat instead of obconcat.
	(partial_die_full_name): Use typename_concat.
	(read_namespace): Ditto.
	(read_enumeration_type): Use typename_concat instead of obconcat.
	(new_symbol): Ditto.
	(add_partial_symbol): Enhance tests for C++ to also test for Java.
	(guess_structure_name): Ditto.
	(read_subroutine_type): Ditto.
	(read_structure_type): Ditto.
	(is_vtable_name): Add Java support.
	(determine_class_name): Switch to new typename_concat call.
	(determine_prefix): Switch to new typename_concat call.
	* jv-exp.y (FuncStart): New pattern.
	(MethodInvocation): Add support for simple function calls.  Change
	warning message for other forms of inferior call currently not
	supported.
	* valarith.c (value_subscript): Treat an array with upper-bound
	of -1 as unknown size.

2004-09-20  Daniel Jacobowitz  <dan@debian.org>

	* symtab.c (lookup_partial_symtab): Use psymtab_to_fullname.
	(lookup_partial_symtab): Use symtab_to_fullname.

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

	* minsyms.c (lookup_minimal_symbol): Doc fix.

2004-09-20  Andrew Cagney  <cagney@gnu.org>

	* config/nm-lynx.h (DEPRECATED_CHILD_RESUME): Deprecate
	CHILD_RESUME.
	* config/i386/nm-linux.h (DEPRECATED_CHILD_RESUME): Ditto.
	* config/nm-linux.h (DEPRECATED_KILL_INFERIOR): Deprecate
	KILL_INFERIOR.
	* infptrace.c: Update.

2004-09-19  Daniel Jacobowitz  <dan@debian.org>

	* symtab.c (output_source_filename): Mark first argument as const.
	(sources_info): Use symtab_to_fullname and psymtab_to_fullname
	for "info sources" output.

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

	* config/i386/nm-fbsd.h, config/i386/nm-obsd.h: Don't include
	<machine/vmparam.h>.
	(KERNEL_U_ADDR, REGISTER_U_ADDR): Remove defines.
	(register_u_addr): Remove prototype.

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

	* i386bsd-nat.c: Include "i386bsd-nat.h" and "inf-ptrace.h".
	(i386bsd_fetch_inferior_registers): Rename from
	fetch_inferior_registers.  Make static.
	(i386bsd_store_inferior_registers): Rename from
	store_inferior_registers.  Make static.
	(i386bsd_target): New function.
	* i386bsd-nat.h: New file.
	* i386fbsd-nat.c: Include "target.h", "fbsd-nat.h" and
	"i386bsd-nat.h".
	(i386fbsd_resume): Rename from child_resume.  Make static.
	(_initialize_i386fbsd_nat): Construct and add target vector.
	* i386nbsd-nat.c: Include "target.h" and "i386bsd-nat.h".
	(_initialize_i386nbsd_nat): Construct and add target vector.
	* config/i386/nm-fbsd.h: (CHILD_RESUME, CHILD_PID_TO_EXEC_FILE):
	Remove defines.
	* config/i386/fbsd.mh (NATDEPFILES): Add inf-child.o, inf-ptrace.o
	and fbsd-nat.o.  Remove inftarg.o and fbsd-proc.o.
	* config/i386/nbsdaout.mh (NATDEPFILES): Add inf-child.o,
	inf-ptrace.o, i386bsd-nat.o and bsd-kvm.o.  Remove inftarg.o.
	(LOADLIBES): New variable.
	* config/i386/nbsdelf.mh (NATDEPFILES): Add inf-child.o and
	inf-ptrace.o.  Remove inftarg.o.
	* config/i386/obsd.mh (NATDEPFILES): Add inf-child.o and
	inf-ptrace.o. Remove inftarg.o.
	* config/i386/obsdaout.mh (NATDEPFILES): Add inf-child.o,
	inf-ptrace.o, i386nbsd-nat.o and bsd-kvm.o.  Remove inftarg.o.
	(LOADLIBES): New variable.
	* Makefile.in (i386bsd_nat_h): New variable.
	(i386bsd-nat.o, i386fbsd-nat.o, i386nbsd-nat.o): Update
	dependencies.

	* sparc64nbsd-tdep.c: Include "objfiles.h".
	(sparc64nbsd_init_abi): Set in_solib_call_trampoline and
	skip_trampoline_code.  Set solib_svr4_fetch_link_map_offsets to
	svr4_lp64_fetch_link_map_offsets.
	* sparc64obsd-tdep.c: Include "objfiles.h".  Don't include
	"nbsd-tdep.h".
	(sparc64obsd_init_abi): Set in_solib_call_trampoline and
	skip_trampoline_code.  Set solib_svr4_fetch_link_map_offsets to
	svr4_lp64_fetch_link_map_offsets.
	* Makefile.in (sparc64nbsd-tdep.o, sparc64obsd-tdep.o): Update
	dependencies.

	* fbsd-nat.c: New files with cleaned up contents of fbsd-proc.c.
	* fbsd-nat.h: New file.
	* Makefile.in (ALLDEPFILES): Add fbsd-nat.c.
	(fbsd_nat_h): New variable.
	(fbsd-nat.o): New dependency.

	* config/sparc/nbsd64.mt, config/sparc/obsd.mt,
	config/sparc/obsd64.mt (DEPRECATED_TM_FILE): Set to solib.h.

	* inf-child.c (inf_child_post_wait): Remove stray whitespace in
	comment.

2004-09-18  Paul N. Hilfinger  <hilfinger@gnat.com>
	
	* ada-exp.y (type_int): New function to add layer of abstraction
	around references to expression types.
	(type_long): Ditto.
	(type_long_long): Ditto.
	(type_float): Ditto.
	(type_double): Ditto.
	(type_long_double): Ditto.
	(type_char): Ditto.
	(type_system_address): Ditto.
	(simple_exp): Use type_* functions in place of builtin_* 
	variables.
	(exp): Ditto.
	(write_var_from_name): Ditto.
	(write_object_renaming): Ditto.
	* ada-lang.c (ada_create_fundamental_type): Remove redundant
	declaration.
	(build_ada_types): Remove, replacing with...
	(ada_language_arch_info): New function to initialize primitive
	type vector in language_arch_info.
	(ada_array_length): Remove use of builtin_type_ada_int.
	(value_pos_atr): Ditto.
	(ada_evaluate_subexp): Ditto.
	(builtin_type_ada_int, builtin_type_ada_short, builtin_type_ada_long,
	builtin_type_ada_long_long, builtin_type_ada_char, 
	builtin_type_ada_float, builtin_type_ada_double, 
	builtin_type_ada_long_double, builtin_type_ada_natural,
	builtin_type_ada_positive, builtin_type_ada_system_address): Remove.
	(ada_builtin_types): Remove.
	(ada_language_defn): Remove entries for la_builtin_type_vector and
	string_char_type and use ada_language_arch_info.
	(_initialize_ada_language): Do type-vector initialization along
	the lines of c-lang.c.
	(ada_create_fundamental_type): Break up line.
	(ada_dump_symtab): Remove unused function.
	(enum ada_primitive_types): Define.
	* ada-lang.h (builtin_type_ada_int, builtin_type_ada_short, 
	builtin_type_ada_long,builtin_type_ada_long_long,builtin_type_ada_char, 
	builtin_type_ada_float, builtin_type_ada_double, 
	builtin_type_ada_long_double, builtin_type_ada_natural,
	builtin_type_ada_positive, builtin_type_ada_system_address): Remove.
	* ada-lex.l: Use type_* functions in place of builtin_* variables.
	(processInt): Ditto.
	(processReal): Ditto.
	(name_lookup): Ditto.
	* ada-typeprint.c (print_range): Use builtin_type_int, not
	builtin_type_ada_int.
	
2004-09-18  Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_register_name): Rename regno to regnum.

	* config/pa/hpux1020.mh (MH_CFLAGS): Remove -D__HP_CURSES.
	* config/pa/hpux11.mh (MH_CFLAGS): Likewise.
	* config/pa/hpux11w.mh (MH_CFLAGS): Likewise.
	* configure.in: Improve checks for curses library by checking for
	mvwaddstr instead of initscr.  Drop HP curses in favour of
	standard curses on HP-UX.
	* configure: Regenerated.

2004-09-18  Paul N. Hilfinger  <hilfinger@gnat.com>

	* ada-lang.c: (ada_main_name, ada_value_slice_ptr, ada_value_slice,
	ada_breakpoint_rewrite, ada_template_to_fixed_record_type_1): 
	Minor formatting changes.
	(empty_array): Slight rewrite for formatting.
	(emit_char,parse,ada_language_defn,build_ada_types,
	ada_is_exception_sym, _initialize_ada_language): Move 
	definitions around.
	(ada_dump_symtab): Remove unused definition.
	(ada_maybe_exception_partial_symbol): Remove unused definition.

2004-09-16  Andrew Cagney  <cagney@gnu.org>

	* inf-child.c: Include "gdb_string.h".
	(inf_child_core_file_to_sym_file): Delete.
	(inf_child_target): Set to_fetch_registers and to_store_registers.
	* inf-ptrace.c: Include "gdb_string.h".
	* Makefile.in: Update all dependencies.

	* Makefile.in (gnu-v3-abi.o): Add explict rule to avoid -Werror
	problem.

2004-09-14  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips_insn32_frame_cache): Pass frame cache in
	call to heuristic_proc_desc. Remove code that became redundant
	as a consequence.
	(read_next_frame_reg): Remove special case for SP_REGNUM.
	(set_reg_offset): Fix small typo.
	(reset_saved_regs): New procedure.
	(mips32_heuristic_proc_desc): No longer compute a fake
	procedure descriptor. Compute the full frame cache instead.
	Some minor comment reformatting.

2004-09-14  Andrew Cagney  <cagney@gnu.org>

	* MAINTAINERS: Add Michael Chastain as the backup gdb.threads
	maintainer.

	* thread-db.c (thread_db_new_objfile): Assume that there is a
	child process.

2004-09-13  Jim Blandy  <jimb@redhat.com>

	* valops.c (value_assign): Move 'buffer' to the enclosing block,
	so that its storage isn't referenced after its lifetime ends.

	* valops.c (value_assign): 'use_buffer' is initialized to zero,
	and never assigned to.   Delete it, and the 'if (use_buffer)'
	clauses.  Delete 'raw_buffer', since it is now unused.

2004-09-13  Andrew Cagney  <cagney@gnu.org>

	* configure.in (frags): Replace TM_FILE with DEPRECATED_TM_FILE.
	* configure: Re-generate.
	* nlm/Makefile.in (TAGS): Update.
	* Makefile.in (TAGS): Update.
	* config/vax/nbsd.mt (TM_FILE): Update.
	* config/sparc/vxworks.mt (TM_FILE): Update.
	* config/sparc/sol2.mt (TM_FILE): Update.
	* config/sparc/sol2-64.mt (TM_FILE): Update.
	* config/sparc/obsd64.mt (TM_FILE): Update.
	* config/sparc/obsd.mt (TM_FILE): Update.
	* config/sparc/nbsd64.mt (TM_FILE): Update.
	* config/sparc/nbsd.mt (TM_FILE): Update.
	* config/sparc/linux64.mt (TM_FILE): Update.
	* config/sparc/linux.mt (TM_FILE): Update.
	* config/sparc/fbsd.mt (TM_FILE): Update.
	* config/sh/wince.mt (TM_FILE): Update.
	* config/sh/nbsd.mt (TM_FILE): Update.
	* config/sh/linux.mt (TM_FILE): Update.
	* config/sh/embed.mt (TM_FILE): Update.
	* config/s390/s390.mt (TM_FILE): Update.
	* config/rs6000/rs6000lynx.mt (TM_FILE): Update.
	* config/rs6000/rs6000.mt (TM_FILE): Update.
	* config/rs6000/aix4.mt (TM_FILE): Update.
	* config/powerpc/vxworks.mt (TM_FILE): Update.
	* config/powerpc/ppc-sim.mt (TM_FILE): Update.
	* config/powerpc/ppc-eabi.mt (TM_FILE): Update.
	* config/powerpc/obsd.mt (TM_FILE): Update.
	* config/powerpc/nbsd.mt (TM_FILE): Update.
	* config/powerpc/linux.mt (TM_FILE): Update.
	* config/powerpc/aix.mt (TM_FILE): Update.
	* config/pa/obsd.mt (TM_FILE): Update.
	* config/pa/linux.mt (TM_FILE): Update.
	* config/pa/hppahpux.mt (TM_FILE): Update.
	* config/pa/hppa64.mt (TM_FILE): Update.
	* config/pa/hppa.mt (TM_FILE): Update.
	* config/ns32k/nbsdaout.mt (TM_FILE): Update.
	* config/mips/wince.mt (TM_FILE): Update.
	* config/mips/vxmips.mt (TM_FILE): Update.
	* config/mips/nbsd.mt (TM_FILE): Update.
	* config/mips/linux.mt (TM_FILE): Update.
	* config/mips/irix6.mt (TM_FILE): Update.
	* config/mips/irix5.mt (TM_FILE): Update.
	* config/mips/embed.mt (TM_FILE): Update.
	* config/m68k/vxworks68.mt (TM_FILE): Update.
	* config/m68k/st2000.mt (TM_FILE): Update.
	* config/m68k/os68k.mt (TM_FILE): Update.
	* config/m68k/obsd.mt (TM_FILE): Update.
	* config/m68k/nbsd.mt (TM_FILE): Update.
	* config/m68k/monitor.mt (TM_FILE): Update.
	* config/m68k/linux.mt (TM_FILE): Update.
	* config/m68k/cisco.mt (TM_FILE): Update.
	* config/ia64/linux.mt (TM_FILE): Update.
	* config/ia64/aix.mt (TM_FILE): Update.
	* config/ia64/ia64.mt (TM_FILE): Update.
	* config/i386/vxworks.mt (TM_FILE): Update.
	* config/i386/obsd64.mt (TM_FILE): Update.
	* config/i386/obsd.mt (TM_FILE): Update.
	* config/i386/nto.mt (TM_FILE): Update.
	* config/i386/nbsd64.mt (TM_FILE): Update.
	* config/i386/nbsd.mt (TM_FILE): Update.
	* config/i386/linux64.mt (TM_FILE): Update.
	* config/i386/linux.mt (TM_FILE): Update.
	* config/i386/i386sol2.mt (TM_FILE): Update.
	* config/i386/i386lynx.mt (TM_FILE): Update.
	* config/i386/fbsd64.mt (TM_FILE): Update.
	* config/i386/fbsd.mt (TM_FILE): Update.
	* config/i386/cygwin.mt (TM_FILE): Update.
	* config/h8300/h8300.mt (TM_FILE): Update.
	* config/frv/frv.mt (TM_FILE): Update.
	* config/cris/cris.mt (TM_FILE): Update.
	* config/arm/wince.mt (TM_FILE): Update.
	* config/arm/nbsd.mt (TM_FILE): Update.
	* config/arm/linux.mt (TM_FILE): Update.
	* config/arm/embed.mt (TM_FILE): Update.
	* config/alpha/nbsd.mt (TM_FILE): Update.
	* config/alpha/fbsd.mt (TM_FILE): Update.
	* config/alpha/alpha.mt (TM_FILE): Update.
	* config/alpha/alpha-osf1.mt (TM_FILE): Update.
	* config/alpha/alpha-linux.mt (TM_FILE): Update.

	Eliminate event_loop_p, always has the value 1.
	* defs.h (event_loop_p): Delete macro.
	* breakpoint.c (until_break_command): Simplify.
	* utils.c (prompt_for_continue): Simplify.
	* tracepoint.c (read_actions): Simplify.
	* top.c (throw_exception, execute_command, gdb_readline_wrapper) 
	(gdb_rl_operate_and_get_next, command_line_input, get_prompt) 
	(set_prompt, init_main): Simplify.
	(init_signals, disconnect): Delete, unused.
	* remote.c (remote_async_resume) 
	(extended_remote_async_create_inferior): Simplify.
	* mi/mi-interp.c (mi_input): Delete, unused.
	(mi_interpreter_resume, mi_command_loop): Simplify.
	* interps.c (current_interp_command_loop): Simplify.
	* infrun.c (proceed): Simplify.
	* infcmd.c (run_command, continue_command, step_1, jump_command)
	(until_command, advance_command, finish_command)
	(interrupt_target_command): Simplify.
	* event-top.c (gdb_setup_readline, gdb_disable_readline): Simplify.

	* config/i386/nm-i386.h (TARGET_HAS_HARDWARE_WATCHPOINTS): Delete.
	* config/s390/nm-linux.h (TARGET_HAS_HARDWARE_WATCHPOINTS): Delete.
	* config/pa/nm-hppah.h (TARGET_HAS_HARDWARE_WATCHPOINTS): Delete.
	* config/ia64/nm-linux.h (TARGET_HAS_HARDWARE_WATCHPOINTS): Delete.
	* config/frv/tm-frv.h (TARGET_HAS_HARDWARE_WATCHPOINTS): Delete.
	* mips-tdep.c (mips_dump_tdep): Do not print same.

2004-09-12  Andrew Cagney  <cagney@gnu.org>

	* valprint.c (print_longest): Use fputs_filtered.  Make "val"
	const.
	* Makefile.in (valprint.o): Delete explict rule.

	* config/m68k/nbsdelf.mh: Add missing trailing newline.  Problem
	reported by Dave Anderson.

	* target.c (target_info): Delete #ifdef call to FILES_INFO_HOOK.

	* inferior.h (STORE_STRUCT_RETURN): Delete macro.

2004-09-12  Salvador E. Tropea  <set@users.sf.net>
	    Andrew Cagney  <cagney@gnu.org>

	* mi/mi-main.c (mi_cmd_data_list_changed_registers)
	(mi_cmd_data_list_register_values)
	(mi_cmd_data_write_register_values): Include the PSEUDO_REGS in
	the register number computation.

2004-09-12  Andrew Cagney  <cagney@gnu.org>

	* ppcnbsd-nat.c: Include "inf-ptrace.h".
	(ppcnbsd_fetch_inferior_registers): Rename fetch_inferior_registers.
	(ppcnbsd_store_inferior_registers): Rename store_inferior_registers.
	(_initialize_ppcnbsd_nat): Create and add a NetBSD/PPC ptrace
	target.
	* config/powerpc/nbsd.mh (NATDEPFILES): Replace and inftarg.o with
	inf-ptrace.o and inf-child.o.
	* inf-ptrace.h, inf-ptrace.c, inf-child.h, inf-child.c: New files.
	* Makefile.in: Update dependencies.
	
2004-09-11  Andrew Cagney  <cagney@gnu.org>

	* language.c (hex_string, hex_string_custom): Move from here ...
	* utils.c (hex_string, hex_string_custom): ... to here, rewrite.
	(CELLSIZE): Increase to 50.
	* language.h (hex_string, hex_string_custom): Move from here ...
	* defs.h: ... to here.
	* Makefile.in: Update all dependencies.
	
2004-09-11  Paul N. Hilfinger  <hilfinger@gnat.com>

        * language.c (local_hex_format_custom): Remove.
	(local_hex_string): Rename to hex_string, use C format, and move to
	utils.c
	(local_hex_string_custom): Rename to hex_string_custom and change
	interface.  Now uses C format.  Move to utils.c
	(local_octal_format_custom): Remove.
	(local_decimal_format_custom): Remove.
	(unknown_language_defn): Remove language-specific number 
	formatting entries.
	(auto_language_defn): Ditto.
	(local_language_defn): Ditto.
	* language.h (struct language_format_info): Delete declaration.
	(struct language_defn): Remove language_format_info fields
	la_binary_format, la_octal_format, la_decimal_format, la_hex_format.
	(local_binary_format): Remove macro.
	(local_binary_format_prefix): Remove macro.
	(local_binary_format_specifier): Remove macro.
	(local_binary_format_suffix): Remove macro.
	(local_octal_format): Remove macro.
	(local_octal_format_prefix): Remove macro.
	(local_octal_format_specifier): Remove macro.
	(local_octal_format_suffix): Remove macro.
	(local_decimal_format): Remove macro.
	(local_decimal_format_prefix): Remove macro.
	(local_decimal_format_specifier): Remove macro.
	(local_decimal_format_suffix): Remove macro.
	(local_hex_format): Remove macro.
	(local_hex_format_prefix): Remove macro.
	(local_hex_format_specifier): Remove macro.
	(local_hex_format_suffix): Remove macro.
	(local_decimal_format_custom): Remove.
	(local_octal_format_custom): Remove.
	(local_hex_format_custom): Remove.
	(local_hex_string): Rename to hex_string and move to defs.h.
	(local_hex_string_custom): Rename to hex_string_custom, change
	interface, and move to defs.h.
	* utils.c: (int_string): New function.
	(hex_string): New function (from language.c).
	(hex_string_custom): New function (from language.c).
	(octal2str): New function.
	(decimal2str): Add width parameter.
	(paddr_u): Use new decimal2str interface.
	(paddr_d): Ditto.
	* defs.h (hex_string): Declare.
	(hex_string_custom): Declare.
	(int_string): Declare.
	* printcmd.c (print_scalar_formatted): Remove localized binary
	formatting.
	* valprint.c (print_longest): Use int_string.
	(print_floating): Use C hex format.
	(print_hex_chars): Ditto.
	(print_binary_chars): Remove language-specific formatting.
	(print_octal_chars): Use C octal format.
	(print_decimal_chars): Delocalize format.
	(print_decimal): Remove.
	* ada-lang.c (ada_language_defn): Remove language-specific number 
	formatting entries.
	* p-lang.c (pascal_language_defn): Ditto.
	* c-lang.c (c_language_defn): Ditto.
	(cplus_language_defn): Ditto.
	(asm_language_defn): Ditto.
	(minimal_language_defn): Ditto.
	* f-lang.c (f_language_defn): Ditto.
	* jv-lang.c (java_language_defn): Ditto.
	* m2-lang.c (m2_language_defn): Ditto.
	* scm-lang.c (scm_language_defn): Ditto.
	* objc-lang.c (objc_language_defn): Ditto.
	* memattr.c (mem_info_command): Use renamed hex_string_custom with
	new interface.
	* pa64solib.c (pa64_sharedlibrary_info_command): Ditto.
	* ui-out.c (ui_out_field_core_addr): Ditto.
	* breakpoint.c (breakpoint_adjustment_warning): Ditto.
	* exec.c (print_section_info): Ditto.
	* i387-tdep.c (print_i387_status_word): Ditto.
	(print_i387_control_word): Ditto.
	(i387_print_float_info): Ditto.
	* maint.c (maint_print_section_info): Ditto.
	* solib.c (info_sharedlibrary_command): Ditto.
	* somsolib.c (som_sharedlibrary_info_command): Ditto.
	* symtab.c (print_msymbol_info): Ditto.
	* tracepoint.c (tracepoints_info): Ditto.
	* solib-frv.c (lm_base): Ditto.
	(frv_current_sos): Ditto.
	(enable_break2): Ditto.
	(enable_break): Ditto.
	* dbxread.c (read_dbx_symtab): Use renamed hex_string.
	(process_one_symbol): Ditto.
	* infcmd.c (program_info): Ditto.
	* mdebugread.c (parse_partial_symbols): Ditto.
	* symfile.c (add_symbol_file_command): Ditto.
	* cli/cli-cmds.c (edit_command): Ditto.
	(list_command): Ditto.
	* infcall.c (call_function_by_hand): Ditto.
	* remote-vx.c (vx_run_files_info): Ditto.
	(vx_wait): Ditto.
	(vx_attach): Ditto.
	(vx_detach): Ditto.
	(vx_kill): Ditto.
	* aix-thread.c (pdc_symbol_addrs): Ditto.
	(pdc_read_regs): Ditto.
	(pdc_write_regs): Ditto.
	(pdc_read_data): Ditto.
	(pdc_write_data): Ditto.
	* d10v-tdep.c (display_trace): Ditto.
	* rs6000-nat.c (find_toc_address): Ditto.
	* aix-thread.c: Don't include language.h.
	* buildsym.c: Ditto.
	* dbxread.c: Ditto.
	* mdebugread.c: Ditto.
	* rs6000-nat.c: Ditto.
	* buildsym.c (make_blockvector): Use renamed hex_string.
	
2004-09-10  Jason Molenda  (jmolenda@apple.com)

        * cli/cli-script.c (read_next_line): Accept zero or more whitespace
        chars after 'if' or 'while' commands in user-defined commands.

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

        Fix bug reported and analyzed by Olivier Crete:
	* symfile.c (copy_section_addr_info): New function.
	(symbol_file_add_with_addrs_or_offsets): Use it to save the
	original set of address arguments, instead of handwritten code
	that uses one length to allocate and a different length to
	initialize.  Use make_cleanup_free_section_addr_info.
	* symfile.h (copy_section_addr_info): New declaration.
	* utils.c: #include "symfile.h".
	(do_free_section_addr_info, make_cleanup_free_section_addr_info):
	New functions.
	* defs.h (make_cleanup_free_section_addr_info): New declaration.
	* Makefile.in (utils.o): Update dependencies.

2004-09-08  Andrew Cagney  <cagney@gnu.org>

	* thread-db.c (keep_thread_db): Delete.
	(thread_db_new_objfile, thread_db_create_inferior)
	(thread_db_mourn_inferior): Simplify assuming !keep_thread_db.

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

	* i386-tdep.h (FPC_REGNUM, FCTRL_REGNUM, FSTAT_REGNUM, FTAG_REGNUM)
	(FISEG_REGNUM, FIOFF_REGNUM, FOSEG_REGNUM, FOOFF_REGNUM)
	(FOP_REGNUM, XMM0_REGNUM, MXCSR_REGNUM): Remove macros.
	(i386_frameless_signal_p): Remove prototype.
	* i386-linux-nat.c (GETFPREGS_SUPPLIES): Remove macro.
	(GETFPXREGS_SUPPLIES): Define using I386_ST0_REGNUM and
	I386_SSE_NUM_REGS.
	* i386-nto-tdep.c (i386nto_supply_gregset): Use I386_NUM_GREGS
	instead of FP0_REGNUM.
	(i386nto_regset_id): Use I386_NUM_GREGS and I386_NUM_FREGS instead
	of FP0_REGNUM and FPC_REGNUM.

	* solib-sunos.c (sunos_relocate_main_executable): Remove function.
	(sunos_solib_create_inferior_hook): Don't call
	sunos_relocate_main_executable.

	* sparcnbsd-tdep.c (sparc32nbsd_elf_init_abi): Set
	solib_svr4_fetch_link_map_offsets to
	svr4_ilp32_fetch_link_map_offsets.
	* sparcobsd-tdep.c: Don't include "nbsd-tdep.h".
	(sparc32obsd_init_abi): Set solib_svr4_fetch_link_map_offsets to
	svr4_ilp32_fetch_link_map_offsets.
	* Makefile.in (sparcobsd-tdep.o): Update dependencies.

2004-09-07  Jim Blandy  <jimb@redhat.com>

	* frame.h (frame_register): Doc fix.

2004-09-07  Andrew Cagney  <cagney@gnu.org>

	* vx-share/wait.h: Delete #ifdef USG.
	* utils.c (request_quit): Ditto.
	* tui/tui.c (tui_reset): Ditto.
	* remote.c: Ditto.
	* remote-sds.c: Ditto.
	* remote-rdi.c: Ditto.
	* mdebugread.c: Ditto.
	* m68klinux-nat.c: Ditto.
	* infttrace.c: Ditto.
	* infptrace.c: Ditto.
	* i386v-nat.c: Ditto.
	* exec.c: Ditto.
	* dbxread.c: Ditto.
	* core-aout.c: Ditto.

2004-09-05  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips_insn16_frame_cache): Fix parameter in call to
	heuristic_proc_desc.
	(mips_insn32_frame_cache): Likewise.

2004-09-04  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips32_heuristic_proc_desc): Remove code that was
	left behind by error.

2004-09-04  Joel Brobecker  <brobecker@gnat.com>

	* config/alpha/nm-osf.h (PTRACE_ARG3_TYPE): Remove define.
	* config/powerpc/nm-aix.h (PTRACE_ARG3_TYPE): Likewise.

2004-09-04  Joel Brobecker  <brobecker@gnat.com>

	* config/rs6000/xm-aix4.h: Remove this file.
	* config/rs6000/aix4.mh (XM_FILE): Delete.

2004-09-04  Joel Brobecker  <brobecker@gnat.com>

	* config/rs6000/xm-rs6000.h: Remove this file.
	* config/rs6000/rs6000.mh (XM_FILE): Remove.

2004-09-03  Andrew Cagney  <cagney@gnu.org>

	* mips-tdep.c (PROC_DESC_IS_DUMMY, SET_PROC_DESC_IS_DUMMY)
	(_PROC_MAGIC_, after_prologue, mips_dump_tdep): Delete macros and
	only use.

	* mips-tdep.c (temp_saved_regs): Delete.
	(set_reg_offset): Replace saved_regs parameter with this_cache.
	(heuristic_proc_desc, mips16_heuristic_proc_desc)
	(mips32_heuristic_proc_desc): Add this_cache parameter.
	(mips_insn32_frame_cache, mips_insn16_frame_cache)
	(after_prologue): Pass a NULL this_cache.

	* mips-tdep.c (mips_mdebug_frame_cache): Delete code handling
	non-kernel trap prologues.

	* mips-tdep.c (find_proc_desc): Delete function.
	(mips_mdebug_frame_cache): Inline call to find_proc_desc,
	simplify.
	(mips_insn16_frame_cache): Replace find_proc_desc with code from
	mips_insn32_frame_cache.

	* mips-tdep.c (after_prologue): Inline call to find_proc_desc.
	Simplify as NEXT_FRAME is NULL.
	(find_proc_desc): Simplify as NEXT_FRAME is non-NULL.

	* mips-tdep.c (after_prologue): Replace proc_desc parameter with
	local variable.
	(mips_skip_prologue): Update.

	* mips-tdep.c (find_proc_desc, heuristic_proc_desc): Delete
	"cur_frame" parameter.
	(after_prologue, mips_mdebug_frame_cache, mips_insn16_frame_cache):
	(mips_insn32_frame_cache, find_proc_desc): Update

	* config/vax/nm-obsd.h: Delete file.
	* config/vax/obsd.mh (NAT_FILE): Set to config/nm-bsd.h.
	* config/vax/nm-nbsd.h: Delete file.
	* config/vax/nm-nbsdaout.h: Include config/nm-nbsd.h.
	* config/vax/nbsdelf.mh (NAT_FILE): Set to config/nm-nbsd.h.
	* config/sh/nm-nbsd.h: Delete file.
	* config/sh/nbsd.mh (NAT_FILE): Set to config/nm-nbsd.h.
	* config/rs6000/nm-rs6000ly.h: Delete file.
	* config/djgpp/fnchange.lst: Do not rename nm-rs6000ly.h.
	* config/rs6000/rs6000lynx.mh (NAT_FILE): Set to config/nm-lynx.h.
	* config/powerpc/nm-obsd.h: Delete file.
	* config/powerpc/obsd.mh (NAT_FILE): Set to config/nm-bsd.h.
	* config/powerpc/nm-nbsd.h: Delete file.
	* config/powerpc/nbsd.mh (NAT_FILE): Set to config/nm-nbsd.h.
	* config/pa/nm-obsd.h: Delete file.
	* config/pa/obsd.mh (NAT_FILE): Set to config/nm-bsd.h.
	* config/mips/nm-nbsd.h: Delete file.
	* config/mips/nbsd.mh (NAT_FILE): Set to config/nm-nbsd.h.
	* config/m88k/nm-obsd.h: Delete file.
	* config/m88k/obsd.mh (NAT_FILE): Set to config/nm-bsd.h.
	* config/m68k/nm-nbsd.h: Delete file.
	* config/m68k/nm-nbsdaout.h: Include config/nm-nbsd.h.
	* config/m68k/nbsdelf.mh (NAT_FILE): Set to config/nm-nbsd.h.
	* config/i386/nm-nbsd.h: Delete file.
	* config/i386/nm-nbsdaout.h: Include config/nm-nbsd.h.
	* config/i386/obsd64.mh (NAT_FILE): Set to config/nm-nbsd.h.
	* config/i386/nbsd64.mh (NAT_FILE): Set to config/nm-nbsd.h.
	* config/i386/nbsdelf.mh (NAT_FILE): Set to config/nm-nbsd.h.
	* config/i386/nm-i386lynx.h: Delete file.
	* config/i386/i386lynx.mh (NAT_FILE): Set to config/nm-lynx.h.
	* config/arm/nm-nbsd.h: Delete file.
	* config/arm/nm-nbsdaout.h: Include config/nm-nbsd.h.
	* config/arm/nbsdelf.mh (NAT_FILE): Set to config/nm-nbsd.h.

	* config/i386/tm-fbsd.h: Delete file.
	* config/i386/fbsd64.mt (TM_FILE): Set to solib.h.
	* config/i386/fbsd.mt (TM_FILE): Set to solib.h.

	* config/rs6000/tm-rs6000-aix4.h: Delete file.
	* config/djgpp/fnchange.lst: Do not rename tm-rs6000-aix4.h.
	* config/rs6000/aix4.mt (TM_FILE): Set to
	config/rs6000/tm-rs6000.h.
	* config/powerpc/tm-ppc-aix.h: Delete file.
	* config/powerpc/aix.mt (TM_FILE): Set to
	config/rs6000/tm-rs6000.h.
	* config/m68k/tm-linux.h: Delete file.
	* config/m68k/linux.mt (TM_FILE): Set to solib.h
	* config/i386/tm-linux64.h: Delete file.
	* config/i386/linux64.mt (TM_FILE): Set to solib.h.
	* config/djgpp/fnchange.lst: Do not rename tm-linux.h.
	
	* config/m68k/tm-linux.h (SVR4_SHARED_LIBS): Delete.
	* config/i386/tm-linux64.h (SVR4_SHARED_LIBS): Delete.
	* config/i386/nm-i386sco5.h (SVR4_SHARED_LIBS): Delete.
	* config/tm-linux.h (SVR4_SHARED_LIBS): Delete.
	* config/nm-sysv4.h (SVR4_SHARED_LIBS): Delete.
	* config/nm-linux.h (SVR4_SHARED_LIBS): Delete.
	* config/nm-gnu.h (SVR4_SHARED_LIBS): Delete.
	* sh64-tdep.c [SVR4_SHARED_LIBS]: Delete #ifdef wrapper. 
	* sh-tdep.c [SVR4_SHARED_LIBS]: Delete #ifdef wrapper.

	* configure.in (GDB_TM_FILE): Fix typo, use gdb_target_cpu and not
	gdb_host_cpu.

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

	* mips-tdep.c (mips_insn32_frame_cache): Remove some dead code.
	Minor reformatting. Some code factoring.

2004-09-02  Andrew Cagney  <cagney@gnu.org>

	* config/vax/nbsd.mt (TM_FILE): Set to solib.h.
	* config/vax/tm-nbsd.h: Delete file.
	* config/sparc/vxworks.mt (TM_FILE): Set to config/tm-vxworks.h.
	* config/sparc/tm-vxworks.h: Delete file.
	* config/sparc/nbsd.mt (TM_FILE): Set to solib.h.
	* config/sparc/tm-nbsd.h: Delete file.
	* config/sparc/linux64.mt (TM_FILE): Set to solib.h.
	* config/sparc/linux.mt (TM_FILE): Set to solib.h.
	* config/sparc/tm-linux.h: Delete file.
	* config/s390/s390.mt (TM_FILE): Set to config/tm-linux.h
	* config/s390/tm-linux.h: Delete file.
	* config/pa/obsd.mt (TM_FILE): Set to solib.h.
	* config/pa/tm-bsd.h: Delete file.
	* config/m68k/obsd.mt (TM_FILE): Set to solib.h.
	* config/m68k/tm-obsd.h: Delete file.
	* config/m68k/nbsd.mt (TM_FILE): Set to solib.h.
	* config/m68k/tm-nbsd.h: Delete file.
	* config/i386/vxworks.mt (TM_FILE): Set to config/tm-vxworks.h.
	* config/i386/tm-vxworks.h: Delete file.
	* config/i386/obsd64.mt (TM_FILE): Set to solib.h.
	* config/i386/obsd.mt (TM_FILE): Set to solib.h.
	* config/i386/nbsd64.mt (TM_FILE): Set to solib.h.
	* config/i386/nbsd.mt (TM_FILE): Set to solib.h.
	* config/i386/tm-nbsd.h: Delete file.
	* config/i386/i386lynx.mt (TM_FILE): Set to config/tm-lynx.h.
	* config/i386/tm-i386lynx.h: Delete file.
	* config/cris/cris.mt (TM_FILE): Set to solib.h.
	* config/cris/tm-cris.h: Delete file.

	* configure.in: Let TM_FILE, XM_FILE and NAT_FILE specify a path.
	* configure: Re-generate.
	* config/arm/nbsd.mt (TM_FILE): Set to "solib.h".
	* config/arm/tm-nbsd.h: Delete file.
	
	* config/powerpc/tm-ppcle-sim.h: Delete.
	* config/powerpc/tm-ppcle-eabi.h: Delete.
	* config/powerpc/tm-nbsd.h: Delete.
	* config/powerpc/nbsd.mt (TM_FILE): Set to tm-ppc-eabi.h.
	* config/djgpp/fnchange.lst: Do not rename tm-ppcle-sim.h or
	tm-ppcle-eabi.h.

	* config/i386/nto.mh (NAT_FILE): Delete.
	* config/i386/nm-nto.h: Delete.

	* config/m68k/tm-vx68.h: Do not include "tm-m68k.h".
	* config/m68k/tm-os68k.h: Ditto.
	* config/m68k/tm-monitor.h: Ditto.
	* config/m68k/tm-cisco.h: Ditto.
	* config/m68k/st2000.mt (TM_FILE): Delete.
	* config/m68k/tm-vx68.h (GET_LONGJMP_TARGET): Delete.
	* config/m68k/tm-cisco.h (GET_LONGJMP_TARGET): Delete.
	* config/m68k/tm-m68k.h (m68k_get_longjmp_target): Delete file.
	* m68k-tdep.c (m68k_get_longjmp_target): Make static.

	* config/m68k/tm-st2000.h: Delete.
	* config/m68k/st2000.mt (TM_FILE): Set to tm-m68k.h.
	* config/sparc/fbsd.mt (TM_FILE): Delete.
	* config/sparc/tm-fbsd.h: Delete.

	* acconfig.h (GDB_MULTI_ARCH): Delete undef.
	* defs.h (GDB_MULTI_ARCH_PARTIAL, GDB_MULTI_ARCH_TM) 
	(GDB_MULTI_ARCH_PURE, GDB_MULTI_ARCH): Delete macros.

	* gdbarch.sh: Instead of GDB_MULTI_ARCH print GDB_NM_FILE,
	GDB_TM_FILE and GDB_XM_FILE.
	* gdbarch.c: Re-generate.	
	* configure.in (GDB_XM_FILE, GDB_NM_FILE, GDB_TM_FILE): Include
	quotes in macro definition.
	* configure.in: Re-generate.

	* gdbarch.sh: Delete check for GDB_MULTI_ARCH_PARTIAL when
	validating architecture methods.
	* gdbarch.c: Re-generate.
	
	* gdbarch.sh: Delete check for consistency between GDB_MULTI_ARCH
	and GDB_TM_FILE.  Check for GDB_TM_FILE instead of
	GDB_MULTI_ARCH_PARTIAL.
	* gdbarch.h: Re-generate.
	
	* config/sparc/tm-vxworks.h (GDB_MULTI_ARCH): Delete.
	* config/sparc/tm-sol2.h (GDB_MULTI_ARCH): Delete.
	* config/sparc/tm-nbsd.h (GDB_MULTI_ARCH): Delete.
	* config/sparc/tm-linux.h (GDB_MULTI_ARCH): Delete.
	* config/sparc/tm-fbsd.h (GDB_MULTI_ARCH): Delete.
	* config/sh/tm-sh.h (GDB_MULTI_ARCH): Delete.
	* config/rs6000/tm-rs6000.h (GDB_MULTI_ARCH): Delete.
	* config/pa/tm-hppa.h (GDB_MULTI_ARCH): Delete.
	* config/mips/tm-mips.h (GDB_MULTI_ARCH): Delete.
	* config/ia64/tm-ia64.h (GDB_MULTI_ARCH): Delete.
	* config/cris/tm-cris.h (GDB_MULTI_ARCH): Delete.
	* config/arm/tm-arm.h (GDB_MULTI_ARCH): Delete.

2004-09-01  Andrew Cagney  <cagney@gnu.org>

	* objfiles.h (struct entry_info): Delete fields main_func_lowpc
	and main_func_highpc.
	(INVALID_ENTRY_LOWPC, INVALID_ENTRY_HIGHPC): Delete macros.
	* objfiles.c (init_entry_point_info, objfile_relocate): Update
	* nlmread.c (nlm_symfile_read): Update.

2004-09-01  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (linked_proc_desc_table): Delete, not used.
	(mips_insn32_frame_cache): Inline call to find_proc_desc.
	(find_proc_desc): Remove dead code.

2004-09-01  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c (mips_mdebug_frame_cache): Minor reformatting.

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

	* observer.sh: Add struct so_list declaration.
	* Makefile.in: Add dependencies on observer.h for solib.c and
	breakpoint.c.
	* breakpoint.c (disable_breakpoints_in_unloaded_shlib): New
	function.
	(_initialize_breakpoint): Register 
	disable_breakpoints_in_unloaded_shlib as an observer of the 
        "solib unloaded" observation event.
	(re_enable_breakpoints_in_shlibs): For bp_shlib_disabled breakpoints,
	call decode_line_1 so unfound breakpoint errors are silent.
	* solib.c (update_solib_list): When a solib is discovered to have
	been unloaded by the program, notify all observers of the
	"solib unloaded" observation event.

2004-09-01  Andrew Cagney  <cagney@gnu.org>

	* frame.c: Include "objfiles.h".
	(inside_main_func): New function.
	(get_prev_frame): Use new inside_main_func.
	* Makefile.in (frame.o): Update dependencies.
	* defs.h (inside_main_func): Delete declaration.
	* blockframe.c (inside_main_func): Delete function.

2004-08-31  Jim Blandy  <jimb@redhat.com>

	* dwarf2read.c (is_vtable_name): New function, based on logic from
	read_structure_type, but passing the correct length to strncmp,
	and using 'sizeof' instead of 'strlen'.
	(read_structure_type): Call it.

2004-08-31  Joel Brobecker  <brobecker@gnat.com>

	* config/powerpc/aix.mh: Add comment.

2004-08-31  Paul GIlliam  <pgilliam@us.ibm.com>

	* MAINTAINERS: Add self to Write-After-Approval.

2004-08-30  Manoj Iyer  <manjo@austin.ibm.com>

	* MAINTAINERS: Add self to Write-After-Approval.

2004-08-30  Andrew Cagney  <cagney@gnu.org>

	Fix PR breakpoints/1757.
	* infrun.c (struct execution_control_state): Replace
	remove_breakpoints_on_following_step with
	step_after_step_resume_breakpoint.
	(init_execution_control_state): Update.
	(handle_inferior_event): For signals, when stepping off a
	breakpoint, set step_after_step_resume_breakpoint.  When
	BPSTAT_WHAT_STEP_RESUME, do a single-step off the breakpoint.
	(keep_going): Delete code handling
	remove_breakpoints_on_following_step.

2004-08-29  David Lecomber  <david@streamline-computing.com>
	
	Fix PR gdb/648
	* language.h (enum array_ordering): New enum.
	* language.h (struct language_defn): New la_array_ordering 
	attribute.
	* language.c (unknown_language_defn, auto_language_defn)
	(local_language_defn): Ditto.
	* ada-lang.c (ada_language_defn): Ditto.
	* c-lang.c (c_language_defn, cplus_language_defn)
	(asm_language_defn, minimal_language_defn): Ditto.
	* f-lang.c (f_language_defn): Ditto.
	* jv-lang.c (java_language_defn): Ditto.
	* m2-lang.c (f_language_defn): Ditto.
	* objc-lang.c (objc_language_defn): Ditto.
	* p-lang.c (pascal_language_defn): Ditto.
	* scm-lang.c (scm_language_defn): Ditto.
	* eval.c (evaluate_subexp_standard): Assume Fortran arrays are
	oriented large to small in type structure.
	* dwarf2read.c (read_array_order): New function.
	(read_array_type): Use read_array_order to check row/column
	major ordering.

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

	* target.c (target_resize_to_sections): Check
	current_target.to_sections for an old value when updating.

2004-08-27  Joel Brobecker  <brobecker@gnat.com>

	* procfs.c (dbx_link_bpt_addr): New static global variable.
	(dbx_link_shadow_contents): New static global variable.
	(procfs_wait, case <PR_SYSEXIT>): Handle syssgi events.
	(procfs_wait, case <FLTBPT>): Remove the __dbx_link brekapoint
	if we just hit it.
	(procfs_init_inferior): Enable syssgi() syscall trace if appropriate.
	Reset dbx_link_bpt_addr as the address of __dbx_link() may change
	from run to run.
	(procfs_create_inferior): Remove syssgi syscall-exit notifications
	after the inferior has been forked.
	(remove_dbx_link_breakpoint): New function.
	(dbx_link_addr): New function.
	(insert_dbx_link_bpt_in_file): New function.
	(insert_dbx_link_bpt_in_region): New function.
	(insert_dbx_link_breakpoint): New function.
	(proc_trace_syscalls_1): New function, extracted from
	proc_trace_syscalls.
	(proc_trace_syscalls): Replace extract code by call to
	proc_trace_syscalls_1.
	* solib-irix.c (disable_break): Remove stop_pc assertion, as it
	is no longer valid.

2004-08-25  Jim Blandy  <jimb@redhat.com>

	* gdbtypes.h (TYPE_CODE_ARRAY): Doc fix.

2004-08-25  Andrew Cagney  <cagney@gnu.org>

	* infrun.c (struct execution_control_state): Delete field
	"stepping_through_sigtramp".
	(init_execution_control_state): Do not set same.
	(context_switch): Do not pass same to save_infrun_state and
	load_infrun_state.
	* gdbthread.h (struct thread_info): Delete field
	stepping_through_sigtramp.
	(save_infrun_state, load_infrun_state): Delete parameter
	stepping_through_sigtramp.
	* thread.c (load_infrun_state, save_infrun_state): Update.

	* infrun.c: Re-indent.  Move expression operators to the beginning
	of the line.  Remove long disabled #if 0 code.

2004-08-24  Andrew Cagney  <cagney@gnu.org>

	* doublest.h (floatformat_ieee_quad): Rename
	floatformat_ia64_quad.
	* doublest.c (floatformat_ieee_quad): Rename
	floatformat_ia64_quad.
	(_initialize_doublest): Update.

2004-08-24  Jim Blandy  <jimb@redhat.com>

	* dwarf2expr.h (struct dwarf_expr_context): New members
	'num_pieces' and 'pieces', for returning the result of an
	expression that uses DW_OP_piece.
	(struct dwarf_expr_piece): New struct type.
	* dwarf2expr.c (new_dwarf_expr_context): Initialize num_pieces and
	pieces.
	(free_dwarf_expr_context): Free pieces, if any.
	(add_piece): New function.
	(execute_stack_op): Implement DW_OP_piece.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc): If the result of the
	expression is a list of pieces, print an error message.
        (dwarf2_loc_desc_needs_frame): If the expression yields
        pieces, and any piece is in a register, then we need a frame.

	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Wait to fetch the top of
	the stack until we've decided what sort of result the evaluation
	has produced.  Use separate variables, with more specific names.

2004-08-23  Richard Earnshaw  <rearnsha@arm.com>

	* armnbsd-tdep.c (arm_nbsd_arm_be_breakpoint): Define.
	(arm_nbsd_thumb_[lb]e_breakpoint): Define.
	(arm_netbsd_init_abi_common): Register them.

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

	* config/vax/vax.mh (NATDEPFILES): Add vax-nat.c.

	* amd64obsd-tdep.c (amd64obsd_sigtramp_p): Use
	safe_frame_unwind_memory instead of target_read_memory.

	* infptrace.c: Remove #ifdef'ed out inclusion of gdb_stat.h.
	Reorder includes.
	(fetch_register, store_register): Remove prototypes.
	(child_resume): Reorganize code and comments such that it is
	grouped a bit more logically.
	(attach): Explicitly compare errno against 0.
	(detach): Likewise.  Use perror_with_name instead of
	print_sys_errmsg.
	* Makefile.in (infptrace.o): Update dependencies.

	* ia64-linux-nat.c: Update copyright year.
	(fetch_debug_register, store_debug_register)
	(ia64_linux_stopped_by_watchpoint): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* config/ia64/nm-linux.h: Update copyright year.
	 (PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Remove defines.

	* amd64-linux-tdep.c (amd64_linux_sigtramp_start): Change argument
	from CORE_ADDR to struct frame_info *.  Use
	safe_frame_unwind_memory instead of deprecated_read_memory_nobpt.
	(amd64_linux_sigtramp_p): Adjust for changed signature of
	and64_linux_sigtramp_start

	* gdb_ptrace.h: GNU/Linux.

	* config/alpha/nm-linux.h (PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE):
	Remove defines.

	* infptrace.c: Include "gdb_assert.h".
	(PTRACE_XFER_TYPE): Remove define.
	(offsetof): Only define if U_REGS_OFFSET isn't defined.
	(fetch_register, store_register): Rewrite to use PTRACE_TYPE_RET.
	Tweak comment.
	(fetch_inferior_registers, store_inferior_registers): Remove
	redundant culry braces.  Tweak comment.  s/regno/regnum.
	* Makefile.in (infptrace.o): Update dependencies.

	* configure.in: Change test for return type of ptrace to default
	to `long' instead of `int'.
	* configure: Regenerate.	

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

	* config/alpha/alpha-linux.mh (LOADLIBES): New variable.

	* configure.in: Check for ttrace function.
	* configure, config.in: Regenerate.	

	* gdb_ptrace.h: New file.
	* infptrace.c: Include "gdb_ptrace.h" instead of <ptrace.h> or
	<sys/ptrace.h>.
	(PT_READ_I, PT_READ_D, PT_READ_U, PT_WRITE_I, PT_WRITE_D)
	(PT_WRITE_U, PT_CONTINUE, PT_STEP, PT_KILL): Remove defines.
	(attach): Don't define PT_ATTACH.
	(detach): Don't define PT_DETACH.
	* Makefile.in (gdb_ptrace_h): New variable.
	(infptrace.o): Update dependencies.

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

	* inferior.h (PTRACE_ARG3_TYPE): Define as PTRACE_TYPE_ARG3
	instead of `int' if not already defined.
	(call_ptrace): Revert change that replaced PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* infptrace.c (call_ptrace): Revert change that replaced
	PTRACE_ARG3_TYPE with PTRACE_TYPE_ARG3.

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

	* config/i386/nm-linux64.h (PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE):
	Remove defines.

	* linux-nat.c (kill_inferior): Add missing third and fourth
	arguments to ptrace call.  Don't use PTRACE_ARG3_TYPE.

	* infptrace.c (child_xfer_memory): Replace PTRACE_XFER_TYPE with
	PTRACE_TYPE_RET.

	* proc-why.c (proc_prettyfprint_why): Fix format string.

	* solib-osf.c (osf_current_sos): Remove unsused label.

	* configure.in: Add <ncurses/ncurses.h> to the list of possible
	curses headers.
	* configure, config.in: Regenerate.	
	* gdb_curses.h [HAVE_NCURSES_NCURSES_H]: Include
	<ncurses/ncurses.h>.

	* config/nm-bsd.h (PTRACE_ARG3_TYPE): Remove define.
	* config/nm-nbsd.h: Update copyright year.
	(PTRACE_ARG3_TYPE): Remove define.

	* sparc-nat.c (fetch_inferior_registers)
	(store_inferior_registers, sparc_xfer_wcookie): 
	Replace PTRACE_ARG3_TYPE with PTRACE_TYPE_ARG3.

	* alphabsd-nat.c (fetch_inferior_registers):
	(store_inferior_registers): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* amd64bsd-nat.c (fetch_inferior_registers)
	(store_inferior_registers): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* armnbsd-nat.c: Update copyright year.
	(fetch_register, fetch_regs, fetch_fp_register, fetch_fp_regs)
	(store_register, store_regs, store_fp_register, store_fp_regs):
	Replace PTRACE_ARG3_TYPE with PTRACE_TYPE_ARG3.
	* hppabsd-nat.c (fetch_inferior_registers)
	(store_inferior_registers): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* i386bsd-nat.c (fetch_inferior_registers)
	(store_inferior_registers, i386bsd_dr_set, i386bsd_dr_get_status):
	Replace PTRACE_ARG3_TYPE with PTRACE_TYPE_ARG3.
	* m68kbsd-nat.c (fetch_inferior_registers)
	(store_inferior_registers): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* m88kbsd-nat.c (fetch_inferior_registers)
	(store_inferior_registers): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* mipsnbsd-nat.c: Update copyright year.
	(fetch_inferior_registers, store_inferior_registers):
	Replace PTRACE_ARG3_TYPE with PTRACE_TYPE_ARG3.
	* ns32knbsd-nat.c: Update copyright year.
	(fetch_inferior_registers, store_inferior_registers):
	Replace PTRACE_ARG3_TYPE with PTRACE_TYPE_ARG3.
	* ppcnbsd-nat.c (fetch_inferior_registers):
	(store_inferior_registers): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* ppcobsd-nat.c (fetch_inferior_registers):
	(store_inferior_registers): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* shnbsd-nat.c: Update copyright year.
	(fetch_inferior_registers, store_inferior_registers):
	Replace PTRACE_ARG3_TYPE with PTRACE_TYPE_ARG3.
	* vaxbsd-nat.c (fetch_inferior_registers)
	(store_inferior_registers): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	
	* inferior.h (call_ptrace): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.
	* infptrace.c (call_ptrace, child_resume, attach, detach)
	(U_REGS_OFFSET, fetch_register, store_register, child_xfer_memory)
	(udot_info): Replace PTRACE_ARG3_TYPE with PTRACE_TYPE_ARG3.
	* inftarg.c (ptrace_me): Replace PTRACE_ARG3_TYPE with
	PTRACE_TYPE_ARG3.

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

	* defs.h: Remove out-of-date comment.
	[!FCLOSE_PROVIDED] (fclose): Remove prototype.
	[!GETENV_PROVIDED] (getenv): Remove prototype.

	* standalone.c: Remove file.
	* Makefile.in (standalone.o): Remove dependency.

	* i386-linux-nat.c (dummy_sse_values): Remove function and
	prototype.
	(i386_linux_dr_get): Fix typo in comment.
	(LINUX_SYSCALL_REGNUM): Define as I386_EAX_REGNUM.

	* config/i386/obsd64.mt (TDEPFILES): Add i386obsd-tdep.o.

	* defs.h (deprecated_error_hook): Remove RETURN and ATTR_NORETURN
	from declaration.
	* top.c (deprecated_error_hook): Remove RETURN and ATTR_NORETURN
	from definition.

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

	* configure.in (PTRACE_TYPE_ARG3, PTRACE_TYPE_ARG5): Don't use
	parenthesis in definition.
	* configure: Regenerated.

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

	* PROBLEMS: Mention build/1411.

2004-08-09  Robert Millan  <robertmh@gnu.org>

	Committed by Nathanael Nerode.
	* configure.host: Match kfreebsd*-gnu and knetbsd*-gnu.
	* configure.tgt: Match kfreebsd*-gnu and knetbsd*-gnu.

2004-08-12  Andrew Cagney  <cagney@gnu.org>

	* NEWS: Mention fixes in GDB 6.2.1.
	* PROBLEMS: Remove mention of mips-irix.

2004-08-11  Joel Brobecker  <brobecker@gnat.com>

	* config/powerpc/xm-aix.h: Delete.
	* config/powerpc/aix.mh (MH_FILE): Remove.
	* config/powerpc/aix432.mh (MH_FILE): Remove.

2004-08-11  Joel Brobecker  <brobecker@gnat.com>

	* config/powerpc/aix.mh: Remove obsolete comment.
	* config/powerpc/aix432.mh: Likewise.

2004-08-11  Joel Brobecker  <brobecker@gnat.com>

	* config/powerpc/xm-aix.h (UINT_MAX): Remove undef.

2004-08-11  Joel Brobecker  <brobecker@gnat.com>

	* config/rs6000/xm-aix4.h: Remove "config/xm-aix4.h" include,
	this file is now empty.
	* config/xm-aix4.h: Remove, this file is no longer included
	anywhere.

2004-08-11  Joel Brobecker  <brobecker@gnat.com>

	* config/powerpc/xm-aix.h: Remove "config/xm-aix4.h" include,
	that file is now empty.
	(termdef): Remove prototype, function no longer used.

2004-08-11  Joel Brobecker  <brobecker@gnat.com>

	* doc/gdbint.texinfo (Host Definition): Remove documentation
	for USE_O_NOCTTY, no longer used.
	* config/xm-aix4.h (USE_O_NOCTTY): Remove, no longer used.
	* config/rs6000/xm-rs6000.h (USE_O_NOCTTY): Likewise.

2004-08-11  Joel Brobecker  <brobecker@gnat.com>

	* config/xm-aix4.h (FIVE_ARG_PTRACE): Remove, no longer used.
	* config/pa/nm-hppah.h (FIVE_ARG_PTRACE): Likewise.
	* config/rs6000/xm-rs6000.h (FIVE_ARG_PTRACE): Likewise.

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

	* infptrace.c (call_ptrace): Select code based on PTRACE_TYPE_ARG5
	instead of FIVE_ARG_PTRACE.

	* inflow.c (O_NOCTTY): Define to zero if not already defined.
	(new_tty): Use O_NOCTTY unconditionally.

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

	* procfs.c (procfs_detach): Cleanup.  Print process ID, not LWP
	ID.  Use comma in output.  Use gdb_flush on gdb_stdout instead of
	fflush on stdout.

2004-08-10  Joel Brobecker  <brobecker@gnat.com>

	* xcoff_symfile_finish: Replace last call to xmfree by call
	to xfree.

2004-08-10  Andrew Cagney  <cagney@gnu.org>

	* main.c (captured_main): Delete call to init_malloc.
	* defs.h (init_malloc): Delete declaration.
	* utils.c (mmalloc, mrealloc, mcalloc, mfree)
	(init_malloc): Delete functions.

	* defs.h (xmfree): Delete.
	* utils.c (xmfree): Delete function.
	(xfree): Inline calls to xmfree and mfree.
	* symmisc.c (free_symtab_block, free_symtab): Use xfree.
	* symfile.c (reread_symbols, init_psymbol_list): Ditto.
	* source.c (forget_cached_source_info, find_and_open_source): Ditto.
	* somread.c (som_symfile_finish): Ditto.
	* objfiles.c (allocate_objfile, free_objfile): 
	* nlmread.c (nlm_symfile_finish): Ditto.
	* hpread.c (hpread_symfile_finish): Ditto.
	* elfread.c (free_elfinfo, elf_symfile_finish): Ditto.
	* dbxread.c (dbx_symfile_finish, free_bincl_list): Ditto.
	* coffread.c (coff_symfile_finish): Ditto.

	* defs.h (xmcalloc): Delete declaration.
	* utils.c (xmcalloc): Delete.
	(xcalloc): Inline calls to xmcalloc and mcalloc.
	* ada-lang.c (_initialize_ada_language): Use htab_create_alloc,
	xcalloc and xfree.
	* symtab.c (create_demangled_names_hash): Ditto.

	* defs.h (xmrealloc): Delete.
	* utils.c (xmrealloc): Delete.
	(xrealloc): Inline calls to xmrealloc, mmalloc and mrealloc.
	* symmisc.c (extend_psymbol_list): Use xrealloc.
	* source.c (find_source_lines): Ditto.
	* hpread.c (hpread_lookup_type): Ditto.
	* dbxread.c (add_bincl_to_list): Ditto.

	* utils.c (xmmalloc): Delete.
	(xmalloc): Inline xmmalloc and mmalloc calls.
	(msavestring): Use xmalloc.
	* defs.h (xmmalloc): Delete declaration.
	* xcoffread.c (xcoff_symfile_init): Use xmalloc instead of
	xmmalloc.
	* symmisc.c (extend_psymbol_list): Ditto.
	* symfile.c (init_psymbol_list): Ditto.
	* source.c (find_source_lines): Ditto.
	* hpread.c (hpread_symfile_init, hpread_lookup_type): Ditto.
	* elfread.c (elf_symtab_read): Ditto.
	* dbxread.c (dbx_symfile_init, init_bincl_list): Ditto.
	* coffread.c (coff_symfile_init): Ditto.

2004-08-10  David Carlton  <carlton@bactrian.org>

	* MAINTAINERS: Remove David Carlton from c++ testsuite
	maintainers.

2004-08-10  Jerome Guitton  <guitton@gnat.com>

	* symfile.c (symbol_file_add_with_addrs_or_offsets): Make sure to
	print a line feed before the prompt.

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

	* procfs.c (procfs_pid_to_str): Use "%ld" to print LWP.

2004-08-09  Joel Brobecker  <brobecker@gnat.com>

	General cleanup of the AIX xm include file:
	* config/xm-aix4.h (fd_set): Remove undefine.
	Remove include of <sys/select.h>.
	(HAVE_TERMIO): Remove define.
	(USG): Likewise.
	(NULL): Remove redefine.
	(alloca): Remove #pragma.
	(vfork): Remove define.
	(termdef): Remove.
	(SIGWINCH_HANDLER): Remove.
	(SIGWINCH_HANDLER_BODY): Remove.

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

	* configure.tgt (x86_64-*-openbsd*): Set gdb_osabi to
	GDB_OSABI_OPENBSD_ELF.

2004-08-07  Robert Millan  <robertmh@gnu.org>

	* bsd-kvm.c: Check for nlist.h before including it.

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

	* i386bsd-nat.c (_initialize_i386bsd_nat): Remove `struct
	sigcontext' offset consistency checks for ancient BSD.

	* gdb_curses.h [HAVE_CURSESX_H]: Include <cursesX.h>

	* configure.in: Check for <sys/types.h>.  Check return and
	argument types of ptrace.
	* configure, config.in: Regenerate.	

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

	* rs6000-tdep.c (set_sim_regno, init_sim_regno_table,
	rs6000_register_sim_regno): Doc fixes.

2004-08-08  Joel Brobecker  <brobecker@gnat.com>

	* mips-tdep.c: Include "floatformat.h".
	(n32n64_floatformat_always_valid): New function.
	(floatformat_n32n64_long_double_big): New constant.
	(mips_gdbarch_init): Set size and format of long double
	for N32 and N64 ABIs.
	* Makefile.in (mips-tdep.o): Update dependencies.

2004-08-08  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh: Delete "fmt" and "attrib" fields.  Always use %s to
	print.  Improve script's error messages.
	* gdbarch.h: Re-generate.

	* gdbarch.sh (pformat): New function.
	(float_format, double_format, long_double_format): List with bit
	members.  Use pformat when printing.
	* gdbarch.c, gdbarch.h: Re-generate.
	
2004-08-08  Nathan J. Williams  <nathanw@wasabisystems.com>

	* ppcnbsd-nat.c: Include <machine/frame.h>, <machine/pcb.h>,
	"gdbcore.h", "regcache.h", and "bsd-kvm.h".
	(ppcnbsd_supply_pcb): New function.
	(_initialize_ppcnbsd_nat): New prototype and function.
	* config/powerpc/nbsd.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.
	* Makefile.in (ppcnbsd-nat.o): Update dependencies.

2004-08-08  Andrew Cagney  <cagney@gnu.org>

	* gdbtypes.c (builtin_type_arm_ext, builtin_type_ieee_single)
	(builtin_type_ieee_double, builtin_type_ia64_quad)
	(builtin_type_ia64_spill, _initialize_gdbtypes): Add tables of
	BE/LE floating-point types.
	* gdbtypes.h (builtin_type_arm_ext, builtin_type_ieee_single)
	(builtin_type_ieee_double, builtin_type_ia64_quad)
	(builtin_type_ia64_spill): Declare.
	* doublest.c (_initialize_doublest, floatformat_ieee_single)
	(floatformat_ieee_double, floatformat_arm_ext)
	(floatformat_ia64_spill, floatformat_ia64_quad): Add tables
	of LE/BE floatformats.	
	* doublest.h: (struct floatformat, floatformat_ieee_single)
	(floatformat_ieee_double, floatformat_arm_ext)
	(floatformat_ia64_spill, floatformat_ia64_quad): Declare.

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

	* i386gnu-nat.c (gnu_store_registers): Fix typo.

	* i386gnu-nat.c (gnu_store_registers): Use regcache_raw_collect
	instead of regcache_raw_supply when storing the registers.

	* i386gnu-nat.c: Update copyright year.
	(gnu_store_registers): Don't use deprecated_registers and
	deprecated_registers_valid.  Use regcache_valid_p and
	regcache_raw_supply instead.

	* vax-tdep.c (vax_frame_this_id): Use frame_func_unwind instead of
	frame_pc_unwind.

	* procfs.c (procfs_pid_to_str): Remove redundant and unused
	variables.  Incapitalized "process".

	* configure.in: Add cursesX to the list of possible curses libs.
	Add cursesX.h to the list of possible curses headers. 
	* configure, config.in: Regenerate.	

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

	* configure.in: Test for struct lwp in <sys/lwp.h>.
	* bsd-kvm.c (bsd_kvm_proc_cmd): If HAVE_STRUCT_LWP is defined, use
	the offset of l_addr in struct lwp.

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

	* bsd-kvm.c: Include "gdbcore.h"
	(bsd_kvm_open): Use get_exec_file() to set 'execfile'.

2004-08-07  Andrew Cagney  <cagney@gnu.org>

	* gdbtypes.c (build_flt, build_complex): New functions.
	(gdbtypes_post_init): Use.

	* doublest.c (floatformat_from_length): Fix tipo, "*" not "&".

	* gdbtypes.c (_initialize_gdbtypes): Do not swap builtin_type_int8
	through to builtin_type_uint128.

	* c-exp.y: Use builtin_type function to obtain builtin types.

	* gdbtypes.h (struct builtin_type): Delete builtin_int0 through to
	builtin_uint128.
	* gdbtypes.c (gdbtypes_post_init): Update.
	(build_gdbtypes): Move initialization of builtin_type_int0
	through to builtin_type_uint128 from here ...
	(_initialize_gdbtypes): ... to here.
	* d10v-tdep.c (d10v_register_type): Update.

	* doublest.c: Update copyright.
	(floatformat_from_length): Call error when floatformat is NULL.
	(extract_floating_by_length): Remove NULL fmt check.
	(store_floating_by_length): Ditto.

2004-08-07  Andrew Cagney  <cagney@gnu.org>

	* regcache.c (regcache_raw_read): For the moment, #ifdef assert
	that the register is valid.

2004-08-05  Mark Kettenis  <kettenis@chello.nl>

	* i386-linux-tdep.c (i386_linux_sigtramp_start)
	(i386_linux_rt_sigtramp_start): Change argument from CORE_ADDR to
	struct frame_info *.  Use safe_frame_unwind_memory instead of
	deprecated_read_memory_nobpt.
	(i386_linux_sigtramp_p, i386_linux_sigcontext_addr): Adjust for
	changed signature of i386_linux_sigtramp_start and
	i386_linux_rt_sigtramp_start.

	* i386nbsd-tdep.c (i386nbsd_sigtramp_offset): Change argument from
	CORE_ADDR to struct frame_info *.  Use safe_frame_unwind_memory
	instead of deprecated_read_memory_nobpt.
	(i386nbsd_sigtramp_p): Adjust for changed signature of
	i386nbsd_sigtramp_offset.

	* i386obsd-tdep.c (i386obsd_sigtramp_p): Use
	safe_frame_unwind_memory instead of target_read_memory.

	* infptrace.c: Include <sys/file.h> if HAVE_SYS_FILE_H instead of
	!NO_SYS_FILE.
	[KERNEL_U_ADDR_BSD]: Don't include <a.out.h>.
	[KERNEL_U_ADDR_BSD] (kernel_u_addr): Remove variable.
	(_initialize_kernel_u_addr): Remove prototype and function.
	* infttrace.c: Include <sys/file.h> if HAVE_SYS_FILE_H instead of
	!NO_SYS_FILE.
	* xcoffread.c: Likewise.

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

	* vax-nat.c: New file.
	* vaxbsd-nat.c: Tweak comment.
	* Makefile.in (ALLDEPFILES): Add vax-nat.c, vaxbsd-nat.c and
	vaxnbsd-tdep.c.
	(vax-nat.o): New dependency.
	* configure.host (vax-*-bsd*, vax-*-ultrix*): Set gdb_host to vax.
	(vax-*-ultrix2*): Remove.
	* config/vax/vax.mh: New file.
	* config/vax/nm-vax.h (vax_kernel_u_addr): New extern declaration.
	(KERNEL_U_ADDR): Define as vax_kernel_u_addr.
	(vax_register_u_addr): New prototype.
	(REGISTER_U_ADDR): Define using vax_register_u_addr.
	* config/vax/vaxult2.mh: Remove file.
	* config/vax/vaxult.mh: Remove file.
	* config/vax/vaxbsd.mh: Remove file.
	* config/vax/vax.mt (TM_FILE): Remove.
	* config/vax/tm-vaxbsd.h: Remove file.

2004-08-06  Joel Brobecker  <brobecker@gnat.com>

	* aix-thread.c (get_signaled_thread): New function.
	(iter_trap): Delete, no longer used.
	(iter_tid): New function.
	(pd_update): Find the thread that received the SIGTRAP signal
	by first locating the kernel thread, and then finding its
	associated thread.

2004-08-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* lin-lwp.c (child_wait): Continue inferior after processing
	PTRACE_EVENT_CLONE event.

2004-08-05  Nathanael Nerode  <neroden@gcc.gnu.org>

	* MAINTAINERS: Add self to Write-After-Approval.

2004-08-05  Jeff Johnston  <jjohnstn@redhat.com>

	* libunwind-frame.c (LIBUNWIND_SO): Change to be of form:
	libunwind-xxxx.so" where xxxx is UNW_TARGET.

2004-08-05  Andrew Cagney  <cagney@gnu.org>

	* config/xm-sysv4.h: Delete file.
	* config/mips/xm-irix5.h: Delete file.
	* config/mips/irix6.mh (XM_FILE, XM_CLIBS): Delete.
	* config/mips/irix5.mh (XM_FILE, XM_CLIBS): Delete.
	* config/ia64/xm-aix.h: Delete file.
	* config/ia64/aix.mh (XM_FILE): Delete.
	* config/pa/xm-hppah.h: Delete file.
	* config/pa/hpux11w.mh (XM_FILE): Delete.
	* config/pa/hpux11.mh (XM_FILE): Delete.
	* config/pa/hpux1020.mh (XM_FILE): Delete.
	* config/pa/hppahpux.mh (XM_FILE): Delete.

	* config/alpha/xm-alphalinux.h: Delete file.
	* config/djgpp/fnchange.lst: Do not fix xm-alphalinux.h.
	* config/alpha/alpha-linux.mh (XM_FILE, LOADLIBES): Delete.
	* config/alpha/xm-alphaosf.h: Delete file.
	* config/djgpp/fnchange.lst: Do not fix xm-alphaosf.h.
	* config/alpha/alpha-osf3.mh (XM_FILE): Delete.
	* config/alpha/alpha-osf2.mh (XM_FILE): Delete.
	* config/alpha/alpha-osf1.mh (XM_FILE): Delete.

	* config/i386/xm-i386v.h: Delete file.
	* config/i386/i386v.mh (XM_FILE, XM_CLIBS): Delete.
	* config/i386/i386sco5.mh (XM_FILE, XM_CLIBS): Delete.
	* config/i386/xm-i386sco.h: Delete file.
	* config/i386/i386sco4.mh (XM_FILE, XM_CLIBS, MH_CFLAGS): Delete.
	* config/i386/i386sco.mh (XM_FILE, XM_CLIBS, CC): Delete.
	* config/i386/xm-i386v4.h: Delete file.
	* config/djgpp/fnchange.lst: Do not fix xm-i386v4.h.
	* config/i386/ncr3000.mh (CC, CFLAGS, XM_FILE): Delete.
	* config/i386/i386v42mp.mh (XM_FILE, XM_CLIBS): Delete.
	* config/i386/i386v4.mh (XM_FILE, XM_CLIBS): Delete.

	* config/vax/xm-vax.h: Delete file.
	* Makefile.in (xm-vaxult.h, xm-vaxbsd.h): Delete.
	* config/vax/xm-vaxult2.h: Delete file.
	* config/djgpp/fnchange.lst: Do not fix xm-vaxult2.h.
	* config/vax/vaxult2.mh (XM_FILE): Delete.
	* config/vax/xm-vaxult.h: Delete file.
	* config/vax/vaxult.mh (XM_FILE): Delete.
	* config/vax/xm-vaxbsd.h: Delete file.
	* config/vax/vaxbsd.mh (XM_FILE): Delete.

	* gdbarch.sh (deprecated_frame_saved_pc): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* regcache.c (deprecated_read_fp, deprecated_write_sp): Delete.
	* inferior.h (deprecated_read_fp, deprecated_write_sp): Delete.
	* frame.h: Delete deprecated_read_fp from comments.
	* arch-utils.c (deprecated_init_frame_pc_default): Delete.
	* arch-utils.h (deprecated_init_frame_pc_default): Delete.

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

	* i386obsd-tdep.c (i386obsd_sigtramp_p): Adjust for changed signal
	trampoline in OpenBSD 3.5-current.

	* i387-tdep.c (i387_supply_fsave): Provide summy values for the
	SSE registers.

	* Makefile.in: Remove embedded page breaks.

2004-08-04  Jim Blandy  <jimb@redhat.com>

	* regcache.c (regcache_raw_read): Assert that, after calling
        target_fetch_registers, the register we're reading is cached.

	* ppc-linux-nat.c (fetch_register): Replace 'gdb_assert (0)' with
	a call to 'internal_error', with a more helpful error message.
	* rs6000-tdep.c (e500_pseudo_register_read,
	e500_pseudo_register_write, rs6000_store_return_value): Same.

2004-08-04  Andrew Cagney  <cagney@gnu.org>

	* Makefile.in: Update dependencies.

2004-08-04  Jim Blandy  <jimb@redhat.com>

	Change the layout of the PowerPC E500 raw register cache to allow
	the lower 32-bit halves of the GPRS to be their own raw registers,
	not pseudoregisters.
	* ppc-tdep.h (struct gdbarch_tdep): Remove ppc_gprs_pseudo_p flag;
	add ppc_ev0_upper_regnum flag.
	* rs6000-tdep.c: #include "reggroups.h".
	(spe_register_p): Recognize the ev upper half registers as SPE
	registers.
	(init_sim_regno_table): Build gdb->sim mappings for the upper-half
	registers.
	(e500_move_ev_register): New function.
	(e500_pseudo_register_read, e500_pseudo_register_write): The 'ev'
	vector registers are the pseudo-registers now, formed by splicing
	together the gprs and the upper-half registers.
	(e500_register_reggroup_p): New function.
	(P): Macro deleted.
	(P8, A4): New macro.
	(PPC_EV_REGS, PPC_GPRS_PSEUDO_REGS): Macros deleted.
	(PPC_SPE_GP_REGS, PPC_SPE_UPPER_GP_REGS, PPC_EV_PSEUDO_REGS): New
	macros.
	(registers_e500): Rearrange register set so that the raw register
	set contains 32-bit GPRs and upper-half registers, and the SPE
	vector registers become pseudo-registers.
	(rs6000_gdbarch_init): Don't initialize tdep->ppc_gprs_pseudo_p;
	it has been deleted.  Initialize ppc_ev0_upper_regnum.  Many other
	register numbers are now the same for the E500 as they are for
	other PowerPC variants.  Register e500_register_reggroup_p as the
	register group function for the E500.
	* Makefile.in (rs6000-tdep.o): Update dependencies.

	Adapt PPC E500 native support to the new raw regcache layout.
	* ppc-linux-nat.c (struct gdb_evrregset_t): Doc fixes.
	(read_spliced_spe_reg, write_spliced_spe_reg): Deleted.
	(fetch_spe_register, store_spe_register): Handle fetching/storing
	all the SPE registers at once, if regno == -1.  These now take
	over the job of fetch_spe_registers and store_spe_registers.
	(fetch_spe_registers, store_spe_registers): Deleted.
	(fetch_ppc_registers, store_ppc_registers): Fetch/store gprs
	unconditionally; they're always raw.  Fetch/store SPE upper half
	registers, if present, instead of ev registers.
	(fetch_register, store_register): Remove sanity checks: gprs are
	never pseudo-registers now, so we never need to even mention any
	registers that are ever pseudoregisters.

	Use a fixed register numbering when communicating with the PowerPC
	simulator.
	* ppc-tdep.h (struct gdbarch_tdep): New member: 'sim_regno'.
	* rs6000-tdep.c: #include "sim-regno.h" and "gdb/sim-ppc.h".
	(set_sim_regno, init_sim_regno_table, rs6000_register_sim_regno): 
	New functions.
	(rs6000_gdbarch_init): Register rs6000_register_sim_regno.  Call
	init_sim_regno_table.
	* Makefile.in (gdb_sim_ppc_h): New variable.
	(rs6000-tdep.o): Update dependencies.

2004-08-02  Andrew Cagney  <cagney@gnu.org>

	* cris-tdep.c (cris_register_size): Restore function, still used
	locally.

	* gdbarch.sh (deprecated_target_read_fp)
	(deprecated_frame_locals_address, deprecated_frame_args_address)
	(deprecated_frame_chain_valid, deprecated_frame_chain)
	(deprecated_init_extra_frame_info, deprecated_pop_frame)
	(deprecated_frame_init_saved_regs, deprecated_get_saved_register)
	(deprecated_do_registers_info, deprecated_init_frame_pc): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* regcache.c (deprecated_read_fp): Do not call
	DEPRECATED_TARGET_READ_FP_P.
	* infcmd.c (default_print_registers_info): Do not call
	DEPRECATED_DO_REGISTERS_INFO.
	* frame-base.c (default_frame_locals_address): Do not call
	DEPRECATED_FRAME_LOCALS_ADDRESS.
	(default_frame_args_address): Do not call
	DEPRECATED_FRAME_ARGS_ADDRESS.

	* gdbarch.sh (deprecated_register_raw_size)
	(deprecated_register_virtual_size:int): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* cris-tdep.c (cris_register_size): Delete.
	(cris_gdbarch_init): Update.
	* alpha-tdep.c (alpha_register_raw_size)
	(alpha_register_virtual_size): Delete.
	(alpha_gdbarch_init): Update.

	* gdbarch.sh (deprecated_register_virtual_type)
	(deprecated_save_dummy_frame_tos, deprecated_push_return_address)
	(deprecated_dummy_write_sp): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.

	* gdbarch.sh (deprecated_register_bytes): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* regcache.c (deprecated_register_bytes): New function.
	* regcache.h (deprecated_register_bytes): Declare.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sh64-tdep.c (sh64_gdbarch_init): Update.
	* ns32k-tdep.c (ns32k_gdbarch_init_32082): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* remote.c (init_remote_state): Update.
	* remote-vx.c (vx_prepare_to_store): Update.
	* remote-sds.c (sds_fetch_registers, sds_prepare_to_store): Update.
	* irix5-nat.c (fetch_core_registers): Update.
	* cris-tdep.c (cris_register_bytes_ok): Update.
	* config/nm-gnu.h (CHILD_PREPARE_TO_STORE): Update.

	* mips-tdep.c (mips_gdbarch_init, mips_insn16_frame_cache)
	(mips_insn16_frame_this_id, mips_insn16_frame_prev_register)
	(mips_insn16_frame_unwind, mips_insn16_frame_sniffer)
	(mips_insn16_frame_base_address, mips_insn16_frame_base)
	(mips_insn16_frame_base_sniffer, mips_insn32_frame_cache)
	(mips_insn32_frame_this_id, mips_insn32_frame_prev_register)
	(mips_insn32_frame_unwind, mips_insn32_frame_sniffer)
	(mips_insn32_frame_base_address, mips_insn32_frame_base)
	(mips_insn32_frame_base_sniffer): Replace mips16 / mips32 prefix
	with mips_insn16 and mips_insn32.

	Replace DEPRECATED_REGISTER_RAW_SIZE with register_size.
	* rs6000-tdep.c (rs6000_push_dummy_call)
	(rs6000_extract_return_value): Use register_size.
	* xstormy16-tdep.c (xstormy16_get_saved_register) 
	(xstormy16_extract_return_value): Ditto.
	* valops.c (value_assign): Ditto.
	* v850ice.c (v850ice_fetch_registers, v850ice_store_registers): 
	* v850-tdep.c (v850_extract_return_value): Ditto.
	* tracepoint.c (collect_symbol): Ditto.
	* target.c (debug_print_register): Ditto.
	* stack.c (frame_info): Ditto.
	* rs6000-nat.c (ARCH64, fetch_register, store_register): Ditto.
	* rom68k-rom.c (rom68k_supply_one_register): Ditto.
	* remote.c (struct packet_reg, remote_wait, remote_async_wait)
	(store_register_using_P): Ditto.
	* remote-vxmips.c (vx_read_register, vx_write_register): Ditto.
	* remote-sim.c (gdbsim_fetch_register, gdbsim_store_register): Ditto.
	* remote-mips.c (mips_wait, mips_fetch_registers): Ditto.
	* remote-e7000.c (fetch_regs_from_dump, sub2_from_pc): Ditto.
	* regcache.c (deprecated_read_register_bytes) 
	(deprecated_write_register_bytes, read_register) 
	(write_register): Ditto.
	* ppc-linux-nat.c (fetch_altivec_register, fetch_register)
	(supply_vrregset, store_altivec_register, fill_vrregset): Ditto.
	* monitor.c (monitor_supply_register, monitor_fetch_register) 
	(monitor_store_register): Ditto.
	* mn10300-tdep.c (mn10300_pop_frame_regular) 
	(mn10300_print_register): Ditto.
	* mipsv4-nat.c (fill_fpregset): Ditto.
	* mips-linux-tdep.c (supply_32bit_reg, fill_fpregset) 
	(mips64_fill_fpregset): Ditto.
	* mi/mi-main.c (register_changed_p, get_register)
	(mi_cmd_data_write_register_values): Ditto.
	* lynx-nat.c (fetch_inferior_registers, store_inferior_registers): 
	* irix5-nat.c (fill_gregset, fetch_core_registers): 
	* infrun.c (write_inferior_status_register): Ditto.
	* infptrace.c (fetch_register, store_register): Ditto.
	* infcmd.c (default_print_registers_info): Ditto.
	* ia64-linux-nat.c (COPY_REG, fill_fpregset): Ditto.
	* ia64-aix-nat.c (COPY_REG, fill_gregset): Ditto.
	* i386gnu-nat.c (gnu_store_registers, fill): Ditto.
	* hpux-thread.c (hpux_thread_fetch_registers)
	(hpux_thread_store_registers): Ditto.
	* hppah-nat.c (store_inferior_registers, fetch_register): 
	* findvar.c (value_from_register): Ditto.
	* dve3900-rom.c (fetch_bitmapped_register): 
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* alpha-tdep.h: Ditto.
	* aix-thread.c (pd_enable, fill_sprs64, fill_sprs32): Ditto.

	* regcache.h: Delete DEPRECATED_REGISTER_VIRTUAL_SIZE and
	DEPRECATED_REGISTER_RAW_SIZE from comments.
	* regcache.c (init_regcache_descr, regcache_dump): Do not check or
	use DEPRECATED_REGISTER_VIRTUAL_SIZE and
	DEPRECATED_REGISTER_RAW_SIZE.
	* findvar.c (value_of_register): Simplify by assuming that the
	registers raw and virtual sizes are identical.
	* regcache.h: Delete DEPRECATED_REGISTER_VIRTUAL_TYPE in
	comment.
	* arch-utils.c (generic_register_size): Simplify by assuming
	register_type.

	* regcache.c (legacy_read_register_gen, real_register) 
	(legacy_write_register_gen): Delete, not used.

	* regcache.c (struct regcache_descr): Delete legacy_p.
	(init_legacy_regcache_descr): Delete function.
	(init_regcache_descr): Delete call to init_legacy_regcache_descr.
	Do not use deprecated register functions.
	(regcache_raw_read, deprecated_write_register_gen):
	(deprecated_read_register_gen, regcache_raw_write): Delete code
	predicated on legacy_p.
	(register_size): Delete check against register raw size.

	* cris-tdep.c (cris_register_type): Replace
	cris_register_virtual_type.
	(cris_gdbarch_init): Update, set register_type.

	* gdbarch.sh (deprecated_frameless_function_invocation): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arm-tdep.c 	(arm_frameless_function_invocation): Delete.
	(arm_gdbarch_init) Do not set frameless function invocation.
	* frame.h (legacy_frameless_look_for_prologue): Delete declaration.
	* blockframe.c (legacy_frameless_look_for_prologue): Delete function.
	* frv-tdep.c (frv_frameless_function_invocation): Delete.
	(frv_gdbarch_init): Do not set frameless function invocation.
	* sh64-tdep.c (sh64_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* m32r-tdep.c (m32r_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.

	* blockframe.c (legacy_frame_chain_valid): Delete function.

	* dummy-frame.c (struct dummy_frame): Delete call_lo, call_hi, top
	and pc.  Update comments.
	(pc_in_dummy_frame): Delete function.
	(deprecated_pc_in_call_dummy): Inline old pc_in_dummy_frame code,
	use the "id".
	(dummy_frame_push, dummy_frame_sniffer): Instead of call_lo,
	call_hi, top and pc, use the id.
	(fprint_dummy_frames): Do not print call_lo, call_hi, top and pc.

	* dummy-frame.c: Include "gdb_string.h".
	(generic_save_call_dummy_addr, generic_push_dummy_frame)
	(generic_save_dummy_frame_tos): Delete.
	(dummy_frame_push): New function, replaces above.
	* dummy-frame.h: Update copyright.
	(dummy_frame_push): Declare.
	* frame.h (generic_save_dummy_frame_tos, generic_push_dummy_frame)
	(generic_save_call_dummy_addr): Delete declarations.
	* infcall.c: Include "dummy-frame.h".
	(call_function_by_hand): Add locals caller_regcache,
	caller_regcache_cleanup and dummy_id.  Replace push_dummy_frame
	with call to frame_save_as_regcache plus cleanup.  Delete calls to
	generic_save_call_dummy_addr and generic_save_dummy_frame_tos.
	Move clear_proceed_status to just before the resume, add call to
	dummy_frame_push (discard cleanup).
	* Makefile.in (infcall.o): Add $(dummy_frame_h).
	(dummy-frame.o): Add $(gdb_string_h).

2004-08-01  Andrew Cagney  <cagney@gnu.org>

	* dummy-frame.h (dummy_frame_unwind): Replace dummy_frame_sniffer.
	* frame-unwind.c (frame_unwind_init): Use dummy_frame_unwind.
	* dummy-frame.c (find_dummy_frame): Delete.
	(struct dummy_frame_cache, dummy_frame_sniffer)
	(dummy_frame_prev_register, dummy_frame_this_id)
	(dummy_frame_unwinder, dummy_frame_unwind): Re-implement dummy
	frame unwinder using a dummy_frame_cache.

2004-08-01  Andrew Cagney  <cagney@gnu.org>

	* frame.h (frame_save_as_regcache): Declare.
	* frame.c (frame_save_as_regcache): New function.
	(do_frame_read_register): Replace do_frame_unwind_register.
	(frame_pop): Use frame_save_as_regcache.
	* dummy-frame.c (generic_push_dummy_frame): Use
	frame_save_as_regcache.

2004-08-01  Joel Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (dwarf_decode_lines): Do not consider the current
	file as included until we record the first line in the linetable.

2004-08-01  Andrew Cagney  <cagney@gnu.org>

	* frame.h (deprecated_pop_dummy_frame)
	(deprecated_read_register_dummy)
	(deprecated_generic_find_dummy_frame): Delete.
	* dummy-frame.c (deprecated_generic_find_dummy_frame)
	(deprecated_read_register_dummy)
	(deprecated_find_dummy_frame_regcache)
	(discard_innermost_dummy)
	(deprecated_pop_dummy_frame): Delete.
	(dummy_frame_this_id): Simplify.
	(struct dummy_frame): Delete "fp" and "sp".
	(find_dummy_frame): Simplify.
	(generic_push_dummy_frame): Do not set "fp" or "sp".
	(fprint_dummy_frames): Do not print "fp" and "sp"

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

	* i386-tdep.c (I386_MAX_INSN_LEN): New define.
	(struct i386_insn): New structure.
	(i386_match_insn): New function.
	(i386_frame_setup_skip_insns): New variable.
	(i386_analyze_frame_setup): Change to use i386_match_insn and the
	array i386_frame_setup_insns of instructions that should be
	skipped inside the frame setup sequence.

2004-08-01  Andrew Cagney  <cagney@gnu.org>

	* frame.h (deprecated_frame_xmalloc_with_cleanup)
	(frame_saved_regs_zalloc, frame_extra_info_zalloc)
	(get_frame_extra_info, deprecated_get_frame_saved_regs): Delete.
	* stack.c (frame_info): Delete references to
	DEPRECATED_FRAME_INIT_SAVED_REGS and
	deprecated_get_frame_saved_regs.
	* frame.c (struct frame_info): Delete saved_regs and extra_info.
	(frame_pc_unwind): Do not use DEPRECATED_FRAME_SAVED_PC.
	(frame_register): Do not use DEPRECATED_GET_SAVED_REGISTER.
	(frame_unwind_register_signed)
	(frame_unwind_register_unsigned)
	(frame_unwind_unsigned_register): Use register_size.
	(create_new_frame): Do not use DEPRECATED_INIT_EXTRA_FRAME_INFO.
	(deprecated_frame_xmalloc_with_cleanup)
	(frame_saved_regs_zalloc, frame_extra_info_zalloc)
	(get_frame_extra_info, deprecated_get_frame_saved_regs): Delete.

	* sh-tdep.c (sh_gdbarch_init): Disable call to sh64_gdbarch_init.
	* config/sh/nbsd.mt (TDEPFILES): Remove sh64-tdep.o.
	* config/sh/linux.mt (TDEPFILES): Remove sh64-tdep.o.
	* config/sh/embed.mt (TDEPFILES): Remove sh64-tdep.o.

	* infcall.c (call_function_by_hand): Do not use
	DEPRECATED_PUSH_RETURN_ADDRESS, DEPRECATED_DUMMY_WRITE_SP,
	DEPRECATED_SAVE_DUMMY_FRAME_TOS, DEPRECATED_TARGET_READ_FP,
	DEPRECATED_FP_REGNUM, DEPRECATED_STORE_STRUCT_RETURN, and
	DEPRECATED_STACK_ALIGN.

2004-07-30  Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>

	Committed by Andrew Cagney.
	* arm-tdep.c: Remove references to add_setshow_cmd_full for apcs32 .

2004-08-01  Andrew Cagney  <cagney@gnu.org>

	* mips-tdep.c (mips16_frame_cache)
	(mips16_frame_this_id, mips16_frame_prev_register)
	(mips16_frame_unwind, mips16_frame_sniffer)
	(mips16_frame_base_address, mips16_frame_base)
	(mips16_frame_base_sniffer, mips32_frame_cache)
	(mips32_frame_this_id, mips32_frame_prev_register)
	(mips32_frame_unwind, mips32_frame_sniffer)
	(mips32_frame_base_address, mips32_frame_base)
	(mips32_frame_base_sniffer): Clone the mdebug unwinder into
	separate heuristic mips16 and mips32 unwinders.
	(mips_stub_frame_cache, mips_stub_frame_this_id)
	(mips_stub_frame_prev_register)
	(mips_stub_frame_unwind, mips_stub_frame_sniffer)
	(mips_stub_frame_base_address, mips_stub_frame_base)
	(mips_stub_frame_base_sniffer): Add a simple stub unwinder.
	(mips_mdebug_frame_base_sniffer, mips_mdebug_frame_sniffer): Only
	match true mdebug frames.
	(non_heuristic_proc_desc): Add forward declaration.

2004-08-01  Andrew Cagney  <cagney@gnu.org>

	* config/mips/tm-irix6.h: Delete file.
	* config/mips/tm-irix5.h: Delete file.
	* config/mips/irix5.mt (TM_FILE): Set to tm-mips.h
	* config/mips/irix6.mt (TM_FILE): Set to tm-mips.h

	* config/ia64/tm-linux.h (IA64_GNULINUX_TARGET): Delete.
	* config/alpha/nm-osf2.h (PROCFS_SIGPEND_OFFSET): Delete.
	* config/nm-gnu.h (NO_CORE_OPS): Delete.
	* config/pa/nm-hppah.h (MAY_SWITCH_FROM_INFERIOR_PID): Delete.
	* config/i386/nm-i386v4.h (LOSING_POLL): Delete.
	* config/alpha/nm-osf2.h (LOSING_POLL): Delete.
	* config/tm-nto.h (RAW_SIGNAL_LO, RAW_SIGNAL_HI): Delete.
	* config/m68k/tm-vx68.h (VX_SIZE_FPREGS): Delete.
	* config/nm-linux.h (USE_THREAD_STEP_NEEDED): Delete.
	* config/pa/nm-hppah.h (USE_THREAD_STEP_NEEDED): Delete.
	* config/tm-nto.h (TARGET_SIGNAL_RAW_TABLE) Delete.
	(TARGET_SIGNAL_RAW_VALUES): Delete.
	* config/pa/nm-hppah.h (TARGET_RANGE_PROFITABLE_FOR_HW_WATCHPOINT):
	Delete.
	* config/frv/tm-frv.h (TARGET_HW_BREAK_LIMIT) 
	(TARGET_HW_WATCH_LIMIT): Delete.
	* Makefile.in (minimon_h, HFILES_NO_SRCDIR): Remove minimon.h.
	* minimon.h: Delete file.

	* trad-frame.c (trad_frame_get_this_base)
	(trad_frame_set_this_base, trad_frame_set_reg_realreg): New
	functions.
	* trad-frame.h (trad_frame_set_this_base)
	(trad_frame_get_this_base, trad_frame_set_reg_realreg): Declare.

2004-07-31  Andrew Cagney  <cagney@gnu.org>

	* trad-frame.c (trad_frame_get_prev_register): Rename
	trad_frame_get_prev_register.
	* vax-tdep.c (vax_frame_prev_register): Update.
	* trad-frame.h: Update.
	* trad-frame.c (trad_frame_get_register): Update.
	* sparcobsd-tdep.c (sparc32obsd_frame_prev_register): Update.
	* sparcnbsd-tdep.c (sparc32nbsd_sigcontext_frame_prev_register):
	Update.
	* sparc64obsd-tdep.c (sparc64obsd_frame_prev_register): Update.
	* sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_frame_prev_register):
	Update.
	* sparc64fbsd-tdep.c (sparc64fbsd_sigtramp_frame_prev_register):
	Update.
	* sparc64-sol2-tdep.c (sparc64_sol2_sigtramp_frame_prev_register):
	Update.
	* sparc-sol2-tdep.c (sparc32_sol2_sigtramp_frame_prev_register):
	Update.
	* sparc-linux-tdep.c (sparc32_linux_sigtramp_frame_prev_register):
	Update.
	* s390-tdep.c (s390_frame_prev_register) 
	(s390_stub_frame_prev_register) 
	(s390_sigtramp_frame_prev_register): Update.
	* rs6000-tdep.c (rs6000_frame_prev_register): Update.
	* ppc-linux-tdep.c (ppc_linux_sigtramp_prev_register): Update.
	* mips-tdep.c (mips_mdebug_frame_prev_register): Update.
	* m88k-tdep.c (m88k_frame_prev_register) 
	* m68hc11-tdep.c (m68hc11_frame_prev_register) 
	* m32r-tdep.c (m32r_frame_prev_register): Update.
	* hppa-tdep.c (hppa_frame_prev_register_helper) 
	* frv-tdep.c (frv_frame_prev_register): Update.
	* d10v-tdep.c (d10v_frame_prev_register): Update.
	* cris-tdep.c (cris_frame_prev_register): Update.
	* avr-tdep.c (avr_frame_prev_register): Update.
	* arm-tdep.c (arm_prologue_prev_register) 
	(arm_sigtramp_prev_register): Update.

2004-07-31  Andrew Cagney  <cagney@gnu.org>

	* frame.h (legacy_saved_regs_unwind)
	(legacy_frame_chain_valid, legacy_frame_p)
	(enum frame_type): Delete UNKNOWN_FRAME.
	* dummy-frame.c (dummy_frame_this_id): Simplify.
	* frame-unwind.c (frame_unwind_find_by_frame): Simplify.
	* frame.c (struct frame_info): Delete the field "type".
	(legacy_saved_regs_prev_register, legacy_get_prev_frame)
	(legacy_saved_regs_this_id, legacy_saved_regs_unwinder)
	(legacy_saved_regs_unwind, legacy_frame_p)
	(frame_type_from_pc): Delete.
	(get_frame_id, frame_pop, frame_register_unwind, get_prev_frame_1)
	(fprint_frame, create_new_frame, fprint_frame_type): Simplify.

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

	* sparc64obsd-tdep.c (sparc64obsd_pc_in_sigtramp): Fix
	indentation.

	* mips-nat.c: Remove file.
	* Makefile.in (ALLDEPFILES): Remove mips-nat.c
	(mips-nat.o): Remove dependency.

	* infptrace.c: Update copyright year.
	(fetch_register): Pass NULL in regcache_raw_supply call instead of
	explicitly setting the buffer to all zeroes.

	* sparc64obsd-tdep.c (sparc64obsd_sigreturn_offset): New variable.
	(sparc64obsd_pc_in_sigtramp): Reorganize to avoid goto.

2004-07-30  Andrew Cagney  <cagney@gnu.org>

	* GDB 6.2 released from gdb_6_2-branch.

2004-07-30  Baurjan Ismagulov  <ibr@ata.cs.hun.edu.tr>

	* defs.h (OPF_TRY_CWD_FIRST, OPF_SEARCH_IN_PATH): New macros.

	* exec.c (exec_file_attach):
	* nto-tdep.c (nto_find_and_open_solib):
	* pa64solib.c (pa64_solib_sizeof_symbol_table):
	* solib.c (solib_open):
	* somsolib.c (som_solib_sizeof_symbol_table):
	* source.c (is_regular_file, openp, open_source_file):
	* symfile.c (symfile_bfd_open):
	* wince.c (upload_to_device): Differentiate between the search for
	binary and source files.

2004-07-30  Andrew Cagney  <cagney@gnu.org>

	* complaints.c (_initialize_complaints): Pass NULL to
	add_setshow_zinteger_cmd for help_doc.
	* cli/cli-decode.c (add_setshow_cmd_full): Handle a NULL help_doc.

2004-07-30  Andrew Cagney  <cagney@gnu.org>

	Fix PR i18n/761.
	* Makefile.in (.SUFFIXES): Add po .gmo, and .pox.
	(.PHONY): Add all-po install-po, uninstall-po, clean-po,
	$(PACKAGE).pot and update-po.
	(all-po, .po.gmo, .po.pox, install-po, $(PACKAGE).pot)
	(po/$(PACKAGE).pot, clean-po, uninstall-po, install-po)
	(update-po): New rules.
	(localedir): Define using autoconf.
	(diststuff): Add $(PACKAGE).pot and $(CATALOGS)
	(GDB_CFLAGS): Define LOCALEDIR using $(localedir).
	(XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): Define.
	* configure.in: Generate CATALOGS and LINGUAS from contents of
	src/gdb/po/ directory.  Set @localedir@ in Makefile.in.
	* configure: Re-generate.
	* po/gdbtext: New file
	
2004-07-30  Jerome Guitton  <guitton@gnat.com>

	* MAINTAINERS: Reorder Write After Approval list in alphabetical
	order.

2004-07-30  David Lecomber  <dsl@sources.redhat.com>

	* dwarf2read.c (read_file_scope): Set producer if attribute 
	present.
	(struct dwarf2_cu): Added new member producer.

2004-07-30  Jerome Guitton  <guitton@gnat.com>

	* inflow.c (kill_command): release file handles in BFD.
	* exec.c (exec_file_attach): Ditto.
	* symfile.c (symbol_file_add_with_addrs_or_offsets): Ditto.

2004-07-29  Andrew Cagney  <cagney@gnu.org>

	* PROBLEMS (mips-irix): Note that it is broken.

2004-07-29  Andrew Cagney  <cagney@gnu.org>

	* config/mips/xm-irix5.h (REGISTER_U_ADDR): Move from here ...
	* config/mips/nm-irix5.h (REGISTER_U_ADDR): ... to here.

	* config/xm-nbsd.h: Delete file.
	* config/arm/xm-nbsd.h: Delete file.
	* config/i386/xm-nbsd.h: Delete file.
	* config/ns32k/xm-nbsd.h: Delete file.
	* config/ns32k/nbsdaout.mh (XM_FILE): Delete.
	* config/i386/nbsdelf.mh (XM_FILE): Delete.
	* config/i386/nbsdaout.mh (XM_FILE): Delete.
	* config/arm/nbsdelf.mh (XM_FILE): Delete.
	* config/arm/nbsdaout.mh (XM_FILE): Delete.

	* config/i386/xm-i386v.h (KERNEL_U_ADDR): Move from here ...
	* config/i386/nm-i386v42mp.h (KERNEL_U_ADDR): ... to here, ...
	* config/i386/nm-i386v4.h (KERNEL_U_ADDR): ... here, ...
	* config/i386/nm-i386v.h (KERNEL_U_ADDR): ... and here.
	* config/vax/xm-vax.h (KERNEL_U_ADDR): Move from here ...
	* config/vax/nm-vax.h (KERNEL_U_ADDR): ... to here.

	* config/powerpc/xm-linux.h: Delete empty file.
	* config/powerpc/ppc64-linux.mh (XM_FILE): Delete.
	* config/powerpc/linux.mh (XM_FILE): Delete.
	* config/m68k/xm-linux.h: Delete empty file.
	* config/m68k/linux.mh (XM_FILE): Delete.
	* config/ia64/xm-linux.h: Delete empty file.
	* config/ia64/linux.mh (XM_FILE): Delete.
	* config/arm/xm-linux.h: Delete empty file.
	* config/arm/linux.mh (XM_FILE): Delete.
	
	* config/powerpc/xm-linux.h (KERNEL_U_ADDR): Move from here ...
	* config/powerpc/nm-linux.h (KERNEL_U_ADDR): ... to here.
	* config/m68k/xm-linux.h (KERNEL_U_ADDR): Move from here ...
	* config/m68k/nm-linux.h (KERNEL_U_ADDR): ... to here.
	* config/ia64/xm-linux.h (KERNEL_U_ADDR): Move from here ...
	* config/ia64/nm-linux.h (KERNEL_U_ADDR): ... to here.
	* config/arm/xm-linux.h (KERNEL_U_ADDR): Move from here ...
	* config/arm/nm-linux.h (KERNEL_U_ADDR): ... to here.

	* config/m68k/xm-m68k.h: Delete file.
	* config/m68k/xm-linux.h: Do not include "m68k/xm-m68k.h".  Update
	copyright.
	(HOST_LONG_DOUBLE_FORMAT): Delete macro.
	* config/pa/xm-linux.h: Delete empty file.
	* config/pa/linux.mh (XM_FILE): Delete.
	* config/i386/xm-i386.h: Delete empty file.
	* config/i386/xm-nbsd.h, config/i386/xm-go32.h: Do not include
	"i386/xm-i386.h".
	* config/i386/obsdaout.mh (XM_FILE): Delete.
	* config/i386/obsd64.mh (XM_FILE): Delete.
	* config/i386/fbsd64.mh (XM_FILE): Delete.
	* config/i386/nto.mh (XM_FILE): Delete.
	* config/i386/obsd.mh (XM_FILE): Delete.
	* config/i386/linux64.mh (XM_FILE): Delete.
	* config/i386/linux.mh (XM_FILE): Delete.
	* config/i386/i386sol2.mh (XM_FILE): Delete.
	* config/i386/i386gnu.mh (XM_FILE): Delete.
	* config/i386/fbsd.mh (XM_FILE): Delete.
	* config/i386/nbsd64.mh (XM_FILE): Delete.

2004-07-29  Andrew Cagney  <cagney@gnu.org>

	* config/pa/xm-linux.h: Do not include "floatformat.h".
	(HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT)
	(HOST_LONG_DOUBLE_FORMAT): Delete macros.
	* config/i386/xm-i386.h: Do not include "floatformat.h".
	(HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT) 
	(HOST_LONG_DOUBLE_FORMAT): Delete macros.
	* doublest.c (HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT)
	(HOST_LONG_DOUBLE_FORMAT): Delete macros.  Use
	GDB_HOST_FLOAT_FORMAT, GDB_HOST_DOUBLE_FORMAT and
	GDB_HOST_LONG_DOUBLE_FORMAT instead.
	* configure.in (GDB_HOST_FLOAT_FORMAT, GDB_HOST_DOUBLE_FORMAT)
	(GDB_HOST_LONG_DOUBLE_FORMAT): Define.
	* configure, config.in: Regenerate.	
	* configure.host (gdb_host_float_format, gdb_host_double_format)
	(gdb_host_long_double_format): Set according to the host.
	
2004-07-29  Andrew Cagney  <cagney@gnu.org>

	* Makefile.in (CONFIG_CLEAN): Delete duplicate definition.

2004-07-28  Andrew Cagney  <cagney@gnu.org>

	* PROBLEMS: Mention threads/1650.
	* NEWS: Mention the NPTL fix.

2004-07-28  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-decode.c (add_setshow_cmd): Delete function.
	(add_setshow_cmd_full): Make static.
	* command.h (add_setshow_cmd, add_setshow_cmd_full): Delete.
	(add_setshow_filename_cmd, add_setshow_string_cmd): Declare.
	* cli/cli-decode.c (add_setshow_filename_cmd) 
	(add_setshow_string_cmd): New functions.
	* nto-tdep.c (_initialize_nto_tdep): Update.  Fix parameters.
	* mips-tdep.c (_initialize_mips_tdep): Update.
	* m32r-rom.c (_initialize_m32r_rom): Update.  Update copyright.
	* cli/cli-logging.c (_initialize_cli_logging): Update.
	* complaints.c (_initialize_complaints): Update.
	* remote.c (_initialize_remote): Update.
	
2004-07-28  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-decode.c (add_setshow_zinteger_cmd)
	(add_setshow_cmd, add_setshow_auto_boolean_cmd)
	(add_setshow_boolean_cmd, add_setshow_cmd_full): Add help_doc and
	print parameters.  Make string parameters constant.
	* command.h: Update.  Update copyright.
	* remote.c (add_packet_config_cmd, _initialize_remote): Ditto.
	* observer.c (_initialize_observer): Ditto.
	* frame.c (_initialize_frame): Ditto.
	* complaints.c (_initialize_complaints): Ditto.
	* maint.c (_initialize_maint_cmds): Ditto.
	* target.c (initialize_targets): Ditto.
	* cli/cli-logging.c (_initialize_cli_logging): Ditto.
	* infcall.c (_initialize_infcall): Ditto.
	* arm-tdep.c (_initialize_arm_tdep): Ditto.
	* m32r-rom.c (_initialize_m32r_rom): Ditto.
	* remote-rdi.c (_initialize_remote_rdi): Ditto.
	* d10v-tdep.c (_initialize_d10v_tdep): Ditto.
	* mips-tdep.c (_initialize_mips_tdep): Ditto.

2004-07-28  Andrew Cagney  <cagney@gnu.org>

	* gdbtypes.c (lookup_primitive_typename): Delete function.
	* gdbtypes.h (lookup_primitive_typename): Delete declaration.
	* ada-lex.l: Use language_lookup_primitive_type_by_name.
	* gdbtypes.c (lookup_typename): Ditto.
	* f-exp.y (yylex): Ditto.
	* c-exp.y (yylex): Ditto, eliminate assignment in "if".

	* scm-lang.c (c_builtin_types): Delete extern declaration.
	(scm_language_defn): Replace
	string_char_type and primitive_type_vector with
	la_language_arch_info.
	* jv-lang.c (java_language_defn): Replace
	string_char_type and primitive_type_vector with
	la_language_arch_info.
	* config/i386/i386sco4.mh (NATDEPFILES): Remove reference to
	c_builtin_types in comment.
	* c-lang.h (struct language_arch_info): Declare opaque.
	(c_language_arch_info): Declare.
	(c_builtin_types): Delete declaration.
	* c-lang.c (c_language_arch_info): Set string_char_type to
	builtin_char, not builtin_true_char.  Make global.
	(c_builtin_types): Delete array.
	(asm_language_defn, minimal_language_defn): Replace
	string_char_type and primitive_type_vector with
	la_language_arch_info.

2004-07-28  Andrew Cagney  <cagney@gnu.org>

	* gdbtypes.h (struct builtin_type): Rename true_char to
	builtin_true_char.
	* gdbtypes.c (gdbtypes_post_init): Update.
	* c-lang.c (arch_info): New function.
	(enum c_primitive_types): New enum.
	(c_language_defn): Instead of string_char_type and
	primitive_type_vector set la_language_arch_info.

2004-07-28  Andrew Cagney  <cagney@gnu.org>

	* language.h (struct language_arch_info): Fix typo
	s/primative/primitive/.
	* gdbtypes.c (lookup_primitive_typename): Ditto.
	* language.c (language_lookup_primitive_type_by_name)
	(unknown_language_arch_info): Ditto.

2004-07-27  Andrew Cagney  <cagney@gnu.org>

	* defs.h (enum language): Add nr_languages.
	* language.h (struct language_arch_info): Define.
	(struct language_defn): Add la_language_arch_info.
	(language_lookup_primative_type_by_name): Declare.
	(language_string_char_type): Declare.
	* language.c (_initialize_language, language_gdbarch_post_init)
	(struct language_gdbarch, language_gdbarch_data): Implement
	per-architecture language information.
	(unknown_language_arch_info, language_string_char_type)
	(language_lookup_primative_type_by_name): New functions.
	(unknown_language_defn, auto_language_defn)
	(local_language_defn): Set la_language_arch_info to
	unknown_language_arch_info.
	(unknown_builtin_types): Delete.
	* gdbtypes.c (lookup_primitive_typename): Use
	language_lookup_primative_type_by_name.
	(create_string_type): Use language_string_char_type.
	* values.c (value_from_string): Use language_string_char_type.
	* scm-lang.c (scm_language_defn): Add NULL la_language_arch_info.
	* p-lang.c (pascal_language_defn): Ditto.
	* m2-lang.c (m2_language_defn): Ditto.
	* jv-lang.c (java_language_defn): Ditto.
	* objc-lang.c (objc_language_defn): Ditto.
	* f-lang.c (f_language_defn): Ditto.
	* c-lang.c (c_language_defn, cplus_language_defn) 
	(asm_language_defn, minimal_language_defn): Ditto.
	
2004-07-27  Andrew Cagney  <cagney@gnu.org>

	* gdbtypes.h (struct builtin_type): Declare.
	(builtin_type): Declare.
	* d10v-tdep.c (d10v_register_type): Use builtin_type.
	* gdbtypes.c (_initialize_gdbtypes): Register gdbtypes_post_init.
	(gdbtypes_post_init): New function.
	(builtin_type): New function.

2004-07-27  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* remote-m32r-sdi.c: Fix breakpoint bug.
	(send_cmd, send_one_arg_cmd, send_two_arg_cmd, send_three_arg_cmd,
	recv_char_data, recv_long_data): New functions to replace communication
	sequences.

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

	Document PR threads/1650.
	* PROBLEMS (Threads): Document problem with many threads

2004-07-26  Andrew Cagney  <cagney@gnu.org>

	* gdb-mi.el: Move from here ...
	* mi/gdb-mi.el: ... to here.

2004-07-26  Andrew Cagney  <cagney@gnu.org>

	Problem reported by Ashley Pittman <ashley@quadrics.com>.
	* main.c (captured_main): When in batch mode always detach.

2004-07-26  Andrew Cagney  <cagney@gnu.org>

	* MAINTAINERS: Mark the xstormy16, sh64, ns32k, mn10300, mcore,
	and h8300 as broken.
	* NEWS: END-OF-LIFE frame compatibility module.
	* PROBLEMS: For "Stack backtraces", remove powerpc, hppa and mips
	specific comments.

2004-07-26  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-decode.c (deprecated_add_show_from_set): Deprecate.
	* xcoffsolib.c (_initialize_xcoffsolib): Update.
	* wince.c (_initialize_wince): Update.
	* win32-nat.c (_initialize_win32_nat): Update.
	* varobj.c (_initialize_varobj): Update.
	* valops.c (_initialize_valops): Update.
	* utils.c (initialize_utils, initialize_utils): Update.
	* tui/tui-win.c (_initialize_tui_win): Update.
	* top.c (init_main): Update.
	* symfile.c (_initialize_symfile): Update.
	* source.c (_initialize_source): Update.
	* somsolib.c (_initialize_som_solib): Update.
	* solib.c (_initialize_solib): Update.
	* solib-frv.c (_initialize_frv_solib): Update.
	* serial.c (_initialize_serial): Update.
	* ser-go32.c (_initialize_ser_dos, _initialize_ser_dos): Update.
	* remote.c (_initialize_remote, _initialize_remote): Update.
	* remote-vx.c (_initialize_vx): Update.
	* remote-utils.c (_initialize_sr_support): Update.
	* remote-sds.c (_initialize_remote_sds): Update.
	* remote-mips.c (_initialize_remote_mips): Update.
	* remote-e7000.c (_initialize_remote_e7000): Update.
	* proc-api.c (_initialize_proc_api): Update.
	* printcmd.c: Update.
	* parse.c (_initialize_parse): Update.
	* pa64solib.c (_initialize_pa64_solib): Update.
	* p-valprint.c (_initialize_pascal_valprint): Update.
	* monitor.c (_initialize_remote_monitors): Update.
	* mips-tdep.c (_initialize_mips_tdep): Update.
	* mcore-tdep.c (_initialize_mcore_tdep): Update.
	* maint.c (_initialize_maint_cmds): Update.
	* lin-lwp.c (_initialize_lin_lwp): Update.
	* language.c (_initialize_language): Update.
	* kod.c (_initialize_kod): Update.
	* infrun.c (set_schedlock_func, _initialize_infrun): Update.
	* i386-tdep.c (_initialize_i386_tdep): Update.
	* gdbtypes.c (build_gdbtypes, _initialize_gdbtypes): Update.
	* gdbarch.sh: Update.
	* gdbarch.c: Re-generate.
	* gdb-events.sh: Update.
	* gdb-events.c: Re-generate.
	* frame.c (_initialize_frame): Update.
	* exec.c: Update.
	* demangle.c (_initialize_demangler): Update.
	* dcache.c (_initialize_dcache): Update.
	* cris-tdep.c (_initialize_cris_tdep, cris_version_update): Update.
	* cp-valprint.c (_initialize_cp_valprint): Update.
	* corefile.c (_initialize_core): Update.
	* command.h: Update.
	* cli/cli-decode.h: Update.
	* cli/cli-cmds.c (init_cli_cmds): Update.
	* charset.c (_initialize_charset): Update.
	* breakpoint.c (_initialize_breakpoint): Update.
	* arm-tdep.c (_initialize_arm_tdep_initialize_arm_tdep): Update.
	* alpha-tdep.c (_initialize_alpha_tdep): Update.
	* aix-thread.c (_initialize_aix_thread): Update.

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

	Partial fix for PR backtrace/1718.
	* i386-tdep.c (i386_analyze_frame_setup): Handle more instructions
	that GCC migrates into the prolugue.  Don't handle any
	instructions that clobber %ebx.

2004-07-23  Andrew Cagney  <cagney@gnu.org>

	Use regcache_raw_collect instead of regcache_collect.
	* regcache.h (regcache_collect): Delete declaration.
	* regcache.c (regcache_colect): Delete function.
	* win32-nat.c (do_child_store_inferior_registers): Update.
	* sol-thread.c (sol_thread_store_registers): Update.
	* shnbsd-tdep.c (shnbsd_fill_reg): Update.
	* rs6000-nat.c (store_register): Update.
	* remote.c (store_register_using_P, remote_store_registers): Update.
	* ppcnbsd-tdep.c (ppcnbsd_fill_reg): Update.
	* ppc-linux-nat.c (store_altivec_register, store_spe_register) 
	(fill_vrregset, store_spe_registers, fill_gregset)
	(fill_gregset): Update.
	* nto-procfs.c (procfs_store_registers): Update.
	* mipsnbsd-tdep.c (mipsnbsd_fill_reg): Update.
	* mips-linux-tdep.c (fill_gregset, mips64_fill_gregset): Update.
	* m68klinux-nat.c (store_register, fill_gregset): Update.
	* m68k-tdep.c (fill_gregset): Update.
	* infptrace.c (store_register): Update.
	* i386-nto-tdep.c (i386nto_regset_fill): Update.
	* i386-linux-nat.c (store_register, fill_gregset): Update.
	* hppa-linux-nat.c (fill_gregset): Update.
	* go32-nat.c (store_register): Update.
	* armnbsd-nat.c (store_register, store_regs, store_fp_register)
	(store_fp_regs): Update.
	* arm-linux-nat.c (store_nwfpe_single, store_nwfpe_double) 
	(store_nwfpe_extended, store_fpregister, store_fpregs) 
	(store_register, store_regs, fill_gregset, fill_fpregset): Update.
	* alpha-tdep.c (alpha_fill_int_regs, alpha_fill_fp_regs): Update.
	* aix-thread.c (fill_gprs64, fill_fprs, fill_sprs64, fill_sprs32)
	(store_regs_user_thread, store_regs_kernel_thread): Update.

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

	* dwarf2-frame.c (struct dwarf2_cie): Delete `addr_size' member.
	(decode_frame_entry_1): Use DW_EH_PE_absptr as default for CIE
	encoding.
	(dwarf2_build_frame_info): Adjust for removal of `addr_size'
	member of `struct comp_unit'.

2004-07-23  Andrew Cagney  <cagney@gnu.org>

	* infrun.c (handle_inferior_event): Separate the STEP_OVER_ALL and
	DEPRECATED_IGNORE_HELPER_CALL cases, only #ifdef the latter.

2004-07-23  Martin Hunt  <hunt@redhat.com>
	Kevin Buettner <kevinb@redhat.com>

	* dwarf2-frame.c (execute_cfa_program): Fix typo in which the
	alignment was being added to the offset instead of multiplied.

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

	* sparc64obsd-tdep.c (sparc64obsd_pc_in_sigtramp): Adjust for
	changed signal trampoline in OpenBSD 3.5-current.

	* sparc64nbsd-nat.c: Include "regcache.h", <sys/types.h>,
	<machine/pcb.h> and "bsd-kvm.h".
	(sparc64nbsd_supply_pcb): New function.
	(_initialize_sparc64nbsd_nat): Renamed from
	_initialize_sparcnbsd_nat.  Enable libkvm interface.
	* Makefile.in (sparc64nbsd-nat.o): Update dependencies.
	* config/sparc/nbsd64.mh (NATDEPFILES): Add bsd-kvm.o
	(LOADLIBES): New variable.

	* config/sparc/obsd64.mt (TDEPFILES): Add sparcobsd-tdep.o.

	* sparcnbsd-nat.c (sparc32nbsd_supply_pcb): Fix typo in comment.

2004-07-21  Andrew Cagney  <cagney@gnu.org>

	Use regcache_raw_supply instead of supply_register.
	* regcache.h (supply_register): Delete declaration.
	* regcache.c (supply_register): Delete function.
	* wince.c (do_child_fetch_inferior_registers): Update.
	* win32-nat.c (do_child_fetch_inferior_registers) 
	(fetch_elf_core_registers): Update.
	* v850ice.c (v850ice_fetch_registers): Update.
	* thread-db.c (thread_db_store_registers): Update.
	* sol-thread.c (sol_thread_store_registers): Update.
	* shnbsd-tdep.c (shnbsd_supply_reg): Update.
	* rs6000-nat.c (fetch_register): Update.
	* rom68k-rom.c (rom68k_supply_one_register): Update.
	* remote.c (remote_wait, remote_async_wait): Update.
	* remote-st.c (get_hex_regs): Update.
	* remote-sim.c (gdbsim_fetch_register): Update.
	* remote-sds.c (sds_fetch_registers): Update.
	* remote-rdp.c (remote_rdp_fetch_register): Update.
	* remote-rdi.c (arm_rdi_fetch_registers): Update.
	* remote-mips.c (mips_wait, mips_fetch_registers): Update.
	* remote-m32r-sdi.c (m32r_fetch_register): Update.
	* remote-hms.c (init_hms_cmds): Update.
	* remote-est.c (init_est_cmds): Update.
	* remote-e7000.c (get_hex_regs, fetch_regs_from_dump) 
	(e7000_fetch_registers, sub2_from_pc, e7000_wait): Update.
	* ppcnbsd-tdep.c (ppcnbsd_supply_reg, ppcnbsd_supply_fpreg): Update.
	* ppc-linux-nat.c (fetch_altivec_register, fetch_spe_register) 
	(fetch_register, supply_vrregset, supply_vrregset)
	(fetch_spe_registers): Update.
	* ppc-bdm.c (bdm_ppc_fetch_registers): Update.
	* monitor.c (monitor_supply_register): Update.
	* mipsv4-nat.c (supply_gregset, supply_fpregset): Update.
	* mipsnbsd-tdep.c (mipsnbsd_supply_reg)
	(mipsnbsd_supply_fpreg): Update.
	* mips-nat.c (fetch_inferior_registers)
	(fetch_core_registers): Update.
	* mips-linux-tdep.c (supply_32bit_reg, supply_gregset) 
	(supply_fpregset, mips64_supply_gregset)
	(mips64_supply_fpregset): Update.
	* m68klinux-nat.c (fetch_register, supply_gregset)
	(supply_fpregset): Update.
	* m68k-tdep.c (supply_gregset, supply_fpregset): Update.
	* m32r-rom.c (init_m32r_cmds, init_mon2000_cmds): Update.
	* lynx-nat.c (fetch_inferior_registers, fetch_core_registers): Update.
	* irix5-nat.c (supply_gregset, supply_fpregset): Update.
	* infptrace.c (fetch_register): Update.
	* ia64-linux-nat.c (supply_gregset, supply_fpregset): Update.
	* ia64-aix-nat.c (supply_gregset, supply_fpregset): Update.
	* i386gnu-nat.c (fetch_fpregs, supply_gregset) 
	(gnu_fetch_registers, gnu_store_registers): Update.
	* i386-nto-tdep.c (i386nto_supply_gregset): Update.
	* i386-linux-nat.c (fetch_register, supply_gregset)
	(dummy_sse_values): Update.
	* hpux-thread.c (hpux_thread_fetch_registers): Update.
	* hppah-nat.c (fetch_register): Update.
	* hppa-linux-nat.c (fetch_register, supply_gregset) 
	(supply_fpregset): Update.
	* go32-nat.c (fetch_register): Update.
	* dve3900-rom.c (fetch_bitmapped_register)
	(_initialize_r3900_rom): Update.
	* cris-tdep.c (supply_gregset): Update.
	* abug-rom.c (init_abug_cmds): Update.
	* core-aout.c (fetch_core_registers): Update.
	* armnbsd-nat.c (supply_gregset, supply_fparegset)
	(fetch_register, fetch_fp_register): Update.
	* arm-linux-nat.c (fetch_nwfpe_single, fetch_nwfpe_none)
	(fetch_nwfpe_extended, fetch_fpregister, fetch_fpregs)
	(fetch_register, fetch_regs, supply_gregset, supply_fpregset): Update.
	* alphanbsd-tdep.c (fetch_core_registers): Update.
	* alpha-tdep.c (alpha_supply_int_regs, alpha_supply_fp_regs): Update.
	* alpha-nat.c (fetch_osf_core_registers) 
	(fetch_osf_core_registers, fetch_osf_core_registers): Update.
	* aix-thread.c (supply_gprs64, supply_reg32, supply_fprs) 
	(supply_sprs64, supply_sprs32, fetch_regs_kernel_thread): Update.

2004-07-21  Andrew Cagney  <cagney@gnu.org>

	* PROBLEMS: Mention breakpoints/1702.
	* NEWS: For signal trampolines, cite s390 GNU/Linux as a system
	that is known to work.

2004-07-21  Andrew Cagney  <cagney@gnu.org>

	* config/mips/tm-mips.h (DEPRECATED_IGNORE_HELPER_CALL): Deprecate.
	* mips-tdep.c (mips_dump_tdep, mips_ignore_helper): Update.
	* infrun.c (DEPRECATED_IGNORE_HELPER_CALL): Delete macro.
	(handle_inferior_event): Wrap call to deprecated
	IGNORE_HELPER_CALL in #ifdef.
	* config/mips/tm-nbsd.h: Update.

2004-07-20  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (rs6000_gdbarch_init): The register set used for
	bfd_mach_ppc has no segment registers.

	Include PowerPC SPR numbers for special-purpose registers.
	* rs6000-tdep.c (struct reg): Add new member, 'spr_num'.
	(R, R4, R8, R16, F, P, R32, R64, R0): Include value for
	new member in initializer.
	(S, S4, SN4, S64): New macros for defining special-purpose
	registers.
	(PPC_UISA_SPRS, PPC_UISA_NOFP_SPRS, PPC_OEA_SPRS, registers_power,
	registers_403, registers_403GC, registers_505, registers_860,
	registers_601, registers_602, registers_603, registers_604,
	registers_750, registers_e500): Use them.

	* rs6000-tdep.c (rs6000_gdbarch_init): Delete variable 'power';
	replace references with expression used to initialize variable.

2004-07-20  Andrew Cagney  <cagney@gnu.org>

	* breakpoint.c (deprecated_read_memory_nobpt): Rename
	read_memory_nobpt.
	* sparc-linux-tdep.c (sparc_linux_sigtramp_start): Update.
	* s390-tdep.c (s390_readinstruction, s390_in_function_epilogue_p)
	(s390_sigtramp_frame_sniffer): Update.
	* mn10300-tdep.c (mn10300_analyze_prologue): Update.
	* mipsnbsd-tdep.c (mipsnbsd_sigtramp_offset): Update.
	* mips-tdep.c (mips_fetch_instruction, mips16_fetch_instruction) 
	(mips32_fetch_instruction): Update.
	* mcore-tdep.c (get_insn): Update.
	* m68klinux-tdep.c (m68k_linux_pc_in_sigtramp): Update.
	* i386nbsd-tdep.c (i386nbsd_sigtramp_offset): Update.
	* i386ly-tdep.c (i386lynx_saved_pc_after_call): Update.
	* i386-linux-tdep.c (i386_linux_sigtramp_start) 
	(i386_linux_rt_sigtramp_start): Update.
	* i386-linux-nat.c (child_resume): Update.
	* hppa-tdep.c (skip_prologue_hard_way, hppa_frame_cache): Update.
	* hppa-linux-tdep.c (insns_match_pattern): Update.
	* gdbcore.h: Update.
	* frv-tdep.c (frv_gdbarch_adjust_breakpoint_address): Update.
	* frame.c (safe_frame_unwind_memory): Update.
	* amd64-linux-tdep.c (amd64_linux_sigtramp_start): Update.
	* alphanbsd-tdep.c (alphanbsd_sigtramp_offset): Update.
	* alpha-tdep.c (alpha_read_insn): Update.

2004-07-20  Andrew Cagney  <cagney@gnu.org>

	* tramp-frame.h (struct tramp_frame): Change "insn" to a struct
	containing both bytes and mask.  Add "frame_type".
	* tramp-frame.c (tramp_frame_start): Update.
	(tramp_frame_prepend_unwinder): Update.
	* mips-linux-tdep.c (mips_linux_o32_sigframe)
	(mips_linux_o32_rt_sigframe, mips_linux_n32_rt_sigframe)
	(mips_linux_n64_rt_sigframe): Update.  Make "static const".
	* ppcnbsd-tdep.c (tramp_frame ppcnbsd_sigtramp): Update.

2004-07-19  Eli Zaretskii  <eliz@gnu.org>

	* config/djgpp/fnchange.lst: Add remapping for bfd/elf32-cr*.c,
	bfd/elf32-sh-symbian.c, bfd/elf32-sh64-com.c,
	sim/testsuite/sim/mips/hilo-hazard-[123].s, and
	sim/testsuite/sim/mips/fpu64-ps-sb1.s.

2004-07-17  Andrew Cagney  <cagney@gnu.org>

	* NEWS, PROBLEMS: Update for 6.2.

	* README: Update to 6.2.

	* utils.c (xvasprintf): Call xstrvprintf.

	* parse.c: Update copyright.
	(null_post_parser): Eliminate ARGSUSED.

	* ppc-linux-nat.c (store_spe_registers): Eliminate K&R C.
	* tui/tui-win.c (tui_get_cmd_list): Ditto.
	* symfile-mem.c (_initialize_symfile_mem): Ditto.
	
	* ppc-linux-tdep.c (ppc_linux_init_abi): Add [sic] to Linux.
	* ppc-linux-nat.c: Use "Linux kernel".
	* hppa-linux-tdep.c: Use GNU/Linux.
	* hppa-linux-nat.c: Use GNU/Linux.
	* dwarfread.c: Add [sic] to use of Linux.

	* hppa-linux-nat.c: Do not include <string.h>.
	(supply_fpregset): Remove "register" attribute.

	* solib-frv.c (fetch_loadmap): Use xfree, not free.

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

	* configure.in: Define _MSE_INT_H on Solaris 9 too.
	* configure, config.in: Regenerated.

	* vaxbsd-nat.c: Include <sys/types.h>, <machine/pcb.h> and
	"bsd-kvm.h".
	(vaxbsd_supply_pcb): New function.
	(_initialize_vaxbsd_nat): New prototype and function.
	* config/vax/nbsdaout.mh (NATDEPFILES): Add bsd-kvm.o, solib.o and
	solib-sunos.o.
	(LOADLIBES): New variable.
	* config/vax/nbsdelf.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.
	* config/vax/obsd.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.
	* Makefile.in (vaxbsd-nat.o): Update dependencies.

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* defs.h (event_loop_p): Replace variable declaration with macro,
	always 1.
	* main.c (captured_main): Delete options "-async" and "-noasync".
	(event_loop_p): Delete variable.
	* NEWS: Mention that "-async" and "-noasync" were removed.

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* remote-m32r-sdi.c: Re-indent.

2004-07-16  Jim Blandy  <jimb@redhat.com>

	* ppc-tdep.h (ppc_spr_asr): Add missing OEA SPR.
        (ppc_spr_mi_dbcam, ppc_spr_mi_dbram0, ppc_spr_mi_dbram1)
	(ppc_spr_md_cam, ppc_spr_md_ram0, ppc_spr_md_ram1): Add
	missing MPC823 SPRs.
	(ppc_spr_m_twb): Renamed from ppc_spr_md_twb; the old name was
	incorrect.  (This was corrected in GDB's register name tables on
	2004-07-14.)

	* rs6000-tdep.c (registers_602): Correct register name: "esassr"
	should be "esasrr" ("ESA Save and Restore Register").

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* infrun.c (insert_step_resume_breakpoint): Delete gdb_assert
	calls, no longer applicable.  Update comments and rename parameter
	"step_frame" to "return_frame".

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* frame.c (fprint_field): New function.
	(fprint_frame_id): Use fprint_field.

2004-07-15  Joel Brobecker  <brobecker@gnat.com>

	* ada-lang.c (ada_language_defn): Remove commented out code.

2004-07-15  Jim Blandy  <jimb@redhat.com>

	* ppc-tdep.h (struct gdbarch_tdep): New member: ppc_sr0_regnum.
	* rs6000-tdep.c (rs6000_gdbarch_init): Initialize it.

2004-07-14  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (COMMON_UISA_NOFP_REGS): Delete; unused.

	* ppc-tdep.h (ppc_num_vrs): New enum constant.

	* ppc-tdep.h (ppc_num_srs): New enum constant.

	* ppc-tdep.h (ppc_spr_mq, ppc_spr_xer, ppc_spr_rtcu, ppc_spr_rtcl)
	(ppc_spr_lr, ppc_spr_ctr, ppc_spr_cnt, ppc_spr_dsisr, ppc_spr_dar)
	(ppc_spr_dec, ppc_spr_sdr1, ppc_spr_srr0, ppc_spr_srr1)
	(ppc_spr_eie, ppc_spr_eid, ppc_spr_nri, ppc_spr_sp, ppc_spr_cmpa)
	(ppc_spr_cmpb, ppc_spr_cmpc, ppc_spr_cmpd, ppc_spr_icr)
	(ppc_spr_der, ppc_spr_counta, ppc_spr_countb, ppc_spr_cmpe)
	(ppc_spr_cmpf, ppc_spr_cmpg, ppc_spr_cmph, ppc_spr_lctrl1)
	(ppc_spr_lctrl2, ppc_spr_ictrl, ppc_spr_bar, ppc_spr_vrsave)
	(ppc_spr_sprg0, ppc_spr_sprg1, ppc_spr_sprg2, ppc_spr_sprg3)
	(ppc_spr_ear, ppc_spr_tbl, ppc_spr_tbu, ppc_spr_pvr)
	(ppc_spr_spefscr, ppc_spr_ibat0u, ppc_spr_ibat0l, ppc_spr_ibat1u)
	(ppc_spr_ibat1l, ppc_spr_ibat2u, ppc_spr_ibat2l, ppc_spr_ibat3u)
	(ppc_spr_ibat3l, ppc_spr_dbat0u, ppc_spr_dbat0l, ppc_spr_dbat1u)
	(ppc_spr_dbat1l, ppc_spr_dbat2u, ppc_spr_dbat2l, ppc_spr_dbat3u)
	(ppc_spr_dbat3l, ppc_spr_ic_cst, ppc_spr_ic_adr, ppc_spr_ic_dat)
	(ppc_spr_dc_cst, ppc_spr_dc_adr, ppc_spr_dc_dat, ppc_spr_dpdr)
	(ppc_spr_dpir, ppc_spr_immr, ppc_spr_mi_ctr, ppc_spr_mi_ap)
	(ppc_spr_mi_epn, ppc_spr_mi_twc, ppc_spr_mi_rpn, ppc_spr_mi_cam)
	(ppc_spr_mi_ram0, ppc_spr_mi_ram1, ppc_spr_md_ctr, ppc_spr_m_casid)
	(ppc_spr_md_ap, ppc_spr_md_epn, ppc_spr_md_twb, ppc_spr_md_twc)
	(ppc_spr_md_rpn, ppc_spr_m_tw, ppc_spr_md_dbcam, ppc_spr_md_dbram0)
	(ppc_spr_md_dbram1, ppc_spr_ummcr0, ppc_spr_upmc1, ppc_spr_upmc2)
	(ppc_spr_usia, ppc_spr_ummcr1, ppc_spr_upmc3, ppc_spr_upmc4)
	(ppc_spr_zpr, ppc_spr_pid, ppc_spr_mmcr0, ppc_spr_pmc1)
	(ppc_spr_sgr, ppc_spr_pmc2, ppc_spr_dcwr, ppc_spr_sia)
	(ppc_spr_mmcr1, ppc_spr_pmc3, ppc_spr_pmc4, ppc_spr_sda)
	(ppc_spr_tbhu, ppc_spr_tblu, ppc_spr_dmiss, ppc_spr_dcmp)
	(ppc_spr_hash1, ppc_spr_hash2, ppc_spr_icdbdr, ppc_spr_imiss)
	(ppc_spr_esr, ppc_spr_icmp, ppc_spr_dear, ppc_spr_rpa)
	(ppc_spr_evpr, ppc_spr_cdbcr, ppc_spr_tsr, ppc_spr_602_tcr)
	(ppc_spr_403_tcr, ppc_spr_ibr, ppc_spr_pit, ppc_spr_esasrr)
	(ppc_spr_tbhi, ppc_spr_tblo, ppc_spr_srr2, ppc_spr_sebr)
	(ppc_spr_srr3, ppc_spr_ser, ppc_spr_hid0, ppc_spr_dbsr)
	(ppc_spr_hid1, ppc_spr_iabr, ppc_spr_dbcr, ppc_spr_iac1)
	(ppc_spr_dabr, ppc_spr_iac2, ppc_spr_dac1, ppc_spr_dac2)
	(ppc_spr_l2cr, ppc_spr_dccr, ppc_spr_ictc, ppc_spr_iccr)
	(ppc_spr_thrm1, ppc_spr_pbl1, ppc_spr_thrm2, ppc_spr_pbu1)
	(ppc_spr_thrm3, ppc_spr_pbl2, ppc_spr_fpecr, ppc_spr_lt)
	(ppc_spr_pir, ppc_spr_pbu2): New enum constants for PowerPC
	special-purpose register numbers.

	* rs6000-tdep.c (registers_860): Correct register name.  (No PPC
	manual mentions 'md_twb', but many mention 'm_twb', and at that
	point in the register list.)

2004-07-14  Andrew Cagney  <cagney@gnu.org>

	* utils.c (internal_warning_problem): Fix typo, "internal-warning"
	instead of "internal-error".

2004-07-10  Joel Brobecker  <brobecker@gnat.com>

	* hppa-hpux-tdep.c: Fix a compilation failure due to a comment
	that was inserted inside a comment.

2004-07-10  Randolph Chung  <tausq@debian.org>

	* hppa-hpux-tdep.c (hppa_hpux_som_find_global_pointer): New 
	function.
	(hppa_hpux_push_dummy_code): New function.
	(hppa_hpux_init_abi): Set push_dummy_code and call_dummy_location.
	Set find_global_pointer method.

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

	* NEWS: Mention BSD libkvm interface.

2004-07-10  Michael Snyder  <msnyder@redhat.com>

	* symfile.c (generic_load): Comment typo.
	* stack.c (get_selected_block): Ditto.
	* regcache.c (regcache_cooked_read): Ditto.
	* monitor.c (monitor_debug): Ditto.
	* mips-tdep.c (mips_read_pc): Ditto.
	* i386-linux-nat.c (ps_get_thread_area): Ditto.
	* gdb_mbuild.sh: Ditto.
	* gdbarch.sh: Ditto.
	* gdbarch.h: Ditto.

2004-07-09  Paul N. Hilfinger  <Hilfinger@gnat.com>

        * ada-tasks.c: Remove file.
	
	Remove ARI problems:
	
	* ada-exp.y (write_var_from_sym): Reformat to put operator at
	beginning of line.

	* ada-lang.c (MAX_OF_SIZE): Rename max_of_size.
	Add comment.
	Add comment concerning MAX_OF_TYPE and MIN_OF_TYPE.
	(MIN_OF_SIZE): Rename min_of_size.  Add comment.
	(UMAX_OF_SIZE): Renmae umax_of_size.  Add comment.
	(UMIN_OF_SIZE): Remove.
	(max_of_type): New function to replace orphan macro in gdbtypes.h
	(min_of_type): Ditto.
	(discrete_type_high_bound): Use max_of_type.
	(discrete_type_low_bound): Use min_of_type.
	(possible_user_operator_p): Move operator to beginning of line.
	(ada_is_variant_part): Ditto.
	(ensure_lval): Rewrite to avoid deprecated operations.
	(ada_finish_decode_line_1): Use gdbarch_convert_from_func_ptr_addr
	rather than adding DEPRECATED_FUNCTION_START_OFFSET.
	(ada_enum_name): Remove assignments in 'if' statements.
	(build_ada_types): Add gdbarch parameter.
	(_initialize_ada_language): Replace deprecated_register_gdbarch_swap
	with gdbarch_data_register_post_init.
	Use add_setshow_uinteger_cmd rather than add_set_cmd and 
	add_show_from_set.

	* ada-valprint.c (inspect_it): Remove declaration.
	(repeat_count_threshold): Remove declaration.
	(ada_print_floating): Remove assignments in 'if' statements.
	(print_str): Move operator to beginning of line.
	
2004-07-08  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (registers_powerpc_nofp): Unused; deleted.

2004-07-08  Bob Rossi  <bob@brasko.net>

	* symtab.c (lookup_symtab): check return value of symtab_to_fullname

2004-07-06  Jeff Johnston <jjohnstn@redhat.com>

	* language.h (struct_language_defn): Add new function pointer:
	la_class_name_from_physname.  Also add new prototype for
	language_class_name_from_physname.
	* language.c (language_class_name_from_physname): New function.
	(unk_lang_class_name): Ditto.
	(unknown_language_defn, auto_language_defn): Change
	to add unk_lang_class_name function pointer for
	la_class_name_from_physname.
	(local_language_defn): Ditto.
	* dwarf2read.c (guess_structure_name): Change to call
	language_class_name_from_physname.
	(determine_class_name): Ditto.
	* cp-support.c (class_name_from_physname): Renamed.
	(cp_class_name_from_physname): New name of function.
	* cp-support.h: Ditto.
	* c-lang.c (c_language_defn): Change to add NULL
	for class_name_from_physname function pointer.
	(cplus_language_defn): Change to add cp_class_name_from_physname.
	* jv-lang.c (java_class_name_physname): New function.
	(java_find_last_component): New static routine.
	(java_language_defn): Add java_class_name_from_physname pointer.
	* ada-lang.c (ada_language_defn): Change to add NULL
	for class_name_from_physname function pointer.
	* f-lang.c (f_language_defn): Ditto.
	* m2-lang.c (m2_language_defn): Ditto.
	* objc-lang.c (objc_language_defn): Ditto.
	* p-lang.c (pascal_language_defn): Ditto.
	* scm-lang.c (scm_language_defn): Ditto. 

2004-07-06  Andrew Cagney  <cagney@gnu.org>

	Patch from Bart Robinson.
	* corelow.c (core_open): Add variable "flags", or in O_LARGEFILE.
	(O_LARGEFILE): Define to 0, if not defined.

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

	* m68kbsd-nat.c: Include "gdbcore.h", <sys/types.h>,
	<machine/pcb.h> and "bsd-kvm.h".
	(PCB_REGS_FP, PCB_REGS_SP): Define if not already defined.
	(m68kbsd_supply_pcb): New function.
	(_initialize_m68kbsd_nat): New prototype and function.
	* Makefile.in (m68kbsd-nat.o): Update dependencies.
	* config/m68k/nbsdelf.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.
	* config/m68k/obsd.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.

	* bsd-kvm.c (bsd_kvm_cmdlist): Remove unecessary initialization.

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

	* bsd-kvm.c: Include "cli/cli-cmds.h", "command.h", "value.h" and
	<sys/proc.h>.
	(bsd_kvm_cmdlist): New variable.
	(bsd_kvm_cmd, bsd_kvm_proc_cmd, bsd_kvm_pcb_cmd): New functions.
	(bsd_kvm_add_target): Register "kvm" command prefix, "kvm pcb"
	command and "kvm proc" command.
	* Makefile.in (bsd-kvm.o): Update dependencies.

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

	* osabi.c: Update copyright year.
	(generic_elf_osabi_sniffer): Tweak comment.  Look for OS-specific
	notes if EI_OSABI is set to ELFOSABI_HPUX.

2004-07-01  Michael Snyder  <msnyder@redhat.com>

	* win32-nat.c (core_dll_symbols_add): Re-indent a small section
	that seems to have gotten whacked out of line.

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

	* dbxread.c (process_one_symbol) [PCC_SOL_BROKEN]: Remove dead
	code.

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

	* ada-lang.c (decode_packed_array): Minor change to comment.
	(ada_value_slice_ptr): New function. 
	(ada_value_slice): New function. 
	(ada_evaluate_subexp): Remove XVS-suffix code from subscripting
	test.  Don't know why it is there.
	Change slice code to use ada_value_slice_ptr and ada_value_slice, and
	to avoid dereferencing huge arrays from which one is slicing.  
	(empty_array): Correct to return an array rather than
	a subrange value.
	* ada-valprint.c (print_optional_low_bound): Don't print lower bound
	on empty arrays (let'em use 'FIRST instead).

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

	Address complaints from gdb_ari.sh:
	
	* ada-exp.y: Include gdb_string.h rather than string.h.
	(convert_char_literal): Reformat declaration.
	* ada-lang.h: Include opaque struct declaration for struct frame_info.
	* ada-lex.l: Change use of free to xfree (the macro would do so
	anyway, but this is harmless).
	Include gdb_string.h rather than string.h.
	* ada-valprint.c (ada_val_print_stub): Change PTR => void*.
	
	* ada-lang.c (parse): Remove K&Rism in parameter list.
	(is_name_suffix): Correct Linux => GNU/Linux in comment.
	
2004-06-30  Mark Kettenis  <kettenis@gnu.org>

	* dbxread.c (process_one_symbol) [SUN_FIXED_LBRAC_BUG]: Remove
	dead code.

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

	* alphabsd-nat.c: Update copyright year.
	(getregs_supplies): Use ALPHA_PC_REGNUM instead of PC_REGNUM.

2004-06-29  Joel Brobecker  <brobecker@gnat.com>

	* i386-cygwin-tdep.c (i386_cygwin_skip_trampoline_code): New function.
	(i386_cygwin_in_solib_call_trampoline): New function.
	(i386_cygwin_init_abi): Initialize the in_solib_call_trampoline
	and skip_trampoline_code gdbarch methods.

2004-06-29  Jim Blandy  <jimb@redhat.com>

	* Makefile.in (gdb_callback_h): Renamed from callback_h to the
	name actually used in the dependency lists.

2004-06-29  Randolph Chung  <tausq@debian.org>

	* NEWS (New native configurations): Mention GNU/Linux/hppa.

2004-06-29  Corinna Vinschen  <vinschen@redhat.com>

	* win32-nat.c (child_pid_to_exec_file): New function.
	(init_child_ops): Add child_pid_to_exec_file as to_pid_to_exec_file
	functionality.

2004-06-28  Andrew Cagney  <cagney@gnu.org>

	* defs.h (xstrvprintf): Declare.
	* utils.c (xstrvprintf): New function.
	(internal_vproblem, xstrprintf, xasprintf) 
	(vfprintf_maybe_filtered, vfprintf_unfiltered): Use xstrvprintf.
	* serial.c (serial_printf): Ditto.
	* complaints.c (vcomplaint): Ditto.

2004-06-29  Corinna Vinschen  <vinschen@redhat.com>

	* infcmd.c (attach_command): Move call to target_terminal_inferior
	behind loading symbol table.

2004-06-28  Andrew Cagney  <cagney@gnu.org>

	* rdi-share/ardi.c (angel_RDI_ExecuteOrStep): Revert 2004-06-24
	change - add back extern deprecated_ui_loop_hook declaration.

2004-06-28  Andrew Cagney  <cagney@gnu.org>

	* xcoffsolib.c (xcoff_solib_address): Replace xasprintf with
	xstrprintf.
	* varobj.c (varobj_gen_name, create_child, c_name_of_child)
	(c_value_of_variable): Ditto.
	* utils.c (internal_vproblem): Ditto.
	* solib-aix5.c (build_so_list_from_mapfile): Ditto.
	* remote.c (add_packet_config_cmd): Ditto.
	* remote-rdp.c (rdp_set_command_line): Ditto.
	* regcache.c (regcache_dump): Ditto.
	* frv-tdep.c (new_variant, new_variant): Ditto.
	* fbsd-proc.c (child_pid_to_exec_file): Ditto.
	(fbsd_find_memory_regions): Ditto.
	* breakpoint.c (create_thread_event_breakpoint) 
	(create_breakpoints): Ditto.
	* aix-thread.c (aix_thread_pid_to_str): Ditto.
	* ada-lang.c (is_package_name): Ditto.  Also delete xmalloc call.

2004-06-28  Joel Brobecker  <brobecker@gnat.com>

	* ada-lang.c: Re-indent file, with some massaging to help indent
	a bit when the result is otherwise really too ugly.

2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* frame.h (struct frame_id): Change bit field type of stack_addr_p, 
	code_addr_p and special_addr_p to 'unsigned int'.

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

	* i386v4-nat.c: Update copyright year and tweak comment.
	(regmap): Remove trailing comma.
	(supply_gregset): Rename local variable i to regnum.  Call
	regcache_raw_supply instead of supply_register.
	(fill_gregset): Rename argument regno to regnum.  Call
	regcache_raw_collect instead of regcache_collect.

2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* frame.h (struct frame_id): New fields stack_addr_p, code_addr_p
	and special_addr_p.
	(frame_id_build, frame_id_build_special): Update comments.
	(frame_id_build_wild): New prototype.
	* frame.c (frame_id_build, frame_id_build_special): Fill in new
	struct frame_id fields.
	(frame_id_build_wild): New function.
	(frame_id_eq, frame_id_inner): Use new struct frame_id fields.

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

	* config/djgpp/fnchange.lst: Add entries for hppabsd-nat.c and
	hppabsd-tdep.c.

2004-06-27  Joel Brobecker  <brobecker@gnat.com>

	* ada-lang.c: Minor reformatting to conform to GNU coding standards.

2004-06-27  Joel Brobecker  <brobecker@gnat.com>

	* ada-lang.c: Re-indent file.

2004-06-27  Joel Brobecker  <brobecker@gnat.com>

	* ada-lang.c (symtab_symbol_info): Remove unused declaration.
	(no_symtab_msg): Likewise.

2004-06-27  Andreas Schwab  <schwab@suse.de>

	* source.c: Fix whitespace.

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

	* configure.in: Include <sys/param.h> for td_pcb test.
	* configure: Regenerated.

	* i386nbsd-nat.c: New file.
	* Makefile.in (ALLDEPFILES): Add i386nbsd-nat.c, i386nbsd-tdep.c,
	i386obsd-nat.c and i386obsd-tdep.c.
	(i386nbsd-nat.o): New dependency.
	* config/i386/obsd.mh (NATDEPFILES): Add i386nbsd-nat.o and
	bsd-kvm.o.
	(LOADLIBES): New variable.
	* config/i386/nbsdelf.mh (NATDEPFILES): Add i386nbsd-nat.o and
	bsd-kvm.o.
	(LOADLIBES): New variable.

	* config/i386/fbsd64.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.

	* bsd-kvm.c (bsd_kvm_fetch_registers): Directly return after
	fetching from BSD_KVM_PADDR.  Correctly lookup address for
	"_thread0".

	* amd64fbsd-nat.c: Include <sys/types.h, <machine/pcb.h> and
	"bsd-kvm.h".
	(amd64fbsd_supply_pcb): New funcion.
	(_initialize_amd64fbsd_nat): Enable libkvm interface.

2004-06-27    <david@streamline-computing.com>

	Partial fix for PR cli/1056.
	* valarith.c: Check for zero in division and remainder 
	evaluation.

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

	* i387-tdep.c: Remove excessive whitespace.

2004-06-26  Andrew Cagney  <cagney@gnu.org>

	* gdb-events.sh (deprecated_set_gdb_event_hooks): Deprecated.
	* gdb-events.h, gdb-events.c: Re-generate.
	* tui/tui-hooks.c (tui_install_hooks): Update.
	(tui_remove_hooks): Update.
	* mi/mi-cmd-break.c (mi_cmd_break_insert): Update.

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

	* amd64fbsd-nat.c: Don't include <sys/procfs.h> and "gregset.h".
	(gregset_t, fpregset_t): Remove typedefs.
	(REG_OFFSET): Rename argument.
	(amd64bsd_r_reg_offset): Rename from reg_offset.
	(supply_gregset, fill_gregset, supply_fpregset, fill_fpregset):
	Remove functions.
	(_initialize_amd64fbsd_nat): Use amd64fbsd64_r_reg_offset instead
	of reg_offset.
	* Makefile.in (amd64fbsd-nat.o): Update dependencies.

	* amd64-nat.c (amd64_supply_native_gregset): Fix comment.

	* vax-tdep.c: Tweak comment.

	Add OpenBSD/hppa support.
	* NEWS (New native configurations): Mention OpenBSD/hppa.
	* hppabsd-nat.c, hppabsd-tdep.c, config/pa/obsd.mh,
	config/pa/obsd.mt, config/pa/nm-obsd.h, config/pa/tm-bsd.h: New
	files.
	* Makefile.in (ALLDEPFILES): Add hppabsd-nat.c and hppabsd-tdep.c.
	(hppabsd-nat.o, hppabsd-tdep.c): New dependencies.
	* configure.host: Add hppa*-*-openbsd*.
	* configure.tgt: Add hppa*-*-openbsd*.

2004-06-25  Andrew Cagney  <cagney@gnu.org>

	* defs.h (deprecated_ui_loop_hook): Deprecated.
	* wince.c (child_wait): Update.
	* win32-nat.c (child_wait): Update.
	* v850ice.c (v850ice_wait): Update.
	* top.c (deprecated_ui_loop_hook): Update.
	* serial.h: Update.
	* ser-unix.c (do_hardwire_readchar, do_hardwire_readchar) 
	(do_unix_readchar): Update.
	* ser-tcp.c (net_open): Update.
	* remote-sim.c (gdb_os_poll_quit): Update.
	* rdi-share/ardi.c (angel_RDI_ExecuteOrStep): Update.

2004-06-24  Andrew Cagney  <cagney@gnu.org>

	* defs.h (deprecated_pre_add_symbol_hook)
	(deprecated_post_add_symbol_hook): Deprecated.
	* symfile.c (symbol_file_add_with_addrs_or_offsets) 
	(symbol_file_add_with_addrs_or_offsets): Update references.

2004-06-24  Andrew Cagney  <cagney@gnu.org>

	* defs.h (post_add_symbol_hook, pre_add_symbol_hook)
	(ui_loop_hook, selected_frame_level_changed_hook): Declare.
	* wince.c (ui_loop_hook): Delete extern declaration.
	* win32-nat.c (ui_loop_hook): Delete extern declaration..
	* v850ice.c (ui_loop_hook): Delete extern declaration..
	* ser-unix.c (ui_loop_hook): Delete extern declaration..
	* ser-tcp.c (ui_loop_hook): Delete extern declaration..
	* remote-sim.c (ui_loop_hook): Delete extern declaration..
	* rdi-share/ardi.c (angel_RDI_ExecuteOrStep): Delete extern.
	ui_loop_hook declaration.

2004-06-24  Andrew Cagney  <cagney@gnu.org>

	* objfiles.h (struct entry_info): Delete entry_func_lowpc and
	entry_func_highpc fields.
	* objfiles.c (init_entry_point_info): Do not clear
	entry_func_lowpc and entry_func_highpc.
	(objfile_relocate): Do not relocate entry_func_lowpc and
	entry_func_highpc.
	* dwarfread.c (read_func_scope): Do not set entry_func_lowpc and
	entry_func_highpc.
	* dwarf2read.c (read_func_scope): Do not set entry_func_lowpc and
	entry_func_highpc.
	* blockframe.c (legacy_frame_chain_valid): Replace tests against
	entry_func_lowpc and entry_func_highpc with call to
	inside_entry_func.

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

	* sparc64-tdep.c (sparc64_store_arguments): Fix passing
	quad-precision floating point arguments in registers.

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

	From Michael Mueller <m.mueller99@kay-mueller.de>:
	* sparc64-tdep.c (sparc64_frame_base_address): Take BIAS into
	account.

2004-06-22  Jeff Johnston  <jjohnstn@redhat.com>

	* infrun.c (handle_inferior_event): Initialize stopped_by_watchpoint
	to -1.
	* breakpoint.c (bpstat_stop_status): Move check for ignoring
	untriggered watchpoints to a separate if clause.  Update function
	comment regarding STOPPED_BY_WATCHPOINT argument.

2004-06-22  Jim Blandy  <jimb@redhat.com>

	* gdbarch.sh: Doc fix.

2004-06-21  Martin Hunt  <hunt@redhat.com>
	Kevin Buettner <kevinb@redhat.com>

        * config/mips/tm-mips.h (SP_REGNUM): Delete define.
	* mips-tdep.h (MIPS_SP_REGNUM): Define.
	* mips-tdep.c (mips_gdbarch_init): Set SP_REGNUM via call
	to set_gdbarch_sp_regnum().  Use cooked register number.
        (SP_REGNUM): Replace all occurrences with MIPS_SP_REGNUM.

2004-06-21  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh: When the macro field is empty, do not generate a
	macro definition.  When the macro field is "=", generate the macro
	name from the upper-case function name.
	(NUM_REGS, NUM_PSEUDO_REGS, SP_REGNUM, PC_REGNUM, PS_REGNUM)
	(FP0_REGNUM, STAB_REG_TO_REGNUM, ECOFF_REG_TO_REGNUM)
	(DWARF_REG_TO_REGNUM, SDB_REG_TO_REGNUM, DWARF2_REG_TO_REGNUM)
	(REGISTER_NAME, DEPRECATED_REGISTER_VIRTUAL_TYPE)
	(DEPRECATED_REGISTER_BYTES, DEPRECATED_REGISTER_BYTE)
	(DEPRECATED_REGISTER_RAW_SIZE, DEPRECATED_REGISTER_VIRTUAL_SIZE)
	(DEPRECATED_SAVE_DUMMY_FRAME_TOS, DEPRECATED_FP_REGNUM)
	(DEPRECATED_TARGET_READ_FP, DEPRECATED_PUSH_ARGUMENTS)
	(DEPRECATED_PUSH_RETURN_ADDRESS, DEPRECATED_DUMMY_WRITE_SP)
	(DEPRECATED_REGISTER_SIZE, CALL_DUMMY_LOCATION)
	(DEPRECATED_DO_REGISTERS_INFO, REGISTER_SIM_REGNO)
	(REGISTER_BYTES_OK, CANNOT_FETCH_REGISTER, CANNOT_STORE_REGISTER)
	(GET_LONGJMP_TARGET, DEPRECATED_INIT_FRAME_PC)
	(BELIEVE_PCC_PROMOTION, DEPRECATED_GET_SAVED_REGISTER)
	(CONVERT_REGISTER_P, REGISTER_TO_VALUE, VALUE_TO_REGISTER)
	(POINTER_TO_ADDRESS, ADDRESS_TO_POINTER, INTEGER_TO_ADDRESS)
	(DEPRECATED_POP_FRAME, DEPRECATED_STORE_STRUCT_RETURN)
	(EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE)
	(DEPRECATED_EXTRACT_RETURN_VALUE, DEPRECATED_STORE_RETURN_VALUE)
	(DEPRECATED_USE_STRUCT_CONVENTION)
	(DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS)
	(DEPRECATED_FRAME_INIT_SAVED_REGS)
	(DEPRECATED_INIT_EXTRA_FRAME_INFO, SKIP_PROLOGUE, INNER_THAN)
	(BREAKPOINT_FROM_PC, MEMORY_INSERT_BREAKPOINT)
	(MEMORY_REMOVE_BREAKPOINT, DECR_PC_AFTER_BREAK)
	(DEPRECATED_FUNCTION_START_OFFSET, FRAME_ARGS_SKIP)
	(DEPRECATED_FRAMELESS_FUNCTION_INVOCATION, DEPRECATED_FRAME_CHAIN)
	(DEPRECATED_FRAME_CHAIN_VALID, DEPRECATED_FRAME_SAVED_PC)
	(DEPRECATED_FRAME_ARGS_ADDRESS, DEPRECATED_FRAME_LOCALS_ADDRESS)
	(DEPRECATED_SAVED_PC_AFTER_CALL, FRAME_NUM_ARGS)
	(DEPRECATED_STACK_ALIGN, DEPRECATED_REG_STRUCT_HAS_ADDR)
	(FRAME_RED_ZONE_SIZE, ADDR_BITS_REMOVE, SMASH_TEXT_ADDRESS)
	(SOFTWARE_SINGLE_STEP, SKIP_TRAMPOLINE_CODE)
	(IN_SOLIB_CALL_TRAMPOLINE, IN_SOLIB_RETURN_TRAMPOLINE)
	(ELF_MAKE_MSYMBOL_SPECIAL, COFF_MAKE_MSYMBOL_SPECIAL)
	(NAME_OF_MALLOC, CANNOT_STEP_BREAKPOINT)
	(HAVE_NONSTEPPABLE_WATCHPOINT, ADDRESS_CLASS_TYPE_FLAGS)
	(FETCH_POINTER_ARGUMENT): Replace the macro name with "=".

2004-06-21  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh: For gdbarch_dump, print the "function" rather than
	macro name, and the function rather than macro value.  Only wrap
	macro print statements in #ifdef.  Move format logic to where it
	is needed.
	* gdbarch.c: Re-generate.
	
	* gdbarch.sh (read): Delete "print_p" and "description", add
	"garbage_at_eol".  Check for non-empty garbage at end-of-line.
	Delete references to print_p.
	(TARGET_ARCHITECTURE): Delete print predicate.
	* gdbarch.c: Re-generate.
	
	* gdbarch.sh: Check that multi-arch methods do not provide a
	macro.
	(register_type, unwind_dummy_id, push_dummy_call, push_dummy_code)
	(print_registers_info, print_float_info, print_vector_info)
	(adjust_breakpoint_address, remote_translate_xfer_address)
	(construct_inferior_arguments, skip_solib_resolver, unwind_pc)
	(address_class_type_flags_to_name, unwind_sp): Remove the macro
	name from the multi-arch definition.
	
2004-06-20  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh: Sort by the function, instead of macro name.
	* gdbarch.c: Re-generate.
	
2004-06-20  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh: Use the function, instead of macro name in
	errors and the log file.
	(return_value): Remove stray ":" in spec.

	* gdbarch.sh (RETURN_VALUE): Default to legacy_return_value.
	* gdbarch.h, gdbarch.c: Re-generate.
	* Makefile.in (arch-utils.o): Update dependencies.
	* values.c (using_struct_return): Move code calling
	USE_STRUCT_CONVENTION to legacy_return_value, simplify.
	* stack.c (return_command): Move code calling STORE_RETURN_VALUE
	to legacy_return_value, simplify.
	* infcmd.c (print_return_value): Move code calling
	DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS and EXTRACT_RETURN_VALUE
	to legacy_return_value, simplify.
	* infcall.c (call_function_by_hand): Move code calling
	EXTRACT_RETURN_VALUE to legacy_return_value, simplify.
	* arch-utils.c: Update copyright.  Include "gdbcore.h".
	(legacy_return_value): New function.
	* arch-utils.h: Update copyright.
	(legacy_return_value): Declare.
	
2004-06-20  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh (DEPRECATED_USE_STRUCT_CONVENTION): Deprecated.
	* gdbarch.h, gdbarch.c: Re-generate.
	* values.c (using_struct_return): Update call.
	* mcore-tdep.c: Update comment.
	* infcall.c (call_function_by_hand): Update comment.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* arch-utils.h (always_use_struct_convention): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sh64-tdep.c (sh64_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m32r-tdep.c (m32r_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2004-06-18  Michael Chastain  <mec.gnu@mindspring.com>

	* PROBLEMS: Add more specific information, and a work-around,
	for PR gdb/1458.

2004-06-18  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh (DEPRECATED_FUNCTION_START_OFFSET): Deprecated.
	* gdbarch.h, gdbarch.c: Re-generate.
	* ada-lang.c (ada_finish_decode_line_1): Update.
	* infrun.c (handle_inferior_event): Update.
	* infcall.c (find_function_addr): Update.
	* linespec.c (minsym_found): Update.
	* symtab.c (find_function_start_sal, skip_prologue_using_sal):
	Update.
	* blockframe.c (legacy_frameless_look_for_prologue): Update.
	* cli/cli-cmds.c (disassemble_command): Update.
	* vax-tdep.c (vax_gdbarch_init): Update.

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

	* i386-tdep.c (i386_collect_fpregset): Fix comment.

2004-06-17  Andrew Cagney  <cagney@gnu.org>

	GDB 6.1.1 released from the GDB 6.1 branch.
	* NEWS: Merge in 6.1.1 NEWS from 6.1 branch.
	* PROBLEMS: Ditto.

2004-06-16  Daniel Jacobowitz  <dan@debian.org>

	PR gdb/1658
	* dwarf2read.c (dwarf_decode_lines): Read the length of the extended
	operation as a uleb128.  Found by Michael Coulter.

2004-06-16  Paul N. Hilfinger  <Hilfinger@gnat.com>
	
	* ada-tasks.c: Rename build_task_list to ada_build_task_list, and
	make it non-static.
	* ada-lang.h (task_control_block): declaration moved from ada-task.c
	to ada-lang.h; this is needed to be able to implement the kill command
	in multi-task mode.
	(task_ptid): Ditto.
	(task_entry): Ditto.
	(task_list): Ditto.
	(ada_build_task_list): Ditto.
	
	* ada-lang.c: Conditionalize routines and data structures related 
	to breakpoints, exceptions, completion, and symbol caching on 
	GNAT_GDB, since these are not yet used in the submitted public sources.
	(ada_main_name): Editorial: Move definition out of exception-related 
	code.

2004-06-15  Andrew Cagney  <cagney@gnu.org>

	* mips-tdep.c (non_heuristic_proc_desc): Delete call to
	deprecated_pc_in_call_dummy.

2004-06-15  Alan Modra  <amodra@bigpond.net.au>

	* dsrec.c (load_srec, make_srec): Use bfd_get_section_size instead of
	bfd_get_section_size_before_reloc or _raw_size.
	* dwarf2-frame.c (dwarf2_build_frame_info): Likewise.
	* dwarf2read.c (dwarf2_locate_sections): Likewise.
	(dwarf2_read_section): Likewise.
	* elfread.c (elf_locate_sections): Likewise.
	* gcore.c (derive_heap_segment): Likewise.
	* mipsread.c (read_alphacoff_dynamic_symtab): Likewise.
	* remote-e7000.c (e7000_load): Likewise.
	* remote-m32r-sdi.c (m32r_load): Likewise.
	* remote-mips.c (mips_load_srec): Likewise.
	(pmon_load_fast): Likewise.
	* remote.c (compare_sections_command): Likewise.
	* symfile.c (add_section_size_callback): Likewise.
	(load_section_callback): Likewise.
	(pc_in_unmapped_range): Likewise.
	(pc_in_mapped_range): Likewise.
	(sections_overlap): Likewise.
	(list_overlays_command): Likewise.
	(simple_overlay_update_1): Likewise.
	(simple_overlay_update): Likewise.
	* tracepoint.c (remote_set_transparent_ranges): Likewise.
	* win32-nat.c (core_section_load_dll_symbols): Likewise.

2004-06-14  Randolph Chung  <tausq@debian.org>

	* Makefile.in (hppa-hpux-tdep.o): Update dependency.
	* hppa-hpux-tdep.c (hp_cxx_exception_support_initialized): Make 
	static.
	(hppa_hpux_inferior_created): New function.
	(hppa_hpux_init_abi): Register observer.
	* symfile.c (hp_cxx_exception_support_initialized)
	(RESET_HP_UX_GLOBALS): Remove HPUXHPPA specific hacks.
	(symbol_file_add_main_1, symbol_file_clear): Likewise.

2004-06-14  Randolph Chung  <tausq@debian.org>

	* MAINTAINERS (Write After Approval): Alphabetize my entry
	correctly.

2004-06-14  Andrew Cagney  <cagney@gnu.org>

	* MAINTAINERS (testsuite): List Michael Chastain as the lead
	testsuite maintainer.

2004-06-13  Andrew Cagney  <cagney@gnu.org>

	* infcmd.c (print_return_value): Fix logic, allow
	DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS when struct_return.

	* gdbarch.sh: For predicates, do not check GDB_MULTI_ARCH when
	defining any macros.
	* gdbarch.h: Re-generate.

	* gdbarch.sh: Delete "level" attribute.  Only check for a macro
	redefinition when multi-arch greater than GDB_MULTI_ARCH_PARTIAL.
	* gdbarch.h: Re-generate.

	* values.c (generic_use_struct_convention): Don't check gcc_p.

	* gdbarch.sh (DEPRECATED_MAX_REGISTER_RAW_SIZE)
	(DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Delete.
	* gdbarch.h, gdbarch.c: Regenerate.
	* ns32k-tdep.h (NS32K_MAX_REGISTER_RAW_SIZE) 
	(NS32K_MAX_REGISTER_VIRTUAL_SIZE): Delete macros.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	deprecated_max_register_raw_size and
	deprecated_max_register_virtual_size.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.

	* gdbarch.sh (RETURN_VALUE_ON_STACK): Delete method.
	* gdbarch.h, gdbarch.c: Re-generate.
	* m68hc11-tdep.c (m68hc11_return_value_on_stack): Delete function.
	(m68hc11_use_struct_convention): Delete function.
	(m68hc11_extract_struct_value_address): Delete function.
	(m68hc11_return_value): New function.
	(m68hc11_gdbarch_init): Instead of store_return_value,
	extract_return_value, return_value_on_stack,
	deprecated_extract_struct_value_address and use_struct_convention,
	set return_value.
	* values.c (using_struct_return): Do not call
	RETURN_VALUE_ON_STACK.
	* arch-utils.h (generic_return_value_on_stack_not): Delete
	declaration.
	* arch-utils.c (generic_return_value_on_stack_not): Delete
	function.
	
2004-06-12  Andrew Cagney  <cagney@gnu.org>

	* values.c (register_value_being_returned): Delete function.
	* infcmd.c (legacy_return_value): Delete function.
	* infcall.c (call_function_by_hand): Inline
	"register_value_being_returned", simplify.
	* values.c (using_struct_return): Update comment, refer to
	print_return_value instead of register_value_being_returned.
	* infcmd.c (print_return_value): Inline calls to
	register_value_being_returned and legacy_return_value.  Simplify.

2004-06-11  Randolph Chung  <tausq@debian.org>

	* somread.c (som_symtab_read): Exclude gcc local symbols.

2004-06-11  Randolph Chung  <tausq@debian.org>

	* infrun.c (handle_inferior_event): Handle the case when a
	trampoline ends up in the runtime resolver, and if the trampoline
	has no name.  Rearrange the code so that all the trampoline
	processing happens before other step-out-of-range handling.

2004-06-11  Martin Hunt  <hunt@redhat.com>

	* mips-tdep.c (mips_gdbarch_init): Recognize vr4120
	has no fpu.

2004-06-10  Andrew Cagney  <cagney@gnu.org>

	* blockframe.c (legacy_inside_entry_func): Delete.
	(legacy_frame_chain_valid): Inline call to
	legacy_inside_entry_func, simplify.

2004-06-10  Bob Rossi  <bob@brasko.net>

	* dbxread.c (read_dbx_symtab): Set pst->dirname when known.
	* dwarf2read.c (partial_die_info): Add dirname field.
	(dwarf2_build_psymtabs_hard): Set pst->dirname when known.
	(read_partial_die): Save away DW_AT_comp_dir.
	* defs.h (symtab_to_filename): Removed.
	* source.c (find_and_open_source): Added.
	(open_source_file): Just calls find_and_open_source.
	(symtab_to_filename): Removed.
	(symtab_to_fullname, psymtab_to_fullname): Added.
	* source.h (psymtab_to_fullname,symtab_to_fullname): Added.
	* symtab.c (lookup_symtab): Call symtab_to_fullname instead of
	symtab_to_filename.
	* symtab.h (partial_symtab): Add dirname field.
	* mi/mi-cmd-file.c (FILENAME,FULLNAME): Added.
	(mi_cmd_file_list_exec_source_file): Call new function
	symtab_to_fullname to find fullname.
	(mi_cmd_file_list_exec_source_files): Added.
	* mi/mi-cmds.c (mi_cmd_mi_cmds): Add -file-list-exec-source-files.
	* mi/mi-cmds.h (mi_cmd_file_list_exec_source_files): Added.

2004-06-10  Andrew Cagney  <cagney@gnu.org>

	* avr-tdep.c (avr_gdbarch_init): Do not set use_struct_convention
	to generic_use_struct_convention, the default value.

	* mn10300-tdep.c (mn10300_type_align): Call internal_error instead
	of abort.

	* ns32k-tdep.c (ns32k_push_arguments): New function.
	(ns32k_gdbarch_init): Set deprecated_push_arguments.
	* infcall.c (call_function_by_hand): Call error instead of
	legacy_push_arguments.
	* value.h (legacy_push_arguments): Delete declaration.
	* valops.c (legacy_push_arguments): Delete function.
	(value_push): Delete function.

2004-06-10  Brian Ford  <ford@vss.fsi.com>

	* coffread.c (coff_symfile_read): Prevent mixed debugging formats
	from corrupting/reinitializing the psymtab.  Support DWARF 2 frame
	info.
	* dbxread.c (elfstab_build_psymtabs): Remove bogus comment.

2004-06-10  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh (DEPRECATED_PC_IN_CALL_DUMMY): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame.h (deprecated_pc_in_call_dummy): Delete "sp" and "fp"
	parameters.
	* dummy-frame.c (deprecated_pc_in_call_dummy): Update.
	* arm-tdep.c (arm_pc_is_thumb_dummy): Call
	deprecated_pc_in_call_dummy instead of
	DEPRECATED_PC_IN_CALL_DUMMY.
	(arm_skip_prologue): Ditto.
	* xstormy16-tdep.c (xstormy16_pop_frame, xstormy16_scan_prologue)
	(xstormy16_frame_saved_pc, xstormy16_frame_chain): Ditto.
	* v850-tdep.c (v850_find_callers_reg, v850_frame_chain)
	(v850_pop_frame, v850_frame_saved_pc, v850_frame_init_saved_regs):
	Ditto.
	* sh64-tdep.c (sh64_frame_chain, sh64_get_saved_pr) 
	(sh64_init_extra_frame_info, sh64_get_saved_register) 
	(sh64_pop_frame): Ditto.
	* mips-tdep.c (non_heuristic_proc_desc): Ditto.
	* mcore-tdep.c (mcore_find_callers_reg, mcore_frame_saved_pc) 
	(mcore_pop_frame, mcore_init_extra_frame_info): Ditto.
	* h8300-tdep.c (h8300_frame_chain, h8300_frame_saved_pc) 
	(h8300_pop_frame): Ditto.
	* blockframe.c (legacy_inside_entry_func) 
	(legacy_frame_chain_valid): Ditto.
	* frame.c (frame_type_from_pc, legacy_get_prev_frame): Update call
	to deprecated_pc_in_call_dummy.
	
2004-06-09  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh (REGISTER_TO_VALUE, VALUE_TO_REGISTER): Do not
	provide a default value.
	(CONVERT_REGISTER_P): Default to generic_convert_register_p.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arch-utils.c (generic_convert_register_p): Rename
	legacy_convert_register_p
	(legacy_register_to_value, legacy_value_to_register): Delete
	functions.
	* arch-utils.h (generic_convert_register_p): Rename
	legacy_convert_register_p.
	(legacy_register_to_value, legacy_value_to_register): Delete
	declarations.

	* gdbarch.sh (DEPRECATED_REGISTER_CONVERT_TO_RAW)
	(DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL)
	(DEPRECATED_REGISTER_CONVERTIBLE): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* infcmd.c (default_print_registers_info): Simplify.
	* findvar.c (value_of_register): Simplify.
	* mi/mi-main.c (get_register): Simplify.
	* arch-utils.c (legacy_convert_register_p): Always return 0.
	(legacy_register_to_value, legacy_value_to_register): Always call
	internal_error.

	* infptrace.c (child_xfer_memory) [CLEAR_INSN_CACHE]: Delete
	#ifdef CLEAR_INSN_CACHE code.
	* target.c (generic_mourn_inferior) [CLEAR_DEFERRED_STORES]:
	Delete #ifdef CLEAR_DEFERRED_STORES code.

	* solib-svr4.c [HANDLE_SVR4_EXEC_EMULATORS]: Delete #ifdef code.

	* config/ia64/tm-linux.h (TARGET_ELF64): Delete macro, Update
	copyright.
	* config/ia64/tm-aix.h (TARGET_ELF64): Ditto.

	* config/mips/mipsv4.mh: Delete file.

	* config/pa/tm-hppa64.h (HPREAD_ADJUST_STACK_ADDRESS): Delete
	unreferenced macro.
	(hpread_adjust_stack_address): Delete declaration.

2004-06-08  Andrew Cagney  <cagney@gnu.org>

	* infptrace.c [ATTACH_DETACH]: Remove #ifdef wrappers.
	(attach, detach): When neither PT_ATTACH / PT_DETACH nor
	PTRACE_ATTACH / PTRACE_DETACH available call error.
	(PT_ATTACH, PT_DETACH): Move definition to attach / detach.
	* infttrace.c (update_thread_state_after_attach, attach, detach):
	Remove #ifdef wrappers.
	* inftarg.c (child_attach, child_detach): Remove #ifdef wrappers.
	* gnu-nat.c [ATTACH_DETACH]: Remove #ifdef wrappers.
	* config/nm-bsd.h (ATTACH_DETACH): Delete.
	* config/nm-sysv4.h (ATTACH_DETACH): Delete.
	* config/nm-nbsd.h (ATTACH_DETACH): Delete.
	* config/nm-linux.h (ATTACH_DETACH): Delete.
	* config/rs6000/nm-rs6000.h (ATTACH_DETACH): Delete.
	* config/pa/nm-hppah.h (ATTACH_DETACH): Delete.
	* config/i386/nm-i386sco5.h (ATTACH_DETACH): Delete.
	* config/i386/nm-i386sco4.h (ATTACH_DETACH): Delete.
	* config/i386/nm-i386gnu.h (ATTACH_DETACH): Delete.

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

	* configure.in: Set $configdir to the right OS specific value.
	Use value when setting $tcldir and $tkdir.
	* configure: Regenerate.

2004-06-06  Paul Brook  <paul@codesourcery.com>

	* gdb/dwarf2-frame.c (decode_frame_entry_1): Decode version 3 CIE
	records.

2004-06-08  Paul N. Hilfinger  <Hilfinger@gnat.com>

	* ada-lang.c (lookup_symbol_in_language): New function to allow
	re-use of another language's symbol lookup code.  (Placed here
	temporarily while Ada support is being integrated into the public
	tree).  
	(restore_language): New auxiliary function for 
	lookup_symbol_in_language.
	* ada-lang.h (lookup_symbol_in_language): Declare (Placed here
	temporarily while Ada support is being integrated into the public
	tree).
	
2004-06-08  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (check//%): New.

	* mn10300-tdep.c (mn10300_extract_return_value): Rewrite.
	(mn10300_store_return_value): Rewrite.
	(mn10300_type_align): New.
	(mn10300_use_struct_convention): Rewrite.
	(mn10300_return_value): New, using all of the above.
	(mn10300_pop_frame_regular): Add saved_regs_size.
	(mn10300_gdbarch_init): Remove deprecated rewritten entry points.

	* mn10300-tdep.c (mn10300_analyze_prologue): Don't compute saved
	regs if PC is on movm.

2004-06-07  Jim Blandy  <jimb@redhat.com>

	Add native Linux support for the PowerPC E500.
	* ppc-tdep.h (struct gdbarch_tdep): New member: 'ppc_gprs_pseudo_p'.
	* rs6000-tdep.c (rs6000_gdbarch_init): Initialize it to false on
	all architectures except the E500.
	* ppc-linux-nat.c: (PTRACE_GETEVRREGS, PTRACE_SETEVRREGS): New
	#definitions.
	(struct gdb_evrregset_t): New type.
	(have_ptrace_getsetevrregs): New variable.
	(get_spe_registers, read_spliced_spe_reg, fetch_spe_register, 
	fetch_spe_registers): New functions.
	(fetch_register): Call fetch_spe_register as appropriate.
	Assert that we're only passed raw register numbers.
	(fetch_ppc_registers): Call fetch_spe_registers as appropriate.
	Don't fetch gprs if they're pseudoregisters.
	(set_spe_registers, write_spliced_spe_reg, store_spe_register,
	store_spe_registers): New functions.
	(store_register): Call store_spe_register as appropriate.
	Assert that we're only passed raw register numbers.
	(store_ppc_registers): Call store_spe_registers as appropriate.
	Don't store gprs if they're pseudoregisters.
	
2004-06-07  Jeff Johnston  <jjohnstn@redhat.com>

	* thread-db.c (thread_get_info_callback): Fill in the thread_info
	struct if one exists, even if we are dealing with a zombie thread.

2004-06-07  Andrew Cagney  <cagney@gnu.org>

	* target.h (PC_REQUIRES_RUN_BEFORE_USE): Delete definition.
	* config/pa/tm-hppa.h (DEPRECATED_PC_REQUIRES_RUN_BEFORE_USE):
	Rename PC_REQUIRES_RUN_BEFORE_USE.
	* breakpoint.c (breakpoint_sals_to_pc): Update.  Wrap reference in
	#ifdef.

2004-06-07  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_cache): Handle the cases when we start
	unwinding after sp has been saved to the stack but before the end
	of the prologue, and after the fp has been modified but before it has
	been saved to the stack.
	(hppa_frame_base_address, hppa_frame_base, hppa_frame_base_sniffer): 
	Remove superfluous definitions.
	(hppa_gdbarch_init): Remove superfluous frame base sniffer.

2004-06-07  Guy Martin  <gmsoft@gentoo.org>

	Committed by Randolph Chung.
	* hppa-linux-nat.c: Include the correct version of the header file
	depending on the kernel version.

2004-06-06  Randolph Chung  <tausq@debian.org>

	* infrun.c (trap_expected_after_continue): Remove HP_OS_BUG workaround.
	(proceed, init_wait_for_inferior, handle_inferior_event): Likewise.

2004-06-06  Randolph Chung  <tausq@debian.org>

	* hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline) 
	(hppa_hpux_skip_trampoline_code): Don't cache symbol values.
	* hppa-linux-tdep.c (hppa_linux_in_dyncall): Likewise.
	* hppa-tdep.c (hppa_symbol_address): New function definition.
	* hppa-tdep.h (hppa_symbol_address): New function declaration.

2004-06-06  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.h (struct value): Forward declaration.
	(gdbarch_tdep): Define tdep find_global_pointer method.
	* hppa-tdep.c (hppa32_push_dummy_call): Find the global pointer
	associated with the function we are trying to call, and write it
	to the gp register.
	(hppa32_convert_from_funct_ptr_addr): New function.
	(hppa_find_global_pointer): New function.
	(hppa_gdbarch_init): Set default find_global_pointer method; set
	convert_from_func_ptr_addr method.
	* hppa-linux-tdep.c (hppa_linux_find_global_pointer): New function.
	(hppa_linux_init_abi): Set find_global_pointer method.
	* Makefile.in (hppa-linux-tdep.o): Add value.h dependency.

2004-06-06  Randolph Chung  <tausq@debian.org>

	* gdbarch.sh (PUSH_DUMMY_CALL): Change CORE_ADDR func_addr argument
	to struct value *function.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Likewise.
	* infcall.c (call_function_by_hand): Pass entire function value
	to push_dummy_call.

	* Makefile.in (alpha-tdep.o, frv-tdep.o, ia64-tdep.o, mips-tdep.o)
	(ppc-sysv-tdep.o, rs6000-tdep.o): Update dependencies.
	* alpha-tdep.c (alpha_push_dummy_call): Update call signature.
	* amd64-tdep.c (amd64_push_dummy_call): Likewise.
	* arm-tdep.c (arm_push_dummy_call): Likewise.
	* avr-tdep.c (avr_push_dummy_call): Likewise.
	* cris-tdep.c (cris_push_dummy_call): Likewise.
	* d10v-tdep.c (d10v_push_dummy_call): Likewise.
	* frv-tdep.c (frv_push_dummy_call): Likewise.
	* h8300-tdep.c (h8300_push_dummy_call): Likewise.
	* hppa-tdep.c (hppa32_push_dummy_call)
	(hppa64_push_dummy_call): Likewise.
	* i386-tdep.c (i386_push_dummy_call): Likewise.
	* ia64-tdep.c (ia64_push_dummy_call): Likewise.
	* m32r-tdep.c (m32r_push_dummy_call): Likewise.
	* m68hc11-tdep.c (m68hc11_push_dummy_call): Likewise.
	* m68k-tdep.c (m68k_push_dummy_call): Likewise.
	* m88k-tdep.c (m88k_push_dummy_call): Likewise.
	* mips-tdep.c (mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call)
	(mips_o32_push_dummy_call, mips_o64_push_dummy_call): Likewise.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call)
	(ppc64_sysv_abi_push_dummy_call): Likewise.
	* ppc-tdep.h (ppc_sysv_abi_push_dummy_call)
	(ppc64_sysv_abi_push_dummy_call): Likewise.
	* rs6000-tdep.c (rs6000_push_dummy_call): Likewise.
	* s390-tdep.c (s390_push_dummy_call): Likewise.
	* sh-tdep.c (sh_push_dummy_call_fpu)
	(sh_push_dummy_call_nofpu): Likewise.
	* sparc-tdep.c (sparc32_push_dummy_call): Likewise.
	* sparc64-tdep.c (sparc64_push_dummy_call): Likewise.
	* vax-tdep.c (vax_push_dummy_call): Likewise.

2004-06-04  Jim Blandy  <jimb@redhat.com>

	* ppc-linux-nat.c (fetch_register): Don't forget to pass the
	gdbarch argument to register_size.

	* rs6000-tdep.c (rs6000_store_return_value): Use
	regcache_cooked_write_part instead of
	deprecated_write_register_bytes.
	(rs6000_gdbarch_init): Register it for gdbarch_store_return_value,
	not gdbarch_deprecated_store_return_value.

	* ppc-linux-nat.c (store_register, fetch_register): Remove
	incorrect assertions.  Simplify and generalize handling of
	transfers whose sizes are not multiples of, or less than, sizeof
	(PTRACE_XFER_TYPE).

2004-06-04  Jeff Johnston  <jjohnstn@redhat.com>

	* infrun.c (handle_inferior_event): Don't treat an invalid ptid
	as a new thread event.
	* thread-db.c (thread_get_info_callback): If the thread is a
	zombie, return TD_THR_ZOMBIE.
	(thread_from_lwp): If thread_get_info_callback returns
	TD_THR_ZOMBIE, check if the thread is still on the thread list
	and return a -1 ptid if not found.
	(thread_db_wait): If thread_from_lwp returns a -1 ptid, then
	change the status to TARGET_WAITKIND_SPURIOUS.

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

	* sh-tdep.c (sh3e_sh4_store_return_value): Correctly store
	double values in little endian mode.

2004-06-02  Albert Chin-A-Young  <china@thewrittenword.com>

	Committed by Andrew Cagney.
	* gdb/dictionary.c, gdb/gdbtypes.h: Remove trailing comma
	after last enum constant to avoid error from IBM C
	compiler.

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

	* ppc-linux-nat.c (store_register, fetch_register): Rename 'mess'
	to 'message', and make it local to the lone block that uses it.

	* ppc-linux-nat.c (store_register): Remove unused local 'offset'.

2004-06-02  Paul N. Hilfinger  <hilfinger@gnat.com>

	* ada-exp.y: Update copyright notice.
	Include block.h.
	
	Replace REGNAME, LAST, INTERNAL_VARIABLE with
	SPECIAL_VARIABLE and unify the treatment of these cases.

	(write_attribute_call0): Remove.
	(write_attribute_call1): Remove.
	(write_attribute_calln): Remove.
	(save_qualifier): Add missing semicolon.

	(simple_exp,exp): Decomment (i.e., reactivate) code that was 
	temporarily disabled to allow compilation with FSF head version.

	(simple_exp syntax): Remove use of OP_ADA_ATTRIBUTE and 
	use individual operators (OP_*) for all attributes.
	(exp syntax): Use write_int.
	Handle STRING literals with OP_STRING.
	(variable syntax): Add limit parameter to calls to 
	write_object_renaming.  

	(temp_parse_space): New definition to hold entities that need
	only live until the next call to ada_parse.
	(string_to_operator): Rename fields of ada_opname_table entries.

	(write_var_from_sym): Record block.
	(write_var_from_name): Minor reformatting.
	Make sure saved name is properly encoded in the case of multiple 
	matches, and set its language to Ada.
	Update comment.
	Modify to indicate unresolved name as symbol in the UNRESOLVED 
	namespace, allocated in temp_parse_space.
	(write_int): New function.

	(write_object_renaming): Add max_depth parameter to limit
	chains of object renamings.
	Handle case where root of renaming expression is itself a renaming.
	Use temp_parse_space for temporary name buffer.
	Handle renamings to dereferenced pointers (___XEXA suffices).
	
	(ada_parse, yyerror, string_to_operator, 
	write_var_from_sym, write_var_from_name, write_attribute_call0, 
	write_attribute_call1, write_attribute_calln, 
	write_object_renaming): Protoize.

	(_initialize_ada_exp): New function.
	
	* ada-lang.c: Update copyright notice.
	General terminology change to conform to GNAT compiler usage:
	mangle => encode, demangle => decode
	Include gdb_obstack.h.
	Include gdb_regex.h
	Include frame.h
	Include hashtab.h
	Include completer.h
	Include gdb_stat.h
	Include block.h
	Include infcall.h
	
	(ADA_RETAIN_DOTS): Make sure this is defined.
	(TRUNCATION_TOWARDS_ZERO): Define.
	(struct string_vector): Define.
	(unresolved_names): Remove definition.
	(xnew_string_vector): New function.
	(string_vector_append): New function.
	(extract_string): Make static.
	(ada_unqualified_name): New function.
	(add_angle_brackets): New function.
	(function_name_from_pc): New function.
	(place_on_stack): Rename to ensure_lval.

	(ensure_lval): Renamed from place_on_stack.
	Make identity on lvals.
	Update comment.
	(is_nonfunction): New interface.
	Only symbols in LOC_CONST class can be enumerals.
	(fill_in_ada_prototype): Remove; now independent of language.
	(add_defn_to_vec): Add obstack and symtab arguments.
	Use obstack to hold collected definitions.
	(num_defns_collected): New function.
	(defns_collected): New function.
	(ada_resolve_subexp): Rename to resolve_subexp.
	(resolve_subexp): Renamed from ada_resolve_subexp.
	(ada_op_name): Return non-const result.
	(ada_decoded_op_name): Renamed from ada_op_name, now used for
	other purposes.

	(to_fixed_array_type): Add declaration.
	(coerce_unspec_val_to_type): Remove offset parameter.
	(find_sal_from_funcs_and_line): New interface.
	(find_line_in_linetable): Ditto.

	(all_sals_for_line): Rename to ada_sals_for_line and make
	global.
	Add new parameter. When set, do not ask the user to choose the 
	instance, but use the first one	found instead.
	Use given line number in returned sals.
	Fix comment. 
	Skip the prologue if funfirstline is set.
	Correct for memory leak when 0 lines found.

	(value_pos_atr): Use pos_atr.
	(pos_atr): New function.
	(standard_lookup): Add block parameter.

	(makeTimeStart): Remove declaration and uses.
	(makeTimeStop): Remove declaration and uses.

	(ada_completer_word_break_characters): Allow for VMS.
	(ADA_MAIN_PROGRAM_SYMBOL_NAME): Make into constant.
	(raise_sym_name): New constant.
	(raise_unhandled_sym_name): New constant.
	(raise_assert_sym_name): New constant.
	(process_raise_exception_name): New constant.
	(longest_exception_template): New constant.
	(warning_limit): New variable to limit warnings during expression
	evaluation.
	(warnings_issued): New variable to keep track of warnings issued.
	(known_runtime_file_name_patterns): New constant.
	(known_auxiliary_function_name_patterns): New constant.
	(symbol_list_obstack): New variable.
	
	(field_name_match,is_suffix,is_suppressed_name,ada_encode,
	ada_decode,ada_match_name,encoded_ordered_before,equiv_types,
	lesseq_defined_than,is_nondebugging_type,is_name_suffix,wild_match,
	find_sal_from_funcs_and_line, ada_breakpoint_rewrite, 
	ada_is_tagged_type, ada_is_parent_field, ada_is_wrapper_field, 
	ada_variant_discrim_name, field_alignment, dynamic_template_type,
	ada_is_character_type, ada_is_aligner_type, ada_is_vax_floating_type): 
	Replace use of deprecated STREQ and STREQN macros by calls to strncmp 
	and strcmp. 

	(ada_get_field_index): New function.
	(lim_warning): New function.
	(ada_translate_error_message): New function.
	(MAX_OF_SIZE): New function.
	(MIN_OF_SIZE): New function.
	(UMAX_OF_SIZE): New function.
	(UMIN_OF_SIZE): New function.
	(discrete_type_high_bound): New function.
	(discrete_type_low_bound): New function.
	(base_type): New function.
	(do_command): Remove.
	
	(ada_update_initial_language): Use language_ada, not language_unknown.
	(ada_encode): Renamed from ada_mangle.
	Obey ADA_RETAIN_DOTS.
	(ada_decode): Renamed from ada_demangle.
	Update coding conventions.
	(decoded_names_store): New hash table.
	(ada_decode_symbol): New function.
	(ada_la_decode): New function.
	
	(modify_general_field):	Correct computations of offset and bit 
	position.
	(desc_base_type): Handle ref types, too.
	(ada_is_direct_array_type): New function.

	(ada_is_simple_array): Rename to ada_is_simple_array_type.
	(ada_is_array_descriptor): Rename to ada_is_array_descriptor_type.
	(ada_is_bogus_array_descriptor,ada_type_of_array,
	ada_coerce_to_simple_array_ptr,ada_coerce_to_simple_array,
	ada_type_match,convert_actual,ada_evaluate_subexp): Use renamed 
	ada_is_array_descriptor_type.
	
	(ada_coerce_to_simple_array_type): Fix incorrect value freeing.
	(ada_is_packed_array_type): Handle pointers or 
	references to packed arrays as well.
	(packed_array_type): Uncomment use of TYPE_FLAG_FIXED_INSTANCE.
	(decode_packed_array_type): Search for the packed array type 
	symbol in the currently selected block and associated 
	superblocks too.
	Use lookup_symbol again.

	(decode_packed_array): Handle pointers and references.
	Update call to coerce_unspec_val_to_type.
	(decode_packed_array_type,value_subscript_packed): Limit warnings.
	(ada_value_primitive_packed_val): Improve comment.
	
	(ada_index_type): Substitute int type for "undefined".
	(ada_index_type,ada_array_bound_from_type,ada_array_bound,
	ada_array_langth, ada_is_string_type): Use renamed 
	ada_is_simple_array_type.
	(empty_array): New function.

	(ada_resolve):	Rename to resolve.
	(resolve): Make static.
	Call renamed resolve_subexp.
	Update comment.
	(ada_resolve_subexp): Rename to resolve_subexp.
	(resolve_subexp): Update comment.
	Decomment disabled code.
	Add LOC_COMPUTED* cases.
	Modify to use temporary	struct symbols (marked as being in 
	UNDEF_NAMESPACE) to indicate unresolved names, instead of 
	OP_UNRESOLVED_VALUE.
	Remove OP_ATTRIBUTE; use individual opcodes for attributes.	
	Add OP_STRING case.
	Remove OP_ARRAY.
	Use SYMBOL_PRINT_NAME instead of ada_demangle.
	Use new ada_lookup_symbol_list interface.
	Use new ada_resolve_function interface.
	Remove OP_TYPE case.

	(ada_args_match): Idiot proof against null actuals.
	Use intermediate variables to clarify.
	(ada_resolve_function): Update comment and interface.
	(mangled_ordered_before): Rename to encoded_ordered_before and
	update comment.
	(sort_choices): Update comment and interface.
	Use SYMBOL_LINKAGE_NAME in place of SYMBOL_NAME.
	(user_select_syms): New interface.
	Use new sort_choices interface.
	Use SYMBOL_PRINT_NAME rather than SYMBOL_SOURCE_NAME.
	(possible_user_operator_p): Idiot-proof against null values.
	(ada_simple_renamed_entity): Don't make cleanup; rely on 
	caller to free result string.
	Remove const from return type.
	(make_array_descriptor): Rename uses of place_on_stack to 
	ensure_lval.
	Make sure that arrays are on stack.
	
	(HASH_SIZE): Define.
	(struct cache_entry): Define.
	(cache_space): Define.
	(cache): Define.
	(clear_ada_sym_cache): New function.
	(find_entry): New function.
	(lookup_cached_symbol): New function.
	(defn_vector_size): Define.
	(cache_symbol): New function.
	(defn_symbols): Remove.
	
	(standard_lookup): Use lookup_symbol_in_language to get effect of
	C lookup.
	Cache results.
	
	(symbol_completion_match): New function.
	(symbol_completion_add): New function.
	(ada_make_symbol_completion_list): New function.

	(ada_lookup_partial_symbol,ada_lookup_simple_minsym, 
	add_symbols_from_enclosing_procs,remove_extra_symbols): Replace 
	DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME. 
	(symtab_for_sym): Handle LOC_COMPUTED, LOC_COMPUTED_ARG.
	
	(ada_lookup_simple_minsym): New function.
	(ada_lookup_minimal_symbol): Use ada_lookup_simple_minsym.

	(add_symbols_from_enclosing_procs): New interface.
	Conditionalize more helpfully.
	Don't bother if program isn't running.
	Use new interface to get_frame_block.
	Limit number of levels searched	with MAX_LEXICAL_LEVELS, just in case.
	
	(remove_extra_symbols): New interface.
	(xget_renaming_scope): New function.
	(is_package_name): New function.
	(renaming_is_visible): New function.
	(remove_out_of_scope_renamings): New function.

	(ada_lookup_symbol_list): New interface.
	Properly reinitialize the symbol list obstack.
	Don't call add_symbols_from_enclosing_procs if we start from a
	static or global block.
	Use new interfaces to ada_add_block_symbols, add_defn_to_vec, 
	add_symbols_from_enclosing_procs.
	Add symtab data to cached entries.
	Handle symbols prefixed with
	"standard__" specially; strip prefix and don't look in local symbols.
	Do not include out of scope renaming symbols in list of 
	symbols returned.
	Add const to block parameter.
	Move check for non-local, non-global symbols earlier.  
	Remove timing stuff.
	(ada_lookup_symbol): New interface.
	Find symtab as well.
	(ada_lookup_symbol_nonlocal): New function.

	(is_name_suffix): Enhance suffix detection to recognize
	an optional "__[:digit:]+" before any "\.[:digit:]+" suffix.
	(is_dot_digits_suffix): New function.
	(wild_match): Ignore ".[:digit:]*" suffixes during matches.
	
	(ada_add_block_symbols): New interface.  Use obstack to return results
	in a vector of struct ada_symbol_infos.  Add symtab argument.
	Use new interface to add_defn_to_vec.
	Remove calls to fill_in_ada_prototype.
	Use BLOCK_BUCKETS, BLOCK_BUCKET.
	
	(ada_finish_decode_line_1): Add const qualification to local to fix
	warning.
	Start looking in static block for functions to avoid attempts 
	to search frame chain for up-level variables.
	Adapt to new ada_sals_for_line interface.
	Use new interfaces to ada_lookup_symbol_list and user_select_syms.
	Handle quoting of the function name inside the spec string.
	Skip prologue when funfirstline is set and update the 
	function documentation to that effect.

	(debug_print_lines, debug_print_block, debug_print_blocks, 
	debug_print_symtab): Remove.

	(ada_main_name): New function.	
	(ada_exception_breakpoint_type): New function.
	(is_known_support_routine): New function.
	(ada_find_printable_frame): Renamed from find_printable_frame and made
	global.
	Remove level parameter.
	Use new interface to select_frame.

	(begin_command): Remove.
	(ada_adjust_exception_stop): New function.
	(ada_print_exception_stop): New function.
	(exception_name_from_cond): New function.
	(ada_report_exception_break): Replace disabled code with 
	conditionalization on GNAT_GDB.
	Get the exception name from the condition string.
	Remove and move functionality into new functions 
	ada_print_exception_breakpoint_task and 
	ada_print_exception_breakpoint_nontask.
	(error_breakpoint_runtime_sym_not_found): New function.
	(is_runtime_sym_defined): New function.
	(ada_breakpoint_rewrite): Uncomment suppressed code.
	Use symbolic error-message and runtime-symbol names.
	Surround runtime symbol names in quotes.
	Allow non-specific breakpoints on exceptions and assertions before
	program starts.
	
	(ada_is_tagged_type): Add parameter.
	(ada_is_tag_type): New function.
	(ada_tag_type): Use new ada_lookup_struct_elt_type interface.
	(ada_variant_discrim_type): Ditto.
	(value_tag_from_contents_and_address): New function.
	(type_from_tag): New function.
	(struct tag_args): New structure used to communicate with
	ada_tag_name_1.
	(ada_tag_name_1): New function.
	(ada_tag_name): New function.

	(ada_scan_number): Update comment.
	(find_struct_field): New function.
	(ada_search_struct_field): Make static.
	(ada_value_struct_elt): New version that returns references when
	given pointers or references to structs.
	(ada_lookup_struct_elt_type): Add 'refok' parameter.
	(ada_which_variant_applies): Use new ada_lookup_struct_elt_type
	interface.
	(ada_value_ind): Use new ada_to_fixed_value interface.
	(ada_coerce_ref): Ditto.
	(field_offset): Remove.

	(ada_find_any_symbol): New function, extracted from ada_find_any_type.
	(ada_find_renaming_symbol): New function.
	(ada_prefer_type): Prefer named types over unnamed ones.
	(variant_field_index): New function.
	(contains_variant_part): Removed: subsumed by variant_field_index.
	(ada_template_to_fixed_record_type): New function, mostly from
	template_to_fixed_record_type.
	(template_to_fixed_record_type): 
	Do not scan the type fields beyond the last one; prevents a 
	potential SEGV.
	Handle case where variant field is listed BEFORE discriminant it 
	depends on.
	Fix calculation of record length when bit length is 
	not evenly divisible by char length.
	Move code to ada_template_to_fixed_record_type and call it.

	(template_to_static_fixed_type): Revise comment.  
	Modify to work on ordinary record types as well as templates, 
	so as to handle	fields that use ___XVE or ___XVU encodings. 
	(to_record_with_fixed_variant_part): Fill out comment.
	Initialize C++ stuff in right type.
	Allow case where DVAL is null.
	Handle case where variant field is not last.
	Fix typo concerning record length.
	(to_fixed_record_type): Decomment disabled code.
	(to_fixed_record_type): Use variant_field_index instead of 
	contains_variant_part.
	(to_fixed_variant_branch_type): Ditto.
	(to_fixed_array_type): Decomment disabled code.
	(ada_to_fixed_type): Convert tagged types to the specific type.
	Deactivate the size-check for array types in order to avoid 
	some false size alarms.
	(to_static_fixed_type): Decomment disabled code.
	Modify to call template_to_static_fixed_type
	on ordinary structs, not just ___XVE- and ___XVU-encoded fields.
	(ada_to_fixed_value_create): Renamed version of old ada_to_fixed_value.
	Remove valaddr argument, as it is never really used.
	(ada_to_fixed_value): Change interface to act on single struct value*
	operand.
	(adjust_pc_past_prologue): New function.
	(ada_attribute_name): Modify to take enum exp_opcode argument.
		
	(ada_enum_name): Recognize new homonym-distinguishing convention.
	Adjust local variable's type to	remove compiler warning.
	Fix a small problem in the part	that unqualifies the enumeration name.
	(ada_value_binop): New function.
	(ada_value_equal): New function.

	(ada_evaluate_subexp): Use new ada_lookup_struct_elt_type interface.
	Don't give error message when not doing	normal evaluation 
	and a tagged type doesn't seem to contain a structure member.
	Give error message for packed arrays.
	For indexing arrays, handle pointers to	packed arrays correctly.
	Handle case of 'first and 'last attributes of bare integral type 
	without encoded subtype info.  
	Remove some unnecessary casts.
	Fix uninitialized value of type in computing 'first, 'last, or 'length
	of array object.  
	Add BINOP_EQUAL and BINOP_NOTEQUAL cases.
	Remove binop_user_defined_p tests and value_x_binop and value_x_unop
	calls.
	Attributes are now exp_opcode values.
	Correct treatment of 'modulus.
	Better error message for taking 'length of wrong kind of type; 
	improve comment.
	Change EVAL_NORMAL to noside for consistency.
	Use ada_value_binop for DIV, MOD, REM.
	Make special case out of array of length 0, since an argument 
	of 0 upsets some platforms' malloc.
	Use OP_STRING instead of OP_ARRAY.
	For slice, add check that we have an array type before extracting 
	a slice out of it.  Avoids a SEGV.
	When evaluating an array slice,	if the array type is a reference to 
	an aligner type, then replace the aligner type by the actual type.
	Decomment disabled code.
	Remove some dead code.
	Use temporary struct symbols (marked as being in UNDEF_NAMESPACE) 
	to indicate unresolved names, instead of OP_UNRESOLVED_VALUE.
	Rename BINOP_MBR to BINOP_IN_BOUNDS, TERNOP_MBR to TERNOP_IN_RANGE, 
	and UNOP_MBR to UNOP_IN_RANGE.
	If an array type has a parallel	___XVE type, then use it.
	Turn arrays into pointers for lvalue arrays.
	Change TERNOP_SLICE code to work even when bounds are unknown, ignoring
	bounds error and handle 0-length slices.
	Use lim_warning.
	When selecting fields, apply ada_to_fixed_value	(because the fields 
	might have ___XVU or ___XVE encodings even if not dynamic.)
	Use ada_to_fixed_value_create and new ada_to_fixed_value interface.
	(ada_is_system_address_type): New function.

	(get_var_value): Use new interface to ada_lookup_symbol_list.
	(get_int_var_value): New interface.
	(to_fixed_range_type): Allow unknown bound, with warning.
	(ada_is_modular_type): Decomment disabled code.
	(ADA_OPERATORS): New definition.
	(ada_operator_length): New function.
	(ada_expr_op_name): New function.
	(ada_forward_operator_length): New function.
	(ada_dump_subexp_body): New function.
	(ada_print_subexp): New function.
	(ada_exp_descriptor): New constant.
	(ada_op_print_tab): Add 'size.  Remove FIXMEs.
	(ada_language_defn): Add ada_exp_descriptor entry.
	Change ada_parse => parse.
	Add post-parser entry.
	Use ada-specific non-local symbol lookup.
	Don't use C-style arrays. 
	String lower-bound is 1.
	Decomment disabled code.	
	(parse): New function.
	New fields ada_translate_error_message, ada_lookup_symbol, 
	ada_lookup_minimal_symbol.
	
	* ada-lang.h: Update copyright dates.
	Replace the mangle/demangle terminology throughout by the
	more appropriate encode/decode one. 
	Include breakpoint.h.
	Forward declare struct partial_symbol, struct block.
	(ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Define.
	(EXTRACT_ADDRESS): Remove.
	(EXTRACT_INT): Remove.
	(ADA_KNOWN_AUXILIARY_FUNCTION_NAME_PATTERNS): Define.
	(MAX_ENCLOSING_FRAME_LEVELS): Define.
	(MAX_RENAMING_CHAIN_LENGTH): Define.
	(struct ada_opname_map): mangled => decoded, demangled=>encoded.

	(enum task_states): Remove.
	ada_task_states: Remove.
	(fat_string): Remove.
	(struct entry_call): Remove.
	(struct task_fields): Remove.
	(struct task_entry): Remove.

	(struct ada_symbol_info): Define.
	(enum ada_attribute): Remove.
	(enum ada_operator): Define.
	
	(ada_get_field_index): Declare.
	(ada_coerce_to_simple_array): Rename to ada_coerce_to_simple_array_ptr.
	(ada_is_simple_array): Rename to ada_is_simple_array_type.
	(ada_is_array_descriptor): Rename to ada_is_array_descriptor_type.
	(ada_lookup_symbol_list): New interface.
	(ada_decode_symbol): Declare.
	(ada_decode): Declare.
	(ada_lookup_symbol): New interface.
	(ada_update_initial_language): Declare.
	(ada_lookup_simple_minsym): Declare.
	(user_select_syms): New interface.
	(ada_sals_for_line): Declare.
	(ada_is_tagged_type): New interface.
	(ada_tag_name): Declare.
	(ada_lookup_struct_elt_type): Remove declaration.
	(ada_search_struct_field): Remove declaration.
	(ada_attribute_name): New interface.
	(ada_is_system_address_type): Declare.
	(ada_to_fixed_value): Remove declaration.
	(ada_template_to_fixed_record_type_1): Declare.
	(get_int_var_value): New interface.
	(ada_find_any_symbol): Declare.
	(ada_find_renaming_symbol): Declare.
	(ada_mangle): Rename to ada_encode.
	(ada_simple_renamed_entity): Remove const.
	(ada_main_name): Declare.
	(get_current_task): Rename to ada_get_current_task.
	(get_entry_number): Remove declaration.
	(ada_report_exception_break): Remove declaration.
	(ada_print_exception_breakpoint_nontask): Declare.
	(ada_print_exception_breakpoint_task): Declare.
	(ada_find_printable_frame): Declare.

	* ada-lex.l: Update copyright notices.
	Use xmalloc and xfree instead of malloc and free.
	Use new interface to name_lookup.
	Use new interface to 
	ada_mangle=>ada_encode.
	Redo handling of '$...' variable to parallel current treatment 
	in c-exp.y.  
        (resize_tempbuf, canonicalizeNumeral, is_digit_in_base,
	digit_to_int, strtoulst, processInt, processReal, processId, 
	block_lookup, name_lookup, find_dot_all, subseqMatch, processAttribute,
	yywrap): Protoize.
	
	(processInt): Use cast to remove harmless warning.
	(processReal): Modify to get rid of compiler warning on scan formats.

	(processId): Replace xmalloc with obstack_alloc for name and remove
	call to ada_name_string_cleanup.
	Remove obsolete disabled code.
	(name_lookup): Ditto. 
	New interface.
	Use obsavestring on temp_parse_space instead of savestring 
	on name, and remove call to ada_name_string_cleanup.  
	Free string returned from ada_simple_renamed_entity.
	Use new interface to ada_lookup_symbol_list.
	Decomment disabled code.
	Treat LOC_COMPUTED and LOC_COMPUTED_ARG	symbols as variables, 
	not types.
	When a type name lookup succeeds as a result of 
	lookup_primitive_typename, check for regular type entry that has not 
	yet been read in.
	Limit length of chain of renamed symbols we are willing to follow.  
	Do not break names beginning with "standard__" into segments.  
	(block_lookup): Use new interface to ada_lookup_symbol_list.
	
	* ada-typeprint.c: Update copyright notice.
	(demangled_type_name): Rename to decoded_type_name.
	(ada_typedef_print): Use SYMBOL_PRINT_NAME.
	(print_range_bound):  Correct handling of negative
	bounds that make the index type looked unsigned under STABS.  
	(print_dynamic_range_bound): Use new interface to get_int_var_value.
	(print_range_type_named):  Use the builtin int type if no type 
	corresponding to the given type name could be found.
	(print_array_type): ada_is_simple_array => ada_is_simple_array_type.
	Add some bullet-proofing.
	(print_variant_clauses): Allow for variant branches with ___XVU 
	encodings that are not dynamic fields.  
	Use new interface to ada_is_tagged_type.
	(print_record_type): Allow for fields with ___XVE encodings that 
	are not dynamic fields. 
	Use new interface to ada_is_tagged_type.
	(ada_print_type): ada_is_array_descriptor => 
	ada_is_array_descriptor_type.

	* ada-valprint.c: Update copyright notice.
	Include gdb_string.h
	Include infcall.h
	(ui_memcpy): New function.
	(ada_print_floating): New function.
	(ada_print_str): Order arguments correctly.
	Correct handling of empty arrays and arrays of 0-length items. 
	ada_is_array_descriptor => ada_is_array_descriptor_type 
	Print values of type System.Address in hexadecimal format.
	Use ada_print_floating to print floating-point numbers in Ada format.
	Print class tag values with type names.  
	No longer print the address of reference values. Avoids 
	a potential confusion.	
	(ada_value_print): Stop printing the object type for reference
	values, but preserve that behavior for access types. Avoids
	a potential confusion.
	Simplify one conditional expression, as the first part is now
	necessarily true.
	ada_is_array_descriptor => ada_is_array_descriptor_type 
	Add check for arrays for null records, and print them by hand.
	
2004-06-01  Jim Blandy  <jimb@redhat.com>

	* ppc-tdep.h: Delete unused 'regoff' member.
	* rs6000-tdep.c (rs6000_gdbarch_init): Don't initialize it.

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

	Fix PR symtab/1661.
	* hpread.c (hpread_pxdb_needed): Call memset after alloca.
	(hpread_read_struct_type): Likewise.

2004-06-01  Andrew Cagney  <cagney@gnu.org>

	* mi/mi-cmd-env.c (env_execute_cli_command): Use xstrprintf
	instead of xasprintf.
	* mi/mi-main.c (mi_error_last_message, mi_cmd_exec_interrupt) 
	(mi_cmd_thread_select, mi_cmd_thread_list_ids) 
	(mi_cmd_data_list_register_names) 
	(mi_cmd_data_list_changed_registers) 
	(mi_cmd_data_list_register_values) 
	(get_register, mi_cmd_data_write_register_values) 
	(mi_cmd_data_write_register_values) 
	(mi_cmd_data_assign, mi_cmd_data_evaluate_expression) 
	(mi_cmd_target_download, mi_cmd_target_select) 
	(mi_cmd_data_read_memory, mi_cmd_data_write_memory) 
	(mi_execute_cli_command, mi_execute_async_cli_command) 
	(mi_execute_async_cli_command): Ditto.
	* mi/mi-interp.c (mi_cmd_interpreter_exec) Ditto.
	* mi/mi-cmd-var.c (mi_cmd_var_create): Ditto.

	* mi/mi-cmds.h (mi_error_last_message): Delete declaration.
	* mi/mi-interp.c (mi_cmd_interpreter_exec): Call
	error_last_message instead of mi_error_last_message.
	* mi/mi-main.c (mi_error_last_message): Delete function.

	* mi/mi-main.c (mi_cmd_data_read_memory): Add missing return for
	"invalid number of columns" error.  Delete redundant "out of
	memory" check.

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

	* i386bsd-nat.c: Don't include <sys/procfs.h>.
	(gregset_t, fpregset_t): Remove typedefs.
	(CANNOT_FETCH_REGISTER, CANNOT_STORE_REGISTER): Remove macros.
	(REG_OFFSET): Rename argument.
	(i386bsd_r_reg_offset): Rename from reg_offset.
	(REG_ADDR): Remove macro.
	(cannot_fetch_register, supply_gregset, fill_gregset): Remove
	functions.
	(i386bsd_supply_gregset, i386bsd_collect_gregset): New functions.
	(fetch_inferior_registers): Use `struct reg' and `struct fpreg'
	instead of gregset_t and fpregset_t.  Use i386bsd_supply_gregset
	instead of supply_gregset.
	(store_inferior_registers): Use `struct reg' and `struct fpreg'
	instead of gregset_t and fpregset_t.  Use i386bsd_collect_gregset
	instead of fill_gregset.
	(register_u_addr): Use i386_r_reg_offset instead of REG_ADDR.

	* i386bsd-nat.c: Don't include "gregset.h".
	(supply_gregset, fill_gregset): Make static.
	(supply_fpregset, fill_fpregset): Remove.
	* Makefile.in (i386bsd-nat.o): Update dependencies.

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

	* fbsd-proc.c: Include "regcache.h", "regset.h" and
	"gdb_assert.h".  Con't include "gregset.h".
	(fbsd_make_corefile_notes): Use regset-based core file support
	instead off fill_gregset and fill_fpregset.
	* Makefile.in (fbsd-proc.o): Update dependencies.

	* m88k-tdep.c (m88k_analyze_prologue): Fix handling of branch
	instructions.
	(m88k_frame_prev_register): Simplify code a bit.

	* amd64-tdep.c (amd64_supply_fpregset): Adjust comment.
	(amd64_collect_fpregset): New function.
	(amd64_regset_from_core_section): Use amd64_collect_fpregset.

	* hppa-tdep.h (hppa_regnum): Add HPPA_R31_REGNUM.

	* i386-tdep.c (i386_supply_gregset): Adjust comment.
	(i386_collect_gregset): New function.
	(i386_supply_fpregset): Adjust comment.
	(i386_collect_fpregset): New function.
	(i386_regset_from_core_section): Use i386_collect_gregset and
	i386_collect_fpregset.

	* hppa-tdep.c (hppa_frame_prev_register_helper): Reimplement to
	handle VALUEP being null.

	* regset.h (collect_regset_ftype): Unconstify fourth argument.

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

	* MAINTAINERS: Undelete m88k.  Add myself as maintainer.

	* amd64obsd-tdep.c (amd64obsd_sigtramp_p): Adjust for new
	assembler in OpenBSD 3.5-current.
	(amd64obsd_sigcontext_addr): Likewise.

2004-05-28  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c: Use the modern gdbarch methods for handling the
	register set, so our regcache isn't declared "legacy" and our E500
	pseudoregister read and write functions aren't ignored.
	(rs6000_register_byte, rs6000_register_raw_size,
	rs6000_register_virtual_type, rs6000_register_convertible,
	rs6000_register_convert_to_virtual,
	rs6000_register_convert_to_raw): Deleted.
	(rs6000_register_type, rs6000_convert_register_p,
	rs6000_register_to_value, rs6000_value_to_register): New
	functions.
	(rs6000_gdbarch_init): Don't register
	gdbarch_deprecated_register_size,
	gdbarch_deprecated_register_bytes,
	gdbarch_deprecated_register_byte,
	gdbarch_deprecated_register_raw_size,
	gdbarch_deprecated_register_virtual_type,
	gdbarch_deprecated_register_convertible,
	gdbarch_deprecated_register_convert_to_virtual, or
	gdbarch_deprecated_register_convert_to_raw methods.  Instead,
	register gdbarch_register_type, gdbarch_convert_register_p,
	gdbarch_register_to_value, and gdbarch_value_to_register methods.

2004-05-26  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (rs6000_dwarf2_stab_reg_to_regnum): Deleted.
        (rs6000_stab_reg_to_regnum, rs6000_dwarf2_reg_to_regnum): New
	functions, updated to match the register numberings used in GCC.
	(rs6000_gdbarch_init): Register rs6000_stab_reg_to_regnum and
	rs6000_dwarf2_reg_to_regnum as register number conversions
	functions for STABS and Dwarf2.

2004-05-26  Randolph Chung  <tausq@debian.org>

	* infttrace.h (target_waitkind): Forward declare type instead of pulling
	in header file.

2004-05-25  Joel Brobecker  <brobecker@gnat.com>

	* NEWS: Document new "start" command.

2004-05-25  Randolph Chung  <tausq@debian.org>

	* hppa-linux-tdep.c (hppa_linux_init_abi): sizeof(long double) == 8 on
	hppa-linux.

2004-05-25  Randolph Chung  <tausq@debian.org>

	* hppa-hpux-tdep.c (offsetof): Define.
	(hppa_hpux_pc_in_sigtramp, hppa32_hpux_frame_saved_pc_in_sigtramp)
	(hppa32_hpux_frame_base_before_sigtramp)
	(hppa32_hpux_frame_find_saved_regs_in_sigtramp)
	(hppa64_hpux_frame_saved_pc_in_sigtramp)
	(hppa64_hpux_frame_base_before_sigtramp)
	(hppa64_hpux_frame_find_saved_regs_in_sigtramp): Remove unused 
	functions.
	(struct hppa_hpux_sigtramp_unwind_cache, hppa_hpux_tramp_reg)
	(hppa_hpux_sigtramp_frame_unwind_cache)
	(hppa_hpux_sigtramp_frame_this_id)
	(hppa_hpux_sigtramp_frame_prev_register)
	(hppa_hpux_sigtramp_frame_unwind)
	(hppa_hpux_sigtramp_unwind_sniffer): New signal trampoline unwinder.
	(hppa_hpux_init_abi): Register sigtramp unwinder.
	* Makefile.in (hppa-hpux-tdep.o): Update dependencies.

2004-05-25  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_fallback_frame_cache): Handle stack adjustment,
	and multiple stack unwinds.
	(hppa_stub_unwind_sniffer): Handle unwind from pc == 0.

2004-05-25  Andrew Cagney  <cagney@gnu.org>

	* symfile.h (symbol_file_add_from_memory): Delete declaration.
	* symfile-mem.h: Delete file.
	* symfile-mem.c: Do not include "symfile-mem.h".
	(symbol_file_add_from_memory): Make static. Use "struct bfd" and
	"struct bfd_section".  When an error do not bother returning NULL.
	(add_symbol_file_from_memory_command): Use "struct bfd" and
	"struct bfd_section".
	* Makefile.in (symfile_mem_h): Delete.
	(symfile-mem.o): Update dependencies.

2004-05-25  Nick Roberts  <nickrob@gnu.org>

	* gdb-mi.el: New file.

2004-05-25  Andrew Cagney  <cagney@gnu.org>

	* inftarg.c: Include "observer.h".
	(child_attach, child_create_inferior): Notify inferior_created.
	* corelow.c: Include "observer.h".
	(core_open): Notify inferior_created.
	* Makefile.in (inftarg.o, corelow.o): Update dependencies.

2004-05-25  Andrew Cagney  <cagney@gnu.org>

	* target.h (struct target_ops): Add from_tty to
	to_create_inferior.
	(target_create_inferior, find_default_create_inferior): Update.
	* infcmd.c (run_command): Update.
	* wince.c (child_create_inferior): Update.
	* win32-nat.c (child_create_inferior): Update.
	* uw-thread.c (uw_thread_create_inferior): Update.
	* thread-db.c (thread_db_create_inferior): Update.
	* target.c (debug_to_create_inferior) 
	(find_default_create_inferior): Update.
	(maybe_kill_then_create_inferior): Update.
	* sol-thread.c (sol_thread_create_inferior): Update.
	* remote.c (extended_remote_async_create_inferior) 
	(extended_remote_create_inferior): Update.
	* remote-vx.c (vx_create_inferior): Update.
	* remote-st.c (st2000_create_inferior): Update.
	* remote-sim.c (gdbsim_create_inferior): Update.
	* remote-sds.c (sds_create_inferior): Update.
	* remote-rdp.c (remote_rdp_create_inferior): Update.
	* remote-rdi.c (arm_rdi_create_inferior): Update.
	* remote-m32r-sdi.c (m32r_create_inferior): Update.
	* remote-e7000.c (e7000_create_inferior): Update.
	* procfs.c (procfs_create_inferior): Update.
	* ocd.c (ocd_create_inferior): Update.
	* ocd.h (ocd_create_inferior): Update.
	* nto-procfs.c (procfs_create_inferior): Update.
	* monitor.c (monitor_create_inferior): Update.
	* lin-lwp.c (lin_lwp_create_inferior): Update.
	* inftarg.c (child_create_inferior): Update.
	* hpux-thread.c (hpux_thread_create_inferior): Update.
	* gnu-nat.c (gnu_create_inferior): Update.

2004-05-25  Andrew Cagney  <cagney@gnu.com>

	* MAINTAINERS: Update e-mail address.

2004-05-24  Randolph Chung  <tausq@debian.org>

	* thread.c (info_threads_command, thread_apply_all_command)
	(thread_apply_command, thread_command, do_captured_thread_select):
	Remove HPUXHPPA-specific code.

2004-05-24  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (SR4EXPORT_LDIL_OFFSET, SR4EXPORT_LDO_OFFSET): Remove
	unused symbols.
	* hppa-tdep.h (HPPA_INSTRUCTION_SIZE): Remove, since there are no more
	references.

2004-05-24  Joel Brobecker  <brobecker@gnat.com>

	* infcmd.c (kill_if_already_running): New function, extracted
	from run_command().
	(run_command): Replace extracted code by call to
	kill_if_already_running().
	(start_command): New function.
	(_initialize_infcmd): Add "start" command.

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

	Add OpenBSD/m88k support.
	* NEWS (New native configurations): Mention OpenBSD/m88k.
	* m88k-tdep.c, m88k-tdep.h, m88kbsd-nat.c, config/m88k/nm-obsd.h,
	config/m88k/obsd.mh, config/m88k/obsd.mt: New files.
	* Makefile.in (m88k_tdep_h): New variable.
	(ALLDEPFILES): Add m88k-tdep.c and m88kbsd-nat.c.
	(m88kbsd-nat.o, m88k-tdep.o): New dependencies.
	* configure.host: Add m88*-*-openbsd*.
	* configure.tgt: Add m88*-*-openbsd*.

2004-05-24  Jim Blandy  <jimb@redhat.com>

	* MAINTAINERS (tracing bytecode stuff): Allow global maintainers
	to approve changes.

2004-05-24  Kevin Buettner  <kevinb@redhat.com>

	* symtab.c (fixup_section): Search section table when lookup by
	name fails.

2004-05-24  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c: Fix handling of 8-byte structures; they should not 
	be "small_struct".

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

	* m68kbsd-nat.c (m68kbsd_collect_gregset): Specify correct
	register number in regcache_raw_collect call.
	(m68kbsd_collect_fpregset): Likewise.
	* vaxbsd-nat.c (vaxbsd_collect_gregset): Likewise.

	* regset.h (struct regset): Add back `regset' member.

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

	* configure.in: Check for td_pcb in `struct thread'.
	* configure, config.in: Regenerated.

	* dpx2-nat.c: Remove file.
	* Makefile.in (ALLDEPFILES): Remove dpx2-nat.c.
	(dpx2-nat.o): Remove dependencies.

	* amd64obsd-nat.c: Include "gdbcore.h", "regcache.h",
	<sys/types.h>, <machine/frame.h>, <machine/pcb.h> and "bsd-kvm.h".
	(amd64obsd_supply_pcb): New function.
	(_initialize_amd64obsd_nat): Enable libkvm interface.
	* Makefile.in (amd64obsd-nat.o): Update dependencies.
	* config/i386/obsd64.mh (NATDEPFILES): Add bsd-kvm.o
	(LOADLIBES): New variable.

	* sparcnbsd-nat.c: Include "gdbcore.h", "regcache.h",
	<sys/types.h>, <machine/pcb.h> and "bsd-kvm.h".
	(sparc32nbsd_supply_pcb): New function.
	(_initialize_sparcnbsd_nat): Enable libkvm interface.
	* Makefile.in (sparcnbsd-nat.o): Update dependencies.
	* config/sparc/nbsdelf.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.

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

	* bsd-kvm.c, bsd-kvm.h: New files.
	* i386fbsd-nat.c: Include <sys/types.h>, <machine/pcb.h> and
	"bsd-kvm.h".
	(i386fbsd_supply_pcb): New function.
	* Makefile.in (ALLDEPFILES): Add bsd-kvm.c.
	(i386fbsd-nat.o): Update dependencies.
	(bsd_kvm_h): New variable.
	(bsd-kvm.o): New dependency.
	* config/i386/fbsd.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.

	* regset.c: Tweak comment.
	(regset_alloc): Remove descr argument.  Use GDBARCH_OBSTACK_ZALLOC
	macro.
	* regset.h: Update copyright year.
	(struct regset): Remove `descr' member, add `gdbarch' member.
	(regset_alloc): Adjust prototype and comment.
	* i386-tdep.c (i386_supply_gregset): Get TDEP from REGSET->arch.
	(i386_supply_fpregset): Likewise.
	(i386_regset_from_core_section): Update call to regset_alloc.
	* i386obsd-tdep.c (i386obsd_aout_supply_regset): Get TDEP from
	REGSET->arch.
	(i386obsd_aout_regset_from_core_section): Update call to
	regset_alloc.
	* i386nbsd-tdep.c (i386nbsd_aout_supply_regset): Get TDEP from
	REGSET->arch.
	(i386nbsd_aout_regset_from_core_section): Update call to
	regset_alloc.
	* amd64-tdep.c (amd64_supply_fpregset): Get TDEP from
	REGSET->arch.
	(amd64_regset_from_core_section): Update call to regset_alloc.
	* amd64obsd-tdep.c (amd64obsd_supply_regset): Get TDEP from
	REGSET->arch.
	(amd64obsd_regset_from_core_section): Update call to regset_alloc.
	* sparcnbsd-tdep.c (sparc32nbsd_supply_gregset): Directly pass
	&sparc32nbsd_gregset in sparc32_supply_gregset call.
	(sparc32nbsd_init_abi): Update call to regset_alloc.
	* sparc64obsd-tdep.c (sparc64obsd_supply_gregset): Directly pass
	&sparc64obsd_core_gregset in sparc64_supply_gregset call.
	(sparc64obsd_init_abi): Update call to regset_alloc.
	* sparc64nbsd-tdep.c (sparc64nbsd_supply_gregset): Directly pass
	&sparc64nbsd_gregset in sparc64_supply_gregset call.
	(sparc64nbsd_init_abi): Update call to regset_alloc.
	* sparc64fbsd-tdep.c (sparc64fbsd_supply_gregset): Directly pass
	&sparc64fbsd_gregset in sparc64_supply_gregset call.
	(sparc64fbsd_init_abi): Update call to regset_alloc.

2004-05-22  Jim Blandy  <jimb@redhat.com>

	* ppc-tdep.h (spe_register_p): New declaration.
	(struct gdbarch_tdep): New members: ppc_acc_regnum and
	ppc_spefscr_regnum.
	* rs6000-tdep.c (spe_register_p): New function.
	(rs6000_dwarf2_stab_reg_to_regnum): Recognize numbers for acc and
	spefscr.
	(rs6000_gdbarch_init): Initialize the new members of the tdep
	structure.

2004-05-21  Jim Blandy  <jimb@redhat.com>

	* ppc-linux-nat.c (fetch_register): Move code back to be next
	to the comment that describes it.  (Moved code, instead of
	comment, for symmetry with store_register.)

	Allocate regset structures in the gdbarch's obstack, not using
	xmalloc.
	* regset.c (regset_alloc): Renamed from regset_xmalloc.
	Add 'arch' argument.  Allocate the regset on arch's obstack, not
	using xmalloc.
	* regset.h (regset_alloc): Update declaration.
	* am64-tdep.c (amd64_regset_from_core_section): Update call; pass
	gdbarch argument.
	* amd64obsd-tdep.c (amd64obsd_regset_from_core_section): Same.
	* i386-tdep.c (i386_regset_from_core_section): Same.
	* i386nbsd-tdep.c (i386nbsd_aout_regset_from_core_section): Same.
	* i386obsd-tdep.c (i386obsd_aout_regset_from_core_section): Same.
	* sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Same.
	* sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Same.
	* sparc64obsd-tdep.c (sparc64obsd_init_abi): Same.
	* sparcnbsd-tdep.c (sparc32nbsd_init_abi): Same.

2004-05-21  Joel Brobecker  <brobecker@gnat.com>

	* config/djgpp/fnchange.lst: Undo previous change, was useless.

2004-05-21  Jim Blandy  <jimb@redhat.com>

	* dwarf2expr.c (execute_stack_op): Add 'break' statements after
	cases for DW_OP_div and DW_OP_shr.  (Thanks to Reva Cuthbertson.)

2004-05-20  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (rs6000_push_dummy_call): Formatting fixes.

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

	* regset.h: Make prototype const-correct.
	* regset.c (regset_xmalloc): Make const-correct.

2004-05-20  Paul N. Hilfinger  <hilfinger@gnat.com>

	* symtab.h (SYMBOL_SEARCH_NAME): New definition.
	(SYMBOL_MATCHES_SEARCH_NAME): New definition.
	(symbol_search_name): Declare.
	
	* dictionary.c (iter_name_first_hashed): Match on SYMBOL_SEARCH_NAME.
	(iter_name_next_hashed): Ditto.
	(iter_name_next_linear): Ditto.
	(insert_symbol_hashed): Hash on SYMBOL_SEARCH_NAME.

	* symtab.c (lookup_partial_symbol): Assume symbols ordered by 
	search name, using SYMBOL_SEARCH_NAME and SYMBOL_MATCHES_SEARCH_NAME.
	(symbol_search_name): New function.
	
	* symfile.c (compare_psymbols): Order by SYMBOL_SEARCH_NAME.
	
	* minsyms.c (build_minimal_symbol_hash_tables): Change
	test for adding to demangled hash table to check for difference
	between SYMBOL_SEARCH_NAME and SYMBOL_LINKAGE_NAME.
	
2004-05-19  Jim Blandy  <jimb@redhat.com>

	Use a constructor function to create regset structures.
	* regset.h (supply_regset_ftype, collect_regset_ftype): New typedefs.
	(struct regset): Use supply_regset_ftype.  Add new
        'collect_regset' member.
	(regset_xmalloc): New declaration.
	* regset.c: New file.
	* am64-tdep.c (amd64_regset_from_core_section): Use
	regset_xmalloc to construct regset structures.
	* amd64obsd-tdep.c (amd64obsd_regset_from_core_section): Same.
	* i386-tdep.c (i386_regset_from_core_section): Same.
	* i386nbsd-tdep.c (i386nbsd_aout_regset_from_core_section): Same.
	* i386obsd-tdep.c (i386obsd_aout_regset_from_core_section): Same.
	* sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Same.
	* sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Same.
	* sparc64obsd-tdep.c (sparc64obsd_init_abi): Same.
	* sparcnbsd-tdep.c (sparc32nbsd_init_abi): Same.
	* Makefile.in (COMMON_OBS): Add regset.o.
	(regset.o): New rule.

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

	* config/djgpp/fnchange.lst: Add entries for pthread_cond_wait.exp
	and pthread_cond_wait.c.

2004-05-18  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (rs6000_gdbarch_init): Initialize tdep fields
	before the mach-specific switch, and then let the individual cases
	override the defaults, rather than leaving them uninitialized
	until the switch and then setting them in each case.

2004-05-18  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_cache): Check for validity of r31 for
	millicode functions.

2004-05-18  Randolph Chung  <tausq@debian.org>

	* somsolib.c (som_solib_remove_inferior_hook): Make all the size
	references to dld_flags_buffer consistent.

2004-05-18  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_cache): If a frame pointer is available, use
	it for unwinding the stack.

2004-05-18  Randolph Chung  <tausq@debian.org>

	* config/pa/tm-linux.h (IN_SOLIB_CALL_TRAMPOLINE, SKIP_TRAMPOLINE_CODE)
	Undefine these so we can overide them using gdbarch.

2004-05-18  Randolph Chung <tausq@debian.org>

	* hppa-tdep.c (hppa_stub_frame_unwind_cache): Don't do export stub
	handling for 64-bit HPUX (elf).

2004-05-18  Daniel Jacobowitz  <dan@debian.org>

	* alpha-tdep.c (alpha_gdbarch_init): Use LL suffix for large
	constants.
	* amd64-tdep.c (amd64_skip_prologue): Likewise.
	* ia64-tdep.c (examine_prologue): Likewise.
	* ns32k-tdep.c (ns32k_fix_call_dummy): Remove unused function.
	* v850-tdep.c (v850_fix_call_dummy): Likewise.

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

	* vax-tdep.c (vax_return_value): Implement
	RETURN_VALUE_ABI_RETURNS_ADDRESS.

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

	* vax-tdep.c (vax_return_value): Fix typo.

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

	* MAINTAINERS: Mark Salter was also responsible for
	testsuite/config/

	* NEWS: Mention signal fixes.

2004-05-17  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_stub_frame_unwind_cache): For HPUX stub unwinding,
	check to see if we are unwinding an export stub.  Export stubs clobber
	the %rp in the call path and stores the original rp in a stack slot.

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

	* MAINTAINERS: Update address for J.T. Conklin.

2004-05-17  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c: Remove superfluous #include's.
	* Makefile.in (hppa-tdep.o): Update dependencies.

2004-05-17  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (THREAD_INITIAL_FRAME_SYMBOL): Delete unused symbol.
	(THREAD_INITIAL_FRAME_SYM_LEN): Likewise.
	(unwind_command, hppa_alignof, prologue_inst_adjust_sp)
	(is_branch, inst_saves_gr, inst_saves_fr, compare_unwind_entries)
	(read_unwind_info, internalize_unwinds, record_text_segment_lowaddr):
	Remove static function declarations.

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

	* alphabsd-nat.c: Update copyright year.
	(getregs_supplies): Replace PC_REGNUM with ALPHA_PC_REGNUM.

	* m68k-tdep.h (m68k_regnum): Add M68K_D2_REGNUM, M68K_D7_REGNUM
	and M68K_A2_REGNUM.

	* m68k-tdep.c (m68k_svr4_return_value): Implement
	RETURN_VALUE_ABI_RETURNS_ADDRESS.

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

	* sol-thread.c Update copyright year.  Fix various coding
	standards violations.  Tweak a few comments.
	(td_err_string, td_state_string, thread_to_lwp, lwp_to_thread):
	Delete prototypes.

2004-05-15  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.h (hppa_frame_prev_register_helper): Pass save_regs
	as pointer instead of array reference since HPUX compiler does
	not accept unsized array arguments.
	* somsolib.c (dld_flags_buffer): Use constant array size.

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

	* amd64obsd-tdep.c (amd64obsd_sigtramp_p): Replace hexadecimal
	offset with decimal offset.
	(amd64obsd_sigcontext_addr): Return correct address for entire
	signal trampoline.

	* vax-tdep.c (vax_frame_num_args): Use get_frame_base_address
	instead of get_frame_base.

	* i386bsd-nat.c (supply_gregset): Use regcache_raw_supply.
	(fill_gregset): Use regcache_raw_collect.

	* config/djgpp/fnchange.lst: Add entries for ppcobsd-nat.c and
	ppcobsd-tdep.c.

	* config/sparc/tm-nbsd64.h: Remove file.
	* config/tm-sunos.h: Remove file.

2004-05-15  Joel Brobecker  <brobecker@gnat.com>

	* rs6000-tdep.c (store_param_on_stack_p): New function,
	an improved version of some code extracted from skip_prologue().
	(skip_prologue): Use store_param_on_stack_p() to detect
	instructions saving a parameter on the stack. Detect when r0
	is used to save a parameter.
	Do not mark "li rx, SIMM" instructions as part of the prologue,
	unless the following instruction is also part of the prologue.

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

	* infrun.c (handle_inferior_event): Simplify
	STEP_OVER_UNDEBUGGABLE.

	* infrun.c (handle_step_into_function): Delete function.
	(handle_inferior_event): Inline calls to
	handle_step_into_function.

2004-05-14  Jerome Guitton  <guitton@gnat.com>

	* rs6000-nat.c: Fix a comment.

2004-05-12  David Anderson <davea@sgi.com>

	Committed by Jim Blandy <jimb@redhat.com>:
	* regcache.c (struct regcache_descr): fix comment spelling.

2004-05-13  J. Brobecker  <brobecker@gnat.com>

	* aix-thread.c: s/ppc_floating_point_p/ppc_floating_point_unit_p/.
	Fixes a link link failure.

2004-05-13  J. Brobecker  <brobecker@gnat.com>

	* aix-thread.c (store_regs_kernel_thread): Fix a little obvious
	error that was causing the build to fail.

2004-05-13  J. Brobecker  <brobecker@gnat.com>

	* aix-thread.c: #include "gdb_string.h". Needed for memset and memcopy.
	* Makefile.in (aix-thread.o): Add dependency on gdb_string.h.

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

	* infrun.c (handle_inferior_event): Check for
	STEP_OVER_UNDEBUGGABLE after signal trampolines and function
	calls.  Update comments.

2004-05-13  Jim Blandy  <jimb@redhat.com>

	* aix-thread.c (pdc_read_regs, supply_gprs64, supply_fprs)
	(fetch_regs_user_thread, fetch_regs_kernel_thread)
	(store_regs_user_thread, store_regs_kernel_thread): Use
	ppc_num_gprs and ppc_num_fprs instead of '32' and '31'.
	* ppc-linux-nat.c (fill_gregset): Same.
	* ppc-linux-tdep.c (ppc_linux_supply_gregset) 
	(ppc_linux_sigtramp_cache): Same.
	* ppcnbsd-tdep.c (ppcnbsd_supply_reg, ppcnbsd_fill_reg) 
	(ppcnbsd_sigtramp_cache_init): Same.
	* rs6000-nat.c (fetch_core_registers): Same.
	* rs6000-tdep.c (ppc_supply_gregset, ppc_collect_gregset) 
	(rs6000_frame_cache): Same.

	* aix-thread.c (supply_gprs64, fetch_regs_user_thread)
	(store_regs_user_thread): Use tdep->ppc_gp0_regnum, instead
	of assuming that the gprs are numbered starting with zero.
	* ppc-linux-nat.c (fill_gregset): Same.
	* ppc-linux-tdep.c (ppc_linux_supply_gregset): Same.
	* ppcnbsd-nat.c (getregs_supplies): Same.
	* ppcnbsd-tdep.c (ppcnbsd_supply_reg, ppcnbsd_fill_reg): Same.
	* rs6000-nat.c (fetch_core_registers): Same.
	* rs6000-tdep.c (ppc_supply_gregset, ppc_collect_gregset): Same.

2004-05-07  Michael Snyder  <msnyder@redhat.com>

	* tracepoint.c (scope_info): Add handling for LOC_COMPUTED,
	LOC_COMPUTED_ARG, and LOC_INDIRECT.

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

	* infrun.c (handle_inferior_event): Use frame_unwind_id.

2004-05-13  Bryce McKinlay  <mckinlay@redhat.com>

	* dwarf2loc.c (find_location_expression): Use ANOFFSET to adjust
	base_address for shared libraries.

2004-05-13  Bryce McKinlay  <mckinlay@redhat.com>

	* MAINTAINERS (write after approval): Add myself.	

2004-05-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* breakpoint.c (bpstat_stop_status): Add new argument
	STOPPED_BY_WATCHPOINT.  Use it instead of testing
	target_stopped_data_address agaist 0 to check whether
	or not we stopped due to a hardware watchpoint.
	* breakpoint.h (bpstat_stop_status): Adapt prototype.
	* infrun.c (handle_inferior_event): Call bpstat_stop_status
	with new argument.

2004-05-12  Jim Blandy  <jimb@redhat.com>

	* configure.in: When checking whether we should use the -bbigtoc
	option, don't forget to restore the original value of LDFLAGS.
	* configure: Regenerated.

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

	* thread.c (load_infrun_state): Delete step_sp.
	* infrun.c (context_switch): Ditto.
	* inferior.h (step_sp): Ditto.
	* infcmd.c (step_sp, step_1, step_once, until_next_command): Ditto.
	* gdbthread.h (struct thread_info, save_infrun_state)
	(restore_infrun_state): Ditto.

2004-05-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* MAINTAINERS (write after approval): Add myself.

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

	* infrun.c (adjust_pc_after_break): Rewrite decr logic,
	eliminate reference to step_sp.
	(struct execution_control_state, init_execution_control_state)
	(handle_inferior_event, keep_going): Delete update_step_sp and
	step_sp.
	* infcmd.c (step_sp): Note that variable is unused.

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

	* infrun.c (step_over_function): Delete function.
	(handle_step_into_function): Use insert_step_resume_breakpoint.
	(insert_step_resume_breakpoint): Fix assertion.

2004-05-11  Nick Roberts  <nickrob@gnu.org>

	* utils.c (defaulted_query): Just use the normal query input type
	when printing the annotations.

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

	* infrun.c (handle_inferior_event): Simplify code handling
	step-into or return-from a signal trampoline.

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

	* ppcnbsd-tdep.c: Include "gdb_assert.h".
	* Makefile.in (ppcnbsd-tdep.o): Update dependencies.

2004-05-10  Jim Blandy  <jimb@redhat.com>

	* ppc-bdm.c (bdm_ppc_fetch_registers): Replace utterly broken code
	with a call to internal_error.

	* ppc-tdep.h (struct gdbarch_tdep): Change definition of
	ppc_fp0_regnum and ppc_fpscr_regnum: if they are -1, then this
	processor variant lacks those registers.
	(ppc_floating_point_unit_p): Change description to make it clear
	that this returns info about the ISA, not the ABI.
	* rs6000-tdep.c (ppc_floating_point_unit_p): Decide whether to
	return true or false by checking tdep->ppc_fp0_regnum and
	tdep->ppc_fpscr_regnum.  The original code replicated the BFD
	arch/mach switching done in rs6000_gdbarch_init; it's better to
	keep that logic there, and just check the results here.
	(rs6000_gdbarch_init): On the E500, set tdep->ppc_fp0_regnum and
	tdep->ppc_fpscr_regnum to -1 to indicate that we have no
	floating-point registers.
	(ppc_supply_fpregset, ppc_collect_fpregset)
	(rs6000_push_dummy_call, rs6000_extract_return_value)
	(rs6000_store_return_value): Assert that we have floating-point
	registers.
	(rs6000_dwarf2_stab_reg_to_regnum): Add FIXME.
	(rs6000_frame_cache): Don't note the locations at which
	floating-point registers were saved if we have no fprs.
	* aix-thread.c (supply_fprs, fill_fprs): Assert that we have FP
	registers.
	(fetch_regs_user_thread, fetch_regs_kernel_thread)
	(store_regs_user_thread, store_regs_kernel_thread): Only call
	supply_fprs / fill_fprs if we actually have floating-point
	registers.
	(special_register_p): Check ppc_fpscr_regnum before matching
	against it.
	(supply_sprs64, supply_sprs32, fill_sprs64, fill_sprs32): Don't
	supply / collect fpscr if we don't have it.
	* ppc-bdm.c: #include "gdb_assert.h".
	(bdm_ppc_fetch_registers, bdm_ppc_store_registers): Assert that we
	have floating-point registers, since I can't test this code on
	FP-free systems to adapt it.
	* ppc-linux-nat.c (ppc_register_u_addr): Don't match against the
	fpscr and floating point register numbers if they don't exist.
	(fetch_register): Assert that we have floating-point registers
	before we reach the code that handles them.
	(store_register): Same.  And use tdep instead of calling
	gdbarch_tdep again.
	(fill_fpregset): Don't try to collect FP registers and fpscr if we
	don't have them.
	(ppc_linux_sigtramp_cache): Don't record the saved locations of
	fprs and fpscr if we don't have them.
	(ppc_linux_supply_fpregset): Don't supply fp regs and fpscr if we
	don't have them.
	* ppcnbsd-nat.c: #include "gdb_assert.h".
	(getfpregs_supplies): Assert that we have floating-point registers.
	* ppcnbsd-tdep.c (ppcnbsd_supply_fpreg, ppcnbsd_fill_fpreg): Same.
	* ppcobsd-tdep.c: #include "gdb_assert.h".
	(ppcobsd_supply_gregset, ppcobsd_collect_gregset): Assert that we
	have floating-point registers.
	* rs6000-nat.c (regmap): Don't match against the fpscr and
	floating point register numbers if they don't exist.
	(fetch_inferior_registers, store_inferior_registers,
	fetch_core_registers): Only fetch / store / supply the
	floating-point registers and the fpscr if we have them.
	* Makefile.in (ppc-bdm.o, ppc-linux-nat.o, ppcnbsd-nat.o)
	(ppcobsd-tdep.o): Update dependencies.
	
2004-05-10  Andrew Cagney  <cagney@redhat.com>

	* infrun.c (through_sigtramp_breakpoint): Delete variable.
	(context_switch): Do not switch through_sigtramp_breakpoint.
	* gdbthread.h (save_infrun_state, load_infrun_state)
	(struct thread_info): Delete through_sigtramp_breakpoint parameter
	and structure member.
	* thread.c (load_infrun_state, save_infrun_state): Update.

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

	* m68kbsd-tdep.c (m68kbsd_elf_init_abi): Call m68k_svr4_init_abi.

2004-05-10  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* acinclude.m4: Quote macro names being defined by AC_DEFUN 
	throughout.
	* aclocal.m4: Regenerate.

2004-05-10  Nathan J. Williams  <nathanw@wasabisystems.com>

	* alphanbsd-tdep.c: Fix include of "gdb_string.h".

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

	* infrun.c (check_sigtramp2): Delete function.
	(handle_inferior_event): When single stepping, and taking a
	signal, set a breakpoint at the signal return address.  Delete
	redundant calls to check_sigtramp2.
	(insert_step_resume_breakpoint): New function.
	(through_sigtramp_breakpoint, handle_inferior_event)
	(follow_exec, wait_for_inferior, fetch_inferior_event)
	(currently_stepping, keep_going): Delete most uses of
	through_sigtramp_breakpoint, not that it should be deleted.
	(delete_breakpoint_current_contents): Delete function.

2004-05-10  Randolph Chung  <tausq@debian.org>

	* config/pa/linux.mt (TM_FILE): Use new tm-linux.h for hppa-linux
	target.
	* config/pa/tm-linux.h: New file.

2004-05-10  Daniel Jacobowitz  <drow@mvista.com>

	* cli/cli-setshow.c (cmd_show_list): Check for "show" in the middle
	of prefixes.  Don't print the prefix twice in the CLI.

2004-05-10  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (ppc_collect_gregset): When regnum == -1, do
	collect all the gprs.

	* rs6000-tdep.c (ppc_collect_gregset): Correct off-by-one error in
	loop collecting gprs.

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

	* remote-vx.c (net_step): Delete step-range code.
	* remote.c (remote_resume, init_all_packet_configs)
	(set_remote_protocol_E_packet_cmd)
	(show_remote_protocol_E_packet_cmd)
	(remote_protocol_E, show_remote_cmd, _initialize_remote)
	(remote_protocol_e, set_remote_protocol_e_packet_cmd)
	(show_remote_protocol_e_packet_cmd): Ditto.

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

	* hppa-tdep.h (enum hppa_regnum): Name enum, add HPPA_R1_REGNUM.

	* hppa-tdep.h: Update copyright year.
	(struct trad_frame_saved_reg): Add opaque declaration.

	* amd64-tdep.c (amd64_return_value): Implement
	RETURN_VALUE_ABI_RETURNS_ADDRESS.

	* m68k-tdep.c (m68k_convert_register_p, m68k_register_to_value)
	(m68k_value_to_register): New functions.
	(m68k_gdbarch_init): Set convert_register_p, register_to_value and
	value_to_register.

	* defs.h (enum return_value_convention): Add
	RETURN_VALUE_ABI_RETURNS_ADDRESS and
	RETURN_VALUE_ABI_PRESERVES_ADDRESS.
	* infcmd.c (legacy_return_value): New function.
	(print_return_value): Rwerite to implement
	RETURN_VALUE_ABI_RETURNS_ADDRESS.
	* values.c (using_struct_return): Check for inequality to
	RETURN_VALUE_REGISTER_CONVENTION instead of equality to
	RETURN_VALUE_STRUCT_CONVENTION.
	* i386-tdep.c (i386_return_value): Implement
	RETURN_VALUE_ABI_RETURNS_ADDRESS.

	* vax-tdep.c: Tweak comments.  Reorder include files.  Don't
	include "symtab.h", "opcode/vax.h" and "inferior.h".
	(vax_skip_prologue): Replace calls to read_memory_integer by calls
	to read_memory_unsigned_integer.
	(vax_gdbarch_init): Reorder.
	(_initialize_vax_tdep): Spell out prototype.
	* Makefile.in (vax-tdep.o): Update dependencies.

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

	* infrun.c (resume): Delete call to DO_DEFERRED_STORES.
	* target.c (target_detach, target_disconnect): Ditto.

	* infcall.c (call_function_by_hand): When no
	DEPRECATED_SAVE_DUMMY_FRAME_TOS call generic_save_dummy_frame_tos.
	* rs6000-tdep.c (rs6000_gdbarch_init): Do not set
	DEPRECATED_SAVE_DUMMY_FRAME_TOS.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	
	* gdbarch.sh (DEPRECATED_FIX_CALL_DUMMY): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* ns32k-tdep.c (ns32k_gdbarch_init): Do not set
	deprecated_fix_call_dummy.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* infcall.c (call_function_by_hand): Do not call
	DEPRECATED_FIX_CALL_DUMMY.

	* gdbarch.sh (DEPRECATED_CALL_DUMMY_WORDS)
	(DEPRECATED_SIZEOF_CALL_DUMMY_WORDS): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arm-linux-tdep.c (arm_linux_call_dummy_words)
	(arm_linux_init_abi): Do not set deprecated_call_dummy_words or
	deprecated_sizeof_call_dummy_words.
	* arm-tdep.c (arm_call_dummy_words, arm_gdbarch_init): Ditto.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sh64-tdep.c (sh64_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_call_dummy_words, ns32k_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* arch-utils.h (legacy_call_dummy_words)
	(legacy_sizeof_call_dummy_words): Delete declarations.
	* arch-utils.c (legacy_call_dummy_words)
	(legacy_sizeof_call_dummy_words): Delete variables.

	* gdbarch.sh (DEPRECATED_PUSH_DUMMY_FRAME): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* inferior.h (PUSH_DUMMY_FRAME): Delete macro.
	* infcall.c (call_function_by_hand): Eliminate call to
	DEPRECATED_PUSH_DUMMY_FRAME.
	* ns32k-tdep.c (ns32k_gdbarch_init): Do not set deprecated
	push_dummy_frame.
	(ns32k_push_dummy_frame): Delete function.

	* ns32k-tdep.c (ns32k_gdbarch_init): Do not set
	deprecated_call_dummy_breakpoint_offset or
	deprecated_call_dummy_start_offset.
	* dummy-frame.c, arm-tdep.c: Update comments.
	* gdbarch.sh (DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET)
	(DEPRECATED_CALL_DUMMY_START_OFFSET): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	
	* infcall.c (legacy_push_dummy_code): Delete function.
	(push_dummy_code): Delete call.

	* gdbarch.sh (DEPRECATED_USE_GENERIC_DUMMY_FRAMES): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* blockframe.c (legacy_frame_chain_valid): Simplify by eliminating
	DEPRECATED_USE_GENERIC_DUMMY_FRAMES.
	* infcall.c (legacy_push_dummy_code, call_function_by_hand): Ditto.
	* frame.c (frame_type_from_pc, legacy_get_prev_frame): Ditto.

	* breakpoint.h (deprecated_frame_in_dummy): Delete declaration.
	(struct frame_info): Delete opaque declaration.
	* breakpoint.c (deprecated_frame_in_dummy): Delete function.
	* frame.c (get_frame_type): Delete call.

	* ns32k-tdep.c (ns32k_gdbarch_init): Do not set deprecated
	pc_in_call_dummy.
	* inferior.h (deprecated_pc_in_call_dummy_on_stack): Delete.
	* blockframe.c (deprecated_pc_in_call_dummy_on_stack): Delete.

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

	* alphanbsd-tdep.c: Include "gdb_string.h".
	* armnbsd-tdep.c: Update copyright year.
	Include "gdb_string.h".
	* Makefile.in (alphanbsd-tdep.o, armnbsd-tdep.o): Update
	dependencies.

	* delta68-nat.c: Remove file.
	* m68k-tdep.c (delta68_in_sigtramp, delta68_frame_args_address)
	(delta68_frame_saved_pc, delta68_frame_num_args): Remove functions.
	* Makefile.in (ALLDEPFILES): Remove delta68-nat.c.
	(delta68-nat.o): Remove dependency.

	* m68k-tdep.c (m68k_frameless_function_invocation): Remove
	function.
	(m68k_gdbarch_init): Don't set
	deprecated_frameless_function_invocation.

2004-05-07  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (skip_prologue_hard_way, hppa_frame_cache): Use 
	read_memory_nobpt for code reading when doing frame unwinding.
	* hppa-linux-tdep.c (insns_match_pattern): Likewise.

2004-05-07  Randolph Chung  <tausq@debian.org>

	* hppa-linux-tdep.c (hppa_linux_sigtramp_find_sigcontext): Pass in pc
	instead of sp, handle sigaltstack case.
	(hppa_linux_sigtramp_frame_unwind_cache): Adjust calls to 
	hppa_linux_sigtramp_find_sigcontext, and set base to the frame of the
	signal handler and not that of the caller.
	(hppa_linux_sigtramp_unwind_sniffer): Adjust calls to
	hppa_linux_sigtramp_find_sigcontext.

2004-05-07  Randolph Chung  <tausq@debian.org>

	* Makefile.in (ALLDEPFILES): Add hppa-linux-tdep.c and
	hppa-linux-nat.c.
	(hppa-linux-tdep.o, hppa-linux-nat.o): Define rules.
	* hppa-linux-nat.c (fetch_register, store_register): Define.
	(fetch_inferior_registers, store_inferior_registers): Define.
	(supply_gregset): Add comment and clean up some unneeded code.
	(fill_gregset): Add comment and fix so that it saves registers in
	the right place in the gregset.
	(fill_fpregset): Fix buffer overrun problem.
	* config/pa/nm-linux.h (FETCH_INFERIOR_REGISTERS): Define.

2004-05-07  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_prev_register_helper): New function to 
	do common handling of the pcoqt register.
	(hppa_frame_prev_register, hppa_stub_frame_prev_register): Convert
	to use helper function.
	(hppa_frame_unwind_sniffer): Only use if unwind entry is present.
	(hppa_fallback_frame_cache, hppa_fallback_frame_this_id)
	(hppa_fallback_frame_prev_register, hppa_fallback_frame_unwind): New
	generic fallback unwinder when all else fails.
	(hppa_gdbarch_init): Add fallback sniffer.
	* hppa-tdep.h (hppa_frame_prev_register_helper): Prototype.
	* hppa-linux-tdep.c (hppa_linux_sigtramp_frame_prev_register): Convert
	to use helper function.

2004-05-08  Joel Brobecker  <brobecker@gnat.com>

	* config/djgpp/fnchange.lst: Add translation rules for
	gdb.arch/powerpc-aix-prologue.c and gdb.arch/powerpc-aix-prologue.exp.

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

	* frame.c (get_prev_frame_1): Work around GCC bug.
	* frame.h: Add comment about GCC bug.

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

	* observer.c: Include "commands.h" and "gdbcmd.h".
	(observer_debug, _initialize_observer): Add the
	command "set/show debug observer".
	* observer.sh: When observer debugging, log notify calls.
	* Makefile.in (observer.o): Update dependencies.

2004-05-07  Jason Molenda  (jmolenda@apple.com)

	* cli/cli-decode.c: Fix "SHOW_DOR" comment typeos.

2004-05-07  Jim Blandy  <jimb@redhat.com>

	* aix-thread.c (fetch_regs_kernel_thread, fill_gprs64,
	fill_gprs32, store_regs_kernel_thread): Use tdep->ppc_gp0_regnum
	to recognize gpr regnums, instead of assuming that
	tdep->ppc_fp0_regnum marks the end of the general-purpose
	registers.

	* ppc-sysv-tdep.c (ppc64_sysv_abi_return_value): Assert that
	the given architecture has floating-point registers. 

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

	* gdbarch.sh (DEPRECATED_USE_GENERIC_DUMMY_FRAMES): Replace with
	macro defined to 1.
	* gdbarch.h, gdbarch.c: Re-generate.
	* ns32k-tdep.c (ns32k_gdbarch_init): Do not set
	deprecated_use_generic_dummy_frames.

2004-05-07  Brian Ford  <ford@vss.fsi.com>

	* NEWS: Mention Cygwin DWARF 2 support.

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

	* objfiles.h (struct entry_info): Delete unused fields
	deprecated_entry_file_lowpc and deprecated_entry_file_highpc.
	* objfiles.c (init_entry_point_info, objfile_relocate): Update.
	* mipsread.c (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, read_dbx_symtab): Update.
	* coffread.c (complete_symtab): Update.

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

	* infcall.c (_initialize_infcall): Fix typo.

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

	* cli/cli-decode.c (add_setshow_zinteger_cmd): New function.
	* command.h (add_setshow_zinteger_cmd): Declare.

2004-05-06  Randolph Chung  <tausq@debian.org>

	* config/pa/tm-hppa.h (RO_REGNUM, FLAGS_REGNUM, RP_REGNUM)
	(HPPA_FP_REGNUM, HPPA_SP_REGNUM, SAR_REGNUM, IPSW_REGNUM)
	(PCOQ_HEAD_REGNUM, PCSQ_HEAD_REGNUM, PCOQ_TAIL_REGNUM, PCSQ_TAIL_REGNUM)
	(EIEM_REGNUM, IIR_REGNUM, ISR_REGNUM, IOR_REGNUM, SR4_REGNUM)
	(RCR_REGNUM, PID0_REGNUM, PID1_REGNUM, PID2_REGNUM, PID3_REGNUM)
	(CCR_REGNUM, TR0_REGNUM, CR27_REGNUM, HPPA_FP0_REGNUM, FP4_REGNUM)
	(ARG0_REGNUM, ARG1_REGNUM, ARG2_REGNUM, ARG3_REGNUM): Move *_REGNUM 
	definitions ...
	* hppa-tdep.h: ... to here, with HPPA_ prefix.
	* Makefile.in (hppah-nat.o): Add $(hppa_tdep_h)
	* hppa-hpux-tdep.c (hppa32_hpux_frame_find_saved_regs_in_sig)
	(hppa64_hpux_frame_find_saved_regs_in_sig)
	(child_get_current_exception_event): Add HPPA_ prefix to *_REGNUM usage.
	* hppa-linux-nat.c (GR_REGNUM, TR_REGNUM, greg_map): Likewise.
	* hppa-linux-tdep.c (hppa_dwarf_reg_to_regnum)
	(hppa_linux_target_write_pc, hppa_linux_sigtramp_frame_unwind_cache)
	(hppa_linux_sigtramp_frame_prev_register): Likewise.
	* hppa-tdep.c (hppa32_return_value, hppa64_return_value)
	(hppa32_push_dummy_call, hppa64_push_dummy_call, hppa64_frame_align)
	(hppa_target_read_pc, hppa_target_write_pc, hppa_frame_cache)
	(hppa_frame_prev_register, hppa_stub_frame_unwind_cache)
	(hppa_stub_frame_prev_register, hppa_unwind_dummy_id)
	(hppa_skip_permanent_breakpoint, hppa_instruction_nullified)
	(hppa32_register_type, hppa_cannot_store_register)
	(hppa_fetch_pointer_argument, hppa_pseudo_register_read): Likewise.
	* hppah-nat.c (store_inferior_registers, fetch_register): Likewise.
	* hpread.c (hpread_process_one_debug_symbol): Likewise.
	* pa64solib.c (pa64_solib_have_load_event)
	(pa64_solib_have_unload_event, pa64_solib_loaded_library_pathname)
	(pa64_solib_unloaded_library_pathname): Likewise.
	* somsolib.c (som_solib_have_load_event, som_solib_have_unload_event)
	(som_solib_library_pathname): Likewise.

2004-05-05  Jim Ingham  <jingham@apple.com>
	
	* breakpoint.c (create_breakpoints): Copy the ignore count and
	thread id over from the pended breakpoint to the actual
	breakpoint.
	
2004-05-05  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (PARM_BOUNDARY): Delete.
	gdbarch.h, gdbarch.c: Re-generate.
	* valops.c (PARM_BOUNDARY): Delete macro.
	(value_push): Delete PARM_BOUNDARY code.
	* m68k-tdep.c (m68k_gdbarch_init): Do not set parm_boundary.

2004-05-04  Jim Blandy  <jimb@redhat.com>

	* ppc-linux-nat.c (fetch_ppc_registers, store_ppc_registers):
	Don't assume that the gprs, fprs, and UISA sprs are
	contiguous, start at register number zero, and end with fpscr.
	Instead, use the numbers from the tdep structure.

	* config/rs6000/tm-rs6000.h (FP0_REGNUM): Document that this
	should no longer be used in code specific to the RS6000 and its
	derivatives.
	* ppc-tdep.h (struct gdbarch_tdep): Add 'ppc_fp0_regnum' member.
	* rs6000-tdep.c (rs6000_gdbarch_init): Initialize
	tdep->ppc_fp0_regnum.
	(ppc_supply_fpregset, ppc_collect_fpregset)
	(rs6000_push_dummy_call, rs6000_extract_return_value)
	(rs6000_dwarf2_stab_reg_to_regnum, rs6000_store_return_value)
	(rs6000_frame_cache): Use tdep->ppc_fp0_regnum instead of
	FP0_REGNUM. 
	* aix-thread.c (supply_fprs, fetch_regs_kernel_thread)
	(fill_gprs64, fill_gprs32, fill_fprs, store_regs_kernel_thread):
	Same.
	* ppc-bdm.c (bdm_ppc_fetch_registers, bdm_ppc_fetch_registers,
	bdm_ppc_store_registers): Same.
	* ppc-linux-nat.c (ppc_register_u_addr, fetch_register) 
	(store_register, fill_fpregset): Same.
	* ppc-linux-tdep.c (ppc_linux_sigtramp_cache) 
	(ppc_linux_supply_fpregset): Same.
	* ppcnbsd-nat.c (getfpregs_supplies): Same.
	* ppcnbsd-tdep.c (ppcnbsd_supply_fpreg, ppcnbsd_fill_fpreg):
	Same.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call,
	do_ppc_sysv_return_value, ppc64_sysv_abi_push_dummy_call,
	ppc64_sysv_abi_return_value): Same.
	* rs6000-nat.c (regmap, fetch_inferior_registers) 
	(store_inferior_registers, fetch_core_registers): Same.

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

	* m68knbsd-nat.c: Remove file.
	* m68knbsd-tdep.c: Remove file.
	* Makefile.in: (m68knbsd-nat.o, m68knbsd-tdep.o): Remove
	dependencies.
	* configure.host: Add m68k-*-netbsdelf*.
	* configure.tgt (m68k-*-netbsd*): Set gdb_target to nbsd.
	* config/m68k/nbsdaout.mh (NATDEPFILES): Add m68kbsd-nat.o,
	solib.o and solib-sunos.o.  Remove m68knbsd-nat.o, corelow.o.
	(XM_FILE): Remove.
	* config/m68k/nbsdelf.mh: New file.
	* config/m68k/nbsd.mt: New file.
	* config/m68k/nbsdaout.mt: Remove file.
	* config/m68k/tm-nbsd.h: Don't include <sys/param.h>,
	<machine/vmparam.h> and "m68k/tm-m68k.h".  Include "solib.h".
	(BPT_VECTOR, STACK_END_ADDR): Remove defines.
	(DEPRECATED_SIGTRAMP_START, DEPRECATED_SIGTRAMP_END): Likewise.
	(use_struct_convention): Remove prototype.
	(USE_STRUCT_CONVENTION): Remove define.
	* config/m68k/xm-nbsd.h: Remove file.

2004-05-04  Michael Snyder  <msnyder@redhat.com>

	* m68k-tdep.c (m68k_gdbarch_init): Default to using 
	reg_struct_return method (as gcc usually does for cross targets).

2004-05-04  Ulrich Weigand <Ulrich.Weigand@de.ibm.com>

	Committed by Andrew Cagney.
	* s390-tdep.c (s390_sigtramp_frame_unwind_cache): Account for
	alignment padding when accessing ucontext struct members.

2004-05-04  Jim Blandy  <jimb@redhat.com>

	* config/ppc-tdep.h (struct gdbarch_tdep): Delete
	'ppc_gplast_regnum' member.
	(ppc_num_gprs): New enum constant.
	* ppc-linux-nat.c (ppc_register_u_addr): Use tdep->ppc_gp0_regnum
	and ppc_num_gprs instead of tdep->ppc_gplast_regnum.
	* rs6000-nat.c (regmap, fetch_inferior_registers,
	store_inferior_registers): Same.
	* rs6000-tdep.c (e500_pseudo_register_read)
	(e500_pseudo_register_write): Same.
	(rs6000_gdbarch_init): Don't initialize tdep->ppc_gplast_regnum.

	* config/rs6000/tm-rs6000.h (FPLAST_REGNUM): Delete #definition.
	* ppc-tdep.h (ppc_num_fprs): New enum constant.
	* aix-thread.c (fetch_regs_kernel_thread, fill_fprs,
	store_regs_kernel_thread): Use FP0_REGNUM + ppc_num_fprs, not
	FPLAST_REGNUM.
	* ppc-bdm.c (bdm_ppc_fetch_registers, bdm_ppc_store_registers):
	Same.
	* ppc-linux-nat.c (ppc_register_u_addr): Same.
	* rs6000-nat.c (regmap, fetch_inferior_registers) 
	(store_inferior_registers): Same.

	* aix-thread.c (fill_fprs): Fix off-by-one error comparing regno
	with FPLAST_REGNUM.

2004-05-03  Joel Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (dwarf2_create_include_psymtab): Fix build
	failure detected by recent versions of GCC.
	(psymtab_to_symtab_1): No longer use the PST_PRIVATE macro
	to be consistent with the usage in dwarf2_create_include_psymtab.

2004-05-03  Michael Snyder  <msnyder@redhat.com>

	* mips-tdep.c (mips_gdbarch_init): Fix typo in comment.
	(heuristic_proc_start): Whitespace cleanup.

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

	* sun3-nat.c: Remove file.
	* Makefile.in (tm-sun3.h tm-altos.h tm-sun2.h tm-3b1.h): Remove
	dependencies.
	(ALLDEPFILES): Remove sun3-nat.c.
	(sun3-nat.o): Remove dependencies.

	* i386-interix-nat.c, i386-interix-tdep.c,
	config/i386/nm-interix.h, config/i386/interix.mh,
	config/i386/interix.mt: Remove files.
	* Makefile.in (i386-interix-nat.o, i386-interix-tdep.o): Remove
	dependencies.

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

	* m68k-tdep.h (struct gdbarch_tdep): Add member
	struct_value_regnum.
	(m68k_svr4_init_abi): New prototype.
	* m68k-tdep.c: Include "floatformat.h".  Add comment about all the
	different calling conventions.
	(m68k_extract_return_value): Remove code dealing with single-field
	structs.
	(m68k_store_return_value): Remove code dealing with single-field
	structs.  Correctly store return values of 5, 6, 7 or 8 bytes.
	(m68k_extract_struct_value_address): Remove function.
	(m68k_svr4_extract_return_value,m68k_svr4_store_return_value)
	(m68k_reg_struct_return_p, m68k_return_value)
	(m68k_svr4_return_value): New functions.
	(m68k_use_struct_convention): Remove function.
	(m68k_push_dummy_call): Use new struct_value_regnum member of
	`struct gdbarch_tdep' instead of hardcoded register number to
	store STRUCT_ADDR.
	(m68k_svr4_init_abi): New function.
	(m68k_gdbarch_init): Don't set extract_return_value,
	store_return_values, deprecated_extract_struct_value_address and
	use_struct_convention.  Set return_value instead.  Initialize new
	struct_value_regnum member of `struct gdbarch_tdep'.
	* m68klinux-tdep.c: Update copyright year.
	(m68k_linux_extract_return_value, m68k_linux_store_return_value)
	(m68k_linux_extract_struct_value_address): Remove function.
	(m68k_linux_init_abi): Don't set extract_return_value,
	store_return_values, deprecated_extract_struct_value_address and
	use_struct_convention.  Call m68k_svr4_init_abi but override the
	new struct_value_regnum member of `struct gdbarch_tdep'.
	* Makefile.in (m68k-tdep.o): Update dependencies.

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

	* dwarf2read.c (line_header): Add new included_p field in
	field file_names.
	(partial_die_info): New field has_stmt_list. New field line_offset.
	(dwarf2_create_include_psymtab): New function.
	(dwarf2_build_include_psymtabs): New function.
	(add_file_name): Add forward declaration. Initialize new field.
	(dwarf_decode_lines): Add new parameter. Enhance this procedure
	to be able to determine the list of files included by the
	given unit, and build their associated psymtabs.
	(dwarf2_build_psymtabs_hard): Build the psymtabs for the included
	files as well.
	(psymtab_to_symtab_1): Build the symtabs of all dependencies as well.
	(read_file_scope): Update call to dwarf_decode_lines.
	(read_partial_die): Handle DW_AT_stmt_list attributes.

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

	Unfix PR gdb/1626.
	* configure.in: Revert special case for osf5.*.
	* configure: Regenerate.

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

	Move the symbol-file-from-memory functions into their own file.
	* symfile-mem.c, symfile-mem.h: New files.
	* symfile.c (symbol_file_add_from_bfd): New function.
	(symbol_file_add): Call symbol_file_add_from_bfd.
	(symbol_file_add_from_memory, add_symbol_file_from_memory_command):
	Moved to symfile-mem.c.
	(_initialize_symfile): Move definition of
	add-symbol-file-from-memory command to symfile-mem.c.
	* symfile.h (symbol_file_add_from_bfd): New declaration.
	* config/i386/linux.mt (TDEPFILES): Add symfile-mem.o.
 	* config/powerpc/linux.mt (TDEPFILES): Same.
	* Makefile.in (SFILES): Add symfile-mem.c.
	(symfile_mem_h): New variable.
	(HFILES_NO_SRCDIR): Add symfile-mem.h.
	(symfile-mem.o): New rule.

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

	* breakpoint.c (insert_bp_location): Use get_frame_id, and
	frame_find_by_id instead of frame_relative_level.
	(do_enable_breakpoint): Ditto.
	* thread.c: Update copyright.
	(info_threads_command): Ditto, simplify.

	* frame.c (deprecated_generic_get_saved_register): Delete
	function, moved to "xstormy16-tdep.c".
	* xstormy16-tdep.c (xstormy16_get_saved_register): Inline
	deprecated_generic_get_saved_register from "frame.c".
	(xstormy16_frame_saved_register): Call
	xstormy16_get_saved_register.
	* dummy-frame.c (deprecated_find_dummy_frame_regcache): Make
	static.
	* dummy-frame.h (deprecated_find_dummy_frame_regcache): Delete.
	* frame.h (deprecated_generic_get_saved_register): Delete.

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

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

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

	* stack.c (select_frame_command): Delete call to
	frame_relative_level.
	(print_frame, set_backtrace_limit_command, backtrace_limit_info):
	Delete #if0 code.
	(frame_info): Do not print FRAMELESS.
	(print_block_frame_labels): Replace DEPRECATED_STREQ.
	(catch_info): Delete #if0 code.

	* frame.c (create_sentinel_frame): Set type to SENTINEL_FRAME.
	* dummy-frame.c (dummy_frame_this_id): Use get_frame_type, instead
	of frame_relative_level.
	* sentinel-frame.c (sentinel_frame_unwinder): Set unwinder's type
	to SENTINEL_FRAME.
	* frame.h (enum frame_type): Add SENTINEL_FRAME.
	* s390-tdep.c (s390_prologue_frame_unwind_cache): Delete calls to
	frame_relative_level.

	* frame.h (deprecated_set_frame_type): Delete declaration.
	* frame.c (deprecated_set_frame_type): Delete function, update
	comments.

	* gdbarch.sh (DEPRECATED_PC_IN_SIGTRAMP): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* shnbsd-tdep.c (shnbsd_init_abi): Do not set pc_in_sigtramp.
	(shnbsd_pc_in_sigtramp): Delete.
	* i386-interix-tdep.c (i386_interix_init_abi): Do not set
	pc_in_sigtramp.
	* hppa-hpux-tdep.c (hppa_hpux_init_abi): Do not set
	pc_in_sigtramp.
	* frame.h: Update comments.
	* ppc-linux-tdep.c: Update comments.
	* breakpoint.c (bpstat_what): Update comments.

	* Makefile.in (m68klinux-tdep.o, m68klinux-nat.o): Fix
	m68klinux-tdep.o's dependencies, were previously added to
	m68klinux-nat.o.

	* alpha-tdep.c (alpha_sigtramp_frame_sniffer): Use pc_in_sigtramp.
	* alpha-tdep.h (struct gdbarch_tdep): Add pc_in_sigtramp.
	* alphafbsd-tdep.c (alphafbsd_init_abi): Update.
	* alpha-osf1-tdep.c (alpha_osf1_init_abi): Update.
	* alpha-linux-tdep.c (alpha_linux_init_abi): Update.

	* Makefile.in (m68klinux-nat.o): Update dependencies.
	* m68klinux-tdep.c: Include "trad-frame.h" and "frame-unwind.h".
	(m68k_linux_sigtramp_frame_cache)
	(m68k_linux_sigtramp_frame_this_id)
	(m68k_linux_sigtramp_frame_prev_register)
	(m68k_linux_sigtramp_frame_unwind)
	(m68k_linux_sigtramp_frame_sniffer)
	(struct m68k_linux_sigtramp_info, m68k_linux_init_abi): Code from
	m68k-tdep.h and m68k-tdep.c, add "linux" to function and variable
	names, use trad-frame.h.
	* m68k-tdep.h (struct gdbarch_tdep): Delete get_sigtramp_info.
	(struct m68k_sigtramp_info): Delete.
	* m68k-tdep.c (m68k_sigtramp_frame_cache)
	(m68k_sigtramp_frame_this_id, m68k_sigtramp_frame_prev_register)
	(m68k_sigtramp_frame_unwind, m68k_sigtramp_frame_sniffer)
	(m68k_gdbarch_init): Delete all the sigtramp code, moved to
	"m68klinux-tdep.c".

	* infrun.c (check_sigtramp2): Delete check for
	DEPRECATED_PC_IN_SIGTRAMP and INNER_THAN.

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

	* m68k-tdep.h (m68kbsd_fpreg_offset): New prototype.

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

	* frv-linux-tdep.c: Include "trad-frame.h" and "frame-unwind.h".
	(frv_linux_sigtramp_frame_cache)
	(frv_linux_sigtramp_frame_this_id)
	(frv_linux_sigtramp_frame_prev_register)
	(frv_linux_sigtramp_frame_unwind)
	(frv_linux_sigtramp_frame_sniffer): Copied from frv-tdep.c,
	include "linux" in function and variable names, directly call
	frv_linux_pc_in_sigtramp and frv_linux_sigcontext_reg_addr, use
	the latest trad-frame code.
	(frv_linux_init_abi): Append frv_linux_sigtramp_frame_sniffer, do
	not set frv_sigcontext_reg_addr or deprecated_pc_in_sigtramp
	* Makefile.in (frv-linux-tdep.o): Update dependencies.
	* frv-tdep.h (frv_set_sigcontext_reg_addr): Delete declaration.
	* frv-tdep.c (frv_sigtramp_frame_cache)
	(frv_sigtramp_frame_this_id, frv_sigtramp_frame_prev_register)
	(frv_sigtramp_frame_unwind, frv_sigtramp_frame_sniffer): Moved to
	frv-linux-tdep.c.
	(frv_gdbarch_init): Do not append a sigtramp sniffer.
	(struct gdbarch_tdep): Delete sigcontext_reg_addr.
	(frv_set_sigcontext_reg_addr): Delete function.

	* gdbarch.sh (DEPRECATED_SIGTRAMP_START)
	(DEPRECATED_SIGTRAMP_END): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arch-utils.c (legacy_pc_in_sigtramp): Simplify.
	* config/vax/tm-vaxbsd.h: Update copyright.
	(DEPRECATED_SIGTRAMP_START, DEPRECATED_SIGTRAMP_END): Delete.
	(DEPRECATED_IN_SIGTRAMP): Define.
	* config/m68k/tm-nbsd.h: Update copyright.
	(DEPRECATED_SIGTRAMP_START, DEPRECATED_SIGTRAMP_END): Delete.
	(DEPRECATED_IN_SIGTRAMP): Define.

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

	* dwarf2-frame.c (read_encoded_value): Handle DW_EH_PE_funcrel
	encondings.  Fixes PR gdb/1628.

	* dwarf2-frame.c (execute_cfa_program): Complain if we encounter a
	DW_CFA_restore state without a matching DW_CFA_remember_state
	instead of aborting.  Fixes PR backtrace/1589.

2004-04-30  Joel Brobecker  <brobecker@gnat.com>

	* MAINTAINERS: Add self as AIX maintainer.
	Update my e-mail address in write-after-approval section.

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

	* frame.c (frame_type_from_pc): Delete call to PC_IN_SIGTRAMP.
	(legacy_get_prev_frame): Ditto.

	* mips-tdep.c (mips_pc_in_sigtramp): Delete.
	(mips_gdbarch_init): Do not set pc_in_sigtramp.
	* mipsread.c (sigtramp_address): Delete extern variable.
	(mipscoff_new_init): Delete reference.
	* mdebugread.c (sigtramp_address, sigtramp_end): Delete variables.
	(fixup_sigtramp): Delete function.
	* config/mips/tm-mips.h (sigtramp_address, sigtramp_end)
	(fixup_sigtramp): Delete declarations.

	* ppcnbsd-tdep.c (ppcnbsd_init_abi): Do not set
	deprecated_pc_in_sigtramp.
	(ppcnbsd_pc_in_sigtramp): Delete function.

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

	* config/m68k/nm-nbsd.h: Tweak comments.
	* config/m68k/nm-nbsdaout.h: Likewise.

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

	* arm-tdep.c (arm_sigtramp_unwind_sniffer): Call
	legacy_pc_in_sigtramp.
	* ia64-tdep.c (ia64_sigtramp_frame_sniffer): Ditto.

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

	Add OpenBSD/m68k support.
	* NEWS (New native configurations): Mention OpenBSD/m68k.
	* m68kbsd-tdep.c: New file.
	* m68kbsd-nat.c: New file.
	* Makefile.in (ALLDEPFILES): Add m68kbsd-nat.c and m68kbsd-tdep.c.
	(m68kbsd-nat.o, m68kbsd-tdep.o): New dependencies.
	* configure.host: Add m68k-*-openbsd.
	* configure.tgt: Add m68k-*-openbsd.
	* config/m68k/tm-obsd.h: New file.
	* config/m68k/obsd.mt: New file.
	* config/m68k/obsd.mh: New file.
	* config/djgpp/fnchange.lst: Add entries for m68kbsd-nat.c and
	m68kbsd-tdep.c.

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

	* mipsnbsd-tdep.c (mipsnbsd_pc_in_sigtramp): Delete function.
	(mipsnbsd_init_abi): Do not set pc_in_sigtramp.

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

	* m68k-tdep.c (REMOTE_BPT_VECTOR): Remove define.
	* config/m68k/tm-nbsd.h (REMOTE_BPT_VECTOR): Remove define.

2004-04-30  Brian Ford  <ford@vss.fsi.com>

	Revert 2004-04-16 change.
	* i386-tdep.c (i386_gdbarch_init): Fix comment typos.
	(i386_coff_init_abi): Remove.
	* i386-tdep.h (i386_coff_init_abi): Remove.
	* i386-cygwin-tdep.c (i386_cygwin_init_abi): Remove call to above.

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

	* blockframe.c (find_pc_partial_function): Delete use of
	DEPRECATED_PC_IN_SIGTRAMP, DEPRECATED_SIGTRAMP_START and
	DEPRECATED_SIGTRAMP_END.

	* config/mips/tm-linux.h (DEPRECATED_IN_SIGTRAMP): Delete.
	* config/mips/tm-irix6.h (DEPRECATED_IN_SIGTRAMP): Delete.
	* config/mips/tm-nbsd.h: Delete undef DEPRECATED_IN_SIGTRAMP.
	* config/mips/tm-irix5.h (DEPRECATED_IN_SIGTRAMP): Delete.
	* config/arm/tm-embed.h (DEPRECATED_IN_SIGTRAMP): Delete.

	* defs.h (deprecated_inside_entry_file): Delete declaration.
	* blockframe.c (deprecated_inside_entry_file): Delete function.
	(legacy_frame_chain_valid): Delete call.
	* sh64-tdep.c (sh64_frame_chain): Delete call.
	* objfiles.h: Update comments.
	* i386-interix-tdep.c (i386_interix_frame_chain_valid): Delete
	call.
	* frame.c (get_prev_frame): Delete call, update comments.

2004-04-30  Brian Ford  <ford@vss.fsi.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	* gdbarch.sh (BELIEVE_PCC_PROMOTION_TYPE): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* stabsread.c (define_symbol): Delete BELIEVE_PCC_PROMOTION_TYPE
	code.

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

	* gdb-events.sh (selected_thread_changed)
	(selected_frame_level_changed, target_changed): Delete.
	* gdb-events.h, gdb-events.c: Re-generate.
	* valops.c (value_assign): Update.
	* stack.c (select_frame_command, up_silently_base)
	(down_silently_base): Update.

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

	* mips-tdep.c (mips_register_type): Re-write, handle 32-bit ABI
	registers correctly.
	(print_gp_register_row, mips32_heuristic_proc_desc)
	(mips_n32n64_push_dummy_call, mips_o32_push_dummy_call)
	(mips_o64_push_dummy_call, mips_eabi_push_dummy_call): Eliminate
	references to mips_isa_regsize.

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

	* mips-tdep.c (struct gdbarch_tdep): Delete
	mips_fp_register_double.
	(FP_REGISTER_DOUBLE): Delete macro, replace with test for
	mips_abi_regsize.
	(mips_gdbarch_init): Do not set mips_fp_register_double.
	(mips_dump_tdep): Do not print FP_REGISTER_DOUBLE.

2004-04-29  Joel Brobecker  <brobecker@gnat.com>

	Committed by Andrew Cagney.
        * infrun.c (handle_inferior_event): Rely on frame IDs to detect
        function calls.

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

	* mips-tdep.c (mips_abi_regsize): Replace tdep parameter with
	gdbarch, use mips_abi, update callers.
	(mips_stack_argsize): Replace tdep parameter with gdbarch, use
	mips_abi_regsize, update callers.
	(struct gdbarch_tdep): Delete mips_default_stack_argsize and
	mips_default_abi_regsize.
	(mips_gdbarch_init): Do not set mips_default_stack_argsize and
	mips_default_abi_regsize.

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

	* mips-tdep.c (mips_abi_regsize): Rename mips_saved_regsize.
	(mips_abi_regsize_string): Rename mips_saved_regsize_string.
	(struct gdbarch_tdep): Rename mips_default_saved_regsize to
	mips_default_abi_regsize.
	(mips_isa_regsize): Rename mips_regisze.
	* mipsnbsd-tdep.c: Update.
	* mips-linux-tdep.c: Update.
	* irix5-nat.c: Update.
	* mips-tdep.h (mips_isa_regsize): Update.

	* gdb-events.sh (WITH_GDB_EVENTS): Delete macro and references.
	Delete all disabled code.
	* gdb-events.h, gdb-events.c: Re-generate.
	
2004-04-19  Jerome Guitton  <guitton@gnat.com>
	    Mark Kettenis  <kettenis@gnu.org>

	* i386-tdep.c (i386_skip_prologue): follow the last jump only if
	the function begins with a branch instruction.

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

	* i386-tdep.c: Fix spelling mistakes.

2004-04-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
	    Andrew Cagney  <cagney@redhat.com>

	* configure.in (mips-sgi-irix5*): Define _KMEMUSER for
	<sys/proc.h>.
	* acconfig.h: Provide default _KMEMUSER value.
	* config.in, configure: Re-generate.
	* NEWS: Mention fix.

2004-04-24  Randolph Chung  <tausq@debian.org>

	* configure.host (hppa*-*-linux*): New target.
	* configure.tgt (hppa*-*-linux*): Likewise.
	* hppa-tdep.c (hppa_gdbarch_init): Set cannot_fetch_register, move
	gdbarch_init_osabi() call earlier so that osabi-specific frame
	unwinders can be registered first.
	* config/djgpp/fnchange.lst: Add entries for hppa-linux-tdep.c and
	hppa-linux-nat.c.
	* config/pa/tm-hppa.h (ISR_REGNUM, PID0_REGNUM, PID1_REGNUM)
	(PID2_REGNUM, PID3_REGNUM): Add definitions of some register numbers.
	* config/pa/linux.mh: New file.
	* config/pa/linux.mt: New file.
	* config/pa/nm-linux.h: New file.
	* config/pa/xm-linux.h: New file.
	* hppa-linux-nat.c: New file.
	* hppa-linux-tdep.c: New file.

2004-04-28  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa32_return_value): Handle both 4- and 8-byte fp
	return values.
	(hppa32_push_dummy_call): Fix small struct and floating point argument 
	passing, and make sure the stack frame is properly aligned.

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

	* stack.c (print_stack_frame): Fix description.

	* NEWS: Mention gdb/gdbserver/configure execute permission
	changed.  PR server/519.

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

	* stack.c (print_stack_frame_stub): Delete declaration.
	(struct print_stack_frame_args, print_stack_frame)
	(print_frame_info, print_frame): Replace "source" with print what.
	Replace "print" with "print_level".  Replace "args" with
	"print_args".
	* frame.h (show_and_print_stack_frame, print_stack_frame)
	(print_frame_info): Update declarations.
	* stack.c (select_and_print_frame, frame_command)
	(current_frame_command, up_command, down_command): Update calls -
	use get_selected_frame, pass "enum print_what" for source, do not
	call frame_relative_level.
	* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Ditto.
	* remote-rdp.c (remote_rdp_open): Ditto.
	* remote-mips.c (common_open): Ditto.
	* remote-e7000.c (e7000_start_remote): Ditto.
	* ocd.c (ocd_start_remote): Ditto.
	* mi/mi-main.c (mi_cmd_exec_return): Ditto.
	* infrun.c (normal_stop): Ditto.
	* inflow.c (kill_command): Ditto.
	* infcmd.c (finish_command): Ditto.
	* corelow.c (core_open): Ditto.
	* tracepoint.c (finish_tfind_command): Ditto.
	* thread.c (info_threads_command, info_threads_command) 
	(restore_current_thread, do_captured_thread_select): Ditto.
	* ada-tasks.c (task_command): Ditto.

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

	* frame.c: Include "observer.h".
	(frame_observer_target_changed): New function.
	(_initialize_frame): Attach target_changed observer.
	* regcache.c: Include "observer.h".
	(regcache_observer_target_changed): New function.
	(_initialize_regcache): Attach target_changed observer.
	* valops.c: Include "observer.h".
	(value_assign): Notify target_changed event when modifying register.
	* Makefile.in (frame.o, regcache.o, valops.o): Add $(observer_h).

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

	From Paul Koning <pkoning@equallogic.com>:
	* breakpoint.c (free_valchain): New function.
	(insert_bp_location, delete_breakpoint): Use free_valchain.
	(remove_breakpoint): Do not remove the valchain.
	(bpstat_stop_status): If not stopped by watchpoint, skip
	watchpoints when generating stop status list.
	* infrun.c (handle_inferior_event): Make
	stepped_after_stopped_by_watchpoint a global variable.
	* remote.c (remote_stopped_data_address): Return watch data
	address rather than zero if stepped_after_stopped_by_watchpoint is
	set.

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

	Fix PR gdb/1626.
	* configure.in: Check for curses after termcap.
	On osf5.*, do not check for ncurses.
	* configure: Regenerate.

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

	* ppcobsd-nat.c: Include "ppc-tdep.h".
	* Makefile.in (ppcobsd-nat.o): Update dependencies.

	* stack.c (return_command): Use CHECK_TYPEDEF on the return type.
	Fixes PR tdep/1623 and PR tdep/1624.

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

	* xmodem.h, xmodem.c: Remove files.
	* Makefile.in: Remove references to xmodem.h, xmodem.c.

2004-04-23  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_stub_unwind_cache, hppa_stub_frame_unwind_cache)
	(hppa_stub_frame_this_id, hppa_stub_frame_prev_register)
	(hppa_stub_frame_unwind, hppa_stub_unwind_sniffer): New stub unwinder
	for handling stackless frames.
	(hppa_gdbarch_init): Link in hppa_stub_unwind_sniffer. 

2004-04-23  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_cache): Handle the case when frame unwind
	starts at a pc before the frame is created.

2004-04-23  Joel Brobecker  <brobecker@gnat.com>

	* ChangeLog-2002: Fix year in one of the ChangeLog entries.

2004-04-23  Jerome Guitton  <guitton@gnat.com>

	* rs6000-tdep.c (rs6000_extract_return_value): When extracting a float,
	use convert_typed_floating to get the appropriate format.

2004-04-22  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.h (find_unwind_entry, hppa_get_field, hppa_extract_5_load)
	(hppa_extract_5R_store, hppa_extract_5r_store, hppa_extract_17)
	(hppa_extract_21, hppa_extract_14, hppa_low_sign_extend)
	(hppa_sign_extend): Add prototype.
	* hppa-tdep.c (get_field, extract_5_load, extract_5R_store)
	(extract_5r_store, extract_17, extract_21, extract_14, low_sign_extend)
	(sign_extend): Rename with hppa_ prefix and make non-static.  Other
	hppa targets will also use these functions.
	(find_unwind_entry): Remove prototype (moved to hppa-tdep.h).
	(hppa_in_solib_call_trampoline, hppa_in_solib_return_trampoline)
	(hppa_skip_trampoline_code): Move to hppa-hpux-tdep.c
	(hppa_gdbarch_init): Remove gdbarch setting of 
	skip_trampoline_code, in_solib_call_trampoline and
	in_solib_return_trampoline.
	* hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline)
	(hppa64_hpux_in_solib_call_trampoline): New functions, split from
	hppa_in_solib_call_trampoline.
	(hppa_hpux_in_solib_return_trampoline, hppa_hpux_skip_trampoline_code):
	Moved from hppa-tdep.c.
 	(hppa_hpux_init_abi): Set gdbarch for skip_trampoline_code, 
	in_solib_call_trampoline and in_solib_return_trampoline.

2004-04-22  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_debug): New variable.
	(find_unwind_entry, hppa_frame_cache): Add debug output.
	(_initialize_hppa_tdep): Add command to set debug flag.

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

	* ppcnbsd-tdep.c: Update copyright.  Include "tramp-frame.h" and
	"trad-frame.h".
	(ppcnbsd_sigtramp_cache_init, ppcnbsd_sigtramp): Implement a NetBSD
	signal trampoline unwinder.
	(ppcnbsd_init_abi): Register ppcnbsd_sigtramp.

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

	Add OpenBSD/powerpc support.
	* NEWS (New native configurations): Mention OpenBSD/powerpc.
	* ppc-tdep.h (struct ppc_reg_offsets): New structure.
	(ppc_supply_gregset, ppc_supply_fpregset, ppc_collect_gregset)
	(ppc_collect_fpregset): New prototypes.
	* ppcobsd-nat.c: New file.
	* ppcobsd-tdep.c: New file.
	* ppcobsd-tdep.h: New file.
	* rs6000-tdep.c: Include "regset.h".
	(ppc_supply_reg, ppc_collect_reg, ppc_supply_gregset)
	(ppc_supply_fpregset, ppc_collect_gregset, ppc_collect_fpregset):
	New functions.
	* Makefile.in (ALLDEPFILES): Add pccobsd-nat.c and ppcobsd-tdep.c.
	(ppcobsd-nat.o, ppcobsd-tdep.o): New dependencies.
	(rs6000-tdep.o): Update dependencies.
	* configure.host: Add powerpc-*-openbsd.
	* configure.tgt: Add powerpc-*-openbsd.
	* config/powerpc/obsd.mh: New file.
	* config/powerpc/nm-obsd.h: New file.
	* config/powerpc/obsd.mt: New file.

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

	* frame.h (show_frame_info): Delete declaration.

	* arm-tdep.c (arm_prologue_this_id): Delete redundant cycle test.
	* m68hc11-tdep.c (m68hc11_frame_this_id): Ditto.
	* m32r-tdep.c (m32r_frame_this_id): Ditto.
	* frv-tdep.c (frv_frame_this_id): Ditto.
	* avr-tdep.c (avr_frame_this_id): Ditto.

2004-04-22  Elena Zannoni  <ezannoni@redhat.com>

	* MAINTAINERS: Drop maintenance of gdb.stabs, and linespec.c.

2004-04-22  Jim Blandy  <jimb@redhat.com>

	* ppc-linux-nat.c (ppc_register_u_addr): Don't assume that r0 is
	register number zero.

2004-04-21  Michael Snyder  <msnyder@redhat.com>

	* mips-tdep.c (heuristic_proc_start): 
	Warning() already prefixes "Warning: ".

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

	* annotate.h (deprecated_annotate_starting_hook)
	(deprecated_annotate_stopped_hook)
	(deprecated_annotate_exited_hook)
	(deprecated_annotate_signal_hook)
	(deprecated_annotate_signalled_hook): Deprecate.
	* tracepoint.h (deprecated_create_tracepoint_hook)
	(deprecated_delete_tracepoint_hook)
	(deprecated_modify_tracepoint_hook)
	(deprecated_trace_find_hook)
	(deprecated_trace_start_stop_hook): Deprecate.
	* target.h (deprecated_target_new_objfile_hook): Deprecate.
	* remote.h (deprecated_target_resume_hook)
	(deprecated_target_wait_loop_hook): Deprecate.
	* gdbcore.h (deprecated_exec_file_display_hook)
	(deprecated_file_changed_hook): Deprecate.
	* frame.h (deprecated_selected_frame_level_changed_hook): Deprecate.
	* defs.h (deprecated_modify_breakpoint_hook)
	(deprecated_command_loop_hook, deprecated_show_load_progress)
	(deprecated_print_frame_info_listing_hook)
	(deprecated_query_hook, deprecated_warning_hook)
	(deprecated_flush_hook, deprecated_create_breakpoint_hook)
	(deprecated_delete_breakpoint_hook)
	(deprecated_interactive_hook, deprecated_registers_changed_hook)
	(deprecated_readline_begin_hook, deprecated_readline_hook)
	(deprecated_readline_end_hook, deprecated_register_changed_hook)
	(deprecated_memory_changed_hook, deprecated_init_ui_hook)
	(deprecated_context_hook, deprecated_target_wait_hook)
	(deprecated_attach_hook, deprecated_detach_hook)
	(deprecated_call_command_hook, deprecated_set_hook)
	(deprecated_error_hook, deprecated_error_begin_hook)
	(deprecated_ui_load_progress_hook): Deprecate.
	* valops.c, uw-thread.c, utils.c, tui/tui-io.c: Update.
	* tui/tui-hooks.c, tracepoint.c, top.c, thread-db.c: Update.
	* target.c, symfile.c, stack.c, sol-thread.c, rs6000-nat.c: Update.
	* remote.c, remote-mips.c, regcache.c, mi/mi-interp.c: Update.
	* main.c, interps.c, infcmd.c, hpux-thread.c, frame.c: Update.
	* exec.c, dsrec.c, d10v-tdep.c, corefile.c, complaints.c: Update.
	* cli/cli-script.c, cli/cli-setshow.c, breakpoint.c: Update.
	* annotate.c, aix-thread.c: Update.

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

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

	* symfile.c (symbol_file_add_from_memory): #if 0 function.
	(add_symbol_file_from_memory_command): #if 0 function body, call
	error instead.

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

	* gdbcore.h: Update copyright.
	(deprecated_add_core_fns): Rename add_core_fns.
	* win32-nat.c (_initialize_core_win32): Update.
	* sun3-nat.c (_initialize_core_sun3): Update.
	* shnbsd-tdep.c (_initialize_shnbsd_tdep): Update.
	* rs6000-nat.c (_initialize_core_rs6000): Update.
	* ppcnbsd-tdep.c (_initialize_ppcnbsd_tdep): Update.
	* nto-tdep.c (_initialize_nto_tdep): Update.
	* ns32knbsd-nat.c (_initialize_ns32knbsd_nat): Update.
	* mipsnbsd-tdep.c (_initialize_mipsnbsd_tdep): Update.
	* mips-nat.c (_initialize_core_mips): Update.
	* mips-linux-tdep.c (_initialize_mips_linux_tdep): Update.
	* m68knbsd-nat.c (_initialize_m68knbsd_nat): Update.
	* m68klinux-nat.c (_initialize_m68k_linux_nat): Update.
	* lynx-nat.c (_initialize_core_lynx): Update.
	* irix5-nat.c (_initialize_core_irix5): Update.
	* i386-interix-nat.c (_initialize_core_interix): Update.
	* cris-tdep.c (_initialize_cris_tdep): Update.
	* corelow.c (deprecated_add_core_fns): Update.
	* core-regset.c (_initialize_core_regset): Update.
	* core-aout.c (_initialize_core_aout): Update.
	* armnbsd-nat.c (_initialize_arm_netbsd_nat): Update.
	* alphanbsd-tdep.c (_initialize_alphanbsd_tdep): Update.
	* alpha-nat.c (_initialize_core_alpha): Update.

2004-04-21  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (registers_e500, registers_7400): Doc fixes.

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

	* dwarf2read.c (dwarf2_tmp_obstack, dwarf2_free_tmp_obstack):
	Delete.
	(dwarf_alloc_block): Take a CU argument.  Use the comp_unit_obstack.
	(read_attribute_value): Update calls to dwarf_alloc_block.
	(dwarf2_build_psymtabs_hard): Don't initialize or clean up
	dwarf2_tmp_obstack.
	(psymtab_to_symtab_1): Likewise.  Clean up using
	free_stack_comp_unit.
	(add_to_cu_func_list): Use the comp_unit_obstack.

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

	* dwarf2read.c (dwarf2_flag_true_p): New function.
	(die_is_declaration): Use the function above. Add some comments.

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

	* sparcnbsd-tdep.c (_initialize_sparnbsd_tdep): Specify
	architecture when registering sparcnbsd_core_osabi_sniffer.
	Adjust comment.

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

	* infcall.c (find_function_addr): Add FUNCTION_START_OFFSET to
	return value.

	Based on a patch from Brian Ford <ford@vss.fsi.com>:
	* i386-tdep.c: Correct register numbering scheme comments
	throughout.
	(i386_stab_reg_to_regnum): Rename to i386_dbx_reg_to_regnum.
	(i386_dwarf_reg_to_regnum): Rename to i386_svr4_reg_to_regnum.
	(i386_coff_init_abi, i386_elf_init_abi): Accomodate renames above.
	(i386_gdb_arch_init): Likewise.

	* Makefile.in (ALLDEPFILES): List ppc-sysv-tdep.c, ppcnbsd-nat.c
	and ppcnbsd-tdep.c instead of ppc-sysv-tdep.o, ppcnbsd-nat.o and
	ppcnbsd-tdep.o.

	* m68k-tdep.h: Tweak comments.
	* m68k-tdep.c: Tweak comment.

2004-04-17  Randolph Chung  <tausq@debian.org>

	* Makefile.in (hppa-hpux-tdep.o): Add $(hppa_tdep_h).
	* hppa-hpux-tdep.c (hppa-tdep.h): Include.
 	(hppa_hpux_som_init_abi): Set is_elf to 0.
 	(hppa_hpux_elf_init_abi): Set is_elf to 1.
	* hppa-tdep.c (low_text_segment_address): Remove global.
	(record_text_segment_lowaddr): Pass in low address as parameter. Use
	section offset to calculate segment address.
	(internalize_unwinds): Define low_text_segment_address as local and
	pass to record_text_segment_lowaddr for ELF targets.
	(hppa_gdbarch_init): Zero fill tdep structure.
	(hppa_dump_tdep): Print tdep structure.
	* hppa-tdep.h (gdbarch_tdep): Add is_elf member to tdep structure.

2004-04-17  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_pseudo_register_read): Define.
	(hppa_gdbarch_init): Set pseudo_register_read.
	* config/pa/tm-hppa.h (DEPRECATED_CLEAN_UP_REGISTER_VALUE): Remove.
	* regcache.c (supply_register): Remove check for
	DEPRECATED_CLEAN_UP_REGISTER_VALUE since we've removed the last user.

2004-04-17  Randolph Chung  <tausq@debian.org>

	* Makefile.in (hpread.o, pa64solib.o, somsolib.o): Add $(hppa_tdep_h)
	* hppa-tdep.h (INSTRUCTION_SIZE): Move from tm-hppa.h.
	(hpread_adjust_stack_address): Move to hpread.c.
	* hppa-tdep.h (unwind_table_entry, unwind_stub_types, obj_unwind_info,
	obj_private_struct): Move from tm-hppa.h.
	* hpread.c (hppa-tdep.h): Include.
	(hpread_adjust_stack_address): Move from hppa-tdep.c.
	(hpread_read_function_type, hpread_read_doc_function_type)
	(hpread_process_one_debug_symbol): Call hpread_adjust_stack_address 
	directly.
	* pa64solib.c (hppa-tdep.h): Include.
	* somsolib.c (hppa-tdep.h): Include.
	* config/pa/tm-hppa.h (frame_info, frame_saved_regs, value, type,
	inferior_status): Remove unused forward declarations.
	(INSTRUCTION_SIZE): Move to hppa-tdep.c.
	(unwind_table_entry, unwind_stub_types, obj_unwind_info, 
	obj_private_struct): Move to hppa-tdep.h.
	(HPREAD_ADJUST_STACK_ADDRESS): Remove.

2004-04-17  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_reg_struct_has_addr, hppa_skip_prologue)
	(hppa_skip_trampoline_code, hppa_in_solib_call_trampoline)
	(hppa_in_solib_return_trampoline, hppa_cannot_store_register)
	(hppa_smash_text_address, hppa_target_read_pc, hppa_target_write_pc):
	Remove forward declaration and make static.
	(hppa_reg_struct_has_addr): Remove.

2004-04-16  Joel Brobecker  <brobecker@gnat.com>

	* observer.sh: Move comments in sed command to first column.

2004-04-16  Jason Molenda  (jmolenda@apple.com)

	* frame.c: Minor typeo corrections in comments.

2004-04-16  Joel Brobecker  <brobecker@gnat.com>

	* observer.c (observer_test_first_notification_function): Update
	function profile.
	(observer_test_second_notification_function): Likewise.
	(observer_test_third_notification_function): Likewise.

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

	From Brian Ford <ford@vss.fsi.com>:
	* i386-tdep.c (i386_coff_init_abi): New function.
	* i386-tdep.h (i386_coff_init_abi): New prototype.	
	* i386-cygwin-tdep.c (i386_cygwin_init_abi): Call it.  Use correct
	register number translation functions for DWARF and DWARF 2.

2004-04-16  Joel Brobecker  <brobecker@gnat.com>

        * dwarf2read.c: Back out my previous change, it was incorrect.

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

	* dwarf2read.c: Include "hashtab.h".
	(struct dwarf2_cu): Add partial_dies, comp_unit_obstack,
	has_namespace_info.
	(struct partial_die_info): Add comments.  Use bitfields to reduce
	memory footprint.  Add scope, scope_set, has_specification,
	spec_offset, die_parent, die_child, and die_sibling.
	(peek_die_abbrev): Add prototype.
	(partial_read_comp_unit_head): New function, broken out from
	dwarf2_build_psymtabs_hard.
	(dwarf2_build_psymtabs_hard): Remove unused variable abbrev_ptr.
	Use partial_read_comp_unit_head.  Initialize the CU and
	comp_unit_obstack.  Update calls to read_partial_die and
	scan_partial_symbols.  Use free_stack_comp_unit and
	load_partial_dies.
	(scan_partial_symbols): Change PDI to a pointer.  Use the child and
	sibling pointers to walk partial DIEs.  Call fixup_partial_die.
	Update calls to helper functions.  Remove NAMESPACE argument.
	Update comments.
	(partial_die_parent_scope, partial_die_full_name): New functions.
	(add_partial_symbol): Remove namespace argument.  Update call to
	pdi_needs_namespace.  Use partial_die_full_name.  Handle
	DW_TAG_namespace.  Check has_namespace_info flag.
	(pdi_needs_namespace): Remove NAMESPACE argument.  Just check the
	tag.  Handle namespaces.
	(add_partial_namespace, add_partial_enumeration): Simplify.
	(guess_structure_name): New function, derived from
	add_partial_structure.
	(add_partial_structure): Remove.
	(determine_class_name): Update comment.
	(dwarf2_read_abbrevs): Set has_namespace_info flag.
	(is_type_tag_for_partial, load_partial_dies): New functions.
	(read_partial_die): Pass abbrev and abbrev_len as arguments.
	Record specifications instead of following them immediately.
	(find_partial_die_in_comp_unit, find_partial_die)
	(fixup_partial_die, free_stack_comp_unit)
	(hashtab_obstack_allocate, dummy_obstack_deallocate)
	(partial_die_hash, partial_die_eq): New functions.
	* Makefile.in (hashtab_h): Define.
	(dwarf2read.o): Update dependencies.
	(observer_inc, observer_h): Move to the correct section.

2004-04-15  Joel Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (dwarf2_attribute_true_p): New function.
	(die_is_declaration): Use the function above. Add comment.

2004-04-15  Joel Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (read_structure_scope): Identify stub types
	using die_is_declaration() only.

2004-04-15  Roland McGrath  <roland@redhat.com>

	* symfile.c (symbol_file_add_with_addrs_or_offsets): Take ABFD as
	argument instead of NAME.
	(symbol_file_add, reread_separate_symbols): Call symfile_bfd_open
	in call to symbol_file_add_with_addrs_or_offsets.
	(build_addr_info): New function, helper for ...
	(symbol_file_add_from_memory): New function.
	(add_symbol_file_from_memory_command): New function using that.
	(_initialize_symfile): Register it for add-symbol-file-from-memory.
	(pre_add_symbol_hook): Add const to argument type.
	* symfile.h (symbol_file_add_from_memory): Declare it.

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

	* NEWS (New native configurations): Mention OpenBSD/vax.
	* configure.host: Add vax-*-openbsd*.
	* config/vax/obsd.mh: New file.
	* config/vax/nm-obsd.h: New file.

	* vax-tdep.c: Include "regset.h".
	(vax_supply_gregset): New function.
	(vax_gregset): New variable.
	(vax_regset_from_core_section): New function.
	(vax_gdbarch_init): Set regset_from_core_section.
	* Makefile.in (vax-tdep.o): Update dependencies.

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

	* observer.c (normal_stop_subject, observer_notify_normal_stop)
	(observer_normal_stop_notification_stub)
	(observer_attach_normal_stop, observer_detach_normal_stop):
	Delete, replaced by #include "observer.inc".
	* infrun.c (normal_stop): Pass "stop_bpstat" to
	observer_notify_normal_stop.
	* Makefile.in (observer_inc): Define.
	(observer.o): Update dependencies.
	(observer.h, observer.inc): New rules.
	* observer.h: Delete file.
	* observer.sh: New file.

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

	* vax-tdep.c (vax_frame_cache): Fix typo.

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

	* NEWS (New native configurations): Mention NetBSD/vax.
	* configure.host: Add vax-*-netbsdelf* and vax-*-netbsd*.
	* config/vax/nbsdelf.mh: New file.
	* config/vax/nbsdaout.mh: New file.
	* config/vax/nm-nbsd.h: New file.
	* config/vax/nm-nbsdaout.h: New file.

	* vaxnbsd-tdep.c: New file.
	* Makefile.in (vaxnbsd-tdep.o): New dependency.
	* configure.tgt: Add vax-*-netbsd* and vax-*-openbsd*.
	* config/vax/nbsd.mt: New file.
	* config/vax/tm-nbsd.h: New file.

	* Makefile.in (vaxbsd-nat.o): New dependency.

	* vax-tdep.h (vax_regnum): Add VAX_R0_REGNUM and VAX_R1_REGNUM.
	* vax-tdep.c (vax_store_arguments): Remove struct_return and
	struct_addr arguments.  Don't push return value address.
	(vax_push_dummy_call): Don't pass STRUCT_RETURN and STRUCT_ADDR as
	arguments to vax_store_arguments.  Store return value address in
	R1.
	(vax_store_struct_return, vax_extract_return_value)
	(vax_store_return_value): Remove functions.
	(vax_return_value): New function.
	(vax_gdbarch_init): Set return value.  Don't set
	deprecated_store_struct_return, deprecated_extract_struct_return
	and deprecated_store_return_value.

2004-04-14  Andreas Schwab  <schwab@suse.de>

	* ia64-tdep.c (ia64_libunwind_frame_prev_register): Handle null
	value buffer.
	* libunwind-frame.c (libunwind_frame_prev_register): Likewise.

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

	* vax-tdep.c (vax_store_arguments, vax_push_dummy_call)
	(vax_unwind_dummy_id): New functions.
	(vax_push_dummy_frame, vax_pop_frame): Remove functions.
	(vax_call_dummy_words, sizeof_vax_call_dummy_words): Remove
	variables.
	(vax_fix_call_dummy): Remove function.
	(vax_gdbarch_init): Set push_dummy_call and unwind_dummy_id.
	Don't set deprecated_push_dummy_frame, deprecated_pop_frame,
	call_dummy_location, deprecated_call_dummy_words,
	deprecated_sizeof_call_dummy_words,
	deprecated_call_dummy_breakpoint_offset,
	deprecated_use_generic_dummy_frames, deprecated_pc_in_call_dummy,
	and deprecated_dummy_write_sp.

2004-04-13  David Carlton  <carlton@kealia.com>

	* MAINTAINERS: Move myself to "paper trail" section.

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

	* vax-tdep.c: Include "frame-base.h", "frame-unwind.h" and
	"trad-frame.h".
	(vax_frame_init_saved_regs): Remove function.
	(vax_sigtramp_saved_pc): Remove function.
	(vax_frame_saved_pc): Remove function.
	(vax_frame_args_address): Remove function.
	(vax_frame_num_args): Rewrite.
	(vax_frame_chain): Remove function.
	(vax_push_dummy_frame): Replace DEPRECATED_FP_REGNUM with
	VAX_FP_REGNUM.
	(vax_pop_frame): Likewise.
	(vax_saved_pc_after_call): Remove function.
	(struct vax_frame_cache): New structure.
	(vax_frame_cache): New function.
	(vax_frame_this_id): New function.
	(vax_frame_prev_register): New function.
	(vax_frame_unwind): New variable.
	(vax_frame_sniffer): New function.
	(vax_frame_base_address): New function.
	(vax_frame_args_address): New function.
	(vax_frame_base): New variable.
	(vax_unwind_pc): New function.
	(vax_gdbarch_init): Don't set deprecated_init_frame_pc,
	deprecated_fp_regnum, deprecated_saved_pc_after_call,
	deprecated_frame_chain, deprecated_frame_saved_pc,
	deprecated_frame_args_address and
	deprecated_frame_init_saved_regs.
	* Makefile.in (vax-tdep.o): Update dependencies.

	* vaxbsd-nat.c: New file.

	* vax-tdep.h: Update copyright year.  Adjust comments.
	(VAX_REGISTER_SIZE, VAX_REGISTER_BYTES, VAX_MAX_REGISTER_RAW_SIZE,
	VAX_MAX_REGISTER_VIRTUAL_SIZE): Remove macros.
	(vax_regnum): New enum.  Replacing...
	(VAX_AP_REGNUM, VAX_FP_REGNUM, VAX_SP_REGNUM, VAX_PC_REGNUM)
	(VAX_PS_REGNUM): ... these removed macros.
	* vax-tdep.c (vax_register_name): Remove prototype.
	(vax_register_name): Reorganize somewhat.  Use ARRAY_SIZE.
	(vax_register_byte, vax_register_raw_size,
	vax_register_virtual_size, vax_register_virtual_type): Remove
	functions.
	(vax_register_type): New function.
	(vax_breakpoint_from_pc): Reorganize.
	(vax_gdbarch_init): Set register_type.  Don't set
	deprecated_register_size, deprecated_register_bytes,
	deprecated_register_byte, deprecated_register_raw_size,
	deprecated_max_register_raw_size,
	deprecated_register_virtual_size,
	deprecated_max_register_virtual_size and
	deprecated_register_virtual_type.  Add comment on stack direction.

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

	* amd64-tdep.h (amd64_regnum): Add AMD64_CS_REGNUM,
	AMD64_SS_REGNUM, AMD64_DS_REGNUM, AMD64_ES_REGNUM,
	AMD64_FS_REGNUM and AMD64_GS_REGNUM.

2004-04-10  Randolph Chung  <tausq@debian.org>

	* MAINTAINERS (write after approval): Add myself.

2004-04-07  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_inner_than): Remove.
	(is_pa_2): Remove unused static variable.
	(hppa_gdbarch_init): Use core_addr_greaterthan instead of own version.

2004-03-10  Paul N. Hilfinger  <Hilfinger@gnat.com>

	* language.h (language_defn): Add new la_post_parser field.
	* parser-defs.h (null_post_parser): New declaration (default for
	la_post_parser).

	* parse.c (parse_exp_1): Move code to parse_exp_in_context and
	insert call to that function.
	(parse_exp_in_context): New function, including code formerly in
	parse_exp_1.  Calls language-dependent post-parser after
	prefixification.
	(parse_expression_in_context): New exported function.
	(null_post_parser): New definition.
	* expression.h (parse_expression_in_context): Add declaration.

	* p-lang.c (pascal_language_defn): Add trivial post-parser.
	* c-lang.c (c_language_defn): Ditto.
	(cplus_language_defn): Ditto.
	(asm_language_defn): Ditto.
	(minimal_language_defn): Ditto.
	* f-lang.c (f_language_defn): Ditto.
	* jv-lang.c (java_language_defn): Ditto.
	* language.c (unknown_language_defn): Ditto.
	(auto_language_defn): Ditto.
	(local_language_defn): Ditto.
	* m2-lang.c (m2_language_defn): Ditto.
	* scm-lang.c (scm_language_defn): Ditto.
	* obj-lang.c (objc_language_defn): Ditto.

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

	* amd64nbsd-tdep.c (amd64nbsd_sigcontext_addr): Remove function.
	(amd64nbsd_mcontext_addr): New function.
	(amd64nbsd_init_abi): Initialize TDEP->sigcontext_addr as
	amd64nbsd_mcontext_addr.  Directly initialize TDEP->sc_reg_offset
	with amd64nbsd_r_reg_offset, instead of building it on the fly.

	* corelow.c (core_xfer_partial): Fix coding standards violation.
	Add support for TARGET_OBJECT_WCOOKIE.

	* sparc-linux-tdep.c (sparc32_linux_init_abi): Don't set
	deprecated_pc_in_sigtramp.
	* sparc-sol2-tdep.c (sparc32_sol2_init_abi): Likewise.
	* sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Likewise.
	* sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Likewise.
	* sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Likewise.
	* sparc64obsd-tdep.c (sparc64obsd_init_abi): Likewise.
	* sparcnbsd-tdep.c (sparc32nbsd_init_abi): Likewise.
	* sparcobsd-tdep.c (sparc32obsd_init_abi): Likewise.

	* amd64-linux-tdep.c, amd64nbsd-tdep.c, amd64obsd-tdep.c,
	i386-linux-tdep.c, i386-tdep.c, i386nbsd-tdep.c, i386obsd-tdep.c:
	Fix typo.

	* amd64-tdep.c (amd64_supply_fxsave): Only fiddle with
	I387_FISEG_REGNUM and I387_FOSEG_REGNUM in 64-bit mode.
	(amd64_collect_fxsave): Likewise.

	* i386-sol2-tdep.c: Include "gdb_string.h".
	(i386_sol2_sigtramp_p): Recognize signal trampoline based on its
	name.
	* Makefile.in (i386-sol2-tdep.o): Update dependencies.

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

	* i386-sol2-tdep.c: Include "solib-svr4.h".
	(i386_sol2_init_abi): Set solib_svr4_fetch_link_map_offsets.
	* Makefile.in (i386-sol2-tdep.o): Update dependencies.
	* config/i386/tm-i386sol2.h: Include :solib.h".
	* config/i386/i386sol2.mh (NATDEPFILES): Remove solib.o,
	solib-svr4.o and solib-legacy.o.
	* config/i386/i386sol2.mt (TDEPFILES): Add solib.o and
	solib-svr4.o.

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

	* amd64-linux-nat.c (fetch_inferior_registers): Correctly check
	whether a register is supplied by PTRACE_GETFPREGS.
	(store_inferior_registers): Likewise.
	* amd64bsd-nat.c (fetch_inferior_registers): Correctly check
	whether a register is supplied by PT_GETFPREGS.
	(store_inferior_registers): Likewise.

	* config/i386/linux.mt (TDEPFILES): Remove solib-legacy.o.
	* config/i386/linux64.mt (TDEPFILES): Likewise.

	* i386-linux-nat.c: Update copyrigth year.  Tweak comment.

	* amd64-tdep.c (amd64_sigtramp_frame_sniffer): Rewrite to use new
	sigtramp_p member of `struct gdbarch_tdep'.  Also check whether
	the program counter is in the range specified by `struct
	gdbarch_tdep'.
	* amd64-linux-tdep.c: Include "symtab.h".
	(amd64_linux_pc_in_sigtramp): Remove function.
	(amd64_linux_sigtramp_p): New function.
	(amd64_linux_init_abi): Initialize TDEP->sigtramp_p.  Don't set
	deprecated_pc_in_sigtramp.
	* amd64nbsd-tdep.c: Include "symtab.h".
	(amd64nbsd_sigtramp_p): New function.
	(amd64nbsd_init_abi): Initialize TDEP->sigtramp_p.  Don't set
	deprecated_pc_in_sigtramp.
	* amd64obsd-tdep.c: Include "symtab.h" and "objfiles.h".  Add a
	few comments.
	(amd64obsd_pc_in_sigtramp): Remove function.
	(amd64obsd_sigtramp_p): New function.
	(amd64obsd_init_abi): Initialize TDEP->sigtramp_p.  Don't set
	deprecated_pc_in_sigtramp.
	* i386-tdep.h (struct gdbarch_tdep): Add sigtramp_p member.
	(i386bsd_pc_ins_sigtramp): Remove prototype.
	(i386bsd_sigtramp_start, i386bsd_sigtramp_end): Remove prototypes.
	* i386-tdep.c (i386_sigtramp_frame_sniffer): Rewrite to use new
	sigtramp_p member of `struct gdbarch_tdep'.  Also check whether
	the program counter is in the range specified by `struct
	gdbarch_tdep'.
	(i386_pc_in_sigtramp, i386_svr4_pc_in_sigtramp): Remove functions.
	(i386_sigtramp_p, i386_svr4_sigtramp_p): New functions.
	(i386_go32_pc_in_sigtramp): Remove function.
	(i386_svr4_init_abi): Don't set deprecated_pc_in_sigtramp.
	Initialize TDEP->sigtramp_p.
	(i386_go32_init_abi): Initialize TDEP->sigtramp_p to NULL.
	(i386_gdbarch_init): Initialize TDEP->sigtramp_p.  Don't set
	deprecated_pc_in_sigtramp.
	* i386-linux-tdep.c: Adjust comments.
	(i386_linux_pc_in_sigtramp): Remove function.
	(i386_linux_sigtramp_p): New function.
	(i386_linux_init_abi): Initialize TDEP->sigtramp_p.  Don't set
	deprecated_pc_in_sigtramp.
	* i386-nto-tdep.c: Update copyright year.
	(i386nto_pc_in_sigtramp): Remove function.
	(i386nto_sigtramp_p): New function.
	(i386nto_sigcontext_addr): Use I386_ESP_REGNUM instead of
	SP_REGNUM.
	(i386nto_init_abi): Initialize TDEP->sigtramp_p.  Don't set
	deprecated_pc_in_sigtramp.
	* i386-sol2-tdep.c: Update copyright year.
	(i386_sol2_pc_in_sigtramp): Remove function.
	(i386_sol2_sigtramp_p): New function.
	(i386_sol2_init_abi): Initialize TDEP->sigtramp_p.  Don't set
	deprecated_pc_in_sigtramp.
	* i386bsd-tdep.c (i386bsd_pc_in_sigtramp): Remove function.
	(i386bsd_sigtramp_start, i386bsd_sigtramp_end): Remove functions.
	(i386bsd_init_abi): Don't set deprecated_pc_in_sigtramp,
	deprecated_sigtramp_start and deprecated_sigtramp_end.
	* i386nbsd-tdep.c: Include "frame.h" and "symtab.h".
	(i386nbsd_pc_in_sigtramp): Remove function.
	(i386nbsd_sigtramp_p): New function.
	(i386nbsd_init_abi): Don't set deprecated_pc_in_sigtramp,
	deprecated_sigtramp_start, deprecated_sigtramp_end.  Initialize
	TDEP->sigtramp_start, TDEP->sigtramp_end and TDEP->sigtramp_p.
	* i386obsd-tdep.c: Include "frame.h", "symtab.h" and "objfiles.h".
	(i386obsd_pc_in_sigtramp): Remove function.
	(i386obsd_sigtramp_p): New function.
	(i386obsd_sigtramp_start, i386obsd_sigtramp_end): Remove
	functions.
	(i386bsd_init_abi): Don't set deprecated_pc_in_sigtramp,
	deprecated_sigtramp_start, deprecated_sigtramp_end.  Initialize
	TDEP->sigtramp_p.
	* Makefile.in (amd64-linux-tdep.o, amd64nbsd-tdep.o,
	amd64obsd-tdep.o, i386nbsd-tdep.o, i386obsd-tdep.o): Update
	dependencies.

	* config/i386/i386aout.mt: Remove file.

	* configure.tgt: Remove i[34567]86-*-go32*,
	i[34567]86-*-msdosdjgpp*, i[34567]86-*-sco*, i[34567]86-*-sysv*
	and i[34567]86-*-isc*.  Set gdb_target to i386 for
	i[34567]86-*-netware* and i[34567]86-*-*.
	* config/i386/i386.mt: New file.
	* config/i386/embed.mt: Remove file.
	* config/i386/go32.mt: Remove file.
	* config/i386/i386nw.mt: Remove file.
	* config/i386/i386v.mt: Remove file.
	* config/i386/tm-go32.h: Remove file.

	* tui/tui-hooks.c: Include "readline/readline.h" after
	"gdb_curses.h" instead of before.
	* tui/tui-io.c: Likewise.

	* tui/tui.c: Fix typo in comment.

	* sparc64-tdep.c (sparc_address_from_register): Remove function.

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

	* breakpoint.h (deprecated_exception_catchpoints_are_fragile)
	(deprecated_exception_support_initialized): Declare.
	* hppa-hpux-tdep.c (initialize_hp_cxx_exception_support)
	(initialize_hp_cxx_exception_support)
	(child_enable_exception_callback): Update.
	* breakpoint.c (deprecated_exception_catchpoints_are_fragile)
	(deprecated_exception_support_initialized): Rename
	deprecated_exception_catchpoints_are_fragile and
	deprecated_exception_support_initialized.
	(breakpoint_init_inferior, breakpoint_init_inferior): Update.

	* symtab.c (deprecated_hp_som_som_object_present): Rename
	hp_som_som_object_present.
	* symtab.h (deprecated_hp_som_som_object_present): Declare.
	* symfile.c (hp_som_som_object_present, RESET_HP_UX_GLOBALS):
	Update.  Delete extern declaration.
	* valops.c (hp_som_som_object_present): Ditto.
	* parse.c (deprecated_hp_som_som_object_present)
	(parse_nested_classes_for_hpacc): Ditto.
	* hpread.c (hp_som_som_object_present, hpread_expand_symtab): Ditto.
	* hppa-hpux-tdep.c (hp_som_som_object_present)
	(initialize_hp_cxx_exception_support): Ditto.
	* eval.c (hp_som_som_object_present, evaluate_subexp_standard): Ditto.
	* cp-valprint.c (hp_som_som_object_present)
	(cp_print_class_method): Ditto.
	* c-typeprint.c (hp_som_som_object_present):
	(c_type_print_base): Ditto.
	* c-exp.y (hp_som_som_object_present): Ditto.

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

	* frame-unwind.c (struct frame_unwind_table, frame_unwind_init)
	(frame_unwind_prepend_unwinder, frame_unwind_append_sniffer)
	(frame_unwind_find_by_frame): Re-implement the unwind code so
	that it can both prepend and append sniffers.  Replace
	frame_unwind_register_unwinder with frame_unwind_prepend_unwinder.
	* tramp-frame.c (tramp_frame_append): Use
	frame_unwind_prepend_unwinder.
	* frame-unwind.h (frame_unwind_prepend_unwinder): Replace
	frame_unwind_register_unwinder.
	* tramp-frame.h (tramp_frame_prepend_unwinder): Rename
	tramp_frame_append.
	* tramp-frame.c (tramp_frame_prepend_unwinder): Update.
	* mips-linux-tdep.c (mips_linux_init_abi, mips_linux_init_abi)
	(mips_linux_init_abi): Update.

2004-04-08  Kevin Buettner  <kevinb@redhat.com>

	* ppc-linux-tdep.c (ELF_NREG, ELF_NFPREG, ELF_NVRREG)
	(ELF_FPREGSET_SIZE):  Delete constants formerly used in core
	file support.

2004-04-07  Kevin Buettner  <kevinb@redhat.com>

	* ia64-tdep.c (elf.h): Don't include.
	(elf/ia64.h) [HAVE_LIBUNWIND_IA64_H]: Include.

2004-04-07  Jason Molenda  (jmolenda@apple.com)

	* frame.h: Typeo corrections in comments.

2004-04-07  Jim Blandy  <jimb@redhat.com>

	* i386-tdep.c (i386_stab_reg_to_regnum): Correct numbering for
	%esp and %ebp

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

	* config/sparc/linux.mt (TDEPFILES): Remove solib-legacy.o.
	* config/sparc/linux64.mt (TDEPFILES): Likewise.
	* config/sparc/sol2.mt (TDEPFILES): Add solib.o and solib-svr4.o.
	* config/sparc/sol2.mh (NATDEPFILES): Remove solib.o, solib-svr4.o
	and solib-legacy.o.
	* config/sparc/sol2-64.mt (TDEPFILES): Add solib.o and
	solib-svr4.o.
	* config/sparc/tm-sol2.h: Update copyright year.  Include
	"solib.h".

	* sparc-sol2-tdep.c: Update copyright year.  Include
	"solib-svr4.h".
	(sparc32_sol2_init_abi): Set solib_svr4_fetch_link_map_offsets.
	* sparc64-sol2-tdep.c: Include "solib-svr4.h".
	(sparc64_sol2_init_abi): Set solib_svr4_fetch_link_map_offsets.
	* Makefile.in (sparc-sol2-tdep.o, sparc64-sol2-tdep.o): Update
	dependencies.

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

	* infttrace.c: Include "infttrace.h".
	* infttrace.h: Include "target.h".
	* Makefile.in (infttrace_h): Update.
	(infttrace.o): Update.

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

	* hppah-nat.c (hpux_has_forked, hpux_has_vforked)
	(hpux_has_execd, hpux_has_syscall_event): Include "infttrace.h",
	move extern declarations from here ...
	* infttrace.h: ... to here.
	* Makefile.in (hppah-nat.o): Update dependencies.

	* hppa-tdep.c (hppa_breakpoint_from_pc): Make static.
	(hppa_gdbarch_init): Set gdbarch_breakpoint_from_pc
	* config/pa/tm-hppa.h (BREAKPOINT_FROM_PC, BREAKPOINT32):
	(hppa_breakpoint_from_pc): Delete.

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

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

	* hppa-tdep.c: Do not include <sys/types.h>, <sys/param.h>,
	<signal.h>, <sys/ptrace.h>, #include "a.out.encap.h",
	<sys/file.h>.

2004-04-06  Randolph Chung  <tausq@debian.org>

	Committed by Andrew Cagney (mechanical change).
	* hppa-tdep.c: (args_for_find_stub, hp_som_som_object_present,
	exception_catchpoints_are_fragile, find_stub_with_shl_get,
	cover_find_stub_with_shl_get, initialize_hp_cxx_exception_support,
	child_enable_exception_callback, current_ex_event,
	null_symtab_and_line, child_get_current_exception_event,
	HP_ACC_EH_notify_hook, HP_ACC_EH_set_hook_value,
	HP_ACC_EH_notify_callback, HP_ACC_EH_break, HP_ACC_EH_catch_throw,
	HP_ACC_EH_catch_catch, __eh_notification, hp_cxx_exception_support,
	hp_cxx_exception_support_initialized, eh_notify_hook_addr,
	eh_notify_callback_addr, eh_break_addr, eh_catch_catch_addr,
	eh_catch_throw_addr, break_callback_sal, setup_d_pid_in_inferior):
	Move hpux-specific definitions ...
	* hppa-hpux-tdep.c: ... to here.

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

	* hppa-tdep.c (hppa_frame_cache): Pass the frame's func to
	skip_prologue_using_sal.

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

	* config/i386/tm-i386.h: Delete file.
	* config/i386/tm-vxworks.h: Update copyright, do not include
	"tm-i386.h".
	* config/i386/tm-nto.h, config/i386/tm-linux.h: Ditto.
	* config/i386/tm-i386sol2.h, config/i386/tm-i386lynx.h: Ditto.
	* config/i386/tm-go32.h, config/i386/tm-cygwin.h: Ditto.
	* config/i386/ncr3000.mt (TM_FILE): Delete.
	* config/i386/interix.mt (TM_FILE): Delete.
	* config/i386/i386v.mt (TM_FILE): Delete.
	* config/i386/i386nw.mt (TM_FILE): Delete.
	* config/i386/i386gnu.mt (TM_FILE): Delete.
	* config/i386/i386aout.mt (TM_FILE): Delete.
	* config/i386/embed.mt (TM_FILE): Delete.

2004-04-05  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.h (fsr0_regnum, acc0_regnum, acc7_regnum, accg0123_regnum)
	(accg4567_regnum, msr0_regnum, msr1_regnum, gner0_regnum)
	(gner1_regnum, fner0_regnum, fner1_regnum, accg0_regnum)
	(accg7_regnum): New constants.
	(last_spr_regnum, last_pseudo_regnum): Update.
	* frv-tdep.c (new_variant): Initialize names for fsr0, acc0-acc7,
	accg0-accg7, msr0, msr1, gner0, gner1, fner0, and fner1.
	(frv_pseudo_register_read, frv_pseudo_register_write): Add support
	for accg registers.
	(frv_register_sim_regno): Update spr_map[].

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

	* config/mips/xm-riscos.h: Delete.
	* config/mips/xm-mipsv4.h, config/mips/xm-mips.h: Delete.
	* config/mips/tm-mipsv4.h, config/mips/riscos.mh: Delete.
	* config/mips/nm-riscos.h, config/mips/nm-news-mips.h: Delete.
	* config/mips/nm-mips.h, config/mips/news-mips.mh: Delete.
	* config/mips/news-mips.mh, config/m68k/tm-m68kv4.h: Delete.
	* config/mips/decstation.mh, config/mips/littlemips.mh: Delete.
	* config/mips/mipsv4.mt, config/m68k/tm-sun3.h: Delete.
	* config/m68k/xm-sun3os4.h, config/m68k/xm-sun3.h: Delete.
	* config/m68k/xm-sun2.h, config/m68k/xm-m68kv4.h: Delete.
	* config/m68k/xm-dpx2.h, config/m68k/xm-delta68.h: Delete.
	* config/m68k/xm-3b1.h, config/m68k/tm-sun3os4.h: Delete.
	* config/m68k/tm-m68klynx.h, config/m68k/tm-dpx2.h: Delete.
	* config/m68k/tm-delta68.h, config/m68k/tm-3b1.h: Delete.
	* config/m68k/sun3os4.mt, config/m68k/nm-sysv4.h: Delete.
	* config/m68k/nm-sun3.h, config/m68k/sun3os4.mh: Delete.
	* config/m68k/sun2os3.mh, config/m68k/nm-sun2.h: Delete.
	* config/m68k/nm-m68klynx.h, config/m68k/sun3os3.mt: Delete.
	* config/m68k/nm-dpx2.h, config/m68k/sun2os3.mt: Delete.
	* config/m68k/dpx2.mh, config/m68k/sun3os3.mh: Delete.
	* config/m68k/sun2os4.mh, config/m68k/nm-delta68.h: Delete.
	* config/m68k/m68kv4.mt, config/m68k/m68klynx.mt: Delete.
	* config/m68k/3b1.mt, config/m68k/m68klynx.mh: Delete.
	* config/m68k/m68kv4.mh, config/m68k/sun2os4.mt: Delete.
	* config/m68k/tm-sun2os4.h, config/m68k/3b1.mh: Delete.
	* config/m68k/dpx2.mt, config/m68k/delta68.mt: Delete.
	* config/m68k/tm-sun2.h, config/m68k/delta68.mh: Delete.

	* configure.tgt: Remove m68000-*-sunos3*, m68000-*-sunos4*,
	m68*-bull-sysv*, m68*-att-*, m68*-motorola-*, m68*-*-lynxos*,
	m68*-*-sunos3*, m68*-*-sunos4*, m68*-*-sysv4*, mips*-*-sysv4*.
	* configure.host: Remove m680[01]0-sun-sunos3*,
	m680[01]0-sun-sunos4*, m68*-att-*, m68*-bull*-sysv*,
	m68*-*-lynxos*, m68*-*-sysv4*, m68*-motorola-*, m68*-sun-sunos3*,
	m68*-sun-sunos4*, m68*-sun-*, mips-dec-*, mips-little-*,
	mips-sony-*, mips-*-mach3*, mips-*-sysv4*, mips-*-sysv*,
	mips-*-riscos*.
	* NEWS: Mention removed systems.

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

	GDB 6.1 release created from 6.1 branch.

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

	* gnu-nat.c (gnu_wait): Use memcpy instead of bcopy.
	* remote-vxmips.c (vx_read_register, vx_write_register): Ditto.
	* remote-vx68.c (vx_read_register, vx_write_register): Ditto.

	* config/vax/xm-vax.h (FAULT_CODE_ORIGIN, INIT_STACK): Delete.
	* config/alpha/xm-alphaosf.h (NO_SIGINTERRUPT): Delete.
	* config/alpha/xm-alphalinux.h (NO_SIGINTERRUPT): Delete.

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

	* MAINTAINERS: Chris Faylor has changed employers; add him to
	"paper trail" section, and update his E-mail address.

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

	* frame-unwind.c (frame_unwind_find_by_frame): Delete check for
	generic dummy frames.
	* dummy-frame.c: Update copyright.
	(dummy_frame_sniffer): Delete check for generic dummy frames.

	* config/pa/tm-hppa.h (REG_PARM_STACK_SPACE): Delete.
	* config/pa/tm-hppa64.h (PA20W_CALLING_CONVENTIONS)
	(REG_PARM_STACK_SPACE): Delete.
	* hppa-tdep.c (hppa64_push_dummy_call, hppa32_push_dummy_call):
	Inline reference to REG_PARM_STACK_SPACE.

	* config/pa/tm-hppah.h (FRAME_SAVED_PC_IN_SIGTRAMP)
	(FRAME_FIND_SAVED_REGS_IN_SIGTRAMP)
	(hppa32_hpux_frame_find_saved_regs_in_sigtramp)
	(FRAME_BASE_BEFORE_SIGTRAMP)
	(hppa32_hpux_frame_base_before_sigtramp)
	(hppa32_hpux_frame_saved_pc_in_sigtramp): Delete.
	* config/pa/tm-hppa64.h (hppa64_hpux_frame_saved_pc_in_sigtramp)
	(hppa64_hpux_frame_find_saved_regs_in_sigtramp)
	(FRAME_FIND_SAVED_REGS_IN_SIGTRAMP)
	(FRAME_BASE_BEFORE_SIGTRAMP)
	(hppa64_hpux_frame_base_before_sigtramp)
	(FRAME_SAVED_PC_IN_SIGTRAMP): Delete.

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

	* PROBLEMS: Mention that GDB doesn't build on HP/UX 11.00.

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

	* sh64-tdep.c (sh64_init_extra_frame_info): Replace
	DEPRECATED_CALL_DUMMY_LENGTH with 0, simplify.
	* dummy-frame.h: Delete out-of-date comments.
	* gdbarch.sh (DEPRECATED_CALL_DUMMY_LENGTH): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.

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

	Committed by Andrew Cagney <cagney@redhat.com>.
        * alpha-tdep.c (alpha_heuristic_frame_unwind_cache): Do not take
        into account an instruction saving a register if we have already
        seen an earlier instruction saving that same register.

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

	* gdbarch.sh (DEPRECATED_INIT_FRAME_PC_FIRST): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* frame.c (legacy_get_prev_frame): Delete references to
	DEPRECATED_INIT_FRAME_PC_FIRST.

	* infrun.c (pc_in_sigtramp): Delete function.
	(check_sigtramp2): Inline call to pc_in_sigtramp, use
	get_frame_type.

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

	* infrun.c (handle_step_into_function): Delete code conditional on
	legacy_frame_p.
	(handle_inferior_event, step_over_function): Ditto.

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

	* frame.c (get_prev_frame_1): Exclude signal trampolines from the
	"previous frame inner to this frame" test.

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

	* frame.c (safe_frame_unwind_memory): New function.
	* frame.h (safe_frame_unwind_memory): Declare.  Update description
	of /safe_/ methods.
	* tramp-frame.c (tramp_frame_start): Re-order parmeters, add
	"next_frame".  Use safe_frame_unwind_memory.
	(tramp_frame_sniffer): Update call to tramp_frame_start.

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

	* dwarf2read.c (dwarf2_objfile_data_key): New.
	(struct dwarf2_per_objfile, dwarf2_per_objfile): New.
	(dwarf_info_size, dwarf_abbrev_size, dwarf_line_size)
	(dwarf_pubnames_size, dwarf_aranges_size, dwarf_loc_size)
	(dwarf_macinfo_size, dwarf_str_size, dwarf_ranges_size)
	(dwarf_frame_size, dwarf_eh_frame_size, dwarf_info_buffer)
	(dwarf_abbrev_buffer, dwarf_line_buffer, dwarf_str_buffer)
	(dwarf_macinfo_buffer, dwarf_ranges_buffer, dwarf_loc_buffer):
	Remove variables.
	(struct dwarf2_pinfo): Remove per-objfile members.  Update comments.
	(DWARF_ABBREV_SIZE, DWARF_LINE_SIZE)
	(DWARF_LOC_SIZE, DWARF_MACINFO_SIZE, DWARF_STR_SIZE)
	(DWARF_RANGES_SIZE, DWARF_INFO_BUFFER)
	(DWARF_ABBREV_BUFFER, DWARF_LINE_BUFFER, DWARF_STR_BUFFER)
	(DWARF_MACINFO_BUFFER, DWARF_RANGES_BUFFER, DWARF_LOC_BUFFER):
	Remove macros.
	(dwarf2_has_info): Take an objfile argument.  Allocate per-objfile
	data.
	(dwarf2_locate_sections, dwarf2_build_psymtabs)
	(dwarf2_build_psymtabs_easy, dwarf2_build_psymtabs_hard)
	(skip_one_die, dwarf2_get_pc_bounds, dwarf2_read_abbrevs)
	(read_partial_die, read_full_die, read_indirect_string)
	(dwarf_decode_line_header, dwarf_decode_macros)
	(dwarf2_symbol_mark_computed): Remove use of removed macros.
	Update uses of removed variables.
	(psymtab_to_symtab_1): Restore per-objfile data pointer.  Remove use
	of removed macros.
	(_initialize_dwarf2_read): New function.
	* symfile.h (dwarf2_has_info): Update prototype.
	* coffread.c (coff_symfile_read): Update call to dwarf2_has_info.
	* elfread.c (elf_symfile_read): Likewise.

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

	* rs6000-tdep.c (rs6000_dwarf2_stab_reg_to_regnum): New, unified
	function for register numbers on all the rs6000-derived targets.
	(rs6000_gdbarch_init): Don't register a separate
	gdbarch_dwarf2_reg_to_regnum function for the E500.  Use
	rs6000_dwarf2_stab_reg_to_regnum for both Dwarf 2 and stabs on all
	variants.

	* i386-tdep.c: Add FIXME regarding STABS vs. Dwarf 2 register
	numbering.

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

	* valarith.c: Update copyright notice.
	(value_add): Handle range types.
	(value_sub): Ditto.
	(value_equal): Ditto.
	(value_less): Ditto.
	(value_neg): Ditto.
	(value_complement): Ditto.
	(value_binop): Simplify slightly by using is_integral_type and
	eliminiating unnecessary COERCE_ENUMs.

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

	* frame.h (frame_unwind_id): Declare.
	* frame.c (frame_unwind_id): New function.
	(get_prev_frame_1): New function.
	(frame_debug_got_null_frame): New function.
	(get_prev_frame): Use frame_debug_got_null_frame.  Move unwind
	code proper to prev_frame, update description.
	* infrun.c (step_over_function): Use frame_unwind_id.

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

	* hppa-tdep.c (hppa32_push_dummy_call): Set the Stack Pointer.
	(hppa64_push_dummy_call): Likewise.

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

	From Ulrich Weigand:
 	* utils.c (query): Do not use a va_list variable multiple times.

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

	* Makefile.in (linux_nat_h): Update dependencies.
	* configure.in: Check for <gnu/libc-version.h>.
	* configure: Regenerate.
	* config.in: Regenerate.
	* linux-nat.h: Include "target.h".  Add waitstatus field to
	struct lwp_info.
	* lin-lwp.c (add_lwp): Initialize waitstatus.kind.
	(lin_lwp_attach_lwp): Don't attach to LWPs we have already attached
	to.
	(lin_lwp_handle_extended): New function.  Handle clone events.
	(wait_lwp): Use lin_lwp_handle_extended.  Update comment about
	thread exit events.
	(child_wait): Handle clone events.
	(lin_lwp_wait: Use lin_lwp_handle_extended and handle clone events.
	* linux-nat.c (linux_enable_event_reporting): Turn on
	PTRACE_O_TRACECLONE.
	(linux_handle_extended_wait): Handle clone events.
	* thread-db.c: Include <gnu/libc-version.h>.
	(struct private_thread_info): Add dying flag.
	(enable_thread_event_reporting): Enable TD_DEATH for glibc 2.2 and
	higher.
	(attach_thread): Update comments.  Handle dying threads.
	(detach_thread): Set the dying flag.
	(check_event): Always call attach_thread.

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

	* mips-tdep.c (mips_pdr_data): New.
	(non_heuristic_proc_desc): Use objfile_data and set_objfile_data.
	(_initialize_mips_tdep): Initialize mips_pdr_data.

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

	* minsyms.c (install_minimal_symbols): Move dropping leading
	char from linkage name from here...
	(prim_record_minimal_symbol_and_info): ...to here.  Simplify
	test for "__gnu_compiled*" symbols.

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

	* rs6000-tdep.c (skip_prologue): Recognize moves from argument
	registers to temp register r0 and byte stores as prologue
	instructions.

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

	* PROBLEMS (Stack backtraces): Rewrite.  Remove reference to
	arm*-*-*.

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

	* tui/tui-regs.c (tui_show_registers): Make sure the TUI is active
	and switch the layout to force a display of register window.

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

	* amd64-tdep.c (amd64_classify): make RANGE_TYPE objects be part
	of the INTEGER class.

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

	* ppc-linux-tdep.c (ppc_linux_init_abi): Long doubles are eight
	bytes long on PPC GNU/Linux.

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

	* PROBLEMS: Refer to gdb/1588 instead of gdb/826.

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

	* PROBLEMS: Add general section titles, remove references to
	specific releases.

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

	* arm-linux-tdep.c (ARM_LINUX_JB_ELEMENT_SIZE): Define to
	INT_REGISTER_SIZE.
	(arm_linux_push_arguments): Use TARGET_DOUBLE_BIT instead of
	FP_REGISTER_VIRTUAL_SIZE.
	* arm-tdep.c (arm_make_sigtramp_cache): Use register_size instead
	of DEPRECATED_REGISTER_RAW_SIZE.
	(arm_register_type): Add gdbarch argument.
	(arm_register_raw_size, arm_register_virtual_size): Delete.
	(arm_register_byte, arm_extract_return_value)
	(arm_store_return_value, arm_get_longjmp_target): Update references
	to INT_REGISTER_RAW_SIZE and FP_REGISTER_RAW_SIZE.
	(arm_gdbarch_init): Likewise.  Don't set
	deprecated_register_raw_size, deprecated_register_virtual_size,
	deprecated_max_register_raw_size,
	deprecated_max_register_virtual_size, or
	deprecated_max_register_virtual_type.  Do set register_type.
	* arm-tdep.h (ARM_MAX_REGISTER_RAW_SIZE)
	(ARM_MAX_REGISTER_VIRTUAL_SIZE, INT_REGISTER_VIRTUAL_SIZE)
	(FP_REGISTER_VIRTUAL_SIZE): Delete.
	(INT_REGISTER_RAW_SIZE): Rename to INT_REGISTER_SIZE.
	(FP_REGISTER_RAW_SIZE): Rename to FP_REGISTER_SIZE.
	* arm-linux-tdep.c (ARM_NBSD_JB_ELEMENT_SIZE): Define to
	INT_REGISTER_SIZE.
	* remote-rdp.c (remote_rdp_fetch_register): Use MAX_REGISTER_SIZE.
	(remote_rdp_store_register): Likewise.

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

	* Makefile.in (mips-linux-tdep.o): Update dependencies.
	* mips-tdep.c (mips_gdbarch_init): Move frame predicates
	to after osabi initialization.
	* mips-linux-tdep.c: Include "trad-frame.h" and "tramp-frame.h".
	(mips_linux_o32_sigframe_init, mips_linux_n32n64_sigframe_init): New
	functions.
	(mips_linux_o32_sigframe, mips_linux_o32_rt_sigframe)
	(mips_linux_n32_rt_sigframe, mips_linux_n64_rt_sigframe): New
	variables.
	(mips_linux_init_abi): Append signal trampoline unwinders.

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

	* tramp-frame.h (TRAMP_SENTINEL_INSN): Define, document.
	* tramp-frame.c: Include "gdb_assert.h".
	(tramp_frame_start): Use TRAMP_SENTINEL_INSN.  Use ULONGEST and
	correct sizeof.
	(tramp_frame_append): Validate the tramp frame's instructions.
	* Makefile.in (tramp-frame.o): Update dependencies.

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

	* trad-frame.h (trad_frame_set_reg_addr): Declare.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* Makefile.in: Update all dependencies.

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

	* Makefile.in (trad_frame_h): Add $(frame_h).
	* trad-frame.h: Update copyright.  Include "frame.h".
	(struct trad_frame_cache, trad_frame_cache_zalloc): Declare.
	(trad_frame_set_id, trad_frame_get_id): Declare.
	(trad_frame_set_reg_addr, trad_frame_get_register): Declare.
	* trad-frame.c: Update copyright.
	(struct trad_frame_cache): Define.
	(trad_frame_cache_zalloc): New function.
	(trad_frame_set_id, trad_frame_get_id): New functions.
	(trad_frame_set_reg_addr, trad_frame_get_register): New functions.

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

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

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

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

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

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

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

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

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

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

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

	* frame.h (deprecated_pc_in_call_dummy): Rename
	generic_pc_in_call_dummy.
	* dummy-frame.h (pc_in_dummy_frame): Delete declaration.
	* dummy-frame.c (deprecated_pc_in_call_dummy): Rename
	generic_pc_in_call_dummy.
	(pc_in_dummy_frame): Make static.
	* gdbarch.sh (DEPRECATED_PC_IN_CALL_DUMMY): Update.
	* gdbarch.h, gdbarch.c: Re-generate.
	* dummy-frame.c (dummy_frame_sniffer): Simplify.
	* frame.c (frame_type_from_pc): Call deprecated_pc_in_call_dummy.
	(legacy_get_prev_frame): Ditto.
	* inferior.h: Delete reference to generic_pc_in_call_dummy in
	comment.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* NEWS: Mention C++ nested types and namespaces

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS: Update my mail address.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS (write after approval): Add myself.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* findvar.c (value_from_register): Doc fix.

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

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

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

	Committed by Elena Zannoni  <ezannoni@redhat.com>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* findvar.c (value_from_register): Doc fix.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* Makefile.in: Update all dependencies.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdbarch.sh (FRAME_ARGS_SKIP): Default to 0.
	* gdbarch.h, gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* v850-tdep.c (v850_gdbarch_init): Update.
	* sh64-tdep.c (sh64_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* mn10300-tdep.c (mn10300_gdbarch_init): Update.
	* mips-tdep.c (mips_gdbarch_init): Update.
	* mcore-tdep.c (mcore_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* m32r-tdep.c (m32r_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* hppa-tdep.c (hppa_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* d10v-tdep.c (d10v_gdbarch_init): Update.
	* cris-tdep.c (cris_gdbarch_init): Update.
	* avr-tdep.c (avr_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* Makefile.in: Update all dependencies.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* NEWS: Add information about new pending breakpoint support.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* breakpoint.h: Update copyright years.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	(struct dwarf2_cu): Add first_fn, last_fn, cached_fn,
	language, language_defn, list_in_scope, and ftypes members.
	(cu_first_fn, cu_last_fn, cu_cached_fn, cu_language)
	(cu_language_defn, list_in_scope, ftypes, cu_header_offset)
	(baseaddr): Remove globals.

	(dwarf_attr): Renamed to dwarf2_attr.  Add CU argument.
	(set_cu_language, die_is_declaration, die_specification)
	(determine_prefix, determin_prefix_aux, class_name, namespace_name)
	(dwarf2_linkage_name, dwarf2_name, dwarf2_extension)
	(dwarf2_get_ref_die_offset, dwarf2_fundamental_type)
	(initialize_cu_func_list, add_to_cu_func_list): Add CU argument.

	(dwarf2_build_psymtabs_hard): Add local baseaddr.  Initialize
	cu.list_in_scope.  Don't initialize cu_header_offset.
	(add_partial_symbol): Add local baseaddr.
	(psymtab_to_symtab_1): Add local baseaddr.  Use
	objfile->section_offsets for consistency.  Don't initialize
	cu_header_offset; do initialize cu.header.offset and
	cu.list_in_scope.
	(read_file_scope, read_func_scope, read_lexical_block_scope)
	(dwarf_decode_lines, new_symbol): Add local baseaddr.

2004-01-27  Michael Chastain  <mec.gnu@mindspring.com>

	* PROBLEMS: Add gdb/1516.

2003-12-29  Robert Millan  <robertmh@gnu.org>

	Patch committed by Andrw Cagney.
	* configure.host: Match knetbsd*-gnu and kfreebsd*-gnu.
	* configure.tgt: Match knetbsd*-gnu.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* breakpoint.c (catch_command_1): Delete #ifdef code.
	(catch_fork_command_1): Delete #ifdef wrapper.
	(catch_exec_command_1): Ditto.
	(catch_load_command_1): Ditto.
	(catch_unload_command_1): Ditto.

	* breakpoint.c (watchpoint_check): Delete #if0ed variable.
	(catch_breakpoint): Delete #if0ed function.
	(disable_catch_breakpoint): Ditto.
	(delete_catch_breakpoint, enable_catch_breakpoint): Ditto.
	(disable_catch, enable_catch, delete_catch): Ditto.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* remote.c (echo_check, quit_flag): Delete variables.
	(cisco_kernel_mode): Delete variable.
	(minitelnet_return, tty_input, escape_count): Delete variables.
	(remote_cisco_mode): Delete variable.
	(remote_cisco_open, remote_cisco_close): Delete function.
	(remote_cisco_mourn, remote_cisco_wait): Delete function.
	(init_remote_cisco_ops): Delete function.
	(_initialize_remote): Do not install "remote cisco" code.
	(read_frame): Delete cisco specific code.
	(remote_info_process): Delete function.
	(remote_wait): Delete cisco specific code.
	(remote_cisco_section_offsets): Delete function.
	(remote_cisco_objfile_relocate): Delete function.
	(remote_async_wait): Delete cisco specific code.
	(minitelnet, readtty, readsocket): Delete function.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (EXTRACT_STRUCT_VALUE_ADDRESS): Deprecate.  Add
	comments mentioning extract_returned_value_address.
	* infcmd.c (print_return_value): Update.  Add comments on
	extract_returned_value_address.
	* stack.c (return_command): Add comments on
	extract_returned_value_address.
	* values.c: Update comment.
	* m32r-tdep.c: Update comment.
	* sparc-tdep.c: Update comment.
	* ia64-tdep.c (ia64_use_struct_convention): Update comment.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
	* sh64-tdep.c (sh64_gdbarch_init): Update.
	* sh-tdep.c (sh_gdbarch_init): Update.
	* s390-tdep.c (s390_gdbarch_init): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	* m68klinux-tdep.c (m68k_linux_init_abi): Update.
	* m68k-tdep.c (m68k_gdbarch_init): Update.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
	* m32r-tdep.c (m32r_gdbarch_init): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	* h8300-tdep.c (h8300_gdbarch_init): Update.
	* frv-tdep.c (frv_gdbarch_init): Update.
	* arm-tdep.c (arm_gdbarch_init): Update.
	* alpha-tdep.c (alpha_gdbarch_init): Update.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* dwarf2loc.c (dwarf_expr_frame_base): Use SYMBOL_OPS instead of
	SYMBOL_LOCATION_FUNCS
	(dwarf2_loclist_funcs, dwarf2_locexpr_funcs): Change type to
	"struct symbol_ops".
	* dwarf2loc.h (dwarf2_locexpr_funcs, dwarf2_loclist_funcs): Change
	type to "struct symbol_ops".
	* symtab.h (struct symbol_ops): Rename "struct location_funcs".
	(struct symbol): Replace ".aux_value.loc.funcs" and
	".aux_value.loc.baton" with ".ops" and ".aux_value.ptr".
	(SYMBOL_OBJFILE): Delete macro.
	(SYMBOL_LOCATION_FUNCS): Delete macro.
	(SYMBOL_LOCATION_BATON): Update.
	* dwarf2read.c (dwarf2_symbol_mark_computed): Set SYMBOL_OPS
	intead of SYMBOL_LOCATION_FUNCS.
	* ax-gdb.c (gen_var_ref): Ditto.
	* printcmd.c (address_info): Ditto.
	* findvar.c (read_var_value): Ditto.
	(symbol_read_needs_frame): Ditto.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* dwarf2read.c (read_func_scope): Document frame-base hack.

2004-01-25  Mark Kettenis  <kettenis@gnu.org>

	* infcmd.c (print_return_value): Plug memory leak; delete
	ui_stream object.  Rename argument `structure_return' to
	`struct_return'.

2004-01-25  Mark Kettenis  <kettenis@gnu.org>

	* infcmd.c (print_return_value): Wrap long lines.
	(finish_command_continuation, finish_command): Remove unused
	variable `funcaddr'.  Fix some coding-standards problems.

	* sparc-tdep.c (sparc_regset_from_core_section): Check whether
	SECT_SIZE is large enough, not whether it's exactly the right size.
	(sparc32_gdbarch_init): Initialize TDEP->sizeof_gregset and
	TDEP->fpregset to zero.

	* sparcnbsd-tdep.c (sparc32nbsd_supply_gregset): Also supply the
	floating-point registers for traditional NetBSD core files.
	(sparc32nbsd_init_abi): Initialize TDEP->sizeof_gregset and
	TDEP->sizeof_fpregset here.

2004-01-25  Mark Kettenis  <kettenis@gnu.org>

	* sparc-tdep.h (sparc32nbsd_sigcontext_saved_regs): New prototype.
	* sparcnbsd-tdep.c (sparc32nbsd_sigcontext_saved_regs): New
	function with code split out from
	sparc32nbsd_sigcontext_frame_cache.
	(sparc32nbsd_sigcontext_frame_cache): Use
	sparc32nbsd_sigcontext_saved_regs.
	(_initialize_sparc32nbsd_tdep): Don't register OS ABI handler for
	OpenBSD.
	* sparcobsd-tdep.c: New file.
	* Makefile.in (ALLDEPFILES): Add sparcobsd-tdep.c.
	(sparcobsd-tdep.o): New dependency.
	* configure.tgt (sparc-*-openbsd*): Set gdb_target to obsd.
	* config/sparc/obsd.mt: New file.

	* sparc-tdep.c (sparc32_gdbarch_init): Don't require
	TDEP->fpregset to be initialized to enable core file register
	sets.

2004-01-24  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.h (struct frame_info, struct trad_frame_saved_reg):
	Add opaque declarations.
	(sparc64nbsd_sigcontext_saved_regs): New prototype.
	* sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_saved_regs): New
	function with code split out from
	sparc64nbsd_sigcontext_frame_cache.
	(sparc64nbsd_sigcontext_frame_cache): Use
	sparc64nbsd_sigcontext_saved_regs.
	(_initialize_sparc64nbsd_tdep): Don't register OS ABI handler for
	OpenBSD.
	* sparc64obsd-tdep.c: New file.
	* Makefile.in (ALLDEPFILES): Add sparc64obsd-tdep.c.
	(sparc64obsd-tdep.o): New dependency.
	* configure.tgt (sparc64-*-openbsd*): Set gdb_target to obsd64 and
	gdb_osabi to GDB_OSABI_OPENBSD_ELF.
	* config/sparc/obsd64.mt: New file.

	* sparc-tdep.c (sparc_fetch_instruction): Return zero if we can't
	read the instruction at PC.

	* sparcnbsd-tdep.c (GDB_OSABI_NETBSD_CORE): Define, based on the
	value of GDB_OSABI_DEFAULT.
	(sparcnbsd_core_osabi_sniffer): Return GDB_OSABI_NETBSD_CORE
	instead of GDB_OSABI_NETBSD_AOUT.

2004-01-24  Nick Roberts  <nick@nick.uklinux.net>

	* mi/mi-cmd-stack.c, mi/mi-cmd-var.c, mi/mi-cmds.h: Update
	copyright.

2004-01-23  Andrew Cagney  <cagney@redhat.com>

	* printcmd.c (display_command): Replace tui_set_display call with
	tui_set_layout_for_display_command.
	* tui/tui.h (enum tui_win_type): Define.
	(tui_set_layout): Delete declaration.
	(tui_set_layout_for_display_command): Rename set_tui_layout.
	* tui/tui-data.h (enum tui_layout_type): Define.
	* tui/tui-layout.h: Update copyright.  Include "tui-data.h" and
	"tui.h".
	(tui_add_win_to_layout): Rename tuiAddWinToLayout.
	(tui_default_win_height): Rename tuiDefaultWinHeight.
	(tui_default_win_viewport_height): Rename
	tuiDefaultWinViewportHeight.
	(tui_set_layout): RenametuiSetLayout.
	* tui/tui-layout.c: Update references.
	* tui/tui.c: Update references.
	* tui/tui-disasm.c: Update references.

2004-01-23  David Carlton  <carlton@kealia.com>

	Partial workaround for PR c++/1511:
	* cp-namespace.c: Include frame.h.
	(cp_lookup_transparent_type): New
	(cp_lookup_transparent_type_loop): New.
	* cp-support.h: Declare cp_lookup_transparent_type.
	* symtab.c (basic_lookup_transparent_type): Renamed from
	lookup_transparent_type.
	(lookup_transparent_type): Replace old body by a call to
	current_language->la_lookup_transparent_type.
	* symtab.h: Update copyright.  Declare
	basic_lookup_transparent_type.
	* language.h: Update copyright.
	(struct language_defn): Add la_lookup_transparent_type.
	* language.c: Update copyright.
	(unknown_language_defn): Add basic_lookup_transparent_type.
	(auto_language_defn): Add basic_lookup_transparent_type.
	(local_language_defn): Add basic_lookup_transparent_type.
	* ada-lang.c: Update copyright.
	(ada_language_defn): Add basic_lookup_transparent_type.
	* c-lang.c: Update copyright.
	(c_language_defn): Add basic_lookup_transparent_type.
	(cplus_language_defn): Add basic_lookup_transparent_type.
	(asm_language_defn): Add basic_lookup_transparent_type.
	(minimal_language_defn): Add basic_lookup_transparent_type.
	* f-lang.c: Update copyright.
	(f_language_defn): Add basic_lookup_transparent_type.
	* jv-lang.c: Update copyright.
	(java_language_defn): Add basic_lookup_transparent_type.
	* m2-lang.c: Update copyright.
	(m2_language_defn): Add basic_lookup_transparent_type.
	* objc-lang.c: Update copyright.
	(objc_language_defn): Add basic_lookup_transparent_type.
	* p-lang.c: Update copyright.
	(p_language_defn): Add basic_lookup_transparent_type.
	* scm-lang.c: Update copyright.
	(scm_language_defn): Add basic_lookup_transparent_type.
	* Makefile.in (cp-namespace.o): Depend on frame.h.

2004-01-23  David Carlton  <carlton@kealia.com>

	Patch for PR c++/1520:
	* dwarf2read.c (read_func_scope): Set processing_current_prefix
	properly if we have a specification die.
	(determine_prefix_aux): Rename from determine_prefix.
	(determine_prefix): Like the old determine_prefix, but never
	returns NULL.

2004-01-23  Theodore A. Roth  <troth@openavr.org>

	* avr-tdep.c: Update copyright.
	(avr_iaddr_p): Delete unused function.
	(avr_saddr_p): Delete unused function.

2004-01-23  David Carlton  <carlton@kealia.com>

	* symfile.c (reread_symbols): Clear objfile->cp_namespace_symtab.
	Fix for PR symtab/1534.

2004-01-23  Mark Kettenis  <kettenis@gnu.org>

	* NEWS (New native configurations): Mention OpenBSD/sparc and
	OpenBSD/sparc64.
	* configure.tgt: Add sparc-*-openbsd* and sparc64-*-openbsd*.
	* configure.host: Likewise.
	* sparcnbsd-tdep.c (_initialize_sparnbsd_tdep): Register OS ABI
	handler for OpenBSD.
	* sparc64nbsd-tdep.c (_initialize_sparc64nbsd_tdep): Likewise.

2004-01-22  Mark Kettenis  <kettenis@gnu.org>

	* sparcnbsd-tdep.c (sparcnbsd_core_osabi_sniffer): New function.
	(_initialize_sparnbsd_tdep): Register sparcnbsd_core_osabi_sniffer.

	* ser-pipe.c (pipe_open): Use proper null pointer in execl call.
	* cli/cli-cmds.c (shell_escape): Likewise.

	* osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Recognize
	OpenBSD .note.openbsd.ident sections.

2004-01-22  David Carlton  <carlton@kealia.com>

	* dwarf2read.c (psymtab_to_symtab_1): Calculate lowpc, highpc via
	get_scope_pc_bounds.
	(read_file_scope): Ditto.
	(get_scope_pc_bounds): New function, produced by extracting code
	from the above two functions, consolidating it, and adding support
	for DW_TAG_namespace.

2004-01-22  Mark Kettenis  <kettenis@gnu.org>

	* osabi.c (MAX_NOTESZ): New define.
	(check_note): New function.
	(generic_elf_osabi_sniff_abi_tag_sections): Reorganize code using
	check_note.

2004-01-21  Roland McGrath  <roland@redhat.com>

	* MAINTAINERS (write after approval): Add myself.

2004-01-21  Eli Zaretskii  <eliz@gnu.org>

	* utils.c (init_page_info): Move declarations of `rows' and
	`cols' before the __GO32__-specific code.  Move the closing brace
	outside the #ifdef __GO32__..#endif block.
	[__GO32__]: Use `rows' and `cols' to avoid compiler warnings.

2004-01-21  Paul Brook  <paul@codesourcery.com>

	* infrun.c (handle_inferior_event): Check stop_stack_dummy if handling
	BPSTAT_WHAT_CHECK_SHLIBS.

2004-01-21  Paul Brook  <paul@codesourcery.com>

	* MAINTAINERS: Add myself to write-after-approval.

2004-01-20  Andrew Cagney  <cagney@redhat.com>

	* ax-gdb.c (print_axs_value): Delete unused function.
	* jv-lang.c (java_lookup_type): Delete unused function.
	* cli/cli-dump.c (dump_filetype): Delete unused function.
	* remote-mips.c (remote_mips_insert_hw_breakpoint)
	(remote_mips_remove_hw_breakpoint): Delete unused functions.
	(mips_getstring): Delete unused function.
	(pmon_insert_breakpoint): Delete #if0ed function.
	(PMON_MAX_BP): Delete #if0ed MACRO.
	(mips_pmon_bp_info): Delete #if0ed variable.
	(pmon_remove_breakpoint): Delete #if0ed function.
	* monitor.c (monitor_write_even_block): Delete unused function.
	(monitor_write_memory_block): Delete #if0ed code.
	* dink32-rom.c (dink32_load): Delete unused function.
	(_initialize_dink32_rom): Delete #if0ed code.
	* d10v-tdep.c (d10v_daddr_p): Delete unused function.

	* tui/tui-command.c: Update references.
	* tui/tui-io.c: Update references.
	* tui/tui-command.h: Update copyright.
	(tui_dispatch_ctrl_char): Rename tuiDispatchCtrlChar.

	* source.c (ambiguous_line_spec): Delete never-defined function.
	* remote-rdi.c (arm_rdi_mourn, arm_rdi_send): Ditto.
	* gdbtypes.c (add_name, add_mangled_type): Ditto.
	* cli/cli-cmds.c (validate_comname): Ditto.

	* tui/tui-disasm.h: Update copyright.  Include "tui.h" and
	"tui-data.h".
	(tui_set_disassem_content): Rename tuiSetDisassemContent.
	(tui_show_disassem): Rename tuiShowDisassem.
	(tui_show_disassem_and_update_source): Rename
	tuiVerticalDisassemScroll.
	(tui_vertical_disassem_scroll): Rename tuiVerticalDisassemScroll.
	(tui_get_begin_asm_address): Rename tuiGetBeginAsmAddress.
	* tui/tui.h: Update copyright.
	(enum tui_status): Define.
	* tui/tui-data.h (enum tui_scroll_direction): Define.
	* tui/tui-disasm.c: Update copyright.  Update references.
	* tui/tui-winsource.c: 	Update copyright.  Update references.
	* tui/tui-win.c: Update references.
	* tui/tui-layout.c: Update references.

2004-01-20  Andrew Cagney  <cagney@redhat.com>

	* mi/mi-cmd-stack.c (list_args_or_locals): Move declaration of
	sym2 to start of block.

2004-01-19  Michael Chastain  <mec.gnu@mindspring.com>

	* MAINTAINERS: Delete mmalloc.
	* Makefile.in: Delete MMALLOC, MMALLOC_CFLAGS, -lmmalloc, mmalloc_h.
	* NEWS: Mention removal of --with-malloc.
	* acconfig.h: Delete USE_MMALLOC, MMCHECK_FORCE.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.in: Delete MMALLOC_CFLAGS, MMALLOC, --with-mmalloc,
	USE_MMALLOC, MMCHECK_FORCE.
	* gdbinit.in: Remove mmalloc.
	* utils.c: Delete USE_MMALLOC, NO_MMCHECK, MMCHECK_FORCE, malloc_botch.
	* config/alpha/alpha-linux.mh: Delete MMALLOC, MMALLOC_CFLAGS.
	* config/i386/go32.mh: Likewise.
	* config/i386/interix.mh: Likewise.
	* config/powerpc/xm-linux.h: Delete MMAP_BASE_ADDRESS, MMAP_INCREMENT.

2004-01-19  Jeff Johnston  <jjohnstn@redhat.com>

	* linespec.c (decode_variable, symtab_from_filename):  Call
	error_silent with error message instead of throwing an exception
	directly.
	* defs.h (error_silent, error_output_message): Add prototypes.
	(catch_exceptions_with_msg): Ditto.
	* utils.c (error_silent, error_output_message): New functions.
	* top.c (catch_exceptions_with_msg): New function.

2004-01-20  Nick Roberts  <nick@nick.uklinux.net>

	* mi/mi-cmds.h (enum print_values): Add definition.

	* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Print the name,
	type and value for simple data types and just the name and type
	for complex ones, if required.

	PR mi/1438
	* mi/mi-cmd-var.c (mi_cmd_var_list_children): Print the values of the
	children, if required.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (frv_push_arguments, frv_saved_pc_after_call): Delete
	unused declarations.

2004-01-19  Andrew Cagney  <cagney@redhat.com>

	* top.h (mapped_symbol_files): Delete declaration.
	* main.c (captured_main): Delete option "m" and "mapped".
	* objfiles.c (mapped_symbol_files): Delete variable.
	* symfile.c (symbol_file_command): Delete mmap code.
	(symbol_file_add_with_addrs_or_offsets): Ditto.
	(add_symbol_file_command, reread_separate_symbols): Ditto.
	* objfiles.h (OBJF_MAPPED): Delete.
	* objfiles.c (allocate_objfile) [USE_MMALLOC]: Delete.
	(free_objfile) [USE_MMALLOC]: Ditto.
	(open_existing_mapped_file): Delete function.
	(open_mapped_file): Delete function.
	(map_to_file): Delete function.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* infrun.c (step_into_function): Account for possible breakpoint
	adjustment when computing ``stop_func_start''.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* target.c (default_region_size_ok_for_hw_watchpoint): Compare
	the region size against the size of a pointer, not the size of
	a register as given by DEPRECATED_REGISTER_SIZE.

2004-01-19  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-regs.h: Include "tui-data.h".
	(tuiFirstRegElementNoInLine): Delete declaration.
	(tui_display_registers_from): Rename tuiDisplayRegistersFrom.
	(tui_last_regs_line_no): Rename tuiLastRegsLineNo.
	(tui_line_from_reg_element_no): Rename tuiLineFromRegElementNo.
	(tui_calculate_regs_column_count): Rename
	tuiCalculateRegsColumnCount.
	(tui_check_register_values): Rename tuiCheckRegisterValues.
	(tui_show_registers): Rename tuiShowRegisters.
	(tui_display_registers_from_line): Rename
	tuiDisplayRegistersFromLine.
	(tui_first_reg_element_inline): Rename tuiFirstRegElementInLine.
	(tui_toggle_float_regs): Rename tuiToggleFloatRegs.
	(tui_first_reg_element_no_inline): Rename
	tuiFirstRegElementNoInLine.
	* tui/tui-data.h: Update copyright.
	(enum tui_register_display_type): Rename _TuiRegisterDisplayType.
	* tui/tui-windata.c: Update copyright, update references.
	* tui/tui-regs.c: Update copyright, update references.
	* tui/tui-win.c: Update copyright, update references.
	* tui/tui-layout.c: Update copyright, update references.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-io.c: Update copyright.
	(key_is_end_sequence, key_is_backspace): New functions.
	(key_is_command_char, key_is_start_sequence): New function.
	(tui_getc): Update references.
	* tui/tui-io.h: Update copyright.
	(m_tuiStartNewLine): Delete macro.
	(m_isBackspace, m_isDeleteChar): Delete macros.
	(m_isDeleteLine, m_isDeleteToEol): Delete macros.
	(m_isNextPage, m_isPrevPage): Delete macros.
	(m_isLeftArrow, m_isRightArrow): Delete macros.
	(m_isXdbStyleCommandChar): Delete macro.
	(key_is_start_sequence): Declare, replace m_isStartSequence.
	(key_is_end_sequence): Declare, replace m_isEndSequence.
	(key_is_backspace): Declare ,replace m_isBackspace.
	(key_is_command_char): Declare, replace m_isCommandChar.
	* tui/tui-command.c: Update copyright.
	(tuiDispatchCtrlChar): Update references.

	* config/djgpp/fnchange.lst: Delete tui/tuiSourceWin.c and
	tuiSourceWin.h.

	* tui/tui-command.c: Rename tui/tuiCommand.c.
	* tui/tui-command.h: Rename tui/tuiCommand.h.
	* tui/tui-data.c: Rename tui/tuiData.c.
	* tui/tui-data.h: Rename tui/tuiData.h.
	* tui/tui-disasm.c: Rename tui/tuiDisassem.c.
	* tui/tui-disasm.h: Rename tui/tuiDisassem.h.
	* tui/tui-io.c: Rename tui/tuiIO.c.
	* tui/tui-io.h: Rename tui/tuiIO.h.
	* tui/tui-layout.c: Rename tui/tuiLayout.c.
	* tui/tui-layout.h: Rename tui/tuiLayout.h.
	* tui/tui-regs.c: Rename tui/tuiRegs.c.
	* tui/tui-regs.h: Rename tui/tuiRegs.h.
	* tui/tui-source.c: Rename tui/tuiSource.c.
	* tui/tui-source.h: Rename tui/tuiSource.h.
	* tui/tui-stack.c: Rename tui/tuiStack.c.
	* tui/tui-stack.h: Rename tui/tuiStack.h.
	* tui/tui-win.c: Rename tui/tuiWin.c.
	* tui/tui-win.h: Rename tui/tuiWin.h.
	* tui/tui-windata.c: Rename tui/tuiDataWin.c.
	* tui/tui-windata.h: Rename tui/tuiDataWin.h.
	* tui/tui-wingeneral.c: Rename tui/tuiGeneralWin.c.
	* tui/tui-wingeneral.h: Rename tui/tuiGeneralWin.h.
	* tui/tui-winsource.c: Rename tui/tuiSourceWin.c.
	* tui/tui-winsource.h: Rename tui/tuiSourceWin.h.
	* tui/tui-file.c: Update includes.
	* tui/tui-hooks.c: Update includes.
	* tui/tui-interp.c: Update includes.
	* tui/tui.c: Update includes.
	* Makefile.in: Update all tui/ dependencies.
	(SUBDIR_TUI_OBS, SUBDIR_TUI_SRCS): Update file names.

	* Makefile.in: Update copyright.  Update dependencies.

	* tui/tuiSourceWin.c (tui_update_breakpoint_info): Fix compile
	problem.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* mn10300-tdep.c (_initialize_mn10300_tdep): Call gdbarch_register
	instead of register_gdbarch_init.

	* remote-sds.c (tohex): Delete unused function.  Update copyright.
	* xstormy16-tdep.c (xstormy16_register_virtual_size): Ditto.
	* v850-tdep.c (v850_register_virtual_size): Ditto.
	* target.c (normal_target_post_startup_inferior): Ditto.
	* source.c (ambiguous_line_spec): Ditto.
	* remote.c (adapt_remote_get_threadinfo): Ditto.
	* mi/mi-out.c (out_field_fmt): Ditto.
	* mi/mi-interp.c (mi_interp_read_one_line_hook): Ditto.
	(output_control_change_notification): Ditto.
	* m68k-tdep.c (m68k_register_byte): Ditto.
	(m68k_remote_breakpoint_from_pc): Ditto.
	* ui-out.c (init_ui_out_state): Delete unused declaration.
	* stabsread.c (search_value): Ditto.
	* mi/mi-cmd-env.c (env_cli_command): Ditto.
	* maint.c (print_section_table): Ditto.
	* infrun.c (set_follow_fork_mode_command): Ditto.

2004-01-18  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2-frame.c (execute_cfa_program): Move DWA_CFA_nop before
	DW_CFA_def_cfa_exporession.  Add support for
	DW_CFA_offset_extendend_sf, DW_CFA_def_cfa_sf and
	DW_CFA_def_cfa_offset_sf.  This should fix PR backtrace/1391.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* ocd.c: Update copyright.
	(bdm_read_register_command): Delete unused function.
	(_initialize_remote_ocd): Delete commented out reference.
	(get_quoted_char, reset_packet): Delete #if0ed function.
	(output_packet, put_quoted_char): Delete #if0ed function.
	(stu_put_packet, stu_get_packet): Delete #if0ed function.
	(ocd_start_remote): Delete #if0ed code, remove #if1 wrapper.
	(BDM_BREAKPOINT): Delete #if0ed macro.
	(remote_timeout): Delete #if0ed variable.

2004-01-18  Mark Kettenis  <kettenis@gnu.org>

	* Makefile.in (ALLDEPFILES): Remove core-sol2.c.
	(core-sol2.o): Remove dependency.
	* core-sol2.c: Remove file.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mdebugread.c (compare_blocks): Make addr_diff a LONGEST.
	* block.h: Make GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOOCK
	enums.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* remote.c: Update copyright years.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* remote.c (remote_vcont_resume): Use xstrprintf instead of sprintf.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mdebugread.c: Update copyright.
	(parse_symbol): Replace DEPRECATED_STREQ with strcmp.
	(parse_type, parse_procedure): Ditto.
	(parse_partial_symbols, psymtab_to_symtab_1): Ditto.

	* cris-tdep.c (cris_store_struct_return): Put back accidently
	deleted function.

	* gdbarch.sh: Update copyright year.
	* gdbarch.h, gdbarch.c: Re-generate.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	Suggested by George Anzinger.
	* dwarf2expr.c (execute_stack_op): Fetch the second item from the
	correct stack offset.  Include unknown opcode numbers in the error
	message.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* x86-64-tdep.c (x86_64_init_abi): No need to clear
	extract_struct_value_address, i386 does not set it.
	* sparc64-tdep.c (sparc64_init_abi): Do not set
	extract_struct_value_address, never called.
	(sparc64_extract_struct_value_address): Delete function.
	* m68hc11-tdep.c: Update copyright.
	(m68hc11_gdbarch_init): Delete redundant assignment of
	extract_struct_value_address.
	* i386-tdep.c: Update copyright.
	(i386_gdbarch_init): Do not set extract_struct_value_address,
	never called.
	(i386_extract_struct_value_address): Delete function.
	* sparc-tdep.c (sparc32_gdbarch_init): Do not set
	extract_struct_value_address, never called.
	(sparc32_extract_struct_value_address): #if 0 function.  Add
	comments explaining its future.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* arm-tdep.c (arm_write_pc): New function.
	(arm_gdbarch_init): Call set_gdbarch_write_pc.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (must_shift_inst_regs): Delete.
	(bpstat_stop_status): Delete references to DECR_PC_AFTER_HW_BREAK
	and SHIFT_INST_REGS.
	* infcmd.c (step_1, step_1_continuation): Delete references to
	SHIFT_INST_REGS.
	* infrun.c (keep_going): Likewise.
	* target.h (DECR_PC_AFTER_HW_BREAK): Don't define.
	* config/i386/nm-i386.h (DECR_PC_AFTER_HW_BREAK): Likewise.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* infcmd.c (print_return_value): Delete reference to
	DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS.

	* cris-tdep.c (cris_gdbarch_init): Do not set
	deprecated_extract_struct_value_address.

	* xstormy16-tdep.c: Update copyright.
	(xstormy16_extract_struct_value_address): Update to current
	extract struct value address interface.
	(xstormy16_gdbarch_init): Set extract_struct_value_address.
	* sh64-tdep.c (sh64_extract_struct_value_address): Update to
	current extract struct value address interface.
	(sh64_gdbarch_init): Set extract_struct_value_address.

	* cris-tdep.c: Update copyright.
	(cris_extract_struct_value_address): Delete function.
	(struct_return_address): Delete variable.
	(cris_store_struct_return): Do not set struct_return_address.

	* mcore-tdep.c: Update copyright.
	(mcore_extract_struct_value_address): Delete function.  Update
	comments.
	(mcore_gdbarch_init): Update.
	* mn10300-tdep.c: Update copyright.
	(mn10300_extract_struct_value_address): Delete function.
	(mn10300_gdbarch_init): Update.
	* v850-tdep.c: Update copyright.
	(v850_extract_struct_value_address): Delete.
	(v850_gdbarch_init): Update.
	* ns32k-tdep.c: Update copyright.
	(ns32k_extract_struct_value_address): Delete.
	(ns32k_gdbarch_init): Update.
	* hppa-tdep.c (hppa_extract_struct_value_address): Delete.
	(hppa_gdbarch_init): Update.
	* vax-tdep.c: Update copyright.
	(vax_extract_struct_value_address): Delete.
	(vax_gdbarch_init): Update.

	* gdbarch.sh (DEPRECATED_NPC_REGNUM): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* procfs.c (procfs_fetch_registers): Delete reference to
	DEPRECATED_NPC_REGNUM.
	(procfs_store_registers): Ditto.
	* regcache.c (generic_target_write_pc): Simplify.
	* lynx-nat.c: Delete #ifdef SPARC code.  Not used.

	* core-sol2.c (fetch_core_registers): Replace
	DEPRECATED_NPC_REGNUM with equivalent tdep value.

	* hppa-tdep.c: Update copyright year.
	(hppa_target_write_pc): Use PCOQ_TAIL_REGNUM instead of
	NPC_REGNUM.
	(hppa_gdbarch_init): Do not set deprecated_npc_regnum.

	* mips-tdep.c (mips_write_pc): New function.
	(mips_gdbarch_init): Set "write_pc" to "mips_write_pc".
	(mips_read_pc): Use mips_regnum instead of PC_REGNUM.
	(mips_find_saved_regs, mips_software_single_step: Ditto.
	(mips_frame_saved_pc, mips_frame_saved_pc): Ditto.
	mips_init_extra_frame_info, mips_pop_frame): Ditto.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c: Re-indent.  Group functions by ABI.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DECR_PC_AFTER_BREAK): Make zero the default.
	* gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	DECR_PC_AFTER_BREAK to zero.
	* vax-tdep.c (vax_gdbarch_init): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc32_gdbarch_init): Ditto.
	* sh64-tdep.c (sh64_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* m32r-tdep.c (m32r_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-interix-tdep.c (i386_interix_init_abi): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* i386-nto-tdep.c (i386nto_init_abi): Add comment.

2004-01-17  J. Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (dwarf2_non_const_array_bound_ignored_complaint):
	Delete, no longer used.
	(read_subrange_type): New function, mostly extracted from
	read_array_type().
	(read_array_type): Replace extracted code by call to
	read_subrange_type().
	(dwarf2_get_attr_constant_value): New function.
	(scan_partial_symbols): Add handling for DW_TAG_subrange_type.
	(add_partial_symbol): Likewise.
	(process_die): Likewise.
	(new_symbol): Likewise.
	(read_type_die): Likewise.

2004-01-16  Andrew Cagney  <cagney@redhat.com>

	* symfile.c: Update copyright year.
	(compare_symbols): Delete unused function.
	* stabsread.c: Update copyright year.
	(lrs_general_complaint): Delete unused function.
	(ref_search_value): Ditto.
	(get_substring): Delete declaration.
	* sh64-tdep.c: Update copyright year.
	(sh64_get_gdb_regnum): Delete unused function.
	* dwarf2read.c (dwarf2_unsupported_at_frame_base_complaint):
	Delete unused function.

2004-01-17  Mark Kettenis  <kettenis@gnu.org>

	* defs.h (gdb_osabi): Add GDB_OSABI_OPENBSD_ELF.
	* osabi.c (gdb_osabi_names): Add "OpenBSD ELF".

2004-01-16  Andrew Cagney  <cagney@redhat.com>

	Changes from Peter Schauer.
	* rs6000-tdep.c: Update copyright year.
	(rs6000_push_dummy_call): Update the stack pointer before
	accessing the corresponding stack region.
	* rs6000-nat.c: Update copyright year.
	(set_host_arch): Set "info.abfd" to "exec_bfd".

2004-01-15  Mark Kettenis  <kettenis@gnu.org>

	* blockframe.c: Update copyright year.
	(inside_entry_func): Don't treat a zero PC specially.

2004-01-14  Elena Zannoni  <ezannoni@redhat.com>

	* gcore.c (gcore_copy_callback): Use paddr_d to print size
	variable.
	(gcore_create_callback): Ditto.  Skip any memory segment that has
	no permissions set.

2004-01-14  David Carlton  <carlton@kealia.com>

	Change symbols for C++ nested types to contain the fully qualified
	name, if possible.  (At least in the DWARF-2 case.)  Partial fix
	for PR's c++/57, c++/488, c++/539, c++/573, c++/609, c++/832,
	c++/895.
	* c-exp.y (qualified_type): Handle types nested within classes.
	* cp-namespace.c: Update comments.
	(cp_set_block_scope): Delete #if 0.
	(cp_lookup_nested_type): Handle types nested within classes.
	* dwarf2read.c: (scan_partial_symbols): Call add_partial_structure
	when appropriate.
	(add_partial_symbol): Add the name of the enclosing namespace to
	types.
	(pdi_needs_namespace): New.
	(add_partial_namespace): Tweak comment.
	(add_partial_structure): New.
	(psymtab_to_symtab_1): Initialize processing_current_prefix
	here...
	(process_die): instead of here.
	(read_structure_scope): Try to figure out the name of the class or
	namespace that the structure might be defined within.
	(read_enumeration): Generate fully-qualified names, if possible.
	(read_namespace): Don't set name to NULL.
	(die_specification): New.
	(new_symbol): Generate fully-qualified names for types.
	(read_type_die): Determine appropriate prefix.
	(determine_prefix): New.
	(typename_concat): New.
	(class_name): New.
	* valops.c (value_aggregate_elt): Pass NOSIDE to
	value_struct_elt_for_reference.
	(value_struct_elt_for_reference): Make static, add NOSIDE
	parameter, call value_maybe_namespace_elt as a last resort.
	(value_namespace_elt): Break out code into
	value_maybe_namespace_elt.
	(value_maybe_namespace_elt): New.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_convert_register_p): Handle both raw and
	cooked floating-point registers.
	(mips_gdbarch_init): Set convert_register_p, register_to_value,
	and value_to_register.

2004-01-13  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (FUNCTION_START_OFFSET): Make zero the default.
	* gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	FUNCTION_START_OFFSET.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc32_gdbarch_init): Ditto.
	* sh64-tdep.c (sh64_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* m32r-tdep.c (m32r_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Ditto.

2004-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* infrun.c (follow_fork_mode_ask): Remove.
	(follow_fork_mode_kind_names): Remove follow_fork_mode_ask.
	(follow_fork): Simplify and remove internal error for
	follow_fork_mode_ask.
	(_initialize_infrun): Update "set follow-fork-mode" help text.

2004-01-13  Andrew Cagney  <cagney@redhat.com>

	* configure.in: Update copyright year.
	(build_warnings): Add -Wunused-label.
	* configure: Re-generate.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* exec.h (exec_ops): Make "extern".

	* mips-tdep.c (mips_pseudo_register_read): Don't return a value,
	the function is void.
	(mips_pseudo_register_write): Ditto.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* stack.c (frame_info): Delete DEPRECATED_PRINT_EXTRA_FRAME_INFO
	call.  Never defined.
	* sparc-tdep.h (struct frame_info): Add opaque declaration.
	* sparc64-tdep.h (struct gdbarch): Add opaque declaration.
	(struct sparc_gregset, struct regcache): Ditto.
	* sparc-nat.c: Update copyright.  Specify "GNU/Linux".

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* mi/ChangeLog: Delete file.  Renamed to ...
	* mi/ChangeLog-1999-2003: New file.
	* tui/ChangeLog: Delete file.  Renamed to ...
	* tui/ChangeLog-1998-2003: New file.

2004-01-11  Mark Kettenis  <kettenis@gnu.org>

	* sparc64nbsd-tdep.c: Include "regset.h".
	(sparc64nbsd_sizeof_struct_reg, sparc64nbsd_sizeof_struct_fpreg):
	Remove variables.
	(fetch_core_registers): Remove function.
	(sparc64nbsd_core_fns): Remove variable.
	(sparc64nbsd_supply_gregset, sparc64nbsd_supply_fpregset): New
	functions.
	(sparc64nbsd_init_abi): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_gregset.
	(_initialize_sparc64nbsd_tdep): Remove call to add_core_fns.

	* sparc-tdep.c (sparc32_extract_struct_value_address): Rename from
	sparc_extract_struct_value_address.
	(sparc32_gdbarch_init): Set extract_struct_value_address.
	* sparc64-tdep.c (sparc64_extract_struct_value_address): New
	function.
	(sparc64_init_abi): Set extract_struct_value_address.  Don't set
	return_value_on_stack.

	* NEWS: Mention that %cs and %ss have been added to the AMD64
	configurations

	* frame.c: Update copyright year.
	(get_prev_frame): Improve comment.

	* sparc64fbsd-tdep.c: Include "regset.h".
	(sparc64fbsd_sizeof_struct_reg, sparc64fbsd_sizeof_struct_fpreg):
	Remove variables.
	(fetch_core_registers): Remove function.
	(sparc64fbsd_core_fns): Remove variable.
	(sparc64fbsd_supply_gregset, sparc64fbsd_supply_fpregset): New
	functions.
	(sparc64fbsd_init_abi): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_gregset.
	(_initialize_sparc64fbsd_tdep): Remove call to add_core_fns.

	* sparcnbsd-tdep.c: Include "regset.h".
	(fetch_core_registers): Remove function.
	(sparcnbsd_core_fns, sparcnbsd_elfcore_fns): Remove varaibles.
	(sparc32nbsd_supply_gregset, sparc32nbsd_supply_fpregset): New
	functions.
	(sparc32nbsd_init_abi): Initialize TDEP->gregset and
	TDEP->fpregset.
	(_initialize_sparcnbsd_tdep): Remove calls to add_core_fns.

	* sparc-tdep.h (struct regset): Provide opaque declaration.
	(struct gdbarch_tdep): Add gregset, sizeof_gregset,
	fpregset and sizeof_fpregset members.
	* sparc-tdep.c (struct regset): Provide opaque declaration.
	(sparc_regset_from_core_section): New function.
	(sparc32_gdbarch_init): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_fpregset.
	Set regset_from_core_section when appropriate.

2004-01-10  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c (amd64_non_pod_p): New function.
	(amd64_classify_aggregate): Return class memory for non-POD
	C++ structure types.

	* x86-64-tdep.c (amd64_push_arguments): Add struct_return
	argument.  Use it to reserve a register if necessary.
	(amd64_push_dummy_call): Pass STRUCT_RETURN in call to
	amd64_push_arguments.

	* x86-64-tdep.c (amd64_classify_aggregate): Ignore static fields.

	* x86-64-tdep.c (amd64_register_info): Add %cs and %ss.  Adjust
	register numbers in comments.
	* x86-64-tdep.h: Update copyright year.
	(X86_64_ST0_REGNUM, X86_64_XMM0_REGNUM, X86_64_XMM1_REGNUM):
	Adjust for addition of %cs and %ss.
	* amd64fbsd-nat.c: Update copyright year.
	(reg_offset): Add register offsets for %cs and %ss.
	* amd64fbsd-tdep.c: Update copyright year.
	(amd64fbsd_r_reg_offset): Add register offsets for %cs and %ss.
	(amd64fbsd_sc_reg_offset): Likewise.
	* x86-64-linux-nat.c: Update copyright year.
	(x86_64_linux_gregset64_reg_offset): Add register offsets for %cs
	and %ss.
	* amd64nbsd-nat.c: Update copyright year.
	(amd64nbsd32_r_reg_offset): Add register offsets for %cs and %ss.
	* amd64nbsd-tdep.c: Update copyright year.
	(amd64nbsd_r_reg_offset): Add register offsets for %cs and %ss.
	* x86-64-linux-tdep.c: Update copyright year.
	(user_to_gdb_regmap): Add mapping for %cs and %ss.
	(x86_64_linux_sc_reg_offset): Adjust for addition of %cs and %ss.
	* regformats/reg-x86-64.dat: Add %cs and %ss.

	* blockframe.c (inside_entry_func): Reformat.  Introduce new local
	variables to prevent long lines.  Update comments to reflect
	reality.

2004-01-09  David Carlton  <carlton@kealia.com>

	Checked in by Elena Zannoni  <ezannoni@redhat.com>.
	* dwarf2read.c (read_namespace): Pull out name-generating code
	into namespace_name. Rename previous_namespace to previous_prefix
	and processing_current_namespace to processing_current_prefix..
        (namespace_name): New function.
	(add_partial_symbol): Substitute uses of pdi->name with
	actual_name.
	* cp-support.h: Rename processing_current_namespace to
	processing_current_prefix.
        Update copyright year.
	* cp-namespace.c: Rename processing_current_namespace to
	processing_current_prefix.
        Update copyright year.

2004-01-09  Andrew Cagney  <cagney@redhat.com>

	* jv-valprint.c, ser-unix.c: Add missing copyright years.

2004-01-09  Mark Kettenis  <kettenis@gnu.org>

	* dbxread.c (read_dbx_symtab): Ignore N_PATCH stabs instead of
	complaining.
	(process_one_symbol): Deal with N_PATCH stabs.

2004-01-09  Elena Zannoni  <ezannoni@redhat.com>

	* dwarf2read.c (read_array_type): Discard FORTRAN_HACK macro and
	ifdeffed code.
        Update copyright year.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* config/pa/tm-hppa.h: Update extern declarations for
	hppa32_hpux_frame_saved_pc_in_sigtramp,
	hppa32_hpux_frame_base_before_sigtramp, and
	hppa32_hpux_frame_find_saved_regs_in_sigtramp.

2004-01-08  Michael Chastain  <mec.gnu@mindspring.com>

	* config/pa/tm-hppah.h: Update copyright years.

2004-01-08  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_n32n64_reg_struct_has_addr): Delete function.
	(mips_o32_reg_struct_has_addr): Delete function.
	(mips_gdbarch_init): Update.
	(mips_extract_struct_value_address): Delete function.

2004-01-08  David Mosberger  <davidm@hpl.hp.com>

	* ia64-linux-tdep.c: Update GATE_AREA_END value to reflect
	reality.

2004-01-07  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_gdbarch_init): Set elf_flags to the previous
	architecture's elf flags (when available).

	* mips-tdep.c (mips_gdbarch_init): Move code determining the MIPS
	FPU to the start, check the MIPS FPU when looking for an old
	architecture.
	(set_mipsfpu_single_command): Update the architecture.
	(set_mipsfpu_double_command, set_mipsfpu_none_command): Ditto.

	* mips-tdep.c (MIPS_DEFAULT_MASK_ADDRESS_P): Delete macro.
	(mips_mask_address_p): Add "tdep" parameter.
	(show_mask_address, mips_addr_bits_remove): Update.
	(mips_dump_tdep): Update.
	(MIPS_DEFAULT_STACK_ARGSIZE): Delete macro.
	(MIPS_STACK_ARGSIZE): Delete macro.
	(mips_stack_argsize, mips_eabi_push_dummy_call): Update.
	(mips_n32n64_push_dummy_call, mips_o32_push_dummy_call): Update.
	(mips_o64_push_dummy_call, mips_o32_return_value): Update.
	(mips_dump_tdep): Update.
	(MIPS_SAVED_REGSIZE): Delete macro.
	(MIPS_DEFAULT_SAVED_REGSIZE): Delete macro.
	(mips_saved_regsize, mips_eabi_use_struct_convention): Update.
	(mips_eabi_reg_struct_has_addr, mips_find_saved_regs): Update.
	(mips_frame_saved_pc, mips16_heuristic_proc_desc): Update.
	(mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call): Update.
	(mips_o32_push_dummy_call, mips_o64_push_dummy_call): Update.
	(mips_pop_frame, return_value_location): Update.
	(mips_n32n64_return_value, mips_dump_tdep): Update.

	* mips-tdep.c (mips_gdbarch_init): Clean up code selecting the
	MIPS ABI.

	* mips-tdep.c: Update copyright.
	(mips_gdbarch_init): Merge two code blocks handling the register
	name and number layout.

2004-01-02  Pawel Ostrowski  <pasza@zodiac.mimuw.edu.pl>

	* tracepoint.c (validate_actionline): Fix segv at EOF

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* hpread.c (hpread_read_struct_type): Call SET_FIELD_PHYSNAME
	properly for static fields.

2004-01-06  Jeff Johnston  <jjohnstn@redhat.com>
	    Jason Molenda  <jmolenda@apple.com>

	* disasm.c: Update copyright to include 2004.
	(do_mixed_source_and_assembly): For uiout asm list
	and tuple cleanups, initialize to null_cleanup instead of
	NULL and do so prior to loop.  Only reset when we close off
	the tuple/list.  Move check for whether to close off the
	asm tuple/list to after dump_insns call where it will be run
	on each loop iteration.

2004-01-05  Andrew Cagney  <cagney@redhat.com>

	* ser-unix.c (ser_unix_async): Fix tipo, "NOTHING_SECHEDULED"
	should be a switch case and not a label.
	* mips-tdep.c (mips32_next_pc): Delete unused labels
	"greater_equal_branch" and "less_zero_branch".
	* jv-valprint.c (java_print_value_fields): Delete unused label
	"flush_it".

	* target.c (unpush_target): Only close a target that is in the
	target stack.

2004-01-05  Mark Kettenis  <kettenis@gnu.org>

	* sparc-tdep.c (sparc_extract_struct_value_address): Get the
	address from [sp + 64] instead of %o2.

	* frame.c (get_prev_frame): Don't try to unwind the PC.  This
	fixes PR backtrace/1476.

2004-01-05  Andrew Cagney  <cagney@redhat.com>

	* libunwind-frame.h (struct frame_id): Add opaque declaration,
	move to start of file.
	* i386-tdep.h (struct regcache): Add opaque declaration.
	* config/ia64/nm-linux.h (struct target_ops): Add opaque
	declaration.
	* ia64-tdep.c (ia64_find_proc_info_x): Do not use __FUNCTION__.
	(ia64_gdbarch_init): Use "GNU/Linux" in comment.
	* win32-nat.c (fake_create_process): Use ISO C style definition.
	* stabsread.c (define_symbol): Delete #ifndef
	DEPRECATED_USE_REGISTER_NOT_ARG wrapper around
	stabs_argument_has_addr call, macro never defined.

2004-01-04  Michael Chastain  <mec.gnu@mindspring.com>

	* op50-rom.c: Delete.
	* w89k-rom.c: Delete.
	* Makefile.in: Remove references.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* x86-64-tdep.c: Update copyright year.
	(struct amd64_register_info): Rename from x86_64_register_info.
	(amd64_register_info): Rename from x86_64_register_info.
	(AMD64_NUM_REGS): Rename from X86_64_NUM_REGS.
	(amd64_register_name): Rename from x86_64_register_name.
	(amd64_register_type): Rename from x86_64_register_type.
	(amd64_dwarf_regmap): Rename from x86_64_dwarf_regmap.
	(amd64_dwarf_regmap_len): Rename from x86_64_dwarf_regmap_len.
	(amd64_dwarf_reg_to_regnum): Rename from
	x86_64_dwarf_reg_to_regnum.
	(amd64_convert_register_p): Rename from x86_64_convert_register_p.
	(amd64_push_dummy_call): Rename from x86_64_push_dummy_call.
	(AMD64_NUM_SAVED_REGS): Rename from X86_64_NUM_SAVED_REGS.
	(struct amd64_frame_cache): Renamed from x86_64_frame_cache.
	(amd64_alloc_frame_cache): Renamed from x86_64_alloc_frame_cache.
	(amd64_analyze_prologue): Rename from x86_64_analyze_prologue.
	(amd64_skip_prologue): Rename from x86_64_skip_prologue.
	(amd64_frame_cache): Rename from x86_64_frame_cache.
	(amd64_frame_this_id): Rename from x86_64_frame_this_id.
	(amd64_frame_prev_register): Rename from
	x86_64_frame_prev_register.
	(amd64_frame_unwind): Rename from x86_64_frame_unwind.
	(amd64_frame_sniffer): Rename from x86_64_frame_sniffer.
	(amd64_sigtramp_frame_cache): Rename from
	x86_64_sigtramp_frame_cache.
	(amd64_sigtramp_frame_prev_register): Rename from
	x86_64_sigtramp_frame_prev_register.
	(amd64_sigtramp_frame_unwind): Rename from
	x86_64_sigtramp_frame_unwind.
	(amd64_sigtramp_frame_sniffer): Rename from
	x86_64_sigtramp_frame_sniffer.
	(amd64_frame_base_address): Rename from x86_64_frame_base_address.
	(amd64_frame_base): Rename from x86_64_frame_base.
	(amd64_unwind_dummy_id): Rename from x86_64_unwind_dummy_id.
	(amd64_frame_align): Rename from x86_64_frame_align.
	(amd64_supply_fpregset): Rename from x86_64_supply_fpregset.
	(amd64_regset_from_core_section): Rename from
	x86_64_regset_from_core_section.
	(x86_64_init_abi): Update comments.

2004-01-04  Nick Roberts  <nick@nick.uklinux.net>

	* MAINTAINERS (write after approval): Add myself.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_arguments): Fix handling of
	`float' arguments.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_floating_fields): Update comment
	such that it mentions a specific version of GCC that exhibits this
	bug.

2004-01-03  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_store_floating_fields): If TYPE is a
	structure that has a single `float' member, store it in %f1 in
	addition to %f0.

	* sparc-sol2-nat.c: Add missing '\'.

	* sparc-tdep.c (sparc32_return_value): New function.
	 (sparc32_use_struct_convention, sparc32_return_value_on_stack):
	Remove functions.
	(sparc32_gdbarch_init): Set return_value, don't set
	extract_return_value, store_return_value, use_struct_convention
	and return_value_on_stack.

	* sparc-sol2-nat.c: Add missing ')'.

2004-01-03  J. Brobecker  <brobecker@gnat.com>

	* infrun.c (handle_step_into_function): New function.
	(handle_inferior_event): Extract out some code into the new
	function above.

2004-01-03  J. Brobecker  <brobecker@gnat.com>

	* infrun.c (handle_inferior_event): Move the declaration of
	real_stop_pc inside the if blocks where it is used.

2004-01-03  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c (sparc64_16_byte_align_p)
	(sparc64_store_floating_fields, sparc64_store_floating_fields):
	Use check_typedef to get subtypes of structures and unions.
	(sparc64_store_return_value): Fix calculation of the appropriate
	offset into VALBUF when storing a structure or union.
	(sparc64_return_value): New function.
	(sparc64_use_struct_convention): Remove function.
	(sparc64_init_abi): Set return_value, don't set
	extract_return_value, store_return_value and
	use_struct_convention.

2004-01-03  Eli Zaretskii  <eliz@elta.co.il>

	* config/djgpp/fnchange.lst: Add lines for COPYING.LIBGLOSS,
	bfd/doc/ChangeLog-9103, bfd/elf32-m68hc1x.c,
	gdb/config/alpha/xm-alphaosf.h,
	gdb/config/powerpc/tm-ppcle-eabi.h,
	gdb/config/rs6000/tm-rs6000-aix4.h, gdb/gdbtk/ChangeLog-2001,
	gdb/gdbtk/ChangeLog-2002, gdb/gdbtk/ChangeLog-2003,
	gdb/gdbtk/plugins/intel-pentium/intel-pentium.tcl.in,
	gdb/gdbtk/plugins/rhabout/rhabout.tcl.in, gdb/i386-linux-nat.c,
	gdb/ia64-aix-nat.c, gdb/ia64-aix-tdep.c, gdb/ia64-linux-nat.c,
	gdb/ia64-linux-nat.c, gdb/ppc-linux-tdep.c, gdb/ppc-linux-nat.c,
	gdb/sparc64nbsd-nat.c, gdb/sparc64nbsd-tdep.c,
	gdb/sparc64-linux-nat.c, gdb/sparc64-linux-tdep.c,
	gdb/sparc64-nat.c, gdb/sparc64-tdep.c, gdb/sparc64-sol2-tdep.c,
	gdb/sparc-sol2-nat.c, gdb/sparc-sol2-tdep.c,
	gdb/testsuite/gdb.gdbtk/, gdb/testsuite/gdb.mi/mi-var-child.exp,
	nclude/ChangeLog-9103, include/coff/ChangeLog-9103,
	include/elf/ChangeLog-9103, include/opcode/ChangeLog-9103,
	opcodes/ChangeLog-0001, opcodes/ChangeLog-0203,
	opcodes/openrisc-dis.c, opcodes/openrisc-desc.h,
	sim/frv/profile-fr550.c, sim/frv/profile-fr550.h,
	sim/sh64/sem-compact-switch.c, sim/sh64/sem-media-switch.c,
	sim/testsuite/sim/sh64/compact/ldsl-mach.cgs,
	sim/testsuite/sim/sh64/compact/ldsl-macl.cgs,
	sim/testsuite/sim/sh64/compact/stsl-mach.cgs, and
	sim/testsuite/sim/sh64/compact/stsl-macl.cgs.
	Remove lines for .cvsignore files.

2004-01-03  J. Brobecker  <brobecker@gnat.com>

	* infrun.c: Back out the previous change.

2004-01-03  Mark Kettenis  <kettenis@gnu.org>

	* NEWS: Mention revised SPARC target.  Add sparc-*-lynxos* and
	sparc-*-sunos4* to the list of REMOVED configurations.

	* configure.tgt: Add back sparc-*-vxworks*.
	* remote-vxsparc.c: Remove all includes except for "defs.h",
	"regcache.h", "vx-share/ptrace.h" and "vx-share/regPacket.h".
	Include "sparc-tdep.h".
	(SPARC_R_G1): New define.
	(vxsparc_gregset): New variable.
	(ext_format_sparc): Remove extern declaration.
	(vx_read_register): Rewrite to use sparc32_supply_gregset and
	sparc32_supply_fpregset.
	(vx_write_register): Rewrite to use sparc32_collect_gregset,
	sparc_collect_rwindow and sparc32_collect_fpregset.
	* config/sparc/tm-vxworks.h: New file, based on recently removed
	tm-vxsparc.h.
	* config/sparc/vxworks.mt: New file, based on recently removed
	vxworks.mt.

2004-01-03  J. Brobecker  <brobecker@gnat.com>

	* infrun.c (handle_step_into_function): New function.
	(handle_inferior_event): Extract out some code into the new
	function above.

2004-01-02  Mark Kettenis  <kettenis@gnu.org>

	* Makefile.in (ALLDEPFILES): Remove sparc-linux-nat.c and
	sparcl-tdep.c.  Add sparc-linux-tdep.c, sparc-sol2-nat.c,
	sparc-sol2-tdep.c, sparc-sol2-nat.c, sparc-sol2-tdep.c,
	sparc64-linux-nat.c, sparc64-linux-tdep.c, sparc64-nat.c,
	sparc64-sol2-tdep.c, sparc64-tdep.c, sparc64fbsd-nat.c,
	sparc64fbsd-tdep.c, sparcnbsd-nat.c, sparcnbsd-tdep.c.
	(sparc_nat_h): New variable.
	(sparcbsd_nat_h, sparcnbsd_tdep_h): Remove variables.
	(tm-sun4os4.h): Remove dependency.
	(sparcbsd-nat.o, sparc-linux-nat.o): Remove dependencies.
	(sparc64fbsd-nat.o, sparc64fbsd-tdep.o, sparc64nbsd-nat.o,
	sparc64-tdep.o, sparc-nat.o, sparcnbsd-nat.o, sparcnbsd-tdep.o,
	sparc-tdep.o): Update dependencies.
	(sparc-linux-tdep.o, sparc-sol2-nat.o, sparc-sol2-tdep.o,
	sparc64-linux-nat.o, sparc64-linux-tdep.o, sparc64-nat.o,
	sparc64-sol2-tdep.o, sparc64-tdep.o, sparc64nbsd-tdep.o): New
	dependencies.
	* configure.host: Remove existing sparc-*-lynxos*,
	sparc-*-solaris*, sparc-*-sunos4*, sparc-*-sunos5*, sparc-*-*,
	ultrasparc-*-freebsd, sparcv9-*-freebsd, sparc64-*-linux*,
	sparcv9-*-* and sparc64-*-* triplets.  Add new sparc64-*-linux*,
	sparc-*-solaris2*, sparcv9-*-solaris2* and sparc64-*-solaris2*
	triplets.
	* configure.tgt: Remove exitsing sparc-*-aout*, sparc-*-coff*,
	sparc-*-elf*, sparc*-lynxos*, sparc-*-solars2*, sparc-*-sunos4*,
	sparc-*-sunos5*, sparc-*-vxworks*, sparc64-*linux*, sparc64-*-*,
	sparcv9-*-* and commented out sparc64-*-solars2* triplets.  Add
	new sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*,
	sparc64-*-linux, sparc-*-solaris2*, sparcv9-*-solaris*,
	sparc64-*-solaris2* and sparc64-*-* triplets.
	* sparc64-tdep.c: Update copyright year.  Include "inferior.h",
	"symtab.h" and "objfiles.h".
	(BIAS): Remove define.
	(X_OP, X_RD, X_A, X_COND, X_OP2, X_IMM22, X_OP3, X_I, X_DISP22)
	(X_DISP19): Remove macros.
	(sparc_fetch_instruction): Remove function.
	(struct gdbarch_tdep): Remove definition.
	(SPARC64_NUM_REGS, SPARC64_NUM_PSEUDO_REGS): Use ARRAY_SIZE.
	(sparc_breakpoint_from_pc): Remove function.
	(struct sparc64_frame_cache): Remove definition.
	(sparc64_alloc_frame_cache, sparc64_analyze_prologue,
	sparc64_unwind_pc): Remove functions.
	(sparc64_skip_prologue): Use `struct sparc_frame_cache' instead of
	`struct sparc64_frame_cache.  Call sparc_analyze_prologue instead
	of sparc64_analyze_prologue.  Mark constant as ULL instead of UL.
	(sparc64_frame_cache): Change return type to `struct
	sparc_frame_cache *'.  Simply call sparc_frame_cache.
	(sparc64_frame_this_id, sparc64_frame_prev_register,
	sparc64_frame_base_address): Use `struct sparc_frame_cache'
	instead of `struct sparc64_frame_cache.
	(sparc_unwind_dummy_id, sparc_extract_struct_value_address,
	sparc_analyze_control_transfer, sparc_software_single_step,
	sparc64_gdbarch_init, sparc_supply_rwindow, sparc_fill_rwindow,
	_initialize_sparc64_tdep): Remove functions.
	(TSTATE_CWP, TSTATE_ICC, TSTATE_XCC): New macros.
	(PSR_S, PSR_ICC, PSR_VERS, PSR_IMPL, PSR_V8PLUS, PSR_XCC): New
	macros.
	(sparc64_supply_gregset, sparc64_collect_gregset,
	sparc64_supply_fpregset, sparc64_collect_fpregset): New functions.
	(sparc64_init_abi): New function.
	* sparc64-tdep.h: Update copyright year.  Fix typo in multiple
	inclusion guard.  Include "sparc-tdep.h".
	(BIAS): Define.
	(r_tstate_offset, r_fprs_offset): New defines.
	(enum sparc_regnum): Remove defenition.
	(enum sparc64_regnum): Reformat.
	(sparc_supply_rwindow, sparc_fill_rwindow): Remove prototypes.
	(sparc64_init_abi, sparc64_supply_gregset,
	sparc64_collect_gregset, sparc64_supply_fpregset,
	sparc64_collect_fpregset): New prototypes.
	(sparc64_sol2_gregset, sparc64nbsd_gregset, sparc64fbsd_gregset):
	Add extern declarations.
	(sparc64_sol2_init_abi): New prototype.
	(sparc64fbsd_supply_reg, sparc64fbsd_fill_reg)
	(sparc64fbsd_supply_fpreg, sparc64fbsd_fill_fpreg): Remove
	prototypes.
	* sparc64fbsd-nat.c: Include "sparc-nat.h", don't include
	"sparnbsd-nat.h".
	(sparc64fbsd_reg_supplies_p, sparc64fbsd_fpreg_supplies_p): Remove
	functions.
	(_initialize_sparc64fbsd_nat): Remove initialization of
	sparcbsd_supply_reg, sparcbsd_fill_reg, sparcbsd_supply_fpreg,
	sparcbsd_fill_fpreg, sparcbsd_reg_supplies_p,
	sparcbsd_fpreg_supplies_p.  Initialize sparc_gregset.
	* sparc64fbsd-tdep.c: Update copyright year.  Include "frame.h",
	"frame-unwind.h", "trad-frame.h" and "gdb_assert.h".
	(sparc64fbsd_r_global_offset, sparc64fbsd_r_out_offset)
	(sparc64fbsd_r_fprs_offset, sparc64fbsd_r_tnpc_offset)
	(sparc64fbsd_r_tpc_offset, sparc64fbsd_r_tstate_offset)
	(sparc64fbsd_r_y_offset): Remove variables.
	(sparc64fbsd_sizeof_struct_reg, sparc64fbsd_sizeof_struct_fpreg):
	Make static and const.
	(sparc64fbsd_supply_reg, sparc64fbsd_fill_reg)
	(sparc64fbsd_supply_fpreg, sparc64fbsd_fill_fpreg): Remove
	functions.
	(sparc64fbsd_gregset): New variable.
	(fetch_core_registers): Replace calls to sparc64fbsd_supply_reg
	and sparc64fbsd_supply_fpreg with calls to sparc64_supply_gregset
	and sparc64_supply_fpregset.
	(sparc64fbsd_pc_in_sigtramp, sparc64fbsd_sigtramp_frame_cache)
	(sparc64fbsd_sigtramp_frame_this_id)
	(sparc64fbsd_sigtramp_frame_prev_register): New functions.
	(sparc64fbsd_sigtramp_frame_unwind): New variable.
	(sparc64fbsd_sigtramp_frame_sniffer): New function.
	(sparc64fbsd_init_abi): Set pc_in_sigtramp, append
	sparc64fbsd_sigtramp_frame_sniffer.  Call sparc64_init_abi.
	* sparcnbsd-tdep.c: Update copyright year.  Include
	"floatformat.h", "frame.h", "frame-unwind.h", "symtab.h",
	"trad-frame.h" and "gdb_assert.h", don't include "target.h",
	"value.h" and "sparcnbsd-tdep.h".
	(REG32_OFFSET_PSR, REG32_OFFSET_PC, REG32_OFFSET_NPC)
	(REG32_OFFSET_Y, REG32_OFFSET_GLOBAL, REG32_OFFSET_OUT)
	(REG64_OFFSET_TSTATE, REG64_OFFSET_PC, REG64_OFFSET_NPC)
	(REG64_OFFSET_Y, REG64_OFFSET_GLOBAL, REG64_OFFSET_OUT): Remove
	defines.
	(sparcnbsd_gregset): New variable.
	(sparcnbsd_supply_reg32, sparcnbsd_supply_reg64)
	(sparcnbsd_fill_reg32, sparcnbsd_fill_reg64)
	(sparcnbsd_supply_fpreg32, sparcnbsd_supply_fpreg64)
	(sparcnbsd_fill_reg32, sparcnbsd_fill_reg64): Remove functions.
	(sparc32nbsd_sigtramp_start, sparc32nbsd_sigtramp_end): New
	variables.
	(sparc32nbsd_pc_in_sigtramp, sparc32nbsd_sigcontext_frame_cache)
	(sparc32nbsd_sigcontext_frame_this_id)
	(sparc32nbsd_sigcontext_frame_prev_register): New functions.
	(sparc32nbsd_sigcontext_frame_unwind): New variable.
	(sparc32nbsd_sigtramp_frame_sniffer): New function.
	(sparcnbsd_get_longjmp_target_32,
	sparcnbsd_get_longjmp_target_64): Remove functions.
	(sparcnbsd_aout_in_solib_call_trampoline): Rewrite.
	(sparcnbsd_init_abi_common, sparcnbsd_init_aout,
	sparcnbsd_init_elf): Remove.
	(sparcnbsd_init_abi, sparcnbsd_aout_init_abi)
	(sparcnbsd_elf_init_abi): New functions.
	(_initialize_sparcnbsd_tdep): New prototype.
	(_initialize_sparnbsd_tdep): Update.
	* config/sparc/fbsd.mh (NATDEPFILES): Remove sparcbsd-nat.o and
	corelow.o.  Add sparc64-nat.o and sparc-nat.o.
	* config/sparc/fbsd.mt (TDEPFILES): Add sparc-tdep.o and corelow.o.
	* config/sparc/linux.mh: Update comment.
	(XM_FILE, HOST_IPC): Remove variables.
	(NATDEPFILES): Add sparc-sol2-nat.o and core-regset.o.  Remove
	sparc-linux-nat.o.
	* config/sparc/linux.mt: Update comment.
	(TDEPFILES): Add sparc-sol2-tdep.o and sparc-linux-tdep.o.
	* config/sparc/nbsd.mt: Reformat.
	* config/sparc/nbsd64.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o.
	* config/sparc/nbsd64.mt: Update comment.
	(TDEPFILES): Add sparc64-tdep.o and sparc64nbsd-tdep.o.
	(TM_FILE): Set to tm-nbsd.h.
	* config/sparc/nbsdelf.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o.
	(XM_FILE): Delete.
	* config/sparc/nbsdaout.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o
	(XM_FILE): Delete.
	* config/sparc/nm-linux.h: Update copyright year.  Don't include
	"config/nm-svr4.h" and "solib.h".  Add protection against multiple
	inclusion.
	(KERNEL_U_SIZE): Remove define.
	(kernel_u_size): Remove prototype.
	(PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Define.
	* config/sparc/nm-nbsd.h: Update copyright.  Don't include
	"regcache.h".
	(CHILD_PREPARE_TO_STORE): Remove define.
	* config/sparc/nm-nbsdaout.h: Tweak some comments.
	* sparc-nat.c, sparc-tdep.c, sparc-tdep.h, sparc64nbsd-nat.c,
	sparcnbsd-nat.c: Rewrite files.
	* config/sparc/tm-linux.h, config/sparc/tm-nbsd.h: Rewrite files.
	* sparc-linux-nat.c, sparcbsd-nat.c, sparcbsd-nat.h,
	sparcnbsd-tdep.h: Remove files.
	* config/sparc/nm-sparclynx.h, config/sparc/nm-sun4os4.h,
	config/sparc/nm-sun4sol2.h, config/sparc/sp64.mt,
	config/sparc/sp64linux.mt, config/sparc/sp64sol2.mt,
	config/sparc/sparc-em.mt, config/sparc/sparclynx.mh,
	config/sparc/sparclynx.mt, config/sparc/sun4os4.mh,
	config/sparc/sun4os4.mt, config/sparc/sun4sol2.mh,
	config/sparc/sun4sol2.mt, config/sparc/tm-sp64.h,
	config/sparc/tm-sp64linux.h, config/sparc/tm-sparc.h,
	config/sparc/tm-sparclynx.h, config/sparc/tm-spc-em.h,
	config/sparc/tm-sun4os4.h, config/sparc/tm-sun4sol2.h,
	config/sparc/tm-vxsparc.h, config/sparc/vxsparc.mt,
	config/sparc/xm-linux.h, config/sparc/xm-sun4sol2.h: Remove files.
	* sparc-linux-tdep.c, sparc-nat.h, sparc-sol2-nat.c,
	sparc-sol2-tdep.c, sparc64-linux-nat.c, sparc64-linux-t dep.c,
	sparc64-nat.c, sparc64-sol2-tdep.c, sparc64nbsd-tdep.c: New files.
	* config/sparc/linux64.mh, config/sparc/linux64.mt,
	config/sparc/nm-sol2.h, config/sparc/sol2-64.mt,
	config/sparc/sol2.mh, config/sparc/sol2.mt, config/sparc/sparc.mt,
	config/sparc/sparc64.mt, config/sparc/tm-sol2.h: New files.

2004-01-02  Andrew Cagney  <cagney@redhat.com>

	From 2003-12-18 Kazuhiro Inaoka:
        * configure.host: Add m32r-linux target.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* top.c (print_gdb_version): Update year to 2004.

2004-01-02  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS: Add myself to the write-after-approval category.

2004-01-02  Daniel Jacobowitz  <drow@mvista.com>

	From Bernardo Innocenti <bernie@develer.com>:
	* configure.tgt: Add uClinux target.

2004-01-02  Andrew Cagney  <cagney@redhat.com>

	* utils.c (do_my_cleanups): Make static, add forward declaration.
	* defs.h (do_my_cleanups): Delete declaration.

2004-01-02  Eli Zaretskii  <eliz@elta.co.il>

	* config/djgpp/fnchange.lst: Add lines for gdb/ChangeLog-2003 and
	bfd/ChangeLog-0203.

2004-01-02  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Check for <machine/reg.h>.  Check for `struct reg'
	in <machine/reg.h>.
	* configure, config.in: Regenerate.

For older changes see ChangeLog-2003, mi/ChangeLog-1999-2003, and
tui/ChangeLog-1998-2003.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
