summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Blandy <jimb@redhat.com>2004-10-29 23:35:13 +0000
committerJim Blandy <jimb@redhat.com>2004-10-29 23:35:13 +0000
commit00a53316dbb20d05a4dc457b6305a6cea6a1920e (patch)
treecdfbd20efdaab599c3dfa040324b1f4b59d7ee75
parentb6ef9c84c791cbf22d0d9614326b350aab4a138f (diff)
downloadgdb-00a53316dbb20d05a4dc457b6305a6cea6a1920e.tar.gz
* Makefile.am (AM_CFLAGS): Add '-Wall'.
* Makefile.in: Update.
-rw-r--r--rda/unix/ChangeLog1303
-rw-r--r--rda/unix/Makefile.am17
-rw-r--r--rda/unix/Makefile.in332
3 files changed, 1652 insertions, 0 deletions
diff --git a/rda/unix/ChangeLog b/rda/unix/ChangeLog
new file mode 100644
index 00000000000..b788f332c10
--- /dev/null
+++ b/rda/unix/ChangeLog
@@ -0,0 +1,1303 @@
+2004-10-29 Jim Blandy <jimb@redhat.com>
+
+ * Makefile.am (AM_CFLAGS): Add '-Wall'.
+ * Makefile.in: Update.
+
+2004-10-26 Jim Blandy <jimb@redhat.com>
+
+ Add an architecture object to the Unix server.
+ * arch.h: New header file.
+ * server.h (struct arch): New forward struct declaration.
+ (struct child_process): Add an 'arch' member to the process.
+ * thread-db.c: #include arch.h.
+ * linux-target.c: #include arch.h.
+ (allocate_empty_arch): New function.
+ (x86_make_arch): New function.
+ (MAKE_ARCH): New #definition.
+ (linux_attach): Initialize process's architecture.
+
+ Provide arch-independent framework for breakpoints.
+ * server.h (struct arch_bp_table): New forward struct declaration.
+ (struct child_process): New member: 'breakpoint_table'.
+ * linux-target.c (linux_attach): Initialize process's breakpoint
+ table, if the architecture defines a breakpoint table constructor.
+ * arch.h (struct arch): Add fields pointing to breakpoint functions.
+
+ Provide a module implementing breakpoints for architectures that
+ support a simple software breakpoint model ("patch these bytes
+ into the instruction stream").
+ * stock-breakpoints.h, stock-breakpoints.c: New files.
+ * linux-target.c: If STOCK_BREAKPOINTS is #defined, then #include
+ "stock-breakpoints.h".
+ * Makefile.am (EXTRA_rda_SOURCES): Add stock-breakpoints.c.
+ * Makefile.in: Updated.
+
+ Define x86 breakpoint functions using the stock-breakpoints.c
+ model.
+ * configure.in: When configuring for an x86 target, include
+ stock-breakpoints.o in the mix, and #define STOCK_BREAKPOINTS.
+ * configure: Regenerated.
+ * config.in (STOCK_BREAKPOINTS): Provide #definition template.
+ * linux-target.c (stock_table_to_x86, x86_table_to_stock,
+ stock_bp_to_x86, x86_bp_to_stock, x86_make_bp_table, x86_set_bp,
+ x86_delete_bp, x86_bp_hit_p): New functions.
+ (x86_make_arch): Register the latter four as our breakpoint
+ methods.
+
+ Use the libthread_db event interface to communicate with the
+ thread library, if the old signal-based interface is not
+ supported.
+ * thread-db.c: #include <assert.h>.
+ (thread_db_event_str): New function.
+ (get_target_int_by_name, set_target_int_by_name, get_thread_signals)
+ (cancel_signal, restart_signal, debug_signal): Move these to just
+ before thread_db_dlopen; get_thread_signals is a subroutine of that.
+ (using_thread_db_events, create_notification, death_notification,
+ create_event_breakpoint, death_event_breakpoint): New global vars.
+ (get_event_notification, set_event_breakpoint)
+ (insert_thread_db_event_breakpoints)
+ (delete_thread_db_event_breakpoints, request_thread_db_events)
+ (hit_thread_db_event_breakpoint): New functions.
+ (thread_db_open): Call get_thread_signals, and if that fails, call
+ request_thread_db_events.
+ (struct event_list): Add 'thread_db_event' member.
+ (add_pending_event): Initialize it.
+ (delete_pending_event, handle_thread_db_events): New functions.
+ (find_new_threads_callback): If we're using the event interface,
+ enable event reporting on each new thread we find.
+ (select_pending_event): Return a value to indicate whether we
+ selected any event at all.
+ (continue_all_threads): Send a restart signal only if we're using
+ the signal-based interface.
+ (thread_db_check_child_state): If we're using the libthread_db
+ event interface to communicate with the inferior thread library,
+ check for those events here. If select_pending_event says it
+ didn't find anything interesting, that means we consumed all the
+ reportable events; continue the program silently.
+ * ptrace-target.c: #include <sys/types.h> and <linux/unistd.h>.
+ (tkill): Generate code for this syscall.
+ (stop_lwp): Use tkill instead of kill.
+
+ * thread-db.c (thread_db_check_child_state): Call stop_all_threads
+ before calling update_thread_list, so RDA will have to compete for
+ CPU with fewer running threads.
+
+ * thread-db.c (wait_all_threads): Move calls to
+ select_pending_event and send_pending_signals from here...
+ (thread_db_check_child_state): To here.
+
+ * thread-db.c (ignore_thread_signal): New function.
+ (thread_db_check_child_state): Call it, instead of writing it out.
+
+ * thread-db.c (thread_db_open): Return 0 on success, -1 on
+ failure, like most of the other int-valued functions in this file,
+ and like most system calls.
+
+ * thread-db.c (struct gdbserv_thread): Doc fixes.
+
+ * thread-db.c: #include "gdbserv-utils.h", to get prototypes for
+ the 'struct gdbserv_reg' manipulation functions.
+
+ * thread-db.c (thread_db_noisy): Initialize to 1.
+
+ * thread-db.c (thread_debug_name): New function.
+ (find_new_threads_callback): If noisy, report new threads.
+ (stop_thread): If noisy, report stopping threads.
+ (select_pending_event): If noisy, report what we selected.
+ (wait_all_threads): If noisy, report before each thread we wait
+ for.
+
+ * thread-db.c (stop_all_threads): Doc fixes.
+
+ * aclocal.m4: Regenerated.
+
+2004-10-20 Jim Blandy <jimb@redhat.com>
+
+ Use the libthread_db 'td_symbol_list' function to look up all the
+ symbols libthread_db will need when invited to by GDB.
+ * thread-db.c (add_symbol_to_list): Make 'name' argument const.
+ (td_symbol_list_p): New libthread_db function pointer.
+ (thread_db_dlopen): Initialize it.
+ (thread_db_attach): Use td_symbol_list to pre-load our symbol
+ cache with the names of all the symbols libthread_db will ever
+ request.
+
+ * thread-db.c (thread_db_get_gen): There's no reason to try to
+ open a thread agent until we've at least requested values for all
+ the symbols we know about.
+
+ * server.c (usage): Don't include the entire pathname in the usage
+ message.
+
+2004-10-19 Jim Blandy <jimb@redhat.com>
+
+ * thread-db.c (get_thread_signals): Doc fix.
+
+ * thread-db.c (enum symbol_cache_defined): Move this definition
+ above that of (struct symbol_cache), and give it a name.
+ (struct symbol_cache): Use that enum as the type of 'defined_p', so
+ the debugger will print symbol cache entries more helpfully.
+
+ * ptrace-target.c (ptrace_create_child): Don't use sys_nerr to
+ check that errno is in a valid range. The use sys_nerr is
+ deprecated on GNU/Linux, and according to the ISO C standard and
+ POSIX, strerror always returns a valid string, even for invalid
+ errno codes.
+
+2004-10-07 Jim Blandy <jimb@redhat.com>
+
+ * Makefile.am (rda_DEPENDENCIES): Add ../lib/librda.la.
+ * Makefile.in: Regenerated.
+
+ * server.c (main): Check for an error return from
+ gdbsocket_startup.
+
+2004-09-22 Jim Blandy <jimb@theseus.home>
+
+ * thread-db.c (thread_db_open, thread_db_get_gen): Doc fixes.
+
+ * thread-db.c (thread_db_detach, thread_db_set_gen,
+ thread_db_thread_id): Make these functions static.
+
+2004-09-13 Jim Blandy <jimb@theseus.home>
+
+ * solaris-target.c (solaris_detach, solaris_attach): Change
+ "linux" to "solaris".
+
+2004-08-11 Corinna Vinschen <vinschen@redhat.com>
+
+ * linux-target.c (linux_write_reg): Print process->pid in case of
+ an error.
+
+2004-07-19 Kevin Buettner <kevinb@redhat.com>
+
+ * server.c (main): Set ``server_quit_p'' when debugged process
+ exits or terminates.
+
+2004-06-03 Kevin Buettner <kevinb@redhat.com>
+
+ * server.c (main): Ensure that thread related realtime signals
+ are ignored.
+
+2004-04-20 Kevin Buettner <kevinb@redhat.com>
+
+ * thread-db.c (lookup_sym): New function.
+ (thread_db_open): Print diagnostic message for failed dlopen()
+ call. Call lookup_sym() which will print diagnostic for failed
+ dlsym() call.
+
+2004-04-20 Kevin Buettner <kevinb@redhat.com>
+
+ * server.c (main): Ignore realtime signals.
+
+2004-04-05 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (reginfo) [FRV_LINUX_TARGET]: Add support for
+ registers fsr0, acc0-acc7, accg0-accg7, msr0, msr1, gner0, gner1,
+ fner0, and fner1.
+
+2004-03-19 Kevin Buettner <kevinb@redhat.com>
+
+ * ptrace-target.c (ptrace_exit_program): Cause main loop to exit.
+ * server.c (sys/types.h, sys/stat.h, fcntl.h, string.h, unistd.h)
+ (ctype.h, termios.h): Include.
+ (close_device, tty_raw, invalid_speed, parse_speed): New functions.
+ (speed_table): New static global.
+ (usage): Update usage message.
+ (main): Add support for connecting to serial devices.
+
+2004-03-10 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (enum regset): Add constant OTHERREGS.
+ (struct peekuser_pokeuser_reginfo): Add new field,
+ alternate_register_read_write_method. Adjust all initializers
+ accordingly.
+ (frv_fdpic_loadmap_addresses): New function.
+ (PTRACE_GETFDPIC, PTRACE_GETFDPIC_EXEC, PTRACE_GETFDPIC_INTERP):
+ Define.
+ (reginfo) [FRV_LINUX_TARGET]: Use slots 132 and 133 for the
+ loadmap registers.
+
+2004-03-10 Kevin Buettner <kevinb@redhat.com>
+
+ * configure.in: Add "frv*linux*" to list of targets with thread
+ support.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate using "automake --cygnus --ignore-deps".
+
+2004-03-10 Kevin Buettner <kevinb@redhat.com>
+
+ * ptrace-target.c (ptrace_create_child): Use vfork() instead of
+ fork(). Use PTRACE_ATTACH to attach to an existing process.
+ * server.c (usage): Update to include text about "-a".
+ (main): Allow use of -a switch to attach to an existing process.
+
+2003-11-14 Kevin Buettner <kevinb@redhat.com>
+
+ * config.in (FRV_LINUX_TARGET): Add.
+ * configure.in (sys/user.h): Don't check for this header; it's
+ not used.
+ (frv*linux*): Add rudimentary support for FR-V Linux.
+ * linux-target.c (PEEKUSER_POKEUSER_REGINFO, NUM_REGS, PC_REGNUM)
+ (sign_extend, greg_offset_and_size, fpreg_offset_and_size)
+ (noreg_offset_and_size, reginfo) [FRV_LINUX_TARGET]: Define.
+ * configure, Makefile.in: Regenerate.
+
+2003-09-10 Kevin Buettner <kevinb@redhat.com>
+
+ From Jimi Xenidis <jimix@watson.ibm.com>:
+ * linux-target.c (reginfo): The MQ register is for IBM POWER
+ (pre-PowerPC) architecture, and is undefined in PPC GNU/Linux
+ environment.
+
+2003-05-09 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (mips_singlestep): Don't any consider cop0 or cop1x
+ instructions to be conditional branches. Expand set of cop1
+ opcodes considered to be conditional branches.
+
+2003-05-08 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (mips_singlestep): Don't interpret all coprocessor
+ instructions as conditional branches.
+
+2003-04-10 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (NUM_REGS) [MIPS_LINUX_TARGET, MIPS64_LINUX_TARGET]:
+ Bump to 72.
+ (struct peekuser_pokeuser_reginfo) [MIPS_LINUX_TARGET]: Use
+ PROTO_SIZE for ``bad'' and ``cause''.
+ (struct peekuser_pokeuser_reginfo) [MIPS_LINUX_TARGET]
+ [MIPS64_LINUX_TARGET]: Add ``fir'' register.
+
+2003-02-07 Kevin Buettner <kevinb@redhat.com>
+
+ * gdbserv-thread-db.h (singlestep_lwp): Add ``struct gdbserv *''
+ argument. Adjust all callers.
+ (mips_singlestep) [MIPS_LINUX_TARGET, MIPS64_LINUX_TARGET]: New
+ function.
+ * linux-target.c (reginfo) [MIPS64_LINUX_TARGET]: Adjust some
+ of the fpregset/gregset related constants in this table.
+ (mips_get_reg): Add ``struct gdbserv *'' argument. Adjust all
+ callers.
+ (mips_addr_as_reg, mips_peek_instruction, mips_poke_instruction):
+ New functions.
+ (mips_singlestep_program): Move bulk of implementation to and call...
+ (mips_singlestep): ...new function. This new function no longer
+ makes any direct PTRACE_PEEKTEXT or PTRACE_POKETEXT operations.
+ Shadow breakpoint information is also stored in a slightly different
+ format.
+ * ptrace-target.c (server.h, ptrace-target.h): Adjust location
+ of #include statements so that gdbserv.h is included first.
+ (handle_waitstatus): Call ptrace_set_mem() instead of invoking
+ ptrace() directly. Also adjust code to use somewhat different
+ shadow breakpoint structs.
+ (ptrace_set_mem, ptrace_get_mem): Remove ``static'' qualifier
+ from function declarators.
+ (singlestep_lwp): Add ``struct gdbserv *'' argument.
+ * ptrace-target.h (ptrace_get_mem, ptrace_set_mem): Declare.
+ * server.c (gdbserv.h): Include.
+ * server.h (struct ss_save): Add field ``in_use''. Change
+ type of field ``ss_addr'' to struct ``gdbserv_reg''.
+ * thread-db.c (wait_all_threads): Revise diagnostic message to
+ print signal number for SIGDEBUG signal.
+ (singlestep_thread): Add ``struct gdbserv *'' argument. Adjust
+ all callers.
+
+2003-01-22 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (struct peekuser_pokeuser_reginfo)
+ [MIPS64_LINUX_TARGET, MIPS_LINUX_TARGET]: Disable registers ``cause''
+ and ``bad'' since they are not writable via ptrace().
+
+2003-01-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * linux-target.c: Don't assume asm-mips/ is available, use just
+ asm instead.
+
+2003-01-17 Kevin Buettner <kevinb@redhat.com>
+
+ * configure.in (mips64*linux*n64, mips64*linux*n32, mips64*linux*o32):
+ Remove cases. Instead, use compiler's preprocessor symbols to test
+ which ABI is being used.
+ * configure: Regenerate.
+
+2003-01-16 Kevin Buettner <kevinb@redhat.com>
+
+ * config.in (LIBTHREAD_DB_SO): New macro.
+ * configure.in (mips64*linux*): Remove no-threads.o from
+ TARGET_MODULES list. Add thread-db.o to this list.
+ * configure: Regenerate.
+
+2003-01-10 Kevin Buettner <kevinb@redhat.com>
+
+ * Makefile.in: Regenerate using "automake --cygnus --ignore-deps".
+ Someday, when ``depcomp'' is added to the top level, the
+ --ignore-deps flag can be discarded.
+
+2002-12-18 Kevin Buettner <kevinb@redhat.com>
+
+ * ptrace-target.h, ptrace-target.c (ptrace_write_user)
+ (ptrace_read_user): Add struct gdbserv argument.
+ * linux-target.c: Fix all callers.
+ * ptrace-target.c (ptrace_write_user, ptrace_read_user): Add
+ debugging printf()s.
+ (ptrace_xfer_mem): Fix debugging printf()s so that they'll print
+ useful results when sizeof (long long) is the same as
+ sizeof (ptrace_xfer_type).
+ (ptrace_xfer_mem): Decode address using gdbserv_host_bytes_from_reg()
+ instead of gdbserv_reg_to_ulong().
+
+2002-12-02 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (linux_get_reg, linux_set_reg, reg_from_regset)
+ (reg_to_regset, get_regset, put_regset reg_from_gregset)
+ (reg_to_gregset, reg_from_fpregset, reg_to_fpregset)
+ (reg_from_xregset, reg_to_xregset): Adjust all calls to
+ gdbserv_host_bytes_to_reg() and gdbserv_host_bytes_from_reg()
+ to account for change in interface. Remove code which is
+ no longer needed due to improvements in the aforementioned
+ functions.
+ (sign_extend): New constant.
+ (FPR_BASE, PC, CAUSE, BADVADDR, MMHI, MMLO, FPC_CSR, FPC_EIR):
+ Make sure these are defined.
+ (PROTO_SIZE): Define.
+ (reginfo) [MIPS_LINUX_TARGET]: Use PROTO_SIZE to initialize
+ table with size (width) of registers to use when communicating
+ with the client.
+ (NUM_REGS, PC_REGNUM, reginfo) [MIPS64_LINUX_TARGET]: Define.
+
+2002-11-19 Michael Snyder <msnyder@redhat.com>
+
+ * ptrace-target.c: Fix typo in copyright.
+
+2002-08-23 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (linux_get_reg, linux_set_reg): Print an
+ error message for out of bound registers.
+
+2002-08-23 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (NUM_REGS) [X86_LINUX_TARGET]: Bump to 42.
+ (getregs_setregs_reginfo) [X86_LINUX_TARGET]: Add entry for
+ register ``orig_eax''.
+ (linux_get_reg, linux_set_reg): Make sure ``regno'' value is valid.
+ (linux_detach, linux_attach, decr_pc_after_break): Call fprintf()
+ instead of printf().
+ (linux_detach, linux_attach): Don't always print informational
+ messages.
+ * ptrace-target.c (handle_waitstatus, ptrace_detach, ptrace_attach):
+ Don't always print informational messages. Use fprintf() instead
+ of printf().
+ (noop_get_trap_number, noop_compute_signal, noop_exit_program)
+ (noop_signlestep_program, noop_break_program): Delete.
+ (ptrace_flush_i_cache): Renamed from noop_flush_i_cache. Update
+ reference in ptrace_attach().
+ (continue_lwp, singlestep_lwp, attach_lwp, stop_lwp, ps_pstop)
+ (ps_continue, ps_lstop): Use fprintf() instead of printf().
+ * server.c (errno.h): Include.
+ (usage): New function.
+ (main): Add option processing code.
+ * server.h (struct child_process): Add new field,
+ ``debug_informational''.
+ * thread-db.c (ps_plog, select_pending_event, send_pending_signals)
+ (wait_all_threads, thread_db_check_child_state): Use fprintf()
+ instead of printf().
+ (thread_db_detach): Conditionally print informational messages.
+ Use fprintf() instead of printf().
+
+2002-08-21 Kevin Buettner <kevinb@redhat.com>
+
+ * Makefile.am, configure.in, dummy-target.c, linux-target.c,
+ ptrace-target.c, ptrace-target.h, server.h, solaris-target.c,
+ thread-db.c: Change ``libremote'' references into ``RDA''
+ references.
+ * Makefile.in, configure: Regenerate.
+
+2002-08-15 Kevin Buettner <kevinb@redhat.com>
+
+ * dummy-target.c, gdb_proc_service.h, gdbserv-thread-db.h,
+ linux-target.c, no-threads.c, ptrace-target.c,
+ ptrace-target.h, server.c, server.h, solaris-target.c,
+ thread-db.c: Update copyright notices.
+
+2002-05-16 Kevin Buettner <kevinb@redhat.com>
+
+ * config.in (GREGSET_T): Renamed from GDB_GREGSET_T.
+ (FPREGSET_T): Renamed from GDB_FPREGSET_T.
+ * configure.in: Likewise.
+ * gdbserv-thread-db.h: Likewise.
+ * linux-target.c: Likewise.
+ * thread-db.c: Likewise.
+ * gdb_proc_service.h: Remove everything that's not absolutely
+ needed.
+
+2002-02-01 Kevin Buettner <kevinb@redhat.com>
+
+ * configure.in (arm32): Change to ``yes''.
+ * configure: Regenerate.
+
+2002-01-30 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (linux_get_reg) [GETREGS_SETREGS_REGINFO]: Add
+ NOREGS support.
+ (linux_set_reg) [GETREGS_SETREGS_REGINFO]: Likewise.
+
+2002-01-28 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (write_reg_bytes): Print return status in
+ ptrace failure message.
+ * ptrace-target.c (ptrace_write_user): Enable existing
+ Linux/MIPS related kernel bug workaround when MIPS_LINUX_TARGET
+ is defined (which is in addition to _MIPSEL).
+
+2002-01-28 Kevin Buettner <kevinb@redhat.com>
+
+ * thread-db.c (struct regset_cache): New struct declaration.
+ (thread_db_map_id2thr_cache_valid, fpregset_cache, gregset_cache):
+ New static globals.
+ (thread_db_map_id2thr, thread_db_invalidate_map_id2thr_cache)
+ (initialize_regset_cache, initialize_regset_caches)
+ (thread_db_flush_regset_cache, thread_db_flush_regset_caches)
+ (thread_db_get_regset, thread_db_set_regset)
+ (thread_db_invalidate_regset_cache, thread_db_invalidate_regset_caches)
+ (thread_db_invalidate_caches, thread_db_getfpregs)
+ (thread_db_set_fpregs, thread_db_getgregs, thread_db_setgregs)
+ (td_thr_getfpregs_wrapper, td_thr_getgregs_wrapper)
+ (td_thr_setfpregs_wrapper, td_thr_setgregs_wrapper):
+ New functions.
+ (update_thread_list, thread_db_get_thread_reg)
+ (thread_db_set_thread_reg): Call thread_db_map_id2thr() instead of
+ td_ta_map_id2thr_p().
+ (thread_db_get_thread_reg): Call thread_db_getfpregs() instead
+ of td_thr_getfpregs_p(). Call thread_db_getgregs() instead of
+ td_thr_getgregs_p().
+ (thread_db_set_thread_reg): Likewise. Also, call
+ thread_db_setfpregs() instead of td_thr_setfpregs_p() and
+ call thread_db_setgregs() instead of td_thr_setgregs_p().
+ (continue_thread, thread_db_continue_program)
+ (thread_db_singlestep_program, thread_db_continue_thread)
+ (singlestep_thread): Call thread_db_flush_regset_caches() at
+ beginning of function and thread_db_invalidate_caches() at
+ end of function.
+ (thread_db_attach): Initialize regset caches.
+
+2002-01-15 Kevin Buettner <kevinb@redhat.com>
+
+ * config.in (Generated automatically comment): Revise to note
+ that this file was generated automatically at one time, but is
+ no longer.
+ (LINUX_TARGET, SOLARIS_TARGET): Fix comments.
+ (MIPS_LINUX_TARGET): Add.
+ * configure.in (i?86*linux*, powerpc*linux*, arm*linux*, mips*linux*):
+ Eliminate unnecessary duplication.
+ (mips*linux*): Target is MIPS_LINUX_TARGET, not SH_LINUX_TARGET.
+ * gdbserv-thread-db.h (is_gp_reg): New function.
+ (is_fp_reg, is_extended_reg): Revise comments.
+ * linux-target.c (enum regset): Add new constant NOREGS.
+ (is_gp_reg): New function.
+ (PEEKUSER_POKEUSER_REGINFO) [MIPS_LINUX_TARGET]: Define.
+ (SIZEOF_REGMAP, SIZEOF_MAPPEDREG) [MIPS_LINUX_TARGET]: Delete.
+ (NUM_REGS) [MIPS_LINUX_TARGET]: Change from 38 to 70 to account
+ for addition of floating point support.
+ (regmap) [MIPS_LINUX_TARGET]: Delete this array.
+ (is_fp_reg, is_extended_reg) [MIPS_LINUX_TARGET]: Delete.
+ (reginfo) [MIPS_LINUX_TARGET]: Define.
+ (DEBUG): Delete this macro definition.
+ (disp_gdb_mesg, ptrace_get_mem, ptrace_set_mem): Delete function
+ declarations.
+ (linux_get_reg, linux_set_reg) [PEEKUSER_POKEUSER_REGINFO]: Add
+ NOREGS support.
+ (put_regset) [PEEKUSER_POKEUSER_REGINFO]: Add missing return
+ statement.
+ (mips_get_reg): Use read_reg_bytes() to fetch the register.
+ (mips_singlestep_program): Eliminate unused variables ``u_regs_base'',
+ ``temp_reg''. Fix fprintf related format warning.
+ * ptrace-target.h (ptrace_check_child_state): Declare.
+ * thread-db.c (thread_db_get_thread_reg, thread_db_set_thread_reg):
+ Handle case of target not supporting one or more registers.
+
+2001-10-15 Kevin Buettner <kevinb@redhat.com>
+
+ * gdbserv-thread-db.h (is_extended_reg, reg_to_xregset)
+ (reg_from_xregset): New functions.
+ (debug_get_pc, decr_pc_after_break): Add declaration.
+ * linux-target.c (sys/procfs.h): Include.
+ (MAX_REG_SIZE): New anonymous enum constant.
+ (enum regset): New enum.
+ (getregs_setregs_reginfo, peekuser_pokeuser_reginfo): New structs.
+ (offsetof, fieldsize): New macros.
+ (ARM_LINUX_TARGET, X86_LINUX_TARGET, PPC_LINUX_TARGET): Deleted
+ old data structures defining register maps for these registers.
+ Replaced with new tables using either getregs_setregs_reginfo
+ or peekuser_pokeuser_reginfo structs. Other architectures
+ remain the same, though reoranized somewhat.
+ (linux_next_gg_reg, linux_gg_reg_nr): Revise comments. Use
+ NUM_REGS instead of NUM_G_PACKET_REGS.
+ (get_xregsetsize): New function.
+ (linux_reg_format, linux_sizeof_reg, is_fp_reg, is_extended_reg)
+ [PEEKUSER_POKEUSER_REGINFO, GETREGS_SETREGS_REGINFO]: New functions.
+ (read_reg_bytes, write_reg_bytes, debug_get_reg, debug_get_pc)
+ (linux_get_reg, linux_set_reg, reg_from_regset, reg_to_regset)
+ (reg_from_gregset, reg_to_gregset, reg_from_fpregset, reg_to_fpregset)
+ (reg_from_xregset, reg_to_xregset, get_regset, put_regset, get_gregset)
+ (put_gregset, get_fpregset, put_fpregset, get_xregset, put_xregset)
+ [PEEKUSER_POKEUSER_REGINFO]: New functions.
+ (read_reg_as_ulong, write_reg_as_ulong, debug_get_reg, debug_get_pc)
+ (linux_get_reg, linux_set_reg, regs_from_gregset, regs_to_gregset)
+ (reg_from_fpregset, reg_to_fpregset, reg_from_xregset, reg_to_xregset)
+ (get_gregset, put_gregset, get_fpregset, put_fpregset, get_xregset)
+ (put_xregset) [GETREGS_SETREGS_REGINFO]: New functions.
+ (linux_process_get_regs, linux_process_get_reg, linux_process_set_reg)
+ (linux_process_set_regs, ppc_linux_process_set_reg)
+ (ppc_linux_process_get_reg, ppc_linux_process_set_regs)
+ (ppc_linux_process_get_regs): Deleted.
+ (linux_attach): Reorganize initializations.
+ (generic_linux_set_reg): Renamed to linux_set_reg.
+ (generic_linux_get_reg): Renamed to linux_get_reg.
+ (generic_linux_sizeof_reg): Renamed to linux_sizeof_reg.
+ (generic_linux_gg_reg_nr): Renamed to linux_gg_reg_nr.
+ (generic_linux_next_gg_reg): Renamed to linux_next_gg_reg.
+ (generic_linux_reg_format): Renamed to linux_reg_format.
+ (decr_pc_after_break): Consolidated versions of this function
+ down to two; one for x86 and one for everything else. Also,
+ add ``serv'' parameter and fix all callers.
+ (debug_get_pc, debug_get_reg): Now only three versions of
+ this function, one for PEEKUSER_POKEUSER_REGINFO code,
+ one for GETREGS_SETREGS_REGINFO code, and one for legacy
+ code. Also, debug_get_pc() now takes a ``serv'' parameter.
+ Fixed all callers.
+ (ps_lgetregs): Use new get_gregset() interface.
+ (ps_lsetregs): Use new put_gregset() interface.
+ (ps_lgetfpregs, ps_lsetfpregs, ps_lgetxregsize, ps_lgetxregs)
+ (ps_lsetxregs): Implement.
+ * ptrace-target.c (ptrace_read_user, ptrace_write_user): Make
+ ``buff'' argument of type ``void *'' instead of ``char *''.
+ (ptrace_get_gregs): Add new parameter ``alt_pid''.
+ (ptrace_set_gregs): Likewise.
+ (ptrace_get_fpregs): Add new parameter alt_pid. Also fix call
+ to ptrace() so parameters are in correct order.
+ (ptrace_set_fpregs): Likewise.
+ (ptrace_get_fpxregs, ptrace_set_fpxregs): New functions.
+ * ptrace-target.h (ptrace_write_user, ptrace_read_user)
+ (ptrace_get_gregs, ptrace_set_gregs, ptrace_get_fpregs)
+ (ptrace_set_fpregs, ptrace_get_fpxregs, ptrace_set_fpxregs):
+ Declare.
+ * thread-db.c (td_thr_getxregsize_p, td_thr_getxregs_p)
+ (td_thr_setxregs_p): New function pointers.
+ (thread_db_dlopen): Initialize new function pointers.
+ (send_pending_signals): Add ``process'' parameter so that
+ decr_pc_after_break() can get the ``serv'' argument. Fix all
+ callers.
+ (thread_db_get_thread_reg, thread_db_set_thread_reg): Add xregset
+ support.
+
+2001-10-14 Kevin Buettner <kevinb@redhat.com>
+
+ * ptrace-target.c (unistd.h): Include.
+ (close_open_files): New function.
+ (ptrace_create_child): In newly forked child process, call
+ close_open_files() before invoking execv().
+
+2001-10-13 Kevin Buettner <kevinb@redhat.com>
+
+ * server.c (signal.h): Include.
+ (chld_handler): New function.
+ (main): Establish chld_handler as the SIGCHLD signal handler.
+ Also, wait 1 second instead of 0 seconds to avoid busy waiting.
+
+2001-09-26 Louis Hamilton <hamilton@redhat.com>
+
+ * configure.in: Use thread-db.c for ARM.
+ * configure: Regenerated.
+ * linux-target.c (ARM_R11, ARM_R12): Added to regmap[].
+ (ARM_FP, ARM_CPSR): Revised mappings of these ARM registers.
+ (debug_get_reg, debug_get_pc, decr_pc_after_break) [ARM_LINUX_TARGET]:
+ New functions.
+
+2001-09-20 Kevin Buettner <kevinb@redhat.com>
+
+ * configure.in: Use thread-db.c for Linux/PPC too.
+ * configure: Regenerated.
+ * linux-target.c (linux_read_reg): Add forward declaration.
+ (debug_get_reg, debug_get_pc, decr_pc_after_break) [PPC_LINUX_TARGET]:
+ New functions.
+
+2001-09-20 Kevin Buettner <kevinb@redhat.com>
+
+ * linux-target.c (SIZEOF_MAPPEDREG) [PPC_LINUX_TARGET]: Add comment.
+ (PC_REGNUM) [PPC_LINUX_TARGET]: Remove FIXME comment.
+ (is_fp_reg) [PPC_LINUX_TARGET]: Revise upper bound on floating
+ point register numbers.
+ (ppc_linux_getset_reg): Rewritten to use regmap[] to fetch
+ ptrace() offsets. This'll handle the (previously unsupported)
+ floating point registers, cr, lr, ctr, and xer.
+ (ppc_linux_process_set_regs, ppc_linux_process_get_regs): Don't
+ hardcode loop upper bound.
+ (ppc_linux_process_get_regs): Revise declarator to match
+ process_get_regs member in struct gdbserv_target.
+
+2001-09-18 Andrew Haley <aph@cambridge.redhat.com>
+
+ * server.c (main): Work around SIGCHLD problem.
+
+2001-08-05 Michael Chastain <chastain@redhat.com>
+
+ * ptrace-target.c (ptrace_write_user): Ignore ESRCH on MIPS,
+ because mips linux kernel 2.4 has a bug where PTRACE_POKEUSER
+ returns -ESRCH even when it succeeds.
+
+2001-08-03 Michael Keezer <mkeezer@redhat.com>
+
+ * configure.in: Add am33_2.0 & mn10300.
+ * config.in: Add AM33_LINUX_TARGET & AM33_2_0_LINUX_TARGET.
+ * linux-target.c: am33_2.0 & mn10300 support.
+
+2001-07-23 David Howells <dhowells@redhat.com>
+
+ * ptrace-target.c: Added big-endian MIPS support.
+ * linux-target.c: ditto.
+ * server.h: ditto.
+
+2001-06-25 Michael Snyder <msnyder@redhat.com>
+
+ * ptrace-target.c (ptrace_compute_signal): Implement conversion
+ from native signals to GDB's signal numbering.
+ (ptrace_process_signal): Implement conversion from GDB's signal
+ numbering to native signals.
+ (stop_lwp): Comment out debugging output of SIGSTOP signals.
+ * linix-target.c (linux_fromtarget_break): Call compute_signal.
+ (linux_fromtarget_terminate): Ditto.
+ * thread-db.c (thread_db_check_child_state): Don't do any conversion
+ when passing a signal directly back to the inferior; just copy from
+ stop_signal to signal_to_send.
+ (thread_db_fromtarget_thread_break): Convert signal from native
+ numbering to GDB's numbering.
+
+2001-06-18 Michael Snyder <msnyder@redhat.com>
+
+ * linux-target.c (generic_linux_set_reg): Fix typo.
+ (decr_pc_after_break): Mute the debugging output.
+
+2001-06-15 Michael Snyder <msnyder@redhat.com>
+
+ * thread_db.c: Disable noisy debugging output.
+ (select_pending_event): Add new selection criterion, giving
+ preference to a thread that is being single-stepped. This
+ avoids the problem of deciding whether to decrement the pc if
+ we don't know whether a SIGTRAP was caused by stepping or by
+ hitting a breakpoint.
+
+2001-06-14 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (thread_db_set_gen, thread_db_get_gen): Rewrite
+ syntax for qSymbol messages.
+ * gdb_proc_service.h: New file.
+ * Makefile.am (INCLUDES): Remove $(srcdir)/../../include.
+ * Makefile.in: Regenerate.
+
+2001-05-31 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (add_thread_to_list): Return explicit value!
+
+2001-05-23 Jackie Smith Cashion <jsmith@redhat.com>
+
+ * linux-target.c: Change MIPS SIZEOF_MAPPEDREG from 1 to 4.
+ (linux_register_offset): For MIPS return regmap[regnum] instead of
+ SIZEOF_MAPPEDREG * regmap[regnum].
+ (mips_get_reg): Pass pid as argument to ptrace_read_user instead of
+ gdbserv pointer.
+
+2001-05-22 Michael Snyder <msnyder@redhat.com>
+
+ * no-threads.c: New file.
+ * configure.in: Use thread-db.c only for specified architectures,
+ (including x86); otherwise default to using no-threads.c.
+ * configure: Regenerate.
+
+2001-05-10 Martin M. Hunt <hunt@redhat.com>
+
+ * linux-target.c (is_fp_reg): New function for mips.
+ FP not implemented.
+
+ Merged changes from symbol branch with appropriate modifications.
+
+Mon Mar 26 08:54:41 PST 2001 Brendan Conoboy <blc@redhat.com>
+
+ * configure.in: Added mipsvr4181el* target
+ * configure: regenerate
+
+2001-01-26 Rudy Folden <rfolden@redhat.com>
+
+ * server.c: Changed name from gdbgeneral_xxx to gdbconnect_xx.
+
+2001-01-24 Rudy Folden <rfolden@redhat.com>
+
+ * configure: Added mipsel* target.
+ * linux-target.c: Add support for MIPS processor, including single-
+ stepping which doesn't exist in mips ptrace.
+ * ptrace-target.c (ptrace_handle_waitstatus): Added single-stepping
+ instruction restore for mips.
+ (ptrace_attach): Added single stepping initialization code.
+ * server (main): Added generic interfaces, gdbgeneral_startup/shutdown
+ for serial or tcp/ip selection. Also added server_quit_p to X and W
+ for serial support (no socket shutdown).
+ * server.h (child_process): Added mips instruction save area for
+ single-step support.
+
+ 2001-01-10 Rudy Folden <rfolden@redhat.com>
+ * ptrace-target.c (enum): Added U_REGS_OFFSET to processor
+ dependent enums.
+
+2001-04-26 Michael Snyder <msnyder@redhat.com>
+
+ * linux-target.c (is_fp_reg): New function.
+ (reg_from_fpregset, reg_to_fpregset): New functions.
+ Support for thread_db_get_thread_reg floating point regs.
+ * thread-db.c (thread_db_get_thread_reg, thread_db_set_thread_reg):
+ Infrastructure for support of floating point regs.
+ (Attach_thread): New function, abstracted from below.
+ (find_new_threads_callback): Call attach_thread.
+ (stop_thread): New function, abstracted from stop_all_threads.
+ (stop_all_threads): Call stop_thread.
+ (continue_thread): Test for lwp == 0 before calling continue_lwp.
+ * ptrace-target.c (stop_lwp): New function.
+ * gdbserv-thread-db.h (reg_to_regnum, reg_from_regnu): Declare.
+
+2001-04-25 Michael Snyder <msnyder@redhat.com>
+
+ Move all ptrace references out of thread-db.c.
+ * gdbserv-thread-db.h: New file.
+ * thread-db.c (struct ps_prochandle): Move to gdbserv-thread-db.h.
+ (gdb_ps_prochandle_t): Ditto.
+ (gdb_ps_read_buf_t, gdb_ps_write_buf_t, gdb_ps_size_t): Ditto.
+ (ps_pstop, ps_pcontinue): Move to ptrace-target.c.
+ (ps_lstop, ps_lcontinue): Ditto.
+ (ps_pdread, ps_pdwrite, ps_ptread, ps_ptwrite): Ditto.
+ (ps_lgetxregsize): Move to linux-target.c.
+ (ps_lgetxregs, ps_lsetxregs, ps_getpid): Ditto.
+ (ps_lgetregs, ps_lsetregs, ps_lgetfpregs, ps_lsetfpregs): Ditto.
+ (find_new_threads_callback): Abstract attach bits into new function
+ attach_lwp, and move that to ptrace-target.c.
+ (wait_all_threads): Call continue_lwp instead of ptrace.
+ (continue_pid): Rename as continue_lwp, move into ptrace-target.c.
+ (singlestep_pid): Rename as continue_lwp, move into ptrace-target.c.
+ (struct symbol_cache): Change value to a paddr_t.
+ (add_symbol_to_list, lookup_cached_symbol): Ditto.
+ * linux-target.c (ps_lgetregs, ps_lsetregs, ps_lgetfpregs,
+ ps_lsetfpregs, ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs,
+ ps_getpid): Moved to here from thread-db.c.
+ * ptrace-target.c (continue_lwp, singlestep_lwp, attach_lwp,
+ (ps_pstop, ps_pcontinue, ps_lstop, ps_lcontinue, ps_pdread,
+ ps_pdwrite, ps_ptread, ps_ptwrite): Moved here from thread-db.c.
+ (ptrace_handle_waitstatus): Renamed as handle_waitstatus.
+ (ps_lcontinue): Implement (untested).
+ * server.c (main): Check server_quit_p after calling gdbloop_poll.
+
+
+2001-04-24 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (continue_pid, continue_thread): New functions.
+ (singlestep_pid, singlestep_thread): New functions.
+ (continue_all_threads): Use new function continue_thread.
+ (thread_db_continue_program): Ditto.
+ (thread_db_singlestep_program): Ditto.
+ (thread_db_continue_thread): Ditto.
+ (thread_db_singlestep_thread): Ditto.
+
+ * thread-db.c: Remove some debugging printfs.
+ Add activation and handling of the thread debug signal.
+ (get_thread_signals): Get the debug signal as well as the others.
+ Set target flag to activate the debug signal.
+ (set_target_int_by_name): New function.
+ (struct gdbserv_thread): Rename "sigstopped" flag to just "stopped".
+ (stop_all_threads): Mark the event thread "stopped".
+ (wait_all_threads): Mark the event thread "waited".
+ Don't stash the debug signal (throw it away).
+ (continue_all_threads): Always send the restart signal to any
+ thread that has just been attached.
+ (thread_db_check_child_state): Make two calls to waitpid (one with
+ WCLONE, one without) instead of alternating every other time.
+ Add debug_signal to the list of events to ignore.
+ (thread_db_attach): Add "__pthread_threads_debug" to list of symbols.
+
+2001-04-20 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (thread_db_check_child_state): Add SIGCHLD to the
+ list of signals to ignore. When a thread exits, make sure that
+ the other threads get restarted.
+
+2001-04-19 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (wait_all_threads): Save exit and term events.
+ Save SIGINT like any other signal event.
+ (send_pending_signals): Don't send SIGINT.
+ (select_pending_event): Give preference to SIGINT.
+ (thread_db_check_child_state): Move special handling of
+ cancel and restart signals to after the stop_all_threads
+ and wait_all_threads calls, so we can catch these signals
+ even if they aren't the first signal we get notification of.
+
+2001-04-19 Michael Snyder <msnyder@redhat.com>
+
+ Major change to select an event so as to avoid starvation.
+ * thread-db.c (select_pending_event): New function. Choose an
+ event from the list of pending events, and make its thread the
+ event thread.
+ (stop_all_threads): Don't mark the event thread. That will now
+ be done by select_pending_event.
+ (struct signal_list): Rename to event_list. Save the thread and
+ the entire wait status, so that all events (not just signals)
+ can be saved.
+ (add_pending_signal): Rename to add_pending_event.
+ (send_pending_signals): Ignore non-signal events.
+ Ignore the selected event (which will be returned to the debugger).
+ Push back breakpoint events (moved here from wait_all_threads).
+ (wait_all_threads): Remove special handling for SIGTRAP (moved
+ into send_pending_signals). Call select_pending_event.
+ (thread_db_check_child_status): Add initial event to event list.
+
+2001-04-16 Michael Snyder <msnyder@redhat.com>
+ * thread-db.c (thread_db_continue_thread): Handle the signal param.
+ (thread_db_singlestep_thread): Ditto.
+ (thread_db_check_child_state): Handle exit and termination separately.
+
+2001-04-13 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (find_new_threads_callback): Account for dead threads.
+ (update_thread_list): Keep zombie threads in thread list, but
+ delete them if they've been joined or detached.
+ (stop_all_threads): Don't stop dead threads.
+ (continue_all_threads): Don't continue if not waited.
+ (thread_db_check_child_state): Move handling of terminate and
+ exit earlier. Handle termination or exit of children specially.
+ (thread_db_get_thread_reg): Test for defunct threads.
+ (thread_db_set_thread_reg): Ditto.
+ * ptrace-target.c (ptrace_xfer_mem): Don't be noisy about ptrace
+ errors caused by illegal memory accesses.
+
+2001-04-12 Andrew Cagney <ac131313@redhat.com>
+
+ * server.c: Include "gdbloop.h". Replace gdbsocket_poll with
+ gdbloop_poll.
+ * ptrace-target.c, linux-target.c, solaris-target.c:
+ * dummy-target.c: Update comments.
+
+2001-04-11 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (struct gdbserv_thread): Add new flag 'stepping'.
+ (stop_all_threads): Add parameter 'process'.
+ Set the process->event_thread here, instead of in check_child_state.
+ (wait_all_threads): Accept process as a parameter instead of eventpid.
+ Handle SIGTRAP differently if the thread was singlestepping.
+ (thread_db_singlestep_program): Clear flags for event thread.
+ (thread_db_singlestep_thread): Ditto.
+ (thread_db_continue_program): Ditto.
+ (thread_db_continue_thread): Ditto.
+ (thread_db_check_child_state): Cancel the stepping flag.
+ Don't set the event thread, this is now done in stop_all_threads.
+ * linux-target.c (debug_get_reg, debug_get_pc): New functions.
+ Purely for debugging output. Architecture dependent.
+
+2001-04-09 Michael Snyder <msnyder@redhat.com>
+
+ * thread_db.c (thread_db_continue_thread): Continue the actual
+ thread given, not necessarily the event thread.
+ (thread_db_singlestep_thread): Step the actual thread given,
+ not necessarily the event thread.
+
+2001-04-09 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (stop_all_threads): Do not send SIGSTOP to a thread
+ if it has already been sigstopped.
+ (thread_db_continue_thread): New function. Continue a single thread.
+ (thread_db_singlestep_thread): New function. Step a single thread.
+ (thread_db_attach): Set up continue_thread, singlestep_thread methods.
+
+2001-04-09 Michael Snyder <msnyder@redhat.com>
+
+ * linux-target.c (PC_REGNUM): New enum, define.
+ (decr_pc_after_break): New function. Architecture dependent.
+ This version will probably serve for all targets for which
+ DECR_PC_AFTER_BREAK is one. Those for which it is zero will
+ want to define a no-op version of this function.
+ * thread-db.c (first_thread_in_list): New function.
+ (update_thread_list, stop_all_threads, wait_all_threads,
+ continue_all_threads): Use first_thread_in_list in for loops.
+ (wait_all_threads): Handle SIGINT and SIGTRAP specially.
+ Throw away SIGINT for all threads but the event thread.
+ For SIGTRAP in other than the event thread, call decr_pc_after_break
+ (giving the thread a chance to hit the trap again later).
+ (thread_db_continue_program, thread_db_singlestep_program):
+ Continue the event thread before all the others.
+
+2001-04-05 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (add_pending_signal, send_pending_signals):
+ New functions. Allow wait_all_threads to collect any signals
+ other than SIGSTOP from the threads and defer them.
+ (wait_all_threads): Loop on each thread and call waitpid until
+ we get SIGSTOP. Any other signals are pended by throwing them
+ into a list, and then sending them back to the threads using kill.
+ (thread_db_get_thread_reg): Remove temporary hack for libthread_db
+ bug. (thread_db_set_thread_reg): Ditto.
+
+2001-04-04 Michael Snyder <msnyder@redhat.com>
+
+ * server.h (struct child_process): Add a 'running' flag.
+ * thread_db.c (continue_all_threads): Take gdbserv as argument.
+ Use it to find the current thread, and don't continue that one
+ (leave it up to the parent method to continue the event thread.)
+ (thread_db_continue_program): Child is running -- set a flag.
+ (thread_db_singlestep_program): Ditto.
+ (thread_db_check_child_state): Return immediately unles the child
+ is running. Because this is a polling routine, we don't want to
+ return any new events unles the child is officially running.
+ Call waitpid with -1 instead of the process->pid, so that we
+ can get events from the threads. Alternately use __WCLONE.
+ (thread_db_get_thread_reg): If thread is not specified, use
+ the event thread (if possible). Temporarily hack around a
+ bug in the thread_db library.
+ (thread_db_set_thread_reg): Ditto.
+
+2001-04-04 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c (continue_all_threads): Zero the attached, stopped,
+ and waited flags only if thread is successfully continued.
+ * linux-target.c: Fix broken endif directive.
+ * configure.in: Test for sys/procfs.h.
+ * config.in: Define HAVE_SYS_PROCFS_H.
+ * configure: Regenerate.
+ * thread-db.c (thread_list_lookup_by_pid): New function.
+ (thread_db_check_child_state): Cache the event thread.
+ (thread_db_fromtarget_thread_break): New function. Call
+ gdbserv_fromtarget_thread_break with the event thread.
+ (thread_db_attach): Take over the fromtarget_break vector.
+ * server.h (struct child_process): Add event_thread field.
+
+2001-04-02 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c: include errno.h for error reporting.
+ (struct gdbserv_thread): Add flag 'waited'.
+ (thread_db_type_str): New function for thread_extra_info.
+ (find_new_threads_callback): Use errno for error reporting.
+ (thread_db_thread_info): New function, for thread_extra_info.
+ (wait_all_threads): New function. Call waitpid on all threads
+ that have been attached or sigstopped. Incomplete -- needs to
+ push back any signals other than SIGSTOP.
+ (continue_all_threads): Send PTRACE_CONT only to threads that
+ have been attached or sigstopped.
+ (check_child_state): Call wait_all_threads.
+ (thread_db_attach): Activate thread_info vector.
+
+2001-03-30 Michael Snyder <msnyder@redhat.com>
+
+ * linux-target.c (linux_read_reg, linux_write_reg): New functions.
+ Abstract out the code to actually read a register value, so that
+ it can be shared by several methods.
+ (get_gregset): Use sizeof (GREGSET_T).
+ (generic_linux_gg_reg_nr): New function. Support new reg methods.
+ (generic_linux_next_gg_reg): Ditto.
+ (generic_linux_sizeof_reg): Ditto.
+ (generic_linux_reg_format): Ditto.
+ (generic_linux_get_reg): New function. Newer register method,
+ non-thread-aware version.
+ (linux_attach): Use new register method in target vector.
+ * thread-db.c: Remove some developmental ifdef code.
+ (thread_db_get_thread_reg): Fall back on parentvec.get_reg
+ if no thread or no thread_agent available.
+ (thread_db_attach): Replace get_reg vector with get_thread_reg.
+
+ * ptrace-target.c (ptrace_write_user): For X86 target, skip
+ write-protected location in user/context address space.
+ * linux-target.c (linux_process_get_reg): Use linux_read_reg.
+ (linux_process_set_reg): Use linux_write_reg.
+ (put_gregset): New function. Write child's gregset.
+ (generic_linux_get_reg): Use SIZEOF_MAPPEDREG.
+ (generic_linux_set_reg): New function. Newer register method.
+ (linux_attach): Add set_reg to target vector, not process_set_reg.
+ * thread-db.c (ps_lsetregs): Implement by calling put_gregset.
+ (thread_db_set_thread_reg): New function. Implement set_thread_reg.
+ (thread_db_attach): Add set_thread_reg to target vector.
+
+2001-03-29 Michael Snyder <msnyder@redhat.com>
+
+ * ptrace-target.c (ptrace_read_user, ptrace_write_user):
+ Accept an explicit pid instead of a struct gdbserv.
+ * linux-target.c: Include gdb_proc_service.h for gregset_t
+ (FIXME: better place to get it from?)
+ (linux_register_offset): Return signed long to facilitate
+ test for -1 error return value.
+ (ppc_linux_xfer_reg, linux_process_get_reg, linux_process_set_reg):
+ Calls to ptrace_read_user and ptrace_write_user now need a pid
+ argument instead of a struct gdbserv.
+ (reg_from_gregset): New function.
+ (reg_to_gregset): New function.
+ (get_gregset): New function. Read child's gregset.
+ * thread-db.c (ps_lgetregs): Implement by calling get_gregset.
+ (thread_db_dlopen, thread_db_open, thread_db_attach): Change
+ sense of return: -1 now means failure, 0 means success.
+ (thread_db_get_thread_reg): Call reg_from_gregset.
+
+2001-03-29 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c: Include signal.h, sys/ptrace.h (FIXME ptrace).
+ (struct symbol_cache): Make value (address) unsigned.
+ (add_symbol_to_list, lookup_cached_symbol): Ditto.
+ (struct gdbserv_thread): Add attached, stopped flags to thread.
+ (add_thread_to_list): Return pointer to new thread in list.
+ (delete_thread_from_list): New function.
+ (ps_pglobal_lookup, ps_pdread, ps_pdwrite, ps_ptread, ps_ptwrite):
+ Muffle debugging output.
+ (find_new_threads_callback): Muffle debugging output.
+ Add thread to list only if it isn't already there.
+ Use ptrace to attach to new threads. (FIXME explicit ptrace).
+ (update_thread_list): New function. Only place where td_ta_thr_iter
+ is called. Builds up the thread list, prunes it of any dead threads.
+ (thread_db_thread_next): Call update_thread_list.
+ (get_thread_signals): Read the values of the cancel and restart
+ signals from the target using hardcoded symbol names.
+ (stop_all_threads): New function. First cut. Deliver SIGSTOP
+ to all threads except the event thread and any new threads that
+ have just been attached.
+ (continue_all_threads): New function. First cut. Deliver
+ PTRACE_CONT to all threads except the main thread. Needs work.
+ (thread_db_continue_program): New function.
+ (thread_db_singlestep_program): New function.
+ (thread_db_get_thread_reg): New function, incomplete.
+ (thread_db_attach): Take over continue_program, singlestep_program.
+ Muffle some debugging output.
+
+2001-03-26 Michael Snyder <msnyder@redhat.com>
+
+ * thread-db.c: New file. Linux thread debugging layer.
+ * linux-target.c (linux_attach): Call thread_db_attach.
+ * ptrace-target.c: Export ptrace_handle_waitstatus for
+ thread-db.c (FIXME).
+ * configure.in: Add thread-db.c to linux target modules.
+ (GREGSET_T, FPREGSET_T, HAVE_LWPID_T, HAVE_PSADDR_T,
+ HAVE_PRGREGSET_T, HAVE_PRFPREGSET_T, LINUX_TARGET): Define.
+ * config.in (GREGSET_T, FPREGSET_T, HAVE_LWPID_T,
+ HAVE_PSADDR_T, HAVE_PRGREGSET_T, HAVE_PRFPREGSET_T, LINUX_TARGET):
+ Default undefine.
+ * configure: Regenerate.
+ * Makefile.am (INCLUDES): Add $(srcdir)/../../include
+ (devo/include), so that header files can be shared with gdb.
+ (server_LDFLAGS): Add -ldl -rdynamic (FIXME configure).
+ * Makefile.in: Regenerate.
+
+2001-03-22 Andrew Cagney <ac131313@redhat.com>
+
+ * server.c (main): Pass gdbserver.attach and process to
+ gdbserver_startup instead of gdbserver_poll.
+
+2001-03-16 Michael Snyder <msnyder@redhat.com>
+
+ * linux-target.c (linux_detach): Pass new parameter to ptrace_detach.
+ Fix file header comment typo. Update copyright.
+
+2001-03-16 Elena Zannoni <ezannoni@cygnus.com>
+
+ * dummy-target.c (dummy_detach): Add new parameter.
+ * linux-target.c (linux_detach): Ditto.
+ * ptrace-target.c (ptrace_detach): Ditto.
+ * solaris-target.c (solaris_detach): Ditto.
+
+2001-03-14 Andrew Cagney <ac131313@redhat.com>
+
+ * ChangeLog: Move to here from ../native.
+ * Makefile.am: Ditto.
+ * aclocal.m4: Ditto.
+ * configure.in: Ditto.
+ * dummy-target.c: Ditto.
+ * linux-target.c: Ditto.
+ * ptrace-target.c: Ditto.
+ * ptrace-target.h: Ditto.
+ * server.c: Ditto.
+ * server.h: Ditto.
+ * solaris-target.c: Ditto.
+ * Makefile.in: Regenerate.
+ * config.in: Ditto.
+ * configure: Ditto.
+
+2001-03-14 Andrew Cagney <ac131313@redhat.com>
+
+ * Makefile.am (INCLUDES): Update. Headers moved to ../include.
+ * Makefile.in: Regenerate.
+
+2000-11-27 Michael Snyder <msnyder@happy.cygnus.com>
+
+ * ptrace-target.c (ptrace_xfer_mem): Return -1 on error.
+
+2000-11-21 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * ptrace-target.c (noop_flush_i_cache): Comment out superfluous
+ debugging output.
+ * linux-target.c (linux_process_get_reg): Return value of
+ linux_register_offset is unsigned (can't be less than zero).
+ (linux_process_rcmd): Just use '1' and '0' to control debug output.
+
+2000-11-06 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * dummy-target.c (dummy_attach): Fix order of memset args.
+ * linux-target.c (linux_attach): Ditto.
+ * ptrace-target.c (ptrace_attach): Ditto.
+ * solaris-target.c (solaris_attach): Ditto.
+
+2000-10-19 Belinda Brazelle <brazelle@redhat.com>
+
+ * linux-target.c: Add support for Arm processor.
+
+2000-10-12 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * ptrace-target.c (ptrace_handle_waitstatus): Save exitstatus
+ in process->stop_signal.
+
+2000-09-14 Michael Snyder <msnyder@michael.wirespeed.com>
+
+ * linux-target.c: Define regmap etc. for SH target.
+ * configure.in: Add defines for SH target.
+ * configure: Rebuild.
+
+2000-09-13 Michael Snyder <msnyder@michael.wirespeed.com>
+
+ * server.h (fromtarget_terminate): New field. Also fix up
+ some overlooked function prototypes in the existing fields.
+ (struct client_process): Rename to struct child_process.
+ * linux-target.c (linux_fromtarget_terminate): New function.
+ Called from main when child terminates abnormally.
+ (linux_process_rcmd): New function. Catches "qRcmd" requests,
+ which are currently used just to turn on debug output.
+ * ptrace-target.c (ptrace_handle_waitstatus): Set stop_signal
+ for the WIFSTOPPED case. (ptrace_process_signal): Return zero
+ instead of the signal number, to let libremote know that we have
+ handled the signal. (ptrace_xfer_memory): Fix off-by-one error.
+ * solaris-target.c (solaris_fromtarget_terminate): New function.
+ * server.c (main): Call fromtarget_terminate for the 'T' case.
+ Do not request a one-second delay from gdbsocket_poll.
+
+2000-09-08 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * solaris-target.c: New file. Just a prototype, doesn't actually
+ work. Used to confirm configurability to multiple targets.
+ * dummy-target.c: New file. Dummy back-end for implementing new
+ targets such as solaris-target.c (above), before actually having
+ a working back-end. The dummy target works just like the sample
+ target in the samples directory.
+ * configure.in: Add AC_SUBST(TARGET_MODULES) to add the
+ appropriate target modules to the Makefile. Add solaris target.
+ * configure: Regenerate.
+ * Makefile.am: Move *-target.c into EXTRA_server_SOURCES.
+ Add TARGET_MODULES to server_LDADD. Define server_DEPENDENCIES.
+ * Makefile.in: Regenerate.
+ * ptrace-target.h: New file. Defines needed only by ptrace.
+ * server.h: Remove ptrace-specific defines to ptrace-target.h.
+ (struct server_vector): New, for target entry points.
+ (struct nativeserver): Rename to struct client_process.
+ * server.c: Use client_process for entry points, and server_vector.
+ * linux-target.c: Include ptrace-target.h.
+ (ppc_linux_get_reg): Rename to ppc_linux_process_get_reg.
+ (ppc_linux_set_reg): Rename to ppc_linux_process_set_reg.
+ (ppc_linux_get_regs): Rename to ppc_linux_process_get_regs.
+ (ppc_linux_set_regs): Rename to ppc_linux_process_set_regs.
+ (linux_get_reg): Rename to linux_process_get_reg.
+ (linux_set_reg): Rename to linux_process_set_reg.
+ (linux_get_regs): Rename to linux_process_get_regs.
+ (linux_set_regs): Rename to linux_process_set_regs.
+ (gdbserver_check_child_state): Rename to linux_check_child_state.
+ (gdbserver_fromtarget_break): Rename to linux_fromtarget_break.
+ (gdbserver_fromtarget_exit): Rename to linux_fromtarget_exit.
+ (struct server_vector gdbserver): New, defines entry points.
+ * ptrace-target.c: Include ptrace-target.h.
+ * aclocal.m4: New file.
+
+2000-09-08 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * linux-target.c (linux_get_reg, linux_set_reg): Remove direct
+ calls to ptrace; instead use service call into ptrace-target.c.
+ (linux_get_regs, linux_set_regs): Remove ifdef PPC; instead use
+ an ifdef in linux_attach to set up the target vector pointers.
+ (linux_attach): If PPC_LINUX_TARGET, use PPC versions of register
+ functions instead of generic ones. Define process_set_reg, so
+ that the "P" command is now handled.
+
+2000-09-07 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * ptrace-target.c (ptrace_read_user, ptrace_write_user): New
+ functions. Exported so that linux-target does not have to
+ call ptrace directly. (ptrace_get_gregs, ptrace_set_gregs,
+ ptrace_get_fpregs, ptrace_set_fpregs): New functions.
+ Exported for use by targets that use these methods.
+ (ptrace_xfer_mem): Use ptrace_arg3_type instead of long.
+ Add address to error messages.
+ * linux-target.c: Start using config macros, port to alpha and ppc.
+ (ppc_linux_xfer_reg, ppc_linux_getset_reg, ppc_linux_get_reg,
+ ppc_linux_set_reg, ppc_linux_get_regs, ppc_linux_set_regs):
+ New functions. Explicit knowledge of ppc linux register layout.
+ (linux_get_reg): Catch undefined regmap offsets.
+ (linux_set_reg): Ditto.
+ (linux_get_regs): Conditionally call ppc_linux_get_regs.
+ (linux_set_regs): Ditto.
+ * configure.in: Add PPC target, and export target defines.
+ * configure: Regenerate.
+ * config.in: Add new target defines.
+
+2000-09-06 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * Makefile.am: Define CC and CFLAGS.
+ * Makefile.in: Regenerate.
+ * configure.in: New file. Detect all manner of things.
+ * config.in: New file. Input file for config.h.
+ * configure: Generate.
+ * ptrace-target.c (ptrace_xfer_type): Move def'n into server.h.
+ (PTRACE_XFER_SIZE): Ditto.
+ * linux-target.c (ptrace_xfer_type): Move def'n into server.h.
+ (ptrace_arg3_type): Ditto.
+ * server.h: Use config macros to determine definitions of
+ ptrace_xfer_type, ptrace_arg1_type, ptrace_arg2_type,
+ ptrace_arg3_type, ptrace_arg4_type.
+
+2000-09-05 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * server.c (main): Detect exit status, and call fromtarget_exit
+ instead of fromtarget_break.
+ * linux-target.c (gdbserver_fromtarget_exit): New function.
+ * ptrace-target.c (ptrace_kill_program, ptrace_sigkill_program):
+ New functions. Send signals to the child.
+ (ptrace_exit_program): New function.
+
+2000-09-05 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * linux-target.c (linux_attach): Activate process_signal vector.
+ (gdbserver_check_child_state): Send real received signal, instead
+ of faking SIGTRAP.
+ * ptrace-target.c (ptrace_break_program): New function. Implement
+ control-c interrupt from host.
+ (ptrace_process_signal): Implement continuation signal.
+ (ptrace_singlestep_program): Ditto.
+ (ptrace_continue_program): Ditto.
+ (ptrace_get_trap_number): New function. Return signal to libremote.
+ (ptrace_compute_signal): Ditto.
+ (ptrace_attach): Activate break_program, process_signal, compute_signal
+ and get_trap_number vectors.
+ server.h (struct nativeserver): add signal_to_send field.
+ Rename stop_sig to stop_signal.
+
+2000-09-05 Michael Snyder <msnyder@cleaver.cygnus.com>
+
+ * ptrace-target.c (ptrace_singlestep_program): Make ptrace args long.
+ FIXME: needs to be configurable.
+ * linux-target.c (linux_get_reg, linux_set_reg): Make regaddr and
+ regval configurable types. FIXME needs real configury.
+
+2000-09-01 Michael Snyder <msnyder@cleaver.cygnus.com>
+ New directory "native" for native gdbserver in libremote.
+ * server.c: New file. Entry point and main event loop.
+ * server.h: New file. Shared declarations.
+ * linux-target.c: New file. Linux version of libremote native stub.
+ * ptrace-target.c: New file. Ptrace operations for libremote stub.
+ * Makefile.am: New file. Automake source.
+ * Makefile.in: New file. Automake-generated makefile source.
+ Note: this work is incomplete and only partially working.
+
+
diff --git a/rda/unix/Makefile.am b/rda/unix/Makefile.am
new file mode 100644
index 00000000000..87e1fd8d700
--- /dev/null
+++ b/rda/unix/Makefile.am
@@ -0,0 +1,17 @@
+## Process this with automake to create Makefile.in
+
+AUTOMAKE_OPTIONS = foreign
+
+AM_CFLAGS = -Wall
+
+noinst_PROGRAMS = rda
+
+INCLUDES = -I$(srcdir) -I$(srcdir)/../include
+
+rda_SOURCES = server.c
+EXTRA_rda_SOURCES = linux-target.c solaris-target.c \
+ ptrace-target.c dummy-target.c stock-breakpoints.c
+TARGET_MODULES = @TARGET_MODULES@
+rda_LDADD = $(TARGET_MODULES) ../lib/librda.la
+rda_DEPENDENCIES = $(server_OBJECTS) $(TARGET_MODULES) ../lib/librda.la
+rda_LDFLAGS = -ldl -rdynamic
diff --git a/rda/unix/Makefile.in b/rda/unix/Makefile.in
new file mode 100644
index 00000000000..ac2c5ffe48b
--- /dev/null
+++ b/rda/unix/Makefile.in
@@ -0,0 +1,332 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+GCJ = @GCJ@
+GCJFLAGS = @GCJFLAGS@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAINT = @MAINT@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+TARGET_MODULES = @TARGET_MODULES@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+AUTOMAKE_OPTIONS = foreign
+
+AM_CFLAGS = -Wall
+
+noinst_PROGRAMS = rda
+
+INCLUDES = -I$(srcdir) -I$(srcdir)/../include
+
+rda_SOURCES = server.c
+EXTRA_rda_SOURCES = linux-target.c solaris-target.c \
+ ptrace-target.c dummy-target.c stock-breakpoints.c
+
+rda_LDADD = $(TARGET_MODULES) ../lib/librda.la
+rda_DEPENDENCIES = $(server_OBJECTS) $(TARGET_MODULES) ../lib/librda.la
+rda_LDFLAGS = -ldl -rdynamic
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+noinst_PROGRAMS = rda$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+
+am_rda_OBJECTS = server.$(OBJEXT)
+rda_OBJECTS = $(am_rda_OBJECTS)
+
+DEFS = @DEFS@
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+depcomp =
+am__depfiles_maybe =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(rda_SOURCES) $(EXTRA_rda_SOURCES)
+SOURCES = $(rda_SOURCES) $(EXTRA_rda_SOURCES)
+
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --cygnus --ignore-deps Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/config.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+
+$(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOHEADER)
+ touch $(srcdir)/config.in
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+rda$(EXEEXT): $(rda_OBJECTS) $(rda_DEPENDENCIES)
+ @rm -f rda$(EXEEXT)
+ $(LINK) $(rda_LDFLAGS) $(rda_OBJECTS) $(rda_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.c.o:
+ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.c.lo:
+ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+check-am:
+check: check-am
+all-am: Makefile $(PROGRAMS) config.h
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+distclean-am: clean-am distclean-compile distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info:
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf autom4te.cache
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+uninstall-am:
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstPROGRAMS distclean distclean-compile \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags dvi dvi-am info info-am install install-am \
+ install-data install-data-am install-exec install-exec-am \
+ install-info install-info-am install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool tags uninstall \
+ uninstall-am uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT: