runtime: Always build ldb but disable it when requested

Parts of the formerly conditionalized code are needed by other
features such as traceroot.

Since ldb is now always included, the :sb-ldb feature is now useless
if not misleading. It is probably not used, though (what could it be
used for?).
This commit is contained in:
Jan Moringen 2017-09-07 22:17:11 +02:00
parent 2310ea9a65
commit 48c7a97e6a
7 changed files with 15 additions and 41 deletions

View file

@ -95,10 +95,10 @@
;; readtable configured so that the system sources can be read.
; :sb-show
;; Build SBCL with the old CMU CL low level debugger, "ldb". In the
;; ideal world you would not need this unless you are messing with
;; SBCL at a very low level (e.g., trying to diagnose GC problems, or
;; trying to debug assembly code for a port to a new CPU). However,
;; Enable the low level debugger, "ldb", by default. In the ideal
;; world you would not need this unless you are messing with SBCL at
;; a very low level (e.g., trying to diagnose GC problems, or trying
;; to debug assembly code for a port to a new CPU). However,
;; experience shows that sooner or later everyone lose()'s, in which
;; case SB-LDB can at least provide an informative backtrace.
:sb-ldb

View file

@ -114,9 +114,10 @@ send a useful bug report then:
@item
@cindex ldb
Compile SBCL with ldb support (feature @code{:sb-ldb}, see
@file{base-target-features.lisp-expr}) and change @code{#define QSHOW_SIGNAL 0} to
@code{#define QSHOW_SIGNAL 1} in @file{src/runtime/runtime.h}.
Compile SBCL with ldb enabled (feature @code{:sb-ldb}, see
@file{base-target-features.lisp-expr}) and change @code{#define
QSHOW_SIGNAL 0} to @code{#define QSHOW_SIGNAL 1} in
@file{src/runtime/runtime.h}.
@item
Isolate a smallish test case, run it.

View file

@ -3126,7 +3126,6 @@ core and return a descriptor to it."
(format stream "#define INTERNAL_ERROR_NARGS {~{~S~^, ~}}~2%"
(map 'list #'cddr sb!c:+backend-internal-errors+)))
#!+sb-ldb
(defun write-tagnames-h (out)
(labels
((pretty-name (symbol strip)
@ -3745,7 +3744,6 @@ initially undefined function references:~2%")
(out-to "constants" (write-constants-h stream))
(out-to "errnames" (write-errnames-h stream))
(out-to "gc-tables" (sb!vm::write-gc-tables stream))
#!+sb-ldb
(out-to "tagnames" (write-tagnames-h stream))
(let ((structs (sort (copy-list sb!vm:*primitive-objects*) #'string<
:key #'sb!vm:primitive-object-name)))

View file

@ -26,9 +26,6 @@
#include "parse.h"
#include "vars.h"
/* Almost all of this file can be skipped if we're not supporting LDB. */
#if defined(LISP_FEATURE_SB_LDB)
#include "print.h"
#include "arch.h"
#include "interr.h"
@ -531,20 +528,9 @@ throw_to_monitor()
longjmp(curbuf, 1);
}
#endif /* defined(LISP_FEATURE_SB_LDB) */
/* what we do when things go badly wrong at a low level */
void
monitor_or_something()
{
#if defined(LISP_FEATURE_SB_LDB)
ldb_monitor();
#else
fprintf(stderr,
"The system is too badly corrupted or confused to continue at the Lisp\n\
level. If the system had been compiled with the SB-LDB feature, we'd drop\n\
into the LDB low-level debugger now. But there's no LDB in this build, so\n\
we can't really do anything but just exit, sorry.\n");
exit(1);
#endif
}

View file

@ -23,8 +23,6 @@
#endif
#include "runtime.h"
#if defined(LISP_FEATURE_SB_LDB)
#include "globals.h"
#include "vars.h"
#include "parse.h"
@ -328,5 +326,3 @@ lispobj parse_lispobj(char **ptr)
return result;
}
#endif /* defined(LISP_FEATURE_SB_LDB) */

View file

@ -207,9 +207,6 @@ fshow_fun(void __attribute__((__unused__)) *ignored,
va_end(args);
}
/* This file can be skipped if we're not supporting LDB. */
#if defined(LISP_FEATURE_SB_LDB)
#include "monitor.h"
#include "vars.h"
#include "os.h"
@ -964,13 +961,3 @@ void safely_show_lstring(struct vector * string, int quotes, FILE *s)
fprintf(s, "#<[widetag=%02X]>", widetag_of(string->header));
}
}
#else
void
brief_print(lispobj obj)
{
printf("lispobj 0x%lx\n", (unsigned long)obj);
}
#endif /* defined(LISP_FEATURE_SB_LDB) */

View file

@ -448,7 +448,13 @@ main(int argc, char *argv[], char *envp[])
/* other command line options */
boolean end_runtime_options = 0;
boolean disable_lossage_handler_p = 0;
boolean disable_lossage_handler_p
#if defined(LISP_FEATURE_SB_LDB)
= 0;
#else
= 1;
#endif
boolean debug_environment_p = 0;
lispobj initial_function;