[cmucl-commit] CMUCL commit: cross-sol-x86-branch src (compiler/x86/parms.lisp lisp/x86-validate.h)

Raymond Toy rtoy at common-lisp.net
Wed Dec 15 13:43:46 CET 2010


    Date: Wednesday, December 15, 2010 @ 07:43:46
  Author: rtoy
    Path: /project/cmucl/cvsroot/src
     Tag: cross-sol-x86-branch

Modified: compiler/x86/parms.lisp lisp/x86-validate.h

Move the spaces around a bit.

compiler/x86/parms.lisp:
o Move the linkage space to #x30000000, which is in the gap between
  the static space and the control stack.

lisp/x86-validate.h:
o Document the memory map for Solaris.
o Set the altstack to the end of the control stack.
. 


-------------------------+
 compiler/x86/parms.lisp |    7 ++++---
 lisp/x86-validate.h     |   20 +++++++++++++++++++-
 2 files changed, 23 insertions(+), 4 deletions(-)


Index: src/compiler/x86/parms.lisp
diff -u src/compiler/x86/parms.lisp:1.41.2.1 src/compiler/x86/parms.lisp:1.41.2.2
--- src/compiler/x86/parms.lisp:1.41.2.1	Mon Dec 13 23:25:11 2010
+++ src/compiler/x86/parms.lisp	Wed Dec 15 07:43:46 2010
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group at cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/compiler/x86/parms.lisp,v 1.41.2.1 2010-12-14 04:25:11 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/compiler/x86/parms.lisp,v 1.41.2.2 2010-12-15 12:43:46 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -65,7 +65,7 @@
 
 (setf (c::backend-foreign-linkage-space-start *target-backend*)
       #+linux #x58000000
-      #+solaris #xC0000000
+      #+solaris #x30000000
       #-(or linux solaris) #xB0000000
       (c::backend-foreign-linkage-entry-size *target-backend*)
       8)
@@ -218,7 +218,8 @@
   #-FreeBSD #x28000000)
 (defconstant target-dynamic-space-start
   #+linux #x58100000
-  #-linux #x48000000)
+  #+solaris #x40000000
+  #-(or linux solaris) #x48000000)
 (defconstant target-foreign-linkage-space-start
   (c:backend-foreign-linkage-space-start *target-backend*))
 (defconstant target-foreign-linkage-entry-size
Index: src/lisp/x86-validate.h
diff -u src/lisp/x86-validate.h:1.31.8.1 src/lisp/x86-validate.h:1.31.8.2
--- src/lisp/x86-validate.h:1.31.8.1	Mon Dec 13 23:25:11 2010
+++ src/lisp/x86-validate.h	Wed Dec 15 07:43:46 2010
@@ -3,7 +3,7 @@
  * This code was written as part of the CMU Common Lisp project at
  * Carnegie Mellon University, and has been placed in the public domain.
  *
- *  $Header: /project/cmucl/cvsroot/src/lisp/x86-validate.h,v 1.31.8.1 2010-12-14 04:25:11 rtoy Exp $
+ *  $Header: /project/cmucl/cvsroot/src/lisp/x86-validate.h,v 1.31.8.2 2010-12-15 12:43:46 rtoy Exp $
  *
  */
 
@@ -189,6 +189,23 @@
 #endif
 
 #ifdef SOLARIS
+/*
+ * The memory map for Solaris/x86 looks roughly like
+ *
+ *	0x08045000->0x08050000   C stack?
+ *      0x08050000->             Code + C heap
+ *      0x10000000->0x20000000   256 MB read-only space
+ *	0x20000000->0x28000000   128M Binding stack growing up.
+ *	0x28000000->0x30000000   256M Static Space.
+ *      0x30000000->0x31000000   16M Foreign linkage table
+ *	0x38000000->0x40000000   128M Control stack growing down.
+ *	0x40000000->0xD0000000   2304M Dynamic Space.
+ *
+ * Starting at 0xd0ce0000 there is some mapped anon memory.  libc
+ * seems to start at 0xd0d40000 and other places.  Looks like memory
+ * above 0xd0ffe000 or so is not mapped.
+ */
+
 #define READ_ONLY_SPACE_START   (SpaceStart_TargetReadOnly)
 #define READ_ONLY_SPACE_SIZE    (0x0ffff000)	/* 256MB - 1 page */
 
@@ -200,6 +217,7 @@
 
 #define CONTROL_STACK_START	0x38000000
 #define CONTROL_STACK_SIZE	(0x07fff000 - 8192)
+#define SIGNAL_STACK_START	CONTROL_STACK_END
 #define SIGNAL_STACK_SIZE	SIGSTKSZ
 
 #define DYNAMIC_0_SPACE_START	(SpaceStart_TargetDynamic)


More information about the cmucl-commit mailing list