2005-05-29  Eli Zaretskii  <eliz@gnu.org>

	* config/djgpp/fnchange.lst: Add mappings for linux-ppc-low.c and
	linux-ppc64-low.c.

2005-05-28  Bob Rossi  <bob@brasko.net>
	* Makefile.in (SUBDIR_MI_OBS, SUBDIR_MI_SRCS): Add mi-common.
	(gdb/mi/ headers): Add mi_common_h.
	(breakpoint.o, infrun.o): Add dependencies mi_common_h.
	* breakpoint.c (include): Add include 'mi/mi-common.h'.
	(print_it_typical): Use async_reason_lookup.
	(watchpoint_check): Ditto.
	* infrun.c (include): Add include 'mi/mi-common.h'.
	(print_stop_reason): Use async_reason_lookup.
	* mi/mi-common.h: New file.
	* mi/mi-common.c: Ditto.

2005-05-29  Joel Brobecker  <brobecker@adacore.com>

	* alpha-tdep.c (alpha_next_pc): Use correct register number
	for floating-point branch instructions.

2005-05-28  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jonathan Larmour  <jifl@eCosCentric.com>

	PR backtrace/1760
	* frame.c (backtrace_limit): Change type to int.
	(get_prev_frame): Update backtrace limit support.
	(_initialize_frame): Use add_setshow_integer_cmd for backtrace_limit.

2005-05-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.tgt (powerpc64-*-linux*): Enable gdbserver.
	* regformats/reg-ppc64.dat: New file.

2005-05-28  Daniel Jacobowitz  <dan@codesourcery.com>

	From Wu Zhou <woodzltc@cn.ibm.com>:
	* remote.c (struct gdb_ext_thread_info): Fix a comment typo.
	(remote_unpack_thread_info_response): Likewise.

2005-05-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* cli/cli-setshow.c (do_setshow_command): Partially revert previous
	change.  Cast to "char **" for var_string.

2005-05-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* cp-name-parser.y (parse_escape): Revert previous change.  Return
	the input character by default.

2005-05-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2-frame.c (dwarf2_frame_prev_register): Use gdb_byte.
	* i386-linux-nat.c (fetch_register, store_register, supply_gregset)
	(fill_gregset): Likewise.
	* i386-tdep.c (i386_frame_prev_register)
	(i386_sigtramp_frame_prev_register): Likewise.
	* linux-nat.c (linux_nat_xfer_memory, linux_nat_make_corefile_notes):
	Likewise.
	* linux-thread-db.c (thread_db_xfer_memory): Likewise.
	* remote.c (remote_insert_hw_breakpoint, remote_remove_hw_breakpoint):
	Likewise.
	* target.c (debug_to_insert_hw_breakpoint)
	(debug_to_remove_hw_breakpoint, update_current_target): Likewise.

2005-05-28  Hans-Peter Nilsson  <hp@axis.com>

	* MAINTAINERS: Change cris-elf state to non-broken.
	* cp-name-parser.y (parse_escape): Initialize target_char to zero.

2005-05-27  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (crisv32_scan_prologue): Add.
	(cris_frame_unwind_cache, cris_skip_prologue): Call 
	crisv32_scan_prologue when debugging CRISv32.

2005-05-27  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (cris_sigtramp_start, cris_rt_sigtramp_start) 
	(cris_frame_prev_register, cris_sigtramp_frame_prev_register)
	(cris_return_value): Use gdb_byte for byte buffers.
	(struct cris_frame_unwind, struct cris_frame_base): Fix formatting.

2005-05-26  Chris Demetriou  <cgd@netbsd.org>

	* MAINTAINERS (Write After Approval): Remove myself.

2005-05-27  Andrew Cagney  <cagney@gnu.org>

	* jv-lang.c (get_java_utf8_name): Add cast.
	(evaluate_subexp_java): Use gdb_byte for buffers.
	* jv-valprint.c (java_value_print, java_value_print): Use gdb_byte
	for buffers.
	* scm-lang.c (scm_get_field, scm_unpack)
	(scm_evaluate_string): Use gdb_byte for buffers.
	(scm_lookup_name): Add cast.
	* scm-valprint.c (scm_scmval_print, scm_scmval_print): Use
	gdb_byte for buffers.
	* tui/tui.h (tui_get_command_dimension): Make parameters unsigned.
	* tui/tui.c (tui_get_command_dimension): Make parameters unsigned.
	* value.h (check_field): Change "name" to a string.
	* valops.c (check_field): Change "name" to a string.
	* scm-lang.h (scm_parse): Use gdb_byte for buffers.
	* source.c (get_current_source_symtab_and_line)
	(set_current_source_symtab_and_line): Initialize all fields of sal
	structures.
	* cli/cli-cmds.c (list_command): Use gdb_byte for buffers.

2005-05-26  Andrew Cagney  <cagney@gnu.org>

	* command.h (add_setshow_integer_cmd): Make VAR an integer.
	* cli/cli-decode.c (add_setshow_integer_cmd): Update to match.
	* valops.c (value_string): Add a cast.
	* eval.c (evaluate_subexp_standard): Use gdb_byte for byte buffers.
	* breakpoint.c (re_enable_breakpoints_in_shlibs): Use gdb_byte for
	byte buffers.
	* target.h (struct target_ops): For to_insert_hw_breakpoint and
	to_remove_hw_breakpoint use gdb_byte for byte buffer parameters.
	* breakpoint.h (struct bp_location): Make shadow_contents a
	gdb_byte buffer.
	* cli/cli-setshow.c (do_setshow_command): Fix cast.
	* cli/cli-dump.c (restore_section_callback)
	(restore_binary_file): Use gdb_byte for byte buffers.
	* proc-service.c (ps_ptwrite, ps_ptread, ps_pdwrite): Fix casts.
	(ps_xfer_memory): Use gdb_byte for byte buffers.
	* tracepoint.c (mem2hex): Use gdb_byte for byte buffers, and char
	for string buffers.
	* ser-tcp.c (net_open): Make len a socklen_t.

2005-05-24  Andrew Cagney  <cagney@gnu.org>

	* rs6000-tdep.c (ppc_supply_reg, ppc_collect_reg): Use gdb_byte
	for byte buffers.
	(rs6000_fetch_pointer_argument): Use get_frame_register_unsigned.
	(rs6000_software_single_step, sstep_breaks, skip_prologue) 
	(rs6000_push_dummy_call, rs6000_push_dummy_call) 
	(rs6000_push_dummy_call, rs6000_push_dummy_call) 
	(rs6000_register_to_value, e500_pseudo_register_read) 
	(rs6000_store_return_value, e500_pseudo_register_write) 
	(rs6000_frame_prev_register, rs6000_extract_return_value): Ditto.
	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call)
	(ppc_sysv_abi_push_dummy_call, do_ppc_sysv_return_value)
	(do_ppc_sysv_return_value, ppc_sysv_abi_return_value)
	(ppc_sysv_abi_broken_return_value)
	(ppc64_sysv_abi_push_dummy_call, ppc64_sysv_abi_push_dummy_call)
	(ppc64_sysv_abi_push_dummy_call, ppc64_sysv_abi_return_value)
	(ppc64_sysv_abi_return_value, ppc64_sysv_abi_return_value): Ditto.
	* ppc-linux-tdep.c (ppc_linux_in_sigtramp)
	(ppc_linux_at_sigtramp_return_path)
	(ppc_linux_skip_trampoline_code)
	(ppc_linux_memory_remove_breakpoint, ppc_linux_return_value):
	* rs6000-tdep.c (rs6000_value_to_register)
	(rs6000_register_to_value): Ditto.
	* ppc-tdep.h (ppc_sysv_abi_return_value)
	(ppc64_sysv_abi_return_value, ppc_sysv_abi_broken_return_value)
	(ppc_linux_memory_remove_breakpoint): Ditto.

2005-05-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* s390-tdep.c (s390_frame_prev_register): Change type of last
	argument to 'gdb_byte *'.
	(s390_stub_frame_prev_register): Likewise.
	(s390_sigtramp_frame_prev_register): Likewise.

2005-05-24  Kris Warkentin  <kewarken@qnx.com>

	* config/i386/nto.mt: Remove remote-nto.o.

2005-05-24  Orjan Friberg  <orjanf@axis.com>

	* config/djgpp/fnchange.lst: Add mappings for 
	gdbserver/linux-cris-low.c and gdbserver/linux-crisv32-low.c.

2005-05-23  Michael Snyder  <msnyder@redhat.com>
	From Nora Pan <qpan@mvista.com>
	* linux-nat.c (read_mapping): Don't stumble over entries in
	mapping that have name but zero inode.

2005-05-23  Andrew Cagney  <cagney@gnu.org>

	* target.h (child_xfer_memory): Use gdb_byte for byte buffer
	parameters.
	* inftarg.c (child_xfer_partial): Update.
	* wince.c (child_xfer_memory): Update.
	* win32-nat.c (child_xfer_memory): Update.
	* rs6000-nat.c (child_xfer_memory): Update.
	* infptrace.c (child_xfer_memory): Update.
	* dcache.c (struct dcache_block): Use gdb_byte for the byte
	buffers.
	(dcache_read_line, dcache_xfer_memory, dcache_poke_byte) 
	(dcache_peek_byte, dcache_write_line): Ditto.

	* auxv.h (target_auxv_read, procfs_xfer_auxv)
	(target_auxv_parse): Use gdb_byte for byte buffer parameters.
	* auxv.c (target_auxv_read, procfs_xfer_auxv, target_auxv_parse) 
	(target_auxv_search, fprint_target_auxv): Update.

2005-05-23  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c: Tweak values for cris-mode.

2004-05-23  Joel Brobecker  <brobecker@adacore.com>

	* mdebugread.c (record_minimal_symbol): New procedure.
	(parse_partial_symbols): Use record_minimal_symbol to record
	the new minimal symbols instead of prim_record_minimal_symbol
	and prim_record_minimal_symbol_and_info.

2005-05-22  Mark Kettenis  <kettenis@gnu.org>

	* NEWS: Mention OpenBSD/arm as a new native configuration.

	* armnbsd-nat.c: Include "gdb_string.h" and "inf_ptrace.h".
	Reorder includes.  Don't require FETCH_INFERIOR_REGISTERS to be
	defined.
	(armnbsd_fetch_registers): Rename from armnbsd_fetch_registers.
	Make static.
	(armnbsd_store_registers): Rename from armnbsd_store_registers.
	Make static.
	(_initialize_arm_netbsd_nat): Construct and add target vector.
	* Makefile.in (armnbsd-nat.o): Update dependencies.
	* config/arm/nbsdaout.mh (NATDEPFILES): Remove infptrace.o and
	intarg.o, add inf-ptrace.o.
	(NAT_FILE): Set to solib.h.
	* config/arm/nbsdelf.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o, add inf-ptrace.o.
	(NAT_FILE): Remove.

	* arm-tdep.c (arm_extract_return_value, arm_store_return_value):
	Change type of last argument to `gdb_byte *'.

	* configure.host: Add arm*-*-openbsd*.
	* configure.tgt: Add arm*-*-openbsd*.

2005-05-22  Andrew Cagney  <cagney@gnu.org>

	* frame.h (frame_register_unwind, frame_unwind_register)
	(get_frame_register, frame_register, put_frame_register)
	(get_frame_memory, safe_frame_unwind_memory)
	(frame_register_read): Use gdb_byte for byte buffer parameters.
	* trad-frame.h (trad_frame_get_register)
	(frame_get_prev_register): Ditto.
	* frame-unwind.h (frame_prev_register_ftype): Ditto.
	* frame.c (frame_pop, frame_register, frame_unwind_register) 
	(get_frame_register, frame_unwind_register_signed) 
	(frame_unwind_register_unsigned, frame_unwind_unsigned_register) 
	(frame_register_read, get_frame_memory): Update.
	* trad-frame.c (trad_frame_get_prev_register): Update.
	(trad_frame_get_register): Update.
	* gdbcore.h (deprecated_read_memory_nobpt, read_memory): Ditto.
	* breakpoint.c (deprecated_read_memory_nobpt): Update.
	* corefile.c (read_memory): Update.
	* tramp-frame.c (tramp_frame_prev_register): Update.
	* valops.c (value_assign): Update.
	* sentinel-frame.c (sentinel_frame_prev_register): Update.
	* std-regs.c (value_of_builtin_frame_fp_reg)
	(value_of_builtin_frame_pc_reg): Update.
	* infcmd.c (default_print_registers_info): Update
	* dummy-frame.c (dummy_frame_prev_register): Update.
	* findvar.c (value_of_register, value_from_register): Update.
	* tui/tui-regs.c (tui_register_format, tui_get_register): Update.
	* mi/mi-main.c (register_changed_p, get_register): Update.

2005-05-20  Eli Zaretskii  <eliz@gnu.org>

	* configure.ac: Add snprintf and vsnprintf to AC_CHECK_DECLS.  Fix
	bad description of _MSE_INT_H that caused each word in config.in
	to be enclosed in [].
	* configure, config.in: Regenerate.

2005-05-20  Joel Brobecker  <brobecker@adacore.com>

	* alpha-tdep.c (fp_register_zero_p): New function.
	(fp_register_sign_bit): New function.
	(alpha_next_pc): Add support for floating-point control instructions.

2005-05-19  Andrew Cagney  <cagney@gnu.org>

	* defs.h (extract_signed_integer, extract_unsigned_integer)
	(extract_long_unsigned_integer, extract_typed_address)
	(store_signed_integer, store_unsigned_integer)
	(store_typed_address): Use gdb_byte for byte buffer parameters.
	(push_bytes, push_word): Delete declaration.
	* valops.c (push_bytes, push_word): Delete function.
	* findvar.c (extract_signed_integer, extract_unsigned_integer) 
	(extract_typed_address, store_signed_integer) 
	(store_unsigned_integer): Update.
	
	* regcache.h (regcache_raw_read, regcache_raw_write)
	(regcache_raw_read_part, regcache_raw_write_part)
	(regcache_cooked_read_part, regcache_cooked_write_part)
	(regcache_cooked_read, regcache_cooked_write)
	(regcache_raw_supply, regcache_raw_collect)
	(regcache_cooked_read_ftype, regcache_save, regcache_restore)
	(deprecated_read_register_gen, deprecated_write_register_gen)
	(deprecated_read_register_bytes, deprecated_write_register_bytes)
	(deprecated_grub_regcache_for_registers): Use gdb_byte for byte
	buffer parameters.
	* ia64-tdep.c (ia64_extract_return_value): Update.
	* frame.c (do_frame_register_read): Update.
	* regcache.c (deprecated_grub_regcache_for_registers) 
	(struct regcache, regcache_save, regcache_restore, regcache_cpy) 
	(do_cooked_read, regcache_xmalloc, register_buffer) 
	(deprecated_read_register_bytes, regcache_raw_read) 
	(regcache_raw_read_signed, regcache_raw_read_unsigned) 
	(deprecated_read_register_gen, regcache_cooked_read) 
	(regcache_cooked_read_signed, regcache_cooked_read_unsigned) 
	(deprecated_write_register_gen, regcache_cooked_write) 
	(deprecated_write_register_bytes, regcache_raw_read_part) 
	(regcache_raw_write_part, regcache_cooked_read_part) 
	(regcache_cooked_write_part, read_register, regcache_raw_supply): 

2005-05-17  Corinna Vinschen  <vinschen@redhat.com>

	* MAINTAINERS: Undelete v850.
	* Makefile.in: Re-add v850-tdep.o dependencies.
	* configure.tgt: Re-add v850.
	* v850-tdep.c: Reorder code slightly.  Add register number enumerator.
	(struct v850_frame_cache): New structure.
	(v850_processor_type_table): Remove. Move functionality into
	v850_register_name, v850e_register_name and v850_gdbarch_init.
	(v850_register_name): New function.
	(v850e_register_name): New function.
	(struct prologue_info): Remove definition.
	(v850_register_type): New function.
	(v850_type_is_scalar): New function.
	(v850_use_struct_convention): Align to gcc behaviour.
	(v850_handle_prepare): Renamed from handle_prepare. Change third
	parameter to struct v850_frame_cache *.
	(v850_handle_pushm): Renamed from handle_pushm. Change third parameter
	to struct v850_frame_cache *.
	(v850_is_save_register): New function to evaluate if a register is
	caller-save.
	(v850_analyze_prologue): Replace v850_scan_prologue.  Change to support
	new frame code.
	(v850_init_extra_frame_info): Remove.
	(v850_frame_chain): Remove.
	(v850_find_callers_reg): Remove.
	(v850_skip_prologue): Make static.
	(v850_pop_frame): Remove.
	(v850_frame_align): New function.
	(v850_push_dummy_call): Replace v850_push_arguments.
	(v850_push_return_address): Remove.
	(v850_extract_return_value): New function.
	(v850_store_return_value): New function.
	(v850_return_value): New function.
	(v850_frame_saved_pc): Remove.
	(v850_breakpoint_from_pc): New function.
	(v850_alloc_frame_cache): New function.
	(v850_fix_call_dummy): Remove.
	(v850_frame_cache): New function.
	(v850_target_architecture_hook): Remove.
	(v850_frame_prev_register): New function.
	(v850_frame_this_id): New function.
	(v850_frame_unwind): New structure.
	(v850_frame_sniffer): New function.
	(v850_unwind_sp): New function.
	(v850_unwind_pc): New function.
	(v850_unwind_dummy_id): New function.
	(v850_frame_base_address): New function.
	(v850_frame_base): New structure.
	(v850_gdbarch_init): New function.
	* config/v850/v850.mt: Undelete.  Drop TM_FILE.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
	    Dennis Brueni  <dennis@slickedit.com>

	* stack.c (print_frame): In MI mode, output a fullname attribute
	with the stack frame.

2005-05-16  Mark Kettenis  <kettenis@gnu.org>

	* corelow.c (core_xfer_partial): Change type of readbuf and
	writebuf to `gdb_byte *'.
	* sparc-nat.c (sparc_xfer_wcookie, sparc_xfer_partial): Change
	type of readbuf and writebuf to `gdb_byte *'.
	* bsd-uthread.c (bsd_uthread_xfer_partial): Change type of readbuf
	and writebuf to `gdb_byte *'.
	* inf-ptrace.c (inf_ptrace_xfer_partial): Change type of readbuf
	and writebuf to `gdb_byte *'.
	* bsd-kvm.c (bsd_kvm_xfer_memory): Replace.
	(bsd_kvm_xfer_partial): New function.
	(bsd_kvm_add_target): Set to_xfer_partial instead of
	to_xfer_memory.
	* bfd-target.c (target_bfd_xfer_partial): Change type of readbuf
	and writebuf to `gdb_byte *'.
	* target.c (deprecated_debug_xfer_memory): Remove prototype.
	(deprecated_debug_xfer_memory): Change type of second argument to
	`gdb_byte *'.
	* remote.c (remote_xfer_memory): Remove prototype.
	(remote_xfer_memory): Change type of second argument to `gdb_byte
	*'.
	(remote_xfer_partial): Change type of readbuf and writebuf to
	`gdb_byte *'.

	* config/sparc/fbsd.mt (TDEPFILES): Add solib.o and solib-svr4.o.
	* config/sparc/fbsd.mh (NATDEPFILES): Remove solib.o, solib-svr4.o
	and solib-legacy.o.
	(NAT_FILE): Remove.

2005-05-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* s390-tdep.c (s390_return_value): Remove unnecessary casts.
	(s390_breakpoint_from_pc): Change type of return value and
	'breakpoint' to const gdb_byte *.

2005-05-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* s390-tdep.c (s390_pseudo_register_read, s390_pseudo_register_write):
	Change type of 'buf' argument to gdb_byte *.
	(s390x_pseudo_register_read, s390x_pseudo_register_write): Likewise.
	(s390_register_to_value): Change type of 'out' to gdb_byte *, change
	type of 'in' to gdb_byte [].
	(s390_value_to_register): Change type of 'in' to gdb_byte *, change
	type of 'out' to gdb_byte [].
	(s390_return_value): Change type of 'out' and 'in' to gdb_byte *.

2005-05-16  Andrew Cagney  <cagney@gnu.org>

	* target.h (target_read_partial, target_write_partial)
	(do_xfer_memory, xfer_memory, target_read, target_write)
	(get_target_memory): For buffers, change "void*" to gdb_byte.
	(struct target_ops): Ditto for to_xfer_partial and
	deprecated_xfer_memory.
	* dcache.h (dcache_xfer_memory): Ditto.
	* target.c (default_xfer_partial, target_read_partial) 
	(target_write_partial, target_read, target_write) 
	(do_xfer_memory, update_current_target, get_target_memory): Update.
	(target_read_string): Change buf to a gdb_byte.
	* dcache.c (dcache_xfer_memory): Update.
	* exec.c (xfer_memory): Make buffer type to gdb_byte.
	* mem-break.c (default_memory_insert_breakpoint): Remove cast.
	* disasm.c (dis_asm_read_memory): Remove cast, use gdb_byte.

2005-05-16  Mark Kettenis  <kettenis@gnu.org>

	* sol-thread.c (ignore): Change last argument to `gdb_byte.'

	* config/i386/fbsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/i386/fbsd64.mt (DEPRECATED_TM_FILE): Remove.
	* config/i386/nbsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/i386/nbsd64.mt (DEPRECATED_TM_FILE): Remove.
	* config/sparc/nbsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/sparc/nbsd64.mt (DEPRECATED_TM_FILE): Remove.

	* observer.sh: Quote $DJGPP.

2005-05-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (.y.c): Update ylwrap invocation.

2005-05-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-nat.c (child_follow_fork, linux_handle_extended_wait)
	(lin_lwp_attach_lwp, linux_nat_attach, wait_lwp, child_wait)
	(linux_nat_wait, kill_wait_callback): Use my_waitpid.
	(_initialize_linux_nat, lin_thread_get_thread_signals): Use
	SA_RESTART.

2005-05-14  Mark Kettenis  <kettenis@gnu.org>

	* configure.tgt (vax-*-openbsd*): Set gdb_target to obsd.
	* config/vax/obsd.mt (TDEPFILES): New file.

	* i386-tdep.c (i386_supply_gregset, i386_collect_gregset): Use
	gdb_byte instead of bfd_byte.

	* mips-tdep.c (mips_pseudo_register_read)
	(mips_pseudo_register_write): Change type of last argument to
	`gdb_byte *'.
	(mips_register_to_value, mips_value_to_register): Change type of
	last argument to `gdb_byte *'.  Remove casts that are no longer
	needed.
	(mips_fetch_instruction, fetch_mips_16): Use gdb_byte for buf.
	(mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call)
	(mips_o32_push_dummy_call, mips_o32_return_value): Use `const
	gdb_byte *' for val and gdb_byte for valbuf.  Remove casts that
	are no longer needed.
	(mips_eabi_return_value, mips_n32n64_return_value)
	(mips_o32_return_value, mips_o64_return_value): Change type of
	readbuf and writebuf arguments to `gdb_byte *'.
	(mips_read_fp_register_single): Change type of last argument to
	`gdb_byte *'.  Use `gdb_byte *' for raw_buffer.
	(mips_read_fp_register_double): Change type of last argument to
	`gdb_byte *'.
	(mips_print_fp_register): Use `gdb_byte *' for raw_buffer.  Remove
	casts that are no longer needed.
	(mips_print_register, print_gp_register_row): Use gdb_byte for
	raw_buffer.  Remove casts that are no longer needed.
	(mips_single_step_through_delay): Use gdb_byte for buf.
	(mips_breakpoint_from_pc): Change return type to `const gdb_byte
	*'.  Use gdb_byte for mips16_big_breakpoint, big_breakpoint,
	pmon_big_breakpoint, idt_big_breakpoint, mips16_little_breakpoint,
	little_breakpoint, pmon_little_breakpoint and
	idt_little_breakpoint.
	(mips_integer_to_address): Use `gdb_byte *' for tmp.

	* config/m68k/obsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/i386/obsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/i386/obsd64.mt (DEPRECATED_TM_FILE): Remove.
	* config/pa/obsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/sparc/obsd.mt (DEPRECATED_TM_FILE): Remove.
	* config/sparc/obsd64.mt (DEPRECATED_TM_FILE): Remove.

	* sparc-tdep.c (sparc_fetch_instruction, sparc_fetch_wcookie): Use
	gdb_byte for buf.
	(sparc32_pseudo_register_read, sparc32_pseudo_register_write):
	Change type of last argument to `gdb_byte *'.  Remove casts that
	are no longer needed.
	(sparc32_push_dummy_code, sparc32_store_arguments): Use gdb_byte
	for buf.
	(sparc_breakpoint_from_pc): Change return type to `const gdb_byte
	*'.  Use gdb_byte for break_insn.
	(sparc32_extract_return_value, sparc32_store_return_value): Change
	type of last argument to `gdb_byte *'.  Use gdb_byte for buf.
	(sparc32_return_value): Change type of readbuf and writebuf
	arguments to `gdb_byte *'.
	(sparc_software_single_step): Use gdb_byte for npc_save and
	nnpc_save.
	(sparc_supply_rwindow, sparc_collect_rwindow): Use gdb_byte for
	buf.
	(sparc32_supply_gregset, sparc32_collect_gregset)
	(sparc32_supply_fpregset, sparc32_collect_fpregset): Use `gdb_byte
	*' for regs.
	* sparc64-tdep.c (sparc64_pseudo_register_read)
	(sparc64_pseudo_register_write): Change type of last argument to
	`gdb_byte *'.  Remove casts that are no longer needed.
	(sparc64_store_floating_fields, sparc64_extract_floating_fields):
	Change type of valbuf argument to `gfd_byte *'.
	(sparc64_store_arguments): Use `gdb_byte *' for valbuf.  use
	gdb_byte for buf.
	(sparc64_extract_return_value, sparc64_store_return_value): Change
	type of last argument to `gdb_byte *'.  Use gdb_byte for buf.
	(sparc64_return_value): Change type of readbuf and writebuf
	arguments to `gdb_byte *'.
	(sparc64_supply_gregset, sparc64_collect_gregset)
	(sparc64_supply_fpregset, sparc64_collect_fpregset): Use `gdb_byte
	*' for regs.

	* m68k-tdep.c (m68k_local_breakpoint_from_pc): Change return type
	to `const gdb_byte *'.  Use gdb_byte for break_insn.
	(m68k_register_to_value): Change type of last argument to
	`gdb_byte *'.  Use gdb_byte for from.
	(m68k_value_to_register): Change type of last argument to
	`gdb_byte *'.  Use gdb_byte for to.
	(m68k_extract_return_value): Change type of last argument to
	`gdb_byte *'.  Use gdb_byte for buf.  Remove unnecessary cast.
	(m68k_svr4_extract_return_value): Change type of last argument to
	`gdb_byte *'.  Use gdb_byte for buf.
	(m68k_store_return_value): Change type of last argument to
	`gdb_byte *'.  Remove unnecessary cast.
	(m68k_svr4_store_return_value): Change type of last argument to
	`gdb_byte *'.  Use gdb_byte for buf.
	(m68k_return_value, m68k_svr4_return_value): Change type of
	readbuf and writebuf arguments to `gdb_byte *'.
	(m68k_push_dummy_call, m68k_unwind_pc, m68k_frame_cache) 
	(m68k_unwind_dummy_id): Use gdb_byte for buf.
	(m68k_get_longjmp_target): Use `gdb_byte *' for buf.
	* m68kbsd-tdep.c (m68kbsd_supply_fpregset) 
	(m68kbsd_supply_gregset): Use `gdb_byte *' for regs.

	* m88k-tdep.c (m88k_breakpoint_from_pc): Change return type to
	`const gdb_byte *'.  Use gdb_byte for break_insn.
	(m88k_return_value): Change type of readbuf and
	writebuf arguments to `gdb_byte *'.  Use gdb_byte for buf.
	(m88k_supply_gregset): Use `gdb_byte *' for regs.

	* vax-tdep.c (vax_return_value): Change type of readbuf and
	writebuf arguments to `gdb_byte *'.

	* amd64-tdep.c (amd64_return_value): Change type of readbuf and
	writebuf arguments to `gdb_byte *'.  Remove now redundant casts.
	* i386-tdep.c (i386_return_value): Change type of readbuf and
	writebuf arguments to `gdb_byte *'.
	(i386_pseudo_register_read, i386_pseudo_register_write): Change
	type of last argument to `gdb_byte *'.
	(i386_register_to_value, i386_value_to_register): Change type of
	last argument to `gdb_byte *'.  Simplify function a bit.
	* i387-tdep.h (i387_value_to_register, i387_register_to_value):
	Change type of last argument to `gdb_byte *'.
	* i387-tdep.c: Likewise.

2005-05-13  Andrew Cagney  <cagney@gnu.org>

	* gdbarch.sh (pseudo_register_read, pseudo_register_write)
	(value_to_register, register_to_value, pointer_to_address)
	(address_to_pointer, return_value, extract_return_value)
	(store_return_value): Instead of a void pointer, use gdb_byte.
	* gdbarch.h, gdbarch.c: Regenerate.
	* inferior.h (unsigned_address_to_pointer)
	(signed_pointer_to_address, address_to_signed_pointer)
	(unsigned_pointer_to_address): Update.
	* arch-utils.h (legacy_return_value): 
	* arch-utils.c (legacy_extract_return_value)
	(legacy_return_value): Update.
	* findvar.c (unsigned_pointer_to_address) 
	(signed_pointer_to_address, unsigned_address_to_pointer) 
	(address_to_signed_pointer): Update.

2005-05-13  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (_initialize_cris_tdep): Improve help strings for
	cris-version, cris-mode, and cris-dwarf2-cfi settings.

2005-05-13  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (usr_cmd_cris_version): Change type to int.
	(cris_mode_normal, cris_mode_guru, cris_modes, usr_cmd_cris_mode): Add.
	(struct gdbarch_tdep): Change type of cris_version to int.  Add
	cris_mode.
	(cris_mode, set_cris_mode): New functions.
	(crisv32_single_step_through_delay): Read from NRP register instead
	of ERP register in guru mode.
	(cris_breakpoint_from_pc): Rename break_insn to break8_insn.
	Add break15_insn, returned in guru mode.
	(_initialize_cris_tdep): Add call to add_setshow_enum_cmd for new 
	cris-mode setting.
	(cris_dump_tdep): Add dump of cris_mode.
	(cris_gdbarch_init): Add cris_mode to search criteria for architecture.
	Register the sigtramp frame sniffer only if not in guru mode.
	
2005-05-13  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (go32-nat.o): Add $(top_h) to prerequisites.

	* go32-nat.c: Include top.h.  Update copyright years.
	(init_go32_ops): Override the default value of gdbinit[] with
	"gdb.ini".

	* cli/cli-cmds.c: Don't define GDBINIT_FILENAME.
	(init_cli_cmds): Use gdbinit[] instead of a compile-time literal
	string GDBINIT_FILENAME.

	* top.c (PATH_MAX): Define if not defined.
	(gdbinit): Declare with a constant size PATH_MAX.

	* config/i386/go32.mh (XM_FILE): Remove.

	* config/i386/xm-go32.h: Remove file.

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

	* sol-thread.c: Include "solib.h".
	(sol_thread_attach): Use solib_add instead of SOLIB_ADD.
	* Makefile.in (sol-thread.o): Update dependencies.

	* NEWS: Mention OpenBSD/mips64 as a new native configuration.

2005-05-12  Eli Zaretskii  <eliz@gnu.org>

	* observer.sh (texi) [DJGPP]: If the file name includes a colon,
	convert it to the /dev/x/ form.

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

	* solib.h (CLEAR_SOLIB, SOLIB_ADD)
	(SOLIB_CREATE_INFERIOR_HOOK, SOLIB_REMOVE_INFERIOR_HOOK)
	(SOLIB_IN_DYNAMIC_LINKER, SOLIB_RESTART)
	(DISABLE_UNSETTABLE_BREAK, PC_SOLIB)
	(IN_SOLIB_DYNSYM_RESOLVE_CODE): Remove defines and orphaned
	comments.
	* breakpoint.c: Include "solib.h".
	(insert_bp_location) [!DISABLE_UNSETTABLE_BREAK]: Call
	solib_address.
	(remove_solib_event_breakpoints, create_solib_event_breakpoint)
	(disable_breakpoints_in_shlibs)
	(disable_breakpoints_in_unloaded_shlib)
	(re_enable_breakpoints_in_shlibs): Compile if SOLIB_ADD isn't
	defined. If PC_SOLIB isn't defined, call solib_address.
	(_initialize_breakpoint): Unconditionally install observer.
	* corelow.c: Include "solib.h".
	[SOLIB_ADD] (solib_add_stub): Remove prototype.
	(core_close) [!CLEAR_SOLIB]: Call clear_solib.
	(solib_add_stub) [!SOLIB_ADD] Call solib_add.
	(core_open): Unconditionally call solib_add_stub.
	* fork-child.c: Include "solib.h".
	(fork_inferior) [!SOLIB_CREATE_INFERIOR_HOOK]: Call
	solib_create_inferior_hook.
	* infcmd.c: Include "solib.h".
	(attach_command) [!SOLIB_ADD]: Call shlib_rescan.  Unconditionally
	call re_enable_breakpoints_in_shlibs.
	* infrun.c: Include "solib.h".
	(SOLIB_IN_SYNSYM_RESOLVE_CODE): Don't define if not already
	defined.
	(stop_on_solib_events, show_stop_on_solib_events): Include
	unconditionally.
	(follow_exec) [!SOLIB_CREATE_INFERIOR_HOOK]: Call
	solib_create_inferior_hook.
	(handle_inferior_event) [!SOLIB_ADD]: Call shlib_add.
	[!IN_SOLIB_DYNSYM_RESOLVE_CODE]: Call in_solib_dynsym_resolve_code.
	(_initialize_infrun): Unconditionally add "stop_on_solib-events"
	command.
	* remote.c: Include "solib.h".
	(remote_open_1): Unconditionally call no_shared_libraries.
	[!SOLIB_CREATE_INFERIOR_HOOK] Call solib_create_inferior_hook.
	* stack.c: Include "solib.h".
	(print_frame) [!PC_SOLIB] Call shlib_for_pc.
	* xcoffsolib.c (no_shared_libraries): Remove function.
	* Makefile.in (SFILES): Add solib.c.
	(ALLDEPFILES): Remove solib.c.
	(COMMON_OBS): Add solib.o.
	(breakpoint.o, corelow.o, fork-chiled.o, infcmd.o, infrun.o)
	(remote.o, stack.o): Update dependencies.

2005-05-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* cp-names.y: Renamed to ...
	* cp-name-parser.y: ... this.
	* Makefile.in (SFILES, YYFILES, YYOBJ): Rename cp-names.y to
	cp-name-parser.y.
	(test-cp-names.o): Renamed to test-cp-name-parser.o.
	(test-cp-names): Renamed to test-cp-name-parser.
	(clean, local-maintainer-clean): Update.
	(cp-names.o): Renamed to cp-name-parser.o.

2005-05-12  Eli Zaretskii  <eliz@gnu.org>

	* observer.sh: Use observer.tmp instead of observer.inc-tmp which
	on 8+3 filesystems overwrites observer.inc.  Update copyright year
	of the resultant file.

	* gnu-v3-abi.c (init_gnuv3_ops): Cast is_gnu_v3_mangled_dtor and
	is_gnu_v3_mangled_ctor to avoid compiler warnings.

	* config/djgpp/config.sed: Adapt to latest Autoconf.

	* config/djgpp/djconfig.sh: Add -Wpointer-arith and
	-Wuninitialized to the build warnings.

2005-05-11  Eli Zaretskii  <eliz@gnu.org>

	* config/djgpp/fnchange.lst: Add mappings for inttypes*.m4,
	ChangeLog-2004, reg-cris*.dat, dw2-intermix.*, semcris*-switch.c.
	Fix mappings for hilo-hazard-?.s.

	* config/djgpp/README: Update GDB versions and my email address.

2005-05-09  Andrew Cagney  <cagney@gnu.org>

	Use gdb_byte in preference to bfd_byte.
	* gdbarch.sh: Update.
	* gdbarch.h, gdbarch.c: Re-generate.
	* ada-lang.c, ada-lang.h, ada-valprint.c, arch-utils.c: Update.
	* c-lang.c, c-lang.h, c-valprint.c, cp-valprint.c: Update.
	* f-lang.c, f-lang.h, f-valprint.c, gdbcore.h, jv-lang.h: Update.
	* jv-valprint.c, language.c, language.h, m2-lang.c: Update.
	* m2-lang.h, m2-valprint.c, objc-lang.c, p-lang.c: Update.
	* p-lang.h, p-valprint.c, regcache.c, scm-lang.c: Update.
	* scm-lang.h, scm-valprint.c, target.c, target.h: Update.
	* tramp-frame.c, valarith.c, valops.c, valprint.c: Update.
	* valprint.h, value.c, value.h: Update.

2005-05-09  Mark Kettenis  <kettenis@gnu.org>

	* vaxbsd-nat.c (vaxbsd_supply_gregset, vaxbsd_collect_gregset):
	Use `gdb_byte *' for regs.
	* vax-tdep.c (vax_supply_gregset): Use `gdb_byte *' for regs;
	(vax_store_arguments, vax_push_dummy_call, vax_return_value): Use
	gdb_byte for buf.
	(vax_breakpoint_from_pc): Change return type to `const gdb_byte
	*'.  Use gdb_byte for break_insn.
	(vax_skip_prologue): Use gdb_byte for op.

	* i387-tdep.c: Remove outdated comments.

	* defs.h: Unconditionally include <sys/types.h>.

2005-05-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-tdep.c (mips_stub_frame_sniffer): Handle .MIPS.stubs
	section like .plt.

2005-05-08  Mark Kettenis  <kettenis@gnu.org>

	* i386-linux-tdep.c (linux_sigtramp_code, linux_rt_sigtramp_code):
	Change type to `static const gdb_byte'.
	(i386_linux_sigtramp_start, i386_linux_rt_sigtramp_start) 
	(i386_linux_sigcontext_addr): Use gdb_byte for buf.
	* amd64-linux-tdep.c (linux_sigtramp_code): Change type to `static
	const gdb_byte'.
	(amd64_linux_sigtramp_start, amd64_linux_sigcontext_addr): Use
	gdb_byte for buf.
	* amd64fbsd-tdep.c (amd64fbsd_supply_uthread) 
	(amd64fbsd_collect_uthread): Use gdb_byte for buf.

	* config/ia64/nm-aix.h: Remove file.

	* amd64-tdep.c (amd64_return_value): Use `gdb_byte *' in casts.
	(amd64_push_arguments): Use gdb_byte instead of bfd_byte.  Use
	gdb_byte for buf.
	(amd64_push_dummy_call): Use gdb_byte for buf.
	(amd64_analyze_prologue): Use gdb_byte for proto, buf and op.
	(amd64_frame_cache, amd64_sigtramp_frame_cache)
	(amd64_unwind_dummy_id): Use gdb_byte for buf.
	(amd64_supply_fxsave, amd64_collect_fxsave): Use `gdb_byte *' for
	regs.
	* amd64obsd-tdep.c (amd64obsd_supply_regset): Use `gdb_byte *' in
	casts.
	(amd64obsd_sigtramp_p): Use gdb_byte for sigreturn and `gdb_byte
	*' for buf,

	* i386-tdep.c (i386_breakpoint_from_pc): Change return type to
	`const gdb_byte *'.  Use gdb_byte for break_insn.
	(i386_follow_jump): Use gdb_byte for op.
	(i386_analyze_struct_return): Use gdb_byte for proto1, proto2, buf
	and op.
	(i386_skip_probe): Use gdb_byte for buf and op.
	(struct i386_insn): Use gdb_byte for insn and mask.
	(i386_match_insn, i386_analyze_frame_setup)
	(i386_analyze_register_saves): Use gdb_byte for op.
	(i386_skip_prologue): Use gdb_byte for pic_pat and op;
	(i386_unwind_pc, i386_frame_cache, i386_sigtramp_frame_cache)
	(i386_unwind_dummy_id, i386_get_longjmp_target): Use gdb_byte for
	buf.
	(i386_extract_return_value, i386_store_return_value): Use
	`gdb_byte *' instead of `void *' for valbuf argument.  Remove now
	redundant cast.
	(i386_pseudo_register_read, i386_pseudo_register_write): Use
	gdb_byte for mmx_buf.
	(i386_register_to_value, i386_value_to_register): Use `gdb_byte *'
	instead of `char *' for buf.
	(i386_supply_gregset, i386_collect_gregset): Use `gdb_byte *'
	instead of `char *' for regs.
	(i386_svr4_sigcontext_addr): Use gdb_byte for buf.
	* i386obsd-tdep.c (i386obsd_sigtramp_p): Use gdb_byte for
	sigreturn and `gdb_byte *' for buf.
	(i386obsd_aout_supply_regset): Use `const gdb_byte *' in cast.
	(i386obsd_supply_uthread, i386obsd_collect_uthread): Use gdb_byte
	for buf.
	* i386bsd-tdep.c (i386bsd_sigcontext_addr): Use gdb_byte for buf.

	* defs.h (gdb_byte): New typedef.  Tweak comments.

	* target.h (target_link): Remove prototype.
	* target.c (target_link): Remove function.
	* symfile.c: Remove comment about rombug.

2005-05-04  Mark Kettenis  <kettenis@gnu.org>

	* config/i386/cygwin.mh (XM_FILE): Remove variable.
	* config/i386/xm-cygwin.h: Remove file.

2005-05-03  Ben Elliston  <bje@au.ibm.com>

	* infrun.c (handle_inferior_event): Update the comment about users
	of stepped_after_stopped_by_watchpoint.

2005-05-02  Corinna Vinschen  <vinschen@redhat.com>

	* MAINTAINERS: Remove hint that sh64 doesn't build.
	* sh64-tdep.c (sh64_push_dummy_call): Cast buf in call to write_memory.
	(sh64_do_fp_register): make raw_buffer unsigned.
	(sh64_do_register): Ditto.

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

	* bsd-uthread.c: Include "solib.h".
	* Makefile.in (bsd-uthread.o): Update dependencies.

2005-05-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbarch.sh (deprecated_current_gdbarch_select_hack): Flush
	cached frames when changing gdbarch.
	* gdbarch.c: Regenerated.

2005-05-01  Andrew Cagney  <cagney@gnu.org>

	* MAINTAINERS: Note that cris, m68k, mn10300, sh64, sparc and vax
	do not build.

	* gdbarch.sh (deprecated_extract_return_value)
	(breakpoint_from_pc, deprecated_store_return_value)
	(memory_insert_breakpoint, memory_remove_breakpoint): Change type
	of buffer to a bfd_byte pointer.
	* gdbarch.h, gdbarch.c: Re-generate.
	* mem-break.c (memory_insert_breakpoint) 
	(memory_remove_breakpoint, default_memory_insert_breakpoint)
	(default_memory_remove_breakpoint): Update.
	* target.h (memory_insert_breakpoint)
	(memory_remove_breakpoint, default_memory_insert_breakpoint)
	(default_memory_remove_breakpoint): Update declarations.
	(struct target_ops): Update to_insert_breakpoint and
	to_remove_breakpoint.
	* target.c (debug_to_remove_breakpoint) 
	(debug_to_insert_breakpoint): Update.
	* remote-m32r-sdi.c (m32r_remove_breakpoint) 
	(m32r_insert_breakpoint): Update.
	* m32r-tdep.c (m32r_memory_insert_breakpoint) 
	(m32r_memory_remove_breakpoint): Update.
	* remote-e7000.c (e7000_insert_breakpoint) 
	(e7000_remove_breakpoint): Update.
	* remote-rdi.c (arm_rdi_insert_breakpoint) 
	(arm_rdi_remove_breakpoint): Update.
	* remote-sim.c (gdbsim_insert_breakpoint) 
	(gdbsim_remove_breakpoint): Update.
	* exec.c (ignore): Update.
	* rs6000-tdep.c (rs6000_extract_return_value): Update.
	* ia64-tdep.c (ia64_memory_insert_breakpoint) 
	(ia64_memory_remove_breakpoint): Update.
	* remote-rdp.c (remote_rdp_insert_breakpoint) 
	(remote_rdp_remove_breakpoint): Update.

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

	* somsolib.c, somsolib.h: Remove files.
	* Makefile.in (somsolib_h): Remove.
	(somsolib.o): Remove dependency.

	* fbsd-nat.c: Include <sys/sysctl.h>.
	(fbsd_pid_to_exec_file): Use KERN_PROC_PATHNAME sysctl if
	available.  Plug memory leak.  Fixes PR gdb/1922.

2005-04-29  Mark Kettenis  <kettenis@gnu.org>

	* solist.h (TARGET_SO_FREE_SO, TARGET_SO_CLEAR_SOLIB) 
	(TARGET_SO_SOLIB_CREATE_INFERIOR_HOOK) 
	(TARGET_SO_SPECIAL_SYMBOL_HANDLING, TARGET_SO_CURRENT_SOS) 
	(TARGET_SO_OPEN_SYMBOL_FILE_OBJECT): Remove defines.
	* solib.c (solib_data): New variable.
	(solib_init, solib_ops): New functions.
	(solib_open, solib_map_sections, free_so, update_solib_list)
	(solib_add, clear_solib, solib_create_inferior_hook)
	(in_solib_dynsym_resolve_code): Call architecture-dependent code
	using solib_ops.
	(_initialize_solib): Register SOLIB_DATA.

2005-04-29  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (find_func_descr): Verify that entry point can be
	found in symbol table prior to looking up its function descriptor.
	* solib-frv.c (find_canonical_descriptor_in_load_object): Add
	test for non-NULL link map.

2005-04-29  Corinna Vinschen  <vinschen@redhat.com>

	* MAINTAINERS: Revert h8300 state to un-deleted.
	* Makefile.in: Re-add h8300-tdep.o dependencies.
	* h8300-tdep.c: Slightly rearrange type definitions and functions.
	(struct frame_extra_info): Remove.
	(struct h8300_frame_cache): Replace locals with differently defined
	uses_fp member.
	(h8300_unwind_pc): Simplify.
	(h8300_unwind_sp): New function.
	(h8300_unwind_dummy_id): Simplify.
	(h8300_init_frame_cache): New function.
	(h8300_is_argument_spill): Use reworked defines for opcode scanning.
	(h8300_skip_prologue): Rewrite.
	(h8300_alloc_frame_cache): Remove.
	(h8300_analyze_frame_setup): Remove.
	(h8300_analyze_register_saves): Remove.
	(h8300_analyze_prologue): Rewrite.
	(h8300_frame_cache): Use h8300_init_frame_cache instead of
	h8300_alloc_frame_cache.  Use BINWORD instead of constant 4 to
	accomodate 16 bit mode.  Fix saved_sp and register offset evaluation.
	(h8300_frame_this_id): Correctly calculate this_id using saved stack
	pointer instead of base.
	(h8300_frame_prev_register): Drop needless braces.
	(h8300_frame_base_address): New function.
	(h8300_frame_base): New frame_base.
	(h8300_push_dummy_call): Return correct CFA value.
	(h8300h_extract_return_value): Fix 8 byte value handling.
	(h8300_use_struct_convention): New function.
	(h8300h_use_struct_convention): New function.
	(h8300h_store_return_value): Fix 8 byte value handling.
	(h8300_return_value): New function.
	(h8300h_return_value): New function.
	(h8300_extract_struct_value_address): Remove deprecated functionality.
	(h8300_push_dummy_code): Remove.
	(h8300_gdbarch_init): Replace set_gdbarch_extract_return_value and
	set_gdbarch_store_return_value calls by set_gdbarch_return_value.
	Remove calls to set_gdbarch_deprecated_fp_regnum,
	set_gdbarch_deprecated_extract_struct_value_address,
	set_gdbarch_deprecated_use_struct_convention and
	set_gdbarch_push_dummy_code.
	Add calls to set_gdbarch_unwind_sp and frame_base_set_default.
	Slightly rearrange code.

2005-04-28  Jim Blandy  <jimb@redhat.com>

	* parse.c (namecopy): Change allocation conventions.
	(namecopy_size): New variable.
	(copy_name): Allocate namecopy using xrealloc, instead of assuming
	it has adequate space allocated to it.
	(parse_exp_1): Don't try to allocate space for namecopy here.

2005-04-28  Eli Zaretskii  <eliz@gnu.org>

	* cli/cli-cmds.c (edit_command): If symtab->fullname is not yet
	set, use symtab_to_fullname, instead of trying to do its job.  Use
	xstrprintf instead of malloc and sprintf.

2005-04-28  Kevin Buettner  <kevinb@redhat.com>

	* remote.c (init_remote_state): Eliminate use of
	deprecated_register_bytes().

2005-04-28  Andrew Cagney  <cagney@gnu.org>

	* valops.c (check_field): Make buffer a bfd_byte.
	* value.c (unpack_long, unpack_double, unpack_pointer) 
	(unpack_field_as_long, modify_field): Ditto.
	* value.h: Update declarations.

2005-04-28  Paul Brook  <paul@codesourcery.com>

	* exceptions.c (print_flush): Handle NULL gdb_stdout_serial.

2005-04-27  Mark Kettenis  <kettenis@gnu.org>

	* solib-svr4.c (_initialize_svr4_solib)
	[SVR4_FETCH_LINK_MAP_OFFSETS]: Don't set non-existent variable
	svr4_legacy_fetch_link_map_offsets.

	* sh-tdep.c (sh_linux_svr4_fetch_link_map_offsets): Remove function.
	(sh_gdbarch_init): Remove redundant prototype.
	* sh-linux-tdep.c: New file.
	* config/sh/tm-linux.h (sh_linux_svr4_fetch_link_map_offsets):
	Remove prototype.
	(SVR4_FETCH_LINK_MAP_OFFSETS): Remove define.
	* config/sh/linux.mt (TDEPFILES): Add sh64-tdep.o, remove
	solib-legacy.o.
	* Makefile.in (sh-linux-tdep.o): New.

	* solib-svr4.c: Update copyright year.  Include "gdb_assert.h".
	(SVR4_FETCH_LINK_MAP_OFFSETS): Don't define if not already
	defined.
	(legacy_fetch_link_map_offsets): Remove prototype.
	(fetch_link_map_offsets_gdbarch_data): Remove.
	(LM_ADDR, LM_NEXT, IGNORE_FIRST_LINK_MAP_ENTRY)
	(first_link_map_member, open_symbol_file_object, svr4_current_sos)
	(svr4_fetch_objfile_link_map): Call svr4_fetch_link_map_offsets
	instead of SVR4_FETCH_LINK_MAP_OFFSETS.
	(solib_svr4_data): New variable.
	(struct solib_svr4_ops): New.
	(solib_svr4_init): New fynction.
	(legacy_fetch_link_map_offsets, init_fetch_link_map_offsets):
	Remove functions.
	(svr4_fetch_link_map_offsets, svr4_have_link_map_offsets): Rewrite
	using the new `struct solib_svr4_ops'.
	(_initialize_svr4_solib): Replace registration of per-architecture
	data.  Add temporary hack to set
	svr4_legacy_fetch_link_map_offsets if SVR4_FETCH_LINK_MAP_OFFSETS
	is set.
	* Makefile.in (solib-svr4.o): Update dependencies.

2005-04-26  Mark Kettenis  <kettenis@gnu.org>

	* configure.tgt (*-*-freebsd*): Set gdb_osabi to
	GDB_OSABI_FREEBSD_ELF.  Partial fix for PR gdb/1922.

2005-04-26  Andrew Cagney  <cagney@gnu.org>

	* remote.c (remote_open_1): Move "ex"'s declaration to where it is
	used.
	(remote_get_thread_local_address): Use throw_error, include a
	printed string.
	* linux-thread-db.c (thread_db_get_thread_local_address): Ditto.
	* dwarf2loc.c (dwarf_expr_tls_address): Ditto.
	* cli/cli-script.c (script_from_file): Mark up throw_error message.
	* linespec.c (symtab_from_filename, decode_variable): Ditto.

2005-04-26  Andrew Cagney  <cagney@gnu.org>

	Rename 'struct exception' to 'struct gdb_exception'.
	* wrapper.c: Update.
	* varobj.c: Update.
	* tui/tui-interp.c: Update.
	* remote.c: Update.
	* mi/mi-main.c: Update.
	* mi/mi-interp.c: Update.
	* linux-thread-db.c: Update.
	* interps.h: Update.
	* interps.c: Update.
	* exceptions.h: Update.
	* exceptions.c: Update.
	* dwarf2loc.c: Update.
	* cli/cli-interp.c: Update.
	* cli/cli-script.c: Update.
	* breakpoint.c: Update.

2005-04-25  Mark Mitchell  <mark@codesourcery.com>

	* event-loop.c (gdb_select): Program defensively.

	* event-loop.c (gdb_assert.h): Include.
	(<windows.h>): Include under Windows.
	(<io.h>): Likeiwse.
	(gdb_select): New function.
	(gdb_wait_for_event): Use it.
	* Makefile.in (event-loop.o): Depend on $(gdb_assert_h).
	
2005-04-23  Mark Kettenis  <kettenis@gnu.org>

	* sparc64-tdep.c: Include "dwarf2-frame.h".
	(sparc64_dwarf2_frame_init_reg): New function.
	* Makefile.in (sparc64-tdep.o): Update dependencies.

2005-04-22  David S. Miller  <davem@davemloft.net>

	* sparc64-linux-tdep.c (sparc64_linux_init_abi): Add call to
	sparc64_init_abi().

2005-04-22  Mark Kettenis  <kettenis@gnu.org>

	* ser-base.c: Include "ser-base.h" instead of "ser-unix.h".

2005-04-22  Mark Mitchell  <mark@codesourcery.com>

	* ser-base.c (<sys/time.h>): Include.

2005-04-22  Mark Kettenis  <kettenis@gnu.org>

	* ppcobsd-tdep.c (ppcobsd_init_abi): Set return_value.

	* sparc-linux-tdep.c: Reorder includes.  Tweak a few comments.
	(LINUX32_SIGTRAMP_INSN0, LINUX32_SIGTRAMP_INSN1)
	(LINUX32_RT_SIGTRAMP_INSN0, LINUX32_RT_SIGTRAMP_INSN1): Remove
	macros.
	(sparc32_linux_sigframe, sparc32_linux_rt_sigframe): Hardcode
	instructions.
	* sparc64-linux-tdep.c: Reorder includes.  Tweak a few comments.
	(LINUX64_RT_SIGTRAMP_INSN0, LINUX64_RT_SIGTRAMP_INSN1): Remove
	macros.
	(sparc64_linux_rt_sigframe): Hardcode instructions.
	* Makefile.in (sparc-linux-tdep.o, sparc64-linux-tdep.o): Update
	dependencies.

	* sparc-linux-tdep.c: Update copyright year.
	(sparc32_linux_init_abi): Set skip_trampoline_code and
	solib_svr4_fetch_link_map_offsets.  Set TDEP->plt_entry_size.
	Don't set software_single_step and don't call
	sparc32_sol2_init_abi.
	* sparc64-linux-tdep.c: Update copyright year.
	(sparc64_linux_init_abi): Set skip_trampoline_code and
	solib_svr4_fetch_link_map_offsets.  Set TDEP->plt_entry_size.
	Don't set software_single_step and don't call
	sparc64_sol2_init_abi.

2005-04-22  Eli Zaretskii  <eliz@gnu.org>

	* remote-st.c (_initialize_remote_st2000): Remove the extraneous
	"<command>" string from the call to add_com.

	* remote-sim.c (_initialize_remote_sim): Ditto.

	* remote-utils.c (_initialize_sr_support): Ditto.

	* remote-mips.c (_initialize_remote_mips): Ditto.

2005-04-21  David S. Miller  <davem@davemloft.net>

	* sparc-linux-tdep.c (sparc32_linux_sigframe_init): New function.
	(sparc32_linux_sigframe, sparc32_linux_rt_sigframe): New tramp_frames.
	(sparc_linux_sigtramp_start, sparc32_linux_sigtramp_start,
	sparc32_linux_rt_sigtramp_start, sparc32_linux_sigtramp_p,
	sparc32_linux_sigtramp_frame_cache,
	sparc32_linux_sigtramp_frame_this_id,
	sparc32_linux_sigtramp_frame_prev_register,
	sparc32_linux_sigtramp_frame_unwind,
	sparc32_linux_sigtramp_frame_sniffer): Delete.
	(sparc32_linux_init_abi): Register new tramp unwinders.  Kill
	register of old sigtramp sniffer.
	* sparc64-linux-tdep.c (sparc64_linux_sigframe_init): New
	function.
	(sparc64_linux_rt_sigframe): New tramp frame.
	(sparc64_linux_sigtramp_start, sparc64_linux_sigtramp_p,
	sparc64_linux_sigtramp_frame_cache,
	sparc64_linux_sigtramp_frame_this_id,
	sparc64_linux_sigtramp_frame_prev_register,
	sparc64_linux_sigtramp_frame_unwind,
	sparc64_linux_sigtramp_frame_sniffer): Delete.
	(sparc64_linux_init_abi): Register new tramp unwinders.  Kill
	register of old sigtramp sniffer.
	Makefile.in (sparc64-linux-tdep.o): Update dependencies.
	(sparc-linux-tdep.o): Likewise.

2005-04-21  Mark Kettenis  <kettenis@gnu.org>

	* ser-base.c: Include "gdb_string.h".
	* Makefile.in (ser-base.o): Update dependencies.

2005-04-20  David S. Miller  <davem@davemloft.net>

	* sparc-linux-tdep.c (sparc32_linux_sigtramp_p): Fix
	signal return stub symbol names, __restore and __restore_rt are
	the i386 symbol names not the sparc ones.
	(sparc32_linux_sigtramp_frame_cache): Document bits/sigcontext.h
	as where the offsets were obtained from.
	* sparc64-linux-tdep.c (LINUX64_RT_SIGTRAMP_INSN0,
	LINUX64_RT_SIGTRAMP_INSN1): New defines.
	(sparc64_linux_sigtramp_start, sparc64_linux_sigtramp_p,
	sparc64_linux_sigtramp_frame_cache,
	sparc64_linux_sigtramp_frame_this_id,
	sparc64_linux_sigtramp_frame_prev_register,
	sparc64_linux_sigtramp_frame_sniffer): New functions.
	(sparc64_linux_sigtramp_frame_unwind): New frame unwinder.
	(sparc64_linux_init_abi): Register sigtramp frame sniffer.
	* Makefile.in (sparc64-linux-tdep.o): Update dependencies.

2005-04-20  Mark Mitchell  <mark@codesourcery.com>

	* configure.ac: On MinGW, define USE_WIN32API and link with
	-lws2_32.
	* ser-tcp.c (<winsock2.h>): Include, for Windows.
	(ETIMEDOUT): Define, for Windows.
	(ioctl): Likewise.
	(closesocket): Define, for POSIX.
	(net_open): Adjust for differences in socket functions between
	Windows and UNIX.
	(net_close): Likweise.
	(net_read_prim): New function.
	(net_write_prim): Likewise.
	(_initialize_ser_tcp): Initialize winsock.  Fill in read_prim and
	write_prim.
	* ser-unix.h (ser_unix_readcchar): Remove.
	(ser_unix_read_prim): Declare.
	(ser_unix_write_prim): Likewise.
	* ser-unix.c (generic_readchar): Move to ser-base.c.
	(ser_unix_wait_for): Likewise.
	(do_unix_readchar): Likewise.
	(ser_unix_readchar): Likewise.
	(_initialize_ser_hardwire): Initialize read_prim and write_prim.
	(ser_unix_read_prim): New function.
	(ser_unix_write_prim): Likewise.
	* ser-base.h (generic_readchar): Declare.
	(ser_base_readchar): Likewise.
	* ser-base.c (<winsock2.h>): Include, for windows.
	(fd_event): Use the read primitive specified by the serial
	interface.
	(ser_base_wait_for): Moved from ser-unix.c
	(do_ser_base_read_char): Likewise.
	(generic_readchar): Likewise.
	(ser_base_readchar): Likewise.
	(ser_base_write): Use the write primitive specified by the serial
	interface.
	* ser-pipe.c (_initialize_ser_pipe): Use ser_base_readchar, not
	ser_unix_readchar.  Initialize read_prim and write_prim.
	* serial.c (struct serial_ops): Add read_prim and write_prim.
	* configure: Regenerate.

2005-04-19  Ben Elliston  <bje@au.ibm.com>

	* c-lang.c (c_create_fundamental_type): Comment fix.

2005-04-18  Michael Snyder  <msnyder@redhat.com>

	* mn10300-tdep.c: Assimilate code from mn10300-prologue.c.
	* mn10300-prologue.c: Remove.
	* mn10300-tdep.h: Add enums from mn10300-prologue.c.
	Remove prototypes.
	* config/mn10300/mn10300.mt: Remove mn10300-prologue module.

2005-04-18  Michael Snyder  <msnyder@redhat.com>

	* config/mn10300/mn10300.mt: Add mn10300-prologue module.
	* ia64-tdep.c (ia64_get_dyn_info_list): Fix indent.

2005-04-18  Mark Kettenis  <kettenis@gnu.org>

	* config/nm-bsd.h: Remove file.

	* hppabsd-nat.c: Update copyright year.  Include "target.h" and
	"inf-ptrace.h".
	(hppabsd_fetch_registers): Renamed from fetch_inferior_registers;
	made static.
	(hppabsd_store_registers): Renamed from store_inferior_registers;
	made static.
	(_initialize_hppabsd_nat): New function and prototype.
	* config/pa/obsd.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-ptrace.o.
	(NAT_FILE): Remove.
	* Makefile.in (hppabsd-nat.o): Update dependencies.

2005-04-17  Mark Kettenis  <kettenis@gnu.org>

	* pa64solib.c, pa64solib.h: Remove files.
	* Makefile.in (pa64solib_h): Remove variable
	(pa64solib.o): Remove dependency.

2005-04-16  Mark Kettenis  <kettenis@gnu.org>

	* ppcobsd-nat.c: Update copyright year.  Include "inf-ptrace.h".
	(ppcobsd_fetch_registers): Renamed from fetch_inferior_registers;
	made static.
	(ppcobsd_store_registers): Renamed from store_inferior_registers;
	made static.
	(_initialize_ppcobsd_nat): Construct and add target vector.
	* config/powerpc/obsd.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-ptrace.o.
	(NAT_FILE): Remove.
	* Makefile.in (ppcobsd-nat.o): Update dependencies.

	* ppcobsd-tdep.c: Include "floatformat.h".
	(ppcobsd_init_abi): Set long_double_bit and long_double_format.
	* Makefile.in (ppcobsd-tdep.o): Update dependencies.

	* ppcobsd-tdep.c: Fix typo in comment.
	(_initialize_ppcobsd_tdep): Register GDB_OSABI_OPENBSD_ELF for
	bfd_arch_rs6000 too.

2005-04-15  Kevin Buettner  <kevinb@redhat.com>

	* remote.c (remote_get_thread_local_address): Throw a more
	meaningful exception when remote target doesn't have support
	for the qGetTLSAddr packet.

2005-04-15  Kevin Buettner  <kevinb@redhat.com>

	* remote.c (remote_protocol_qGetTLSAddr): New static global variable.
	(set_remote_protocol_qGetTLSAddr_packet_cmd)
	(show_remote_protocol_qGetTLSAddr_packet_cmd)
	(remote_get_thread_local_address): New functions.
	(init_all_packet_configs): Initialize remote_protocol_qGetTLSAddr
	variable.
	(init_remote_ops): Initialize ``to_get_thread_local_address'' in
	target vector.
	(show_remote_cmd): Call show_remote_protocol_qGetTLS_Addr_packet_cmd().
	(_initialize_remote):  Register the following commands:
	"set remote get-thread-local-storage-address-packet" and
	"show remote get-thread-local-address-packet".

2005-04-15  Kevin Buettner  <kevinb@redhat.com>

	* remote.c (add_packet_config_cmd): Delete unused variables.

2005-04-15  Kevin Buettner  <kevinb@redhat.com>

	* remote.c (show_remote_protocol_vcont_packet_cmd )
	(show_remote_protocol_qSymbol_packet_cmd)
	(show_remote_protocol_P_packet_cmd)
	(show_remote_protocol_Z_software_bp_packet_cmd)
	(show_remote_protocol_Z_hardware_bp_packet_cmd)
	(show_remote_protocol_Z_write_wp_packet_cmd)
	(show_remote_protocol_Z_read_wp_packet_cmd)
	(show_remote_protocol_Z_access_wp_packet_cmd)
	(show_remote_protocol_binary_download_cmd)
	(show_remote_protocol_qPart_auxv_packet_cmd)
	(show_remote_protocol_p_packet_cmd ): Delete calls to
	deprecated_show_value_hack().

2005-04-15  Corinna VInschen  <vinschen@redhat.com>

	* MAINTAINERS: Change sh64-elf state to non-broken.
	* Makefile.in: Fix dependencies for sh64-tdep.o.
	* configure.tgt: Add sh64-*-elf case.
	* sh-tdep.c (sh_gdbarch_init): Reactivate bfd_mach_sh5 case.
	* sh64-tdep.c: Rework to replace all deprecated mechanisms with
	modern methods.
	* config/sh/embed.mt (TDEPFILES): Add sh64-tdep.o.
	* config/sh/sh64.mt: Resurrect.

2005-04-15  Kei Sakamoto <sakamoto.kei@renesas.com>

	* regformats/reg-m32r.dat: New file.

2005-04-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (fp_model_strings): Add terminating NULL.
	(arm_abi_strings, arm_abi_global, arm_abi_string): New
	variables.
	(arm_extract_return_value, arm_store_return_value): Don't use
	arm_get_fp_model.
	(arm_get_fp_model, arm_set_fp): Delete.
	(arm_update_current_architecture): New function.
	(set_fp_model_sfunc): Call arm_update_current_architecture.
	(show_fp_model): Update output messages.
	(arm_set_abi, arm_show_abi): New functions.
	(arm_elf_osabi_sniffer): Only handle ELFOSABI_ARM.
	(arm_gdbarch_init): Infer the object's ABI separately from its
	OSABI.  Search for a matching architecture.  Honor the global
	ABI and FPU settings.  Set floating point format based on the
	architecture.
	(arm_init_abi_eabi_v1, arm_init_abi_eabi_v2, arm_init_abi_apcs):
	Delete.
	(_initialize_arm_tdep): Don't call gdbarch_register_osabi.
	Create "arm set abi" command.
	* arm-tdep.h (arm_get_fp_model): Delete prototype.
	(enum arm_abi_kind): New type.
	(struct gdbarch_tdep): Add arm_abi field.
	* arm-linux-tdep.c (arm_linux_init_abi): Only override
	tdep->fp_model if it is ARM_FLOAT_AUTO.
	* armnbsd-tdep.c (arm_netbsd_aout_init_abi): Likewise.
	(arm_netbsd_elf_init_abi): Likewise.
	* defs.h (enum gdb_osabi): Delete ARM-specific OSABIs.
	* osabi.c (gdb_osabi_name): Likewise.

2005-04-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/djgpp/fnchange.lst: Remove entries for gdb.gdbserver.

2005-04-10  Mark Kettenis  <kettenis@gnu.org>

	* rs6000-tdep.c (ppc_supply_fpregset): Increment offset by 8 for
	floating-point registers.
	(ppc_collect_fpregset): Likewise.  Fix collection of registers.

2005-04-09  Mark Kettenis  <kettenis@gnu.org>

	* ppcobsd-tdep.c: Update copyright year.  Include "trad-frame.h"
	and "tramp-frame.h".
	(ppcobsd_sigtramp_cache_init): New function.
	(ppcobsd_sigtramp): New variable.
	(ppcobsd_init_abi): Prepend signal trampoline unwinder.
	* Makefile.in (ppcobsd-tdep.o): Update dependencies.

2005-04-08  Andrew Cagney  <cagney@gnu.org>

	* MAINTAINERS (GDB/MI): Andrew Cagney, Elena Zannoni, and Fernando
	Nasser have decided to step back from GDB/MI.

2005-04-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/fnchange.lst: Add testsuite/gdb.gdbserver entries.

2005-04-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2-frame.c (struct dwarf2_frame_cache): New field
	undefined_retaddr.
	(dwarf2_frame_cache): Initialize undefined_retaddr.
	(dwarf2_frame_this_id): Return an invalid frame ID if
	undefined_retaddr.

2005-04-05  Jim Blandy  <jimb@redhat.com>

	Move construction of IA-32 vector types to i386-tdep.c.
	* gdbtypes.c (build_builtin_type_vec64i,
	build_builtin_type_vec128i): Delete functions.
	(builtin_type_vec64i, builtin_type_vec128i): Delete variables.
	(build_gdbtypes): Don't initialize them.
	(_initialize_gdbtypes): Don't register GDBARCH swap entries for
	them.
	* gdbtypes.h (builtin_type_vec64i, builtin_type_vec128i): Delete
	declarations.
	(builtin_type_v2_float, builtin_type_v2_int32,
	builtin_type_v4_int16, builtin_type_v8_int8,
	builtin_type_v2_double, builtin_type_v4_float,
	builtin_type_v2_int64, builtin_type_v4_int32,
	builtin_type_v8_int16, builtin_type_v16_int8): Add extern
	declarations.
	* i386-tdep.c (i386_mmx_type, i386_sse_type): New variables.
	(i386_build_mmx_type, i386_build_sse_type): New functions.
	(i386_register_type): Call them, rather than referring to
	builtin_type_vec64i and builtin_type_vec128i.

2005-04-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* mips-linux-tdep.c (mips_linux_o32_sigframe_init): Adjust
	big-endian correction code to not offset 32-bit registers.
	Locate floating point registers correctly.

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

	* main.c: Update copyright year.
	(captured_main): Avoid using strcpy and strcat.

2005-04-01  Michael Snyder  <msnyder@redhat.com>

	* dummy-frame.c (dummy_frame_sniffer): Optimization: don't bother
	computing this_id if there are no dummy frames on the stack.
	
	* mn10300-tdep.c (mn10300_frame_unwind_cache): Use 
	find_partial_func instead of unwind_pc to identify frame.
	(mn10300_push_dummy_call): Handle struct args, struct_return.

	* mn10300-prologue.c (set_movm_offsets): Don't test variable
	before setting it.
	* mn10300-tdep.c (mn10300_skip_prologue): Use analyze_prologue
	instead of skip_prologue_using_sal.
	
2005-03-31  Kevin Buettner  <kevinb@redhat.com>

	* solib-frv.c (struct lm_info): Add new field ``lm_addr''.
	(main_lm_addr): New static global.
	(frv_current_sos): Retain the link map address for each entry.
	(frv_clear_solib): Clear main_lm_addr.
	(frv_fetch_objfile_link_map): New function.
	* frv-tdep.c (frv_gdbarch_init): Register TLS load module fetcher.
	* frv-tdep.h (frv_fetch_objfile_link_map): Declare.

2005-03-31  Kevin Buettner  <kevinb@redhat.com>

	* gdbarch.sh (fetch_tls_load_module_address): New architecture method.
	* gdbarch.c, gdbarch.h: Regenerate.
	* dwarf2loc.c (dwarf_expr_tls_address): Fetch TLS load module
	address and pass this address, instead of the objfile address, to
	target_get_thread_local_address().
	* linux-thread-db.c (thread_db_get_thread_local_address): Change
	second parameter from type ``struct objfile *'' to CORE_ADDR.  Do
	not call svr4_fetch_objfile_link_map() to fetch the load module
	address.
	* target.h (struct target_ops): Change second parameter of
	``to_get_thread_local_address'' from ``struct objfile *'' to
	``CORE_ADDR''.
	* alpha-linux-tdep.c (solib-svr4.h): Include.
	(alpha_linux_init_abi): Register TLS load module fetcher.
	* amd64-linux-tdep.c (amd64_linux_init_abi): Likewise.
	* hppa-linux-tdep.c (hppa_linux_init_abi): Likewise.
	* i386-linux-tdep.c (i386_linux_init_abi): Likewise.
	* ia64-linux-tdep.c (solib-svr4.h): Include.
	(ia64_linux_init_abi): Register TLS load module fetcher.
	* m32r-linux-tdep.c (m32r_linux_init_abi): Likewise.
	* m68klinux-tdep.c (m68k_linux_init_abi): Likewise.
	* mips-linux-tdep.c (mips_linux_init_abi): Likewise.
	* s390-tdep.c (s390_gdbarch_init): Likewise.
	* sparc-linux-tdep.c (sparc32_linux_init_abi): Likewise.
	* sparc64-linux-tdep.c (solib-svr4.h): Include.
	(sparc64_linux_init_abi): Register TLS load module fetcher.
	* Makefile.in (alpha-linux-tdep.o, ia64-linux-tdep.o)
	(sparc-linux-tdep.o): Update dependencies.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* c-valprint.c (c_value_print): Fix up some formatting.  Use
	check_typedef.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-linux-nat.c (store_register, store_regs): Handle
	ARM_PS_REGNUM.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-linux-tdep.c (arm_linux_thumb_be_breakpoint)
	(arm_linux_thumb_le_breakpoint): New.  Update comments.
	(arm_linux_init_abi): Set Thumb breakpoints also.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (arm-tdep.o): Update dependencies.
	* arm-tdep.c: Include "objfiles.h" and "dwarf2-frame.h".
	(arm_gdbarch_init): Register dwarf2_frame_sniffer.

2005-03-28  Joel Brobecker  <brobecker@adacore.com>

	* irix5-nat.c (supply_fpregset): Fix bug that caused the FSR
	register value to be incorrectly written in the regcache.
	(fill_fpregset): Fix bug that caused the FSR register value
	to be incorrectly read from the regcache.

2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* remote-rdi.c (arm_rdi_insert_breakpoint): Don't call
	arm_pc_is_thumb_dummy.

2005-03-28  Mark Kettenis  <kettenis@gnu.org>

	* sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_saved_regs): Handle
	StackGhost.

	* sparc-tdep.c (sparc_supply_rwindow, sparc_collect_rwindow):
	Handle StackGhost in 64-bit code.
	* sparc64-tdep.c (sparc64_frame_prev_register): Handle StackGhost.

2005-03-27  Christopher Faylor  <cgf@timesys.com>

	* win32-nat.c (handle_exception): Treat win32 routines which check for
	valid addresses as "special" and don't stop when a SEGV is detected.
	(get_child_debug_event): Properly flag exception as unhandled.

2005-03-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* cp-support.c (cp_class_name_from_physname): Rewrite.
	(unqualified_name_from_comp): New function, broken out from
	method_name_from_physname.  Correct handling for typed names
	and templates.
	(method_name_from_physname): Use unqualified_name_from_comp.
	(cp_func_name, remove_params): Move earlier in the file.  Add
	better comments.  Use the component tree to parse the name.
	(_initialize_cp_support): Remove stray whitespace.

2005-03-26  Mark Kettenis  <kettenis@gnu.org>

	* exec.c (bfdsec_to_vmap): Use strcmp instead of DEPRECATED_STREQ.

	* inflow.h: Update copyright year.  Remove #ifdef SHORT_PGRP code.
	Callapse HAVE_TERMIO and HAVE_SGTTY.

	* dwarf2-frame.c (execute_cfa_program): Implement
	DW_CFA_GNU_window_save.

2005-03-25  Mark Kettenis  <kettenis@gnu.org>

	* config/sparc/nbsd64.mh (NAT_FILE): Remove.

	* config/i386/obsd64.mt (TDEPFILES): Add obsd-uthread.o.

2005-03-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (target_is_thumb, caller_is_thumb)
	(arm_pc_is_thumb_dummy): Remove.
	(arm_breakpoint_from_pc): Don't call arm_pc_is_thumb_dummy.

2005-03-25  Anthony Green  <green@redhat.com>

	* remote.c (remote_store_registers): Fix memset usage.
	* std-regs.c (value_of_builtin_frame_reg): Ditto.
	(value_of_builtin_frame_fp_reg): Ditto.
	(value_of_builtin_frame_reg): Ditto.

2005-03-25  Mark Mitchell  <mark@codesourcery.com>

	* ser-base.c (ser_unix_write): Rename to ...
	(ser_base_write): ... this.
	(ser_unix_nop_flush_output): Rename to ...
	(ser_base_flush_output): ... this.
	(ser_unix_flush_input): Rename to ...
	(ser_base_flush_input): ... this.
	(ser_unix_nop_send_break): Rename to ...
	(ser_base_send_break): ... this.
	(ser_unix_nop_drain_output): Rename to ...
	(ser_base_drain_output): ... this.
	(ser_unix_nop_raw): Rename to ...
	(ser_base_raw): ... this.
	(ser_unix_nop_get_tty_state): Rename to ...
	(ser_base_set_tty_state): ... this.
	(ser_unix_nop_noflush_set_tty_state): Rename to ...
	(ser_base_noflush_set_tty_state): ... this.
	(ser_unix_nop_print_tty_state): Rename to ...
	(ser_base_print_tty_state): ... this.
	(ser_unix_nop_setbaudrate): Rename to ...
	(ser_base_setbaudrate): ... this.
	(ser_unix_nop_setstopbits): Rename to ...
	(ser_base_setstopbits): ... this.
	(ser_unix_async): Rename to ...
	(ser_base_async): ... this.
	* ser-base.h (ser_unix_write): Rename to ...
	(ser_base_write): ... this.
	(ser_unix_nop_flush_output): Rename to ...
	(ser_base_flush_output): ... this.
	(ser_unix_flush_input): Rename to ...
	(ser_base_flush_input): ... this.
	(ser_unix_nop_send_break): Rename to ...
	(ser_base_send_break): ... this.
	(ser_unix_nop_drain_output): Rename to ...
	(ser_base_drain_output): ... this.
	(ser_unix_nop_raw): Rename to ...
	(ser_base_raw): ... this.
	(ser_unix_nop_get_tty_state): Rename to ...
	(ser_base_set_tty_state): ... this.
	(ser_unix_nop_noflush_set_tty_state): Rename to ...
	(ser_base_noflush_set_tty_state): ... this.
	(ser_unix_nop_print_tty_state): Rename to ...
	(ser_base_print_tty_state): ... this.
	(ser_unix_nop_setbaudrate): Rename to ...
	(ser_base_setbaudrate): ... this.
	(ser_unix_nop_setstopbits): Rename to ...
	(ser_base_setstopbits): ... this.
	(ser_unix_async): Rename to ...
	(ser_base_async): ... this.
	* ser-pipe.c (_initialize_ser_pipe): Update accordingly.
	* ser-tcp.c (_initialize_ser_tcp): Likewise.
	* ser-unix.c (hardwire_flush_input): Likewise.
	(_initializer_ser_hardwire): Likewise.

	* Makefile.in (SFILES): Add ser-base.c.
	(ser_base_h): New variable.
	(ser-base.o): New target.
	(ser-pipe.o): Depend on $(ser_base_h).
	(ser-tcp.o): Likewise.
	(ser-unix.o): Likewise.  Do not depend on $(event_loop_h).
	* configure.ac (SER_HARDWIRE): Include ser-base.o where
	appropriate.
	* ser-base.c: New file.
	(push_event): Move from ser-unix.c.
	(fd_event): Likewise.
	(reschedule): Likewise.
	(ser_unix_write): Likewise.
	(ser_unix_nop_flush_output): Likewise.
	(ser_unix_flush_input): Likewise.
	(ser_unix_nop_send_break): Likewise.
	(ser_unix_nop_drain_output): Likewise.
	(ser_unix_nop_raw): Likewise.
	(ser_unix_nop_get_tty_state): Likewise.
	(ser_unix_nop_set_tty_state): Likewise.
	(ser_unix_nop_noflush_set_tty_state): Likewise.
	(ser_unix_nop_print_tty_state): Likewise.
	(ser_unix_nop_setbaudrate): Likewise.
	(ser_unix_nop_setstopbits): Likewise.
	(ser_unix_async): Likewise.
	* ser-base.h: New file.
	* ser-pipe.c (ser-base.h): Include it.
	* ser-tcp.c (ser-base.h): Likewise.
	* ser-unix.h (ser_unix_nop_flush_output): Remove.
	(ser_unix_flush_input): Likewise.
	(ser_unix_nop_send_break): Likewise.
	(ser_unix_nop_raw): Likewise.
	(ser_unix_nop_get_tty_state): Likewise.
	(ser_unix_nop_set_tty_state): Likewise.
	(ser_unix_nop_print_tty_state): Likewise.
	(ser_unix_nop_noflush_set_tty_state): Likewise.
	(ser_unix_nop_setbaudrate): Likewise.
	(ser_unix_nop_setstopbits): Likewise.
	(ser_unix_nop_drain_output): Likewise.
	(ser_unix_wait_for): Likewise.
	(ser_unix_write): Likewise.
	(ser_unix_async): Likewise.
	* ser-unix.c (event-loop.h): Do not include it.
	(push_event): Move to ser-base.c.
	(fd_event): Likewise.
	(reschedule): Likewise.
	(ser_unix_write): Likewise.
	(ser_unix_nop_flush_output): Likewise.
	(ser_unix_flush_input): Likewise.
	(ser_unix_nop_send_break): Likewise.
	(ser_unix_nop_drain_output): Likewise.
	(ser_unix_nop_raw): Likewise.
	(ser_unix_nop_get_tty_state): Likewise.
	(ser_unix_nop_set_tty_state): Likewise.
	(ser_unix_nop_noflush_set_tty_state): Likewise.
	(ser_unix_nop_print_tty_state): Likewise.
	(ser_unix_nop_setbaudrate): Likewise.
	(ser_unix_nop_setstopbits): Likewise.
	(ser_unix_async): Likewise.
	(ser_unix_wait_for): Make it static.
	* configure: Regenerated.
	
2005-03-25  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2-frame.h: Update copyrigh year.
	(enum dwarf2_frame_reg_rule): Add DWARF2_FRAME_REG_RA_OFFSET.
	* dwarf2-frame.c: Update copyright year.
	(struct dwarf2_frame_cache): Add member `retaddr_reg'.
	(dwarf2_frame_cache): Deal with DWARF2_FRAME_REG_RA_OFFSET.
	(dwarf2_frame_prev_register): Handle DWARF2_FRAME_REG_RA_OFFSET.

