From: Christophe Rhodes Date: Fri, 17 Feb 2006 17:15:34 +0000 (+0000) Subject: 0.9.9.32: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=21e84b532732503bc7cf8bb006fc3e9812505dd5;p=sbcl.git 0.9.9.32: Fix hideously embarrassing ppc assembly bug in reg_LRA computation. ... no longer go wrong if bit 15 of lra is set. (The symptoms from this have been reported many, many times: segmentation faults in the first triggered GC. Kevin Rosenberg reported it first from my trawl on sbcl-devel, but I think it's been known for longer than that. Previously it had been dismissed as gcc miscompilation problems, because the problem disappeared when using a different version of gcc, for any individual developer: in retrospect, the fact that it was our bug after all is pretty obvious from the fact that we were never able to characterize particular versions of gcc which were bad.) --- diff --git a/NEWS b/NEWS index 3b59dcb..0e50cc0 100644 --- a/NEWS +++ b/NEWS @@ -24,6 +24,12 @@ changes in sbcl-0.9.10 relative to sbcl-0.9.9: * fixed bug: metacircle resolution in cases where methods have slots added before the slots from STANDARD-METHOD. (reported by Jean Bresson) + * fixed bug: the Power PC assembly code for calling into lisp + sometimes computed its return address wrongly (depending on the + 15th bit of the address, fixed at link time). This used to + manifest itself in a segmentation violation while building PCL. + (reported by Kevin Rosenberg, Eric Marsden, Lars Brinkhoff and + many others over the years) changes in sbcl-0.9.9 relative to sbcl-0.9.8: * new platform: experimental support for the Windows operating diff --git a/src/runtime/ppc-assem.S b/src/runtime/ppc-assem.S index 28fe473..b4c79af 100644 --- a/src/runtime/ppc-assem.S +++ b/src/runtime/ppc-assem.S @@ -339,7 +339,7 @@ x: addi reg_LRA,reg_LRA,lo16(lra) #else lis reg_LRA,lra@h - addi reg_LRA,reg_LRA,lra@l + ori reg_LRA,reg_LRA,lra@l #endif addi reg_LRA,reg_LRA,OTHER_POINTER_LOWTAG diff --git a/version.lisp-expr b/version.lisp-expr index d8c689e..29d8be7 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.9.31" +"0.9.9.32"