Skip to content
Snippets Groups Projects
Commit dbd8d943 authored by rtoy's avatar rtoy
Browse files

compiler/ppc/parms.lisp:

compiler/sparc/parms.lisp:
o Add lisp::*gc-inhibit* to list of static symbols.  (No cross-compile
  needed because we used one of the spare static symbols.  Full cycle
  of builds needed to progate the changes.)

lisp/breakpoint.c:
o Disable GC when calling HANDLE-BREAKPOINT.  This is a temporary
  workaround to the issue where a GC occurring during
  HANDLE-BREAKPOINT can cause a segfault during tracing.  GC moves the
  code object and/or bogus lra such that we don't know where we should
  return to.
parent 59c6d501
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;;
(ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/parms.lisp,v 1.16 2006/12/02 15:22:36 rtoy Exp $")
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/parms.lisp,v 1.17 2008/09/05 22:03:12 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
......@@ -270,9 +270,10 @@
:key-and-value
:key-or-value
lisp::*gc-inhibit*
;; Spare symbols. Rename these when you need to add some static
;; symbols and don't want to do a cross-compile.
spare-9
spare-8
spare-7
spare-6
......
......@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/parms.lisp,v 1.54 2008/04/15 14:33:25 rtoy Exp $")
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/parms.lisp,v 1.55 2008/09/05 22:03:12 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
......@@ -329,10 +329,11 @@
:key-and-value
:key-or-value
lisp::*gc-inhibit*
;; Some spare static symbols. Useful for adding another static
;; symbol without having to do a cross-compile. Just rename one
;; of these to the desired name.
spare-9
spare-8
spare-7
spare-6
......
/*
$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/breakpoint.c,v 1.23 2008/09/05 13:12:03 rtoy Exp $
$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/breakpoint.c,v 1.24 2008/09/05 22:03:12 rtoy Exp $
This code was written as part of the CMU Common Lisp project at
Carnegie Mellon University, and has been placed in the public domain.
......@@ -326,8 +326,6 @@ handle_function_end_breakpoint(int signal, int subcode, os_context_t * scp)
#endif
}
funcall3(SymbolFunction(HANDLE_BREAKPOINT), offset, code, alloc_sap(scp));
/*
* Breakpoint handling done, so get the real LRA where we're
* supposed to return to so we can return there.
......@@ -342,6 +340,21 @@ handle_function_end_breakpoint(int signal, int subcode, os_context_t * scp)
if (codeptr->constants[KNOWN_RETURN_P_SLOT] == NIL)
SC_REG(scp, reg_CODE) = lra;
#endif
{
lispobj saved_gc_inhibit;
#ifdef GC_INHIBIT
saved_gc_inhibit = SymbolValue(GC_INHIBIT);
SetSymbolValue(GC_INHIBIT, T);
#endif
funcall3(SymbolFunction(HANDLE_BREAKPOINT), offset, code, alloc_sap(scp));
#ifdef GC_INHIBIT
SetSymbolValue(GC_INHIBIT, saved_gc_inhibit);
#endif
}
undo_fake_foreign_function_call(scp);
return (void *) (lra - type_OtherPointer + sizeof(lispobj));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment