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

	Backport:
	2006-06-15  Daniel Jacobowitz  <dan@codesourcery.com>
	* Makefile.def (fixincludes): Correct extra_configure_flags
	typo.
	(expat): Don't install.  Don't build shared libraries.
	* Makefile.in: Regenerated.

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

	gdb/
	* buildsym.c, symtab.c: Add local hack for FILENAME_CMP testing.
	* utils.c (cygwin_filename_cmp): New.

	Backport:
	2006-04-21  Frederic Riss  <frederic.riss@st.com>
	* dwarf2read.c (dwarf2_start_subfile): Change prototype to accept
	compilation directory as last argument. 
	Always pass comp_dir as second argument to start_subfile and prepend
	dirname to the filename when necessary. 
	Remove now superfluous search for pre-existing subfile.
	(dwarf_decode_lines): Pass the compilation directory to
	dwarf2_start_subfile.

	gdb/testsuite/
	* config/symbian.exp (gdb_target_symbian): Handle a running target.
	(gdb_load): Add return value.

	* gdb.base/completion.exp: Test arg rather than a.  Handle
	very small lists of symbols.

	* gdb.base/list.exp: Differentiate run behavior based on
	use_gdb_stub.

	* gdb.base/maint.exp: Accept local symbols.  Accept missing .data.

	* gdb.base/remote.exp: Update packet limits.

	* gdb.base/varargs.exp: Don't pass an empty list item.

	* lib/gdb.exp (fullname_syntax): Recognize forward slashes in DOS
	paths.

	Backport:
	2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>
	* gdb.base/gdb1555.exp: Use gdb_compile_shlib.  Skip if not
	native.

	2006-06-22  Daniel Jacobowitz  <dan@codesourcery.com>
	* gdb.stabs/exclfwd.exp: Skip the test if configure did not
	enable stabs testing.

	2006-05-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	* gdb.mi/mi-basics.exp: Add missing serial number to 
	expected output in some mi_gdb_test statements.
	* gdb.mi/mi2-basics.exp: Likewise.

2006-09-25  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/testsuite/
	* gdb.arch/thumb-prologue.c: Update breakpoint mechanism.  Restore
	lr before returning for completeness.
	* gdb.arch/thumb-prologue.exp: Update to set a breakpoint.

2006-09-21  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/
	* infrun.c (handle_inferior_event): Always clear stop_stack_dummy.
	Don't check it for load events.

2006-09-15  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/testsuite/
	* config/symbian.exp (cyg_to_win): New.
	(symbian_compile): Use it.  Handle c++ and incdir.

2006-09-15  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/testsuite/
	* gdb.base/commands.exp (bp_deleted_in_command_test)
	(temporary_breakpoint_commands): Allow run.c without a pathname.
	* gdb.base/ending-run.exp: Allow E32Main.

2006-09-15  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/testsuite/
	* config/symbian.exp (infer_host_exec): Cope with MI.
	(mi_target_gdb_load): New.
	* lib/mi-support.exp: Use mi_target_gdb_load.

2006-09-15  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/testsuite/
	* gdb.base/args.c (main): Add breakpoint marker.
	* gdb.base/args.exp: Use args_test for tests.  Add new tests which
	really test empty arguments.
	(args_load): Delete.
	(args_test): New.

2006-08-30  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/
	* remote.c (remote_start_remote, extended_remote_attach_1)
	(extended_remote_mourn_1, extended_remote_run): Use only rs->buf.

2006-08-23  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/testsuite/
	* config/symbian.exp (symbian_compile): Fail after unknown options.
	Copy ELF files from the build tree.
	* gdb.asm/asm-source.exp: Use untested.

2006-08-17  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/testsuite/
	* config/symbian.exp: New file.

2006-08-17  Daniel Jacobowitz  <dan@codesourcery.com>

	gdb/
	* objfiles.c (init_entry_point_info): Handle shared objects
	with entry points.

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

	gdb/
	* symfile.c (symfile_section_offset_from_segment): Correct
	last change.

	* solib.c (solib_open): Always set errno.

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

	gdb/
	* symfile.c (symfile_map_offsets_to_segments): Don't warn
	for empty sections.
	(symfile_section_offset_from_segment): Likewise.

2006-06-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/remote.c (remote_hostio_write): Correct buffer length
	calculation.

2006-06-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/exec.c (exec_set_section_address): Always update the
	section's address.
	* gdb/objfiles.c (objfile_relocate): Also relocate the
	target sections table.
	* gdb/Makefile.in (objfiles.o): Update.

	* gdb/remote.c (remote_xfer_partial): Fail if the target is not
	running.

2006-06-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/remote.c (remote_download_command): Use FILEIO_O_TRUNC.

2006-06-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/remote.c (remote_hostio_parse_result): Check for strtol
	errors.

2006-06-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/doc/gdb.texinfo (Host I/O Packets): Mention explicit negative
	signs.

2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/remote.c (remote_download_command): Correct short write
	handling.

2006-05-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/remote.c (remote_fileio_errno_to_host)
	(remote_hostio_error): Rename argument to errnum.
	(_initialize_remote): Update calls to add_packet_config_cmd.

2006-05-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/remote.c: Include "gdb/fileio.h".
	(PACKET_Fopen, PACKET_Fread, PACKET_Fwrite, PACKET_Fclose): New
	enums.
	(remote_escape_output, remote_unescape_input): New functions.
	(remote_write_bytes): Use remote_escape_output.
	(readchar): Do not mask off the high bit.
	(read_frame): Print binary packets correctly.
	(getpkt_sane): Likewise.  Return the number of bytes read
	or -1.
	(remote_buffer_add_string, remote_buffer_add_bytes)
	(remote_buffer_add_int, remote_hostio_parse_result)
	(remote_hostio_send_command, remote_hostio_open)
	(remote_hostio_write, remote_hostio_read)
	(remote_hostio_close, remote_fileio_errno_to_host)
	(remote_hostio_error, fclose_cleanup, remote_download_command)
	(remote_upload_command): New functions.
	(_initialize_remote): Register new packets and remote-upload
	and remote-download commands.

	* gdb/doc/gdb.texinfo (File Transfer): New section.
	(Remote Configuration): Document Host I/O packet commands.
	(Host I/O Packets): New section.
	(Packets): Mention overloading of F prefix.

	* gdb/gdbserver/Makefile.in (OBS): Add hostio.o.
	(hostio.o): New rule.
	* gdb/gdbserver/hostio.c: New file.
	* gdb/gdbserver/remote-utils.c (putpkt_binary): New function,
	broken out from putpkt.
	(putpkt): Use it.
	(readchar): Do not mask the high bits.  Correct the buffer
	type.
	* gdb/gdbserver/server.c (main): Leave space for a trailing
	zero in the packet buffer.  Save the length of the
	received packet.  Handle Host I/O requests.  Optionally call
	putpkt_binary.
	* gdb/gdbserver/server.h (handle_f_hostio, putpkt_binary): New
	prototypes.

2006-05-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/frame.c (get_prev_frame): Move check for pc == 0 ...
	(get_prev_frame_1): ... to here.

2006-05-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/bsd-uthread.c (bsd_uthread_solib_loaded): Always pass 0 for
	from_tty.
	* gdb/remote.c (remote_get_shared_libraries): Don't call solib_add.
	* gdb/solib.c: Include "exceptions.h".
	(solib_map_sections): Throw NOT_FOUND_ERROR if appropriate.
	(symbol_add_stub): Delete.
	(solib_read_symbols): Use TRY_CATCH.  Inline symbol_add_stub.
	Use current from_tty, not a copy from the so_list.  Don't warn
	a second time for a missing library.
	(update_solib_list): Don't save from_tty.  Use TRY_CATCH.  Print
	out a single warning for all missing libraries.
	* gdb/solist.h (struct so_list): Remove from_tty.
	* gdb/Makefile.in (solib.o): Update.

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

	* gdb/remote.c (remote_get_shared_libraries): Check for NULL ops.
	(remote_wait): Handle ",nop" on DLL packets and "dll:dll" response.

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

	* gdb/solib-target.c (solib_target_remove_one_solib): Correct loop
	logic.

2006-04-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (thumb_heuristic_function_start): New function.
	(thumb_scan_prologue): Use it.
	(arm_prologue_this_id): Adjust LOWEST_PC check.

2006-04-19  Daniel Jacobowitz  <dan@codesourcery.com>

	Merge from gdb-csl-20060226-branch:

	2006-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
	* gdb/doc/gdb.texinfo (Remote configuration): Mention "set remote
	load-offsets".
	(General Query Packets): Document qPartInfo.

	2006-04-18  Mark Mitchell  <mark@codesourcery.com>
	Issue #655
	* gdb/mt-tdep.c (mt_gdb_regnums): Add ZI2, ZQ2, Ichannel2,
	Iscramb2, Qscramb2, Qchannel2.
	(mt_register_name): Likewise.
	(mt_copro_register_type): Describe ZI2 and ZQ2.
	
	2006-04-11  Mark Mitchell  <mark@codesourcery.com>
	Issue #658
	* gdb/mt-tdep.c (mt_gdb_regnums): Define
	MT_COPRO_PSEUDOREG_MAC_REGNUM.
	(mt_register_name): Use it.
	(mt_copro_register_type): Likewise.
	(mt_register_type): Likewise.
	(mt_pseudo_register_read): Likewise.  Read the MAC register, not
	the coprocessor register.
	(mt_pseudo_register_write): Likewise.

2006-04-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/buildsym.c (start_subfile): Handle producer.
	(record_producer): New function.
	* gdb/buildsym.h (struct subfile): Include producer.
	(record_producer): New prototype.
	* gdb/dwarf2-frame.c (struct dwarf2_cie): Add version.
	(struct dwarf2_frame_state): Add armcc_cfa_offsets_sf and
	armcc_cfa_offsets_reversed.
	(execute_cfa_program): Handle armcc_cfa_offsets_sf.
	(dwarf2_frame_find_quirks): New function.
	(dwarf2_frame_cache): Call it.  Handle armcc_cfa_offsets_reversed.
	(decode_frame_entry_1): Record the CIE version.
	* gdb/dwarf2read.c (read_file_scope): Save the producer.
	* gdb/symtab.h (struct symtab): Rename unused version member to
	producer.

2006-04-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb/Makefile.in (ALLDEPFILES): Add solib-target.c.
	(remote.o): Update dependencies.
	(solib-target.o, symbian-tdep.o): New rules.
	* gdb/arm-tdep.c (arm_mode_strings, arm_fallback_mode_string)
	(arm_force_mode_string): New.
	(arm_pc_is_thumb): Use them.
	(thumb_scan_prologue): Abort scan when symbols are missing.
	(arm_show_fallback_mode, arm_show_force_mode): New.
	(_initialize_arm_tdep): Register fallback-mode and force-mode.
	* gdb/configure.tgt: Add arm*-*-symbian*.
	* gdb/infcmd.c (_initialize_infcmd): Make "set args" a string
	variable.
	* gdb/inflow.c (kill_command): Assume that a target with stack
	can have a frame.
	* gdb/infrun.c (init_wait_for_inferior): Clear
	target_last_wait_ptid.
	(insert_step_resume_breakpoint_at_frame): Add use_previous argument.
	Use get_prev_frame if requested.
	(handle_inferior_event): Update TARGET_WAITKIND_LOADED support.
	Update calls to insert_step_resume_breakpoint_at_frame.
	* gdb/remote.c: Include "solist.h".
	(remote_exec_file): New variable.
	(PACKET_vAttach, PACKET_vRun, PACKET_qfDllInfo): New enums.
	(remote_mark_running, remote_mark_killed): New functions.
	(extended_remote_restart): Don't send a query.
	(get_offsets): Handle TextSeg and DataSeg response.
	(parse_load_response, remote_get_shared_libraries): New functions.
	(remote_start_remote): Take a target as the second argument for
	extended mode.  Check whether the target is running.  Reset
	inferior_ptid here.
	(remote_open_1): Assume the target is running.  Don't reset
	inferior_ptid here.  Pass the target to remote_start_remote
	in extended mode.  Only do some setup if the target is running.
	(remote_detach_1): New function, renamed from remote_detach.
	Don't say we are disconnecting if we aren't.
	(remote_detach): Call remote_detach_1.
	(extended_remote_detach): New function.
	(remote_disconnect): Take a target_ops argument.  Correct the
	error message.  Call remote_mourn_1 directly.
	(extended_remote_attach_1, extended_remote_attach)
	(extended_async_remote_attach): New functions.
	(remote_wait): Handle load and unload events.
	(extended_remote_mourn_1): New function.
	(extended_remote_mourn): Replace with a call to
	extended_remote_mourn_1.
	(extended_async_remote_mourn): New function.
	(extended_remote_run): New function.
	(extended_remote_create_inferior_1): New function, from
	extended_remote_create_inferior.  Call get_offsets.
	(extended_remote_create_inferior)
	(extended_remote_async_create_inferior): Use it.
	(remote_stopped_by_watchpoint, crc32_table)
	(compare_sections_command): Whitespace tweaks.
	(init_remote_ops, init_extended_remote_ops): Update.
	(init_remote_async_ops): Whitespace tweaks and update.
	(init_extended_async_remote_ops): Update.
	(_initialize_remote): Add new configurable packets.  Add
	"set remote exec-file".
	* gdb/solib-som.c (som_current_sos): Set addr_low and addr_high.
	* gdb/solib-target.c: New file.
	* gdb/solib.c (solib_symbols_extension): New variable.
	(solib_open): Use it.
	(solib_map_sections): Set addr_low and addr_high instead of
	textsection.
	(info_sharedlibrary_command): Use addr_low and addr_high.
	* gdb/solib.h (solib_symbols_extension): New declaration.
	* gdb/solist.h (struct so_list): Replace textsection
	with addr_low and addr_high.
	(struct target_so_ops): Add add_one_solib and remove_one_solib.
	* gdb/symbian-tdep.c: New file.
	* gdb/symfile.c (init_objfile_sect_indices): Use
	symfile_find_segment_sections to find the text section.
	(symfile_find_segments, symfile_find_segment_sections)
	(symfile_map_offsets_to_segments, symfile_find_segment_lengths)
	(symfile_section_offset_from_segment): New functions.
	* gdb/symfile.h (symfile_map_offsets_to_segments)
	(symfile_section_offset_from_segment)
	(symfile_find_segment_lengths): New prototypes.
	* gdb/target.c (debug_to_disconnect): Delete.
	(update_current_target): Make global.  Do not inherit to_disconnect.
	Mention to_get_shared_libraries.
	(target_disconnect): Search for to_disconnect.
	(target_get_shared_libraries): New.
	(setup_target_debug): Update.
	* gdb/target.h (struct target_ops): Update to_disconnect prototype.
	Add to_get_shared_libraries.
	(target_has_execution): Update comment.
	(target_get_shared_libraries, update_current_target): New
	prototypes.
	* gdb/cli/cli-setshow.c (do_setshow_command): Revise string variable
	handling.
	* gdb/config/arm/symbian.mt: New file.
	* gdb/doc/gdb.texinfo (ARM): Document set/show arm fallback-mode
	and set/show arm force-mode.

	* gdb/testsuite/gdb.base/define.exp: Don't use backslashes in the
	prompt.

	* readline/emacs_keymap.c: Add a MINGW32 hack.
	* readline/readline.c: Use _rl_bind_if_unbound to avoid macro bugs.

	* gdb/gdbserver/linux-low.c (linux_kill): Reset inferior thread and
	process lists.
	(linux_detach): Likewise.
	(linux_wait_for_process): Discard unexpected exits.
	* gdb/gdbserver/remote-utils.c (unblock_async_io): Ignore if we are
	restarting.
	* gdb/gdbserver/server.c (exit_requested, restarting_program)
	(program_argv): New variables.
	(attached): Move higher.
	(start_inferior): Clear attached.  Use restarting_program to avoid
	troubles with the 'R' packet.
	(attach_inferior): Set attached.
	(handle_query): Implement "monitor exit".
	(handle_query_non_running): New function.
	(handle_v_cont): Report errors.
	(handle_v_attach, handle_v_run): New.
	(handle_v_requests): Handle vAttach and vRun.
	(handle_v_requests_non_running, non_running): New.
	(debug_threads): Add declaration.
	(main): Handle --debug.  Don't adjust attached here.
	Save the argv.  Keep track of requested exits.  Use
	non_running when the target is dead.  Do not always exit
	after detach.  Fix up Hc support.  Do not automatically
	restart the inferior in extended mode.

2006-04-12  Daniel Jacobowitz  <dan@codesourcery.com>

	Backport:
	2006-04-12  Daniel Jacobowitz  <dan@codesourcery.com>
	* remote.c (extended_remote_restart): Pass the correct length
	to getpkt.

	2006-03-30  Daniel Jacobowitz  <dan@codesourcery.com>
	* remote.c (struct remote_state): Add BUF and BUF_SIZE.
	(init_remote_state): Initialize the new fields.
	(get_memory_packet_size): Update BUF and BUF_SIZE if necessary.
	(set_thread, remote_thread_alive, remote_unpack_thread_info_response)
	(remote_get_threadinfo, parse_threadlist_response)
	(remote_get_threadlist, remote_current_thread, remote_threads_info)
	(remote_threads_extra_info, extended_remote_restart, get_offsets)
	(remote_check_symbols, remote_open_1, remote_detach)
	(remove_vcont_probe, remote_vcont_resume, remote_resume)
	(remote_wait, remote_async_wait, fetch_register_using_p)
	(remote_fetch_registers, store_register_using_P)
	(remote_store_registers, check_binary_download, remote_write_bytes)
	(remote_read_bytes, remote_insert_breakpoint)
	(remote_remove_breakpoint, remote_insert_watchpoint)
	(remote_remove_watchpoint, remote_insert_hw_breakpoint)
	(remote_remove_hw_breakpoint, compare_sections_command)
	(remote_xfer_partial, remote_rcmd, packet_command)
	(remote_get_thread_local_address): Use the global incoming buffer
	instead of alloca or xmalloc.  Limit outgoing packets to
	rs->remote_packet_size and incoming packets to rs->buf_size.
	Update calls to getpkt and remote_send.
	(remote_send): Take arguments by reference.
	(putpkt_binary): Eliminate junkbuf.  Use skip_frame.
	(skip_frame): New function.
	(read_frame): Take arguments by reference.  Expand the packet
	buffer instead of issuing an error.
	(getpkt, getpkt_sane): Take arguments by reference.
	* remote.h (getpkt): Update prototype and doc.
	* tracepoint.c (remote_get_noisy_reply): Take arguments by
	reference.
	(target_buf): Change from array to pointer.
	(target_buf_size): New variable.
	(remote_set_transparent_ranges): Update call to getpkt.
	(trace_start_command, trace_stop_command, trace_status_command):
	Update calls to remote_get_noisy_reply.
	(finish_tfind_command): Take arguments by reference.
	(trace_find_command, trace_find_pc_command)
	(trace_find_tracepoint_command, trace_find_line_command):
	(trace_find_range_command, trace_find_outside_command): Update
	calls to finish_tfind_command.
	(_initialize_tracepoint): Initialize target_buf_size and target_buf.

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

	* gdb/breakpoint.c (insert_bp_location, reattach_breakpoints)
	(remove_breakpoint, delete_breakpoint): Update calls to changed
	methods.
	(deprecated_insert_raw_breakpoint, deprecated_remove_raw_breakpoint)
	(single_step_breakpoints, insert_single_step_breakpoint)
	(remove_single_step_breakpoints): New.
	* gdb/breakpoint.h (struct bp_location): Add placed_address and
	placed_size.  Move shadow_contents below the new comment.
	(deprecated_insert_raw_breakpoint, deprecated_remove_raw_breakpoint)
	(insert_single_step_breakpoint, remove_single_step_breakpoints): New
	prototypes.
	* gdb/gdbarch.sh: Forward struct bp_location in gdbarch.h.
	(memory_insert_breakpoint, memory_remove_breakpoint): Update second
	argument.
	* gdb/mem-break.c (default_memory_insert_breakpoint): Update.  Set
	placed_address and placed_size.
	(default_memory_remove_breakpoint): Update.  Don't use
	BREAKPOINT_FROM_PC.
	(memory_insert_breakpoint, memory_remove_breakpoint): Update.
	* gdb/target.c (update_current_target): Update prototypes for changed
	functions.
	(debug_to_insert_breakpoint, debug_to_remove_breakpoint)
	(debug_to_insert_hw_breakpoint, debug_to_remove_hw_breakpoint):
	Update.
	* gdb/target.h: Forward declare struct bp_location.
	(struct target_ops): Use a bp_location argument for
	to_insert_breakpoint, to_remove_breakpoint,
	to_insert_hw_breakpoint, and to_remove_hw_breakpoint.
	(target_insert_breakpoint, target_remove_breakpoint)
	(target_insert_hw_breakpoint, target_remove_hw_breakpoint)
	(memory_insert_breakpoint, memory_remove_breakpoint)
	(default_memory_insert_breakpoint, default_memory_remove_breakpoint):
	Update.
	* gdb/config/i386/nm-i386.h: Forward declare struct bp_location.
	(i386_insert_hw_breakpoint, i386_remove_hw_breakpoint): Update.
	(target_insert_hw_breakpoint, target_remove_hw_breakpoint): Likewise.

	* gdb/gdbarch.c, gdbarch.h: Regenerated.

	* gdb/alpha-tdep.c (alpha_software_single_step): Use
	insert_single_step_breakpoint and remove_single_step_breakpoints.
	Remove unused statics.
	* gdb/arm-tdep.c (arm_software_single_step): Likewise.  Add a note.
	* gdb/cris-tdep.c (cris_software_single_step): Likewise.
	* gdb/mips-tdep.c (mips_software_single_step): Likewise.
	* gdb/rs6000-tdep.c (rs6000_software_single_step): Likewise.
	* gdb/sparc-tdep.c (sparc_software_single_step): Likewise.
	* gdb/wince.c (struct thread_info_struct): Remove step_prev.
	(undoSStep): Use remove_single_step_breakpoints.
	(wince_software_single_step): Use insert_single_step_breakpoint.

	* gdb/corelow.c (ignore): Remove unneeded prototype.  Update second
	argument.
	* gdb/exec.c (ignore): Likewise.
	* gdb/sol-thread.c (ignore): Likewise.

	* gdb/procfs.c (dbx_link_bpt_addr, dbx_link_shadow_contents): Delete.
	(dbx_link_bpt): New.
	(procfs_wait): Check it.
	(procfs_mourn_inferior): Remove it if necessary.
	(remove_dbx_link_breakpoint): Use it.
	(insert_dbx_link_bpt_in_file): Set it.
	(procfs_init_inferior): Don't update dbx_link_bpt_addr.
	* gdb/rs6000-nat.c (exec_one_dummy_insn): Use
	deprecated_insert_raw_breakpoint and
	deprecated_remove_raw_breakpoint.
	* gdb/solib-irix.c (shadow_contents, breakpoint_addr): Delete.
	(base_breakpoint): New.
	(disable_break): Use it.
	(enable_break): Set it.

	* gdb/i386-nat.c (i386_insert_hw_breakpoint, i386_remove_hw_breakpoint):
	Update.
	* gdb/ia64-tdep.c (ia64_memory_insert_breakpoint)
	(ia64_memory_remove_breakpoint): Likewise.
	* gdb/m32r-tdep.c (m32r_memory_insert_breakpoint)
	(m32r_memory_remove_breakpoint): Likewise.
	* gdb/monitor.c (monitor_insert_breakpoint, monitor_remove_breakpoint):
	Likewise.  Remove unnecessary prototypes.  Use placed_address
	and placed_size.  Removed useless read from memory.
	* gdb/nto-procfs.c (procfs_insert_breakpoint)
	(procfs_remove_breakpoint, procfs_insert_hw_breakpoint)
	(procfs_remove_hw_breakpoint): Update.
	* gdb/ocd.c (ocd_insert_breakpoint, ocd_remove_breakpoint): Likewise.
	* gdb/ocd.h (ocd_insert_breakpoint, ocd_remove_breakpoint): Likewise.
	* gdb/ppc-linux-tdep.c (ppc_linux_memory_remove_breakpoint): Likewise.
	* gdb/ppc-tdep.h (ppc_linux_memory_remove_breakpoint): Likewise.
	* gdb/remote-e7000.c (e7000_insert_breakpoint)
	(e7000_remove_breakpoint): Likewise.
	* gdb/remote-m32r-sdi.c (m32r_insert_breakpoint)
	(m32r_remove_breakpoint): Likewise.
	* gdb/remote-mips.c (mips_insert_breakpoint)
	(mips_remove_breakpoint): Likewise.
	* gdb/remote-rdp.c (remote_rdp_insert_breakpoint)
	(remote_rdp_remove_breakpoint): Likewise.
	(rdp_step): Use deprecated_insert_raw_breakpoint and
	deprecated_remove_raw_breakpoint.
	* gdb/remote-sds.c (sds_insert_breakpoint, sds_remove_breakpoint):
	Update.
	* gdb/remote-sim.c (gdbsim_insert_breakpoint, gdbsim_remove_breakpoint):
	Delete.
	(init_gdbsim_ops): Use memory_insert_breakpoint and
	memory_remove_breakpoint.
	* gdb/remote-st.c (st2000_insert_breakpoint)
	(st2000_remove_breakpoint): Update.  Remove unused
	BREAKPOINT_FROM_PC.
	* gdb/remote.c (remote_insert_breakpoint, remote_remove_breakpoint):
	Update.  Use placed_address and placed_size.
	(remote_insert_hw_breakpoint, remote_remove_hw_breakpoint): Likewise.

	* gdb/doc/gdbint.texinfo (Watchpoints, Target Conditionals): Update insert
	and remove breakpoint prototypes.

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

	Backport:
	2006-04-07  Daniel Jacobowitz  <dan@codesourcery.com>
	* remote.c (remote_wait): Convert warning to error before
	parsing corrupt packets.

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

	* bfd/cpu-arm.c (bfd_is_arm_mapping_symbol_name): Accept more
	mapping symbols.

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

	Backport:
	2006-03-09  Paul Brook  <paul@codesourcery.com>
	* bfd/cpu-arm.c (bfd_is_arm_mapping_symbol_name): Recognise additional
	mapping symbols.

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

	* Makefile.def (host_modules, dependencies): Add expat.
	* configure.in (host_libs): Add expat.
	* Makefile.in, configure: Regenerate.
	* expat: New directory.

	* gdb/Makefile.in: Add expat, new files, and xml-builtin.c.  Update
	dependencies.
	* gdb/acinclude.m4: Include stdint.m4.
	* gdb/configure.ac: Use AC_C_BIGENDIAN and GCC_HEADER_STDINT.
	* gdb/aclocal.m4, gdb/config.in, gdb/configure: Regenerate.

	* gdb/auxv.h: Remove target_auxv_read prototype.
	* gdb/auxv.c, gdb/avr-tdep.c, gdb/ia64-tdep.c, gdb/linux-nat.c,
	gdb/procfs.c: Use target_read_whole.
	* gdb/sparc-tdep.c: Use target_read.

	* gdb/frame.c: Work around null frame_id handling.

	* gdb/breakpoint.c, gdb/f-valprint.c, gdb/infcmd.c, gdb/inflow.c,
	gdb/infrun.c, gdb/stack.c, gdb/valops.c, gdb/varobj.c,
	gdb/cli-cmds.c, gdb/testsuite/gdb.base/default.exp,
	gdb/tui/tui-disasm.c, gdb/tui/tui-source.c,
	gdb/tui/tui-winsource.c: Selected frame fixups.

	* gdb/README.AVAIL, gdb/available.c, gdb/available.h,
	gdb/parse-avail.c, gdb/sha1.c, gdb/features/feature_to_c.sh,
	gdb/features/gdb-target.dtd: New files.
	* gdb/arm-tdep.c: Handle missing FPA, present VFP, and
	self-described registers.  Decode VFP register numbers from DWARF.
	* gdb/arm-tdep.h: Add flags for VFP and FPA.
	* gdb/gdbarch.sh: Add available_features_support and feature_set.
	Export the arch's obstack.  Check feature sets.  Improve error
	handling.
	* gdb/gdbarch.c, gdb/gdbarch.h: Regenerated.
	* gdb/infcmd.c: Trigger architecture selection.
	* gdb/remote.c: Available feature support.  qPacketInfo support.
	Improved g/G packet support.  Improved qPart support.
	qPart:features support.
	* gdb/symfile.c: Adjust download_write_size.
	* gdb/target.c: Revise partial transfer support.  Handle available
	features method.  Add target_read_whole.
	* gdb/target.h: Add the available features object and methods.
	* gdb/doc/gdb.texinfo: Document new features.

	* gdb/symfile.h: Include symtab.h.

2006-03-31  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb/config/m68k/monitor.mt (TDEPFILES): Remove unneeded
	monitors.
	(DEPRECATED_TM_FILE): Remove.

	* gdb/m68k-tdep.c (M68K_FPREG_SIZE): Define.
	(REGISTER_BYTES_FP): Use it.

	* gdb/configure.tgt (m68k-*-uclinux*): target is linux.

	* gdb/remote.c (remote_fetch_registers): Revert bogus change.

	* gdb/remote.c (remote_fetch_registers): Don't warn about short
	register packet if we've not set the expected value.

	* gdb/gdbserver/linux-low.c (linux_read_offsets): Remove debugging
	printf.

	* gdb/gdbserver/Makefile.in (reg-cf.o, reg-cf.c): New targets.
	* gdb/gdbserver/configure.srv (m68k*-*-uclinux*): New target.
	* gdb/gdbserver/linux-low.c (linux_create_inferior): Use vfork on
	mmuless systems.
	(linux_resume_one_process): Remove extraneous cast.
	(linux_read_offsets): New.
	(linux_target_op): Add linux_read_offsets on mmuless systems.
	* gdb/gdbserver/server.c (handle_query): Add qOffsets logic.
	* gdb/gdbserver/target.h (struct target_ops): Add read_offsets.