2005-03-23  Martin Hunt  <hunt@redhat.com>

	* configure.ac: Remove -fwritable-strings from CFLAGS.
	* configure: Regenerate.

2005-03-21  Michael Snyder  <msnyder@redhat.com>

	* mn10300-prologue.c (fix_frame_pointer): Delete.
	(set_movm_offsets) Don't return just because movm_args is
	zero -- still need to save pc and sp in saved_regs.
	(mn10300_analyze_prologue): Don't return prematurely without
	calling set_movm_offsets (for pc and sp at minimum).

2005-03-21  Mark Mitchell  <mark@codesourcery.com>

	* configure.ac (stat.st_blksize): Check for it.
	(getuid): Likewise.
	(getgid): Likewise.
	* configure: Regenerated.
	* config.in: Likewise.
	* remote-fileio.c (remote_fileio_to_fio_stat): Check
	HAVE_STRUCT_STAT_ST_BLKSIZE. 

2005-03-21  Christopher Faylor  <cgf@timesys.com>

	* win32-nat.c (do_initial_child_stuff): Don't clear the thread list
	here.
	(do_initial_child_stuff): Move clearing of thread list to a place
	before a thread ould be created.
	(child_attach): Ditto.

2005-03-21  Michael Snyder  <msnyder@redhat.com>

	* mn10300-tdep.c (mn10300_frame_unwind_cache): Use func addr
	instead of pc addr for frame_id.  Otherwise "until" won't work.

2005-03-21  Kevin Buettner  <kevinb@redhat.com>

	* frv-linux-tdep.c (frv_linux_sigcontext_reg_addr): Fix typo in
	comment.

2005-03-20  Mark Kettenis  <kettenis@gnu.org>

	* dwarf2loc.c (dwarf_expr_tls_address): Mark addr as volatile.
	* varobj.c (my_value_equal): Mark val2 as volatile.

	* cp-names.y: Add prototype for yyparse.

2005-03-19  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2loc.c (dwarf_expr_tls_address): Initialize ADDR.
	* gnu-v3-abi.c (gnuv3_baseclass_offset): Update type of
	VALADDR.

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

	* Makefile.in (dwarf2loc.o, linux-thread-db.o): Add dependencies.
	* exceptions.h (TLS_NO_LIBRARY_SUPPORT_ERROR, TLS_GENERIC_ERROR)
	(TLS_LOAD_MODULE_NOT_FOUND_ERROR, TLS_NOT_ALLOCATED_YET_ERROR):
	New error/exception enums.
	* dwarf2loc.c (exceptions.h): Include.
	(dwarf_expr_tls_address): Invoke target_get_thread_local_address()
	via TRY_CATCH mechanism.  Print error messages for TLS related
	exceptions.
	* linux-thread-db.c (thread_db_get_thread_local_address): Throw
	exceptions instead of printing errors.

2005-03-18  Mark Kettenis  <kettenis@gnu.org>

	* utils.c (safe_strerror): Use xsnprintf instead of sprintf.
	(decimal2str, octal2str): Change to return a string allocated by
	get_cell.  Use xsnprint instead of snprintf.
	(paddr_u, paddr_d): Adjust for changed calling convention of
	decimal2str.
	(phex, phex_nz, hex_string): Use xsnprintf instead of snprintf.
	(int_string): Likewise.  Adjust for changed calling convention of
	decimal2str and octal2str.

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

	* frv-linux-tdep.c (frv_linux_sigcontext_reg_addr): Update comments.
	Adjust incorrectly computed constant for realtime signal frame.

2005-03-18  Mark Kettenis  <kettenis@gnu.org>

	From Ralf Corsepius <ralf.corsepius@rtems.org>
	* configure.tgt: Add m68*-*-rtems*.

2005-03-17  Mark Kettenis  <kettenis@gnu.org>

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

	* corelow.c (get_core_register_section): Replace usage of sprintf
	and strcpy with xstrprintf and xstrdup.

	* mips-tdep.c (mips_single_step_through_delay): Put back check for
	breakpoint lost with the introduction of this function.

2005-03-17  Paul Brook  <paul@codesourcery.com>

	* amd64-tdep.c (amd64_dwarf_reg_to_regnum): Fix broken logic.
	* s390-tdep.c (s390_dwarf_reg_to_regnum): Ditto.

2005-03-16  Mark Mitchell  <mark@codesourcery.com>

	* event-top.c (handle_sigquit): Do not define for systems without
	SIGQUIT.
	(sigquit_token): Likewise.
	(async_init_signals): Allow for systems that do not
	define SIGQUIT.
	* ser-tcp.c (net_open): Allow for systems that do not have SIGPIPE.

2005-03-15  Mark Mitchell  <mark@codesourcery.com>

	* utils.c (internal_vproblem): Guard call to fork with 
	HAVE_WORKING_FORK.
	* cli/cli-cmds.c (shell_escape): Guard call to vfork with
	HAVE_WORKING_VFORK and HAVE_WORKING_FORK. 

	* remote-fileo.c (remote_fileio_mode_to_host): Accomodate lack of
	S_IRGRP and related macros.
	(remote_fileio_mode_to_target): Likewise.

2005-03-14  Ben Elliston  <bje@au.ibm.com>

	* Makefile.in (CLIBS): Link libbfd after libopcodes, as it is a
	more primitive library.

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

	* inf-ttrace.c (inf_ttrace_pid_to_str): Use snprintf instead of
	sprintf.
	* target.c (normal_pid_to_str): Likewise.
	* remote.c (remote_pid_to_str): Use snprint instead of sprintf.
	Change capitalization of "thread".  Use ptid_get_pid instead of
	GETPID.

	* cp-abi.c (set_cp_abi_as_auto_default): Use xasprintf instead of
	a combination of xmalloc and sprintf.

2005-03-13  Jim Blandy  <jimb@redhat.com>

	* configure.ac: Use '=', not '=='; the latter is a GNU extension.
	* configure: Regenerated.

2005-03-11  Michael Snyder  <msnyder@redhat.com>

	* mn10300-tdep.c (mn10300_dummy_unwind_dummy_id): Replace 
	stub fn with real implementatin mn10300_unwind_dummy_id.
	(mn10300_push_dummy_call): Implement.  Bare bones version,
	does not handle structs or floats.

2005-03-11  Jim Blandy  <jimb@redhat.com>

	Avoid warnings due to the use of -Wuninitialized without -O.
	* configure.ac (build_warnings): Include -Wuninitialized only if
	CFLAGS is unset at configure time, or CFLAGS is set and includes
	some -O option other than -O0.
	* configure: Regenerated.

	* mips-tdep.c (show_mips_abi): Change calling conventions to match
	those expected by add_setshow_enum_cmd.  Use 'file' argument as
	appropriate.

2005-03-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (SFILES): Add cp-names.y.
	(libiberty_h, safe_ctype_h): New.
	(YYFILES): Add cp-names.c.
	(YYOBJ): Add cp-names.o.
	(test-cp-names.o, test-cp-names$(EXEEXT), cp-names.o): New rules.
	(clean): Remove test-cp-names$(EXEEXT).
	(local-maintainer-clean): Remove cp-names.c.
	* cp-names.y: New file.
	* cp-support.c (find_last_component): Delete.
	(d_left, d_right): Define.
	(cp_canonicalize_string, mangled_name_to_comp): New functions.
	(cp_class_name_from_physname, method_name_from_physname): Rewrite
	to use mangled_name_to_comp.
	* cp-support.h (cp_canonicalize_string, cp_demangled_name_to_comp)
	(cp_comp_to_string): New prototypes.
	* config/djgpp/fnchange.lst: Add cp-names.c.

2005-03-10  Bob Rossi  <bob@brasko.net>

	* main.c (print_gdb_help): Remove the --[no]async help message.

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

	* proc-api.c: Update copyright year.
	(_initialize_proc_api): Revert previous patch, removing spurious
	space instead.

2005-03-09  Joel Brobecker  <brobecker@adacore.com>

	* regcache.c: Fix typo in comment.

2005-03-09  David Lecomber  <david@lecomber.net>

	* proc-api.c (_initialize_proc_api): Fix invalid multi-line 
	i18n text.

2005-03-09  Mark Kettenis  <kettenis@gnu.org>

	* sparc-tdep.c (sparc_frame_cache): Adjust cached frame base
	address for 64-bit code.
	(sparc_unwind_dummy_id): Likewise.
	* sparc64-tdep.c (sparc64_frame_prev_register): Adjust for new
	frame base address convention.
	(sparc64_push_dummy_call): Likewise.
	* sparc64nbsd-tdep.c: Update copyright year.
	(sparc64nbsd_sigcontext_frame_cache): Adjust cached frame base
	address for 64-bit code.
	(sparc64nbsd_init_abi): Tweak comment.
	* sparc64obsd-tdep.c: Update copyright year.
	(sparc64obsd_frame_cache): Adjust cached frame base address for
	64-bit code.
	(sparc64obsd_init_abi): Tweak comment.

2005-03-09  Corinna Vinschen  <vinschen@redhat.com>

	* exceptions.h (TRY_CATCH): Define setjmp/sigsetjmp macro safe.

2005-03-09  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2read.c (dwarf_decode_lines): Use the complete filename
	when creating include psymtabs.

2005-03-08  Mark Mitchell  <mark@codesourcery.com>

	* environ.h (struct environ): Rename to ...
	(struct gdb_environ): ... this.
	(make_environ): Update prototype.
	(free_environ): Likewise.
	(init_environ): Likewise.
	(get_in_environ): Likewise.
	(set_in_environ): Likewise.
	(unset_in_environ): Likewise.
	(environ_vector): Likewise.
	* environ.c (make_environ): Replace "struct environ" with "struct
	gdb_environ".
	(free_environ): Likewise.
	(init_environ): Likewise.
	(environ_vector): Likewise.
	(get_in_environ): Likewise.
	(set_in_environ): Likewise.
	(unset_in_environ): Likewise.
	* infcmd.c (inferior_environ): Likewise.
	* inferior.h (inferior_environ): Likewise.

2005-03-08  Joel Brobecker  <brobecker@adacore.com>

	* infcmd.c (run_command_1): New function, extracted from
	run_command.
	(run_command): Replace implementation by call to run_command_1.
	(start_command): Use run_command_1 to insert the temporary
	breakpoint and run the program. Remove code that's no longer
	needed, as already done at the proper time by run_command_1.

