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

	* sparc64obsd-tdep.c: Include "gdbcore.h", "regcache.h" amd
	"bsd-uthread.h".
	(SPARC64OBSD_UTHREAD_FP_OFFSET, SPARC64OBSD_UTHREAD_PC_OFFSET):
	New defines.
	(sparc64obsd_supply_uthread, sparc64obsd_collect_uthread): New
	functions.
	(sparc64obsd_init_abi): Set supply_uthread and collect_uthread.
	* Makefile.in (sparc64obsd-tdep.o): Update dependencies.

	* sparcobsd-tdep.c: Include "gdbcore.h", "regcache.h" and
	"bsd-uthread.h".
	(SPARC32OBSD_UTHREAD_FP_OFFSET, SPARC32OBSD_UTHREAD_PC_OFFSET):
	New defines.
	(sparc32obsd_supply_uthread, sparc32obsd_collect_uthread): New
	functions.
	(sparc32obsd_init_abi): Set supply_uthread and collect_uthread.
	* Makefile.in (sparcobsd-tdep.o): Update dependencies.
	* config/sparc/obsd.mt (TDEPFILES): Add bsd-uthread.o.
	* config/sparc/obsd64.mt (TDEPFILES): Likewise.

2005-12-27  Alan Modra  <amodra@bigpond.net.au>

	* elfread.c (elf_symfile_read): Don't make synth syms global.

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

	* sparc64obsd-tdep.c: Include "obsd-tdep.h".
	(sparc64obsd_init_abi): Set skip_solib_resolver to
	obsd_skip_solib_resolver instead of find_solib_trampoline_target.
	* Makefile.in (sparc64obsd-tdep.o): Update dependencies.
	* config/sparc/obsd64.mt (TDEPFILES): Add obsd-tdep.o.

	* sparcobsd-tdep.c: Include "obsd-tdep.h".
	(sparc32obsd_init_abi): Set skip_solib_resolver.
	* Makefile.in (sparcobsd-tdep.o): Update dependencies.
	* config/sparc/obsd.mt (TDEPFILES): Add obsd-tdep.o.

	* obsd-tdep.c: New file.
	* obsd-tdep.h: New file.
	* Makefile.in (obsd_tdep_h): New variable.
	(ALLDEPFILES): Add obsd-tdep.c.
	(obsd-tdep.o): New target.

2005-12-23  Michael Snyder  <msnyder@redhat.com>

	* inf-ptrace.c: Spelling correction, comment.
	* inf-ttrace.c: Ditto.

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

	* tui/tui-file.c: 
	* tui/tui-disasm.c: 
	* tui/tui-data.h: 
	* tui/tui-data.c: 
	* tui/tui-command.h: 
	* tui/tui-command.c: 
	* tui/tui-win.h: 
	* tui/tui-win.h: 
	* tui/tui-win.c: 
	* tui/tui-stack.h: 
	* tui/tui-stack.c: 
	* tui/tui-source.h: 
	* tui/tui-source.c: 
	* tui/tui-regs.h: 
	* tui/tui-regs.c: 
	* tui/tui-out.c: 
	* tui/tui-main.c: 
	* tui/tui-layout.h: 
	* tui/tui-layout.c: 
	* tui/tui-io.h: 
	* tui/tui-io.c: 
	* tui/tui-interp.c: 
	* tui/tui-hooks.h: 
	* tui/tui-hooks.c: 
	* tui/tui-file.h: 
	* tui/tui.h: 
	* tui/tui.c: 
	* tui/tui-winsource.h: 
	* tui/tui-winsource.c: 
	* tui/tui-wingeneral.h: 
	* tui/tui-wingeneral.c: 
	* tui/tui-windata.h: 
	* tui/tui-windata.c: 
	* signals/signals.c: 
	* nlm/Makefile.in: 
	* mi/mi-symbol-cmds.c: 
	* mi/mi-parse.h: 
	* mi/mi-parse.c: 
	* mi/mi-out.h: 
	* mi/mi-out.c: 
	* mi/mi-main.h: 
	* mi/mi-main.c: 
	* mi/mi-interp.c: 
	* mi/mi-getopt.h: 
	* mi/mi-getopt.c: 
	* mi/mi-console.h: 
	* mi/mi-console.c: 
	* mi/mi-common.h: 
	* mi/mi-common.c: 
	* mi/mi-cmds.h: 
	* mi/mi-cmds.c: 
	* mi/mi-cmd-var.c: 
	* mi/mi-cmd-stack.c: 
	* mi/mi-cmd-file.c: 
	* mi/mi-cmd-env.c: 
	* mi/mi-cmd-disas.c: 
	* mi/mi-cmd-break.c: Add (C) after Copyright.  Update the FSF
	address.

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

	* arm-linux-tdep.c (ARM_SET_R7_SIGRETURN, ARM_SET_R7_RT_SIGRETURN)
	(ARM_EABI_SYSCALL, arm_linux_sigtramp_cache, arm_linux_sigreturn_init)
	(arm_linux_rt_sigreturn_init, arm_linux_sigreturn_tramp_frame)
	(arm_linux_rt_sigreturn_tramp_frame)
	(arm_eabi_linux_sigreturn_tramp_frame)
	(arm_eabi_linux_rt_sigreturn_tramp_frame): New.
	(arm_linux_init_abi): Register the new signal unwinders.
	(arm_linux_in_sigtramp, arm_linux_sigcontext_register_address):
	Delete.
	* arm-tdep.c (SIGCONTEXT_REGISTER_ADDRESS_P)
	(SIGCONTEXT_REGISTER_ADDRESS, arm_make_sigtramp_cache)
	(arm_sigtramp_this_id, arm_sigtramp_prev_register)
	(arm_sigtramp_unwind, arm_sigtramp_unwind_sniffer): Delete.
	(arm_gdbarch_init): Don't register a signal unwinder.
	* config/arm/tm-linux.h (arm_linux_in_sigtramp)
	(arm_linux_sigcontext_register_address): Delete prototypes.
	(DEPRECATED_IN_SIGTRAMP, SIGCONTEXT_REGISTER_ADDRESS): Delete.
	* Makefile.in (arm-linux-tdep.o): Update.

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

	* amd64obsd-tdep.c (amd64obsd_trapframe_sniffer): Spelling fix.
	* i386obsd-tdep.c (i386obsd_trapframe_sniffer): Likewise.

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

	* amd64obsd-tdep.c (amd64obsd_trapframe_cache): Fix typos.
	(amd64obsd_trapframe_sniffer): Add comment.
	* i386obsd-tdep.c (i386obsd_trapframe_cache): Fix typos.
	(i386obsd_trapframe_sniffer): Add comment.

	* amd64obsd-tdep.c (amd64obsd_trapframe_cache): Fix detection of
	interrupts from user space.

	* i386obsd-tdep.c (i386obsd_trapframe_cache): Handle interrupt
	frames too.
	(i386obsd_trapframe_sniffer): Turn into a proper unwinder sniffer.
	(i386obsd_trapframe_unwind): Add sniffer.
	(i386obsd_init_abi): Prepend i386obsd_trapframe_unwind instead of
	appending i386obsd_trapframe_sniffer.

	* amd64obsd-tdep.c: Include "frame-unwind.h" and "trad-frame.h".
	(amd64obsd_tf_reg_offset): New define.
	(amd64obsd_trapframe_cache, amd64obsd_trapframe_this_id)
	(amd64obsd_trapframe_prev_register, amd64obsd_trapframe_sniffer):
	New functions.
	(amd64obsd_trapframe_unwind): New variable.
	(amd64obsd_init_abi): Prepend amd64obsd_trapframe_unwind.
	* Makefile.in (amd64obsd-tdep.o): Update dependencies.

