* Makefile.in (MMALLOC_CFLAGS): Eliminate intermediate MMALLOC_DISABLE
authorFred Fish <fnf@specifix.com>
Thu, 11 Jul 1996 07:41:51 +0000 (07:41 +0000)
committerFred Fish <fnf@specifix.com>
Thu, 11 Jul 1996 07:41:51 +0000 (07:41 +0000)
and MMALLOC_CHECK macros, and add comment indicating how host dependent
makefile fragment should modify MMALLOC_CFLAGS to not use mmalloc, or
to use it but to not do heap corruption checking.
* gdbserver/Makefile.in: Ditto.
* utils.c (init_malloc): Replace warning() use with direct call of
fprintf_unfiltered, since current_target has not yet been set and thus
  we cannot use warning().  If we try to use mmcheck and it fails,
suggest that this configuration needs NO_MMCHECK or MMCHECK_FORCE
  defined.  Other small mmalloc related cleanups.
* config/sparc/sun4os4.mh (MMALLOC_CFLAGS): Define MMCHECK_FORCE to 1.
* config/alpha/alpha-osf2.mh (MMALLOC_CFLAGS): Set to -DNO_MMCHECK.

* config/sparc/xm-sun4os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/i386/xm-i386v4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/m68k/xm-hp300hpux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/m68k/xm-m68kv4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT);
* config/m68k/xm-sun3os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/pa/xm-hppah.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/sparc/xm-sun4sol2.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
Remove obsolete defines.

* config/alpha/alpha-linux.mh (MMALLOC_DISABLE):
* config/alpha/alpha-osf1.mh (MMALLOC_DISABLE):
* config/rs6000/rs6000.mh (MMALLOC_DISABLE):
* config/rs6000/aix4.mh (MMALLOC_DISABLE):
* config/powerpc/aix4.mh (MMALLOC_DISABLE):
* config/powerpc/aix.mh (MMALLOC_DISABLE):
* config/ns32k/ns32km3.mh (MMALLOC_DISABLE):
* config/mips/mipsm3.mh (MMALLOC_DISABLE):
* config/mips/decstation.mh (MMALLOC_DISABLE):
* config/m88k/cxux.mh (MMALLOC_DISABLE):
* config/i386/i386mk.mh (MMALLOC_DISABLE):
* config/i386/i386m3.mh (MMALLOC_DISABLE):
* config/i386/i386gnu.mh (MMALLOC_DISABLE):
Use MMALLOC_CFLAGS instead.

24 files changed:
gdb/ChangeLog
gdb/Makefile.in
gdb/config/alpha/alpha-osf3.mh [new file with mode: 0644]
gdb/config/i386/i386gnu.mh [new file with mode: 0644]
gdb/config/i386/i386m3.mh
gdb/config/i386/i386mk.mh
gdb/config/i386/xm-i386v4.h
gdb/config/i386/xm-linux.h
gdb/config/m68k/xm-hp300hpux.h
gdb/config/m68k/xm-m68kv4.h
gdb/config/m68k/xm-sun3os4.h
gdb/config/m88k/cxux.mh
gdb/config/mips/decstation.mh
gdb/config/mips/mipsm3.mh
gdb/config/ns32k/ns32km3.mh
gdb/config/pa/xm-hppah.h
gdb/config/powerpc/aix4.mh
gdb/config/sparc/sun4os4.mh
gdb/config/sparc/xm-sun4os4.h
gdb/config/sparc/xm-sun4sol2.h
gdb/doc/ChangeLog
gdb/doc/gdbint.texinfo
gdb/objfiles.c
gdb/utils.c

index 0b80a47fd65ee70efa356136f56b55f0979b585f..50ed4e1e5e916b95c48eb6136a12259d9a1a6915 100644 (file)
@@ -1,3 +1,43 @@
+Wed Jul 10 16:54:41 1996  Fred Fish  <fnf@cygnus.com>
+
+       * Makefile.in (MMALLOC_CFLAGS): Eliminate intermediate MMALLOC_DISABLE
+       and MMALLOC_CHECK macros, and add comment indicating how host dependent
+       makefile fragment should modify MMALLOC_CFLAGS to not use mmalloc, or
+       to use it but to not do heap corruption checking.
+       * gdbserver/Makefile.in: Ditto.
+       * utils.c (init_malloc): Replace warning() use with direct call of
+       fprintf_unfiltered, since current_target has not yet been set and thus
+       we cannot use warning().  If we try to use mmcheck and it fails,
+       suggest that this configuration needs NO_MMCHECK or MMCHECK_FORCE
+       defined.  Other small mmalloc related cleanups.
+       * config/sparc/sun4os4.mh (MMALLOC_CFLAGS): Define MMCHECK_FORCE to 1.
+       * config/alpha/alpha-osf2.mh (MMALLOC_CFLAGS): Set to -DNO_MMCHECK.
+
+       * config/sparc/xm-sun4os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
+       * config/i386/xm-i386v4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): 
+       * config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
+       * config/m68k/xm-hp300hpux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
+       * config/m68k/xm-m68kv4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT);
+       * config/m68k/xm-sun3os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
+       * config/pa/xm-hppah.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
+       * config/sparc/xm-sun4sol2.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
+       Remove obsolete defines.
+
+       * config/alpha/alpha-linux.mh (MMALLOC_DISABLE):
+       * config/alpha/alpha-osf1.mh (MMALLOC_DISABLE):
+       * config/rs6000/rs6000.mh (MMALLOC_DISABLE):
+       * config/rs6000/aix4.mh (MMALLOC_DISABLE):
+       * config/powerpc/aix4.mh (MMALLOC_DISABLE):
+       * config/powerpc/aix.mh (MMALLOC_DISABLE):
+       * config/ns32k/ns32km3.mh (MMALLOC_DISABLE):
+       * config/mips/mipsm3.mh (MMALLOC_DISABLE):
+       * config/mips/decstation.mh (MMALLOC_DISABLE):
+       * config/m88k/cxux.mh (MMALLOC_DISABLE):
+       * config/i386/i386mk.mh (MMALLOC_DISABLE):
+       * config/i386/i386m3.mh (MMALLOC_DISABLE):
+       * config/i386/i386gnu.mh (MMALLOC_DISABLE):
+       Use MMALLOC_CFLAGS instead.
+
 Tue Jul  9 22:41:12 1996  Jeffrey A Law  (law@cygnus.com)
 
        * h8300-tdep.c: Remove some outdated comments.
index 8f683550959e1c7b3683ac1a5171b83bf1df1804..4144406bd68f8654a26313ecd77df2bb9bbcc796 100644 (file)
@@ -88,15 +88,17 @@ LIBIBERTY = ../libiberty/libiberty.a
 
 # Where is the MMALLOC library?  Typically in ../mmalloc.
 # Note that mmalloc can still be used on systems without mmap().
-# To use your system malloc, comment out the following defines.
+# To use your system malloc, in the host makefile fragment set MMALLOC_CFLAGS
+# to -DNO_MMALLOC and set MMALLOC to empty.
+# To use mmalloc but not use heap checking, in the host makefile fragment set
+# MMALLOC_CFLAGS to the value below but add -DNO_MMCHECK.
+# To use mmalloc and heap checking on a system where the C runtime allocates
+# memory that is never freed, in the host makefile fragment set MMALLOC_CFLAGS
+# to the value below and add -DFORCE_MMCHECK=1
 MMALLOC_DIR = ../mmalloc
 MMALLOC_SRC = $(srcdir)/$(MMALLOC_DIR)
 MMALLOC = $(MMALLOC_DIR)/libmmalloc.a