2006-03-30  Mark Mitchell <mark@codesourcery.com>

	* libiberty/configure.ac: Add cygpath for mingw hosts.
	* libiberty/configure: Rebuilt.
	* libiberty/Makefile.in: Add cygpath.
	* libiberty/cygpath.c: New.

2006-03-30  Paul Brook  <paul@codesourcery.com>

	Backport form mainline.
	* gdb/testsuite/gdb.mi/mi-until.exp: kfail broken until command.
	* gdb/testsuite/gdb.mi/mi2-until.exp: Ditto.

2006-03-29  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb/m68k-tdep.c (M68K_FPREG_TYPE, M68K_LONG_DOUBLE_FORMAT,
	M68K_RETURN_FP0): New.  Set for Coldfire.
	(m68k_register_type, m68k_register_to_value,
	m68k_svr4_extract_return_value, m68k_svr4_store_return_value,
	m68k_gdbarch_init): Use them.

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

	* gdb/ser-mingw.c (net_windows_state): Add mutex.
	(net_windows_select_thread): Grab lock around access to
	read_event.
	(net_windows_wait_handle): Do not reset the read_event.
	(net_windows_open): Create a mutex.
	(net_windows_read_prim): New function.
	(_initialize_ser_windows): Use it.

2006-03-20  Mark Mitchell  <mark@codesourcery.com>

	* libiberty/pex-common.c (pex_run): Close the write end of the
	pipe after starting the child.

	* gdb/config/arm/armv7m.mt (TDEPFILES): Add prologue-value.o.

2006-03-21  Paul Brook  <paul@codesourcery.com>
	Daniel Jacobowitz <dan@codesourcery.com>
	Jim Blandy <jimb@codesourcery.com>

	* gdb/Makefile.in: Add prologue_value.{c,h}
	* gdb/arm-tdep.c: Include prologue-value.h.
	(thumb_skip_prologue): Remove.
	(thumb_analyze_prologue): New function.
	(arm_skip_prologue): Use thumb_analyze_prologue.
	(thumb_scan_prologue): Ditto.
	* gdb/prologue-value.c: New file.
	* gdb/prologue-value.h: New file.
	* gdb/config/arm/embed.mt (TDEPFILES): Add prologue-value.o.
	* gdb/config/arm/linux.mt (TDEPFILES): Add prologue-value.o.
	* gdb/config/arm/nbsd.mt (TDEPFILES): Add prologue-value.o.
	* gdb/config/arm/wince.mt (TDEPFILES): Add prologue-value.o.
	* gdb/testsuite/gdb.arch/thumb-prologue.c: New file.
	* gdb/testsuite/gdb.arch/thumb-prologue.exp: New file.

2006-03-20  Mark Mitchell  <mark@codesourcery.com>

	* configure.tgt (arm*-stellaris-*): Use armv7m configuration.
	* config/arm/armv7m.mt: New file.
	* config/arm/tm-armv7m.h: Likewise.
	* arm-tdep.c (arm_register_name_strings): Use xPSR on ARM V7M.
	(arm_pc_is_thumb): ARM V7M is always Thumb.
	(set_disassembly_style): Use xPSR on ARM V7M.
	(arm_write_pc): Do not set T bit in CSPR on V7M.

2006-03-20  Mark Mitchell  <mark@codesourcery.com>

	* libiberty/pex-win32.c (<errno.h>): Include.
	(fix_argv): Remove.
	(argv_to_cmdline): New function.
	(std_suffixes): New variable.
	(no_suffixes): Likewise.
	(find_executable): New function.
	(win32_spawn): Likewise.
	(spawn_script): Use win32_spawn instead of _spawnv[p].
	(pex_win32_exec_child): Replace MSVCRT calls with Win32 API calls.
	(pex_win32_wait): Likewise.

2006-03-19  Mark Mitchell  <mark@codesourcery.com>

	* gdb/ser-mingw.c (free_pipe_state): Close pipe before calling
	pex_free. 

2006-03-17  Mark Mitchell  <mark@codesourcery.com>

	* gdb/config/arm/embed.mt (TDEPFILES): Remove remote-rdp.o.

2006-03-17  Jim Blandy  <jimb@codesourcery.com>

	Add support for 'target remote |' on MinGW.
	* gdb/ser-mingw.c (struct pipe_state): New structure.
	(make_pipe_state, free_pipe_state, cleanup_pipe_state)
	(pipe_windows_open, pipe_windows_close, pipe_windows_read)
	(pipe_windows_write, pipe_wait_handle): New functions.
	(_initialize_ser_windows): Register a "pipe" interface based on
	them.

 	* libiberty/pex-common.c (pex_write_input): New function.
 	* libiberty/pexecute.txh (pex_write_input): Document it.
 	* libiberty/pex-common.h (struct pex_funcs): New function ptr fdopenw.
 	* libiberty/pex-unix.c (pex_unix_fdopenw): New function.
 	(funcs): List it as our fdopenw function.
 	* libiberty/pex-win32.c (pex_win32_fdopenw): New function.
 	(funcs): List it as our fdopenw function.
 	* libiberty/pex-djgpp.c (funcs): Leave fdopenw null.
 	* libiberty/pex-msdos (funcs): Same.
 	* libiberty/functions.texi: Regenerated.

 	* include/libiberty.h (pex_write_input): New declaration.

	* libiberty/pex-common.h (struct pex_obj): Doc fixes.

	* libibery/functions.texi: Regenerate.

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

	* gdb/gdb_proc_service.h (paddr_t): Use psaddr_t if available.
	* gdb/proc-service.c (ps_xfer_memory): Cast paddr_t to unsigned
	long.
	(ps_pglobal_lookup): Cast CORE_ADDR to paddr_t.

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

	* gdb/gdbserver/linux-mips-low.c: Include <sys/ptrace.h> and
	"gdb_proc_service.h".
	(PTRACE_GET_THREAD_AREA): Define.
	(ps_get_thread_area): New function.
	* gdb/gdbserver/Makefile.in (linux-i386-low.o, linux-mips-low.o)
	(linux-x86-64-low.o): Update.

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

	* gdb/gdbserver/configure.ac: Remove checks for prfpregset_t.
	* gdb/gdbserver/gdb_proc_service.h: New file.
	* gdb/gdbserver/linux-i386-low.c, gdb/gdbserver/linux-x86-64-low.c,
	gdb/gdbserver/thread-db.c: Use the new "gdb_proc_service.h".
	* gdb/gdbserver/proc-service.c: Likewise.
	(ps_pglobal_lookup, ps_pdread, ps_pdwrite): Use psaddr_t.
	(ps_lgetfpregs, ps_lsetfpregs): Use a void* argument.
	* gdb/gdbserver/Makefile.in (gdb_proc_service_h): Updated.
	* gdb/gdbserver/configure, config.in: Regenerated.

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

	* gdb/Makefile.in (mips_linux_tdep_h): New.
	(mpis-linux-nat.o, mips-linux-tdep.o): Update.
	* gdb/mips-linux-nat.c: Include "inferior.h", "mips-linux-tdep.h", and
	<sys/ptrace.h>.
	(have_ptrace_regsets, super_fetch_registers, super_store_registers)
	(mips64_linux_regsets_fetch_registers)
	(mips64_linux_regsets_store_registers, mips64_linux_fetch_registers)
	(mips64_linux_store_registers): New.
	(_initialize_mips_linux_nat): Override to_fetch_registers and
	to_store_registers.
	* gdb/mips-linux-tdep.h: New file.
	* gdb/mips-linux-tdep.c: Include "mips-linux-tdep.c".
	(ELF_NGREG, ELF_NFPREG, elf_greg_t, elf_gregset_t, elf_fpreg_t)
	(elf_fpregset_t, FPR_BASE, PC, CAUSE, BADVADDR, MMHI, MMLO)
	(FPC_CSR, FPC_EIR, EF_REG0, EF_REG31, EF_LO, EF_HI, EF_CP0_EPC)
	(EF_CP0_BADVADDR, EF_CP0_STATUS, EF_CP0_CAUSE, EF_SIZE)
	(MIPS64_ELF_NGREG, MIPS64_ELF_NFPREG, mips64_elf_greg_t)
	(mips64_elf_gregset_t, mips64_elf_fpreg_t, mips64_elf_fpregset_t)
	(MIPS64_FPR_BASE, MIPS64_PC, MIPS64_CAUSE, MIPS64_BADVADDR)
	(MIPS64_MMHI, MIPS64_MMLO, MIPS64_FPC_CSR, MIPS64_FPC_EIR)
	(MIPS64_EF_REG0, MIPS64_EF_REG31, MIPS64_EF_LO, MIPS64_EF_HI)
	(MIPS64_EF_CP0_EPC, MIPS64_EF_CP0_BADVADDR, MIPS64_EF_CP0_STATUS)
	(MIPS64_EF_CP0_CAUSE, MIPS64_EF_SIZE): Delete.
	(supply_32bit_reg): Use gdb_byte.
	(supply_64bit_reg): New.
	(mips_supply_gregset, mips_fill_gregset, mips_supply_fpregset)
	(mips_fill_fpregset, fetch_core_registers, supply_gregset)
	(fill_gregset, supply_fpregset): Update for renamed types.
	(mips64_supply_gregset): Use gdb_byte and supply_64bit_reg.
	(mips64_fill_gregset): Make global.  Handle 32-bit register
	sizes.
	(mips64_fill_fpregset): Make global.  Use gdb_byte.  Handle
	FP regsets properly.

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

	* gdb/mips-linux-tdep.c (mips_supply_gregset): Renamed from supply_gregset.
	(mips_fill_gregset): Renamed from fill_gregset.
	(mips_supply_fpregset): Renamed from supply_fpregset.
	(mips_fill_fpregset): Renamed from fill_fpregset.
	(fetch_core_registers): Update calls.
	(supply_gregset, fill_gregset, supply_fpregset, fill_fpregset): New
	functions.

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

	* gdb/mips-tdep.c (mips_gdbarch_init): Default 64-bit ELF files to N64.

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

	* gdb/mips-tdep.c (is_mips16_addr, mips32_next_pc, add_offset_16):
	Correct arithmetic for 64-bit CORE_ADDR.

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

	* gdb/mips-linux-tdep.c: Include "floatformat.h".
	(mips_linux_init_abi): Use 128-bit long double for N32 and N64.
	(mips_n32n64_return_value): Support 128-bit long double.
	(print_gp_register_row): Don't print spaces before ignored
	or floating point registers.

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

	* gdb/mips-mdebug-tdep.c (compare_pdr_entries): Use bfd_get_signed_32
	for code addresses.
	(non_heuristic_proc_desc): Likewise.

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

	* gdb/mips-linux-nat.c: Include "gdb_proc_service.h".
	(PTRACE_GET_THREAD_AREA): Define.
	(ps_get_thread_area): New.
	* gdb/Makefile.in (mips-linux-nat.o): Update.