2005-12-20  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c (rs6000_gdbarch_init): Doc fix.

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

	* rs6000-tdep.c: Use proper spelling for existent.

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

	* rs6000-tdep.c: Fix spelling errors.

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

	* i386-tdep.h (I386_SEL_RPL, I386_SEL_UPL, I386_SEL_KPL): New
	defines.
	* i386obsd-tdep.c: Include "frame-unwind.h" and "trad-frame.h".
	(i386obsd_tf_reg_offset, i386obsd_trapframe_unwind): New
	variables.
	(i386obsd_trapframe_cache, i386obsd_trapframe_this_id)
	(i386obsd_trapframe_prev_register, i386obsd_trapframe_sniffer):
	New functions.
	(i386obsd_init_abi): Append i386obsd_trapframe_sniffer.
	* Makefile.in (i386obsd-tdep.o): Update dependencies.

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

	* cli/cli-utils.h: 
	* cli/cli-utils.c: 
	* cli/cli-setshow.h: 
	* cli/cli-setshow.c: 
	* cli/cli-script.h: 
	* cli/cli-script.c: 
	* cli/cli-logging.c: 
	* cli/cli-interp.c: 
	* cli/cli-dump.h: 
	* cli/cli-dump.c: 
	* cli/cli-decode.h: 
	* cli/cli-decode.c: 
	* cli/cli-cmds.h: 
	* cli/cli-cmds.c: 
	* breakpoint.c: 
	* arm-tdep.c: 
	* ia64-tdep.c: 
	* i386-tdep.c: 
	* hpread.c: 
	* hppa-tdep.c: 
	* hppa-hpux-tdep.c: 
	* gnu-nat.c: 
	* gdbtypes.c: 
	* gdbarch.h: 
	* gdbarch.c: 
	* eval.c: 
	* dwarf2read.c: 
	* dbxread.c: 
	* copying: 
	* symfile.c: 
	* stabsread.c: 
	* sh64-tdep.c: 
	* sh-tdep.c: 
	* s390-tdep.c: 
	* rs6000-tdep.c: 
	* remote.c: 
	* remote-mips.c: 
	* mips-tdep.c: 
	* mdebugread.c: 
	* linux-nat.c: 
	* infrun.c: 
	* xcoffread.c: 
	* win32-nat.c: 
	* valops.c: 
	* utils.c: 
	* tracepoint.c: 
	* target.c: 
	* symtab.c: 
	* c-exp.y: 
	* ada-valprint.c: 
	* ada-typeprint.c: 
	* ada-lex.l: 
	* ada-lang.h: 
	* ada-lang.c: 
	* ada-exp.y: 
	* alphafbsd-tdep.c: 
	* alphabsd-tdep.h: 
	* alphabsd-tdep.c: 
	* alphabsd-nat.c: 
	* alpha-tdep.h: 
	* alpha-tdep.c: 
	* alpha-osf1-tdep.c: 
	* alpha-nat.c: 
	* alpha-mdebug-tdep.c: 
	* alpha-linux-tdep.c: 
	* alpha-linux-nat.c: 
	* aix-thread.c: 
	* abug-rom.c: 
	* arch-utils.c: 
	* annotate.h: 
	* annotate.c: 
	* amd64obsd-tdep.c: 
	* amd64obsd-nat.c: 
	* amd64nbsd-tdep.c: 
	* amd64nbsd-nat.c: 
	* amd64fbsd-tdep.c: 
	* amd64fbsd-nat.c: 
	* amd64bsd-nat.c: 
	* amd64-tdep.h: 
	* amd64-tdep.c: 
	* amd64-sol2-tdep.c: 
	* amd64-nat.h: 
	* amd64-nat.c: 
	* amd64-linux-tdep.c: 
	* amd64-linux-nat.c: 
	* alphanbsd-tdep.c: 
	* block.h: 
	* block.c: 
	* bfd-target.h: 
	* bfd-target.c: 
	* bcache.h: 
	* bcache.c: 
	* ax.h: 
	* ax-general.c: 
	* ax-gdb.h: 
	* ax-gdb.c: 
	* avr-tdep.c: 
	* auxv.h: 
	* auxv.c: 
	* armnbsd-tdep.c: 
	* armnbsd-nat.c: 
	* arm-tdep.h: 
	* arm-linux-nat.c: 
	* arch-utils.h: 
	* charset.c: 
	* call-cmds.h: 
	* c-valprint.c: 
	* c-typeprint.c: 
	* c-lang.h: 
	* c-lang.c: 
	* buildsym.h: 
	* buildsym.c: 
	* bsd-uthread.h: 
	* bsd-uthread.c: 
	* bsd-kvm.h: 
	* bsd-kvm.c: 
	* breakpoint.h: 
	* core-regset.c: 
	* core-aout.c: 
	* completer.h: 
	* completer.c: 
	* complaints.h: 
	* complaints.c: 
	* command.h: 
	* coffread.c: 
	* coff-solib.h: 
	* coff-solib.c: 
	* coff-pe-read.h: 
	* coff-pe-read.c: 
	* cli-out.h: 
	* cli-out.c: 
	* charset.h: 
	* dink32-rom.c: 
	* dictionary.h: 
	* dictionary.c: 
	* demangle.c: 
	* defs.h: 
	* dcache.h: 
	* dcache.c: 
	* d10v-tdep.c: 
	* cpu32bug-rom.c: 
	* cp-valprint.c: 
	* cp-support.h: 
	* cp-support.c: 
	* cp-namespace.c: 
	* cp-abi.h: 
	* cp-abi.c: 
	* corelow.c: 
	* corefile.c: 
	* environ.c: 
	* elfread.c: 
	* dwarfread.c: 
	* dwarf2loc.c: 
	* dwarf2expr.h: 
	* dwarf2expr.c: 
	* dwarf2-frame.h: 
	* dwarf2-frame.c: 
	* dve3900-rom.c: 
	* dummy-frame.h: 
	* dummy-frame.c: 
	* dsrec.c: 
	* doublest.h: 
	* doublest.c: 
	* disasm.h: 
	* disasm.c: 
	* fork-child.c: 
	* findvar.c: 
	* fbsd-nat.h: 
	* fbsd-nat.c: 
	* f-valprint.c: 
	* f-typeprint.c: 
	* f-lang.h: 
	* f-lang.c: 
	* expression.h: 
	* expprint.c: 
	* exec.h: 
	* exec.c: 
	* exceptions.h: 
	* exceptions.c: 
	* event-top.h: 
	* event-top.c: 
	* event-loop.h: 
	* event-loop.c: 
	* gdb.c: 
	* gdb-stabs.h: 
	* gdb-events.h: 
	* gdb-events.c: 
	* gcore.c: 
	* frv-tdep.h: 
	* frv-tdep.c: 
	* frv-linux-tdep.c: 
	* frame.h: 
	* frame.c: 
	* frame-unwind.h: 
	* frame-unwind.c: 
	* frame-base.h: 
	* frame-base.c: 
	* gdb_vfork.h: 
	* gdb_thread_db.h: 
	* gdb_string.h: 
	* gdb_stat.h: 
	* gdb_regex.h: 
	* gdb_ptrace.h: 
	* gdb_proc_service.h: 
	* gdb_obstack.h: 
	* gdb_locale.h: 
	* gdb_dirent.h: 
	* gdb_curses.h: 
	* gdb_assert.h: 
	* gdbarch.sh: 
	* gdb.h: 
	* hpux-thread.c: 
	* hppabsd-nat.c: 
	* hppa-tdep.h: 
	* hpacc-abi.c: 
	* h8300-tdep.c: 
	* gregset.h: 
	* go32-nat.c: 
	* gnu-v3-abi.c: 
	* gnu-v2-abi.h: 
	* gnu-v2-abi.c: 
	* gnu-nat.h: 
	* glibc-tdep.c: 
	* gdbtypes.h: 
	* gdbcore.h: 
	* gdbcmd.h: 
	* i386nbsd-tdep.c: 
	* i386nbsd-nat.c: 
	* i386gnu-tdep.c: 
	* i386gnu-nat.c: 
	* i386fbsd-tdep.c: 
	* i386fbsd-nat.c: 
	* i386bsd-tdep.c: 
	* i386bsd-nat.h: 
	* i386bsd-nat.c: 
	* i386-tdep.h: 
	* i386-sol2-nat.c: 
	* i386-nto-tdep.c: 
	* i386-nat.c: 
	* i386-linux-tdep.h: 
	* i386-linux-tdep.c: 
	* i386-linux-nat.c: 
	* i386-cygwin-tdep.c: 
	* inf-ttrace.c: 
	* inf-ptrace.h: 
	* inf-ptrace.c: 
	* inf-loop.h: 
	* inf-loop.c: 
	* inf-child.h: 
	* inf-child.c: 
	* ia64-tdep.h: 
	* ia64-linux-nat.c: 
	* i387-tdep.h: 
	* i387-tdep.c: 
	* i386v4-nat.c: 
	* i386v-nat.c: 
	* i386obsd-tdep.c: 
	* i386obsd-nat.c: 
	* kod.c: 
	* jv-valprint.c: 
	* jv-typeprint.c: 
	* jv-lang.h: 
	* jv-lang.c: 
	* irix5-nat.c: 
	* iq2000-tdep.c: 
	* interps.h: 
	* interps.c: 
	* inftarg.c: 
	* inflow.h: 
	* inflow.c: 
	* inferior.h: 
	* infcmd.c: 
	* infcall.h: 
	* infcall.c: 
	* inf-ttrace.h: 
	* m32r-tdep.h: 
	* m32r-tdep.c: 
	* m32r-rom.c: 
	* m32r-linux-tdep.c: 
	* m32r-linux-nat.c: 
	* m2-valprint.c: 
	* m2-typeprint.c: 
	* m2-lang.h: 
	* m2-lang.c: 
	* lynx-nat.c: 
	* linux-thread-db.c: 
	* linux-nat.h: 
	* linespec.c: 
	* libunwind-frame.h: 
	* libunwind-frame.c: 
	* language.h: 
	* language.c: 
	* macroexp.c: 
	* macrocmd.c: 
	* m88kbsd-nat.c: 
	* m88k-tdep.h: 
	* m88k-tdep.c: 
	* m68klinux-tdep.c: 
	* m68klinux-nat.c: 
	* m68kbsd-tdep.c: 
	* m68kbsd-nat.c: 
	* m68k-tdep.h: 
	* m68k-tdep.c: 
	* mips-linux-nat.c: 
	* mips-irix-tdep.c: 
	* minsyms.c: 
	* memattr.h: 
	* memattr.c: 
	* mem-break.c: 
	* mdebugread.h: 
	* main.h: 
	* main.c: 
	* macrotab.h: 
	* macrotab.c: 
	* macroscope.h: 
	* macroscope.c: 
	* macroexp.h: 
	* nbsd-tdep.c: 
	* mt-tdep.c: 
	* monitor.h: 
	* monitor.c: 
	* mn10300-tdep.h: 
	* mn10300-tdep.c: 
	* mn10300-linux-tdep.c: 
	* mipsv4-nat.c: 
	* mipsread.c: 
	* mipsnbsd-tdep.h: 
	* mipsnbsd-tdep.c: 
	* mipsnbsd-nat.c: 
	* mips64obsd-tdep.c: 
	* mips64obsd-nat.c: 
	* mips-tdep.h: 
	* mips-mdebug-tdep.c: 
	* mips-linux-tdep.c: 
	* osabi.h: 
	* osabi.c: 
	* ocd.h: 
	* ocd.c: 
	* observer.c: 
	* objfiles.h: 
	* objfiles.c: 
	* objc-lang.h: 
	* objc-lang.c: 
	* objc-exp.y: 
	* nto-tdep.h: 
	* nto-tdep.c: 
	* nto-procfs.c: 
	* nlmread.c: 
	* nbsd-tdep.h: 
	* ppcobsd-tdep.c: 
	* ppcobsd-nat.c: 
	* ppcnbsd-tdep.h: 
	* ppcnbsd-tdep.c: 
	* ppcnbsd-nat.c: 
	* ppcbug-rom.c: 
	* ppc-tdep.h: 
	* ppc-sysv-tdep.c: 
	* ppc-linux-tdep.c: 
	* ppc-linux-nat.c: 
	* ppc-bdm.c: 
	* parser-defs.h: 
	* parse.c: 
	* p-valprint.c: 
	* p-typeprint.c: 
	* p-lang.h: 
	* p-lang.c: 
	* remote-fileio.h: 
	* remote-fileio.c: 
	* remote-est.c: 
	* remote-e7000.c: 
	* regset.h: 
	* regset.c: 
	* reggroups.h: 
	* reggroups.c: 
	* regcache.h: 
	* regcache.c: 
	* proc-why.c: 
	* proc-service.c: 
	* proc-events.c: 
	* printcmd.c: 
	* ppcobsd-tdep.h: 
	* sentinel-frame.h: 
	* sentinel-frame.c: 
	* scm-valprint.c: 
	* scm-tags.h: 
	* scm-lang.h: 
	* scm-lang.c: 
	* scm-exp.c: 
	* s390-tdep.h: 
	* rom68k-rom.c: 
	* remote.h: 
	* remote-utils.c: 
	* remote-st.c: 
	* remote-sim.c: 
	* remote-sds.c: 
	* remote-rdp.c: 
	* remote-rdi.c: 
	* remote-hms.c: 
	* sim-regno.h: 
	* shnbsd-tdep.h: 
	* shnbsd-tdep.c: 
	* shnbsd-nat.c: 
	* sh-tdep.h: 
	* serial.h: 
	* serial.c: 
	* ser-unix.h: 
	* ser-unix.c: 
	* ser-tcp.c: 
	* ser-pipe.c: 
	* ser-go32.c: 
	* ser-e7kpc.c: 
	* ser-base.h: 
	* ser-base.c: 
	* solib.c: 
	* solib-svr4.h: 
	* solib-svr4.c: 
	* solib-sunos.c: 
	* solib-som.h: 
	* solib-som.c: 
	* solib-pa64.h: 
	* solib-pa64.c: 
	* solib-osf.c: 
	* solib-null.c: 
	* solib-legacy.c: 
	* solib-irix.c: 
	* solib-frv.c: 
	* solib-aix5.c: 
	* sol-thread.c: 
	* sparc64-linux-tdep.c: 
	* sparc64-linux-nat.c: 
	* sparc-tdep.h: 
	* sparc-tdep.c: 
	* sparc-sol2-tdep.c: 
	* sparc-sol2-nat.c: 
	* sparc-nat.h: 
	* sparc-nat.c: 
	* sparc-linux-tdep.c: 
	* sparc-linux-nat.c: 
	* source.h: 
	* source.c: 
	* somread.c: 
	* solist.h: 
	* solib.h: 
	* std-regs.c: 
	* stack.h: 
	* stack.c: 
	* stabsread.h: 
	* sparcobsd-tdep.c: 
	* sparcnbsd-tdep.c: 
	* sparcnbsd-nat.c: 
	* sparc64obsd-tdep.c: 
	* sparc64nbsd-tdep.c: 
	* sparc64nbsd-nat.c: 
	* sparc64fbsd-tdep.c: 
	* sparc64fbsd-nat.c: 
	* sparc64-tdep.h: 
	* sparc64-tdep.c: 
	* sparc64-sol2-tdep.c: 
	* sparc64-nat.c: 
	* ui-file.c: 
	* typeprint.h: 
	* typeprint.c: 
	* tramp-frame.h: 
	* tramp-frame.c: 
	* trad-frame.h: 
	* trad-frame.c: 
	* tracepoint.h: 
	* top.c: 
	* tobs.inc: 
	* thread.c: 
	* terminal.h: 
	* target.h: 
	* symfile.h: 
	* stop-gdb.c: 
	* vaxbsd-nat.c: 
	* vax-tdep.h: 
	* vax-tdep.c: 
	* vax-nat.c: 
	* varobj.h: 
	* varobj.c: 
	* value.h: 
	* value.c: 
	* valprint.h: 
	* valprint.c: 
	* v850-tdep.c: 
	* uw-thread.c: 
	* user-regs.c: 
	* ui-out.h: 
	* ui-out.c: 
	* ui-file.h: 
	* xcoffsolib.h: 
	* xcoffsolib.c: 
	* wrapper.c: 
	* wince.c: 
	* wince-stub.h: 
	* wince-stub.c: 
	* vaxobsd-tdep.c: 
	* vaxnbsd-tdep.c: 
	* gdb_gcore.sh: 
	* copying.c: 
	* configure.ac: 
	* aclocal.m4: 
	* acinclude.m4: 
	* reply_mig_hack.awk: 
	* observer.sh: 
	* gdb_mbuild.sh: 
	* arm-linux-tdep.c: 
	* blockframe.c: 
	* dbug-rom.c: 
	* environ.h: 
	* dwarf2loc.h: 
	* gdb-events.sh: 
	* glibc-tdep.h: 
	* gdb_wait.h: 
	* gdbthread.h: 
	* i386-sol2-tdep.c: 
	* hppabsd-tdep.c: 
	* hppa-linux-nat.c: 
	* hppa-hpux-nat.c: 
	* ia64-linux-tdep.c: 
	* infptrace.c: 
	* linespec.h: 
	* maint.c: 
	* mips-mdebug-tdep.h: 
	* remote-m32r-sdi.c: 
	* s390-nat.c: 
	* rs6000-nat.c: 
	* remote-utils.h: 
	* sh3-rom.c: 
	* sh-linux-tdep.c: 
	* top.h: 
	* symtab.h: 
	* symmisc.c: 
	* symfile-mem.c: 
	* srec.h: 
	* user-regs.h: 
	* version.h: 
	* valarith.c: 
	* xstormy16-tdep.c: 
	* wrapper.h: 
	* Makefile.in: 
	* f-exp.y: 
	* cris-tdep.c: 
	* cp-name-parser.y: 
	* procfs.c: 
	* proc-utils.h: 
	* proc-flags.c: 
	* proc-api.c: 
	* p-exp.y: 
	* m68hc11-tdep.c: 
	* m2-exp.y: 
	* kod.h: 
	* kod-cisco.c: 
	* jv-exp.y: 
	* hppa-linux-tdep.c: Add (c) after Copyright.  Update the FSF
	address.

2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>

	Second part of ms1 to mt renaming.
	* mt-tdep.c (mt_arch_constants, mt_gdb_regnums): Rename, adjust.
	(mt_register_name, mt_register_type, mt_register_reggroup_p,
	mt_return_value, mt_skip_prologue, mt_breapoint_from_pc,
	mt_pseudo_register_read, mt_pseudo_register_write, mt_frame_align,
	mt_registers_info, mt_push_dummy_call, mt_unwind_cache,
	mt_frame_unwind_cache, mt_unwind_pc, mt_unwind_dummy_id,
	mt_frame_this_id, mt_frame_prev_register, mt_frame_base_address,
	mt_frame_unwind, mt_frame_sniffer, mt_frame_base, mt_gdbarch_init,
	_initialize_mt_tdep): Rename & adjust.

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

	* hppa-hpux-tdep.c (hppa_hpux_sigtramp_unwind_sniffer): Detect
	export stub for signal trampoline as a signal trampoline too.

	* hppa-hpux-tdep.c (hppa_hpux_sigtramp_frame_unwind_cache): Don't
	set pcoqh to rp.

2005-12-13  Corinna Vinschen  <vinschen@redhat.com>

	* h8300-tdep.c (h8300_frame_prev_register): Change valuep type to
	gdb_byte *.
	(h8300_push_dummy_call): Change `padded' to gdb_byte.
	(h8300_return_value): Change buffer types to gdb_byte.
	(h8300h_return_value): Ditto.
	(h8300_pseudo_register_read): Ditto.
	(h8300_pseudo_register_write): Ditto.

2005-12-13  Corinna Vinschen  <vinschen@redhat.com>

	* v850-tdep.c (v850_frame_prev_register): Change valuep type to
	gdb_byte *.

2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.tgt: Replace ms1 arch with mt arch.
	* config/mt: Renamed from ms1 dir.  Update file names as needed.
	* config/mt/mt.mt (TDEPFILES): Replace ms1 file with mt file.

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

	PR corefiles/2026
	* hppa-hpux-tdep.c (hppa_hpux_core_osabi_sniffer): Check for HPUX ELF
	core files.
	(_initialize_hppa_hpux_tdep): Install sniffer for ELF core files.
	* config/pa/hpux.mh: Compile corelow.o.

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

	* hppa-tdep.c (hppa64_convert_code_addr_to_fptr): New function.
	(hppa64_push_dummy_call): If passing a function pointer, ensure
	it is a function descriptor address instead of the function entry
	point.

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

	* hppa-tdep.c (hppa64_dwarf_reg_to_regnum): New funtion.
	(hppa_gdbarch_init): Set dwarf_reg_to_regnum and 
	dwarf2_reg_to_regnum methods.

2005-12-08  Kevin Buettner  <kevinb@redhat.com>

	* NEWS (Changes in GDB 6.4): Delete references indicating that
	the following configurations have been removed: h8300*-*-*,
	mn10300-*-*, and v850-*-*.  These configurations had been
	removed within the 6.4 development cycle, but were later
	restored within the same cycle.

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

	Add ms2 support.
	* ms1-tdep.c (ms1_register_type): Check for ms2.
	(ms1_breakpoint_from_pc): ms2 has a different break instruction.
	(ms1_pseudo_register_read, ms1_pseudo_register_write,
	ms1_registers_info): Add ms2.
 	* NEWS (Changes since GDB 6.4): Add ms2

2005-12-08  Randolph Chung  <tausq@debian.org>

	* somread.c (som_symfile_offsets): Iterate through number of sections
	in addrs instead of objfile.

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

	* valops.c (value_struct_elt): Clarify error message.

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

	* target.c (target_xfer_memory_partial): Doc fix.

	* ax-general.c (ax_reqs): Check stack heights for backward jumps,
	too.  Correctly check height at target.  Doc fixes.

2005-12-06  Michael Snyder  <msnyder@redhat.com>

	* cli/cli-decode.c (add_setshow_string_cmd): Indent.
	(add_setshow_integer_cmd): Indent.

	* inf-ptrace.c: Fix typos in comments.

2005-12-06  Serge Chatroux  <serge.chatroux@st.com>

	* mi/mi-interp.c (mi_interpreter_resume): Route target error
	through the MI.

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

	* amd64obsd-tdep.c: Include "regcache.h" and "bsd-uthread.h".
	(amd64obsd_uthread_reg_offset): New variable.
	(AMD64OBSD_UTHREAD_RSP_OFFSET): New define.
	(amd64obsd_supply_uthread, amd64obsd_collect_uthread): New
	functions.
	(amd64obsd_init_abi): Set supply_uthread and collect_uthread.
	* Makefile.in (amd64obsd-tdep.o): Update dependencies.

2005-12-02  Andrew Stubbs  <andrew.stubbs@st.com>

	* breakpoint.c (BREAK_ARGS_HELP): New mecro.
	(_initialize_breakpoint): Enhance break, tbreak, hbreak and thbreak
	commands' help by adding more information and using BREAK_ARGS_HELP
	to duplicate the common parts.  Remove now-redundant cross-references.

2005-12-02  Andrew Stubbs  <andrew.stubbs@st.com>

	* value.c (init_if_undefined_command): New function.
	(_initialize_values): Add command init-if-undefined.
 	* NEWS (Changes since GDB 6.3): Rename to 'Changes in GDB 6.4'.
	(Changes since GDB 6.4): New section.
	Mention new command init-if-undefined.

2005-12-02  Andrew Stubbs  <andrew.stubbs@st.com>

	* symfile.c (symbol_file_clear): Test symfile_objfile is not NULL
	before dereferencing it.
	Gettextize the query.

2005-12-02  Joel Brobecker  <brobecker@adacore.com>

	GDB 6.4 released from GDB 6.4 branch.

2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>

	* ms1-tdep.c (ms1_register_name): Const qualify array.
	(ms1_registers_info): Use gdb_byte.
	(ms1_push_dummy_call): Likewise.
	(ms1_gdbarch_init): Remove illformed nested prototype.

2005-11-25  Christophe Lyon  <christophe.lyon@st.com>

	* dwarf2-frame.c (dwarf2_frame_prev_register): Handle
	DWARF2_FRAME_REG_CFA_OFFSET.
	* dwarf2-frame.h (enum dwarf2_frame_reg_rule): Add
	DWARF2_FRAME_REG_CFA_OFFSET.

2005-11-28  Mark Mitchell  <mark@codesourcery.com>

	* remote-sim.c (gdbsim_wait): Pass target signal numbers to
	sim_resume.  Expect target signal numbers from sim_stop_reason.

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

	* win32-nat.c (env_sort): New function.
	(win32_create_inferior): Rename env to in_env.  Sort environment before
	handing it off to CreateProcess.
	(win32_current_sos): Quiet a compiler warning.

2005-11-25  Andrew Stubbs  <andrew.stubbs@st.com>

	* event-top.h (async_init_signals): Add SIGTERM handler.
	(handle_sigterm): New function.
	* event-top.h (handle_sigterm): New prototype.

2005-11-25  Andrew Stubbs  <andrew.stubbs@st.com>

	* cli-decode.c (find_command_name_length): New function.
	(lookup_cmd_1): Replace loop reading command name with
	find_command_name_length().
	(lookup_cmd): Likewise.
	(lookup_cmd_composition): Likewise.

2005-11-25 Frederic Riss <frederic.riss@st.com>
	
	* dwarf2-frame.c (execute_cfa_program): Don't access past the 
	allocated dwarf2_frame_state.initial.regs.

2005-11-25 Frederic Riss <frederic.riss@st.com>
	
	* MAINTAINERS (Write After Approval): Add myself to the list.

2005-11-23  Andrew Stubbs  <andrew.stubbs@st.com>

	* sh-tdep.c (do_fv_register_info, do_dr_register_info): Delete function.
	(do_bank_register_info, do_bank_register_info): Likewise.
	(sh_print_pseudo_register, sh_do_fp_register): Likewise.
	(sh_do_register, sh_print_register, sh_print_registers_info): Likewise.
	(sh_gdbarch_init): Remove call to set_gdbarch_print_registers_info().

2005-11-22  Joel Brobecker  <brobecker@adacore.com>

	* top.c (print_gdb_version): Update copyright year.

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

	* inf-ptrace.c (inf_ptrace_xfer_partial): Use PIOD_WRITE_I instead
	of PIOD_WRITE_D.

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

	* tracepoint.c (memrange_absolute): New enum constant.
	(struct memrange, memrange_cmp, add_memrange, collect_symbol,
	stringify_collection_list, encode_actions): Use it instead of '-1'
	to indicate an fixed-address memory range.
	(Suggested by Eli Zaretskii.)

	* tracepoint.c (stringify_collection_list): Indicate absolute
	memory ranges by using "-1" as the memory range's base register
	number, not "FFFFFFFF".

2005-11-19  Randolph Chung  <tausq@debian.org>

	* dwarf2loc.c (dwarf2_tracepoint_var_ref): Remove extra add for
	DW_OP_fbreg.  Handle DW_OP_breg0 through DW_OP_breg31.  Print 
	DWARF opcode for unsupported case.

2005-11-19  Randolph Chung  <tausq@debian.org>

	* hppa-hpux-tdep.c (hppa_hpux_sigtramp_frame_unwind_cache): Use 
	HPPA_HPUX_SS_* constants.  Ensure "off" is large enough to hold 
	64-bit offset.  Set proper signal context offset for 64-bit 
	programs.  Set pc properly for signal frames.

2005-11-19  Randolph Chung  <tausq@debian.org>

	* hppa-hpux-tdep.c (hppa_hpux_sigtramp_unwind_sniffer): Rely on the
	unwind record to determine a signal frame, instead of hardcoding
	a function name.

2005-11-19  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (skip_prologue_hard_way): Add one more insn pattern 
	for "std rp,-0x10(sp)".
	(hppa_frame_cache): Likewise.
	(hppa_fallback_frame_cache): Likewise.

2005-11-19  Randolph Chung  <tausq@debian.org>

	* hppa-tdep.c (hppa_frame_cache): Reformat code and enhance 
	debugging.

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

	* tracepoint.c (struct memrange, collect_symbol): Doc fix.

2005-11-18  Andrew Stubbs  <andrew.stubbs@st.com>

	* mi/mi-main.c (mi_load_progress): Ensure the use of the correct mi
	uiout for the duration of the function.

2005-11-18  Nick Roberts  <nickrob@snap.net.nz>

	* mi/gdb-mi.el (gdb-source-file-list): Declare.
	(gdbmi): Bind new functions.
	(gdbmi-var-list-children-handler, gdbmi-var-list-children-regexp):
	Handle string expressions properly.  Move "type" field into regexp.
	(gdbmi-var-update-regexp, gdbmi-var-update-handler): Handle string
	expressions properly.  Update speedbar.
	(gdbmi-breakpoints-buffer, gdb-stack-buffer, gdb-locals-buffer)
	(gdb-registers-buffer): Use def-gdb-auto-update-trigger instead of
	def-gdb-auto-updated-buffer as handlers is defined explicitly.
	(gdb-stack-list-locals-handler): Handle string expressions properly.
	(gdb-data-list-register-values-handler)
	(gdb-data-list-register-values-custom): Fontify buffer.

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

	* version.in: Update to 6.4.50.

2005-11-16  Andrew Stubbs  <andrew.stubbs@st.com>

	* NEWS (6.4): Mention $argc.

2005-11-15  Andrew Stubbs  <andrew.stubbs@st.com>

	* NEWS: Add --batch-silent, --return-child-result, and --eval-command
	options to the 6.4 section.

2005-11-15  Andrew Stubbs  <andrew.stubbs@st.com>

	* cli/cli-script.c: Include gdb_assert.h.
	(locate_arg): Detect $argc.
	(insert_args): Substitute $argc.
	* Makefile.in (cli-script.o): Add dependency on gdb_assert.h.

2005-11-14  James E Wilson  <wilson@specifix.com>

	PR 2024
	* dwarf2loc.c (dwarf_expr_frame_base): Use get_frame_address_in_block
	instead of get_frame_pc.
	(loclist_read_variable): Likewise.

2005-11-14  Andrew Stubbs  <andrew.stubbs@st.com>

	* MAINTAINERS (Write After Approval): Add myself to the list.

2005-11-14  Andrew Stubbs  <andrew.stubbs@st.com>

	* thread.c (_initialize_thread): Correct the 'thread apply' help
	message.

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

	* elfread.c (elf_symtab_read): Remove if (1) and reindent.

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

	* arm-linux-tdep.c (eabi_linux_arm_le_breakpoint)
	(eabi_linux_arm_be_breakpoint): New variables.
	(arm_linux_init_abi): Use them.

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

	* inftarg.c (child_wait): Delete unused local variable.

2005-11-11  Stephane Carrez  <stcarrez@nerim.fr>

	PR tui/1995
	* tui/tui-command.c (tui_dispatch_ctrl_char): Handle CTRL-L even if the
	focus is on the command window.

2005-11-11  Stephane Carrez  <stcarrez@nerim.fr>

	* tui/tui-win.c (tui_update_gdb_sizes): Use tui_term_width() and
	tui_term_height() to restore the terminal size when leaving the
	TUI mode.

2005-11-11  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11-tdep.c (m68hc11_pseudo_register_write): Use gdb_byte
	for buffers.
	(m68hc11_pseudo_register_read): Likewise.
	(m68hc11_return_value): Likewise.
	(m68hc11_frame_prev_register): Likewise.
	(m68hc11_frame_align): Remove as its seems no longer necessary.
	(m68hc11_gdbarch_init): Don't install frame_align handler.
	(m68hc11_scan_prologue): Fix crash that occurred when called from
	m68hc11_skip_prologue

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

	* MAINTAINERS: Mark m68k-elf, sparc-elf and vax-netbsd as no
	longer broken.

2005-11-09  Randolph Chung <tausq@debian.org>

	* hppa-linux-nat.c (_initialize_hppa_linux_nat): Use
	hppa_linux_{store,fetch}_inferior_registers instead of
	arm_linux_{store,fetch}_inferior_registers.

2005-11-08  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* remote-m32r-sdi.c: Update copyright years.
	(m32r_resume): Write DBT at word-aligned addresses.
	(m32r_wait): Use SDI_WRITE_MEMORY to remove DBT.

2005-11-08  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* m32r-linux-tdep.c (linux_sigtramp_code): Use 'gdb_byte' instead
	of 'unsigned char'.
	(m32r_linux_sigtramp_start): Likewise.
	(linux_rt_sigtramp_code): Likewise.
	(m32r_linux_rt_sigtramp_start): Likewise.
	(m32r_linux_sigtramp_frame_prev_register): Use 'gdb_byte *' instead
	of 'void *'.
	* m32r-tdep.c (m32r_memory_insert_breakpoint): Use 'gdb_byte'
	instead of 'char'.
	(m32r_memory_remove_breakpoint): Likewise.
	(m32r_breakpoint_from_pc): Likewise.
	(m32r_store_return_value): Likewise.
	(decode_prologue): Likewise.
	(m32r_push_dummy_call): Likewise.
	(m32r_return_value): Use 'gdb_byte *' instead of 'void *'.
	* remote-m32r-sdi.c (m32r_xfer_memory): Use 'gdb_byte' instead of
	'char'.

2005-11-07  Kevin Buettner  <kevinb@redhat.com>

	* ia64-tdep.c (floatformat_valid): Change type of `from' from
	`const char *' to `const void *'.

2005-11-07  Kevin Buettner  <kevinb@redhat.com>

	* frv-linux-tdep.c (frv_linux_sigtrapm_frame_prev_register): Change
	type of `valuep' argument to `gdb_byte *'.
	* frv-tdep.c (frv_pseudo_register_write): Change type of `buffer'
	argument to `gdb_byte *'.
	(frv_extract_return_value): Change type of `valbuf' argument to
	`gdb_byte *'.
	(frv_store_return_value): Likewise.
	(frv_frame_prev_register): Change type of `bufferp' argument to
	`gdb_byte *'
	* solib-frv.c (ext_Elf32_Half, ext_Elf32_Addr, ext_Elf32_Word)
	(ext_ptr): Change base type from `unsigned char' to `gdb_byte'.  Adjust
	calls to extract_unsigned_integer which use struct members declared
	with these array types to not try to take the address of those
	members.
	(fetch_loadmap, frv_current_sos): Change cast in target_read_memory()
	calls from `char *' to `gdb_byte *'.
	(lm_base): Change base type of `buf' from `char' to `gdb_byte'.
	(enable_break2): Change type of `buf' from `char *' to `gdb_byte *'.
	Change base type of `addr_buf' from `char' to `gdb_byte'.
	(find_canonical_descriptor_in_load_object): Change base type of `buf'
	from `char' to `gdb_byte'.

2005-11-07  Paul Gilliam  <pgilliam@us.ibm.com

	* ppc-sysv-tdep.c (ppc64_sysv_abi_return_value): Copy code from
	ppc_sysv_abi_return_value() to handle a vector return value.

2005-11-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* main.h (return_child_result, return_child_result_value): Declare.
	* infrun.c: Include main.h.
	(print_stop_reason): Remove declaration of return_child_result_value.
	* top.c: Include main.h.
	(quit_force): Remove declarations of return_child_result_value and
	return_child_result.
	* Makefile.in (top.o, infrun.o): Add main.h to dependencies.

2005-11-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* Makefile.in (tui-winsource.o): Add gdb_assert.h to dependencies.

2005-11-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* main.c (captured_main): Define struct cmdarg. Change type of cmdarg.
	Add new options --eval-command and alias -ex.
	Adjust --command to use the new struct cmdarg.
	Execute commands given with --eval-command.
	(print_gdb_help): Add new options --eval-command, -ex and mention -x.

2005-11-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* main.c (main): Use INTERP_TUI instead of "tui".
	Set interpreter to INTERP_INSIGHT when '-w' given.
	* interps.h (INTERP_INSIGHT): New define.
	* tui/tui-interp.c (_initialize_tui_interp): Use INTERP_TUI instead
	of "tui".

2005-11-04  Andrew Stubbs  <andrew.stubbs@st.com>

	* infrun.c (print_stop_reason): Set return_child_result_value on exit.
	* main.c (return_child_result): New variable.
	(return_child_result_value): Likewise.
	(captured_main): Add option --return-child-result.
	Replace call to target_detach and exit (in batch mode) with quit_force.
	(print_gdb_help): Add option --return-child-result.
	* top.c (quit_force): Return child result if appropriate.

2005-11-03  Wu Zhou  <woodzltc@cn.ibm.com>

        Checked in by Elena Zannoni  <ezannoni@redhat.com>

	* dwarf2read.c (read_structure_type): Add IBM XL C++
	specific code to set TYPE_VPTR_FIELDNO and TYPE_VPTR_BASETYPE
	of a virtual class if a field named "__vfp" is found. 

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

        Checked in by Elena Zannoni  <ezannoni@redhat.com>	

	* dwarf2read.c (file_full_name): Cope with file numbers that are
	out of range for the given line header.

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

        Checked in by Elena Zannoni  <ezannoni@redhat.com>

	* elfread.c (elf_symtab_read): Add number_of_symbols and
	symbol_table as arguments.  Do not load the symbol table
	here.
	(elf_symfile_read): Load the static and dynamic symbol tables
	here, before calling elf_symtab_read.  Also load any synthetic
	symbols and process those.
	
2005-11-03 Andrew Cagney  <cagney@gnu.org>

	Checked in by Elena Zannoni  <ezannoni@redhat.com>

	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Handle DW_OP_piece
	reads.

2006-11-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux-nat.c (linux_nat_resume): Add more debugging messages.  Do
	not short-circuit resuming all threads if the signal will be ignored
	in linux_nat_wait.

2005-11-02  Andrew Stubbs  <andrew.stubbs@st.com>

	* monitor.c (monitor_xfer_memory): Change char to gdb_byte.
	(monitor_insert_breakpoint): Likewise.
	(monitor_remove_breakpoint): Likewise.
	* remote-e7000.c (e7000_xfer_inferior_memory): Likewise.
	* sh-tdep.c (sh_return_value_nofpu): Change void to gdb_byte.
	(sh_return_value_fpu): Likewise.
	(sh_pseudo_register_read): Likewise.
	(sh_pseudo_register_write): Likewise.
	(sh_frame_prev_register): Likewise.
	* sh64-tdep.c (sh64_extract_return_value): Change char to gdb_byte.
	(sh64_return_value): Change void to gdb_byte.
	(sh64_pseudo_register_read): Likewise.
	(sh64_pseudo_register_write): Likewise.
	(sh64_frame_prev_register): Likewise.

2005-11-01  Joel Brobecker  <brobecker@adacore.com>

	* event-top.c (gdb_setup_readline): Add missing type in extern
	declaration.

2005-11-01  Paul Gilliam  <pgilliam@us.ibm.com>

        * rs6000-tdep.c (rs6000_gdbarch_init): On GNU/Linux, assume that
	 bfd_mach_ppc64 has altivec unit, just like bfd_mach_ppc.

2005-11-01  Andrew Stubbs  <andrew.stubbs@st.com>

	* tui/tui-data.h (tui_line_or_address): Encapsulate the union in a
	struct with a tag.
	(tui_source_element, tui_source_info): Update.
	* tui/tui-disasm.c, tui/tui-source.c: Update to use the tagged union.
	* tui/tui-source.h, tui/tui-stack.c, tui/tui-win.c: Likewise.
	* tui/tui-winsource.c, tui/tui-data.c, tui/tui-layout.c: Likewise.
	* tui/tui-winsource.h: Likewise.

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

	* win32-nat.c (CYGWIN_SIGNAL_STRING): Delete.
	(_CYGWIN_SIGNAL_STRING): Define if not already defined in cygwin.h.
	(win32_add_thread): Use XZALLOC rather than xmalloc/memset.
	(register_loaded_dll): Ditto.
	(handle_load_dll): Call solib_add here.
	(handle_unload_dll): Ditto.
	(info_dll_command): Delete.
	(handle_output_debug_string): Use official _CYGWIN_SIGNAL_STRING.
	(win32_current_sos): Duplicate table to pass off to caller rather than
	deleting our version.
	(set_win32_aliases): New function.
	(_initialize_win32_nat): Remove local handling of "info shared".  Set
	deprecated_init_ui_hook to allow late setting of "info dll" alias.

2005-11-01  Andrew Stubbs  <andrew.stubbs@st.com>

	* event-top.c (gdb_setup_readline): Don't set gdb_stdout when
	--batch-silent option was given.
	* main.c (batch_silent): New variable.
	(captured_main): Add new option --batch-silent.
	(print_gdb_help): Likewise.

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

	* NEWS: Mention VAX floating point support.

2005-10-31  Christopher Faylor  <cgf@timesys.com>

	* win32-nat.c (get_relocated_section_addrs): Reinstate.
	(solib_symbols_add): New function.
	(lm_info): Remove end_addr field.
	(register_loaded_dll): Don't try to find end_addr since gdb will do
	this automatically now.  Make so_original_name == so_name for now.
	Eliminate strcpy by using so_name directly.  Read in symbols if new
	paramater "readsyms" is true.
	(handle_load_dll): Pass auto_solib_add to register_loaded_dll to
	control when symbols should be read.
	(win32_free_so): Don't free objfile here.
	(win32_create_inferior_hook): New function.
	(handle_unload_dll): Remove left-over cruft.
	(win32_special_symbol_handling): New (dummy) function.
	(map_single_dll_code_section): Reinstate.
	(dll_code_sections_add): Reinstate.
	(core_section_load_dll_symbols): Reinstate.  Don't issue an error on
	duplicate attempts to read same dll.  Make sure that UNIX-like name is
	used to register DLL.
	(win32_current_sos): Handle core files.  Reset private list before
	passing start of list pointer to gdb.
	(init_win32_ops): Fill out (currently unused)
	solib_create_inferior_hook.  Fill out special_symbol_handling.
	* config/i386/tm-cygwin.h: Remove most special solib stuff.

2005-10-31  Christopher Faylor  <cgf@timesys.com>

	* win32-nat.c: Remove comment intended only for debugging.

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

	* doublest.c (floatformat_normalize_byteorder): Handle
	floatformat_vax.
	(convert_doublest_to_floatformat): Use
	floatformat_normalize_byteorder to swap bytes if necessary.
	* vax-tdep.c: Include floatformat.h.
	(vax_gdbarch_init): Set float_format, double_format,
	long_double_format and long_double_bit.
	* Makefile.in (vax-tdep.o): Update dependencies.

2005-10-31  Christopher Faylor  <cgf@timesys.com>

	Change child_ to win32_ throughout.
	* win32-nat.c (win32_ops): New variable.
	(win32_so_ops): Ditto.
	(psapi_get_dll_name): Make function static.
	(struct so_stuff): Delete.
	(struct lm_info): New struct.
	(solib_start, solib_end): Redefine as struct so_list.
	(safe_symbol_file_add_stub): Use so_list rather than so_stuff.
	(register_loaded_dll): Ditto.  Special-case ntdll.dll.  Fill in lm_info
	field of so_list with information previously stored in so_stuff.
	(get_image_name): Make function static.
	(max_dll_name_len): Make variable static.
	(win32_free_so): New function.
	(win32_current_sos): Ditto.
	(win32_relocate_section_addresses): Ditto.
	(handle_unload_dll): Use so_list rather than so_stuff.  Call free_so to
	delete shared library.
	(solib_address): Delete function.
	(child_solib_loaded_library_pathname): Ditto.
	(win32_clear_solib): Rename from child_clear_solibs.  Use so_list
	rather than so_stuff.  Just clear win32-specific stuff.
	(get_relocated_section_addrs): Delete.
	(solib_symbols_add): Ditto.
	(info_dll_command): Make static.  Use lm_info field from so_list to
	retrieve load address.
	(fake_create_process): Make function static.
	(win32_xfer_memory): Ditto.
	(win32_kill_inferior): Ditto.
	(win32_resume): Ditto.
	(cygwin_pid_to_str): Ditto.
	(do_initial_win32_stuff): Use win32_ops rather than
	deprecated_child_ops.
	(child_detach): Ditto.
	(win32_mourn_inferior): Ditto.
	(_initialize_win32_nat): Ditto.
	(init_win32_ops): Ditto.  Fill out win32_so_ops and set
	current_target_so_ops to win32_so_ops.
	(core_dll_symbols_add): Delete.
	(map_single_dll_code_section): Ditto.
	(dll_code_sections_add): Ditto.
	(core_section_load_dll_symbols): Ditto.
	(child_solib_add): Ditto.

2005-10-31  Andrew Stubbs  <andrew.stubbs@st.com>

	* tui/tui-command.c (tui_dispatch_ctrl_char): Test output of
	getenv() before using it.

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

	* hppa-tdep.h (HPPA_INSN_SIZE): New define.
	* hppa-hpux-tdep.c (hppa_hpux_search_pattern)
	(hppa64_hpux_search_dummy_call_sequence): Rewrite to avoid
	assumption on sizeof(unsigned).

	* inf-ttrace.c (inf_ttrace_wait): Comment out TARGET_WAITKIND_EXEC
	code; return TARGET_WAITKIND_STOPPED instead.

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

	* ppc-tdep.h (PPC_INSN_SIZE): Define.

	* inf-ttrace.c (inf_ttrace_mourn_inferior): Remove redundant cast.
	(inf_ttrace_kill): Renamed from inf_ttrace_kill_inferior.
	(inf_ttrace_target): Resort assignments.

2005-10-28  Nick Roberts  <nickrob@snap.net.nz>

	* mi/gdb-mi.el: Sync with Emacs 22.0.50.

2005-10-25  Andreas Schwab  <schwab@suse.de>

	* regformats/reg-ia64.dat: Remove NAT registers.

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

	* rs6000-tdep.c (info_powerpc_cmdlist): Remove variable.
	(rs6000_info_powerpc_command): Remove function.

2005-10-21  Andreas Schwab  <schwab@suse.de>

	* dwarf2read.c (isreg): Removed.
	(decode_locdesc): Don't set it.

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

	* Makefile.in (YYFILES): Add ada-lex.c

2005-10-17  Jim Blandy  <jimb@redhat.com>

	* dwarf2expr.c (dwarf_expr_fetch): Use correct comparison to
	detect stack underflow.

2005-10-14  Paul Gilliam  <pgilliam@us.ibm.com>

        * rs6000-tdep.c (rs6000_register_reggroup_p): Add vscr to test for
        vector registers.

2005-10-13  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (linux-thread-db.o): Depend on $(gdbcore_h).

	* linux-thread-db.c (enable_thread_event): Extend pointer value as
	specified by target.
	(thread_db_get_thread_local_address): Likewise.

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

	* i386-tdep.c (i386_reg_struct_return_p): Allow array types as well.
	(i386_return_value): Add handling for functions that return array
	types.

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

	* ada-valprint.c (print_optional_low_bound): Handle properly
	cases where the array index type is a TYPE_CODE_RANGE.

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

	* valprint.c (val_print_array_elements): Check array size before
	computing its low bound. If zero, then use a default bound of zero.

2005-10-06  Alan Modra  <amodra@bigpond.net.au>

	PR 1659
	* rs6000-tdep.c (rs6000_push_dummy_call): Correct size of
	backchain write.
	(rs6000_convert_from_func_ptr_addr): Correct comment.

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

	* MAINTAINERS: Add section for release management.

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

	* NEWS: Add entry for new "set print array-indexes" command.

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

	* language.h (language_defn): New field la_print_array_index.
	(LA_PRINT_ARRAY_INDEX): New macro.
	(default_print_array_index): Add declaration.
	* language.c (default_print_array_index): new function.
	(unknown_language): Add value for new field.
	(auto_language): Likewise.
	(local_language): Likewise.
	* ada-lang.c (ada_print_array_index): New function.
	(ada_language_defn): Add value for new field.
	* c-lang.c (c_language_defn): Likewise.
	(cpluc_language_defn): Likewise.
	(asm_language_defn): Likewise.
	(minimal_language_defn): Likewise.
	* f-lang.c (f_language_defn): Likewise.
	* jv-lang.c (java_language_defn): Likewise.
	* m2-lang.c (m2_language_defn): Likewise.
	* objc-lang.c (objc_language_defn): Likewise.
	* p-lang.c (pascal_language_defn): Likewise.
	* scm-lang.c (scm_language_defn): Likewise.
	* valprint.h (print_array_indexes_p): Add declaration.
	(get_array_low_bound): Add declaration.
	(maybe_print_array_index): Add declaration.
	* valprint.c (print_array_indexes): New static variable.
	(show_print_array_indexes): New function.
	(print_array_indexes_p): New function.
	(get_array_low_bound): New function.
	(maybe_print_array_index): New function.
	(val_print_array_elements): Print the index of each element if
	requested by the user.
	(_initialize_valprint): Add new array-indexes "set/show print" command.
	* ada-valprint.c (print_optional_low_bound): Replace extracted code
	by call to ada_get_array_low_bound_and_type(). Stop printing the low
	bound if indexes will be printed for all elements of the array.
	(val_print_packed_array_elements): Print the index of each element
	of the array if necessary.

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

	* hppa-tdep.c (read_unwind_info): Fix typo in comment.

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

	* gdb_gcore.sh: Use a temporary file.  Use gdb from $PATH.

2005-09-29  Andreas Schwab  <schwab@suse.de>

	PR threads/2015
	* infrun.c (adjust_pc_after_break): Don't use the state from a
	non-matching thread context.

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

	* rs6000-tdep.c (rs6000_frame_cache): Handle misdetected frameless
	functions.

2005-09-29  Nick Roberts  <nickrob@snap.net.nz>

	* annotate.c (breakpoints_changed, annotate_frames_invalid)
	(_initialize_annotate): Print breakpoints-invalid and
	frames-invalid for level 2 annotations only.

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

	* infrun.c (init_execution_control_state): Initialize
	ecs->another_trap.

2005-09-28  Nick Roberts  <nickrob@snap.net.nz>

	* Makefile.in (TAGS): Put DEPFILES back and add as a dependency.

2005-09-26  Nick Roberts  <nickrob@snap.net.nz>

	* Makefile.in (HFILES_NO_SRCDIR): Remove minimon.h, symfile-mem.h.
	(ALLDEPFILES) Correct typo amdfbsd-nat.c -> amd64fbsd-nat.c.
	Remove irix4-nat.c, m3-nat.c, mipsm3-nat.c, ns32k-tdep.c
	symm-tdep.c and symm-nat.c.
	(TAGFILES_NO_SRCDIR): Add CONFIG_SRCS.
	(DEPFILES): Remove CONFIG_OBS and include it explicitly where
	needed.

2005-09-26  Jan Beulich  <jbeulich@novell.com>

	* MAINTAINERS (Write After Approval): Add myself.

2005-09-26  Jan Beulich  <jbeulich@novell.com>

	* amd64-tdep.h (AMD64_FCTRL_REGNUM, AMD64_FSTAT_REGNUM,
	AMD64_MXCSR_REGNUM): New.
	* amd64-tdep.c (amd64_dwarf_regmap): Add eflags, selector regs,
	mxcsr, fp control and status words.
	* i386-tdep.c (): Add selector regs, mxcsr, fp control and status
	words.

2005-09-26  Paul Brook  <paul@codesourcery.com>

	* arm-tdep.c (arm_type_align): New function.
	(arm_push_dummy_call): Use it.  Ensure proper argument alignment.
	(arm_extract_struct_value_address): Remove.
	(arm_use_struct_convention): Rename...
	(arm_return_in_memory): ... To this.  Return nonzero for all small
	aggregates under the EABI.
	(arm_return_value): New function.
	(arm_gdbarch_init): Default for VFP float model for EABI binaries.
	Use set_gdbarch_return_value instead of obsolete functions.

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

	* mips-tdep.c (n32n64_floatformat_always_valid): Use 'const void
	*' for second argument instead of 'const char *'.

2005-09-20  Paul Gilliam  <pgilliam@us.ibm.com>

        * gdb.arch/altivec-abi.exp: Elide the 'in' from what's expected
         after a 'finish' command.

2005-09-20  Wu Zhou  <woodzltc@cn.ibm.com>

	* c-exp.y (parse-number): Modify the float parsing logic to let it 
	recognize a suffix.

2005-09-20  Wu Zhou  <woodzltc@cn.ibm.com>

	* expression.h (enum exp_opcode): Fix a format error of a comment.
 
2005-09-20  Wu Zhou  <woodzltc@cn.ibm.com>

	* expression.h (enum exp_opcode): Add a new operator for F90
	subrange.
	* f-lang.h (enum f90_range_type): New enumeration type to identify
	F90 subrange type.
	* f-exp.y (yyparse): Add support for parsing F90 subrange and
	change substring parsing to subrange parsing.
	* parse.c (operator_length_standard): Set the operator length
	and args number for OP_F90_RANGE.
	* eval.c (evaluate_subexp_standard): Add code to evaluate F90
	array section and substring.
	(value_f90_subarray): New function to evaluate F90 array section.
	(evaluate_subexp_standard): Delete label op_f77_substr and its code
	because the logic is implemented by function value_f90_subarray now.

2005-09-19  Paul Gilliam  <pgilliam@us.ibm.com>

	* rs6000-tdep.c (_initialize_rs6000_tdep): Get rid of the unused
	'info powerpc' command prefix.

2005-09-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/nm-linux.h (KERNEL_U_SIZE): Remove.
	(PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Likewise.
	(s390_stopped_by_watchpoint, s390_insert_watchpoint,
	s390_remove_watchpoint, TARGET_CAN_USE_HARDWARE_WATCHPOINT,
	TARGET_REGION_OK_FOR_HW_WATCHPOINT, HAVE_CONTINUABLE_WATCHPOINT,
	STOPPED_BY_WATCHPOINT, target_insert_watchpoint,
	target_remove_watchpoint): Likewise.
	* s390-nat.c: Remove include of <sys/user.h>.
	(kernel_u_size): Remove.
	(s390_stopped_by_watchpoint): Make static.
	(s390_insert_watchpoint, s390_remove_watchpoint): Likewise.
	(s390_can_use_hw_breakpoint): New function.
	(s390_region_size_ok_for_hw_watchpoint): Likewise.
	(_initialize_s390_nat): Add watchpoint methods to target.

2005-09-10  Daniel Jacobowitz  <dan@codesourcery.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* Makefile.in (ALLDEPFILES): Update.
	(alpha-linux-nat.o, sparc-linux-nat.o): New rules.
	(amd64-linux-nat.o, arm-linux-nat.o, hppa-linux-nat.o)
	(i386-linux-nat.o, ia64-linux-nat.o, linux-nat.o, m32r-linux-nat.o)
	(m68klinux-nat.o, mips-linux-nat.o, ppc-linux-nat.o, s390-nat.o)
	(sparc64-linux-nat.o): Update dependencies.
	* alpha-linux-nat.c, sparc-linux-nat.c: New files.
	* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers): Renamed
	from fetch_inferior_registers and made static.
	(amd64_linux_store_inferior_registers): Renamed from
	store_inferior_registers and made static.
	(amd64_linux_child_post_start_inferior): Renamed from
	child_post_startup_inferior and made static.  Call
	super_post_startup_inferior.
	(super_post_startup_inferior): New.
	(_initialize_amd64_linux_nat): Set it.  Call linux_target and
	add_target.
	* arm-linux-nat.c (arm_linux_fetch_inferior_registers): Renamed
	from fetch_inferior_registers and made static.
	(arm_linux_store_inferior_registers): Renamed from
	store_inferior_registers and made static.
	(_initialize_arm_linux_nat): Add a prototype.  Use linux_target and
	add_target.
	* hppa-linux-nat.c (hppa_linux_fetch_inferior_registers): Renamed
	from fetch_inferior_registers and made static.
	(hppa_linux_store_inferior_registers): Renamed from
	store_inferior_registers and made static.
	(_initialize_hppa_linux_nat): New function.
	* i386-linux-nat.c (i386_linux_fetch_inferior_registers): Renamed
	from fetch_inferior_registers and made static.
	(i386_linux_store_inferior_registers): Renamed from
	store_inferior_registers and made static.
	(i386_linux_resume): Renamed from child_resume and made static.
	(i386_linux_child_post_start_inferior): Renamed from
	child_post_startup_inferior and made static.  Call
	super_post_startup_inferior.
	(super_post_startup_inferior): New.
	(_initialize_i386_linux_nat): New function.
	* i386-nat.c: Remove LINUX_CHILD_POST_STARTUP_INFERIOR #ifndef.
	* ia64-linux-nat.c (ia64_linux_xfer_unwind_table): Remove.
	(super_xfer_partial): New.
	(ia64_linux_xfer_partial): New function.  Use it.
	(_initialize_ia64_linux_nat): New function.
	* ia64-tdep.c (getunwind_table): Revert 2005-06-08 change; use
	target_read_partial and document the problem.
	* inf-ptrace.c (inf_ptrace_fetch_register): Use
	CANNOT_FETCH_REGISTER.  Fix some comments.
	(inf_ptrace_store_register): Use CANNOT_STORE_REGISTER.  Fix some
	comments.
	* linux-nat.c: Include "inf-ptrace.h" and "auxv.h".
	(linux_ops, super_xfer_partial): New variables.
	(linux_child_post_startup_inferior): Make static.
	(child_post_startup_inferior): Delete.
	(linux_nat_attach, linux_nat_detach, resume_callback)
	(linux_nat_resume, linux_nat_wait, linux_nat_create_inferior)
	(linux_nat_mourn_inferior): Use linux_ops instead of
	deprecated_child_ops.
	(child_wait): Do not depend on CHILD_WAIT.
	(linux_nat_xfer_memory): Remove, replace by ...
	(linux_nat_xfer_partial): ... this.  Use linux_ops->to_xfer_partial
	instead of linux_proc_xfer_memory and child_xfer_memory.
	(linux_nat_fetch_registers, linux_nat_store_registers)
	(linux_nat_child_post_startup_inferior): New functions.
	(init_linux_nat_ops): Use the new functions.
	(linux_proc_xfer_memory): Remove, replace by ...
	(linux_proc_xfer_partial): ... this.  Make static.
	(linux_xfer_partial, linux_register_u_offset, linux_target): New
	functions.
	(_initialize_linux_nat): Do not modify deprecated_child_ops.
	* linux-nat.h (linux_proc_xfer_memory): Remove prototype.
	(struct mem_attrib, struct target_ops): Remove forward declarations.
	(linux_child_post_startup_inferior): Remove prototype.
	(linux_target): Add prototype.
	* linux-thread-db.c (thread_db_xfer_memory): Remove, replace by ...
	(thread_db_xfer_partial): ... this.
	(init_thread_db_ops): Set to_xfer_partial instead of
	deprecated_xfer_memory.
	* m32r-linux-nat.c (m32r_linux_fetch_inferior_registers): Renamed
	from fetch_inferior_registers and made static.
	(m32r_linux_store_inferior_registers): Renamed from
	store_inferior_registers and made static.
	(_initialize_m32r_linux_nat): New function.
	* m68klinux-nat.c (m68k_linux_fetch_inferior_registers): Renamed
	from fetch_inferior_registers and made static.
	(m68k_linux_store_inferior_registers): Renamed from
	store_inferior_registers and made static.
	(old_fetch_inferior_registers, old_store_inferior_registers): Made
	static.
	(_initialize_m68k_linux_nat): Use linux_target and add_target.
	* mips-linux-nat.c (_initialize_mips_linux_nat): New function.
	* ppc-linux-nat.c (ppc_linux_fetch_inferior_registers): Renamed
	from fetch_inferior_registers and made static.
	(ppc_linux_store_inferior_registers): Renamed from
	store_inferior_registers and made static.
	(_initialize_ppc_linux_nat): New function.
	* s390-nat.c (s390_linux_fetch_inferior_registers): Renamed
	from fetch_inferior_registers and made static.
	(s390_linux_store_inferior_registers): Renamed from
	store_inferior_registers and made static.
	(_initialize_s390_nat): New function.
	* sparc64-linux-nat.c (_initialize_sparc64_linux_nat): Use
	linux_target and add_target.
	* config/nm-linux.h: Don't include "auxv.h".
	(struct target_waitstatus, child_wait, CHILD_WAIT)
	(CHILD_PID_TO_EXEC_FILE, CHILD_INSERT_FORK_CATCHPOINT)
	(CHILD_INSERT_VFORK_CATCHPOINT, CHILD_INSERT_EXEC_CATCHPOINT)
	(CHILD_POST_STARTUP_INFERIOR, CHILD_POST_ATTACH, CHILD_FOLLOW_FORK)
	(DEPRECATED_KILL_INFERIOR, NATIVE_XFER_AUXV): Delete.
	* config/alpha/alpha-linux.mh (NATDEPFILES): Replace infptrace.o
	and inftarg.o with inf-ptrace.o and alpha-linux-nat.o.
	* config/sparc/linux.mh (NATDEPFILES): Replace infptrace.o and
	inftarg.o with sparc-linux-nat.o.
	* config/sparc/linux64.mh (NATDEPFILES): Remove infptrace.o and
	inftarg.o.
	* config/arm/linux.mh (NATDEPFILES): Replace infptrace.o and
	inftarg.o with inf-ptrace.o.
	* config/i386/linux.mh (NATDEPFILES): Likewise.
	* config/i386/linux64.mh (NATDEPFILES): Likewise.
	* config/ia64/linux.mh (NATDEPFILES): Likewise.
	* config/m32r/linux.mh (NATDEPFILES): Likewise.
	* config/m68k/linux.mh (NATDEPFILES): Likewise.
	* config/mips/linux.mh (NATDEPFILES): Likewise.
	* config/pa/linux.mh (NATDEPFILES): Likewise.
	* config/powerpc/linux.mh (NATDEPFILES): Likewise.
	* config/powerpc/ppc64-linux.mh (NATDEPFILES): Likewise.
	* config/s390/s390.mh (NATDEPFILES): Likewise.
	* config/i386/nm-linux.h (DEPRECATED_CHILD_RESUME): Don't define.
	(LINUX_CHILD_POST_STARTUP_INFERIOR): Don't define.
	* config/i386/nm-linux64.h (LINUX_CHILD_POST_STARTUP_INFERIOR):
	Don't define.
	* config/ia64/nm-linux.h: Don't include "target.h".
	(NATIVE_XFER_UNWIND_TABLE, ia64_linux_xfer_unwind_table): Remove.
	* config/djgpp/fnchange.lst: Add alpha-linux-tdep.c,
	alpha-linux-nat.c, sparc-linux-tdep.c, and sparc-linux-nat.c.

2005-09-08  Kevin Buettner  <kevinb@redhat.com>

	From Kevin Buettner, Andrew Cagney, Jackie Smith Cashion, and
	Alexandre Oliva:
	* mn10300-tdep.c (am33_2_register_name): New function.
	(my_frame_is_in_sp, my_frame_is_in_fp, my_frame_is_last)
	(set_my_stack_size): Delete.
	(set_movm_offsets, set_reg_offsets): Rename the former to the
	latter.  Update for handling am33.
	(mn10300_analyze_prologue): Update for handling am33.  Also, make
	minor improvements in quality of prologue analysis.
	(mn10300_gdbarch_init):  Add am33 support.
	* mn10300-tdep.h (E_NUM_REGS): Delete.

2005-09-06  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-linux-tdep.c (mn10300_linux_svr4_fetch_link_map_offsets):
	Delete.
	(am33_linux_init_osabi): Register svr4_ilp32_fetch_link_map_offsets
	instead.

2005-09-06  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-linux-tdep.c (solib-svr4.h): Include.
	(mn10300_linux_svr4_fetch_link_map_offsets): New function.
	(am33_linux_init_osabi): Register it.
	* Makefile.in (mn10300-linux-tdep.o): Update dependencies.

2005-09-06  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (mn10300_analyze_prologue): Delete code disabled
	via "#if 0".

2005-09-06  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (mn10300_analyze_prologue): Use
	safe_frame_unwind_memory() in place of deprecated_read_memory_nobpt().

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

	* inf-child.c (inf_child_follow_fork): Add OPS argument.
	* inf-ptrace.c (inf_ptrace_follow_fork): Likewise.
	* inf-ttrace.c (inf_ttrace_follow_fork): Likewise.
	* inftarg.c (child_follow_fork): Likewise.
	* linux-nat.c (child_follow_fork): Likewise.  Use ops instead of
	&deprecated_child_ops.
	* target.c (update_current_target): Do not inherit to_follow_fork.
	(target_follow_fork): New function.
	(debug_to_follow_fork): Remove.
	(setup_target_debug): Don't set to_follow_fork.
	* target.h (struct target_ops): Add struct target_ops * to
	to_follow_fork.
	(child_follow_fork): Add struct target_ops * argument.
	(target_follow_fork): Replace macro with prototype.

2005-09-02  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (mn10300_dwarf2_reg_to_regnum): Use ARRAY_SIZE.
	Change internal error to warning.  Add i18n markup to warning
	string.
	
2005-09-02  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (mn10300_dwarf2_reg_to_regnum): New function.
	(mn10300_gdbarch_init): Register mn10300_dwarf2_reg_to_regnum().

2005-09-02  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (is_my_frame_in_sp, is_my_frame_in_fp)
	(is_my_frame_last): Delete these unused functions.

2005-09-02  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (mn10300_frame_prev_register): Change type of
	``bufferp'' from ``void *'' to ``gdb_byte *''.

2005-09-02  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (mn10300_use_struct_convention): Delete parameter
	``gcc_p''.  Adjust all callers.
	(mn10300_store_return_value, mn10300_extract_return_value): Add new
	parameter ``gdbarch''.
	(mn10300_return_value): New function.
	(mn10300_gdbarch_init): Delete old-style return value code calls.
	Add call to set_gdbarch_return_value().

2005-09-02  Kevin Buettner  <kevinb@redhat.com>
	
	* mn10300-tdep.c (regcache.h): Delete duplicate include.
	* Makefile.in (mn10300-tdep.o): Update dependencies.

2005-09-02  Kevin Buettner  <kevinb@redhat.com>

	* mn10300-tdep.c (osabi.h): Include.
	(mn10300_gdbarch_init): Invoke gdbarch_init_osabi().
	* Makefile.in (mn10300-tdep.o): Update dependencies.