-# To use your system malloc, uncomment MMALLOC_DISABLE.
-#MMALLOC_DISABLE = -DNO_MMALLOC
-# To use mmalloc but disable corruption checking, uncomment MMALLOC_CHECK
-#MMALLOC_CHECK = -DNO_MMALLOC_CHECK
-MMALLOC_CFLAGS = -I$(MMALLOC_SRC) $(MMALLOC_CHECK) $(MMALLOC_DISABLE)
+MMALLOC_CFLAGS = -I$(MMALLOC_SRC)
 
 # Where is the BFD library?  Typically in ../bfd.
 BFD_DIR = ../bfd
diff --git a/gdb/config/alpha/alpha-osf3.mh b/gdb/config/alpha/alpha-osf3.mh
new file mode 100644 (file)
index 0000000..0ee035b
--- /dev/null
@@ -0,0 +1,5 @@
+# Host: Little-endian Alpha running OSF/1-3.x and higher using procfs
+XDEPFILES= 
+XM_FILE= xm-alpha.h
+NAT_FILE= nm-osf3.h
+NATDEPFILES= infptrace.o inftarg.o corelow.o alpha-nat.o fork-child.o osfsolib.o procfs.o
diff --git a/gdb/config/i386/i386gnu.mh b/gdb/config/i386/i386gnu.mh
new file mode 100644 (file)
index 0000000..75cba98
--- /dev/null
@@ -0,0 +1,36 @@
+# Host: Intel 386 running the GNU Hurd
+XDEPFILES= i387-tdep.o
+NATDEPFILES= i386gnu-nat.o gnu-nat.o fork-child.o solib.o notify_S.o process_reply_S.o msg_reply_S.o msg_U.o exc_request_U.o exc_request_S.o
+XM_FILE= xm-i386gnu.h
+NAT_FILE= nm-gnu.h
+
+# Use our own user stubs for the msg rpcs, so we can make them time out, in
+# case the program is fucked, or we guess the wrong signal thread.
+msg-MIGUFLAGS = -D'MSG_IMPORTS=waittime 1000;'
+
+# ick
+MIG = mig
+MIGCOM = $(MIG) -cc cat - /dev/null
+
+# Reply servers need special massaging of the code mig generates, to make
+# them work correctly for error returns in some cases.
+%_reply_S.h %_reply_S.c: %_reply.defs
+       $(CPP) $(CPPFLAGS) -DSERVERPREFIX=S_ -x c $< \
+       | $(MIGCOM) -sheader $*_reply_S.h -server $*_reply_S.raw -user /dev/null -header /dev/null \
+       && $(AWK) -f $(srcdir)/reply_mig_hack.awk < $*_reply_S.raw > $*_reply_S.c
+# Normal servers
+%_S.h %_S.c: %.defs
+       $(CPP) $(CPPFLAGS) -DSERVERPREFIX=S_ -x c $< \
+       | $(MIGCOM) -sheader $*_S.h -server $*_S.c -user /dev/null -header /dev/null
+# User rpc stubs
+%_U.h %_U.c: %.defs
+       $(CPP) $(CPPFLAGS) $($*-MIGUFLAGS) -x c $< \
+       | $(MIGCOM) -sheader /dev/null -server /dev/null -user $*_U.c -header $*_U.h
+
+gnu-nat.o: process_reply_S.h exc_request_S.h notify_S.h msg_reply_S.h exc_request_U.h msg_U.h
+
+gnu-nat.o i386gnu-nat.o: gnu-nat.h
+
+# Don't use the mmalloc library in Mach 3.
+MMALLOC = 
+MMALLOC_CFLAGS = -DNO_MMALLOC
index 66f984798cb33e9e96f3ccd32c0fe999e890bfcf..3b996df7e4bbbc7ce979d7eb67f31a8eb07a6631 100644 (file)
@@ -8,4 +8,4 @@ NAT_FILE= nm-m3.h
 
 # Don't use the mmalloc library in Mach 3.
 MMALLOC = 
-MMALLOC_DISABLE = -DNO_MMALLOC
+MMALLOC_CFLAGS = -DNO_MMALLOC
index cf1da571b0becb799f169e732977db9db09e2e0c..3b2d524e6affca82e12c8ade8c8a0838ce35dbb8 100644 (file)
@@ -5,4 +5,4 @@ XM_FILE= xm-i386osf1mk.h
 
 # Don't use the mmalloc library in Mach 3.
 MMALLOC = 
-MMALLOC_DISABLE = -DNO_MMALLOC
+MMALLOC_CFLAGS = -DNO_MMALLOC
index 7d5aff04ecdc2ee33c05cf382714c56769376986..7f782db24964502572eb5c04942e82b41292acee 100644 (file)
@@ -25,13 +25,3 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* Pick up more stuff from the generic SVR4 host include file. */
 
 #include "xm-sysv4.h"
-
-/* If you expect to use the mmalloc package to obtain mapped symbol files,
-   for now you have to specify some parameters that determine how gdb places
-   the mappings in it's address space.  See the comments in map_to_address()
-   for details.  This is expected to only be a short term solution.  Yes it
-   is a kludge.
-   FIXME:  Make this more automatic. */
-
-#define MMAP_BASE_ADDRESS      0x81000000      /* First mapping here */
-#define MMAP_INCREMENT         0x01000000      /* Increment to next mapping */
index 50049260d20887a230cbbef4f6497104e3557152..f63d8fc3f4742229224d4bbcc59c33d3c3cf6406 100644 (file)
@@ -33,14 +33,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* Need R_OK etc, but USG isn't defined.  */
 #include <unistd.h>
 
-/* If you expect to use the mmalloc package to obtain mapped symbol files,
-   for now you have to specify some parameters that determine how gdb places
-   the mappings in it's address space.  See the comments in map_to_address()
-   for details.  This is expected to only be a short term solution.  Yes it
-   is a kludge.
-   FIXME:  Make this more automatic. */
-
-#define MMAP_BASE_ADDRESS      0x20000000      /* First mapping here */
-#define MMAP_INCREMENT         0x01000000      /* Increment to next mapping */
-
 #endif /* #ifndef XM_LINUX_H */
index fc29638677dd02134ee5e2c79b36f0856c2a6e1b..868bcbff56c2819197130ba2e4d41b0bb52e6b0e 100644 (file)
@@ -71,16 +71,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
   0, 0, 0, 0, 0, 0, 0, 0, \
   SIGILL }
 
-/* If you expect to use the mmalloc package to obtain mapped symbol files,
-   for now you have to specify some parameters that determine how gdb places
-   the mappings in it's address space.  See the comments in map_to_address()
-   for details.  This is expected to only be a short term solution.  Yes it
-   is a kludge.
-   FIXME:  Make this more automatic. */
-
-#define MMAP_BASE_ADDRESS      0xA0000000      /* First mapping here */
-#define MMAP_INCREMENT         0x01000000      /* Increment to next mapping */
-
 /* On hpux, autoconf 2.4 (and possibly others) does not properly detect that
    mmap is available.  Until this is fixed, we have to explicitly force 
    HAVE_MMAP.  -fnf */
index c30dee5f6e59e20284a835228d0c6d97a817640a..2149c8ffd65f2c5a26602314e3752daa7188dc05 100644 (file)
@@ -26,13 +26,3 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* Pick up more stuff from the generic SVR4 host include file. */
 
 #include "xm-sysv4.h"
-
-/* If you expect to use the mmalloc package to obtain mapped symbol files,
-   for now you have to specify some parameters that determine how gdb places
-   the mappings in it's address space.  See the comments in map_to_address()
-   for details.  This is expected to only be a short term solution.  Yes it
-   is a kludge.
-   FIXME:  Make this more automatic. */
-
-#define MMAP_BASE_ADDRESS      0xC2000000      /* First mapping here */
-#define MMAP_INCREMENT         0x01000000      /* Increment to next mapping */
index 7bc1ea25852471c7e872b7c99f2f040c98ae5030..5d81cc585e5611de78120bbe93ff290da874038a 100644 (file)
@@ -20,16 +20,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "m68k/xm-sun3.h"
 #define FPU
 
-/* If you expect to use the mmalloc package to obtain mapped symbol files,
-   for now you have to specify some parameters that determine how gdb places
-   the mappings in it's address space.  See the comments in map_to_address()
-   for details.  This is expected to only be a short term solution.  Yes it
-   is a kludge.
-   FIXME:  Make this more automatic. */
-
-#define MMAP_BASE_ADDRESS      0xE0000000      /* First mapping here */
-#define MMAP_INCREMENT         0x01000000      /* Increment to next mapping */
-
 /* Prevent type conflicts between yacc malloc decls and defs.h */
 #define MALLOC_INCOMPATIBLE
 extern char *malloc();
index 4a0d8fd026b00ff96308944fea7e9918275c75bd..cc3cfc290024ef144156233142c8f09a7e3c96c7 100644 (file)
@@ -7,4 +7,4 @@ NAT_FILE= nm-cxux.h
 NATDEPFILES= infptrace.o inftarg.o fork-child.o cxux-nat.o corelow.o core-aout.o
 
 MMALLOC=
-MMALLOC_DISABLE= -DNO_MMALLOC
+MMALLOC_CFLAGS= -DNO_MMALLOC
index dc55b5b87db86373308c091e3ab37dd553f87500..d7baecf1e3c4fc67405f9f088b724ace6af41f8b 100644 (file)
@@ -8,4 +8,4 @@ NATDEPFILES= infptrace.o inftarg.o corelow.o mips-nat.o fork-child.o
 # with a malloc(0) that returns 0.  Besides, it's useless on a machine
 # without a real mmap().
 MMALLOC = 
-MMALLOC_DISABLE = -DNO_MMALLOC
+MMALLOC_CFLAGS = -DNO_MMALLOC
index 77279bd8237acf529bfde84a1defad035221f13d..3be486f00cfe367feaa90ce8830e19e78d615ae2 100644 (file)
@@ -8,4 +8,4 @@ NAT_FILE= ../nm-m3.h
 
 # Don't use the mmalloc library in Mach 3.
 MMALLOC = 
-MMALLOC_DISABLE = -DNO_MMALLOC
+MMALLOC_CFLAGS = -DNO_MMALLOC
index c1c88b63d53643503c7965627903c565c4b6e5d1..363b04da90e4b18baf03dfa84fb71cfadcf7bc86 100644 (file)
@@ -8,4 +8,4 @@ NAT_FILE= nm-m3.h
 
 # Don't use the mmalloc library in Mach 3.
 MMALLOC = 
-MMALLOC_DISABLE = -DNO_MMALLOC
+MMALLOC_CFLAGS = -DNO_MMALLOC
index 412bf03c7e5e2c218c847f339b1e4ffb09170dfe..1b2a294e57ddc53bd86e17f612904a1e5a880cbb 100644 (file)
@@ -44,16 +44,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #define MALLOC_INCOMPATIBLE
 
-/* If you expect to use the mmalloc package to obtain mapped symbol files,
-   for now you have to specify some parameters that determine how gdb places
-   the mappings in it's address space.  See the comments in map_to_address()
-   for details.  This is expected to only be a short term solution.  Yes it
-   is a kludge.
-   FIXME:  Make this more automatic. */
-
-#define MMAP_BASE_ADDRESS      0xA0000000      /* First mapping here */
-#define MMAP_INCREMENT         0x01000000      /* Increment to next mapping */
-
 /* On hpux, autoconf 2.4 (and possibly others) does not properly detect that
    mmap is available.  Until this is fixed, we have to explicitly force 
    HAVE_MMAP.  -fnf */
index aaec41560a68d14f9f8e615e848b21a9974e5ba4..27b47ec757c468881e1ef6c2059afd76f97d3dbb 100644 (file)
@@ -13,7 +13,7 @@ NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o rs6000-nat.o xcoffread
 # Because of shared libraries, we risk ending up with *two*
 # incompatible versions of malloc if we use GNU malloc ...
 MMALLOC = 
-MMALLOC_DISABLE = -DNO_MMALLOC
+MMALLOC_CFLAGS = -DNO_MMALLOC
 
 # A bug in the AIX 3.2 libc.a results in unresolved references for .scalb and
 # .finite because we call ldexp via floatformat.  Circumvent by adding -lm.
index 4047c5cb82a1599ee78814af4890d6beba5e4a92..7b3709a713cb5092f7646ada808d5dca88d32584 100644 (file)
@@ -9,3 +9,9 @@ GDBSERVER_DEPFILES= low-sparc.o
 # anyone who wants to use NIS, which includes at least one Cygnus customer
 # (PR 3593).  So leave it this way until/unless we find a resolver which can
 # get names from either DNS or NIS from the same GDB binary.
+
+# SunOS 4.x has memory allocation calls in the C runtime.  However
+# since free() is never called with these objects, it is safe to
+# define MMCHECK_FORCE to 1 and thus force installation of the mmalloc
+# corruption checks.
+MMALLOC_CFLAGS = -I$(MMALLOC_SRC) -DMMCHECK_FORCE=1
index 7e1f1e7e3dee114b4e3f841763f8f4d64e364fff..e50a2132f8ae669f1b95e09eeb5e6dbb508c751f 100644 (file)
@@ -22,16 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #define FPU
 
-/* If you expect to use the mmalloc package to obtain mapped symbol files,
-   for now you have to specify some parameters that determine how gdb places
-   the mappings in it's address space.  See the comments in map_to_address()
-   for details.  This is expected to only be a short term solution.  Yes it
-   is a kludge.
-   FIXME:  Make this more automatic. */
-
-#define MMAP_BASE_ADDRESS      0xC0000000      /* First mapping here */
-#define MMAP_INCREMENT         0x01000000      /* Increment to next mapping */
-
 /* /usr/include/malloc.h is included by vx-share/xdr_ld, and might
    declare these using char * not void *.  The following should work with
    acc, gcc, or /bin/cc.  */
index 274323a545916c9d996111f197bd10f94022bb2e..9aeac1683bfeac24c657aa54c4500a8d2e2c33a1 100644 (file)
@@ -31,16 +31,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define        gregset_t       prgregset_t
 #define        fpregset_t      prfpregset_t
 
-/* If you expect to use the mmalloc package to obtain mapped symbol files,
-   for now you have to specify some parameters that determine how gdb places
-   the mappings in it's address space.  See the comments in map_to_address()
-   for details.  This is expected to only be a short term solution.  Yes it
-   is a kludge.
-   FIXME:  Make this more automatic. */
-
-#define MMAP_BASE_ADDRESS      0xC0000000      /* First mapping here */
-#define MMAP_INCREMENT         0x01000000      /* Increment to next mapping */
-
 /* These are not currently used in SVR4 (but should be, FIXME!).  */
 #undef DO_DEFERRED_STORES
 #undef CLEAR_DEFERRED_STORES
index 146b791351d030092cb04fc73103427577ff205c..591195b0aae840fe2311683ecf109421c253ab8a 100644 (file)
@@ -1,3 +1,10 @@
+Fri Jul  5 15:38:54 1996  Fred Fish  <fnf@cygnus.com>
+
+       * gdbint.texinfo (NO_MMCHECK): Renamed from NO_MMALLOC_CHECK.
+       Also document that some systems can use mmalloc but must define
+       this if their C runtime allocates memory that is later freed.
+       (MMCHECK_FORCE): Document new macro.
+       
 Fri Jun 28 22:17:10 1996  Dawn Perchik  <dawn@cygnus.com>
 
        * remote.texi: Add documentation for target Sparclet.
index f951cc4b81e173ab3a9fd827c0906febe7d2344a..df4e6daf8a719836a9040ba3a3c45d32d652443a 100644 (file)
@@ -535,21 +535,21 @@ to do a "fork and exec" to start up a child process.
 This is the low level interface to inferior processes for systems
 using the Unix @code{ptrace} call in a vanilla way.
 
-@item coredep.c::fetch_core_registers()
+@item core-aout.c::fetch_core_registers()
 Support for reading registers out of a core file.  This routine calls
 @code{register_addr()}, see below.
 Now that BFD is used to read core files, virtually all machines should
-use @code{coredep.c}, and should just provide @code{fetch_core_registers} in
+use @code{core-aout.c}, and should just provide @code{fetch_core_registers} in
 @code{@var{xxx}-nat.c} (or @code{REGISTER_U_ADDR} in @code{nm-@var{xxx}.h}).
 
-@item coredep.c::register_addr()
+@item core-aout.c::register_addr()
 If your @code{nm-@var{xxx}.h} file defines the macro
 @code{REGISTER_U_ADDR(addr, blockend, regno)}, it should be defined to
 set @code{addr} to the offset within the @samp{user}
 struct of GDB register number @code{regno}.  @code{blockend} is the
 offset within the ``upage'' of @code{u.u_ar0}.
 If @code{REGISTER_U_ADDR} is defined,
-@file{coredep.c} will define the @code{register_addr()} function and use
+@file{core-aout.c} will define the @code{register_addr()} function and use
 the macro in it.  If you do not define @code{REGISTER_U_ADDR}, but you
 are using the standard @code{fetch_core_registers()}, you will need to
 define your own version of @code{register_addr()}, put it into your
@@ -579,7 +579,7 @@ around in.
 
 Then back in GDB, you need a matching routine called
 @code{fetch_core_registers()}.  If you can use the generic one, it's in
-@file{coredep.c}; if not, it's in your @file{@var{xxx}-nat.c} file.
+@file{core-aout.c}; if not, it's in your @file{@var{xxx}-nat.c} file.
 It will be passed a char pointer to the entire ``registers'' segment,
 its length, and a zero; or a char pointer to the entire ``regs2''
 segment, its length, and a 2.  The routine should suck out the supplied
@@ -814,13 +814,13 @@ distribution!
 From the top level directory (containing @file{gdb}, @file{bfd},
 @file{libiberty}, and so on):
 @example
-make -f Makefile.in gdb.tar.Z
+make -f Makefile.in gdb.tar.gz
 @end example
 
 This will properly configure, clean, rebuild any files that are
 distributed pre-built (e.g. @file{c-exp.tab.c} or @file{refcard.ps}),
 and will then make a tarfile.  (If the top level directory has already
-beenn configured, you can just do @code{make gdb.tar.Z} instead.)
+been configured, you can just do @code{make gdb.tar.gz} instead.)
 
 This procedure requires:
 @itemize @bullet
@@ -1505,9 +1505,6 @@ dbxread.c
 @item GDBINIT_FILENAME
 The default name of GDB's initialization file (normally @file{.gdbinit}).
 
-@item KERNELDEBUG
-tm-hppa.h
-
 @item MEM_FNS_DECLARED
 Your host config file defines this if it includes 
 declarations of @code{memcpy} and @code{memset}.  Define this
@@ -1515,11 +1512,16 @@ to avoid conflicts between the native include
 files and the declarations in @file{defs.h}.
 
 @item NO_SYS_FILE
-dbxread.c
-@item PYRAMID_CONTROL_FRAME_DEBUGGING
-pyr-xdep.c
+Define this if your system does not have a @code{<sys/file.h>}.
+
+@item SIGWINCH_HANDLER
+If your host defines @code{SIGWINCH}, you can define this to
+be the name of a function to be called if @code{SIGWINCH} is received.
+
 @item SIGWINCH_HANDLER_BODY
-utils.c
+Define this to expand into code that will define the function
+named by the expansion of @code{SIGWINCH_HANDLER}.
+
 @item ADDITIONAL_OPTIONS
 main.c
 @item ADDITIONAL_OPTION_CASES
@@ -1528,100 +1530,43 @@ main.c
 main.c
 @item ADDITIONAL_OPTION_HELP
 main.c
+
 @item AIX_BUGGY_PTRACE_CONTINUE
 infptrace.c
-@item ALIGN_STACK_ON_STARTUP
-main.c
-@item ALTOS
-altos-xdep.c
-@item ALTOS_AS
-xm-altos.h
-@item ASCII_COFF
-remote-adapt.c
-@item BCS
-tm-delta88.h
-@item BEFORE_MAIN_LOOP_HOOK
-main.c
-@item BELIEVE_PCC_PROMOTION
-coffread.c
-@item BELIEVE_PCC_PROMOTION_TYPE
-stabsread.c
-@item BLOCK_ADDRESS_ABSOLUTE
-dbxread.c
 
-@item BROKEN_LARGE_ALLOCA
-Avoid large @code{alloca}'s.  For example, on sun's, Large alloca's fail
-because the attempt to increase the stack limit in main() fails because
-shared libraries are allocated just below the initial stack limit.  The
-SunOS kernel will not allow the stack to grow into the area occupied by
-the shared libraries.
+@item ALIGN_STACK_ON_STARTUP
+Define this if your system is of a sort that will crash in @code{tgetent}
+if the stack happens not to be longword-aligned when @code{main} is
+called.  This is a rare situation, but is known to occur on several
+different types of systems.
 
-@item CALL_DUMMY
-valops.c
-@item CALL_DUMMY_LOCATION
-inferior.h
-@item CALL_DUMMY_STACK_ADJUST
-valops.c
 @item CFRONT_PRODUCER
 dwarfread.c
-@item CHILD_PREPARE_TO_STORE
-inftarg.c
-@item CLEAR_DEFERRED_STORES
-inflow.c
-@item CLEAR_SOLIB
-objfiles.c
-@item COFF_ENCAPSULATE
-hppabsd-tdep.c
-@item COFF_FORMAT
-symm-tdep.c
-@item CORE_NEEDS_RELOCATION
-stack.c
-@item CPLUS_MARKER
-cplus-dem.c
-@item C_GLBLREG
-coffread.c
-@item DBXREAD_ONLY
-partial-stab.h
 @item DBX_PARM_SYMBOL_CLASS
 stabsread.c
-@item DEBUG_INFO
-partial-stab.h
-@item DEBUG_PTRACE
-hppabsd-xdep.c
-@item DECR_PC_AFTER_BREAK
-breakpoint.c
 
 @item DEFAULT_PROMPT
 The default value of the prompt string (normally @code{"(gdb) "}).
 
-@item DELTA88
-m88k-xdep.c
 @item DEV_TTY
 symmisc.c