2005-03-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* symfile.c (clear_symtab_users): Call
	clear_current_source_symtab_and_line first.

2005-03-08  Nathan Sidwell  <nathan@codesourcery.com>

	* ax-gdb.c (gen_expr): Add UNOP_PLUS case.
	* c-exp.y (exp): Add unary plus.
	* eval.c (evaluate_subexp_standard): Add UNOP_PLUS case.
	* valarith.c (value_x_unop): Add UNOP_PLUS case.
	(value_pos): New.
	* value.h (value_pos): Declare.

	* remote.c (MIN_REMOTE_PACKET_SIZE): Set to 20.
	(remote_fetch_registers): Allow uppercase hex when resyncing.
	(remote_write_bytes): Only call get_memory_write_packet_size once.
	Robustify packet size calculation for very small packets. Check
	that at least one byte will be written.

	* tracepoint.c (target_is_remote): Allow extended-remote.
	(struct collection_list): Allow 256 registers, like the comment
	said.
	(add_memrange): Fix comment.
	(read_actions): Turn EOF into 'end'.

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

	* Makefile.in: Add dependencies for iq2000-tdep.o.
	* configure.tgt: Add iq2000-*-* target.
	* iq2000-tdep.c: New file.
	* config/iq2000/iq2000.mt: New file.

2005-03-07  Joel Brobecker  <brobecker@adacore.com>

	* doc/observer.texi (executable_changed): New observer.
	* symtab.c: Include "observer.h".
	(find_main_name): New function.
	(main_name): If name_of_main is unset, then compute it
	using find_main_name.
	(symtab_observer_executable_changed): New function.
	(_initialize_symtab): Attach executable_changed observer.
	* exec.c: Include "observer.h".
	(exec_file_attach): Emit executable_changed notification.
	* symfile.c: Include "observer.h".
	(reread_symbols): Send an executable_changed if appropriate.
	* Makefile.in (exec.o): Add dependency on observer.h.
	(symfile.o): Likewise.
	(symtab.o): Likewise.

2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* findvar.c (read_var_value): Don't allocate V when it will not
	be used.  Add missing break for LOC_INDIRECT.

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

	* sparc64fbsd-tdep.c: Include "solib-svr4.h".
	(sparc64fbsd_init_abi): Set skip_trampoline_code and
	solib_svr4_fetch_link_map_offsets.
	* Makefile.in (sparc64fbsd-tdep.o): Update dependencies.

2005-03-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-nat.c (child_follow_fork): Call target_terminal_ours before
	printing output.  Use fprintf_unfiltered.  Only print output when
	debugging.

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

	* sparc64-tdep.c (sparc64_store_floating_fields): Constify third
	argument.
	(sparc64_store_arguments): Constify.

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

	* alphabsd-nat.c: Update copyright year.  Include "inf-ptrace.h".
	(alphabsd_fetch_inferior_registers): Rename from
	fetch_inferior_registers.  Make static.
	(alphabsd_store_inferior_registers): Rename from
	store_inferior_registers.  Make static.
	(_initialize_alphabsd_nat): New function.
	* Makefile.in (alphabsd-nat.o): Update dependencies.
	* config/alpha/fbsd.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-ptrace.o, fbsd-nat.o and gcore.o.
	* config/alpha/nbsd.mh (NAT_CLIBS): Remove variable.
	(NATDEPFILES): Remove infptrace.o and inftarg.o.  Add
	alphabsd-nat.o.
	* config/alpha/nm-fbsd.h: Update copyright year.  Don't include
	"config/nm-bsd.h" and "elf/common.h".
	* config/alpha/nm-nbsd.h: Update copyright year.  Don't include
	"config/nm-nbsd.h".

	* mips64obsd-tdep.c (mips64obsd_init_abi): Don't set
	software_single_step.

2005-03-04  Michael Snyder  <msnyder@redhat.com>

	* mn10300-prologue.c: New file.  Prologue analysis.
	* mn10300-tdep.c: Move REGNUM values to mn10300-tdep.h.
	(mn10300_frame_unwind_cache): Don't call trad_frame_set_id
	until after analyze_prologue, and don't call trad_frame_set_base
	at all (let analyze_prologue do it).

2005-03-04  Michael Snyder  <msnyder@redhat.com>

	* trad-frame.c (trad_frame_set_reg_value): New function.
	* trad-frame.h (trad_frame_set_reg_value): Export.

2005-03-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (remote.o): Update dependencies.
	* remote.c: Include "observer.h".

2005-03-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* target.c (target_read_memory_partial): Always initialize
	ERR.
	(target_write_memory_partial): Likewise.

2005-03-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* remote.c (remote_open_1): Call observer_notify_inferior_created.

2005-03-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (arm_make_stub_cache, arm_stub_this_id)
	(arm_stub_unwind, arm_stub_unwind_sniffer): New.
	(arm_gdbarch_init): Add arm_stub_unwind_sniffer.

2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-nat.c (linux_supports_tracevforkdone, child_follow_fork):
	Use LWP IDs.

2005-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2loc.c (loclist_read_variable): Set optimized_out
	instead of reporting an error.
	* valprint.c (value_check_printable): New function.
	(common_val_print): New function.  Use value_check_printable.
	(value_print): Use value_check_printable.
	* value.h (common_val_print): Add prototype.

	* c-valprint.c (c_val_print): Use common_val_print.
	* cp-valprint.c (cp_print_value_fields): Likewise.
	(cp_print_hpacc_virtual_table_entries): Likewise.
	* f-valprint.c (f_val_print): Likewise.
	* jv-valprint.c (java_value_print, java_print_value_fields):
	Likewise.
	* scm-valprint.c (scm_value_print): Likewise.
	* stack.c (print_frame_args): Likewise.
	* varobj.c (c_value_of_variable): Likewise.
	* p-valprint.c (pascal_val_print, pascal_value_print): Likewise.
	(pascal_object_print_value_fields): Likewise.  Update call to
	pascal_object_print_static_field.
	(pascal_object_print_static_field): Remove TYPE argument.  Use
	common_val_print.

2005-02-25 Mark Kettenis  <kettenis@gnu.org>
	
	Committed by Elena Zannoni <ezannoni@redhat.com>

	* dwarf2read.c (dwarf2_build_psymtabs_hard): Adjust 
	info_ptr before building psymtabs for included files.
	(create_all_comp_units): Initailize initial length size of
	compilation header to zero.
	(read_initial_length): Complain if both 32-bit and 64-bit DWARF
	sections are encountered within the same compilation header.
	(dwarf_decode_line_header): Pass compilation header in call to
	read_initial_length.
	
2005-02-24  Andrew Cagney  <cagney@gnu.org>

	Add show_VARIABLE functions, update add_setshow call.
	* varobj.c (_initialize_varobj, show_varobjdebug): Add and update.
	* valprint.c (_initialize_valprint, show_print_max) 
	(show_stop_print_at_null, show_repeat_count_threshold) 
	(show_prettyprint_structs, show_unionprint) 
	(show_prettyprint_arrays, show_addressprint, show_input_radix) 
	(show_output_radix): Ditto.
	* valops.c (_initialize_valops, show_overload_resolution): Ditto.
	* utils.c (initialize_utils, show_chars_per_line) 
	(show_lines_per_page, show_demangle, show_pagination_enabled) 
	(show_sevenbit_strings, show_asm_demangle): Ditto
	* tui/tui-win.c (_initialize_tui_win, show_tui_border_kind) 
	(show_tui_border_mode, show_tui_active_border_mode): Ditto.
	* top.c (init_main, show_new_async_prompt) 
	(show_async_command_editing_p, show_write_history_p) 
	(show_history_size, show_history_filename, show_caution) 
	(show_annotation_level, init_main): Ditto.
	* target.c (initialize_targets, show_targetdebug)
	(show_trust_readonly): Ditto.
	* symfile.c (_initialize_symfile, show_symbol_reloading) 
	(show_ext_args, show_download_write_size) 
	(show_debug_file_directory): Ditto.
	* source.c (_initialize_source, show_lines_to_list): Ditto.
	* solib.c (_initialize_solib, show_auto_solib_add) 
	(show_solib_search_path): Ditto.
	* p-valprint.c (_initialize_pascal_valprint) 
	(show_pascal_static_field_print): Ditto.
	* printcmd.c (_initialize_printcmd, show_max_symbolic_offset) 
	(show_print_symbol_filename): Add and update.
	* parse.c (_initialize_parse, show_expressiondebug): Dito.
	* observer.c (_initialize_observer, show_observer_debug): Dito.
	* maint.c (_initialize_maint_cmds, show_watchdog) 
	(show_maintenance_profile_p): Dito.
	* linux-nat.c (_initialize_linux_nat, show_debug_linux_nat): Dito.
	* infrun.c (_initialize_infrun, show_debug_infrun) 
	(show_stop_on_solib_events, show_follow_fork_mode_string) 
	(show_scheduler_mode, show_step_stop_if_no_debug): Ditto.
	* infcall.c (_initialize_infcall, show_coerce_float_to_double_p) 
	(show_unwind_on_signal_p): Ditto.
	* gdbtypes.c (build_gdbtypes, show_opaque_type_resolution) 
	(_initialize_gdbtypes, show_overload_debug): Ditto.
	* gdb-events.c, gdb-events.sh (_initialize_gdb_events)
	(show_gdb_events_debug): Ditto.
	* gdbarch.c, gdbarch.sh (show_gdbarch_debug)
	(_initialize_gdbarch): Ditto.
	* frame.c (_initialize_frame, show_backtrace_past_main) 
	(show_backtrace_past_entry, show_backtrace_limit) 
	(show_frame_debug): Ditto.
	* exec.c (_initialize_exec, show_write_files): Ditto.
	* dwarf2read.c (_initialize_dwarf2_read) 
	(show_dwarf2_max_cache_age): Ditto.
	* demangle.c (_initialize_demangler)
	(show_demangling_style_names): Ditto.
	* dcache.c (_initialize_dcache, show_dcache_enabled_p): Ditto.
	* cp-valprint.c (show_static_field_print) 
	(_initialize_cp_valprint, show_vtblprint, show_objectprint): Ditto.
	* corefile.c (_initialize_core, show_gnutarget_string): Ditto.
	* cli/cli-logging.c (_initialize_cli_logging) 
	(show_logging_overwrite, show_logging_redirect) 
	(show_logging_filename): Ditto.
	* cli/cli-cmds.c (show_info_verbose, show_history_expansion_p) 
	(init_cli_cmds, show_baud_rate, show_remote_debug) 
	(show_remote_timeout, show_max_user_call_depth): Ditto.
	* charset.c (show_host_charset_name, show_target_charset_name)
	(initialize_charset): Ditto.
	* breakpoint.c (show_can_use_hw_watchpoints)
	(show_pending_break_support, _initialize_breakpoint): Ditto.

2005-02-23  Jim Blandy  <jimb@redhat.com>

	* disasm.c (gdb_disassemble_info): Call disassemble_init_for_target.

2005-02-23  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-dump.c (dump_bfd_file): Replace magic constant with
	SEC_XXX flags.

2005-02-22  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Only enaable insight when itcl is present.
	* configure: Re-generate.
	
2005-02-21  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>

	Committed by Andrew Cagney.
	* infptrace.c (store_register): Fix typo.

2005-02-21  Andrew Cagney  <cagney@gnu.org>

	* command.h (deprecated_add_set_cmd): Rename add_set_cmd.
	* cli/cli-decode.h (add_set_cmd): Delete declaration.
	* cli/cli-decode.c (deprecated_add_set_cmd): Rename add_set_cmd.
	* i386-nat.c (_initialize_i386_nat): Update call.
	* valprint.c (_initialize_valprint): Update comment.
	* gnu-nat.c (_initialize_gnu_nat): Update call.

2005-02-21  Alan Modra  <amodra@bigpond.net.au>

	* elfread.c (elf_symtab_read): Discard section syms.

2005-02-21  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-decode.c (add_set_enum_cmd): Delete function.
	(deprecated_add_show_from_set): Delete function.
	* command.h (add_set_enum_cmd): Delete declaration.
	(deprecated_add_show_from_set): Delete declaration.
	* cli/cli-decode.h (add_set_enum_cmd): Delete declaration.
	(deprecated_add_show_from_set): Delete declaration.
	* arm-tdep.c (_initialize_arm_tdep): Update comment.
	* kod.c (kod_set_os): Simplify.
	* infrun.c (set_schedlock_func): Simplify.
	* cli/cli-dump.c (add_dump_command): Update comment.

	Replace string variables with a filename completer with
	add_setshow_optional_filename_cmd.
	* solib.c, symfile.c: Update.
	* cli/cli-setshow.c: Do not tidle expand the file.
	
	Add more uses of add_setshow_string_cmd, add_setshow_integer_cmd,
	and add_setshow_string_noescape_cmd.
	* cli/cli-setshow.c (deprecated_show_value_hack): Do not print a
	NULL command's value.
	* kod.c, language.c, ocd.c, remote-e7000.c, remote-mips.c: Update.
	* remote-sds.c, remote.c, symfile.c, top.c: Update.

2005-02-20  Andrew Cagney  <cagney@gnu.org>

	Use add_setshow_enum_cmd through out.
	* arch-utils.c, charset.c, demangle.c, i386-tdep.c: Update.
	* infrun.c, mips-tdep.c, osabi.c, serial.c, tui/tui-win.c: Update.
	
	* mi/mi-main.c (captured_mi_execute_command): Use
	mi_cmd_interpreter_exec.

	* cli/cli-decode.c (add_setshow_optional_filename_cmd): New
	function.
	* cli/cli-setshow.c (deprecated_show_value_hack) 
	(do_setshow_command): Handle var_optional_filename.
	* command.h (enum var_types): Add var_optional_filename.
	(add_setshow_optional_filename_cmd): Declare.
	* infcmd.c (notice_args_read): Use.

	* symfile-mem.c (symbol_file_add_from_memory): Pass
	target_read_memory to bfd_elf_bfd_from_remote_memory.
	(do_target_read_memory): Delete.

2005-02-16  Mark Kettenis  <kettenis@gnu.org>

	* value.h (value_contents_equal): New prototype.
	* value.c (value_contents_equal): New function.
	* varobj.c: Include "exceptions.h" and "gdb_assert.h".  Don't
	include <math.h>.
	(varobj_set_value): Initialize error to zero.
	(varobj_update): Rename error2 to error and initialize it to zero.
	Slightly change the wording of some comments.
	(my_value_equal): Reimplement using TRY_CATCH and
	value_contents_equal.

2005-02-18  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-decode.c (add_setshow_integer_cmd): New function.
	* command.h (add_setshow_integer_cmd): Declare.
	* cli/cli-cmds.c: Update.
	
	Use add_setshow_uinteger_cmd through out.
	* printcmd.c, source.c, utils.c, valprint.c: Update.

	Use add_setshow_zinteger_cmd through out.  Re-sync gdbarch.sh
	and gdbarch.c.
	* breakpoint.c, frame.c, gdb-events.sh, gdbarch.sh: Update.
	* gdbtypes.c, infrun.c, linux-nat.c, maint.c, monitor.c: Update.
	* pa64solib.c, parse.c, remote-mips.c, ser-go32.c: Update.
	* serial.c, solib-frv.c, somsolib.c, target.c, top.c: Update.
	* varobj.c, cli/cli-cmds.c: Update.
	* gdbarch.c, gdb-events.c: Regenerate.
	
	Use add_setshow_boolean_command through out.  Delete #ifdef 0'ed
	code adding set/show boolean commands.
	* cp-valprint.c, dcache.c, exec.c, gdbtypes.c, infrun.c: Update.
	* monitor.c, p-valprint.c, pa64solib.c, printcmd.c: Update.
	* proc-api.c, remote-mips.c, remote.c, solib.c: Update.
	* somsolib.c, symfile.c, top.c, utils.c, valops.c: Update.
	* valprint.c, win32-nat.c, wince.c, xcoffsolib.c: Update.
	* cli/cli-cmds.c: Update.

2005-02-17  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-decode.c (add_setshow_filename_cmd): Set the completer
	to filename_completer.
	* solib.c (_initialize_solib, reload_shared_libraries): Use
	add_setshow_filename_cmd.
	* serial.c (_initialize_serial): Ditto.
	* remote-utils.c (_initialize_sr_support): Ditto.

	* cli/cli-decode.c (add_setshow_string_noescape_cmd): New function.
	* command.h (add_setshow_string_noescape_cmd): Declare.
	* wince.c (_initialize_wince): Use.
	* symfile.c (_initialize_symfile): Use.
	(set_ext_lang_command): Update declaration.
	* corefile.c (_initialize_core): Use.

	* cli/cli-decode.c (add_setshow_cmd_full, add_setshow_enum_cmd)
	(add_setshow_auto_boolean_cmd, add_setshow_boolean_cmd)
	(add_setshow_filename_cmd, add_setshow_string_cmd)
	(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd): Delete
	fprint_setshow parameter.
	* command.h (fprint_setshow_ftype): Delete.
	(add_setshow_cmd_full, add_setshow_enum_cmd)
	(add_setshow_auto_boolean_cmd, add_setshow_boolean_cmd)
	(add_setshow_filename_cmd, add_setshow_string_cmd)
	(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd): Delete
	fprint_setshow parameter.
	* aix-thread.c, alpha-tdep.c, arm-tdep.c, breakpoint.c: Update.
	* complaints.c, cris-tdep.c, dwarf2read.c, frame.c: Update.
	* hppa-tdep.c, infcall.c, m32r-rom.c, maint.c: Update.
	* mips-tdep.c, nto-tdep.c, observer.c, remote-rdi.c: Update
	* remote.c, target.c, cli/cli-logging.c: Update.
	
2005-02-16  Andrew Cagney  <cagney@gnu.org>

	Merge setshow print and show parameters.
	* command.h (show_value_ftype): Define.
	(deprecated_show_value_hack): Declare.
	(add_setshow_enum_cmd, add_setshow_auto_boolean_cmd)
	(add_setshow_boolean_cmd, add_setshow_filename_cmd)
	(add_setshow_string_cmd, add_setshow_uinteger_cmd)
	(add_setshow_zinteger_cmd): Change type of show_func to
	show_value_ftype.
	* cli/cli-decode.h (struct cmd_list_element): Replace
	fprint_setshow with show_value_func.
	* cli/cli-decode.c (add_setshow_cmd_full): Update show_func
	parameter.  Set show_value_func.  Do not set cmd_sfunc.
	(add_setshow_enum_cmd, add_setshow_auto_boolean_cmd) 
	(add_setshow_boolean_cmd, add_setshow_filename_cmd) 
	(add_setshow_string_cmd, add_setshow_uinteger_cmd) 
	(add_setshow_zinteger_cmd): Update.
	* complaints.c (complaints_show_value): Replace
	fprint_setshow_complaints.
	(_initialize_complaints): Update.
	* mips-tdep.c (show_mask_address): Update.
	* arm-tdep.c (show_fp_model): Update.
	* cli/cli-setshow.c (do_setshow_command): Call show_value_func
	instead of fprint_setshow.  Use deprecated_show_value_hack.
	(deprecated_show_value_hack): New function.
	* remote.c (add_packet_config_cmd, show_remote_cmd): 
	(show_remote_protocol_P_packet_cmd) 
	(show_remote_protocol_P_packet_cmd) 
	(show_remote_protocol_Z_access_wp_packet_cmd) 
	(show_remote_protocol_Z_hardware_bp_packet_cmd) 
	(show_remote_protocol_Z_packet_cmd)
	(show_remote_protocol_Z_read_wp_packet_cmd) 
	(show_remote_protocol_Z_software_bp_packet_cmd) 
	(show_remote_protocol_Z_write_wp_packet_cmd) 
	(show_remote_protocol_binary_download_cmd) 
	(show_remote_protocol_p_packet_cmd) 
	(show_remote_protocol_qPart_auxv_packet_cmd) 
	(show_remote_protocol_qSymbol_packet_cmd) 
	(show_remote_protocol_vcont_packet_cmd): Update.

2005-02-16  Mark Kettenis  <kettenis@gnu.org>

	* wrapper.h: Update copyright year.  Properly wrap a few
	prototypes.
	(struct gdb_wrapper_arguments): Remove forward declaration.
	* wrapper.c: Update copyright year.  Include "ui-out.h".
	(struct gdb_wrapper_arguments): Remove.
	(struct captured_value_struct_elt_args): Remove.
	(wrapper_parse_exp_1, wrap_evaluate_expression)
	(wrap_value_fetch_lazy, wrap_value_equal, wrap_value_assign)
	(wrap_value_subscript, wrap_value_ind, wrap_parse_and_eval_type)
	(do_captured_value_struct_elf): Remove functions.
	(gdb_parse_exp_1, gdb_evaluate_expression, gdb_value_fetch_lazy)
	(gdb_value_equal, gdb_value_assign, gdb_value_subscript)
	(gdb_value_ind, gdb_parse_and_eval_type, gdb_value_struct_elt):
	Re-implement using TRY_CATCH.

2005-02-16  Yoshinori Sato  <ysato@users.sourceforge.jp>

	* remote-e7000.c: unuse TM_FILE defined macro.
	(e7000_fetch_registers)	
	(e7000_store_registers)
	(e7000_wait): delete NUM_REALREGS.
	* remote-hms.c: move TM_FILE macro.
	(CCR_REGNO): move define from tm-h8300.h.
	
2005-02-15  Mark Kettenis  <kettenis@gnu.org>

	* amd64-linux-tdep.c: Update copyright year.
	(amd64_linux_sigtramp_start): Use sizeof operator instead of
	LINUX_SIGTRAMP_LEN.

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

	From Paul Hilfinger <hilfinger@gnat.com>
	* dwarf2read.c (new_symbol): Use SYMBOL_SEARCH_NAME rather than
	SYMBOL_NATURAL_NAME to set type names.

2005-02-15  Andrew Cagney  <cagney@gnu.org>

	Mark up add_com, add_info and add_prefix_cmd.
	* breakpoint.c, cp-support.c, dcache.c, dwarf2read.c: Update.
	* exec.c, f-valprint.c, frame.c, gcore.c, gnu-nat.c: Update.
	* go32-nat.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Update.
	* kod.c, language.c, linux-nat.c, m32r-rom.c, macrocmd.c: Update.
	* maint.c, memattr.c, mips-tdep.c, nto-procfs.c, objc-lang.c: Update.
	* ocd.c, pa64solib.c, printcmd.c, procfs.c, regcache.c: Update.
	* remote-e7000.c, remote-m32r-sdi.c, remote-mips.c: Update.
	* remote-sds.c, remote-sim.c, remote-st.c, remote-utils.c: Update.
	* remote.c, rs6000-tdep.c, ser-go32.c, serial.c: Update.
	* sh-tdep.c, solib.c, somsolib.c, source.c, stack.c: Update.
	* symfile.c, symtab.c, target.c, thread.c, top.c: Update.
	* tracepoint.c, typeprint.c, utils.c, valprint.c: Update.
	* win32-nat.c, xcoffsolib.c, cli/cli-cmds.c, cli/cli-dump.c: Update.
	* cli/cli-logging.c, tui/tui-layout.c, tui/tui-regs.c: Update.
	* tui/tui-stack.c, tui/tui-win.c: Update.