2006-03-08  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	* gdb/arm-tdep.c (arm_push_dummy_call): Remove stack alignment.
	(arm_frame_align): New function.
	(arm_gdbarch_init): Use it.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	* gdb/testsuite/gdb.base/assign.exp: Correct fail message.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	* sim/arm/elfos.c (ARMul_OSHandleSWI): Call correct function for IsTTY.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	* gdb/testsuite/lib/compiler.c: Extract armcc version number.
	* gdb/testsuite/lib/compiler.cc: Ditto.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	2006-03-03  Khem Raj <khem@mvista.com>
	* remote-rdp.c (remote_rdp_xfer_inferior_memory): Use gdb_byte.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	* gdb.arch/altivec-abi.exp: Use nowarnings instead of
	additional_flags=-w.
	* gdb.arch/altivec-regs.exp: Ditto.
	* gdb.arch/e500-abi.exp: Ditto.
	* gdb.arch/e500-regs.exp: Ditto.
	* gdb.base/all-bin.exp: Ditto.
	* gdb.base/annota1.exp: Ditto.
	* gdb.base/annota3.exp: Ditto.
	* gdb.base/args.exp: Ditto.
	* gdb.base/arithmet.exp: Ditto.
	* gdb.base/assign.exp: Ditto.
	* gdb.base/async.exp: Ditto.
	* gdb.base/bang.exp: Ditto.
	* gdb.base/break.exp: Ditto.
	* gdb.base/call-rt-st.exp: Ditto.
	* gdb.base/completion.exp: Ditto.
	* gdb.base/cond-expr.exp: Ditto.
	* gdb.base/condbreak.exp: Ditto.
	* gdb.base/consecutive.exp: Ditto.
	* gdb.base/define.exp: Ditto.
	* gdb.base/display.exp: Ditto.
	* gdb.base/ena-dis-br.exp: Ditto.
	* gdb.base/environ.exp: Ditto.
	* gdb.base/eval-skip.exp: Ditto.
	* gdb.base/info-proc.exp: Ditto.
	* gdb.base/jump.exp: Ditto.
	* gdb.base/logical.exp: Ditto.
	* gdb.base/long_long.exp: Ditto.
	* gdb.base/maint.exp: Ditto.
	* gdb.base/miscexprs.exp: Ditto.
	* gdb.base/pc-fp.exp: Ditto.
	* gdb.base/pointers.exp: Ditto.
	* gdb.base/relational.exp: Ditto.
	* gdb.base/reread.exp: Ditto.
	* gdb.base/sect-cmd.exp: Ditto.
	* gdb.base/sep.exp: Ditto.
	* gdb.base/sepdebug.exp: Ditto.
	* gdb.base/until.exp: Ditto.
	* gdb.base/whatis-exp.exp: Ditto.
	* gdb.cp/annota2.exp: Ditto.
	* gdb.cp/annota3.exp: Ditto.
	* gdb.trace/actions.exp: Ditto.
	* gdb.trace/backtrace.exp: Ditto.
	* gdb.trace/circ.exp: Ditto.
	* gdb.trace/collection.exp: Ditto.
	* gdb.trace/deltrace.exp: Ditto.
	* gdb.trace/infotrace.exp: Ditto.
	* gdb.trace/limits.exp: Ditto.
	* gdb.trace/packetlen.exp: Ditto.
	* gdb.trace/passc-dyn.exp: Ditto.
	* gdb.trace/passcount.exp: Ditto.
	* gdb.trace/report.exp: Ditto.
	* gdb.trace/save-trace.exp: Ditto.
	* gdb.trace/tfind.exp: Ditto.
	* gdb.trace/tracecmd.exp: Ditto.
	* gdb.trace/while-dyn.exp: Ditto.
	* gdb.trace/while-stepping.exp: Ditto.
	* lib/gdb.exp: Ditto.
	(gdb_compile): Handle nowarning option.