-@item DGUX
-m88k-xdep.c
-@item DISABLE_UNSETTABLE_BREAK
-breakpoint.c
-@item DONT_USE_REMOTE
-remote.c
-@item DO_DEFERRED_STORES
-infrun.c
 @item DO_REGISTERS_INFO
 infcmd.c
-@item EXTRACT_RETURN_VALUE
-tm-m68k.h
-@item EXTRACT_STRUCT_VALUE_ADDRESS
-values.c
+
+@item FCLOSE_PROVIDED
+Define this if the system declares @code{fclose} in the headers included in
+@code{defs.h}.  This isn't needed unless your compiler is unusually anal.
+
+@sc{ANSI} definition.
+
 @item FILES_INFO_HOOK
 target.c
 @item FLOAT_INFO
 infcmd.c
+
 @item FOPEN_RB
-defs.h
-@item FUNCTION_EPILOGUE_SIZE
-coffread.c
-@item F_OK
-xm-ultra3.h
+Define this if binary files are opened the same way as text files.
+
 @item GCC2_COMPILED_FLAG_SYMBOL
 dbxread.c
 @item GCC_COMPILED_FLAG_SYMBOL
@@ -1630,35 +1575,29 @@ dbxread.c
 symtab.c
 @item GCC_PRODUCER
 dwarfread.c
-@item GET_SAVED_REGISTER
-findvar.c
+
+@item GETENV_PROVIDED
+Define this if the system declares @code{getenv} in its headers included in
+@code{defs.h}. This isn't needed unless your compiler is unusually anal.
+
 @item GPLUS_PRODUCER
 dwarfread.c
-@item HANDLE_RBRAC
-partial-stab.h
 
 @item HAVE_MMAP
 In some cases, use the system call @code{mmap} for reading symbol
 tables.  For some machines this allows for sharing and quick updates.
 
-@item HAVE_REGISTER_WINDOWS
-findvar.c
 @item HAVE_SIGSETMASK
-main.c
+Define this if the host system has job control, but does not
+define @code{sigsetmask()}.
+Currently, this is only true of the RS/6000.
+
 @item HAVE_TERMIO
 inflow.c
-@item HEADER_SEEK_FD
-arm-tdep.c
-@item HOSTING_ONLY
-xm-rtbsd.h
+
 @item HOST_BYTE_ORDER
-findvar.c
-@item HP_OS_BUG
-infrun.c
-@item IEEE_FLOAT
-valprint.c
-@item IGNORE_SYMBOL
-dbxread.c
+The ordering of bytes in the host.
+This must be defined to be either @code{BIG_ENDIAN} or @code{LITTLE_ENDIAN}.
 
 @item INT_MAX
 @item INT_MIN
@@ -1667,18 +1606,9 @@ dbxread.c
 @item ULONG_MAX
 Values for host-side constants.
 
-@item IN_GDB
-i960-pinsn.c
-@item IN_SIGTRAMP
-infrun.c
-@item IN_SOLIB_TRAMPOLINE
-infrun.c
-
 @item ISATTY
 Substitute for isatty, if not available.
 
-@item IS_TRAPPED_INTERNALVAR
-values.c
 @item KERNEL_DEBUGGING
 tm-ultra3.h
 
@@ -1701,8 +1631,6 @@ directory.
 
 @item LCC_PRODUCER
 dwarfread.c
-@item LOG_FILE
-remote-adapt.c
 
 @item LONGEST
 This is the longest integer type available on the host.
@@ -1726,11 +1654,6 @@ coffread.c
 This macro is used as the argument to lseek (or, most commonly, bfd_seek).
 FIXME, should be replaced by SEEK_SET instead, which is the POSIX equivalent.
 
-@item MACHKERNELDEBUG
-hppabsd-tdep.c
-@item MAINTENANCE
-dwarfread.c
-
 @item MAINTENANCE_CMDS
 If the value of this is 1, then a number of optional maintenance commands
 are compiled in.
@@ -1739,25 +1662,15 @@ are compiled in.
 Define this if the system's prototype for @code{malloc} differs from the
 @sc{ANSI} definition.
 
-@item MIPSEL
-mips-tdep.c
-
 @item MMAP_BASE_ADDRESS
 When using HAVE_MMAP, the first mapping should go at this address.
 
 @item MMAP_INCREMENT
 when using HAVE_MMAP, this is the increment between mappings.
 
-@item MONO
-ser-go32.c
-@item MOTOROLA
-xm-altos.h
-@item NBPG
-altos-xdep.c
 @item NEED_POSIX_SETPGID
-infrun.c
-@item NEED_TEXT_START_END
-exec.c
+Define this to use the POSIX version of @code{setpgid} to determine
+whether job control is available.
 
 @item NORETURN
 If defined, this should be one or more tokens, such as @code{volatile},
@@ -1792,14 +1705,24 @@ Therefore, this define is usually set on the command line by overriding
 @code{MMALLOC_DISABLE} in @file{config/*/*.mh}, rather than by defining
 it in @file{xm-*.h}.
 
-@item NO_MMALLOC_CHECK
+@item NO_MMCHECK
 Define this if you are using @code{mmalloc}, but don't want the overhead
-of checking the heap with @code{mmcheck}.
+of checking the heap with @code{mmcheck}.  Note that on some systems,
+the C runtime makes calls to malloc prior to calling @code{main}, and if
+@code{free} is ever called with these pointers after calling @code{mmcheck}
+to enable checking, a memory corruption abort is certain to occur.  These
+systems can still use mmalloc, but must define NO_MMCHECK.
+
+@item MMCHECK_FORCE
+Define this to 1 if the C runtime allocates memory prior to @code{mmcheck}
+being called, but that memory is never freed so we don't have to worry
+about it triggering a memory corruption abort.  The default is 0, which
+means that @code{mmcheck} will only install the heap checking functions
+if there has not yet been any memory allocation calls, and if it fails
+to install the functions, gdb will issue a warning.
 
 @item NO_SIGINTERRUPT
 remote-adapt.c
-@item NS32K_SVC_IMMED_OPERANDS
-ns32k-opcode.h
 @item NUMERIC_REG_NAMES
 mips-tdep.c
 @item N_SETV
@@ -1812,26 +1735,18 @@ breakpoint.c
 exec.c
 @item O_RDONLY
 xm-ultra3.h
-@item PC
-convx-opcode.h
 @item PCC_SOL_BROKEN
 dbxread.c
-@item PC_IN_CALL_DUMMY
-inferior.h
 @item PC_LOAD_SEGMENT
 stack.c
 @item PRINT_RANDOM_SIGNAL
 infcmd.c
 @item PRINT_REGISTER_HOOK
 infcmd.c
-@item PRINT_TYPELESS_INTEGER
-valprint.c
 @item PROCESS_LINENUMBER_HOOK
 buildsym.c
 @item PROLOGUE_FIRSTLINE_OVERLAP
 infrun.c
-@item PSIGNAL_IN_SIGNAL_H
-defs.h
 @item PUSH_ARGUMENTS
 valops.c
 @item PYRAMID_CONTROL_FRAME_DEBUGGING
@@ -1842,8 +1757,6 @@ pyr-xdep.c
 pyr-xdep.c
 @item REGISTER_BYTES
 remote.c
-@item REGISTER_NAMES
-tm-a29k.h
 @item REG_STACK_SEGMENT
 exec.c
 @item REG_STRUCT_HAS_ADDR
@@ -1859,14 +1772,6 @@ state.c
 @item SEM
 coffread.c
 
-@item SET_STACK_LIMIT_HUGE
-When defined, stack limits will be raised to their maximum.  Use this
-if your host supports @code{setrlimit} and you have trouble with
-@code{stringtab} in @file{dbxread.c}.
-
-Also used in @file{fork-child.c} to return stack limits before child
-processes are forked.
-
 @item SHELL_COMMAND_CONCAT
 infrun.c
 @item SHELL_FILE
@@ -1877,8 +1782,6 @@ breakpoint.c
 infrun.c
 @item STACK_ALIGN
 valops.c
-@item START_INFERIOR_TRAPS_EXPECTED
-infrun.c
 @item STOP_SIGNAL
 main.c
 @item SUN4_COMPILER_FEATURE
@@ -1926,9 +1829,35 @@ Define this to override the defaults of @code{__volatile__} or @code{/**/}.
 
 @end table
 