2005-09-02  Michael Snyder  <msnyder@redhat.com>
            Kevin Buettner  <kevinb@redhat.com>

	* mn10300-linux-tdep.c: New file.
	* Makefile.in (mn10300-linux-tdep.o): New Makefile target.
	* config/mn10300/linux.mt (TDEPFILES): Add mn10300-linux-tdep.o and
	corelow.o.
	* mn10300-tdep.h (E_E8_REGNUM, E_E9_REGNUM, E_E10_REGNUM)
	(E_FPCR_REGNUM, E_FS0_REGNUM): New constants.

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

	* infcall.c (call_function_by_hand): Remove code handling
	deprecated_push_arguments.  Bail out early if push_dummy_call
	isn't available.
	* gdbarch.sh (deprecated_push_arguments): Delete.  Adjust a few
	comments accordingly.
	* gdbarch.h, gdbarch.c: Regenerate.

2005-09-01  Paul Gilliam  <pgilliam@us.ibm.com>

        * ppc-tdep.h (struct gdbarch_tdep): Better explanation of using
        -1 for nonexistant registers.
        * rs6000-tdep.c (rs6000_register_reggroup_p): Don't assume that
        tdep->ppc_vr0_regnum and tdep->ppc_ev0_regnum are not -1.

2005-09-01  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm-linux-tdep.c (arm_linux_push_arguments): Delete.
	(arm_linux_init_abi): Don't register it.

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

	* symfile.c (symbol_file_command, set_initial_language)
	(symfile_bfd_open, get_section_index, add_symtab_fns)
	(find_sym_fns): Reformat code and comments.  Tweak comments.

	* m68k-tdep.c (m68k_register_name): Use ARRAY_SIZE.

2005-08-31  Jim Wilson  <wilson@specifix.com>

	* i386fbsd-tdep.c (i386fbsd_sc_reg_offset): Make it non-static.

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

	* environ.c (unset_in_environ): Use strncmp instead of
	DEPRECATED_STREQN.
	* exec.c (exec_file_attach): Remove DEPRECATED_HPUX_TEXT_END.
	* language.c (set_case_command, language_enum): Use strcmp instead
	of DEPRECATED_STREQ.
	* source.c (select_source_symtab): Sprinkle a few consts.  Use
	strcmp instead of DEPRECATED_STREQ.

	* solib-svr4.c (svr4_current_sos, svr4_fetch_objfile_link_map):
	Use XZALLOC and xzalloc instead of xmalloc where appropriate.

2005-08-27  Eli Zaretskii  <eliz@gnu.org>

	* main.c (print_gdb_help): Don't advertise the (long non-existent)
	option --mapped.

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

	* doublest.c (floatformat_mantissa): Use xsnprintf instead of
	sprintf.

	* vaxobsd-tdep.c: New file.
	* config/vax/obsd.mt (TDEPFILES): Add vaxobsd-tdep.o.
	* Makefile.in (vaxobsd-tdep.o): New dependency.

	* ppcobsd-tdep.c: Include "frame.h" and "frame-unwind.h".  Don't
	include "tramp-frame.h".
	(ppcobsd_sigtramp_cache_init): Remove function.
	(ppcobsd_sigtramp): Remove variable.
	(ppcobsd_page_size, ppcobsd_sigreturn_offset): New variables.
	(ppcobsd_sigtramp_p): New function.
	(ppcobsd_sigtramp_frame_cache, ppcobsd_sigtramp_frame_this_id)
	(ppcobsd_sigtramp_frame_prev_register): New functions.
	(ppcobsd_sigtramp_frame_unwind): New variable.
	(ppcobsd_sigtramp_frame_sniffer): New function.
	(ppcobsd_init_abi): Adjust to register new sigtramp sniffer
	instead of the old one.
	* Makefile.in (ppcobsd-tdep.o): Update dependencies.

	* infcall.c (call_function_by_hand): For
	RETURN_VALUE_ABI_RETURNS_ADDRESS and
	RETURN_VALUE_ABI_PRESERVES_ADDRESS, use gdbarch_return_value to
	get return value.

	* valarith.c (value_equal, value_less): Avoid compiler bug on
	systems where `long double' values are returned in static storage.

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

	* stack.c: Reformat.  Improve comments.  Include "valprint.h".
	(args_info, locals_info, backtrace_command, backtrace_command_1)
	(backtrace_full_command, frame_info, frame_command, down_command)
	(down_silently_base, down_silently_command, up_command)
	(up_silently_base, up_silently_command, parse_frame_specification)
	(current_frame_command, print_frame_args_vars, catch_info)
	(args_plus_locals_info), print_frame_label_vars)
	(print_block_frame_labels, print_block_frame_locals)
	(func_command): Remove prototypes.
	(print_stack_frame, backtrace_command_stub, backtrace_command,
	backtrace_full_command, print_frame_args, print_frame_arg_vars,
	print_args_stub, func_command): Remove redundant casts.
	(addressprint): Remove extern declaration.
	(frame_command): Make static.
	(struct print_stack_frame_args, struct print_args_args): Rename
	`fi' member to `frame'.
	(print_stack_frame, print_frame_nameless_args, print_frame_args)
	(set_current_sal_from_frame, print_frame_info, print_frame)
	(show_stack_frame, print_block_frame_locals)
	(print_frame_local_vars, print_frame_label_vars)
	(print_frame_arg_vars, select_and_print_frame): Rename `fi'
	argument to `frame'.
	(func_command): Rename `fp' variable to `frame'.
	(get_language): Restructure.
	* Makefile.in (stack.o): Update dependencies.

2005-08-17  Kevin Buettner  <kevinb@redhat.com>

	* NEWS (ms1-elf): New target.

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

	* m68k-tdep.c (m68k_return_value): Properly return contents of
	structures passed in memory.

	* infcmd.c (print_return_value): Move CHECK_TYPEDEF up.  Deal with
	RETURN_VALUE_ABI_PRESERVED_ADDRESS.

	* ppc-sysv-tdep.c (do_ppc_sysv_return_value): Fix the code that
	deals with the broken GCC convention.
	
2005-08-16  Mark Kettenis  <kettenis@gnu.org>

	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Set condition
	register appropriately for varargs functions.

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

	* MAINTAINERS (ms1): New target ISA entry.  List myself as
	maintainer.

2005-08-15  Michael Snyder  <msnyder@redhat.com>
            Kevin Buettner  <kevinb@redhat.com>

	* Makefile.in (ms1-tdep.o): Add dependencies.
	* configure.tgt: Add ms1-*-* target.
	* ms1-tdep.c: New file.
	* config/ms1/ms1.mt: New file.

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

	* Makefile.in (m68kbsd-tdep.o): Ad missing space.

2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* s390-tdep.c (op1_lgfi, op2_lgfi, op1_agfi, op2_agfi,
	op1_afi, op2_afi, op1_algfi, op2_algfi, op1_alfi, op2_alfi,
	op1_slgfi, op2_slgfi, op1_slfi, op2_slfi): New opcode enums.
	(s390_analyze_prologue): Recognize new z9-109 instructions.

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

	* solib-som.c (som_current_sos): Cast to 'gdb_byte *' where
	appropriate.

	* inf-ptrace.c (inf_ptrace_him) [PT_GET_PROCESS_STATE]: Move
	code...
	(inf_ptrace_post_startup_inferior): ...here.  New function.
	(inf_ptrace_attach) [PT_GET_PROCESS_STATE]: Move code...
	(inf_ptrace_post_attach): ...here.
	(inf_ptrace_target) [PT_GET_PROCESS_STATE]: Set
	to_post_startup_inferior and to_post_attch.

	* sparc-tdep.c (sparc_breakpoint_from_pc): Constify break_insn.

	* sparc-sol2-tdep.c (sparc_sol2_pc_in_sigtramp): Check for
	"__sighndlr".

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

	* i386-linux-nat.c (fetch_register, store_register) 
	(supply_gregset, fill_gregset): Remove redundant casts.

2005-08-12  Kris Warkentin  <kewarken@qnx.com>

	* i386-nto-tdep.c (i386nto_init_abi): Don't set gdbarch skip
	trampoline code hook.
	* nto-procfs.c (procfs_post_attach): Call solib_create_inferior_hook
	instead of  SOLIB_CREATE_INFERIOR_HOOK.
	(procfs_create_inferior): Ditto.
	* config/tm-nto.h: Don't define SKIP_TRAMPOLINE_CODE.

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

	PR exp/1978
	* valarith.c (value_binop): Fix result type for the shift
	operators.

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

	* sparc64obsd-tdep.c: Tweak comments.
	(sparc64obsd_sigreturn_offset): Add offset for new OpenBSD 3.8
	signal trampoline.

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

	* linux-nat.h (linux_proc_xfer_memory): Change type of "myaddr" a
	"gdb_byte" pointer.
	* linux-nat.c (linux_proc_xfer_memory): Update.
	(get_signo): Cast signo to a "gdb_byte" pointer.
	* i386-linux-nat.c (child_resume): Make "buf" a gdb_byte, delete
	redundant casts.
	(child_resume): Cast eflags to a "gdb_byte" pointer.

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

	* tramp-frame.h (struct tramp_frame): Allow for 16 instructions
	instead of 8.
	* m68kbsd-tdep.c: Include "frame.h", "trad-frame.h" and
	"tramp-frame.h".
	(m68kobsd_sigtramp_cache_init): New function.
	(m68kbsd_aout_init_abi): Prepend m68kobsd_sigtramp unwinder.

2005-08-02  Fred Fish  <fnf@specifix.com>

	* defs.h (parse_frame_specification): Remove prototype.
	* stack.c (parse_frame_specification): Add prototype and
	make function static.
	(frame_info): Move common code outside if..then..else.

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

	* value.c (value_contents_writeable): Use value_contents_raw.

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

	Suggested by Shaun Jackman <sjackman@gmail.com>:
	* defs.h (print_transfer_performance): Update prototype.
	* m32r-rom.c (m32r_load, m32r_upload_command): Use gettimeofday
	for print_transfer_performance.
	* remote-m32r-sdi.c (m32r_load): Likewise.
	* symfile.c (generic_load): Likewise.
	(report_transfer_performance): Create a dummy struct timeval.
	(print_transfer_performance): Use a more accurate measure
	of performance.

2005-08-01  Fred Fish  <fnf@specifix.com>

	* stack.c (parse_frame_specification_1): Remove use of obsolete
	SETUP_ARBITRARY_FRAME macro.

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

	* dwarf2-frame.c (read_signed_leb128): Handle values that do not
	fit in 32 bits.
	* dwarf2read.c (read_signed_leb128): Likewise.

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

	From Josef Ezra <jezra@emc.com>:
	* tracepoint.c (stringify_collection_list): Correct pointer
	arithmetic.

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

	Suggested by Vladimir Prus <ghost@cs.msu.su>:
	* infrun.c (handle_inferior_event): Check for line information in
	undebuggable functions.

2005-07-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cli-out.c (cli_field_fmt, cli_message, out_field_fmt): Add
	ATTR_FORMAT or ATTRIBUTE_FPTR_PRINTF.
	* complaints.c (vcomplaint): Likewise.
	* defs.h (xvasprintf, xstrvprintf, verror, vfatal)
	(internal_verror, internal_vwarning, vwarning)
	(deprecated_query_hook, deprecated_warning_hook)
	(deprecated_readline_begin_hook): Likewise.
	* disasm.c (fprintf_disasm): Likewise.
	* exceptions.c (throw_it): Likewise.
	* exceptions.h (throw_verror, throw_vfatal): Likewise.
	* mi/mi-interp.c (mi_interp_query_hook): Likewise.
	* mi/mi-out.c (mi_field_fmt, mi_message): Likewise.
	* tui/tui-hooks.c (tui_query_hook): Likewise.
	* tui/tui-out.c (tui_field_fmt, tui_message, out_field_fmt):
	Likewise.
	* ui-out.c (default_field_fmt, default_message, uo_field_fmt)
	(uo_message): Likewise.
	* ui-out.h (ui_out_field_fmt, ui_out_message, field_fmt_ftype)
	(message_ftype): Likewise.
	* utils.c (vfprintf_maybe_filtered, internal_vproblem)
	(defaulted_query, printchar): Likewise.
	
2005-07-26  Mark Kettenis  <kettenis@gnu.org>

	* i386obsd-tdep.c (i386obsd_sigreturn_offset): New variable.
	(i386obsd_sigtramp_p): Deal with an arbitrary number of possible
	offsets.
	(i386obsd_aout_supply_regset): Avoid bogus cast.

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

	* inf-ptrace.c [PT_GET_PROCESS_STATE] (inf_ptrace_follow_fork):
	New function.
	(inf_ptrace_him, inf_ptrace_attach) [PT_GET_PROCESS_STATE]: Set
	PTRACE_FORK event flag.
	(inf_ptrace_wait) [PT_GET_PROCESS_STATE]: Handle PTRACE_FORK
	event.
	(inf_ptrace_target) [PT_GET_PROCESS_STATE]: Set to_follow_fork.

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

	* gdb_ptrace.h (PT_TRACE_ME): Define to zero if not already
	defined.
	* inf-ptrace.c: Tweak comments.
	(inf_ptrace_me): Use PT_TRACE_ME instead of hardcoded zero.
	(inf_ptrace_mourn_inferior): Call waitpid.
	(inf_ptrace_attach): Use pid_t, Remove unnecessary cast.
	(inf_ptrace_detach): Use pid_t.  Use ptid_get_pid instead of
	PIDGET.
	(inf_ptrace_kill): Rename from inf_ptrace_kill_inferior.  Use
	pid_t.  Use ptid_get_pid instead of PIDGET.
	(inf_ptrace_kill): Call waitpid instead of wait.
	(inf_ptrace_resume): Use pid_t.  Use ptid_get_pid instead of
	PIDGET.
	(inf_ptrace_wait): Use waitpid instead wait.  Use pid_t.  Don't
	call target_has_exited or target_thread_alive.  Properly ignore
	terminated detached child processes.
	(inf_ptrace_has_exited): Remove function.
	(inf_ptrace_xfer_partial): Use pid_t.  Use ptid_get_pid instead of
	PIDGET.  Use gdb_byte instead of `unsigned char'.
	(inf_ptrace_thread_alive): Use ptid_get_pid instead of PIDGET.
	(inf_ptrace_pid_to_str): Remove function.
	(inf_ptrace_target): Use inf_ptrace_kill instead of
	inf_ptrace_kill_inferior.  Use normal_pid_to_str instead of
	inf_ptrace_pid_to_str.  Don't set to_has_exited.
	(inf_ptrace_fetch_register, inf_ptrace_store_register): Reformat
	long lines.

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

	* inf-ptrace.c: Reorder functions.
	(inf_ptrace_open, inf_ptrace_reported_exec_events_per_call)
	(inf_ptrace_can_run, inf_ptrace_post_attach): Removed.
	(inf_ptrace_target): Don't set to_open,
	to_reported_exec_events_per_call, to_can_run, to_post_attach,
	to_stratum, to_has_all_memory, to_has_memory, to_has_stack,
	to_has_registers, to_has_execution, to_magic.  Reorder remaining
	initializations.

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

	* configure.ac: On MinGW, do not require a termcap library, and
	use win32-termcap.c.
	* configure: Regenerated.
	* win32-termcap.c: New file.

2005-07-24  Mark Mitchell  <mark@codesourcery.com>

	* ser-tcp.c (close): Define as a function-like macro on MinGW.

2005-07-21  Eric Christopher  <echristo@apple.com>

	* MAINTAINERS (Misc): Update affiliation.

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

	* inf-ttrace.c (inf_ttrace_wait): Properly report TTEVT_EXEC
	events as TARGET_WAITKIND_EXECD.
	(inf_ttrace_detach): Reorder local variables.

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

	* inf-ttrace.c (inf_ttrace_vfork_ppid): New variable.
	(inf_ttrace_follow_fork): New function.
	(inf_ttrace_him, inf_ttrace_attach): Ask for TTEVT_FORK and
	TTEVT_VFORK events.  Replace TTEO_NOSTRCHLD option with
	TTEO_PROC_INHERIT.
	(inf_ttrace_create_inferior, inf_ttrace_attach): Add checks for
	inf_ttrace_vfork_ppid.
	(inf_ttrace_kill_inferior, inf_ttrace_detach): Detach from waiting
	parent if appropriate.
	(inf_ttrace_wait): Handle TTEVT_FORK and TTEVT_VFORK.
	(inf_ttrace_target): Set to_follow_fork.

2005-07-20  Wu Zhou  <woodzltc@cn.ibm.com>

	* remote.c (remote_pid_to_str): Use xsnprintf instead of snprintf.

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

	* target.c (normal_pid_to_str): Use xsnprintf instead of snprintf.
	* bsd-uthread.c (bsd_uthread_pid_to_str): Likewise.
	* inf-ttrace.c (inf_ttrace_pid_to_str): Likewise.

	* hppa-tdep.h (hppa_frame_prev_register_helper): Change types of
	last argument to `gdb_byte *'.
	* hppa-tdep.c (hppa32_convert_from_func_ptr_addr): Rewrite.
	(hppa_frame_prev_register_helper): Change types of last argument
	to `gdb_byte *'.
	* hppa-hpux-tdep.c (hppa_hpux_sigtramp_frame_prev_register):
	Change types of last argument to `gdb_byte *'.

