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

	* osabi.c (MAX_NOTESZ): New define.
	(check_note): New function.
	(generic_elf_osabi_sniff_abi_tag_sections): Reorganize code using
	check_note.

2004-01-21  Roland McGrath  <roland@redhat.com>

	* MAINTAINERS (write after approval): Add myself.

2004-01-21  Eli Zaretskii  <eliz@gnu.org>

	* utils.c (init_page_info): Move declarations of `rows' and
	`cols' before the __GO32__-specific code.  Move the closing brace
	outside the #ifdef __GO32__..#endif block.
	[__GO32__]: Use `rows' and `cols' to avoid compiler warnings.

2004-01-21  Paul Brook  <paul@codesourcery.com>

	* infrun.c (handle_inferior_event): Check stop_stack_dummy if handling
	BPSTAT_WHAT_CHECK_SHLIBS.

2004-01-21  Paul Brook  <paul@codesourcery.com>

	* MAINTAINERS: Add myself to write-after-approval.

2004-01-20  Andrew Cagney  <cagney@redhat.com>

	* ax-gdb.c (print_axs_value): Delete unused function.
	* jv-lang.c (java_lookup_type): Delete unused function.
	* cli/cli-dump.c (dump_filetype): Delete unused function.
	* remote-mips.c (remote_mips_insert_hw_breakpoint)
	(remote_mips_remove_hw_breakpoint): Delete unused functions.
	(mips_getstring): Delete unused function.
	(pmon_insert_breakpoint): Delete #if0ed function.
	(PMON_MAX_BP): Delete #if0ed MACRO.
	(mips_pmon_bp_info): Delete #if0ed variable.
	(pmon_remove_breakpoint): Delete #if0ed function.
	* monitor.c (monitor_write_even_block): Delete unused function.
	(monitor_write_memory_block): Delete #if0ed code.
	* dink32-rom.c (dink32_load): Delete unused function.
	(_initialize_dink32_rom): Delete #if0ed code.
	* d10v-tdep.c (d10v_daddr_p): Delete unused function.

	* tui/tui-command.c: Update references.
	* tui/tui-io.c: Update references.
	* tui/tui-command.h: Update copyright.
	(tui_dispatch_ctrl_char): Rename tuiDispatchCtrlChar.

	* source.c (ambiguous_line_spec): Delete never-defined function.
	* remote-rdi.c (arm_rdi_mourn, arm_rdi_send): Ditto.
	* gdbtypes.c (add_name, add_mangled_type): Ditto.
	* cli/cli-cmds.c (validate_comname): Ditto.

	* tui/tui-disasm.h: Update copyright.  Include "tui.h" and
	"tui-data.h".
	(tui_set_disassem_content): Rename tuiSetDisassemContent.
	(tui_show_disassem): Rename tuiShowDisassem.
	(tui_show_disassem_and_update_source): Rename
	tuiVerticalDisassemScroll.
	(tui_vertical_disassem_scroll): Rename tuiVerticalDisassemScroll.
	(tui_get_begin_asm_address): Rename tuiGetBeginAsmAddress.
	* tui/tui.h: Update copyright.
	(enum tui_status): Define.
	* tui/tui-data.h (enum tui_scroll_direction): Define.
	* tui/tui-disasm.c: Update copyright.  Update references.
	* tui/tui-winsource.c: 	Update copyright.  Update references.
	* tui/tui-win.c: Update references.
	* tui/tui-layout.c: Update references.

2004-01-20  Andrew Cagney  <cagney@redhat.com>

	* mi/mi-cmd-stack.c (list_args_or_locals): Move declaration of
	sym2 to start of block.

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

	* MAINTAINERS: Delete mmalloc.
	* Makefile.in: Delete MMALLOC, MMALLOC_CFLAGS, -lmmalloc, mmalloc_h.
	* NEWS: Mention removal of --with-malloc.
	* acconfig.h: Delete USE_MMALLOC, MMCHECK_FORCE.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.in: Delete MMALLOC_CFLAGS, MMALLOC, --with-mmalloc,
	USE_MMALLOC, MMCHECK_FORCE.
	* gdbinit.in: Remove mmalloc.
	* utils.c: Delete USE_MMALLOC, NO_MMCHECK, MMCHECK_FORCE, malloc_botch.
	* config/alpha/alpha-linux.mh: Delete MMALLOC, MMALLOC_CFLAGS.
	* config/i386/go32.mh: Likewise.
	* config/i386/interix.mh: Likewise.
	* config/powerpc/xm-linux.h: Delete MMAP_BASE_ADDRESS, MMAP_INCREMENT.

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

	* linespec.c (decode_variable, symtab_from_filename):  Call
	error_silent with error message instead of throwing an exception
	directly.
	* defs.h (error_silent, error_output_message): Add prototypes.
	(catch_exceptions_with_msg): Ditto.
	* utils.c (error_silent, error_output_message): New functions.
	* top.c (catch_exceptions_with_msg): New function.

2004-01-20  Nick Roberts  <nick@nick.uklinux.net>

	* mi/mi-cmds.h (enum print_values): Add definition.

	* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Print the name,
	type and value for simple data types and just the name and type
	for complex ones, if required.

	* mi/mi-cmd-var.c (mi_cmd_var_list_children): Print the values of the
	children, if required.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* frv-tdep.c (frv_push_arguments, frv_saved_pc_after_call): Delete
	unused declarations.

2004-01-19  Andrew Cagney  <cagney@redhat.com>

	* top.h (mapped_symbol_files): Delete declaration.
	* main.c (captured_main): Delete option "m" and "mapped".
	* objfiles.c (mapped_symbol_files): Delete variable.
	* symfile.c (symbol_file_command): Delete mmap code.
	(symbol_file_add_with_addrs_or_offsets): Ditto.
	(add_symbol_file_command, reread_separate_symbols): Ditto.
	* objfiles.h (OBJF_MAPPED): Delete.
	* objfiles.c (allocate_objfile) [USE_MMALLOC]: Delete.
	(free_objfile) [USE_MMALLOC]: Ditto.
	(open_existing_mapped_file): Delete function.
	(open_mapped_file): Delete function.
	(map_to_file): Delete function.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* infrun.c (step_into_function): Account for possible breakpoint
	adjustment when computing ``stop_func_start''.

2004-01-19  Kevin Buettner  <kevinb@redhat.com>

	* target.c (default_region_size_ok_for_hw_watchpoint): Compare
	the region size against the size of a pointer, not the size of
	a register as given by DEPRECATED_REGISTER_SIZE.