+Platform-specific host conditionals.
+
+@table @code
+
+@item ALTOS
+altos-xdep.c
+@item ALTOS_AS
+xm-altos.h
+@item MOTOROLA
+xm-altos.h
+@item NBPG
+altos-xdep.c
+
+@item BCS
+tm-delta88.h
+
+@item DELTA88
+m88k-xdep.c
+@item DGUX
+m88k-xdep.c
+
+@item F_OK
+xm-ultra3.h
+
+@end table
+
 Regex conditionals.
 
-@table
+@table @code
 
 @item C_ALLOCA
 regex.c
@@ -1971,14 +1900,8 @@ Used in @samp{call_function_by_hand} to remove an artificial stack frame.
 
 @item BLOCK_ADDRESS_FUNCTION_RELATIVE
 dbxread.c
-@item KERNELDEBUG
-tm-hppa.h
-@item NO_SYS_FILE
-dbxread.c
 @item PYRAMID_CONTROL_FRAME_DEBUGGING
 pyr-xdep.c
-@item SIGWINCH_HANDLER_BODY
-utils.c
 @item ADDITIONAL_OPTIONS
 main.c
 @item ADDITIONAL_OPTION_CASES
@@ -2003,10 +1926,17 @@ main.c
 altos-xdep.c
 @item ALTOS_AS
 xm-altos.h
-@item ASCII_COFF
-remote-adapt.c
 @item BCS
 tm-delta88.h
+
+@item BEFORE_MAIN_LOOP_HOOK
+Define this to expand into any code that you want to execute before
+the main loop starts.  Although this is not, strictly speaking,
+a target conditional, that is how it is currently being used.
+Note that if a configuration were to define it one way for a host
+and a different way for the target, GDB will probably not compile,
+let alone run correctly.
+
 @item BELIEVE_PCC_PROMOTION
 coffread.c
 @item BELIEVE_PCC_PROMOTION_TYPE
@@ -2022,6 +1952,7 @@ A value of 1 means that the bits are numbered in a big-endian order,
 dbxread.c
 @item BREAKPOINT
 tm-m68k.h
+
 @item CALL_DUMMY
 valops.c
 @item CALL_DUMMY_LOCATION
@@ -2043,44 +1974,43 @@ GDB will assume that all registers may be written.
 
 @item CFRONT_PRODUCER
 dwarfread.c
-@item CHILD_PREPARE_TO_STORE
-inftarg.c
+
+@item DO_DEFERRED_STORES
 @item CLEAR_DEFERRED_STORES
-inflow.c
-@item CLEAR_SOLIB
-objfiles.c
-@item COFF_ENCAPSULATE
-hppabsd-tdep.c
-@item COFF_FORMAT
-symm-tdep.c
-@item CORE_NEEDS_RELOCATION
-stack.c
+Define this to execute any deferred stores of registers into the inferior,
+and to cancel any deferred stores.
+
+Currently only implemented correctly for native Sparc configurations?
+
 @item CPLUS_MARKER
-cplus-dem.c
-@item C_GLBLREG
-coffread.c
-@item DBXREAD_ONLY
-partial-stab.h
+Define this to expand into the character that G++ uses to
+distinguish compiler-generated identifiers from programmer-specified
+identifiers.  By default, this expands into @code{'$'}.
+Most System V targets should define this to @code{'.'}.
+
 @item DBX_PARM_SYMBOL_CLASS
 stabsread.c
-@item DEBUG_INFO
-partial-stab.h
-@item DEBUG_PTRACE
-hppabsd-xdep.c
+
 @item DECR_PC_AFTER_BREAK
-breakpoint.c
+Define this to be the amount by which to decrement the PC after
+the program encounters a breakpoint.
+This is often the number of bytes in BREAKPOINT, though not always.
+For most targets this value will be 0.
+
+@item DECR_PC_AFTER_HW_BREAK
+Similarly, for hardware breakpoints.
+
 @item DELTA88
 m88k-xdep.c
 @item DEV_TTY
 symmisc.c
 @item DGUX
 m88k-xdep.c
-@item DISABLE_UNSETTABLE_BREAK
-breakpoint.c
-@item DONT_USE_REMOTE
-remote.c
-@item DO_DEFERRED_STORES
-infrun.c
+
+@item DISABLE_UNSETTABLE_BREAK addr
+If defined, this should evaluate to 1 if @var{addr} is in a shared
+library in which breakpoints cannot be set and so should be disabled.
+
 @item DO_REGISTERS_INFO
 infcmd.c
 
@@ -2105,8 +2035,6 @@ the @code{symtab} structure defined in @code{symtab.h}.
 target.c
 @item FLOAT_INFO
 infcmd.c
-@item FOPEN_RB
-defs.h
 @item FP0_REGNUM
 a68v-xdep.c
 @item FPC_REGNUM
@@ -2143,9 +2071,11 @@ stack.c
 Given FRAME, return the pc saved there.  That is, the return address.
 
 @item FUNCTION_EPILOGUE_SIZE
-coffread.c
-@item F_OK
-xm-ultra3.h
+For some COFF targets, the @code{x_sym.x_misc.x_fsize} field of the
+function end symbol is 0.  For such targets, you must define
+@code{FUNCTION_EPILOGUE_SIZE} to expand into the standard size
+of a function's epilogue.
+
 @item GCC2_COMPILED_FLAG_SYMBOL
 dbxread.c
 @item GCC_COMPILED_FLAG_SYMBOL
@@ -2178,29 +2108,21 @@ takes a CORE_ADDR * as argument, and stores the target PC value through
 this pointer.  It examines the current state of the machine as needed.
 
 @item GET_SAVED_REGISTER
-findvar.c
+Define this if you need to supply your own definition for the
+function @code{get_saved_register}.
+Currently this is only done for the a29k.
+
 @item GPLUS_PRODUCER
 dwarfread.c
+
 @item GR64_REGNUM
-remote-adapt.c
-@item GR64_REGNUM
-remote-mm.c
-@item HANDLE_RBRAC
-partial-stab.h
-@item HAVE_68881
-m68k-tdep.c
+Very a29k-specific.
+
 @item HAVE_REGISTER_WINDOWS
-findvar.c
-@item HAVE_SIGSETMASK
-main.c
-@item HAVE_TERMIO
-inflow.c
-@item HEADER_SEEK_FD
-arm-tdep.c
-@item HOSTING_ONLY
-xm-rtbsd.h
-@item HP_OS_BUG
-infrun.c
+Define this if the target has register windows.
+@item REGISTER_IN_WINDOW_P regnum
+Define this to be an expression that is 1 is the given register is
+in the window.
 
 @item IBM6000_TARGET
 Shows that we are configured for an IBM RS/6000 target.  This conditional
@@ -2208,9 +2130,10 @@ should be eliminated (FIXME) and replaced by feature-specific macros.
 It was introduced in haste and we are repenting at leisure.
 
 @item IEEE_FLOAT
-valprint.c
-@item IGNORE_SYMBOL
-dbxread.c
+Define this if the target system uses IEEE-format floating point numbers.
+
+@item IGNORE_SYMBOL type
+This seems to be no longer used.
 
 @item INIT_EXTRA_FRAME_INFO (fromleaf, fci)
 If defined, this should be a C expression or statement that fills
@@ -2227,36 +2150,43 @@ to by @var{prev}.  [By default...]
 Define this to be either @code{<} if the target's stack grows
 downward in memory, or @code{>} is the stack grows upwards.
 
-@item IN_GDB
-i960-pinsn.c
-@item IN_SIGTRAMP
-infrun.c
-@item IN_SOLIB_TRAMPOLINE
-infrun.c
-@item IS_TRAPPED_INTERNALVAR
-values.c
+@item IN_SIGTRAMP pc name
+Define this to return true if the given pc and/or name indicates
+that the current function is a sigtramp.
+
+@item SIGTRAMP_START
+@item SIGTRAMP_END
+Define these to be the start and end address of the sigtramp.
+These will be used if defined, and @code{IN_SIGTRAMP} is not;
+otherwise the name of the sigtramp will be assumed to be @code{_sigtramp}.
+
+@item IN_SOLIB_TRAMPOLINE pc name
+Define this to evaluate to nonzero if the program is stopped in
+the trampoline that connects to a shared library.
+
+@item IS_TRAPPED_INTERNALVAR name
+This is an ugly hook to allow the specification of special actions
+that should occur as a side-effect of setting the value of a variable
+internal to GDB.  Currently only used by the h8500.
+Note that this could be either a host or target conditional.
+
 @item KERNEL_DEBUGGING
 tm-ultra3.h
 @item LCC_PRODUCER
 dwarfread.c
-@item LOG_FILE
-remote-adapt.c
 @item L_LNNO32
 coffread.c
-@item MACHKERNELDEBUG
-hppabsd-tdep.c
-@item MAINTENANCE
-dwarfread.c
 @item MIPSEL
 mips-tdep.c
 @item MOTOROLA
 xm-altos.h
 @item NBPG
 altos-xdep.c
-@item NEED_POSIX_SETPGID
-infrun.c
+
 @item NEED_TEXT_START_END
-exec.c
+Define this if GDB should determine the start and end addresses
+of the text section.  (Seems dubious.)
+
 @item NOTICE_SIGNAL_HANDLING_CHANGE
 infrun.c
 @item NO_HIF_SUPPORT
@@ -2272,8 +2202,6 @@ It must insert breakpoints at each possible destinations of the next
 instruction.  See @code{sparc-tdep.c} and @code{rs6000-tdep.c}
 for examples.
 
-@item NS32K_SVC_IMMED_OPERANDS
-ns32k-opcode.h
 @item NUMERIC_REG_NAMES
 mips-tdep.c
 @item N_SETV
@@ -2282,8 +2210,6 @@ dbxread.c
 hppabsd-tdep.c
 @item ONE_PROCESS_WRITETEXT
 breakpoint.c
-@item PC
-convx-opcode.h
 @item PCC_SOL_BROKEN
 dbxread.c
 @item PC_IN_CALL_DUMMY
@@ -2307,22 +2233,27 @@ Currently, this is only defined for the Motorola 88K.
 infcmd.c
 @item PRINT_REGISTER_HOOK
 infcmd.c
+
 @item PRINT_TYPELESS_INTEGER
-valprint.c
+This is an obscure substitute for @code{print_longest} that
+seems to have been defined for the Convex target.
+
 @item PROCESS_LINENUMBER_HOOK
 buildsym.c
 @item PROLOGUE_FIRSTLINE_OVERLAP
 infrun.c
-@item PSIGNAL_IN_SIGNAL_H
-defs.h
 @item PS_REGNUM
 parse.c
 @item PUSH_ARGUMENTS
 valops.c
 @item REGISTER_BYTES
 remote.c
+
 @item REGISTER_NAMES
-tm-a29k.h
+Define this to expand into an initializer of an array of strings.
+Each string is the name of a register.
+[more detail]
+
 @item REG_STACK_SEGMENT
 exec.c
 @item REG_STRUCT_HAS_ADDR
@@ -2374,8 +2305,6 @@ into GDB regnums.  If not defined, no conversion will be done.
 
 @item STACK_ALIGN
 valops.c
-@item START_INFERIOR_TRAPS_EXPECTED
-infrun.c
 @item STOP_SIGNAL
 main.c
 
@@ -2475,7 +2404,7 @@ remote-vx.c
 
 Motorola M68K target conditionals.
 
-@table
+@table @code
 
 @item BPT_VECTOR
 Define this to be the 4-bit location of the breakpoint trap vector.
@@ -2500,6 +2429,14 @@ in @file{nm-@var{system}.h}.
 If defined, then GDB will include support for the @code{attach} and
 @code{detach} commands.
 
+@item CHILD_PREPARE_TO_STORE
+If the machine stores all registers at once in the child process,
+then define this to ensure that all values are correct.
+This usually entails a read from the child.
+
+[Note that this is incorrectly defined in @file{xm-@var{system}.h}
+files currently.]
+
 @item FETCH_INFERIOR_REGISTERS
 Define this if the native-dependent code will provide its
 own routines
@@ -2542,6 +2479,12 @@ in @var{filename} to be added to GDB's symbol table.
 Define this to expand into any shared-library-relocation code
 that you want to be run just after the child process has been forked.
 
+@item START_INFERIOR_TRAPS_EXPECTED
+When starting an inferior, GDB normally expects to trap twice;
+once when the shell execs, and once when the program itself execs.
+If the actual number of traps is something other than 2, then
+define this macro to expand into the number expected.
+
 @item USE_PROC_FS
 This determines whether small routines in @file{*-tdep.c}, which
 translate register values
@@ -2560,6 +2503,12 @@ The default value means that u.u_ar0 @emph{points to} the location of the
 registers.  I'm guessing that @code{#define U_REGS_OFFSET 0} means that
 u.u_ar0 @emph{is} the location of the registers.
 
+@item CLEAR_SOLIB
+objfiles.c
+
+@item DEBUG_PTRACE
+Define this to debug ptrace calls.
+
 @end table
 
 @node Obsolete Conditionals
@@ -2571,6 +2520,7 @@ old uses should be removed as those parts of the debugger are
 otherwise touched.
 
 @table @code
+
 @item STACK_END_ADDR
 This macro used to define where the end of the stack appeared, for use
 in interpreting core file formats that don't record this address in the
@@ -2581,6 +2531,7 @@ and deleted from all of GDB's config files.
 
 Any @file{@var{foo}-xdep.c} file that references STACK_END_ADDR
 is so old that it has never been converted to use BFD.  Now that's old!
+
 @end table
 
 @node XCOFF
index 97b05dce3f1b45e1c9f035d32ce7e02e0252e892..85f35cb819c12dde0f426ebfe5060d261fbb19fd 100644 (file)
@@ -48,6 +48,9 @@ open_mapped_file PARAMS ((char *filename, long mtime, int mapped));
 static CORE_ADDR
 map_to_address PARAMS ((void));
 