2005-02-14  Andrew Cagney  <cagney@gnu.org>

	* config/h8300/h8300.mt (DEPRECATED_TM_FILE): Delete.
	* config/h8300/tm-h8300.h: Delete file.

	Mark up add_cmd.
	* arch-utils.c, avr-tdep.c, breakpoint.c, corefile.c: Update.
	* cp-abi.c, cp-namespace.c, cp-support.c, dummy-frame.c: Update.
	* exec.c, gnu-nat.c, go32-nat.c, hppa-tdep.c, infcmd.c: Update.
	* infrun.c, interps.c, macrocmd.c, maint.c, memattr.c: Update.
	* mips-tdep.c, ocd.c, osabi.c, printcmd.c, regcache.c: Update.
	* reggroups.c, remote-fileio.c, remote-rdi.c, remote.c: Update.
	* sol-thread.c, source.c, stack.c, symfile-mem.c: Update.
	* symfile.c, thread.c, tracepoint.c, valprint.c, value.c: Update.
	* win32-nat.c, cli/cli-cmds.c, cli/cli-dump.c: Update.
	* cli/cli-logging.c, tui/tui-regs.c: Update.

	Mark up add_setshow functions, replace "PRINT:" comment prefix
	with "FIXME: i18n:".
	* aix-thread.c, alpha-tdep.c, arm-tdep.c, breakpoint.c: Update.
	* cris-tdep.c, dwarf2read.c, frame.c, hppa-tdep.c: Update.
	* infcall.c, m32r-rom.c, maint.c, mips-tdep.c: Update.
	* nto-tdep.c, observer.c, remote-rdi.c, remote.c: Update.
	* target.c, cli/cli-logging.c: Update.

	* utils.c (paddress): New function.
	* defs.h (paddress): Declare.
	* printcmd.c (deprecated_print_address_numeric): Rename
	print_address_numeric, call paddress.
	* valprint.c, ui-out.c, tui/tui-stack.c, tracepoint.c: Update.
	* symmisc.c, symfile.c stack.c, p-valprint.c, printcmd.c: Update.
	* maint.c, m32r-rom.c, infcmd.c, f-valprint.c, exec.c: Update.
	* dwarf2read.c, dve3900-rom.c, defs.h, c-valprint.c: Update.
	* corefile.c, cli/cli-cmds.c, breakpoint.c, annotate.c: Update.
	* ada-valprint.c: Update.

2005-02-13  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

	* MAINTAINERS: Add myself to "Write After Approval".

2005-02-12  Yoshinori Sato <ysato@users.sourceforge.jp>

	Restore h8300 support.
	* configure.tgt: Add h8300-*-*
	* h8300-tdep.c: New file. Rewrite new frame code.
	* config/h8300/h8300.mt: New file. Restored Rev 1.3
	* config/h8300/tm-h8300.h: New file. Restored Rev 1.21

	* MAINTAINERS: Add myself to "Write After Approval".

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

	Mark up some of printf_filtered and printf_unfiltered.
	* ada-lang.c, annotate.c, arch-utils.c, breakpoint.c: Update.
	* corelow.c, cp-namespace.c, cp-support.c, dcache.c: Update.
	* demangle.c, dsrec.c, dwarf2read.c, dwarfread.c: Update.
	* event-loop.c, event-top.c, exec.c, f-valprint.c: Update.
	* gdbtypes.c, inf-loop.c, inf-ptrace.c, inf-ttrace.c: Update.
	* infcmd.c, inflow.c, infrun.c, inftarg.c, language.c: Update.
	* linespec.c, linux-nat.c, linux-thread-db.c, maint.c: Update.
	* mdebugread.c, memattr.c, monitor.c, objc-lang.c: Update.
	* ocd.c, osabi.c, printcmd.c, procfs.c, regcache.c: Update.
	* remote.c, solib-som.c, solib.c, somsolib.c, source.c: Update.
	* stack.c, symfile.c, symmisc.c, target.c, thread.c: Update.
	* top.c, utils.c, valprint.c, value.c, cli/cli-cmds.c: Update.
	* cli/cli-dump.c, cli/cli-logging.c, tui/tui-hooks.c: Update.
	* tui/tui-regs.c, tui/tui-win.c: Update.

	Mark up error_no_arg, query, perror_with_name, complaint, and
	internal_error.
	* breakpoint.c, cp-abi.c, cp-namespace.c, cp-support.c: Update.
	* cris-tdep.c, dbxread.c, dictionary.c, dsrec.c: Update.
	* dummy-frame.c, dve3900-rom.c, dwarf2-frame.c, dwarf2expr.c: Update.
	* dwarf2read.c, dwarfread.c, elfread.c, event-loop.c: Update.
	* exceptions.c, exec.c, f-lang.c, findvar.c, fork-child.c: Update.
	* frame-unwind.c, frame.c, frv-linux-tdep.c, frv-tdep.c: Update.
	* gdb_assert.h, gdbarch.c, gdbtypes.c, gnu-nat.c: Update.
	* go32-nat.c, hppa-tdep.c, hppabsd-nat.c, hpread.c: Update.
	* i386-linux-nat.c, i386-nat.c, i386-tdep.c, i386bsd-nat.c: Update.
	* i386fbsd-nat.c, inf-ptrace.c, inf-ttrace.c, infcall.c: Update.
	* infcmd.c, inflow.c, infptrace.c, infrun.c, inftarg.c: Update.
	* interps.c, language.c, linespec.c, linux-nat.c: Update.
	* m32r-linux-nat.c, m68k-tdep.c, m68kbsd-nat.c: Update.
	* m68klinux-nat.c, m88kbsd-nat.c, macroexp.c, macroscope.c: Update.
	* macrotab.c, maint.c, mdebugread.c, memattr.c: Update.
	* mips-linux-tdep.c, mips-tdep.c, mips64obsd-nat.c: Update.
	* mipsnbsd-nat.c, mn10300-tdep.c, monitor.c, nto-procfs.c: Update.
	* objc-lang.c, objfiles.c, objfiles.h, ocd.c, osabi.c: Update.
	* parse.c, ppc-bdm.c, ppc-linux-nat.c, ppc-sysv-tdep.c: Update.
	* ppcnbsd-nat.c, ppcobsd-nat.c, printcmd.c, procfs.c: Update.
	* regcache.c, reggroups.c, remote-e7000.c, remote-mips.c: Update.
	* remote-rdp.c, remote-sds.c, remote-sim.c, remote-st.c: Update.
	* remote-utils.c, remote.c, rs6000-nat.c, rs6000-tdep.c: Update.
	* s390-nat.c, s390-tdep.c, sentinel-frame.c, serial.c: Update.
	* sh-tdep.c, sh3-rom.c, sh64-tdep.c, shnbsd-nat.c: Update.
	* solib-aix5.c, solib-svr4.c, solib.c, source.c: Update.
	* sparc-nat.c, stabsread.c, stack.c, symfile.c, symtab.c: Update.
	* symtab.h, target.c, tracepoint.c, ui-file.c, ui-out.c: Update.
	* utils.c, valops.c, valprint.c, vax-nat.c, vaxbsd-nat.c: Update.
	* win32-nat.c, xcoffread.c, xstormy16-tdep.c: Update.
	* cli/cli-cmds.c, cli/cli-logging.c, cli/cli-script.c: Update.
	* cli/cli-setshow.c, mi/mi-cmd-break.c, mi/mi-cmds.c: Update.
	* mi/mi-console.c, mi/mi-getopt.c, mi/mi-out.c: Update.
	* tui/tui-file.c, tui/tui-interp.c: Update.

2005-02-10  Andrew Cagney  <cagney@gnu.org>
	
	Mark up all error and warning messages.
	* ada-lang.c, amd64-tdep.c, arch-utils.c, breakpoint.c: Update.
	* bsd-kvm.c, bsd-uthread.c, coff-solib.h, coffread.c: Update.
	* core-aout.c, core-regset.c, corefile.c, corelow.c: Update.
	* cp-abi.c, cp-support.c, cp-valprint.c, cris-tdep.c: Update.
	* dbxread.c, demangle.c, doublest.c, dsrec.c: Update.
	* dve3900-rom.c, dwarf2expr.c, dwarf2loc.c: Update.
	* dwarf2read.c, dwarfread.c, elfread.c, eval.c: Update.
	* event-top.c, exec.c, expprint.c, f-lang.c: Update.
	* f-typeprint.c, f-valprint.c, fbsd-nat.c, findvar.c: Update.
	* frame.c, frv-linux-tdep.c, gcore.c, gdbtypes.c: Update.
	* gnu-nat.c, gnu-v2-abi.c, gnu-v3-abi.c, go32-nat.c: Update.
	* hpacc-abi.c, hppa-hpux-nat.c, hppa-hpux-tdep.c: Update.
	* hppa-linux-nat.c, hppa-linux-tdep.c, hppa-tdep.c: Update.
	* hpread.c, hpux-thread.c, i386-linux-nat.c: Update.
	* i386-linux-tdep.c, i386-tdep.c, i386bsd-nat.c: Update.
	* i386gnu-nat.c, i387-tdep.c, ia64-linux-nat.c: Update.
	* ia64-tdep.c, inf-child.c, inf-ptrace.c, inf-ttrace.c: Update.
	* infcall.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Update.
	* inftarg.c, interps.c, irix5-nat.c, jv-lang.c: Update.
	* kod-cisco.c, kod.c, language.c, libunwind-frame.c: Update.
	* linespec.c, linux-nat.c, linux-thread-db.c, m2-lang.c: Update.
	* m32r-rom.c, m68hc11-tdep.c, m68k-tdep.c: Update.
	* m68klinux-nat.c, macrocmd.c, macroexp.c, main.c: Update.
	* maint.c, mdebugread.c, mem-break.c, memattr.c: Update.
	* mips-linux-tdep.c, mips-tdep.c, mipsread.c, monitor.c: Update.
	* nlmread.c, nto-procfs.c, objc-lang.c, objfiles.c: Update.
	* observer.c, ocd.c, p-lang.c, p-typeprint.c: Update.
	* p-valprint.c, pa64solib.c, parse.c, ppc-linux-tdep.c: Update.
	* ppcnbsd-tdep.c, printcmd.c, procfs.c, remote-e7000.c: Update.
	* remote-fileio.c, remote-m32r-sdi.c, remote-rdi.c: Update.
	* remote-rdp.c, remote-sim.c, remote-st.c: Update.
	* remote-utils.c, remote-utils.h, remote.c: Update.
	* rom68k-rom.c, rs6000-nat.c, s390-tdep.c, scm-lang.c: Update.
	* ser-e7kpc.c, ser-tcp.c, ser-unix.c, sh-tdep.c: Update.
	* sh3-rom.c, shnbsd-tdep.c, sol-thread.c, solib-aix5.c: Update.
	* solib-frv.c, solib-irix.c, solib-osf.c, solib-pa64.c: Update.
	* solib-som.c, solib-sunos.c, solib-svr4.c, solib.c: Update.
	* somread.c, somsolib.c, source.c, stabsread.c: Update.
	* stack.c, std-regs.c, symfile-mem.c, symfile.c: Update.
	* symmisc.c, symtab.c, target.c, thread.c, top.c: Update.
	* tracepoint.c, trad-frame.c, typeprint.c, utils.c: Update.
	* uw-thread.c, valarith.c, valops.c, valprint.c: Update.
	* value.c, varobj.c, version.in, win32-nat.c, wince.c: Update.
	* xcoffread.c, xcoffsolib.c, cli/cli-cmds.c: Update.
	* cli/cli-decode.c, cli/cli-dump.c, cli/cli-logging.c: Update.
	* cli/cli-script.c, cli/cli-setshow.c, mi/mi-cmd-break.c: Update.
	* mi/mi-cmd-disas.c, mi/mi-cmd-env.c, mi/mi-cmd-file.c: Update.
	* mi/mi-cmd-stack.c, mi/mi-cmd-var.c, mi/mi-getopt.c: Update.
	* mi/mi-symbol-cmds.c, tui/tui-layout.c, tui/tui-stack.c: Update.
	* tui/tui-win.c: Update.
	
2005-02-10  Ian Lance Taylor  <ian@airs.com>

	* MAINTAINERS: Update my e-mail address.

2005-02-10  Daniel Jacobowitz  <dan@debian.org>

	From Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>:
	PR exp/1821
	* cp-valprint.c: Include "language.h".
	(cp_print_value_fields): Pass the current language to
	fprintf_symbol_filtered.
	* Makefile.in (cp-valprint.o): Update dependencies.

2005-02-10  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-decode.c (add_setshow_enum_cmd, add_setshow_cmd_full)
	(add_setshow_auto_boolean_cmd, add_setshow_boolean_cmd)
	(add_setshow_filename_cmd, add_setshow_string_cmd)
	(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd): Replace
	print string parameter with fprint_setshow function.
	* command.h (fprint_setshow_ftype): Define.  Update declarations.
	* cli/cli-setshow.c (do_setshow_command): When fprint_setshow is
	available, use that.
	* cli/cli-decode.h (struct cmd_list_element): Add field
	fprint_setshow.
	* complaints.c (fprint_setshow_complaints): New function.
	(_initialize_complaints): Pass to add_setshow_zinteger_cmd.
	* hppa-tdep.c (_initialize_hppa_tdep): Replace "print" parameter
	with NULL.
	* mips-tdep.c (_initialize_mips_tdep): Ditto.
	* m32r-rom.c (_initialize_m32r_rom): Ditto.
	* cris-tdep.c (_initialize_cris_tdep): Ditto.
	* arm-tdep.c (_initialize_arm_tdep): Ditto.
	* remote-rdi.c (_initialize_remote_rdi): Ditto.
	* alpha-tdep.c (_initialize_alpha_tdep): Ditto.
	* dwarf2read.c (_initialize_dwarf2_read): Ditto.
	* frame.c (_initialize_frame): Ditto.
	* target.c (initialize_targets): Ditto.
	* maint.c (_initialize_maint_cmds): Ditto.
	* observer.c (_initialize_observer): Ditto.
	* infcall.c (_initialize_infcall): Ditto.
	* breakpoint.c (_initialize_breakpoint): Ditto.
	* cli/cli-logging.c (_initialize_cli_logging): Ditto.
	* remote.c (add_packet_config_cmd, _initialize_remote): Ditto.

	* cli/cli-setshow.c (do_setshow_command): Move code printing the
	value to the end of the function.  Handle MI and non-MI output
	differently.

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

	* cli/cli-decode.c (add_setshow_enum_cmd): Drop set_result and
	show_result parameters.
	* mips-tdep.c (_initialize_mips_tdep): Update calls.
	* command.h: Update declaration.
	* arm-tdep.c (_initialize_arm_tdep, _initialize_arm_tdep): Update
	calls.

	* NEWS: Mention removed commands.
	* m68hc11-tdep.c (show_regs): Delete, unused.
	(_initialize_m68hc11_tdep): Delete deprecated "regs" command.
	* gdb-events.sh: Delete deprecated "set eventdebug" and "show
	eventdebug" commands.
	* gdb-events.c: Regenerate.
	* gdbarch.sh: Delete deprecated "set archdebug" and "show
	archdebug" commands.
	* gdbarch.c: Regenerate.
	* cli/cli-cmds.c (init_cli_cmds): Delete deprecated "set
	remotedebug" and "show remotedebug".
	* arm-tdep.c (_initialize_arm_tdep): Delete deprecated "set arm
	disassembly-flavor", "show arm disassembly-flavor", and
	"othernames" commands.
	(arm_othernames): Delete unused function.

	* ppc-sysv-tdep.c (ppc64_sysv_abi_push_dummy_call)
	(convert_code_addr_to_desc_addr): Convert any function code
	address to the corresponding function's descriptor.
	(ppc64_sysv_abi_return_value): have TYPE_CODE_ENUM and
	TYPE_CODE_INT use the same code paths as TYPE_CODE_INT.  When
	writing, convert any function code address to the corresponding
	descriptor.

	* config/sh/linux.mt (TDEPFILES): Add symfile-mem.o.
	* config/powerpc/linux.mt (TDEPFILES): Ditto.
	* config/pa/linux.mt (TDEPFILES): Ditto.
	* config/mips/linux.mt (TDEPFILES): Ditto.
	* config/m68k/linux.mt (TDEPFILES): Ditto.
	* config/m32r/linux.mt (TDEPFILES): Ditto.
	* config/ia64/linux.mt (TDEPFILES): Ditto.
	* config/arm/linux.mt (TDEPFILES): Ditto.

2005-02-09  Corinna Vinschen  <vinschen@redhat.com>

	* symmisc.c: Include gdb_stat.h.
	(maintenance_print_msymbols): Use inode numbers to compare files.

2005-02-08  Andrew Cagney  <cagney@gnu.org>

	* value.h (METHOD_PTR_IS_VIRTUAL, METHOD_PTR_FROM_VOFFSET) 
	(METHOD_PTR_TO_VOFFSET): Move from here ...
	* cp-support.h (METHOD_PTR_IS_VIRTUAL, METHOD_PTR_FROM_VOFFSET) 
	(METHOD_PTR_TO_VOFFSET): ... to here.
	* cp-valprint.c, p-valprint.c, eval.c: Include "cp-support.h".
	* Makefile.in: Update dependencies.
	
	* exceptions.c: Do not include <setjmp.h>.
	(SIGJMP_BUF, SIGSETJMP, SIGLONGJMP): Delete macros.
	(catch_exception, catch_exceptions_with_msg, catch_errors) 
	(catch_command_errors): Use TRY_CATCH.
	(struct catcher): Use EXCEPTIONS_SIGJMP_BUF.
	(exceptions_state_mc_init): Rename catcher_init.
	(exceptions_state_mc): Rename catcher_state_machine.
	(exceptions_state_mc_action_iter)
	(exceptions_state_mc_action_iter_1): New functions.
	* exceptions.h: Include <setjmp.h>.
	(EXCEPTIONS_SIGJMP_BUF, EXCEPTIONS_SIGSETJMP) 
	(EXCEPTIONS_SIGLONGJMP): Define.
	(exceptions_state_mc_init, exceptions_state_mc_action_iter)
	(exceptions_state_mc_action_iter_1): Declare.
	(TRY_CATCH): Define.

	* ppc-linux-tdep.c (ppc_linux_init_abi): Do not set malloc name,
	no longer needed.

	* ppc-linux-nat.c (ppc_register_u_addr): Hack around 64-bit
	PT_FPSCR breakage.

	* value.c (struct value): Move to here ...
	* value.h (struct value): ... from here.  Copy comments to
	corresponding function declarations, re-order.

2005-02-07  Andrew Cagney  <cagney@gnu.org>

	* value.c (set_value_bitpos, set_value_bitsize): Define.
	* value.h (set_value_bitpos, set_value_bitsize): Declare.
	* ada-lang.c, valarith.c: Update.

	* cp-valprint.c, c-valprint.c, infcall.c: Use value_contents or
	value_contents_writeable, include note that there are problems.
	* breakpoint.c, infcall.c: Use VALUE_LVAL.

	* value.h (set_value_offset): Declare.
	* value.c (set_value_offset): Declare.
	* gnu-v2-abi.c, jv-valprint.c, valarith.c, valops.c: Update.
	* findvar.c: Update.

	* value.h (value_next): Declare.
	* value.c (value_next): Define.
	* breakpoint.c: Update.

	* value.h (deprecated_set_value_modifiable)
	(deprecated_value_modifiable): Declare.
	* value.c (deprecated_set_value_modifiable): Define.
	(deprecated_value_modifiable): Define.
	* ada-lang.c, valops.c, breakpoint.c, tracepoint.c: Update.

	* value.h (deprecated_set_value_type): Declare.
	* value.c (deprecated_set_value_type): Define.
	* hpacc-abi.c, gnu-v2-abi.c, cp-valprint.c: Update.
	* c-valprint.c, jv-lang.c, objc-lang.c, ada-lang.c: Update.
	* infcall.c, printcmd.c, valops.c, eval.c, p-exp.y: Update.
	* ax-gdb.c, tracepoint.c: Update.

	* value.h (deprecated_value_lval_hack)
	(deprecated_value_address_hack) 
	(deprecated_value_internalvar_hack) 
	(deprecated_value_regnum_hack): Declare.
	(VALUE_LVAL, VALUE_ADDRESS, VALUE_INTERNALVAR) 
	(VALUE_FRAME_ID, VALUE_REGNUM): Use.
	* value.c (deprecated_value_lval_hack)
	(deprecated_value_address_hack) 
	(deprecated_value_internalvar_hack) 
	(deprecated_value_regnum_hack): Define.

	* value.h (VALUE_POINTED_TO_OFFSET): Delete.
	(set_value_pointed_to_offset, value_pointed_to_offset): Declare.
	* value.c (set_value_pointed_to_offset): Define
	(value_pointed_to_offset): Define.
	* valops.c: Update.

	* value.h (VALUE_EMBEDDED_OFFSET): Delete.
	(value_embedded_offset, set_value_embedded_offset): Declare.
	* value.c (value_embedded_offset): Define.
	(set_value_embedded_offset): Define.
	* valops.c, p-valprint.c, mi/mi-main.c, hpacc-abi.c: Update.
	* gnu-v3-abi.c, eval.c, c-valprint.c, cp-valprint.c: Update.
	* cp-abi.h: Update.

	* value.h (VALUE_LAZY): Delete
	(set_value_lazy): Declare.
	* value.c (set_value_lazy): Define.
	* valops.c, valarith.c, jv-valprint.c, jv-lang.c: Update.
	* gnu-v2-abi.c, findvar.c, dwarf2loc.c, ada-lang.c: Update.

2005-02-06  Andrew Cagney  <cagney@gnu.org>

	* value.h (VALUE_OPTIMIZED_OUT): Delete.
	(value_optimized_out, set_value_optimized_out): Declare.
	* value.c (set_value_optimized_out, value_optimized_out): Define.
	* valprint.c, findvar.c, dwarf2loc.c: Update.

	* value.c (value_contents, value_contents_writeable): New
	functions.
	* value.h (VALUE_CONTENTS): Delete macro.
	(value_contents, value_contents_writeable): Declare.
	* xstormy16-tdep.c, value.c, valops.c, valarith.c: Update.
	* stack.c, sparc-tdep.c, sparc64-tdep.c, sh-tdep.c: Update.
	* sh64-tdep.c, scm-valprint.c, scm-exp.c, s390-tdep.c: Update.
	* rs6000-tdep.c, p-valprint.c, printcmd.c: Update.
	* ppc-sysv-tdep.c, mips-tdep.c, mi/mi-main.c: Update.
	* m88k-tdep.c, m68hc11-tdep.c, m32r-tdep.c: Update.
	* jv-valprint.c, ia64-tdep.c, hppa-tdep.c: Update.
	* hpacc-abi.c, f-valprint.c, frv-tdep.c, eval.c: Update.
	* c-valprint.c, cris-tdep.c, cp-valprint.c: Update.
	* cli/cli-dump.c, breakpoint.c, avr-tdep.c, arm-tdep.c: Update.
	* arm-linux-tdep.c, amd64-tdep.c, alpha-tdep.c: Update.
	* ada-valprint.c, ada-lang.c: Update.

2005-02-03  Andrew Cagney  <cagney@gnu.org>

	* utils.c (xzalloc): New function.
	* defs.h (XZALLOC): Use xzalloc.
	(xzalloc): Declare.
	* value.c (allocate_value): Allocate a zeroed buffer.
	* mdebugread.c (xzalloc): Delete.

2005-02-02  Andrew Cagney  <cagney@gnu.org>

	* value.h (value_lazy): Declare.
	* varobj.c, value.c, valops.c, valarith.c, printcmd.c: Update.
	* cp-valprint.c, breakpoint.c, ada-lang.c: Update.

	* value.h (VALUE_CONTENTS_ALL): Delete.
	(value_contents_all): Declare.
	* value.c (value_contents_all): New function.
	* hpacc-abi.c, cp-valprint.c, valops.c, c-valprint.c: Update.
	* m68k-tdep.c, i386-tdep.c, infcall.c, valops.c: Update.

	* value.c (value_enclosing_type): New function.
	* value.h (VALUE_ENCLOSING_TYPE): Delete.
	(value_enclosing_type): Declare.
	* xstormy16-tdep.c, vax-tdep.c, m68k-tdep.c, i386-tdep.c: Update.
	* gnu-v3-abi.c, hpacc-abi.c, infcall.c, valops.c: Update.

	* value.c (value_contents_all_raw)
	(value_contents_raw): New functions.
	* value.h (VALUE_CONTENTS_ALL_RAW, VALUE_CONTENTS_RAW): Delete.
	(value_contents_raw, value_contents_all_raw): Declare functions.
	(VALUE_CONTENTS, VALUE_CONTENTS_ALL): Update.
	* std-regs.c, valarith.c, valops.c, eval.c: Update.
	* tracepoint.c, findvar.c: Update.

2005-02-01  Orjan Friberg  <orjanf@axis.com>

	* regformats/reg-cris.dat: New file with register definitions for CRIS.
	* regformats/reg-crisv32.dat: Ditto for CRISv32.

2005-01-31  Andrew Cagney  <cagney@gnu.org>

	* configure: Regenerate to track ../gettext.m4.

2005-01-29  Baurzhan Ismagulov  <ibr@radix50.net>

	* MAINTAINERS: Add myself to "Write After Approval".

	* ax-gdb.c, ax-general.c, bcache.c, bfd-target.c, bsd-kvm.c,
	* buildsym.c, c-lang.c, c-typeprint.c, c-valprint.c, charset.c,
	* coff-pe-read.c, coffread.c, complaints.c, copying.c: I18n markup.

2005-01-29  Mark Kettenis  <kettenis@gnu.org>

	* configure.ac: Remove extra check for ranlib.
	* configure: Regenerated.

2005-01-28  Andrew Cagney  <cagney@gnu.org>

	* language.h (struct language_defn): Make la_val_print's buffer
	parameter a const bfd_byte.
	* cp-valprint.c (cp_print_value_fields, cp_print_value): Update.
	* ada-lang.c (ada_aligned_value_addr)
	(ada_value_primitive_packed_val, ada_which_variant_applies): Update.
	* valprint.c (val_print_array_elements): Update.
	* valprint.h (val_print_array_elements): Update.
	* ada-lang.h (ada_val_print, ada_aligned_value_addr)
	(ada_value_primitive_packed_val, ada_which_variant_applies): Update.
	* ada-valprint.c (ada_val_print, struct ada_val_print_args) 
	(ada_val_print_1, ada_print_floating, printable_val_type) 
	(print_record, val_print_packed_array_elements) 
	(print_field_values, print_variant_part): Update.
	* c-lang.h (c_val_print, cp_print_value_fields): Update.
	* c-valprint.c (c_val_print): Update.
	* f-lang.h (f_val_print): Update.
	* f-valprint.c (f_val_print, f77_print_array_1)
	(f77_print_array): Update.
	* jv-lang.h (java_val_print): Update.
	* jv-valprint.c (java_print_value_fields, java_val_print): Update.
	* language.c (unk_lang_val_print): Update.
	* m2-lang.h (m2_val_print): Update.
	* m2-valprint.c (m2_val_print): Update.
	* p-lang.h (pascal_val_print): Update.
	(pascal_object_print_value_fields): Update.
	* p-valprint.c (pascal_val_print) 
	(pascal_object_print_value_fields, pascal_object_print_value) 
	(pascal_object_print_value): Update.
	* scm-lang.h (scm_val_print): Update.
	* scm-valprint.c (scm_val_print): Update.
	* value.h (val_print): Update.

	* p-lang.h (pascal_object_print_class_member)
	(pascal_object_print_class_method): Make buffer a const bfd_byte.
	* p-valprint.c (pascal_object_print_class_method)
	(pascal_object_print_class_method): Ditto.
	
	* language.h (struct language_defn): Make la_printstr's buffer
	parameter a const bfd_byte.
	* p-lang.h (pascal_printstr): Update function to match.
	* ada-valprint.c (ada_printstr): Update function to match.
	* scm-lang.c (scm_printstr): Update function to match.
	* p-lang.c (pascal_printstr): Update function to match.
	* ada-lang.h (ada_printstr): Update function to match.
	* m2-lang.c (m2_printstr): Update function to match.
	* objc-lang.c (objc_printstr): Update function to match.
	* c-lang.h (c_printstr): Update function to match.
	* f-lang.c (f_printstr): Update function to match.
	* c-lang.c (c_printstr): Update function to match.
	* language.c (unk_lang_printstr): Update function to match.

	* valprint.c (val_print_type_code_int): Make buffer a const bfd_byte.
	* valprint.h (val_print_type_code_int): Ditto.

	* objc-lang.h (c_val_print, c_value_print): Delete declarations.

	* cp-valprint.c (cp_print_class_method)
	(cp_print_class_member): Make buffer a const bfd_byte.
	* c-lang.h (cp_print_class_member, cp_print_class_method): Ditto.

	* ada-lang.c (value_from_contents_and_address)
	(to_record_with_fixed_variant_part)
	(value_tag_from_contents_and_address, ada_to_fixed_type)
	(to_fixed_variant_branch_type, to_fixed_record_type)
	(ada_template_to_fixed_record_type, cond_offset_host)
	(ada_template_to_fixed_record_type_1): Make buffer a const
	bfd_byte.
	* ada-lang.h (ada_template_to_fixed_record_type_1)
	(value_from_contents_and_address, ada_to_fixed_type): Ditto.

	* ada-valprint.c (char_at, printstr): Make buffer a const bfd_byte.

	* gdbtypes.h (print_scalar_formatted): Make buffer a const bfd_byte.
	* printcmd.c (print_scalar_formatted): Update.

	* value.h (value_bit_index, print_floating)
	(find_rt_vbase_offset): Make buffer a const bfd_byte.
	* valprint.c (print_floating): Update.
	* valarith.c (value_bit_index): Update.
	* valops.c (find_rt_vbase_offset): Update.

	* valprint.h (print_octal_chars, print_char_chars)
	(print_hex_chars, print_decimal_chars, print_binary_chars): Make
	buffer a const bfd_byte.
	* valprint.c (print_binary_chars, print_octal_chars)
	(print_decimal_chars, print_hex_chars, print_char_chars): Make
	"valaddr"buffer a const bfd_byte, ditto for local variables
	referencing that buffer.

	* m2-valprint.c: Include "c-lang.h".
	(c_val_print): Delete extern declaration.
	* scm-valprint.c: Include "c-lang.h".
	(c_val_print): Delete extern declaration.
	Makefile.in: Update dependencies.

	* gnu-v2-abi.h (gnuv2_baseclass_offset): Make "valaddr" a const
	bfd_byte.
	* cp-abi.h (baseclass_offset): Make "valaddr" a const bfd_byte.
	(struct cp_abi_ops): Make baseclass_offset's "valaddr" a const
	bfd_byte.
	* cp-abi.c (baseclass_offset): Update.
	* gnu-v2-abi.c (gnuv2_baseclass_offset): Update.

	* gnu-v2-abi.h: New file.
	* gnu-v2-abi.c: Include "gnu-v2-abi.h".
	(gnuv2_baseclass_offset): Delete declaration.
	* hpacc-abi.c: Include "gnu-v2-abi.h".
	(gnuv2_baseclass_offset): Delete extern declaration.
	* Makefile.in: Update dependencies.

	* doublest.c (floatformat_is_negative, floatformat_is_nan)
	(floatformat_mantissa, get_field): Make the buffer a const
	bfd_byte, simplify.

2005-01-27  Andrew Cagney  <cagney@gnu.org>

	* value.h (struct value): Change type of contents to bfd_byte.
	(VALUE_CONTENTS_RAW): Simplify.

	* gdbarch.sh (integer_to_address): Change buf parameter to a const
	bfd_byte, make pure-multi-arch.
	* gdbarch.h, gdbarch.c: Regenerate.
	* mips-tdep.c (mips_integer_to_address): Update.
	* value.c (value_as_address): Update.
	
	* cli/cli-dump.h (fopen_with_cleanup): Make "filename" const.
	* cli/cli-dump.c (dump_binary_file, dump_bfd_file): Make string
	parameters const, change buf to a const bfd_byte.
	(fopen_with_cleanup, bfd_openw_with_cleanup): Make all string
	parameters const.

	* corefile.c (write_memory): Update, make a copy of the read-only
	buffer.
	* target.c (target_read_memory): Update.
	(target_write_memory): Update, make a copy of the read-only
	buffer.
	* gdbcore.h (write_memory): Change buffer type to bfd_byte, make
	const.
	* target.h (target_read_memory, target_write_memory): Change
	buffer type to bfd_byte; for write_memory, make it const.
	* symfile-mem.c (do_target_read_memory): New function.
	(symbol_file_add_from_memory): Pass do_target_read_memory to
	bfd_elf_bfd_from_remote_memory.

	* value.h: Indent using gdb_indent.sh.

	* configure: Regenerate to track ../gettext.m4 change.

2005-01-26  Andrew Cagney  <cagney@gnu.org>

	* rs6000-tdep.c: Include "reggroups.h".
	(rs6000_gdbarch_init): Set register_reggroup_p.
	(rs6000_register_reggroup_p): New function.

2005-01-26  Orjan Friberg  <orjanf@axis.com>

	* cris-tdep.c (enum cris_num_regs, enum cris_regnums)
	(cris_sigtramp_frame_unwind_cache, cris_register_size): Update for
	CRISv32.
	(crisv32_single_step_through_delay, cris_can_use_hardware_watchpoint)
	(cris_region_ok_for_watchpoint, cris_stopped_data_address)
	(crisv32_cannot_fetch_register, crisv32_cannot_store_register)
	(crisv32_register_type, cris_special_register_name)
	(crisv32_register_name): New functions.
	(cris_spec_reg_applicable): Recognize more versions.
	(cris_register_name): Update with call to cris_special_register_name.
	(find_cris_op): Filter out CRISv32 instructions.  Tweaked comment and
	warning when unable to find step target.
	(CRISV10_ELF_NGREG, CRISV32_ELF_NGREG, crisv32_elf_gregset_t): Define.
	(supply_gregset): Add struct gdbarch_tdep.  Set pseudo-PC register for 
	CRISv32.
	(fetch_core_registers): Update for CRISv32.
	(cris_gdbarch_init): Set pc_regnum, register_type, num_regs,
	register_name, cannot_store_register, cannot_fetch_register,
	have_nonsteppable_watchpoint, single_step_through_delay for CRISv32.
	
2005-01-26  Nick Roberts  <nickrob@snap.net.nz>

	* interps.c (interpreter_exec_cmd): Use condition,
	e.reason < 0, to raise an error.

2005-01-25  Andrew Cagney  <cagney@gnu.org>

	* ppc-linux-tdep.c: Include "tramp-frame.h"
	(struct ppc_linux_sigtramp_cache)
	(ppc_linux_sigtramp_this_id, ppc_linux_sigtramp_prev_register)
	(ppc_linux_sigtramp_unwind, ppc_linux_sigtramp_sniffer)
	(ppc_linux_sigtramp_cache): Delete.
	(ppc32_linux_sigaction_cache_init)
	(ppc64_linux_sigaction_cache_init)
	(ppc32_linux_sighandler_cache_init)
	(ppc64_linux_sighandler_cache_init)
	(ppc32_linux_sigaction_tramp_frame)
	(ppc64_linux_sigaction_tramp_frame)
	(ppc32_linux_sighandler_tramp_frame)
	(ppc64_linux_sighandler_tramp_frame)
	(ppc_linux_sigtramp_cache, ppc_linux_init_abi): Implement 32 and
	64-bit, sigaction and siginfo tramp-frame unwinders.

	* ppc-linux-tdep.c (ppc_linux_init_abi): Always set
        long_double_bit to 8.

2005-01-24  Andrew Cagney  <cagney@gnu.org>

	* infrun.c (handle_inferior_event): Handle back-to-back and nested
	signals where the step_resume_breakpoint may have already been
	inserted.

2005-01-24  Andrew Cagney  <cagney@gnu.org>

	* configure: Regenerate, ../gettext.m4 was updated.

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

	* NEWS: Mention new BSD user-level threads support.

	* i386obsd-tdep.c: Update copyright year.  Include
	"bsd-uthread.h".
	(i386obsd_uthread_reg_offset): New variable.
	(I386OBSD_UTHREAD_ESP_OFFSET): New define.
	(i386obsd_supply_uthread, i386obsd_collect_uthread): New
	functions.
	(i386obsd_init_abi): Set supply_uthread and collect_uthread.
	* Makefile.in (i386obsd-tdep.o): Update dependencies.
	* config/i386/obsd.mt (TDEPFILES): Add bsd-uthread.o.

2005-01-23  Christopher Faylor  <cgf@timesys.com>

	* win32-nat.c: Update copyright year.
	(child_init_thread_list): Set thread linked list point to NULL so that
	it won't be reused after clearing.

2005-01-21  Mark Kettenis  <kettenis@gnu.org>

	* acconfig.h (HAVE_STRUCT_REG_R_FS, HAVE_STRUCT_R_GS): Remove
	undefs.
	* configure.ac: Use AC_CHECK_MEMBERS to check whether `struct
	thread' has a td_pcb member and whether `struct reg' has r_fs and
	r_gs members.
	* configure, config.in: Regenerate.

2005-01-21  Mark Kettenis  <kettenis@gnu.org>

	* configure.ac: Remove ia64-*-aix* junk.
	* configure: Regenerate.

	* configure.ac: Use AC_CHECK_DECLS instead of gcc_AC_CHECK_DECLS
	and BFD_NEED_DECLARATION.  Don't check if a declaration of strdup
	is necessary.
	* configure, config.in: Regenerate.
	* utils.c: Adjust for usage of AC_CHECK_DECLS instead of
	BFD_NEED_DECLARATION.  Never provide a prototype for
	caninicalize_file_name.
	* gdb_string.h: Adjust for usage of AC_CHECK_DECLS instead of
	BFD_NEED_DECLARATION.

	* configure.ac (targ_archs): Use standard autoconf check for
	"struct stat.st_blocks" instead of rolling our own.
	* configure: Regenerated.
	* acconfig.h (HAVE_STRUCT_STAT_ST_BLOCKS): Remove undef.
	* config.in: Regenerated.

2005-01-21  Mark Kettenis  <kettenis@gnu.org>

	* configure.ac: Modernize checks for `long long' and `long double'
	support.
	* configure: Regenerated.
	* acconfig.h (CC_HAS_LONG_LONG, PRINTF_HAS_LONG_LONG)
	(PRINT_HAS_LONG_DOUBLE,	SCANF_HAS_LONG_DOUBLE): Remove undefs.
	* config.in: Regenerated.

2005-01-20  Mark Kettenis  <kettenis@gnu.org>

	* acconfig.h (HAVE_STRUCT_SAVE_STATE_T)
	(HAVE_STRUCT_MEMBER_SS_WIDE): Remove undefs.
	* configure.ac: Remove checks for HP-UX save_state structure.
	* configure: Regenerated.

2005-01-19  Andrew Cagney  <cagney@gnu.org>

	* utils.c (quit): Simplify, call fatal.
	* exceptions.c: Include "serial.h"
	(print_flush): Mimic flush code found in utils.c:quit.
	* Makefile.in: Update dependencies.
	
2005-01-19  Jim Blandy  <jimb@redhat.com>

	* configure.tgt: Set build_rdi_share to "yes" on those targets
	that use that debugging protocol.
	Set build_nlm to yes to build NLM stub for Netware targets.
	* configure.ac: If build_rdi_share is "yes", then configure the
	rdi-share subdirectory.
	If build_nlm is "yes", the configure the "nlm" subdirectory.
	* configure: Regenerated.

	* rdi-share/configure, rdi-share/aclocal.m4: Regenerated using
	autoconf 2.59 and automake 1.9.3.

2005-01-19  Andrew Cagney  <cagney@gnu.org>

	* exceptions.h (deprecated_throw_reason): Rename throw_reason.
	* exceptions.c (deprecated_throw_reason): Rename throw_reason.
	* utils.c (internal_verror, quit): Update.
	* remote-sds.c (interrupt_query): Update.
	* remote-mips.c (mips_error, mips_kill): Update.
	* remote-fileio.c (remote_fileio_ctrl_c_signal_handler): Update.
	* remote.c (interrupt_query): Update.
	* ocd.c (interrupt_query): Update.
	* nto-procfs.c (interrupt_query): Update.
	* monitor.c (monitor_interrupt_query): Update.
	* breakpoint.c (break_command_1): Update.

	* infrun.c: (resume, proceed, wait_for_inferior)
	(handle_inferior_event, stop_stepping)
	(prepare_to_wait): Write debug output to gdb_stdlog.

2005-01-19  Mark Kettenis  <kettenis@gnu.org>

	* inf-ptrace.c (inf_ptrace_prepare_to_store)
	(inf_ptrace_post_startup_inferior)
	(inf_ptrace_acknowledge_created_inferior)
	(inf_ptrace_insert_fork_catchpoint)
	(inf_ptrace_remove_fork_catchpoint)
	(inf_ptrace_insert_vfork_catchpoint):
	(inf_ptrace_remove_vfork_catchpoint, inf_ptrace_follow_fork)
	(inf_ptrace_insert_exec_catchpoint)
	(inf_ptrace_remove_exec_catchpoint): Remove functions.
	(inf_ptrace_reported_exec_events_per_exec_call): Tweak comment.
	(inf_ptrace_target): Don't set to_prepare_to_store,
	to_post_startup_inferior, to_acknowledge_created_inferior,
	to_insert_fork_ctachpoint, to_remove_fork_catchpoint,
	to_insert_vfork_catchpoint, to_remove_vfork_catchpoint,
	to_follow_fork, to_insert_exec_catchpoint,
	to_remove_exec_catchpoint.

2005-01-18  Andrew Cagney  <cagney@gnu.org>

	* target.h (struct target_ops): Change return type of
	to_insert_fork_catchpoint, to_insert_vfork_catchpoint and
	to_insert_exec_catchpoint to void.
	(child_insert_fork_catchpoint, child_insert_vfork_catchpoint)
	(child_insert_exec_catchpoint): Change return type to void.
	* target.c (update_current_target): Update.
	(debug_to_insert_fork_catchpoint) 
	(debug_to_insert_vfork_catchpoint) 
	(debug_to_insert_exec_catchpoint): Update.
	* inf-child.c (inf_child_insert_fork_catchpoint) 
	(inf_child_insert_vfork_catchpoint) 
	(inf_child_insert_exec_catchpoint): Update.
	* breakpoint.c (insert_catchpoint): Update, do not throw an error.
	* linux-nat.c (child_insert_fork_catchpoint) 
	(child_insert_vfork_catchpoint)
	(child_insert_exec_catchpoint): Update.
	* inftarg.c (child_insert_fork_catchpoint) 
	(child_insert_vfork_catchpoint,)
	(child_insert_exec_catchpoint): Update.

	* remote.c (remote_open_1): Use throw_exception.

2005-01-17  Michael Snyder  <msnyder@redhat.com>

	* mips-linux-tdep.c: Whitespace tweaks.

2005-01-17  Corinna Vinschen  <vinschen@redhat.com>

	* infcmd.c (attach_command): Call CLEAR_SOLIB if available.

2005-01-17  Andrew Cagney  <cagney@gnu.org>

	* top.h (source_error, source_pre_error): Delete declaration.
	* cli/cli-script.c (source_error_allocated, source_error): Delete.
	(script_from_file, source_cleanup_lines): Do not manipulate
	source_error_allocated, error_pre_print and source_error.
	(struct source_cleanup_lines_args): Delete fields old_pre_error,
	and old_error_pre_print.
	* top.c (source_error_allocated, source_error)
	(source_pre_error): Delete.
	(command_line_input): Do not set error_pre_print.
	* event-top.c (command_line_handler): Do not set error_pre_print.

2005-01-16  Jason Thorpe  <thorpej@netbsd.org>

	* MAINTAINERS: Update my email address.

2005-01-16  Mark Kettenis  <kettenis@gnu.org>

	* configure.ac: Provide prerequisite headers when checking
	<term.h>.
	* configure: Regenerate.

	* amd64fbsd-tdep.c: Update copyright year.  Include "gdb_assert.h"
	and "bsd-uthread.h".
	(amd64fbsd_jmp_buf_reg_offset): New variable.
	(amd64fbsd_supply_uthread, amd64fbsd_collect_uthread): New
	functions.
	(amd64fbsd_init_abi): Set supply_uthread and collect_uthread.
	* i386fbsd-tdep.c: Fix typo.
	* Makefile.in (amd64fbsd-tdep.o): Update dependencies.
	* config/i386/fbsd64.mt (TDEPFILES): Add bsd-uthread.o.

2005-01-16  Andrew Cagney  <cagney@gnu.org>

	* cli/cli-script.c: Include "exceptions.h".
	(struct wrapped_read_command_file_args): Define.
	(wrapped_read_command_file): New function.
	(script_from_file): Replace direct call to read_command_file by
	one wrapped by an exception handler.
	* exceptions.c (throw_it): Free the old message after creating the
	new.
	* Makefile.in: Update dependencies.
	
2005-01-16  Mark Kettenis  <kettenis@gnu.org>

	* sparc64fbsd-tdep.c: Update copyright year.
	(sparc64fbsd_collect_gregset, sparc64fbsd_collect_fpregset): New
	functions.
	(sparc64fbsd_init_abi): Create register sets with collect
	functions.

	* sparc64fbsd-nat.c: Include "fbsd-nat.h".
	(_initialize_sparc64fbsd_nat): Add some extra features to the
	generic SPARC target.
	* Makefile.in (sparc64fbsd-nat.o): Update dependencies.
	* config/sparc/fbsd.mh (NATDEPFILES): Add fbsd-nat.o and gcore.o.
	(NAT_FILE): Set to solib.h.
	* config/sparc/nm-fbsd.h: Remove file.

	* sparc64-tdep.c (sparc64_store_arguments): Fix typo.

	* sparc-tdep.c (sparc_integral_or_pointer_p): Simplify.

2005-01-16  Andrew Cagney  <cagney@gnu.org>

	* exceptions.c (struct catcher): Delete saved_error_pre_print and
	saved_quit_pre_print.
	(catcher_init): Delete parameter errstring, do not override the
	pre_print strings.
	(catcher_pop): Do not restore the pre_print strings.
	(catch_exception, catch_exceptions_with_msg, catch_errors)
	(catch_command_errors): Update catch_init calls.