2005-07-18  Mark Kettenis  <kettenis@gnu.org>
	    Jason Molenda  <jmolenda@apple.com>

	* i386-tdep.c (i386_match_insn): Match complete instruction
	pattern.

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

	* i386-tdep.c (i386_reg_struct_return_p): Handle structures with a
	single 'long double' member correctly.
	(i386_return_value): Tweak comment.

2005-07-16  Nick Roberts  <nickrob@snap.net.nz>

	* mi/gdb-mi.el:  Update for changes in Emacs 22.0.50.  Bring more
	features over from gdb-ui.el.  Use "-var-update --all-values" for
	faster re-display of watch expressions.

2005-07-15  Mark Kettenis  <kettenis@gnu.org>
	    Marcel Moolenaar  <marcel@xcllnt.net>

	* sparc64fbsd-nat.c: Include "regcache.h", <sys/types.h>,
	<machine/pcb.h> and "bsd-kvm.h".
	(sparc64fbsd_kvm_supply_pcb): New function.
	(_initialize_sparc64fbsd_nat): Enable libkvm interface.
	* config/sparc/fbsd.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.
	* Makefile.in (sparc64fbsd-nat.o): Update dependencies.

2005-07-15  Nick Roberts  <nickrob@snap.net.nz>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* mi/mi-cmds.h (mi_no_values, mi_simple_values, mi_all_values): New
	declarations.
	* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Use string
	constants instead of literals for MI command options.
	* mi/mi-cmd-var.c (mi_no_values, mi_simple_values, mi_all_values):
	New variables.
	(mi_parse_values_option, mi_print_value_p): New functions.
	(mi_cmd_var_list_children): Use mi_parse_values_option and
	mi_print_value_p.
	(mi_cmd_var_update): Support a PRINT_VALUES option.  Update calls
	to varobj_update_one.
	(varobj_update_one): Take a print_values argument.  Call
	mi_print_value_p.
	* varobj.c (varobj_get_gdb_type): New function.
	* varobj.h (varobj_get_gdb_type): New prototype.

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

	* ppc-linux-tdep.c (ppc_linux_init_abi): Set 64-bit link map offsets.

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

	* dwarf2expr.h: Tweak comment.
	(struct dwarf_expr_context): Use `gdb_byte *' in read_mem and
	get_frame_base function pointers.
	(read_uleb128, read_sleb128): Change return type and types of
	first two arguments to `gdb_byte *'.
	(dwarf2_read_address): Change types of first two arguments to
	`gdb_byte *'.
	* dwarf2expr.c: Tweak comment.
	(dwarf_expr_eval): Change type of second argument to `gdb_byte *'.
	(read_uleb128, read_sleb128): Change return type and types of
	first two arguments to `gdb_byte *'.
	(dwarf2_read_address): Change types of first two arguments to
	`gdb_byte *'.
	(execute_stack_op): Change types of last two arguments to
	`gdb_byte *'.  Use `gdb_byte *' for byte buffers.
	* dwarf2loc.h: Tweak comment.
	(struct dwarf2_locexpr_baton, struct dwarf2_loclist_baton): Use
	`gdb_byte *' for byte buffers.
	* dwarf2loc.c (find_location_expression): Change return type to
	`gdb_byte *'.  Use `gdb_byte *' for byte buffers.  Change length
	to `unsigned int'.
	(dwarf_expr_read_reg): Use `gdb_byte *' for byte buffer.  Remove
	bogus cast.
	(dwarf_expr_read_mem): Change type of second argument to
	`gdb_byte *'.
	(dwarf_expr_frame_base): Change type of second argument to
	`gdb_byte **'.
	(dwarf2_evaluate_loc_desc): Change type of third argument to
	`gdb_byte *'.
	(needs_frame_read_mem): Change type of second argument to
	`gdb_byte *'.
	(needs_frame_frame_base): Change type of second argument
	`gdb_byte **'.  Use gdb_byte for lit0.
	(dwarf2_tracepoint_var_ref): Change type of fourth argument to
	`gdb_byte *'.  Use `gdb_byte *' for byte buffer.
	(loclist_read_variable, loclist_tracepoint_var_ref): Use `gdb_byte
	*' for byte buffer.
	* dwarf2-frame.c (struct dwarf2_cie, struct dwarf2_fde)
	(struct dwarf2_frame_state): Use gdb_byte instead of `unsigned
	char'.
	(read_reg): Use `gdb_byte *' for byte buffers.  Remove redundant
	cast.
	(read_mem): Change second argument to `gdb_byte *'.
	(no_get_frame_base): Change second argument to `gdb_byte **'.
	(execute_stack_op): Change first argument to `gdb_byte *'.
	(execute_cfa_program): Change first two arguments to `gdb_byte *'.
	Use gdb_byte instead of `unsigned int'.  Use temprorary variable
	to store result of read_uleb128.
	(struct comp_unit): Use `gdb_byte *' for byte buffers.
	(read_1_byte, read_4_bytes, read_8_bytes): Change last argument to
	`gdb_byte *'.
	(read_unsigned_leb128, read_signed_leb128): Change second argument
	to `gdb_byte *'.  Use gdb_byte instead of `unsigned char'.
	(read_initial_length): Change second argument to `gdb_byte *'.
	Remove redundant casts.
	(read_encoded_value): Use gdb_byte instead of `unsigned char'.
	Remove bogus casts.
	(decode_frame_entry_1): Change return type and second argument to
	`gdb_byte *'.  Use `gdb_byte *' for byte buffers.  Use gdb_byte
	instead of `unsigned char'.
	(decode_frame_entry): Change return type and second argument to
	`gdb_byte *'.  Use `gdb_byte *' for byte buffers.
	(dwarf2_build_frame_info): Use `gdb_byte *' for byte buffers.

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

	* objc-lang.c (print_object_command): Use gdb_byte for c.
	* arch-utils.c (legacy_extract_return_value): Use 'gdb_byte *' for
	registers.

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

	* bsd-kvm.c: Include <paths.h>.
	(bsd_kvm_corefile): New variable.
	(core_kd, bsd_kvm_paddr, bsd_kvm_supply_pcb, bsd_kvm_ops): Make
	static.
	(bsd_kvm_open): Set bsd_kvm_corefile.
	(bsd_kvm_files_info): New function.
	(bsd_kvm_add_target): Set to_files_info.

2005-07-07  Andreas Schwab  <schwab@suse.de>

	* observer.sh: Use different temporary file name depending on mode
	of operation to avoid clash during parallel build.

2005-07-06  Bob Rossi  <bob@brasko.net>

	* fork-child.c (fork-inferior): Use accessor function for
	inferior_io_terminal.
	* infcmd.c (inferior_io_terminal): Make static.
	(set_inferior_io_terminal): New function.
	(get_inferior_io_terminal): Ditto.
	(tty_command): Use accessor function.
	(_initialize_infcmd): Add inferior_tty setshow variable.
	(_initialize_infcmd): Remove tty command.
	(_initialize_infcmd): Add a tty command that is an alias.
	* inferior.h (set_inferior_io_terminal): New prototype.
	(get_inferior_io_terminal): Ditto.
	(new_tty_prefork): Add const qualifier to parameter.
	* inflow.c (inferior_thisrun_terminal): Add const qualifier.
	(new_tty_prefork): Add const qualifier to parameter.
	* nto-procfs (procfs_create_inferior): Use accessor function.
	(procfs_create_inferior): Add const qualifier to locals.
	* win32-nat.c (child_create_inferior): Ditto.
	* mi/mi-cmd-env.c (mi_cmd_inferior_tty_set): New function.
	(mi_cmd_inferior_tty_set): Ditto.
	* mi/mi-cmds.c (mi_cmds): Add inferior-tty-set and inferior-tty-show
	* mi/mi-cmds.h (mi_cmd_inferior_tty_set): Add prototype.
	(mi_cmd_inferior_tty_show): Ditto.

2005-07-06  Wu Zhou  <woodzltc@cn.ibm.com>

	* tui/tui-win.c (parse_scrolling_args): Fix SEGV error with invalid
	scroll command.

2005-07-06  Wu Zhou  <woodzltc@cn.ibm.com>

	* f-exp.y (yyparse): Add code to support exponentiation expression.
	(yylex): Add code to scan exponentiation operator.
	* eval.c (evaluate_subexp_standard): Add support for BINOP_EXP.
	* valarith.c (value_binop): Reset errno to 0 before calling pow
	to do exponentiation operation.

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

	* i386nbsd-nat.c (i386nbsd_supply_pcb): Cast to 'gdb_byte *' in
	read_memory call.
	* bsd-uthread.c (bsd_uthread_wait): Use gdb_byte for byte buffer.

	* bsd-kvm.c (bsd_kvm_open): Properly cast sentinel in concat call.
	* coffread.c (patch_type, process_coff_symbol): Likewise.
	* corelow.c (core_open): Likewise.
	* dwarf2read.c (dwarf_decode_lines, dwarf2_start_subfile):
	* language.c (set_lang_str, set_type_str, set_range_str)
	(set_case_str): Likewise.
	* source.c (add_path, openp): Likewise.
	* stabsread.c: Likewise.
	* top.c (init_history): Likewise.
	* utils.c (xfullpath): Likewise.
	* value.c (lookup_internalvar): Likewise.
	* cli/cli-cmds.c (cd_command): Likewise.
	* cli/cli-dump.c (add_dump_command): Likewise.

	* i387-tdep.c (print_i387_value, print_i387_ext, i387_tag): Change
	type of first argument to `const gdb_byte *'.
	(i387_print_float_info, i387_register_to_value)
	(i387_value_to_register, i387_supply_fsave, i387_collect_fsave)
	(i387_supply_fxsave, i387_collect_fxsave): Use gdb_byte for byte
	buffers.

2005-07-04  Ben Elliston  <bje@gnu.org>

	* Makefile.in (RUNTEST): Set to runtest.

2005-07-03  Richard Henderson  <rth@redhat.com>

	* amd64-tdep.c (amd64_sse_type): New.
	(amd64_register_info): Use it for xmm registers.  Constify.
	(amd64_register_type): Initialize amd64_sse_type as needed.

2005-07-03  Steve Ellcey  <sje@cup.hp.com>

	* configure.ac: Add arguments to AC_DEFINE calls.
	* acconfig.h: Remove file.
	* acinclude.m4 (AC_GNU_SOURCE): Remove definition.
	* configure: Regenerate.
	* config.in: Regenerate.

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

	* mips-tdep.c (mips_insn16_frame_prev_register)
	(mips_insn32_frame_prev_register, mips_stub_frame_prev_register):
	Change type of last argument to `gdb_byte *'.

2005-07-01  Steve Ellcey  <sje@cup.hp.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

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

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

	* eval.c (evaluate_struct_tuple): Use strcmp instead of
	DEPRECATED_STREQ.

2005-06-27  Michael Snyder  <msnyder@redhat.com>

	* mn10300-linux-tdep.c: New file.  OSABI sniffer at end.
	* Makefile.in: Add rule for mn10300-linux-tdep.c.
	* config/mn10300/linux.mt: Add mn10300-linux-tdep.c to tdep files.

2005-06-27  Michael Snyder  <msnyder@redhat.com>

	* config/mn10300/linux.mt: New file.
	* configure.tgt: Add rule for am33 / mn10300-linux.
	* mn10300-tdep.c, mn10300-tdep.h: Bump copyright year.

2005-06-27  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdbtypes.c (get_discrete_bounds): Fix a comment typo.

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

	* sol-thread.c (sol_thread_xfer_memory): Change type of second
	argument to `gdb_byte *'.
	(sol_thread_xfer_partial): Change type of readbuf and writebuf
	arguments to `gdb_byte *'.

	* mips-tdep.c (mips_xfer_register, mips_o32_return_value)
	(mips_integer_to_address): Use gdb_byte instead of bfd_byte.

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

	* ppcobsd-nat.c: Include "gdbcore.h", <sys/signal.h>,
	<machine/frame.h>, <machine/pcb.h> and "bsd-kvm.h".
	(ppcobsd_supply_pcb): New function.
	(_initialize_ppcobsd_nat): Enable libkvm interface.
	* Makefile.in (ppcobsd-nat.o): Update dependencies.
	* config/powerpc/obsd.mh (NATDEPFILES): Add bsd-kvm.o.
	(LOADLIBES): New variable.

2005-06-24  Corinna Vinschen  <vinschen@redhat.com>

	* i386-tdep.c (struct i386_frame_cache): Define sp_offset as LONGEST.

2005-06-23  Andreas Schwab  <schwab@suse.de>

	* gdb_ptrace.h: Fix typos when checking for PT_ATTACH.  Reported
	by Chad Harrington <harrington.chad@gmail.com>.

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

	* remote.c (extended_remote_restart): Pass buffer in call to
	xsnprintf instead of a pointer to the buffer.

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

	* MAINTAINERS: List GDB's Steering Committee as responsible for
	GDB's maintenance.

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

	* inf-ttrace.c (inf_ttrace_xfer_partial): Change type of readbuf
	and writebuf arguments to `gdb_byte *'.

2005-06-21  Wu Zhou  <woodzltc@cn.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	* hppabsd-tdep.c: Include "symtab.h", "objfiles.h", "target.h",
	"value.h" and "elf/common.h".
	(hppabsd_supply_gregset): Use `gdb_byte *' for byte buffer.
	(hppabsd_find_global_pointer): New function.
	(hppabsd_init_abi): Set TDEP->find_global_pointer to
	hppabsd_find_global_pointer.
	* Makefile.in (hppabsd-tdep.o): Update dependencies.

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

	* hppa-tdep.c (hppa_pointer_to_address_hack): Remove function.
	(unwind_command): Use %lx to print pointer.

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

	* remote-sim.c (gdbsim_xfer_inferior_memory): Remove prototype.
	Change type of second argument to`gdb_byte *'.

2005-06-19  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-cmd-stack.c (mi_cmd_stack_info_frame): New function.

	* mi/mi-cmds.c (mi_cmds): Replace entry for -stack-info-frame.
	Make it use mi_cmd_stack_info_frame

	* mi/mi-cmds.h (mi_cmd_stack_info_frame): New declaration.

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

	* hppa-tdep.c (hppa_fallback_frame_cache): Don't error out if we
	can't find the bounds of the current function.  Wrap some long
	lines in the process.

	* regcache.c (regcache_raw_supply, regcache_raw_collect): Change
	type of last argument back to `void *'.
	* regcache.h (regcache_raw_supply, regcache_raw_collect): Likewise.

2005-06-18  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-cmds.c (mi_cmds): Remove entry for -stack-info-frame.

	* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames)
	(mi_cmd_stack_info_depth): Don't test for stack.
	(mi_cmd_stack_select_frame): Make the argument mandatory.
	Don't test for stack.

2005-06-17  Wu Zhou  <woodzltc@cn.ibm.com>

	* remote.c (set_thread, remote_thread_alive): Replace sprintf
	call with xsnprintf.
	(remote_threads_extra_info, extended_remote_restart)
	(remote_check_symbols, store_register_using_P)
	(compare_sections_command): Ditto.

2005-06-16  David Ung  <davidu@mips.com>

	* MAINTAINERS (Write After Approval): Add self.

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

	* hppa-hpux-nat.c (hppa_hpux_fetch_register)
	(hppa_hpux_store_register): Add casts in extract_unsigned_integer
	and store_usigned_integer calls.

2005-06-14  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-main.c (mi_cmd_data_list_register_values): Remove test for
	registers now that mi_execute_command rewinds after an error.

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

	* configure.ac: Use AC_CHECK_TYPES to check for uintptr_t.
	* configure, config.in: Regenerate.

	* ser-tcp.c: Tweak comment.
	[!HAVE_SOCKLEN_T]: Typedef socklen_t.
	* configure.ac: Add check for socklen_t.
	* configure, config.in: Regenerate.

2005-06-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/linux64.mt (TDEPFILES): Add symfile-mem.o.

2005-06-13  Richard Sandiford  <richard@codesourcery.com>

	* MAINTAINERS: Update my email address.

2005-06-13  Mark Mitchell  <mark@codesourcery.com>

	* corelow.c (core_open): Use bfd_fopen, not bfd_fdopenr.
	* exec.c (exec_file_attach): Likewise.
	* solib-frv.c (enable_break2): Likewise.
	* solib-svr4.c (enable_break): Likewise.
	* solib.c (solib_map_sections): Likewise.
	* symfile.c (symfile_bfd_open): Likewise.

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

	* Makefile.in (symfile.o): Add $(exec_h).
	* exec.h (exec_set_section_address): Add prototype.
	* exec.c (exec_set_section_address): New function.
	* symfile.c: Include "exec.h".
	(struct place_section_arg, place_section): New.
	(default_symfile_offsets): Call place_section for each
	section of a relocatable file.

2005-06-13  Joel Brobecker  <brobecker@adacore.com>

	* hppa-tdep.c (hppa_pc_requires_run_before_use): Really test all
	bits of top byte in address.

2005-06-13  Wu Zhou  <woodzltc@cn.ibm.com>

	* eval.c (evaluate_subexp_standard): Add code to check the target
	type of a TYPE_CODE_PTR value when we encounter a f77 undetermined
	arglist.  If it is array, string or function, work on the target
	value instead.

2005-06-12  Daniel Jacobowitz  <dan@codesourcery.com>
	    Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-main.c (register_changed_p, get_register): Use
	get_selected_frame.
	(mi_execute_command): Call mi_out_rewind after an error.

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

	* hppa-tdep.c (hppa_frame_prev_register)
	(hppa_fallback_frame_prev_register)
	(hppa_stub_frame_prev_register): Change type of last argument to
	`gdb_byte *'.
	(hppa_fetch_pointer_argument): Tweak comment.  Use
	get_frame_register_unsigned instead of get_frame_register.
	(hppa32_return_value, hppa64_return_value): Change type of readbuf
	and writebuf arguments to `gdb_byte *'.  Remove unecessary casts
	and local variables.
	(hppa_pseudo_register_read): Change type of last argument to
	`gdb_byte *'.

	* m68k-tdep.c (m68k_frame_prev_register): Change type of last
	argument to `gdb_byte *'.

	* arm-tdep.c (set_disassembly_style, _initialize_arm_tdep):
	Consitify regnames.

	* alpha-tdep.c (alpha_sigtramp_frame_prev_register)
	(alpha_heuristic_frame_prev_register): Change type of last
	argument to `gdb_byte *'.
	(alpha_register_to_value, alpha_value_to_register)
	(alpha_extract_return_value, alpha_store_return_value): Likewise.
	* alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Likewise.

	* arm-tdep.c (arm_prologue_prev_register)
	(arm_sigtramp_prev_register): Change type of last argument to
	`gdb_byte *'.

	* m88k-tdep.c (m88k_frame_prev_register): Change type of last
	argument to `gdb_byte *'.

	* vax-tdep.c (vax_frame_prev_register): Change type of last
	argument to `gdb_byte *'.

	* sparc-tdep.c (sparc32_frame_prev_register): Change type of last
	argument to `gdb_byte *'.
	* sparcnbsd-tdep.c (sparc32nbsd_sigcontext_frame_prev_register):
	Likewise.
	* sparcobsd-tdep.c (sparc32obsd_frame_prev_register): Likewise.
	* sparc-sol2-tdep.c (sparc32_sol2_sigtramp_frame_prev_register):
	Likewise.
	* sparc64-tdep.c (sparc64_frame_prev_register): Likewise.
	* sparc64fbsd-tdep.c (sparc64fbsd_sigtramp_frame_prev_register):
	Likewise.
	* sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_frame_prev_register):
	Likewise.
	* sparc64obsd-tdep.c (sparc64obsd_frame_prev_register): Likewise.
	* sparc64-sol2-tdep.c (sparc64_sol2_sigtramp_frame_unwind):
	Likewise.

	* amd64-tdep.c (amd64_frame_prev_register)
	(amd64_sigtramp_frame_prev_register): Change type of last argument
	to `gdb_byte *'.

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

	* i386-tdep.c (i386_register_type): Return
	builtin_type_void_func_ptr for %eip and builtin_type_void_data_ptr
	for %ebp and %esp.

2005-06-10  Ben Elliston  <bje@au.ibm.com>

	* valprint.c (print_floating): Fix comment typo.

2005-06-09  Jeff Johnston  <jjohnstn@redhat.com>

	* ia64-tdep.c (ia64_pseudo_register_read): Use gdb_byte and
	protect libunwind references with HAVE_LIBUNWIND_IA64_H flag.
	(ia64_pseudo_register_write): Use gdb_byte to remove warning.
	(ia64_register_to_value, ia64_value_to_register): Ditto.
	(ia64_frame_prev_register): Ditto.
	(ia64_libunwind_frame_prev_register): Ditto.
	(ia64_sigtramp_frame_prev_register): Ditto.
	(ia64_libunwind_sigtramp_frame_prev_register): Ditto.
	(ia64_store_return_value): Ditto.

2005-06-08  Jeff Johnston  <jjohnstn@redhat.com>
	    David Mosberger <davidm@hpl.hp.com>

	* ia64-tdep.c (KERNEL_START): New macro.
	(ia64_pseudo_register_read): Fix code to use libunwind to properly
	get the rse registers.
	(ia64_frame_this_id): Mark outermost frame with null frame id.
	(ia64_sigtramp_frame_prev_register): Fix up debug output.
	(ia64_access_rse_reg): New accessor function.
	(ia64_access_mem): Add special logic for accessing the
	kernel's unwind table.
	(getunwind_table): Fix for corefiles.
	(get_kernel_table): Fix to handle vDSO.
	(ia64_libunwind_frame_this_id): Check for null frame id and
	don't unwind past pc value of 0.  Fix debugging output.
	(ia64_libunwind_sigtramp_frame_this_id): New function.
	(ia64_libunwind_sigtramp_frame_prev_register): Ditto.
	(ia64_libunwind_sigtramp_frame_sniffer): Ditto.
	(ia64_libunwind_sigtramp_frame_unwind): New unwinder.
	(ia64_unw_rse_accessors): New libunwind accessors.
	(ia64_libunwind_descr): Add ia64_unw_rse_accessors.
	(ia64_gdbarch_init)[HAVE_LIBUNWIND_IA64_H]: Use
	ia64_libunwind_sigtramp_frame_sniffer instead of
	ia64_sigtramp_frame_sniffer.
	* libunwind-frame.c (libunwind_frame_set_descr): Add
	special register accessors.
	(libunwind_frame_cache): Add special logic to check for
	0 pc value.  Check for a signal trampoline frame.
	(libunwind_frame_this_id): Check if libunwind_frame_cache
	returns NULL.
	(libunwind_frame_prev_register): Check for NULL cache.
	(libunwind_frame_base_address): Ditto.
	(libunwind_sigtramp_frame_sniffer): New function.
	(libunwind_get_reg_special): Ditto.
	(libunwind_load): Add unw_is_signal_frame support.
	* libunwind-frame.h (struct libunwind_descr): Add special_accessors
	field.
	(libunwind_sigtramp_frame_sniffer): New prototype.
	(libunwind_get_reg_special): Ditto.

2005-06-08  Wu Zhou  <woodzltc@cn.ibm.com>

	* expression.h (enum exp_opcode): Fix a comment typo.

2005-06-06  Manoj Iyer  <manjo@austin.ibm.com>

	* solib-svr4.c (struct lm_info): Change type of 'lm' to gdb_byte.
	(elf_locate_base): Converted types of buf, bufend, pbuf, to gdb_byte.
	(first_link_map_member): Converted type of r_map_buf to gdb_byte.
	(open_symbol_file_object): Converted type of l_name_buf to gdb_byte.
	(svr4_fetch_objfile_link_map): Converted type of l_name_buf to
	gdb_byte.

2005-06-04  Richard Sandiford  <rsandifo@nildram.co.uk>

	* MAINTAINERS: Update my email address.

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

	* symmisc.c (dump_symtab_1): Renamed from dump_symtab.
	(dump_symtab): New function.

2005-04-02  Joel Brobecker  <brobecker@adacore.com>

	* exceptions.h: Include ui-out.h.
	(ui_out): Remove declaration.
	* Makefile.in (exceptions_h): Add dependency on ui-out.h.

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

	* MAINTAINERS (Can Commit Without Approval): New section,
	previously burried under "Target Instruction Set Architectures".
	Note that cagney "can commit" changes to powerpc-linux.

	* MAINTAINERS: Drop architecture and target vectors.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* MAINTAINERS (Write After Approval): Remove myself.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* defs.h (extract_signed_integer, extract_unsigned_integer)
	(extract_long_unsigned_integer, extract_typed_address)
	(store_signed_integer, store_unsigned_integer)
	(store_typed_address): Use gdb_byte for byte buffer parameters.
	(push_bytes, push_word): Delete declaration.
	* valops.c (push_bytes, push_word): Delete function.
	* findvar.c (extract_signed_integer, extract_unsigned_integer)
	(extract_typed_address, store_signed_integer)
	(store_unsigned_integer): Update.

	* regcache.h (regcache_raw_read, regcache_raw_write)
	(regcache_raw_read_part, regcache_raw_write_part)
	(regcache_cooked_read_part, regcache_cooked_write_part)
	(regcache_cooked_read, regcache_cooked_write)
	(regcache_raw_supply, regcache_raw_collect)
	(regcache_cooked_read_ftype, regcache_save, regcache_restore)
	(deprecated_read_register_gen, deprecated_write_register_gen)
	(deprecated_read_register_bytes, deprecated_write_register_bytes)
	(deprecated_grub_regcache_for_registers): Use gdb_byte for byte
	buffer parameters.
	* ia64-tdep.c (ia64_extract_return_value): Update.
	* frame.c (do_frame_register_read): Update.
	* regcache.c (deprecated_grub_regcache_for_registers)
	(struct regcache, regcache_save, regcache_restore, regcache_cpy)
	(do_cooked_read, regcache_xmalloc, register_buffer)
	(deprecated_read_register_bytes, regcache_raw_read)
	(regcache_raw_read_signed, regcache_raw_read_unsigned)
	(deprecated_read_register_gen, regcache_cooked_read)
	(regcache_cooked_read_signed, regcache_cooked_read_unsigned)
	(deprecated_write_register_gen, regcache_cooked_write)
	(deprecated_write_register_bytes, regcache_raw_read_part)
	(regcache_raw_write_part, regcache_cooked_read_part)
	(regcache_cooked_write_part, read_register, regcache_raw_supply):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* observer.sh: Quote $DJGPP.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* i387-tdep.c: Remove outdated comments.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* event-loop.c (gdb_assert.h): Include.
	(<windows.h>): Include under Windows.
	(<io.h>): Likeiwse.
	(gdb_select): New function.
	(gdb_wait_for_event): Use it.
	* Makefile.in (event-loop.o): Depend on $(gdb_assert_h).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* dummy-frame.c (dummy_frame_sniffer): Optimization: don't bother
	computing this_id if there are no dummy frames on the stack.

	* mn10300-tdep.c (mn10300_frame_unwind_cache): Use
	find_partial_func instead of unwind_pc to identify frame.
	(mn10300_push_dummy_call): Handle struct args, struct_return.

	* mn10300-prologue.c (set_movm_offsets): Don't test variable
	before setting it.
	* mn10300-tdep.c (mn10300_skip_prologue): Use analyze_prologue
	instead of skip_prologue_using_sal.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* regcache.c: Fix typo in comment.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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