+static PTR
+map_to_file PARAMS ((int));
+
 #endif  /* !defined(NO_MMALLOC) && defined(HAVE_MMAP) */
 
 /* Externally visible variables that are owned by this module.
@@ -144,11 +147,9 @@ allocate_objfile (abfd, mapped)
                           mapped);
     if (fd >= 0)
       {
-       CORE_ADDR mapto;
        PTR md;
 
-       if (((mapto = map_to_address ()) == 0) ||
-           ((md = mmalloc_attach (fd, (PTR) mapto)) == NULL))
+       if ((md = map_to_file (fd)) == NULL)
          {
            close (fd);
          }
@@ -870,6 +871,50 @@ map_to_address ()
 
 }
 
+static PTR
+map_to_file (fd)
+     int fd;
+{
+  PTR md;
+  CORE_ADDR mapto;
+  int tempfd;
+
+  md = mmalloc_attach (fd, (PTR) 0);
+  if (md != NULL)
+    {
+      mapto = (CORE_ADDR) mmalloc_getkey (md, 1);
+      md = mmalloc_detach (md);
+      if (md != NULL)
+       {
+         /* FIXME: should figure out why detach failed */
+         md = NULL;
+       }
+      else if (mapto != (CORE_ADDR) NULL)
+       {
+         /* This mapping file needs to be remapped at "mapto" */
+         md = mmalloc_attach (fd, (PTR) mapto);
+       }
+      else
+       {
+         /* This is a freshly created mapping file. */
+         mapto = (CORE_ADDR) mmalloc_findbase (20 * 1024 * 1024);
+         if (mapto != -1)
+           {
+             /* To avoid reusing the freshly created mapping file, at the 
+                address selected by mmap, we must truncate it before trying
+                to do an attach at the address we want. */
+             ftruncate (fd, 0);
+             md = mmalloc_attach (fd, (PTR) mapto);
+             if (md != NULL)
+               {
+                 mmalloc_setkey (md, 1, (PTR) mapto);
+               }
+           }
+       }
+    }
+  return (md);
+}
+
 #endif /* !defined(NO_MMALLOC) && defined(HAVE_MMAP) */
 
 /* Returns a section whose range includes PC or NULL if none found. */
index c703ba411983d1a77e77d0e9c74d9514b9fbec6c..9a6d2498f5c4ff6e61496398b5d8ca86e75a05d4 100644 (file)
@@ -51,14 +51,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* Prototypes for local functions */
 
-#if defined (NO_MMALLOC) || defined (NO_MMALLOC_CHECK)
-#else
-
-static void
-malloc_botch PARAMS ((void));
-
-#endif /* NO_MMALLOC, etc */
-
 static void
 fatal_dump_core PARAMS((char *, ...));
 
@@ -663,7 +655,7 @@ mfree (md, ptr)
 
 #endif /* NO_MMALLOC */
 
-#if defined (NO_MMALLOC) || defined (NO_MMALLOC_CHECK)
+#if defined (NO_MMALLOC) || defined (NO_MMCHECK)
 
 void
 init_malloc (md)
@@ -671,7 +663,7 @@ init_malloc (md)
 {
 }
 
-#else /* have mmalloc and want corruption checking  */
+#else /* Have mmalloc and want corruption checking */
 
 static void
 malloc_botch ()
@@ -683,7 +675,7 @@ malloc_botch ()
    by MD, to detect memory corruption.  Note that MD may be NULL to specify
    the default heap that grows via sbrk.
 
-   Note that for freshly created regions, we must call mmcheck prior to any
+   Note that for freshly created regions, we must call mmcheckf prior to any
    mallocs in the region.  Otherwise, any region which was allocated prior to
    installing the checking hooks, which is later reallocated or freed, will
    fail the checks!  The mmcheck function only allows initial hooks to be
@@ -693,13 +685,24 @@ malloc_botch ()
 
    Returns zero on failure, non-zero on success. */
 
+#ifndef MMCHECK_FORCE
+#define MMCHECK_FORCE 0
+#endif
+
 void
 init_malloc (md)
      PTR md;
 {
-  if (!mmcheck (md, malloc_botch))
+  if (!mmcheckf (md, malloc_botch, MMCHECK_FORCE))
     {
-      warning ("internal error: failed to install memory consistency checks");
+      /* Don't use warning(), which relies on current_target being set
+        to something other than dummy_target, until after
+        initialize_all_files(). */
+
+      fprintf_unfiltered
+       (gdb_stderr, "warning: failed to install memory consistency checks; ");
+      fprintf_unfiltered
+       (gdb_stderr, "configuration should define NO_MMCHECK or MMCHECK_FORCE\n");
     }
 
   mmtrace ();
@@ -1951,8 +1954,7 @@ initialize_utils ()
         SIGWINCH_HANDLER_BODY
 #endif
 \f
-#ifdef HAVE_LONG_DOUBLE
-/* Support for converting target fp numbers into host long double format.  */
+/* Support for converting target fp numbers into host DOUBLEST format.  */
 
 /* XXX - This code should really be in libiberty/floatformat.c, however
    configuration issues with libiberty made this very difficult to do in the
@@ -2019,18 +2021,18 @@ get_field (data, order, total_len, start, len)
   return result;
 }
   
-/* Convert from FMT to a long double.
+/* Convert from FMT to a DOUBLEST.
    FROM is the address of the extended float.
-   Store the long double in *TO.  */
+   Store the DOUBLEST in *TO.  */
 
 void
-floatformat_to_long_double (fmt, from, to)
+floatformat_to_doublest (fmt, from, to)
      const struct floatformat *fmt;
      char *from;
-     long double *to;
+     DOUBLEST *to;
 {
   unsigned char *ufrom = (unsigned char *)from;
-  long double dto;
+  DOUBLEST dto;
   long exponent;
   unsigned long mant;
   unsigned int mant_bits, mant_off;
@@ -2141,6 +2143,7 @@ put_field (data, order, total_len, start, len, stuff_to_put)
     }
 }
 
+#ifdef HAVE_LONG_DOUBLE
 /* Return the fractional part of VALUE, and put the exponent of VALUE in *EPTR.
    The range of the returned value is >= 0.5 and < 1.0.  This is equivalent to
    frexp, but operates on the long double data type.  */
@@ -2185,20 +2188,22 @@ ldfrexp (value, eptr)
   *eptr = exp;
   return value/tmp;
 }
+#endif /* HAVE_LONG_DOUBLE */
+
 
-/* The converse: convert the long double *FROM to an extended float
+/* The converse: convert the DOUBLEST *FROM to an extended float
    and store where TO points.  Neither FROM nor TO have any alignment
    restrictions.  */
 
 void
-floatformat_from_long_double (fmt, from, to)
+floatformat_from_doublest (fmt, from, to)
      CONST struct floatformat *fmt;
-     long double *from;
+     DOUBLEST *from;
      char *to;
 {
-  long double dfrom;
+  DOUBLEST dfrom;
   int exponent;
-  long double mant;
+  DOUBLEST mant;
   unsigned int mant_bits, mant_off;
   int mant_bits_left;
   unsigned char *uto = (unsigned char *)to;
@@ -2227,7 +2232,12 @@ floatformat_from_long_double (fmt, from, to)
 
   /* How to tell an infinity from an ordinary number?  FIXME-someday */
 
+#ifdef HAVE_LONG_DOUBLE
   mant = ldfrexp (dfrom, &exponent);
+#else
+  mant = frexp (dfrom, &exponent);
+#endif
+
   put_field (uto, fmt->byteorder, fmt->totalsize, fmt->exp_start, fmt->exp_len,
             exponent + fmt->exp_bias - 1);
 
@@ -2265,5 +2275,3 @@ floatformat_from_long_double (fmt, from, to)
       mant_bits_left -= mant_bits;
     }
 }
-
-#endif /* HAVE_LONG_DOUBLE */