Convert mn10300, MIPS and powerpc/rs6000 targets to use
BREAKPOINT_FROM_PC
Delete global variable memory_breakpoint_size. Use BREAKPOINT_FROM_PC
instead.
without NAT_FILE definition, configure will assume that GDB cannot
run native.
* config/m68k/nm-delta68.h (KERNEL_U_SIZE): New macro.
* delta68-nat.c (kernel_u_size): New function.
Changes to account for name change from cygwin32 to cygwin and
clean up Win32-related ifdefs.
* configure.tgt: check for cygwin* instead of cygwin32.
New cygwin gdb_target variable loses the "32".
* configure.host: check for cygwin* instead of cygwin32.
New cygwin gdb_host variable loses the "32".
* configure.in: test __CYGWIN__ instead of __CYGWIN32__,
rename gdb_cv_os_cygwin32 variable to drop the "32". Call
AM_EXEEXT instead of AC_EXEEXT since that isn't in a released
autoconf yet.
* configure: regenerate.
* main.c: drop "32" from cygwin_ funcs, include sys/cygwin.h
where
cygwin path conv protos live, instead of adding a proto here
for
them here.
* {main.c, ser-tcp.c, ser-unix.c, top.c}: check __CYGWIN__
instead of __CYGWIN32__.
* source.c: thoughout, check _WIN32 instead of WIN32.
* config/i386/cygwin32.mh: delete.
* config/i386/cygwin.mh: new file, was cygwin32.mh.
* config/i386/cygwin32.mt: delete.
* config/i386/cygwin.mt: new file, was cygwin32.mt.
* config/i386/tm-cygwin32.h: delete.
* config/i386/tm-cygwin.h: new file, was tm-cygwin32.h.
* config/i386/xm-cygwin32.h: delete.
* config/i386/xm-cygwin.h: new file, was xm-cygwin32.h.
* config/i386/xm-windows.h: #include xm-cygwin.h now.
* config/powerpc/cygwin32.mh: delete.
* config/powerpc/cygwin.mh: new file, was cygwin32.mh.
* config/powerpc/cygwin32.mt: delete.
* config/powerpc/cygwin.mt: new file, was cygwin32.mt.
* config/powerpc/tm-cygwin32.h: delete.
* config/powerpc/tm-cygwin.h: new file, was tm-cygwin32.h.
* config/powerpc/xm-cygwin32.h: delete.
* config/powerpc/xm-cygwin.h: new file, was xm-cygwin32.h.
* rdi-share/aclocal.m4: regenerate with aclocal.
* rdi-share/configure: regenerate with autoconf.
* rdi-share/{host.h, hostchan.c, hostchan.h, serdrv.c,
* serpardr.c,
unixcomm.c}: check __CYGWIN__ instead of __CYGWIN32__.
which define CRLF_SOURCE_FILES.
* win32-nat.c: 1) Add thread support, 2) fix ability to attach to
a running process, and 3) implement limited support for cygwin
signals.
(thread_rec): New function.
(child_add_thread): Ditto.
(child_init_thread_list): Ditto.
(child_delete_thread): Ditto.
(do_child_fetch_inferior_registers): Ditto.
(do_child_store_inferior_registers): Ditto.
(handle_output_debug_string): Ditto.
(child_fetch_inferior_registers): Use do_* function to perform
operation.
(child_store_inferior_registers): Ditto.
(child_continue): Ditto.
(child_thread_alive): Ditto.
(cygwin_pid_to_str): Ditto.
(handle_load_dll): Reorganize, add first attempt at reading
dll names from attached processes. Change info messages to provide
more information when dll is already loaded.
(handle_exception): Changes mandated by new thread-aware structures.
(child_wait): Track thread creation/destruction. Handle cygwin
signals.
(child_create_inferior): Ditto.
(child_resume): Ditto.
(child_kill_inferior): Ditto. Close child process handle to avoid a
handle leak.
(child_ops): Fill out child_ops fields that deal with threads.
* config/i386/tm-cygwin32.h: Declare function and macro needed
for converting a cygwin "pid" to a string.
* config/i386/xm-cygwin32.h: define HAVE_SIGSETMASK as 0 since
sigsetmask is not defined in cygwin.
pseudo-register, not the same as a3.
(D2_REGNUM, D3_REGNUM, A2_REGNUM, A3_REGNUM): Define.
* mn10300-tdep.c (fix_frame_pointer): New function.
(set_movm_offsets): Use register number macros instead of
hard-coded constants.
(mn10300_analyze_prologue): Fix to handle redefinition of FP_REGNUM.
(mn10300_frame_chain): Fix to handle redefinition of FP_REGNUM;
use register number macros instead of hard-coded constants;
add missing parameter to call of mn10300_analyze_prologue.
(mn10300_frame_saved_pc): Use register number macros instead of
hard-coded constants.
* sparc-tdep.c (sparc_extract_struct_value_address): Simplify to use
same method on both 32-bit and 64-bit machines.
* sparcl-tdep.c (sparclite_check_watch_resources): Simulator doesn't
support hardware breakpoints.
* config/sparc/tm-sparc.h (CALL_DUMMY): Improve comments.
* configure.in: Add more header files to AC_CHECK_HEADERS.
* configure: Regenerated.
* command.c: Include wait.h or sys/wait.h if present.
* inftarg.c: Ditto.
* core-aout.c: Include ptrace.h or sys/ptrace.h if present, based
on autoconf test.
* infptrace.c: Ditto.
* expprint.c: Include ctype.h for isprint prototype.
* i386aix-nat.c: Include sys/reg.h if autoconf says it is present.
* i386v-nat.c: Include ptrace.h, sys/ptrace.h, and sys/reg.h if
present, based on autoconf test.
* utils.c: Include curses.h and term.h if present.
(puts_debug): Change 'carriage_return' local variable to return_p
to avoid name clash.
* config/m68k/nm-apollo68b.h: Don't define PTRACE_IN_WRONG_PLACE,
determine it with autoconf.
* config/i386/nm-linux.h: Don't define NO_SYS_REG_H, determine it
with autoconf.
* config/i386/nm-i386sco.h: Don't define NO_PTRACE_H, determine it
with autoconf.
* config/i386/nm-i386v.h: Ditto.
* config/i386/nm-symmetry.h: Ditto.
* config/m88k/xm-cxux.h: Ditto.
* config/m88k/xm-dgux.h: Ditto.
* config/m68k/delta68.mh (NAT_FILE): nm-delta68.h no longer necessary.
* config/m68k/nm-delta68.h: Removed.
(mips_addr_bits_remove): Test mask_address_p to decide whether
to mask off the upper 32 bits of addresses.
(_initialize_mips_tdep): Add command to set mask_address_p.
(mips_call_dummy_address): New function.
* config/mips/tm-mips.h (CALL_DUMMY_ADDRESS): Redefine to
call mips_call_dummy_address.
* config/d10v/tm-d10v.h (REGISTER_NAMES): sp -> r15. The
stack pointer et al are synthesized from the SP_REGNUM (etc)
defines and should not be mentioned in REGISTER_NAMES.
There is a log discussion copied into PR 15966 about how this is not
handled consistently across all targets and we ought to clean it up
a bit. I'm not tackling the general for this PR, though.
* config/mips/tm-irix5.h: Modify to work better on irix 6, by
making FP registers 8 bytes instead of 4.
REGISTER_BYTES: redefine. REGISTER_BYTE(): redefine.
REGISTER_VIRTUAL_TYPE: redefine. MIPS_LAST_ARG_REGNUM: redefine.
* irix5-nat.c (fetch_core_registers): read 8 bytes per FP register.
* mips-tdep.c (FP_REGISTER_DOUBLE): new macro to distinguish
targets with 8-byte FP registers (don't use TARGET_MIPS64).
(STACK_ARGSIZE): new macro, how much space is taken up on the
stack for each function argument (don't use TARGET_MIPS64).
(mips_push_arguments): modify logic to work better on Irix 6
(n32 ABI).
set endianness based on machine type.
(_initialize_sparc_tdep): Initialize target_architecture_hook.
(sparc_print_register_hook): Print PSR and FPSR in fancy format
on 32-bit machines.
* config/sparc/tm-sparc.h (PRINT_REGISTER_HOOK): Redefine to
call sparc_print_register_hook instead of using inline code.
* config/sparc/tm-sp64.h (PRINT_REGISTER_HOOK): Remove.
%o0-%o5 as 64-bit values; compensate for stack bias.
(USE_STRUCT_CONVENTION): We only pass pointers to structs
if they're larger than 32 bytes.
(REG_STRUCT_HAS_ADDR): Ditto.
* sparc-tdep.c (sparc_init_extra_frame_info): Use read_sp()
instead of read_register. If the target is a sparc64 and the frame
pointer is odd, compensate for the stack bias.
(get_saved_register): Use read_sp().
(DUMMY_STACK_REG_BUF_SIZE): Use FP_REGISTER_BYTES.
(sparc_push_dummy_frame): Use read_sp()/write_sp(). On sparc64,
save the PC, NPC, CCR, FSR, FPRS, Y and ASI registers.
(sparc_frame_find_saved_regs): Use read_sp(). Read the PC, NPC,
CCR, FSR, FPRS, Y and ASI registers from the frame, if it's a
dummy frame.
(sparc_pop_frame): Use write_sp(). If the target is a sparc64 and
the FP is odd, compensate for stack bias.
(sparc_store_return_value): Right-justify the return value before
writing it to %o0.
(sparc_fix_call_dummy): Don't NOP out part of the call dummy on
sparc64.
(sparc64_read_sp, sparc64_read_fp, sparc64_write_sp,
sparc64_write_fp, sp64_push_arguments,
sparc64_extract_return_value): New functions to support the
sparc64 ABI.
* dwarfread.c (handle_producer): Set processing_gcc_compilation to
the right version number.
* dwarf2read.c (read_file_scope): Assume we're processing
GCC2 output.
make it work on the simulator.
(FIX_CALL_DUMMY): Convert to function call instead of inline code.
(sparc_fix_call_dummy): Declare.
* sparc-tdep.c (sparc_fix_call_dummy): New function, taken from
old FIX_CALL_DUMMY macro, with additional fixes for simulator.
(sparc_push_dummy_frame): Set registers differently on simulator
to prevent corrupted register window save areas.
* procfs.c: Added replacement macros for LWP stuff. Fixed support
for UnixWare / SVR4.2MP targets and any targets which use
multi-file /proc entries. Fixed support for hardware watchpoints.
* solib.c: SCO needs some of the same code as SunOS. Change
preprocessor conditionals.
* config/i386/i386sco5.mt: New file.
* config/i386/tm-i386sco5.h: New file.
* config/i386/i386sco5.mh (NATDEPFILES): add i386v-nat.o.
* config/i386/nm-i386v42mp.h
(TARGET_HAS_HARDWARE_WATCHPOINTS): define.
Add other macros for hardware assisted watchpoints.
* config/i386/nm-i386sco5.h: Correct attributions.
(TARGET_HAS_HARDWARE_WATCHPOINTS): define.
* config/i386/nm-linux.h (target_remote_watchpoint): Pass
'type' through to i386_insert_watchpoint.
Mon Apr 20 14:12:30 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* infrun.c (wait_for_inferior): Don't add signalled processes
as new threads.
* procfs.c (wait_fd): Note if LWP has exited.
(procfs_wait): use GETPID to get process ID.
NOTE: I didn't commit Kean's changes to configure.host/configure.tgt
yet because they are kind of bogus and I'm punting back to him to let
him figure out what he's trying to do. So configuring for UnixWare
may not work just yet.
(sparc_extract_return_value): New function, required to handle
machines without floating point.
(sparc_store_return_value): Ditto.
* config/sparc/tm-sparc.h (EXTRACT_RETURN_VALUE): Call
sparc_extract_return_value instead of using inline code.
(sparc_extract_return_value): Declare.
(STORE_RETURN_VALUE): Call sparc_store_return_value instead
of using inline code.
(sparc_store_return_value): Declare.
work correctly on little-endian hosts.
(sparc_push_arguments): New function.
(gdb_print_insn_sparc): New function.
(_initialize_sparc_tdep): Make gdb_print_insn_sparc the default
disassembler, so that SPARClite-specific instructions will
be recognized.
* sparcl-tdep.c (readchar): Print debugging information.
(debug_serial_write): New function, a replacement for SERIAL_WRITE
that prints debugging information.
* config/sparc/tm-sparc.h (PUSH_ARGUMENTS): Define.
(sparc_push_arguments): Declare.
* configure.tgt: Switch over to use tm-4320.h. Since I switched to
MIPS EABI the fixes are no longer backward compatible with 4300.
* tm-vr4320.h: Added
* vr4320.mt: Added
Update support for x86 Solaris 2.
* config/i386/tm-i386sol2.h, nm-i386sol2.h: New configuration
files for x86 Solaris 2.
* config/i386/i386sol2.mt, i386sol2.mh: Use them.
* config/sparc/tm-sun4sol2.h (PROCFS_GET_CARRY): New macro, extract
carry flag from a given regset.
(IS_STATIC_TRANSFORM_NAME): New macro, check if a symbol name
is a SunPro transformed name.
* i386-tdep.c (sunpro_static_transform_name): New function to
extract the source name from a SunPro transformed name.
* inferior.h (procfs_first_available, procfs_get_pid_fd):
Add prototypes.
* infrun.c (wait_for_inferior): Handle breakpoint hit in
signal handler without intervening stop in sigtramp.
* procfs.c (procfs_lwp_creation_handler): Use PROCFS_GET_CARRY
instead of direct access to the status register.
(procfs_get_pid_fd): New function, returns procfs fd for a given pid.
* sol-thread.c (ps_lgetLDT): New function, returns LDT for a given
lwpid.
(sol_find_new_threads): Handle failed libthread_db initialization
gracefully.
* stabsread.c (define_symbol): Use IS_STATIC_TRANSFORM_NAME
to check for a SunPro transformed symbol name.
* ns32k-tdep.c (flip_bytes, ns32k_localcount,
ns32k_get_enter_addr, sign_extend): Restore functions mysteriously
deleted.
* ns32knbsd-nat.c: New (?) file to support fetching and storing
registers on NetBSD hosts.
* nbsd.mh (NATDEPFILES): put ns32knbsd-nat.o instead of
ns32k-nat.o
* ns32km3-nat.c (reg_offset): Get order of floating point
registers correct. Add extra 32382 register offsets.
(REG_ADDRESS): define to point at correct part of thread
state. Use calls to "warning" instead of "message".
* tm-nbsd.h, tm-ns32km3.h (REGISTER_NAMES, NUM_REGS,
REGISTER_BYTES, REGISTER_BYTE): redefine allowing for 32382
fpu registers.
* config/d10v/d10v.mt config/d30v/d30v.mt config/m32r/m32r.mt
config/mn10200/mn10200.mt config/mn10300/mn10300.mt : Remove -lm
from SIM. This prevents dependency checking of -lm (under NT
native builds). (It is automatically added by configure if it
exists.)
* doc/configure mswin/configure nlm/configure
testsuite/gdb.base/configure testsuite/gdb.c++/configure
testsuite/gdb.chill/configure testsuite/gdb.disasm/configure
testsuite/gdb.stabs/configure testsuite/gdb.threads/configure:
Regenerate with autoconf 2.12.1 to fix shell issues for NT native
builds.
* gdbserver/Makefile.in: add dependency on XM_CLIBS.
* gdbserver/low-sim.c (registers) force into alignment.
(create_inferior): Fix typo on new_argv; add abfd arg to
sim_open, sim_create_inferior. Add reg_size arg to
sim_fetch_register, sim_store_register. Make simulator
take a single-step to get into a known running state.
* gdbserver/gdbreplay.c: include fcntl.h for def'n of F_SETFL.
* gdbserver/server.c: Add remote_debug variable to control
debug output.
* gdbserver/server.h: Add prototypes for enable/disable_async_io.
* gdbserver/remote-utils.c: add verbose debugging output controlled
by "remote_debug" variable. Add call to "disable_async_io()"
to avoid being killed by async SIGIO signals.
* config/m32r/m32r.mt: define GDBSERVER_(LIBS and DEPFILES),
so that gdbserver can be built with the m32r simulator.
* config/m68k/xm-sun3os4.h: Remove malloc declarations, they
are handled via autoconf now.
* remote.c (remote_ops, extended_remote_ops): Replace static
forward declaration by moving the static definition to the top of
the file, for old K&R compilers.
* tracepoint.c (collect_symbol, trace_start_command):
Replace ANSI string concatenation with K&R compatible simple string.
Configuration triple mips64vr4111-*-elf
64 bit architecture
16 bit sub core
32 bit ints and floats
No floating point unit
MIPS EABI interface
Dwarf2 debugging format
* m68k/tm-delta68.h (EXTRACT_RETURN_VALUE): Type argument for
`REGISTER_CONVERT_TO_VIRTUAL is `TYPE', not
`REGISTER_VIRTUAL_TYPE (FP0_REGNUM)';
(STORE_RETURN_VALUE): Ditto, and offset for `write_register_bytes'
is `REGISTER_BYTE (FP0_REGNUM)', not `FP0_REGNUM'.
(FRAME_NUM_ARGS): New macro.
* m68k/tm-news.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Ditto.
* delta68-nat.c (clear_insn_cache): New function, forgotten in previous
patch.
* m68k/tm-delta68.h (CPLUS_MARKER): Macro deleted.
(EXTRACT_STRUCT_VALUE_ADDRESS): Macro defined.
(EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Macros modified
because floating-point values return via %fp0.
(CLEAR_INSN_CACHE): New macro.
* m68k/tm-m68k.h (REGISTER_CONVERT_TO_VIRTUAL): Macro fixed
to use DOUBLEST.
(REGISTER_CONVERT_TO_RAW): Ditto.
* infptrace.c (child_xfer_memory): If CLEAR_INSN_CACHE is defined,
call it after having written in child process's memory.
* inflow.c (PROCESS_GROUP_TYPE): Macro defined if HAVE_TERMIO.
(gdb_has_a_terminal, terminal_ours_1): Functions fixed for HAVE_TERMIO.
D10V_CONVERT_DADDR_TO_RAW): Define.
* d10v-tdep.c (d10v_push_arguments): Re-write. Pass arguments in
registers, regardless of their size, when they fit.
o Fix code assuming that host/target were both bigendian.
o Replace d10v push dummy frame code with version using new common
generic generic version.
o Find/fix more cases where a value needs to be translated to/from
instruction (IMAP) or data (DMAP) spaces.
(TARGET_READ_FP): Define to d10v_read_fp rather than d10v_read_sp.
(TARGET_WRITE_FP): Define to d10v_write_fp rather than d10v_write_sp.
(d10v_write_fp, d10v_read_fp): Add prototypes.
* symtab.c (decode_line_1): Remove assignment of sals[0].pc field.
* symfile.c (simple_overlay_update, simple_overlay_update_1):
Ignore the size of overlay sections. This check is redundant anyway.
* printcmd.c (print_frame_args): Ditto.
* valops.c (value_fetch_lazy): Ditto.
* values.c (unpack_long): Ditto.
* d10v-tdep.c (d10v_frame_chain, d10v_frame_find_saved_regs,
d10v_init_extra_frame_info): Fix some minor bugs so the finish command
works properly.
(show_regs): Change num1 and num2 types from "long long" to "LONGEST".
(d10v_read_fp, d10v_write_fp): New functions.
(d10v_push_arguments): Remove unneeded assigns to "val" and "contents".
(d10v_push_arguments): Fix for pointers and structs.
(d10v_extract_return_value): Fix for pointers and chars.
recognition, no source files for these (note that the i386 Mach
is pre-Mach 3).
(mips*-*-mach3*, ns32k-*-mach3*): Fix file names.
* config/mips/mipsel64.mt: Remove, never referenced.
* monitor.c (monitor_debug): Move to utils.c, rename to puts_debug.
(monitor_write_memory, monitor_read_memory, monitor_insert_breakpoint,
monitor_remove_breakpoint): Remove useless address bits if current
monitor has MO_ADDR_BITS_REMOVE flag.
* monitor.h (MO_ADDR_BITS_REMOVE): Define.
* utils.c (puts_debug): Formerly monitor_debug from monitor.c;
move here and make public. Add better support for carriage returns.
* defs.h (puts_debug): Declare.
* dsrec.c (load_srec): Use puts_debug to print remotedebug information.
Output header record correctly.
(make_srec): Output a header record instead of a termination record
if sect is non-NULL (value is ignored), but abfd is NULL.
* config/mips/tm-tx39.h (DEFAULT_MIPS_TYPE): Remove definition.
(REGISTER_NAMES): Define to add R3900-specific registers.
* config/mips/tm-tx39l.h: Ditto.
* config/mips/tx39.mt (TDEPFILES): Add dve3900-rom.o and support files.
* config/mips/tx39l.mt: Ditto.
arguments are passed in args registers until we run out; finding saved regs
now has two offsets not just one doing double duty.
TARGET_READ_SP / TARGET_WRITE_SP are (temporarily?) commented out.
In dwarf2read.c, if the ABI is 32 bit and 64 bit addresses are encountered
discard the most significant 32 bits.
Use CORE_ADDR for address variables instead of long.
Add more explicit tx49 configur target.
Check/use sigaction/SA_RESTART in remote-sim.c
than sprinkled throughout the code. changes to several functions; backtraces
now work and calling functions in the inferior partially works. Registers
do not yet track the frame.
To configure.in: make PRINTF_HAS_LONG_LONG check more pedantic; check
that SCANF_HAS_LONG_DOUBLE instead of assuming PRINTF_HAS_LONG_DOUBLE
implies it; document.
* config/i386/cygwin32.mh: because cygwin.dll calls malloc/realloc
to allocate memory for environ space, gdb cannot use memory
checks -- set -DNO_MMCHECK