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:
