From f6427adebb21b17d4dfb8e5a038b823ccb9e78ee Mon Sep 17 00:00:00 2001 From: "J.T. Conklin" Date: Mon, 22 Jan 2001 20:23:25 +0000 Subject: [PATCH] * ns32k-tdep.c: #include "frame.h" * config/ns32k/tm-umax.h (FRAME_FIND_SAVED_REGS): Restore. It appears to have been inadvertantly removed sometime in May 1999. * Revert 2000-11-09 changes where shared library objects were moved from NATDEPFILES to TDEPFILES on NetBSD targets. While we'd like to be able to debug dynamically linked executables, this makes it impossible to build a cross debugger on a many hosts. * config/i386/nbsd.mt: Remove solib.o, solib-svr4.o from TDEPFILES. * config/i386/nbsdelf.mt: Likewise. * config/m68k/nbsd.mt: Likewise. * config/ns32k/nbsd.mt: Likewise. * config/powerpc/nbsd.mt: Likewise. * config/sparc/nbsd.mt: Likewise. * config/sparc/nbsdelf.mt: Likewise. * config/i386/nbsd.mh: Add solib.o, solib-svr4.o to NATDEPFILES. * config/i386/nbsdelf.mh: Likewise. * config/m68k/nbsd.mh: Likewise. * config/ns32k/nbsd.mh: Likewise. * config/powerpc/nbsd.mh: Likewise. * config/sparc/nbsd.mh: Likewise. --- gdb/ChangeLog | 26 ++++++++++++++++++++++++++ gdb/config/i386/nbsd.mh | 2 +- gdb/config/i386/nbsd.mt | 2 +- gdb/config/i386/nbsdelf.mh | 2 +- gdb/config/i386/nbsdelf.mt | 2 +- gdb/config/m68k/nbsd.mh | 2 +- gdb/config/m68k/nbsd.mt | 2 +- gdb/config/ns32k/nbsd.mh | 2 +- gdb/config/ns32k/nbsd.mt | 2 +- gdb/config/ns32k/tm-umax.h | 37 +++++++++++++++++++++++++++++++++++-- gdb/config/powerpc/nbsd.mh | 2 +- gdb/config/powerpc/nbsd.mt | 2 +- gdb/config/sparc/nbsd.mh | 2 +- gdb/config/sparc/nbsd.mt | 2 +- gdb/config/sparc/nbsdelf.mh | 2 +- gdb/ns32k-tdep.c | 1 + 16 files changed, 75 insertions(+), 15 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ffaf8d37949..6206f21ae5f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,29 @@ +2001-01-22 J.T. Conklin + + * ns32k-tdep.c: #include "frame.h" + * config/ns32k/tm-umax.h (FRAME_FIND_SAVED_REGS): Restore. It + appears to have been inadvertantly removed sometime in May 1999. + + * Revert 2000-11-09 changes where shared library objects were + moved from NATDEPFILES to TDEPFILES on NetBSD targets. While + we'd like to be able to debug dynamically linked executables, + this makes it impossible to build a cross debugger on a many + hosts. + + * config/i386/nbsd.mt: Remove solib.o, solib-svr4.o from TDEPFILES. + * config/i386/nbsdelf.mt: Likewise. + * config/m68k/nbsd.mt: Likewise. + * config/ns32k/nbsd.mt: Likewise. + * config/powerpc/nbsd.mt: Likewise. + * config/sparc/nbsd.mt: Likewise. + * config/sparc/nbsdelf.mt: Likewise. + * config/i386/nbsd.mh: Add solib.o, solib-svr4.o to NATDEPFILES. + * config/i386/nbsdelf.mh: Likewise. + * config/m68k/nbsd.mh: Likewise. + * config/ns32k/nbsd.mh: Likewise. + * config/powerpc/nbsd.mh: Likewise. + * config/sparc/nbsd.mh: Likewise. + 2001-01-19 Jason Merrill * dbxread.c (read_ofile_symtab): Stay with AUTO_DEMANGLING for G++. diff --git a/gdb/config/i386/nbsd.mh b/gdb/config/i386/nbsd.mh index 78fed461ba6..dce0eb5a585 100644 --- a/gdb/config/i386/nbsd.mh +++ b/gdb/config/i386/nbsd.mh @@ -1,5 +1,5 @@ # Host: Intel 386 running NetBSD XDEPFILES= -NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o +NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o solib.o solib-svr4.o XM_FILE= xm-nbsd.h NAT_FILE= nm-nbsd.h diff --git a/gdb/config/i386/nbsd.mt b/gdb/config/i386/nbsd.mt index 4fa592c571b..aede1c397ef 100644 --- a/gdb/config/i386/nbsd.mt +++ b/gdb/config/i386/nbsd.mt @@ -1,5 +1,5 @@ # Target: Intel 386 running NetBSD -TDEPFILES= i386-tdep.o i387-tdep.o i386nbsd-tdep.o solib.o solib-svr4.o +TDEPFILES= i386-tdep.o i387-tdep.o i386nbsd-tdep.o TM_FILE= tm-nbsd.h GDBSERVER_DEPFILES= low-nbsd.o diff --git a/gdb/config/i386/nbsdelf.mh b/gdb/config/i386/nbsdelf.mh index 993be012cf1..10e22dc9498 100644 --- a/gdb/config/i386/nbsdelf.mh +++ b/gdb/config/i386/nbsdelf.mh @@ -1,5 +1,5 @@ # Host: Intel 386 running NetBSD XDEPFILES= -NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o +NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o solib.o solib-svr4.o XM_FILE= xm-nbsd.h NAT_FILE= nm-nbsdelf.h diff --git a/gdb/config/i386/nbsdelf.mt b/gdb/config/i386/nbsdelf.mt index e7bff449597..278217332fe 100644 --- a/gdb/config/i386/nbsdelf.mt +++ b/gdb/config/i386/nbsdelf.mt @@ -1,5 +1,5 @@ # Target: Intel 386 running NetBSD -TDEPFILES= i386-tdep.o i387-tdep.o solib.o solib-svr4.o +TDEPFILES= i386-tdep.o i387-tdep.o TM_FILE= tm-nbsdelf.h GDBSERVER_DEPFILES= low-nbsd.o diff --git a/gdb/config/m68k/nbsd.mh b/gdb/config/m68k/nbsd.mh index 0815d71940a..4300ff9a4ae 100644 --- a/gdb/config/m68k/nbsd.mh +++ b/gdb/config/m68k/nbsd.mh @@ -1,5 +1,5 @@ # Host: Motorola m68k running NetBSD XDEPFILES= -NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o m68knbsd-nat.o +NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o m68knbsd-nat.o solib.o solib-svr4.o XM_FILE= xm-nbsd.h NAT_FILE= nm-nbsd.h diff --git a/gdb/config/m68k/nbsd.mt b/gdb/config/m68k/nbsd.mt index fabc84ba5fb..5bfaa49fd92 100644 --- a/gdb/config/m68k/nbsd.mt +++ b/gdb/config/m68k/nbsd.mt @@ -1,5 +1,5 @@ # Target: Motorola m68k running NetBSD -TDEPFILES= m68k-tdep.o m68knbsd-tdep.o solib.o solib-svr4.o +TDEPFILES= m68k-tdep.o m68knbsd-tdep.o TM_FILE= tm-nbsd.h GDBSERVER_DEPFILES= low-nbsd.o diff --git a/gdb/config/ns32k/nbsd.mh b/gdb/config/ns32k/nbsd.mh index 14d374c715e..711cbe4f05c 100644 --- a/gdb/config/ns32k/nbsd.mh +++ b/gdb/config/ns32k/nbsd.mh @@ -1,5 +1,5 @@ # Host: PC532 running NetBSD XDEPFILES= -NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ns32knbsd-nat.o +NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ns32knbsd-nat.o solib.o solib-svr4.o XM_FILE= xm-nbsd.h NAT_FILE= nm-nbsd.h diff --git a/gdb/config/ns32k/nbsd.mt b/gdb/config/ns32k/nbsd.mt index 1656978b237..6eb86378a43 100644 --- a/gdb/config/ns32k/nbsd.mt +++ b/gdb/config/ns32k/nbsd.mt @@ -1,5 +1,5 @@ # Target: PC532 running NetBSD -TDEPFILES= ns32k-tdep.o solib.o solib-svr4.o +TDEPFILES= ns32k-tdep.o TM_FILE= tm-nbsd.h GDBSERVER_DEPFILES= low-nbsd.o diff --git a/gdb/config/ns32k/tm-umax.h b/gdb/config/ns32k/tm-umax.h index db8c978177a..7b2a4b59e23 100644 --- a/gdb/config/ns32k/tm-umax.h +++ b/gdb/config/ns32k/tm-umax.h @@ -222,6 +222,12 @@ extern CORE_ADDR umax_skip_prologue (CORE_ADDR); extern CORE_ADDR ns32k_get_enter_addr (); +/* Return number of args passed to a frame. + Can return -1, meaning no way to tell. */ + +extern int umax_frame_num_args (struct frame_info *fi); +#define FRAME_NUM_ARGS(fi) (umax_frame_num_args ((fi))) + /* Return number of bytes at start of arglist that are not really args. */ #define FRAME_ARGS_SKIP 8 @@ -232,8 +238,35 @@ extern CORE_ADDR ns32k_get_enter_addr (); ways in the stack frame. sp is even more special: the address we return for it IS the sp for the next frame. */ -extern int umax_frame_num_args (struct frame_info *fi); -#define FRAME_NUM_ARGS(fi) (umax_frame_num_args ((fi))) +#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \ +{ \ + register int regmask, regnum; \ + int localcount; \ + register CORE_ADDR enter_addr; \ + register CORE_ADDR next_addr; \ + \ + memset (&(frame_saved_regs), '\0', sizeof (frame_saved_regs)); \ + enter_addr = ns32k_get_enter_addr ((frame_info)->pc); \ + if (enter_addr > 1) \ + { \ + regmask = read_memory_integer (enter_addr+1, 1) & 0xff; \ + localcount = ns32k_localcount (enter_addr); \ + next_addr = (frame_info)->frame + localcount; \ + for (regnum = 0; regnum < 8; regnum++, regmask >>= 1) \ + (frame_saved_regs).regs[regnum] = (regmask & 1) ? \ + (next_addr -= 4) : 0; \ + (frame_saved_regs).regs[SP_REGNUM] = (frame_info)->frame + 4;\ + (frame_saved_regs).regs[PC_REGNUM] = (frame_info)->frame + 4;\ + (frame_saved_regs).regs[FP_REGNUM] = \ + (read_memory_integer ((frame_info)->frame, 4));\ + } \ + else if (enter_addr == 1) \ + { \ + CORE_ADDR sp = read_register (SP_REGNUM); \ + (frame_saved_regs).regs[PC_REGNUM] = sp; \ + (frame_saved_regs).regs[SP_REGNUM] = sp + 4; \ + } \ +} /* Things needed for making the inferior call functions. */ diff --git a/gdb/config/powerpc/nbsd.mh b/gdb/config/powerpc/nbsd.mh index 341fa443f96..ea10d86bbbe 100644 --- a/gdb/config/powerpc/nbsd.mh +++ b/gdb/config/powerpc/nbsd.mh @@ -1,5 +1,5 @@ # Host: PowerPC, running NetBSD XDEPFILES= -NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ppcnbsd-nat.o +NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ppcnbsd-nat.o solib.o solib-svr4.o XM_FILE= xm-nbsd.h NAT_FILE= nm-nbsd.h diff --git a/gdb/config/powerpc/nbsd.mt b/gdb/config/powerpc/nbsd.mt index 8045fa570bb..7a32fd2db4c 100644 --- a/gdb/config/powerpc/nbsd.mt +++ b/gdb/config/powerpc/nbsd.mt @@ -1,5 +1,5 @@ # Target: PowerPC, running NetBSD -TDEPFILES= rs6000-tdep.o ppc-linux-tdep.o solib.o solib-svr4.o +TDEPFILES= rs6000-tdep.o ppc-linux-tdep.o TM_FILE= tm-nbsd.h GDBSERVER_DEPFILES= low-nbsd.o diff --git a/gdb/config/sparc/nbsd.mh b/gdb/config/sparc/nbsd.mh index 8974e7553b2..1ea8750fe4c 100644 --- a/gdb/config/sparc/nbsd.mh +++ b/gdb/config/sparc/nbsd.mh @@ -1,6 +1,6 @@ # Host: Sun 4 or Sparcstation, running NetBSD XDEPFILES= +NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o solib.o solib-svr4.o XM_FILE= xm-nbsd.h NAT_FILE= nm-nbsd.h -NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o HOST_IPC=-DBSD_IPC diff --git a/gdb/config/sparc/nbsd.mt b/gdb/config/sparc/nbsd.mt index 7735cf2311a..5c89318bfe9 100644 --- a/gdb/config/sparc/nbsd.mt +++ b/gdb/config/sparc/nbsd.mt @@ -1,3 +1,3 @@ # Target: Sun 4 or Sparcstation, running NetBSD -TDEPFILES= sparc-tdep.o solib.o solib-svr4.o +TDEPFILES= sparc-tdep.o TM_FILE= tm-nbsd.h diff --git a/gdb/config/sparc/nbsdelf.mh b/gdb/config/sparc/nbsdelf.mh index 8211a4f61ef..ebba3abc182 100644 --- a/gdb/config/sparc/nbsdelf.mh +++ b/gdb/config/sparc/nbsdelf.mh @@ -1,6 +1,6 @@ # Host: Sun 4 or Sparcstation, running NetBSD XDEPFILES= +NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o solib.o solib-svr4.o XM_FILE= xm-nbsd.h NAT_FILE= nm-nbsdelf.h -NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o HOST_IPC=-DBSD_IPC diff --git a/gdb/ns32k-tdep.c b/gdb/ns32k-tdep.c index 6f39c8cde7c..4e50c1c92e8 100644 --- a/gdb/ns32k-tdep.c +++ b/gdb/ns32k-tdep.c @@ -20,6 +20,7 @@ Boston, MA 02111-1307, USA. */ #include "defs.h" +#include "frame.h" void _initialize_ns32k_tdep (void) -- 2.30.2