2004-01-19  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-regs.h: Include "tui-data.h".
	(tuiFirstRegElementNoInLine): Delete declaration.
	(tui_display_registers_from): Rename tuiDisplayRegistersFrom.
	(tui_last_regs_line_no): Rename tuiLastRegsLineNo.
	(tui_line_from_reg_element_no): Rename tuiLineFromRegElementNo.
	(tui_calculate_regs_column_count): Rename
	tuiCalculateRegsColumnCount.
	(tui_check_register_values): Rename tuiCheckRegisterValues.
	(tui_show_registers): Rename tuiShowRegisters.
	(tui_display_registers_from_line): Rename
	tuiDisplayRegistersFromLine.
	(tui_first_reg_element_inline): Rename tuiFirstRegElementInLine.
	(tui_toggle_float_regs): Rename tuiToggleFloatRegs.
	(tui_first_reg_element_no_inline): Rename
	tuiFirstRegElementNoInLine.
	* tui/tui-data.h: Update copyright.
	(enum tui_register_display_type): Rename _TuiRegisterDisplayType.
	* tui/tui-windata.c: Update copyright, update references.
	* tui/tui-regs.c: Update copyright, update references.
	* tui/tui-win.c: Update copyright, update references.
	* tui/tui-layout.c: Update copyright, update references.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* tui/tui-io.c: Update copyright.
	(key_is_end_sequence, key_is_backspace): New functions.
	(key_is_command_char, key_is_start_sequence): New function.
	(tui_getc): Update references.
	* tui/tui-io.h: Update copyright.
	(m_tuiStartNewLine): Delete macro.
	(m_isBackspace, m_isDeleteChar): Delete macros.
	(m_isDeleteLine, m_isDeleteToEol): Delete macros.
	(m_isNextPage, m_isPrevPage): Delete macros.
	(m_isLeftArrow, m_isRightArrow): Delete macros.
	(m_isXdbStyleCommandChar): Delete macro.
	(key_is_start_sequence): Declare, replace m_isStartSequence.
	(key_is_end_sequence): Declare, replace m_isEndSequence.
	(key_is_backspace): Declare ,replace m_isBackspace.
	(key_is_command_char): Declare, replace m_isCommandChar.
	* tui/tui-command.c: Update copyright.
	(tuiDispatchCtrlChar): Update references.

	* config/djgpp/fnchange.lst: Delete tui/tuiSourceWin.c and
	tuiSourceWin.h.

	* tui/tui-command.c: Rename tui/tuiCommand.c.
	* tui/tui-command.h: Rename tui/tuiCommand.h.
	* tui/tui-data.c: Rename tui/tuiData.c.
	* tui/tui-data.h: Rename tui/tuiData.h.
	* tui/tui-disasm.c: Rename tui/tuiDisassem.c.
	* tui/tui-disasm.h: Rename tui/tuiDisassem.h.
	* tui/tui-io.c: Rename tui/tuiIO.c.
	* tui/tui-io.h: Rename tui/tuiIO.h.
	* tui/tui-layout.c: Rename tui/tuiLayout.c.
	* tui/tui-layout.h: Rename tui/tuiLayout.h.
	* tui/tui-regs.c: Rename tui/tuiRegs.c.
	* tui/tui-regs.h: Rename tui/tuiRegs.h.
	* tui/tui-source.c: Rename tui/tuiSource.c.
	* tui/tui-source.h: Rename tui/tuiSource.h.
	* tui/tui-stack.c: Rename tui/tuiStack.c.
	* tui/tui-stack.h: Rename tui/tuiStack.h.
	* tui/tui-win.c: Rename tui/tuiWin.c.
	* tui/tui-win.h: Rename tui/tuiWin.h.
	* tui/tui-windata.c: Rename tui/tuiDataWin.c.
	* tui/tui-windata.h: Rename tui/tuiDataWin.h.
	* tui/tui-wingeneral.c: Rename tui/tuiGeneralWin.c.
	* tui/tui-wingeneral.h: Rename tui/tuiGeneralWin.h.
	* tui/tui-winsource.c: Rename tui/tuiSourceWin.c.
	* tui/tui-winsource.h: Rename tui/tuiSourceWin.h.
	* tui/tui-file.c: Update includes.
	* tui/tui-hooks.c: Update includes.
	* tui/tui-interp.c: Update includes.
	* tui/tui.c: Update includes.
	* Makefile.in: Update all tui/ dependencies.
	(SUBDIR_TUI_OBS, SUBDIR_TUI_SRCS): Update file names.

	* Makefile.in: Update copyright.  Update dependencies.

	* tui/tuiSourceWin.c (tui_update_breakpoint_info): Fix compile
	problem.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* mn10300-tdep.c (_initialize_mn10300_tdep): Call gdbarch_register
	instead of register_gdbarch_init.

	* remote-sds.c (tohex): Delete unused function.  Update copyright.
	* xstormy16-tdep.c (xstormy16_register_virtual_size): Ditto.
	* v850-tdep.c (v850_register_virtual_size): Ditto.
	* target.c (normal_target_post_startup_inferior): Ditto.
	* source.c (ambiguous_line_spec): Ditto.
	* remote.c (adapt_remote_get_threadinfo): Ditto.
	* mi/mi-out.c (out_field_fmt): Ditto.
	* mi/mi-interp.c (mi_interp_read_one_line_hook): Ditto.
	(output_control_change_notification): Ditto.
	* m68k-tdep.c (m68k_register_byte): Ditto.
	(m68k_remote_breakpoint_from_pc): Ditto.
	* ui-out.c (init_ui_out_state): Delete unused declaration.
	* stabsread.c (search_value): Ditto.
	* mi/mi-cmd-env.c (env_cli_command): Ditto.
	* maint.c (print_section_table): Ditto.
	* infrun.c (set_follow_fork_mode_command): Ditto.

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

	* dwarf2-frame.c (execute_cfa_program): Move DWA_CFA_nop before
	DW_CFA_def_cfa_exporession.  Add support for
	DW_CFA_offset_extendend_sf, DW_CFA_def_cfa_sf and
	DW_CFA_def_cfa_offset_sf.  This should fix PR backtrace/1391.

2004-01-18  Andrew Cagney  <cagney@redhat.com>

	* ocd.c: Update copyright.
	(bdm_read_register_command): Delete unused function.
	(_initialize_remote_ocd): Delete commented out reference.
	(get_quoted_char, reset_packet): Delete #if0ed function.
	(output_packet, put_quoted_char): Delete #if0ed function.
	(stu_put_packet, stu_get_packet): Delete #if0ed function.
	(ocd_start_remote): Delete #if0ed code, remove #if1 wrapper.
	(BDM_BREAKPOINT): Delete #if0ed macro.
	(remote_timeout): Delete #if0ed variable.

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

	* Makefile.in (ALLDEPFILES): Remove core-sol2.c.
	(core-sol2.o): Remove dependency.
	* core-sol2.c: Remove file.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mdebugread.c (compare_blocks): Make addr_diff a LONGEST.
	* block.h: Make GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOOCK
	enums.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* remote.c: Update copyright years.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* remote.c (remote_vcont_resume): Use xstrprintf instead of sprintf.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mdebugread.c: Update copyright.
	(parse_symbol): Replace DEPRECATED_STREQ with strcmp.
	(parse_type, parse_procedure): Ditto.
	(parse_partial_symbols, psymtab_to_symtab_1): Ditto.

	* cris-tdep.c (cris_store_struct_return): Put back accidently
	deleted function.

	* gdbarch.sh: Update copyright year.
	* gdbarch.h, gdbarch.c: Re-generate.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	Suggested by George Anzinger.
	* dwarf2expr.c (execute_stack_op): Fetch the second item from the
	correct stack offset.  Include unknown opcode numbers in the error
	message.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* x86-64-tdep.c (x86_64_init_abi): No need to clear
	extract_struct_value_address, i386 does not set it.
	* sparc64-tdep.c (sparc64_init_abi): Do not set
	extract_struct_value_address, never called.
	(sparc64_extract_struct_value_address): Delete function.
	* m68hc11-tdep.c: Update copyright.
	(m68hc11_gdbarch_init): Delete redundant assignment of
	extract_struct_value_address.
	* i386-tdep.c: Update copyright.
	(i386_gdbarch_init): Do not set extract_struct_value_address,
	never called.
	(i386_extract_struct_value_address): Delete function.
	* sparc-tdep.c (sparc32_gdbarch_init): Do not set
	extract_struct_value_address, never called.
	(sparc32_extract_struct_value_address): #if 0 function.  Add
	comments explaining its future.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* arm-tdep.c (arm_write_pc): New function.
	(arm_gdbarch_init): Call set_gdbarch_write_pc.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* breakpoint.c (must_shift_inst_regs): Delete.
	(bpstat_stop_status): Delete references to DECR_PC_AFTER_HW_BREAK
	and SHIFT_INST_REGS.
	* infcmd.c (step_1, step_1_continuation): Delete references to
	SHIFT_INST_REGS.
	* infrun.c (keep_going): Likewise.
	* target.h (DECR_PC_AFTER_HW_BREAK): Don't define.
	* config/i386/nm-i386.h (DECR_PC_AFTER_HW_BREAK): Likewise.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* infcmd.c (print_return_value): Delete reference to
	DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS.

	* cris-tdep.c (cris_gdbarch_init): Do not set
	deprecated_extract_struct_value_address.

	* xstormy16-tdep.c: Update copyright.
	(xstormy16_extract_struct_value_address): Update to current
	extract struct value address interface.
	(xstormy16_gdbarch_init): Set extract_struct_value_address.
	* sh64-tdep.c (sh64_extract_struct_value_address): Update to
	current extract struct value address interface.
	(sh64_gdbarch_init): Set extract_struct_value_address.

	* cris-tdep.c: Update copyright.
	(cris_extract_struct_value_address): Delete function.
	(struct_return_address): Delete variable.
	(cris_store_struct_return): Do not set struct_return_address.

	* mcore-tdep.c: Update copyright.
	(mcore_extract_struct_value_address): Delete function.  Update
	comments.
	(mcore_gdbarch_init): Update.
	* mn10300-tdep.c: Update copyright.
	(mn10300_extract_struct_value_address): Delete function.
	(mn10300_gdbarch_init): Update.
	* v850-tdep.c: Update copyright.
	(v850_extract_struct_value_address): Delete.
	(v850_gdbarch_init): Update.
	* ns32k-tdep.c: Update copyright.
	(ns32k_extract_struct_value_address): Delete.
	(ns32k_gdbarch_init): Update.
	* hppa-tdep.c (hppa_extract_struct_value_address): Delete.
	(hppa_gdbarch_init): Update.
	* vax-tdep.c: Update copyright.
	(vax_extract_struct_value_address): Delete.
	(vax_gdbarch_init): Update.

	* gdbarch.sh (DEPRECATED_NPC_REGNUM): Delete.
	* gdbarch.h, gdbarch.c: Re-generate.
	* procfs.c (procfs_fetch_registers): Delete reference to
	DEPRECATED_NPC_REGNUM.
	(procfs_store_registers): Ditto.
	* regcache.c (generic_target_write_pc): Simplify.
	* lynx-nat.c: Delete #ifdef SPARC code.  Not used.

	* core-sol2.c (fetch_core_registers): Replace
	DEPRECATED_NPC_REGNUM with equivalent tdep value.

	* hppa-tdep.c: Update copyright year.
	(hppa_target_write_pc): Use PCOQ_TAIL_REGNUM instead of
	NPC_REGNUM.
	(hppa_gdbarch_init): Do not set deprecated_npc_regnum.

	* mips-tdep.c (mips_write_pc): New function.
	(mips_gdbarch_init): Set "write_pc" to "mips_write_pc".
	(mips_read_pc): Use mips_regnum instead of PC_REGNUM.
	(mips_find_saved_regs, mips_software_single_step: Ditto.
	(mips_frame_saved_pc, mips_frame_saved_pc): Ditto.
	mips_init_extra_frame_info, mips_pop_frame): Ditto.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c: Re-indent.  Group functions by ABI.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (DECR_PC_AFTER_BREAK): Make zero the default.
	* gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	DECR_PC_AFTER_BREAK to zero.
	* vax-tdep.c (vax_gdbarch_init): Ditto.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc32_gdbarch_init): Ditto.
	* sh64-tdep.c (sh64_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* m32r-tdep.c (m32r_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-interix-tdep.c (i386_interix_init_abi): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* i386-nto-tdep.c (i386nto_init_abi): Add comment.

2004-01-17  J. Brobecker  <brobecker@gnat.com>

	* dwarf2read.c (dwarf2_non_const_array_bound_ignored_complaint):
	Delete, no longer used.
	(read_subrange_type): New function, mostly extracted from
	read_array_type().
	(read_array_type): Replace extracted code by call to
	read_subrange_type().
	(dwarf2_get_attr_constant_value): New function.
	(scan_partial_symbols): Add handling for DW_TAG_subrange_type.
	(add_partial_symbol): Likewise.
	(process_die): Likewise.
	(new_symbol): Likewise.
	(read_type_die): Likewise.

2004-01-16  Andrew Cagney  <cagney@redhat.com>

	* symfile.c: Update copyright year.
	(compare_symbols): Delete unused function.
	* stabsread.c: Update copyright year.
	(lrs_general_complaint): Delete unused function.
	(ref_search_value): Ditto.
	(get_substring): Delete declaration.
	* sh64-tdep.c: Update copyright year.
	(sh64_get_gdb_regnum): Delete unused function.
	* dwarf2read.c (dwarf2_unsupported_at_frame_base_complaint):
	Delete unused function.

2004-01-17  Mark Kettenis  <kettenis@gnu.org>

	* defs.h (gdb_osabi): Add GDB_OSABI_OPENBSD_ELF.
	* osabi.c (gdb_osabi_names): Add "OpenBSD ELF".

2004-01-16  Andrew Cagney  <cagney@redhat.com>

	Changes from Peter Schauer.
	* rs6000-tdep.c: Update copyright year.
	(rs6000_push_dummy_call): Update the stack pointer before
	accessing the corresponding stack region.
	* rs6000-nat.c: Update copyright year.
	(set_host_arch): Set "info.abfd" to "exec_bfd".

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

	* blockframe.c: Update copyright year.
	(inside_entry_func): Don't treat a zero PC specially.

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

	* gcore.c (gcore_copy_callback): Use paddr_d to print size
	variable.
	(gcore_create_callback): Ditto.  Skip any memory segment that has
	no permissions set.

2004-01-14  David Carlton  <carlton@kealia.com>

	Change symbols for C++ nested types to contain the fully qualified
	name, if possible.  (At least in the DWARF-2 case.)  Partial fix
	for PR's c++/57, c++/488, c++/539, c++/573, c++/609, c++/832,
	c++/895.
	* c-exp.y (qualified_type): Handle types nested within classes.
	* cp-namespace.c: Update comments.
	(cp_set_block_scope): Delete #if 0.
	(cp_lookup_nested_type): Handle types nested within classes.
	* dwarf2read.c: (scan_partial_symbols): Call add_partial_structure
	when appropriate.
	(add_partial_symbol): Add the name of the enclosing namespace to
	types.
	(pdi_needs_namespace): New.
	(add_partial_namespace): Tweak comment.
	(add_partial_structure): New.
	(psymtab_to_symtab_1): Initialize processing_current_prefix
	here...
	(process_die): instead of here.
	(read_structure_scope): Try to figure out the name of the class or
	namespace that the structure might be defined within.
	(read_enumeration): Generate fully-qualified names, if possible.
	(read_namespace): Don't set name to NULL.
	(die_specification): New.
	(new_symbol): Generate fully-qualified names for types.
	(read_type_die): Determine appropriate prefix.
	(determine_prefix): New.
	(typename_concat): New.
	(class_name): New.
	* valops.c (value_aggregate_elt): Pass NOSIDE to
	value_struct_elt_for_reference.
	(value_struct_elt_for_reference): Make static, add NOSIDE
	parameter, call value_maybe_namespace_elt as a last resort.
	(value_namespace_elt): Break out code into
	value_maybe_namespace_elt.
	(value_maybe_namespace_elt): New.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* mips-tdep.c (mips_convert_register_p): Handle both raw and
	cooked floating-point registers.
	(mips_gdbarch_init): Set convert_register_p, register_to_value,
	and value_to_register.

2004-01-13  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (FUNCTION_START_OFFSET): Make zero the default.
	* gdbarch.c: Re-generate.
	* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
	FUNCTION_START_OFFSET.
	* v850-tdep.c (v850_gdbarch_init): Ditto.
	* sparc-tdep.c (sparc32_gdbarch_init): Ditto.
	* sh64-tdep.c (sh64_gdbarch_init): Ditto.
	* sh-tdep.c (sh_gdbarch_init): Ditto.
	* s390-tdep.c (s390_gdbarch_init): Ditto.
	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
	* ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
	* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
	* mips-tdep.c (mips_gdbarch_init): Ditto.
	* mcore-tdep.c (mcore_gdbarch_init): Ditto.
	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
	* m32r-tdep.c (m32r_gdbarch_init): Ditto.
	* ia64-tdep.c (ia64_gdbarch_init): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Ditto.
	* hppa-tdep.c (hppa_gdbarch_init): Ditto.
	* h8300-tdep.c (h8300_gdbarch_init): Ditto.
	* frv-tdep.c (frv_gdbarch_init): Ditto.
	* d10v-tdep.c (d10v_gdbarch_init): Ditto.
	* cris-tdep.c (cris_gdbarch_init): Ditto.
	* avr-tdep.c (avr_gdbarch_init): Ditto.
	* arm-tdep.c (arm_gdbarch_init): Ditto.
	* alpha-tdep.c (alpha_gdbarch_init): Ditto.

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

	* infrun.c (follow_fork_mode_ask): Remove.
	(follow_fork_mode_kind_names): Remove follow_fork_mode_ask.
	(follow_fork): Simplify and remove internal error for
	follow_fork_mode_ask.
	(_initialize_infrun): Update "set follow-fork-mode" help text.

2004-01-13  Andrew Cagney  <cagney@redhat.com>

	* configure.in: Update copyright year.
	(build_warnings): Add -Wunused-label.
	* configure: Re-generate.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* exec.h (exec_ops): Make "extern".

	* mips-tdep.c (mips_pseudo_register_read): Don't return a value,
	the function is void.
	(mips_pseudo_register_write): Ditto.

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* stack.c (frame_info): Delete DEPRECATED_PRINT_EXTRA_FRAME_INFO
	call.  Never defined.
	* sparc-tdep.h (struct frame_info): Add opaque declaration.
	* sparc64-tdep.h (struct gdbarch): Add opaque declaration.
	(struct sparc_gregset, struct regcache): Ditto.
	* sparc-nat.c: Update copyright.  Specify "GNU/Linux".

2004-01-12  Andrew Cagney  <cagney@redhat.com>

	* mi/ChangeLog: Delete file.  Renamed to ...
	* mi/ChangeLog-1999-2003: New file.
	* tui/ChangeLog: Delete file.  Renamed to ...
	* tui/ChangeLog-1998-2003: New file.

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

	* sparc64nbsd-tdep.c: Include "regset.h".
	(sparc64nbsd_sizeof_struct_reg, sparc64nbsd_sizeof_struct_fpreg):
	Remove variables.
	(fetch_core_registers): Remove function.
	(sparc64nbsd_core_fns): Remove variable.
	(sparc64nbsd_supply_gregset, sparc64nbsd_supply_fpregset): New
	functions.
	(sparc64nbsd_init_abi): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_gregset.
	(_initialize_sparc64nbsd_tdep): Remove call to add_core_fns.

	* sparc-tdep.c (sparc32_extract_struct_value_address): Rename from
	sparc_extract_struct_value_address.
	(sparc32_gdbarch_init): Set extract_struct_value_address.
	* sparc64-tdep.c (sparc64_extract_struct_value_address): New
	function.
	(sparc64_init_abi): Set extract_struct_value_address.  Don't set
	return_value_on_stack.

	* NEWS: Mention that %cs and %ss have been added to the AMD64
	configurations

	* frame.c: Update copyright year.
	(get_prev_frame): Improve comment.

	* sparc64fbsd-tdep.c: Include "regset.h".
	(sparc64fbsd_sizeof_struct_reg, sparc64fbsd_sizeof_struct_fpreg):
	Remove variables.
	(fetch_core_registers): Remove function.
	(sparc64fbsd_core_fns): Remove variable.
	(sparc64fbsd_supply_gregset, sparc64fbsd_supply_fpregset): New
	functions.
	(sparc64fbsd_init_abi): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_gregset.
	(_initialize_sparc64fbsd_tdep): Remove call to add_core_fns.

	* sparcnbsd-tdep.c: Include "regset.h".
	(fetch_core_registers): Remove function.
	(sparcnbsd_core_fns, sparcnbsd_elfcore_fns): Remove varaibles.
	(sparc32nbsd_supply_gregset, sparc32nbsd_supply_fpregset): New
	functions.
	(sparc32nbsd_init_abi): Initialize TDEP->gregset and
	TDEP->fpregset.
	(_initialize_sparcnbsd_tdep): Remove calls to add_core_fns.

	* sparc-tdep.h (struct regset): Provide opaque declaration.
	(struct gdbarch_tdep): Add gregset, sizeof_gregset,
	fpregset and sizeof_fpregset members.
	* sparc-tdep.c (struct regset): Provide opaque declaration.
	(sparc_regset_from_core_section): New function.
	(sparc32_gdbarch_init): Initialize TDEP->gregset,
	TDEP->sizeof_gregset, TDEP->fpregset and TDEP->sizeof_fpregset.
	Set regset_from_core_section when appropriate.

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

	* x86-64-tdep.c (amd64_non_pod_p): New function.
	(amd64_classify_aggregate): Return class memory for non-POD
	C++ structure types.

	* x86-64-tdep.c (amd64_push_arguments): Add struct_return
	argument.  Use it to reserve a register if necessary.
	(amd64_push_dummy_call): Pass STRUCT_RETURN in call to
	amd64_push_arguments.

	* x86-64-tdep.c (amd64_classify_aggregate): Ignore static fields.

	* x86-64-tdep.c (amd64_register_info): Add %cs and %ss.  Adjust
	register numbers in comments.
	* x86-64-tdep.h: Update copyright year.
	(X86_64_ST0_REGNUM, X86_64_XMM0_REGNUM, X86_64_XMM1_REGNUM):
	Adjust for addition of %cs and %ss.
	* amd64fbsd-nat.c: Update copyright year.
	(reg_offset): Add register offsets for %cs and %ss.
	* amd64fbsd-tdep.c: Update copyright year.
	(amd64fbsd_r_reg_offset): Add register offsets for %cs and %ss.
	(amd64fbsd_sc_reg_offset): Likewise.
	* x86-64-linux-nat.c: Update copyright year.
	(x86_64_linux_gregset64_reg_offset): Add register offsets for %cs
	and %ss.
	* amd64nbsd-nat.c: Update copyright year.
	(amd64nbsd32_r_reg_offset): Add register offsets for %cs and %ss.
	* amd64nbsd-tdep.c: Update copyright year.
	(amd64nbsd_r_reg_offset): Add register offsets for %cs and %ss.
	* x86-64-linux-tdep.c: Update copyright year.
	(user_to_gdb_regmap): Add mapping for %cs and %ss.
	(x86_64_linux_sc_reg_offset): Adjust for addition of %cs and %ss.
	* regformats/reg-x86-64.dat: Add %cs and %ss.

	* blockframe.c (inside_entry_func): Reformat.  Introduce new local
	variables to prevent long lines.  Update comments to reflect
	reality.

2004-01-09  David Carlton  <carlton@kealia.com>

	Checked in by Elena Zannoni  <ezannoni@redhat.com>.
	* dwarf2read.c (read_namespace): Pull out name-generating code
	into namespace_name. Rename previous_namespace to previous_prefix
	and processing_current_namespace to processing_current_prefix..
        (namespace_name): New function.
	(add_partial_symbol): Substitute uses of pdi->name with
	actual_name.
	* cp-support.h: Rename processing_current_namespace to
	processing_current_prefix.
        Update copyright year.
	* cp-namespace.c: Rename processing_current_namespace to
	processing_current_prefix.
        Update copyright year.

2004-01-09  Andrew Cagney  <cagney@redhat.com>

	* jv-valprint.c, ser-unix.c: Add missing copyright years.

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

	* dbxread.c (read_dbx_symtab): Ignore N_PATCH stabs instead of
	complaining.
	(process_one_symbol): Deal with N_PATCH stabs.

2004-01-09  Elena Zannoni  <ezannoni@redhat.com>

	* dwarf2read.c (read_array_type): Discard FORTRAN_HACK macro and
	ifdeffed code.
        Update copyright year.

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

	* config/pa/tm-hppa.h: Update extern declarations for
	hppa32_hpux_frame_saved_pc_in_sigtramp,
	hppa32_hpux_frame_base_before_sigtramp, and
	hppa32_hpux_frame_find_saved_regs_in_sigtramp.

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

	* config/pa/tm-hppah.h: Update copyright years.

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

	* mips-tdep.c (mips_n32n64_reg_struct_has_addr): Delete function.
	(mips_o32_reg_struct_has_addr): Delete function.
	(mips_gdbarch_init): Update.
	(mips_extract_struct_value_address): Delete function.

2004-01-08  David Mosberger  <davidm@hpl.hp.com>

	* ia64-linux-tdep.c: Update GATE_AREA_END value to reflect
	reality.

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

	* mips-tdep.c (mips_gdbarch_init): Set elf_flags to the previous
	architecture's elf flags (when available).

	* mips-tdep.c (mips_gdbarch_init): Move code determining the MIPS
	FPU to the start, check the MIPS FPU when looking for an old
	architecture.
	(set_mipsfpu_single_command): Update the architecture.
	(set_mipsfpu_double_command, set_mipsfpu_none_command): Ditto.

	* mips-tdep.c (MIPS_DEFAULT_MASK_ADDRESS_P): Delete macro.
	(mips_mask_address_p): Add "tdep" parameter.
	(show_mask_address, mips_addr_bits_remove): Update.
	(mips_dump_tdep): Update.
	(MIPS_DEFAULT_STACK_ARGSIZE): Delete macro.
	(MIPS_STACK_ARGSIZE): Delete macro.
	(mips_stack_argsize, mips_eabi_push_dummy_call): Update.
	(mips_n32n64_push_dummy_call, mips_o32_push_dummy_call): Update.
	(mips_o64_push_dummy_call, mips_o32_return_value): Update.
	(mips_dump_tdep): Update.
	(MIPS_SAVED_REGSIZE): Delete macro.
	(MIPS_DEFAULT_SAVED_REGSIZE): Delete macro.
	(mips_saved_regsize, mips_eabi_use_struct_convention): Update.
	(mips_eabi_reg_struct_has_addr, mips_find_saved_regs): Update.
	(mips_frame_saved_pc, mips16_heuristic_proc_desc): Update.
	(mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call): Update.
	(mips_o32_push_dummy_call, mips_o64_push_dummy_call): Update.
	(mips_pop_frame, return_value_location): Update.
	(mips_n32n64_return_value, mips_dump_tdep): Update.

	* mips-tdep.c (mips_gdbarch_init): Clean up code selecting the
	MIPS ABI.

	* mips-tdep.c: Update copyright.
	(mips_gdbarch_init): Merge two code blocks handling the register
	name and number layout.

2004-01-02  Pawel Ostrowski  <pasza@zodiac.mimuw.edu.pl>

	* tracepoint.c (validate_actionline): Fix segv at EOF

2004-01-07  Michael Chastain  <mec.gnu@mindspring.com>

	* hpread.c (hpread_read_struct_type): Call SET_FIELD_PHYSNAME
	properly for static fields.

2004-01-06  Jeff Johnston  <jjohnstn@redhat.com>
	    Jason Molenda  <jmolenda@apple.com>

	* disasm.c: Update copyright to include 2004.
	(do_mixed_source_and_assembly): For uiout asm list
	and tuple cleanups, initialize to null_cleanup instead of
	NULL and do so prior to loop.  Only reset when we close off
	the tuple/list.  Move check for whether to close off the
	asm tuple/list to after dump_insns call where it will be run
	on each loop iteration.

2004-01-05  Andrew Cagney  <cagney@redhat.com>

	* ser-unix.c (ser_unix_async): Fix tipo, "NOTHING_SECHEDULED"
	should be a switch case and not a label.
	* mips-tdep.c (mips32_next_pc): Delete unused labels
	"greater_equal_branch" and "less_zero_branch".
	* jv-valprint.c (java_print_value_fields): Delete unused label
	"flush_it".

	* target.c (unpush_target): Only close a target that is in the
	target stack.

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

	* sparc-tdep.c (sparc_extract_struct_value_address): Get the
	address from [sp + 64] instead of %o2.

	* frame.c (get_prev_frame): Don't try to unwind the PC.  This
	fixes PR backtrace/1476.

2004-01-05  Andrew Cagney  <cagney@redhat.com>

	* libunwind-frame.h (struct frame_id): Add opaque declaration,
	move to start of file.
	* i386-tdep.h (struct regcache): Add opaque declaration.
	* config/ia64/nm-linux.h (struct target_ops): Add opaque
	declaration.
	* ia64-tdep.c (ia64_find_proc_info_x): Do not use __FUNCTION__.
	(ia64_gdbarch_init): Use "GNU/Linux" in comment.
	* win32-nat.c (fake_create_process): Use ISO C style definition.
	* stabsread.c (define_symbol): Delete #ifndef
	DEPRECATED_USE_REGISTER_NOT_ARG wrapper around
	stabs_argument_has_addr call, macro never defined.

2004-01-04  Michael Chastain  <mec.gnu@mindspring.com>

	* op50-rom.c: Delete.
	* w89k-rom.c: Delete.
	* Makefile.in: Remove references.

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

	* x86-64-tdep.c: Update copyright year.
	(struct amd64_register_info): Rename from x86_64_register_info.
	(amd64_register_info): Rename from x86_64_register_info.
	(AMD64_NUM_REGS): Rename from X86_64_NUM_REGS.
	(amd64_register_name): Rename from x86_64_register_name.
	(amd64_register_type): Rename from x86_64_register_type.
	(amd64_dwarf_regmap): Rename from x86_64_dwarf_regmap.
	(amd64_dwarf_regmap_len): Rename from x86_64_dwarf_regmap_len.
	(amd64_dwarf_reg_to_regnum): Rename from
	x86_64_dwarf_reg_to_regnum.
	(amd64_convert_register_p): Rename from x86_64_convert_register_p.
	(amd64_push_dummy_call): Rename from x86_64_push_dummy_call.
	(AMD64_NUM_SAVED_REGS): Rename from X86_64_NUM_SAVED_REGS.
	(struct amd64_frame_cache): Renamed from x86_64_frame_cache.
	(amd64_alloc_frame_cache): Renamed from x86_64_alloc_frame_cache.
	(amd64_analyze_prologue): Rename from x86_64_analyze_prologue.
	(amd64_skip_prologue): Rename from x86_64_skip_prologue.
	(amd64_frame_cache): Rename from x86_64_frame_cache.
	(amd64_frame_this_id): Rename from x86_64_frame_this_id.
	(amd64_frame_prev_register): Rename from
	x86_64_frame_prev_register.
	(amd64_frame_unwind): Rename from x86_64_frame_unwind.
	(amd64_frame_sniffer): Rename from x86_64_frame_sniffer.
	(amd64_sigtramp_frame_cache): Rename from
	x86_64_sigtramp_frame_cache.
	(amd64_sigtramp_frame_prev_register): Rename from
	x86_64_sigtramp_frame_prev_register.
	(amd64_sigtramp_frame_unwind): Rename from
	x86_64_sigtramp_frame_unwind.
	(amd64_sigtramp_frame_sniffer): Rename from
	x86_64_sigtramp_frame_sniffer.
	(amd64_frame_base_address): Rename from x86_64_frame_base_address.
	(amd64_frame_base): Rename from x86_64_frame_base.
	(amd64_unwind_dummy_id): Rename from x86_64_unwind_dummy_id.
	(amd64_frame_align): Rename from x86_64_frame_align.
	(amd64_supply_fpregset): Rename from x86_64_supply_fpregset.
	(amd64_regset_from_core_section): Rename from
	x86_64_regset_from_core_section.
	(x86_64_init_abi): Update comments.

2004-01-04  Nick Roberts  <nick@nick.uklinux.net>

	* MAINTAINERS (write after approval): Add myself.

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

	* sparc64-tdep.c (sparc64_store_arguments): Fix handling of
	`float' arguments.

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

	* sparc64-tdep.c (sparc64_store_floating_fields): Update comment
	such that it mentions a specific version of GCC that exhibits this
	bug.

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

	* sparc64-tdep.c (sparc64_store_floating_fields): If TYPE is a
	structure that has a single `float' member, store it in %f1 in
	addition to %f0.

	* sparc-sol2-nat.c: Add missing '\'.

	* sparc-tdep.c (sparc32_return_value): New function.
	 (sparc32_use_struct_convention, sparc32_return_value_on_stack):
	Remove functions.
	(sparc32_gdbarch_init): Set return_value, don't set
	extract_return_value, store_return_value, use_struct_convention
	and return_value_on_stack.

	* sparc-sol2-nat.c: Add missing ')'.

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

	* infrun.c (handle_step_into_function): New function.
	(handle_inferior_event): Extract out some code into the new
	function above.

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

	* infrun.c (handle_inferior_event): Move the declaration of
	real_stop_pc inside the if blocks where it is used.

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

	* sparc64-tdep.c (sparc64_16_byte_align_p)
	(sparc64_store_floating_fields, sparc64_store_floating_fields):
	Use check_typedef to get subtypes of structures and unions.
	(sparc64_store_return_value): Fix calculation of the appropriate
	offset into VALBUF when storing a structure or union.
	(sparc64_return_value): New function.
	(sparc64_use_struct_convention): Remove function.
	(sparc64_init_abi): Set return_value, don't set
	extract_return_value, store_return_value and
	use_struct_convention.

2004-01-03  Eli Zaretskii  <eliz@elta.co.il>

	* config/djgpp/fnchange.lst: Add lines for COPYING.LIBGLOSS,
	bfd/doc/ChangeLog-9103, bfd/elf32-m68hc1x.c,
	gdb/config/alpha/xm-alphaosf.h,
	gdb/config/powerpc/tm-ppcle-eabi.h,
	gdb/config/rs6000/tm-rs6000-aix4.h, gdb/gdbtk/ChangeLog-2001,
	gdb/gdbtk/ChangeLog-2002, gdb/gdbtk/ChangeLog-2003,
	gdb/gdbtk/plugins/intel-pentium/intel-pentium.tcl.in,
	gdb/gdbtk/plugins/rhabout/rhabout.tcl.in, gdb/i386-linux-nat.c,
	gdb/ia64-aix-nat.c, gdb/ia64-aix-tdep.c, gdb/ia64-linux-nat.c,
	gdb/ia64-linux-nat.c, gdb/ppc-linux-tdep.c, gdb/ppc-linux-nat.c,
	gdb/sparc64nbsd-nat.c, gdb/sparc64nbsd-tdep.c,
	gdb/sparc64-linux-nat.c, gdb/sparc64-linux-tdep.c,
	gdb/sparc64-nat.c, gdb/sparc64-tdep.c, gdb/sparc64-sol2-tdep.c,
	gdb/sparc-sol2-nat.c, gdb/sparc-sol2-tdep.c,
	gdb/testsuite/gdb.gdbtk/, gdb/testsuite/gdb.mi/mi-var-child.exp,
	nclude/ChangeLog-9103, include/coff/ChangeLog-9103,
	include/elf/ChangeLog-9103, include/opcode/ChangeLog-9103,
	opcodes/ChangeLog-0001, opcodes/ChangeLog-0203,
	opcodes/openrisc-dis.c, opcodes/openrisc-desc.h,
	sim/frv/profile-fr550.c, sim/frv/profile-fr550.h,
	sim/sh64/sem-compact-switch.c, sim/sh64/sem-media-switch.c,
	sim/testsuite/sim/sh64/compact/ldsl-mach.cgs,
	sim/testsuite/sim/sh64/compact/ldsl-macl.cgs,
	sim/testsuite/sim/sh64/compact/stsl-mach.cgs, and
	sim/testsuite/sim/sh64/compact/stsl-macl.cgs.
	Remove lines for .cvsignore files.

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

	* infrun.c: Back out the previous change.

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

	* NEWS: Mention revised SPARC target.  Add sparc-*-lynxos* and
	sparc-*-sunos4* to the list of REMOVED configurations.

	* configure.tgt: Add back sparc-*-vxworks*.
	* remote-vxsparc.c: Remove all includes except for "defs.h",
	"regcache.h", "vx-share/ptrace.h" and "vx-share/regPacket.h".
	Include "sparc-tdep.h".
	(SPARC_R_G1): New define.
	(vxsparc_gregset): New variable.
	(ext_format_sparc): Remove extern declaration.
	(vx_read_register): Rewrite to use sparc32_supply_gregset and
	sparc32_supply_fpregset.
	(vx_write_register): Rewrite to use sparc32_collect_gregset,
	sparc_collect_rwindow and sparc32_collect_fpregset.
	* config/sparc/tm-vxworks.h: New file, based on recently removed
	tm-vxsparc.h.
	* config/sparc/vxworks.mt: New file, based on recently removed
	vxworks.mt.

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

	* infrun.c (handle_step_into_function): New function.
	(handle_inferior_event): Extract out some code into the new
	function above.

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

	* Makefile.in (ALLDEPFILES): Remove sparc-linux-nat.c and
	sparcl-tdep.c.  Add sparc-linux-tdep.c, sparc-sol2-nat.c,
	sparc-sol2-tdep.c, sparc-sol2-nat.c, sparc-sol2-tdep.c,
	sparc64-linux-nat.c, sparc64-linux-tdep.c, sparc64-nat.c,
	sparc64-sol2-tdep.c, sparc64-tdep.c, sparc64fbsd-nat.c,
	sparc64fbsd-tdep.c, sparcnbsd-nat.c, sparcnbsd-tdep.c.
	(sparc_nat_h): New variable.
	(sparcbsd_nat_h, sparcnbsd_tdep_h): Remove variables.
	(tm-sun4os4.h): Remove dependency.
	(sparcbsd-nat.o, sparc-linux-nat.o): Remove dependencies.
	(sparc64fbsd-nat.o, sparc64fbsd-tdep.o, sparc64nbsd-nat.o,
	sparc64-tdep.o, sparc-nat.o, sparcnbsd-nat.o, sparcnbsd-tdep.o,
	sparc-tdep.o): Update dependencies.
	(sparc-linux-tdep.o, sparc-sol2-nat.o, sparc-sol2-tdep.o,
	sparc64-linux-nat.o, sparc64-linux-tdep.o, sparc64-nat.o,
	sparc64-sol2-tdep.o, sparc64-tdep.o, sparc64nbsd-tdep.o): New
	dependencies.
	* configure.host: Remove existing sparc-*-lynxos*,
	sparc-*-solaris*, sparc-*-sunos4*, sparc-*-sunos5*, sparc-*-*,
	ultrasparc-*-freebsd, sparcv9-*-freebsd, sparc64-*-linux*,
	sparcv9-*-* and sparc64-*-* triplets.  Add new sparc64-*-linux*,
	sparc-*-solaris2*, sparcv9-*-solaris2* and sparc64-*-solaris2*
	triplets.
	* configure.tgt: Remove exitsing sparc-*-aout*, sparc-*-coff*,
	sparc-*-elf*, sparc*-lynxos*, sparc-*-solars2*, sparc-*-sunos4*,
	sparc-*-sunos5*, sparc-*-vxworks*, sparc64-*linux*, sparc64-*-*,
	sparcv9-*-* and commented out sparc64-*-solars2* triplets.  Add
	new sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*,
	sparc64-*-linux, sparc-*-solaris2*, sparcv9-*-solaris*,
	sparc64-*-solaris2* and sparc64-*-* triplets.
	* sparc64-tdep.c: Update copyright year.  Include "inferior.h",
	"symtab.h" and "objfiles.h".
	(BIAS): Remove define.
	(X_OP, X_RD, X_A, X_COND, X_OP2, X_IMM22, X_OP3, X_I, X_DISP22)
	(X_DISP19): Remove macros.
	(sparc_fetch_instruction): Remove function.
	(struct gdbarch_tdep): Remove definition.
	(SPARC64_NUM_REGS, SPARC64_NUM_PSEUDO_REGS): Use ARRAY_SIZE.
	(sparc_breakpoint_from_pc): Remove function.
	(struct sparc64_frame_cache): Remove definition.
	(sparc64_alloc_frame_cache, sparc64_analyze_prologue,
	sparc64_unwind_pc): Remove functions.
	(sparc64_skip_prologue): Use `struct sparc_frame_cache' instead of
	`struct sparc64_frame_cache.  Call sparc_analyze_prologue instead
	of sparc64_analyze_prologue.  Mark constant as ULL instead of UL.
	(sparc64_frame_cache): Change return type to `struct
	sparc_frame_cache *'.  Simply call sparc_frame_cache.
	(sparc64_frame_this_id, sparc64_frame_prev_register,
	sparc64_frame_base_address): Use `struct sparc_frame_cache'
	instead of `struct sparc64_frame_cache.
	(sparc_unwind_dummy_id, sparc_extract_struct_value_address,
	sparc_analyze_control_transfer, sparc_software_single_step,
	sparc64_gdbarch_init, sparc_supply_rwindow, sparc_fill_rwindow,
	_initialize_sparc64_tdep): Remove functions.
	(TSTATE_CWP, TSTATE_ICC, TSTATE_XCC): New macros.
	(PSR_S, PSR_ICC, PSR_VERS, PSR_IMPL, PSR_V8PLUS, PSR_XCC): New
	macros.
	(sparc64_supply_gregset, sparc64_collect_gregset,
	sparc64_supply_fpregset, sparc64_collect_fpregset): New functions.
	(sparc64_init_abi): New function.
	* sparc64-tdep.h: Update copyright year.  Fix typo in multiple
	inclusion guard.  Include "sparc-tdep.h".
	(BIAS): Define.
	(r_tstate_offset, r_fprs_offset): New defines.
	(enum sparc_regnum): Remove defenition.
	(enum sparc64_regnum): Reformat.
	(sparc_supply_rwindow, sparc_fill_rwindow): Remove prototypes.
	(sparc64_init_abi, sparc64_supply_gregset,
	sparc64_collect_gregset, sparc64_supply_fpregset,
	sparc64_collect_fpregset): New prototypes.
	(sparc64_sol2_gregset, sparc64nbsd_gregset, sparc64fbsd_gregset):
	Add extern declarations.
	(sparc64_sol2_init_abi): New prototype.
	(sparc64fbsd_supply_reg, sparc64fbsd_fill_reg)
	(sparc64fbsd_supply_fpreg, sparc64fbsd_fill_fpreg): Remove
	prototypes.
	* sparc64fbsd-nat.c: Include "sparc-nat.h", don't include
	"sparnbsd-nat.h".
	(sparc64fbsd_reg_supplies_p, sparc64fbsd_fpreg_supplies_p): Remove
	functions.
	(_initialize_sparc64fbsd_nat): Remove initialization of
	sparcbsd_supply_reg, sparcbsd_fill_reg, sparcbsd_supply_fpreg,
	sparcbsd_fill_fpreg, sparcbsd_reg_supplies_p,
	sparcbsd_fpreg_supplies_p.  Initialize sparc_gregset.
	* sparc64fbsd-tdep.c: Update copyright year.  Include "frame.h",
	"frame-unwind.h", "trad-frame.h" and "gdb_assert.h".
	(sparc64fbsd_r_global_offset, sparc64fbsd_r_out_offset)
	(sparc64fbsd_r_fprs_offset, sparc64fbsd_r_tnpc_offset)
	(sparc64fbsd_r_tpc_offset, sparc64fbsd_r_tstate_offset)
	(sparc64fbsd_r_y_offset): Remove variables.
	(sparc64fbsd_sizeof_struct_reg, sparc64fbsd_sizeof_struct_fpreg):
	Make static and const.
	(sparc64fbsd_supply_reg, sparc64fbsd_fill_reg)
	(sparc64fbsd_supply_fpreg, sparc64fbsd_fill_fpreg): Remove
	functions.
	(sparc64fbsd_gregset): New variable.
	(fetch_core_registers): Replace calls to sparc64fbsd_supply_reg
	and sparc64fbsd_supply_fpreg with calls to sparc64_supply_gregset
	and sparc64_supply_fpregset.
	(sparc64fbsd_pc_in_sigtramp, sparc64fbsd_sigtramp_frame_cache)
	(sparc64fbsd_sigtramp_frame_this_id)
	(sparc64fbsd_sigtramp_frame_prev_register): New functions.
	(sparc64fbsd_sigtramp_frame_unwind): New variable.
	(sparc64fbsd_sigtramp_frame_sniffer): New function.
	(sparc64fbsd_init_abi): Set pc_in_sigtramp, append
	sparc64fbsd_sigtramp_frame_sniffer.  Call sparc64_init_abi.
	* sparcnbsd-tdep.c: Update copyright year.  Include
	"floatformat.h", "frame.h", "frame-unwind.h", "symtab.h",
	"trad-frame.h" and "gdb_assert.h", don't include "target.h",
	"value.h" and "sparcnbsd-tdep.h".
	(REG32_OFFSET_PSR, REG32_OFFSET_PC, REG32_OFFSET_NPC)
	(REG32_OFFSET_Y, REG32_OFFSET_GLOBAL, REG32_OFFSET_OUT)
	(REG64_OFFSET_TSTATE, REG64_OFFSET_PC, REG64_OFFSET_NPC)
	(REG64_OFFSET_Y, REG64_OFFSET_GLOBAL, REG64_OFFSET_OUT): Remove
	defines.
	(sparcnbsd_gregset): New variable.
	(sparcnbsd_supply_reg32, sparcnbsd_supply_reg64)
	(sparcnbsd_fill_reg32, sparcnbsd_fill_reg64)
	(sparcnbsd_supply_fpreg32, sparcnbsd_supply_fpreg64)
	(sparcnbsd_fill_reg32, sparcnbsd_fill_reg64): Remove functions.
	(sparc32nbsd_sigtramp_start, sparc32nbsd_sigtramp_end): New
	variables.
	(sparc32nbsd_pc_in_sigtramp, sparc32nbsd_sigcontext_frame_cache)
	(sparc32nbsd_sigcontext_frame_this_id)
	(sparc32nbsd_sigcontext_frame_prev_register): New functions.
	(sparc32nbsd_sigcontext_frame_unwind): New variable.
	(sparc32nbsd_sigtramp_frame_sniffer): New function.
	(sparcnbsd_get_longjmp_target_32,
	sparcnbsd_get_longjmp_target_64): Remove functions.
	(sparcnbsd_aout_in_solib_call_trampoline): Rewrite.
	(sparcnbsd_init_abi_common, sparcnbsd_init_aout,
	sparcnbsd_init_elf): Remove.
	(sparcnbsd_init_abi, sparcnbsd_aout_init_abi)
	(sparcnbsd_elf_init_abi): New functions.
	(_initialize_sparcnbsd_tdep): New prototype.
	(_initialize_sparnbsd_tdep): Update.
	* config/sparc/fbsd.mh (NATDEPFILES): Remove sparcbsd-nat.o and
	corelow.o.  Add sparc64-nat.o and sparc-nat.o.
	* config/sparc/fbsd.mt (TDEPFILES): Add sparc-tdep.o and corelow.o.
	* config/sparc/linux.mh: Update comment.
	(XM_FILE, HOST_IPC): Remove variables.
	(NATDEPFILES): Add sparc-sol2-nat.o and core-regset.o.  Remove
	sparc-linux-nat.o.
	* config/sparc/linux.mt: Update comment.
	(TDEPFILES): Add sparc-sol2-tdep.o and sparc-linux-tdep.o.
	* config/sparc/nbsd.mt: Reformat.
	* config/sparc/nbsd64.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o.
	* config/sparc/nbsd64.mt: Update comment.
	(TDEPFILES): Add sparc64-tdep.o and sparc64nbsd-tdep.o.
	(TM_FILE): Set to tm-nbsd.h.
	* config/sparc/nbsdelf.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o.
	(XM_FILE): Delete.
	* config/sparc/nbsdaout.mh: Update comment.
	(NATDEPFILES): Add sparc-nat.o
	(XM_FILE): Delete.
	* config/sparc/nm-linux.h: Update copyright year.  Don't include
	"config/nm-svr4.h" and "solib.h".  Add protection against multiple
	inclusion.
	(KERNEL_U_SIZE): Remove define.
	(kernel_u_size): Remove prototype.
	(PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Define.
	* config/sparc/nm-nbsd.h: Update copyright.  Don't include
	"regcache.h".
	(CHILD_PREPARE_TO_STORE): Remove define.
	* config/sparc/nm-nbsdaout.h: Tweak some comments.
	* sparc-nat.c, sparc-tdep.c, sparc-tdep.h, sparc64nbsd-nat.c,
	sparcnbsd-nat.c: Rewrite files.
	* config/sparc/tm-linux.h, config/sparc/tm-nbsd.h: Rewrite files.
	* sparc-linux-nat.c, sparcbsd-nat.c, sparcbsd-nat.h,
	sparcnbsd-tdep.h: Remove files.
	* config/sparc/nm-sparclynx.h, config/sparc/nm-sun4os4.h,
	config/sparc/nm-sun4sol2.h, config/sparc/sp64.mt,
	config/sparc/sp64linux.mt, config/sparc/sp64sol2.mt,
	config/sparc/sparc-em.mt, config/sparc/sparclynx.mh,
	config/sparc/sparclynx.mt, config/sparc/sun4os4.mh,
	config/sparc/sun4os4.mt, config/sparc/sun4sol2.mh,
	config/sparc/sun4sol2.mt, config/sparc/tm-sp64.h,
	config/sparc/tm-sp64linux.h, config/sparc/tm-sparc.h,
	config/sparc/tm-sparclynx.h, config/sparc/tm-spc-em.h,
	config/sparc/tm-sun4os4.h, config/sparc/tm-sun4sol2.h,
	config/sparc/tm-vxsparc.h, config/sparc/vxsparc.mt,
	config/sparc/xm-linux.h, config/sparc/xm-sun4sol2.h: Remove files.
	* sparc-linux-tdep.c, sparc-nat.h, sparc-sol2-nat.c,
	sparc-sol2-tdep.c, sparc64-linux-nat.c, sparc64-linux-t dep.c,
	sparc64-nat.c, sparc64-sol2-tdep.c, sparc64nbsd-tdep.c: New files.
	* config/sparc/linux64.mh, config/sparc/linux64.mt,
	config/sparc/nm-sol2.h, config/sparc/sol2-64.mt,
	config/sparc/sol2.mh, config/sparc/sol2.mt, config/sparc/sparc.mt,
	config/sparc/sparc64.mt, config/sparc/tm-sol2.h: New files.

2004-01-02  Andrew Cagney  <cagney@redhat.com>

	From 2003-12-18 Kazuhiro Inaoka:
        * configure.host: Add m32r-linux target.

2004-01-02  Michael Chastain  <mec.gnu@mindspring.com>

	* top.c (print_gdb_version): Update year to 2004.

2004-01-02  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS: Add myself to the write-after-approval category.

2004-01-02  Daniel Jacobowitz  <drow@mvista.com>

	From Bernardo Innocenti <bernie@develer.com>:
	* configure.tgt: Add uClinux target.

2004-01-02  Andrew Cagney  <cagney@redhat.com>

	* utils.c (do_my_cleanups): Make static, add forward declaration.
	* defs.h (do_my_cleanups): Delete declaration.

2004-01-02  Eli Zaretskii  <eliz@elta.co.il>

	* config/djgpp/fnchange.lst: Add lines for gdb/ChangeLog-2003 and
	bfd/ChangeLog-0203.

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

	* configure.in: Check for <machine/reg.h>.  Check for `struct reg'
	in <machine/reg.h>.
	* configure, config.in: Regenerate.

For older changes see ChangeLog-2003, mi/ChangeLog-1999-2003, and
tui/ChangeLog-1998-2003.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