2005-01-16  Mark Kettenis  <kettenis@gnu.org>

	* Makefile.in (sparc64fbsd-nat.o): Update dependencies.
	* sparc64fbsd-nat.c: Update copyright year.  Include "target.h".

2005-01-15  Andrew Cagney  <cagney@gnu.org>

	* acinclude.m4: Include ../bfd/bfd.m4 instead of
	../bfd/acinclude.m4.  Include ../gettext.m4.
	* aclocal.m4, configure: Re-generate.

	* exceptions.c (do_captured_command)
	(struct captured_command_args): Delete.
	(catch_command_errors): Simplify by inlining call to catch_errors.

	* exceptions.c (struct catcher): Delete field print_message.
	(catcher_init): Delete print_message parameter.
	(catch_exception, catch_exceptions_with_msg, catch_errors): Update.
	(throw_it): Delete prefix parameter.
	(throw_verror, throw_vfatal, throw_error): Update.

2005-01-14  Andrew Cagney  <cagney@gnu.org>

	* exceptions.c (print_and_throw): Delete, replaced by throw_it.
	(throw_reason): Leave the exception's message field blank.
	(throw_it): New function, create the exception and throw it.
	(throw_verror, throw_vfatal, throw_error): Call throw_it.
	(print_any_exception): New function.
	(catch_errors, catch_exceptions_with_msg): Call
	print_any_exception.
	(throw_exception): Move code calling annotate_error and
	annotate_quit from here ...
	(print_exception): ... to here.

	* exceptions.c (exception_fprintf, exception_print): Move printing
	of \n from here ...
	(print_exception): ... to here.
	(print_flush): New function.
	(exception_print, exception_fprintf): Replace duplicated flush and
	wrap code with call to print_flush.
	(print_and_throw): Simplify, by using xstrvprintf, print_flush,
	and print_exception.
	(do_write): Delete.

	* remote-sds.c (interrupt_query): Call throw_reason instead of
	throw_exception.
	* remote-mips.c (mips_error, mips_kill): Ditto
	* ocd.c (interrupt_query): Ditto.
	* nto-procfs.c (interrupt_query): Ditto.
	* monitor.c (monitor_interrupt_query): Ditto.

2005-01-14  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-linux-nat.c: Include "ia64-tdep.h" to get register definitions.

2005-01-14  Andrew Cagney  <cagney@gnu.org>

	* exceptions.h (catch_exceptions): Delete errstring parameter.
	(catch_exceptions_with_msg): Ditto.
	* exceptions.c (catch_exceptions_with_msg): Update.
	(catch_exceptions): Update.
	* symfile-mem.c (add_vsyscall_page): Update.
	* frame.c (get_current_frame): Update.
	* wrapper.c (gdb_value_struct_elt): Update.
	* exceptions.c (catch_exceptions): Update.
	* thread.c (gdb_list_thread_ids, gdb_thread_select): Update.
	* breakpoint.c (gdb_breakpoint_query, gdb_breakpoint): Update.
	* remote-fileio.c (remote_fileio_request): Update.
	
	* exceptions.h (exception_fprintf): Declare.
	(exception_print): Drop pre_print parameter.
	* mi/mi-main.c (mi_execute_command): Update exception_print call.
	* cli/cli-interp.c (safe_execute_command): Update exception_print
	call.
	* remote.c (remote_open_1): Instead of passing an error prefix to
	catch_exceptions, use catch_exceptions and exception_fprintf.
	(remote_start_remote): Change return type to void.
	* breakpoint.c (insert_bp_location): Instead of passing an error
	prefix to catch_exceptions, use catch_exceptions and
	exception_fprintf.
	(insert_catchpoint): Change return type to void.
	(break_command_1): Update exception_print call.
	* exceptions.c (exception_fprintf): New function.
	(print_exception): New function.
	(exception_print): Use print_exception.
	
	* utils.c (error_output_message): Delete function.
	* defs.h (error_output_message): Delete declaration.

	* linespec.c (symtab_from_filename, decode_variable): Use
	throw_error instead of error_silent.
	* breakpoint.c (do_captured_parse_breakpoint): Change return type
	to void.
	(break_command_1): Use catch_exception and check the error return
	status.
	* exceptions.c (throw_error): New function.
	(throw_vsilent): Delete function.
	* exceptions.h (throw_error): Declare.
	(throw_vsilent): Delete declaration.
	* utils.c (error_silent): Delete function.
	* defs.h (error_silent): Delete declaration.
	
	* mi/mi-main.c (mi_execute_command): Print the exception.
	* cli/cli-interp.c (safe_execute_command): Print the exception.
	* exceptions.h (exception_print): Declare.
	* exceptions.c (struct catcher): Add field print_message.
	(catcher_init): Add parameter print_message, store in the catcher
	struct.
	(print_and_throw): Only print the message when print_message.
	(catch_exceptions_with_msg, catch_errors): Pass print_message=1 to
	catcher_init.
	(catch_exception): Pass print_message=0 to catcher_init.

	* varobj.c (varobj_create): Add missing \n.

2005-01-13  Michael Snyder  <msnyder@redhat.com>

	* cli/cli-decode.h: Whitespace tweaks.
	* wince.c: Whitespace tweaks.
	* uw-thread.c: Whitespace tweaks.
	* utils.c: Whitespace tweaks.
	* tracepoint.[ch]: Whitespace tweaks.
	* solist.h: Whitespace tweaks.

2005-01-13  Andrew Cagney  <cagney@gnu.org>

	* exceptions.h (struct exception): Make message const.
	* mi/mi-main.c (mi_execute_command): Pass result.message directly
	to fputstr_unfiltered.

2005-01-13  Michael Snyder  <msnyder@redhat.com>

	* stack.c: Whitespace tweaks.
	* somsolib.[ch]: Whitespace tweaks.
	* solib-aix.c: Whitespace tweaks.
	* solib.c: Whitespace tweaks.
	* solib-frv.c: Whitespace tweaks.
	* solib.h: Whitespace tweaks.
	* solib-irix.c: Whitespace tweaks.
	* solib-som.c: Whitespace tweaks.
	* solib-sunos.c: Whitespace tweaks.
	* solib-svr4.[ch]: Whitespace tweaks.
	* ser-tcp.c: Whitespace tweaks.
	* ser-unix.c: Whitespace tweaks.
	* serial.h: Whitespace tweaks.
	* scm-valprint.c: Whitespace tweaks.
	* rs6000-tdep.c: Whitespace tweaks.
	* rs6000-nat.c: Whitespace tweaks.
	* remote.c: Whitespace tweaks.

2005-01-13  Andrew Cagney  <cagney@gnu.org>

	* defs.h (error_last_message, error_init): Delete declaration.
	* utils.c (fatal, vfatal): Call throw_vfatal.
	(error, verror): Call throw_verror;
	(do_write, error_stream_1): Delete function.
	(error_stream): Simplify, call error.
	(error_last_message, error_init, gdb_lasterr): Delete.
	(error_silent): Simplify, call throw_vsilent.
	* mi/mi-interp.c (mi_cmd_interpreter_exec): Dup the message.
	* main.c (captured_main): Delete call to error_init.
	* exceptions.c (throw_verror, throw_verror)
	(throw_vsilent): New functions.
	(do_write, print_and_throw): New functions.
	(last_message): New global.
	(throw_reason): Replace error_last_message with last_message.
	(catch_exceptions_with_msg): Dup the message.
	* exceptions.h (throw_verror, throw_vfatal, throw_vsilent):
	Declare.

2005-01-13  Michael Snyder  <msnyder@redhat.com>

	* remote-st.c: Whitespace tweaks.
	* remote-sim.c: Whitespace tweaks.
	* remote-mips.c: Whitespace tweaks.
	* pa64solib.[ch]: Whitespace tweaks.
	* mdebugread.c: Whitespace tweaks.
	* main.c: Whitespace tweaks.
	* interps.c: Whitespace tweaks.
	* infrun.c: Whitespace tweaks.
	* infcmd.c: Whitespace tweaks.
	* hpux-thread.c: Whitespace tweaks.
	* hppa-hpux-tdep.c: Whitespace tweaks.
	* gdbcore.h: Whitespace tweaks.
	* gdbcmd.h: Whitespace tweaks.
	* gdb-events[.c, .h, .sh]: Whitespace tweaks.
	* corefile.c: Whitespace tweaks.
	* completer.c: Whitespace tweaks.
	* coff-solib.c: Whitespace tweaks.
	* coff-solib.h: Whitespace tweaks.
	* cli-out.c: Whitespace tweaks.
	* breakpoint.c: Whitespace tweaks.
	* cli/cli-interp.c: Tweak comments, per coding standard.

2005-01-13  Andrew Cagney  <cagney@gnu.org>

	* breakpoint.c (gdb_breakpoint_query): Update, use
	catch_exceptions_with_msg.
	(do_captured_breakpoint): Add uiout parameter.
	(gdb_breakpoint): Update, use catch_exceptions_with_msg.
	* mi/mi-main.c (mi_cmd_thread_select): Pass mi_error_message to
	gdb_thread_select.  Return MI_CMD_ERROR instead of
	MI_CMD_CAUGHT_ERROR.
	(mi_cmd_thread_list_ids): Ditto for gdb_list_thread_ids.
	(enum captured_mi_execute_command_actions): Delete
	EXECUTE_COMMAND_DISPLAY_ERROR.
	(captured_mi_execute_command): Delete code handling
	MI_CMD_CAUGHT_ERROR.
	(mi_execute_command): Don't check for
	EXECUTE_COMMAND_DISPLAY_ERROR.
	* mi/mi-cmd-break.c (breakpoint_notify): Update call to
	gdb_breakpoint_query.
	(mi_cmd_break_insert): Pass mi_error_message to gdb_breakpoint.
	* mi/mi-cmds.h (enum mi_cmd_result): Delete MI_CMD_CAUGHT_ERROR.
	* gdb.h (gdb_thread_select, gdb_list_thread_ids)
	(gdb_breakpoint, gdb_breakpoint_query): Add error_message
	parameter.
	* thread.c (thread_command): Update call.
	(gdb_thread_select, gdb_list_thread_ids): Update, call
	catch_exceptions_with_msg.

	* mi/mi-main.c (mi_execute_command): Use catch_exception,
	eliminate call to error_last_message.
	(captured_mi_execute_command): Change return type to void.

2005-01-12  Andrew Cagney  <cagney@gnu.org>

	* exceptions.c (exception_none): New variable.
	* Makefile.in: Update dependencies.
	* interps.c: Include "exceptions.h".
	(interpreter_exec_cmd, interp_exec): Update to return "struct
	exception"
	* exceptions.h (no_exception): Declare.
	* tui/tui-interp.c (tui_exec): Update to return "struct exception"
	* mi/mi-interp.c: Include "exceptions.h".
	(mi_cmd_interpreter_exec, mi_interpreter_exec): Update to return
	'struct exception".
	* cli/cli-interp.c (cli_interpreter_exec, safe_execute_command) 
	(do_captured_execute_command): Update to use catch_exception.
	* interps.h: Include "exceptions.h".
	(interp_exec_ftype, interp_exec): Return "struct exception".

	* exceptions.h (throw_reason): Rename throw_exception.
	(enum errors, struct exception): Define.
	(catch_exception_ftype): Define.
	(catch_exception, throw_exception): Declare.
	* exceptions.c (throw_exception): Rewrite.
	(throw_reason): New function.
	(struct catcher, catcher_state_machine): Replace "reason" with
	"exception", delete "gdberrmsg".
	(catch_exception): New function.
	(catcher_init): Replace "gdberrmsg" parameter with "exception".
	(catch_errors, catch_exceptions_with_msg): Re-implement passing
	exception to catcher_init.
	* utils.c (error_silent, error_stream_1): Use throw_reason.
	(internal_verror, quit): Ditto.
	* breakpoint.c (insert_catchpoint, break_command_1): Ditto.
	* remote-fileio.c (remote_fileio_ctrl_c_signal_handler): Ditto.
	* remote.c (remote_open_1, interrupt_query): Ditto.

2005-01-12  Mark Kettenis  <kettenis@gnu.org>

	* i386fbsd-tdep.c: Update copyright year.  Include "gdbcore.h",
	"regcache.h", "gdb_assert.h" and "bsd-uthread.h".
	(i386fbsd_jmp_buf_reg_offset): New variable.
	(i386fbsd_supply_uthread, i386fbsd_collect_uthread): New
	functions.
	(i386fbsdaout_init_abi): Set supply_uthread and collect_uthread.
	* Makefile.in (i386fbsd-tdep.o): Update dependency.
	* config/i386/fbsd.mt (TDEPFILES): Add bsd-uthread.o.

	* bsd-uthread.h: New file.
	* bsd-uthread.c: New file.
	* Makefile.in (bsd_uthread_h): New variable.
	(ALLDEPFILES): Add bsd-uthread.c.
	(bsd-uthread.o): New dependency.

	* solib.h Update copyright year.
	(struct so_list): Forward declaration.
	(solib_read_symbols): New prototype.
	* solib.c (solib_read_symbols): New function.
	(solib_add): Call solib_read_symbols to read in symbols.
	(update_solib_list): Call observer_notify_solib_loaded.

	* i386bsd-nat.c: Update copyright year.  Don't include
	<sys/param.h> and <sys/user.h>.
	(register_u_addr, kernel_u_size): Remove functions.
	* config/i386/obsd.mh (NAT_FILE): Remove.
	* config/i386/obsdaout.mh (NAT_FILE): Set to solib.h.
	* config/i386/nm-obsd.h: Remove file.

2005-01-12  Andrew Cagney  <cagney@gnu.org>

	* exceptions.c: Include "gdb_string.h".
	(enum catcher_state, struct catcher): Define.
	(current_catcher): New global, replaces catch_return;
	(catch_return): Delete.
	(throw_exception): Use current_catcher->buf;
	(catcher_init, catcher_pop, catcher_state_machine): New functions.
	(catcher): Delete.
	(struct catch_errors_args): Delete.
	(do_catch_errors): Delete.
	(catch_exceptions): Replace body with call to
	catch_exceptions_with_msg.
	(catcher): Delete.
	(catch_exceptions_with_msg, catch_errors): Re-implement using
	catcher_state_machine.

	* exceptions.h (enum return_reason, RETURN_MASK)
	(RETURN_MASK_QUIT, RETURN_MASK_ERROR, RETURN_MASK_ALL)
	(return_mask, throw_exception, catch_exceptions_ftype)
	(catch_exceptions_with_msg, catch_errors_ftype, catch_errors)
	(catch_command_errors_ftype, catch_command_errors): Move to
	exceptions.h.
	* exceptions.c, exceptions.h: New files.
	* top.c: Do not include <setjmp.h>.
	(SIGJMP_BUF, SIGSETJMP, SIGLONGJMP, catch_return)
	(throw_exception, catcher, catch_exceptions)
	(catch_exceptions_with_msg, struct catch_errors_args)
	(do_catch_errors, catch_errors, struct captured_command_args)
	(do_captured_command, catch_command_errors): Move to exceptions.c.
	* wrapper.c, wince.c, win32-nat.c, utils.c: Include "exceptions.h".
	* tui/tui-interp.c, top.c, thread.c, symmisc.c: Ditto.
	* symfile-mem.c, stack.c, solib.c, rs6000-nat.c: Ditto.
	* remote-sds.c, remote-mips.c, remote-fileio.c: Ditto.
	* remote-e7000.c, objc-lang.c, ocd.c: Ditto.
	* remote.c, nto-procfs.c, monitor.c, mi/mi-main.c: Ditto.
	* main.c, m32r-rom.c, infrun.c, inf-loop.c: Ditto.
	* hppa-hpux-tdep.c, frame.c, event-top.c, event-loop.c: Ditto.
	* corelow.c, corefile.c, cli/cli-interp.c, breakpoint.c: Ditto.
	* ada-valprint.c, ada-lang.c: Ditto.
	* Makefile.in (HFILES_NO_SRCDIR, COMMON_OBS): Add exceptions.h and
	exceptions.o.  Update all dependencies.
	
2005-01-11  Mark Kettenis  <kettenis@gnu.org>

	* config/i386/nm-fbsd.h: Update copyright year.
	Don't include "config/nm-bsd.h".
	(KERNEL_U_SIZE): Remove macro.
	(kernel_u_size): Remove prototype.

	* config/vax/nbsdaout.mh (NAT_FILE): Remove.
	* config/vax/nm-nbsdaout.h: Remove file.

2005-01-10  Elena Zannoni  <ezannoni@redhat.com>

	* MAINTAINERS: Remove self from sh/sh64 maintainership.

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

	* MAINTAINERS: List Andrew Cagney and Kevin Buettner as can commit
	changes to PowerPC, and Andrew Cagney as lead PowerPC GNU/Linux
	maintainer.

	* MAINTAINERS: Hans-Peter Nilsson and Orjan Friberg can commit
	changes to CRIS.

	* MAINTAINERS: Remove "Maintenance Only".  Spell out that CAN
	COMMIT means can approve).

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

	* vax-nat.c: Update copyright year.  Include "inf-ptrace.h".
	(vax_register_u_offset): Make statuc.
	(_initialize_vax_nat): Construct and add target vector.
	* config/vax/vax.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.  Add inf-ptrace.o.
	* Makefile.in (vax-nat.o): Update dependencies.

	* inf-ptrace.h: Update copyright year.  Sync comment with
	inf-ptrace.c.
	(inf_ptrace_trad_target): New prototype.
	* inf-ptrace.c: Update copyright year.  Include "regcache.h" and
	"gdb_assert.h"
	(inf_ptrace_target): Add comment.
	(inf_ptrace+register_u_offset): New variable.
	(inf_ptrace_fetch_register, inf_ptrace_fetch_registers)
	(inf_ptrace_store_register, inf_ptrace_store_registers)
	(inf_ptrace_trad_target): New functions.
	* Makefile.in (inf-ptrace.o): Update dependencies.

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

	* configure.ac: Provide prerequisite headers when checking
	<link.h>, <sys/proc.h> and <sys/user.h>.
	* configure: Regenerate.

2005-01-08  Mark Kettenis  <kettenis@gnu.org>

	* config/powerpc/obsd.mt (DEPRECATED_TM_FILE): Set to
	tm-ppc-eabi.h instead of the removed tm-nbsd.h.

2005-01-07  Mark Kettenis  <kettenis@gnu.org>

	* config/ia64/tm-linux.h: Tweak comment.  Update copyright year.
	Don't include "tm-ia64.h".
	* config/ia64/ia64.mt (DEPRECATED_TM_FILE): Remove.
	* config/ia64/tm-ia64.h: Remove.  Move contents ...
	* ia64-tdep.h: ... here.  Update copyright year.

2005-01-07  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Rename configure.in, require autoconf 2.59.
	* configure: Re-generate.

	* configure.tgt: Disable arm*-*-*, thumb*-*-*, strongarm*-*-*,
	xscale-*-* and i[34567]86-*-netware* code adding rdi-share or nlm
	to configdirs.

	* configure.in: Replace configdirs with multiple references to
	AC_CONFIG_SUBDIRS.
	* configure: Re-generate.
	
2005-01-05  Andreas Schwab  <schwab@suse.de>

	* ia64-tdep.c: Include "osabi.h".
	(native_find_global_pointer): Delete.
	(ia64_find_global_pointer): Renamed from
	generic_elf_find_global_pointer.
	(FIND_GLOBAL_POINTER): Delete.  Change all users to call
	ia64_find_global_pointer instead.
	(ia64_gdbarch_init): Call gdbarch_init_osabi.  Remove references
	to ia64_linux_sigcontext_register_address and
	ia64_linux_write_pc.  Don't set tdep->find_global_pointer.
	(_initialize_ia64_tdep): Call gdbarch_register instead of
	deprecated register_gdbarch_init.
	(struct gdbarch_tdep): Remove find_global_pointer field and move
	to ...
	* ia64-tdep.h (struct gdbarch_tdep): ... here.
	(ia64_linux_sigcontext_register_address): Remove declaration.
	(ia64_linux_getunwind_table): Likewise.
	(ia64_linux_write_pc): Likewise.
	* ia64-linux-tdep.c: Include "osabi.h".
	(ia64_linux_sigcontext_register_address): Make static.
	(ia64_linux_write_pc): Likewise.
	(ia64_linux_init_abi): New.
	(_initialize_ia64_linux_tdep): New.
	* Makefile.in (ia64-tdep.o, ia64-linux-tdep.o): Depend on
	$(osabi_h).

2005-01-05  Kevin Buettner  <kevinb@redhat.com>

	* ia64-tdep.c (ia64_gdbarch_init): Eliminate dependency on 
	functions in ia64-aix-tdep.c.
	* ia64-tdep.h (ia64_aix_sigcontext_register_address): Remove
	function defined in ia64-aix-tdep.c.
	* ia64-aix-tdep.c: Remove file.
	* config/ia64/linux.mt (TDEPFILES): Remove ia64-aix-tdep.o from
	this list.
	* Makefile.in (ia64-aix-tdep.o): Delete.

2005-01-05  Baurjan Ismagulov  <ibr@ata.cs.hun.edu.tr>

	Committed by Andrew Cagney.
	* ada-valprint.c, aix-thread.c, alpha-nat.c: I18n markup.
	* alphabsd-nat.c, alphanbsd-tdep.c, amd64-linux-nat.c: I18n markup.
	* amd64-tdep.c,	amd64bsd-nat.c, amd64fbsd-nat.c: I18n markup.
	* arch-utils.c, arm-linux-nat.c, arm-tdep.c: I18n markup.
	* armnbsd-nat.c, armnbsd-tdep.c, auxv.c, avr-tdep.c: I18n markup.
	* aix-thread.c (_initialize_aix_thread): Get rid of the
	deprecated_add_show_from_set call.
	* alpha-tdep.c (_initialize_alpha_tdep): Ditto.
	* arm-tdep.c (_initialize_arm_tdep): Ditto.
	* command.h (add_setshow_enum_cmd): Add arguments for returning
	new list elements.
	* cli/cli-decode.c (add_setshow_enum_cmd): Ditto.
	* mips-tdep.c (_initialize_mips_tdep): Modify calls to
	add_setshow_enum_cmd.

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

	* configure.host (ia64-*-aix*): Remove.
	* configure.tgt (ia64-*-aix*): Remove.
	* config/ia64/aix.mh: Remove file.
	* config/ia64/aix.mt: Remove file.
	* config/ia64/tm-aix.h: Remove file.
	* ia64-aix-nat.c: Remove file.
	* Makefile.in (ia64-aix-nat.o): Remove dependency.

	* config/m88k/obsd.mh (NATDEPFILES): Really remove inf-child.o.
	Add back inf-ptrace.o.

2005-01-04  Andrew Cagney  <cagney@gnu.org>

	* version.in: Change format from 6.3.50_2005-01-04-cvs to
	6.3.50.20050104-cvs.

2005-01-04  Andreas Schwab  <schwab@suse.de>

	* breakpoint.c (break_command_1): Always free err_msg before
	returning when an exception was caught.

2005-01-01  Joel Brobecker  <brobecker@gnat.com>

        * hppa-tdep.c (prologue_inst_adjust_sp): Fix small confusion
        in register number for addil instruction.

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