1.0.38.3: PPC linkage-table fix.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Fri, 30 Apr 2010 16:50:42 +0000 (16:50 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Fri, 30 Apr 2010 16:50:42 +0000 (16:50 +0000)
  * arch_write_linkage_table_jmp() on PPC was overrunning the linkage
table entry space by one useless (duplicated) instruction, which loses
when updating the linkage-table if maphash returns entries in any order
other than by ascending linkage-table entry address.

NEWS
src/runtime/ppc-arch.c
version.lisp-expr

diff --git a/NEWS b/NEWS
index 7a8f727..e4aeeb0 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,9 @@
 changes relative to sbcl-1.9.38:
   * bug fix: Backtrace from undefined function on x86 and x86-64 now show
     the calling frame.
+  * bug fix: linkage-table entries on PPC now no longer overflow their
+    space allocation (potentially causing crashes if they are written out
+    of order).
 
 changes in sbcl-1.0.38 relative to sbcl-1.0.37:
   * incompatible change: Thread names are now restricted to SIMPLE-STRINGs
index 533293d..92516e5 100644 (file)
@@ -564,9 +564,6 @@ arch_write_linkage_table_jmp(void* reloc_addr, void *target_addr)
   inst = (19 << 26) | (20 << 21) | (528 << 1);
   *inst_ptr++ = inst;
 
-
-  *inst_ptr++ = inst;
-
   os_flush_icache((os_vm_address_t) reloc_addr, (char*) inst_ptr - (char*) reloc_addr);
 }
 
index 0459b9c..184f63e 100644 (file)
@@ -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".)
-"1.0.38.2"
+"1.0.38.3"