Raymond Toy pushed to branch master at cmucl / cmucl
Commits: 7bab5262 by Raymond Toy at 2016-05-21T13:27:41-07:00 Add :RELOCATABLE-STACKS to *features*
Add this as a runtime feature so that it shows up in *features* and so that the C runtime has FEATURE_RELOCATABLE_STACKS defined.
src/code/sparc-svr4-vm.lisp: src/code/x86-vm.lisp: o Make :relocatable-stacks a runtime feature.
src/lisp/validate.h o Need to include internals.h here so constants are set up according to internals.h
src/lisp/x86-validate-darwin.h: o Use FEATURE_RELOCATABLE_STACKS instead of RELOCATABLE_STACK_START.
- - - - - 2ab559c4 by Raymond Toy at 2016-05-21T13:29:35-07:00 Remove -DRELOCATABLE_STACK_START
This is now handled by the runtime feature :relocatable-stacks
- - - - - afc31adc by Raymond Toy at 2016-05-21T13:30:46-07:00 Use FEATURE_RELOCATABLE_STACKS instead of RELOCATABLE_STACK_START.
- - - - - 771c6c3d by Raymond Toy at 2016-05-21T13:50:39-07:00 Remove -DRELOCATABLE_STACK_START
This is now handled by the runtime feature :relocatable-stacks
- - - - - 19d9b6d9 by Raymond Toy at 2016-05-21T13:52:49-07:00 Remove -DRELOCATABLE_STACK_START for sparc.
This is now handled by the runtime feature :relocatable-stacks.
- - - - - 0531c5f2 by Raymond Toy at 2016-05-21T14:24:52-07:00 Use FEATURE_RELOCATABLE_STACKS instead of RELOCATABLE_STACK_START.
- - - - -
10 changed files:
- src/code/sparc-svr4-vm.lisp - src/code/x86-vm.lisp - src/lisp/Config.sparc_sunc - src/lisp/Config.x86_darwin - src/lisp/Config.x86_linux - src/lisp/solaris-os.c - src/lisp/sparc-validate.h - src/lisp/validate.h - src/lisp/x86-validate-darwin.h - src/lisp/x86-validate-linux.h
Changes:
===================================== src/code/sparc-svr4-vm.lisp ===================================== --- a/src/code/sparc-svr4-vm.lisp +++ b/src/code/sparc-svr4-vm.lisp @@ -25,6 +25,10 @@
#+complex-fp-vops (sys:register-lisp-feature :complex-fp-vops) + +#+(and sparc solaris) +(sys:register-lisp-runtime-feature :relocatable-stacks) + ;;;; The sigcontext structure.
===================================== src/code/x86-vm.lisp ===================================== --- a/src/code/x86-vm.lisp +++ b/src/code/x86-vm.lisp @@ -42,6 +42,9 @@ (setf *features* (delete :x87 *features*)) (sys:register-lisp-feature :sse2))
+#+(or darwin linux) +(sys:register-lisp-runtime-feature :relocatable-stacks) + ;;;; The sigcontext structure.
===================================== src/lisp/Config.sparc_sunc ===================================== --- a/src/lisp/Config.sparc_sunc +++ b/src/lisp/Config.sparc_sunc @@ -24,7 +24,7 @@ CC_V8PLUS = -m32 -xarch=sparc AS_V8PLUS = -m32 -xarch=sparc endif
-CFLAGS += -xlibmieee -O -DRELOCATABLE_STACK_START +CFLAGS += -xlibmieee -O DEPEND_FLAGS = -xM ASFLAGS = $(AS_V8PLUS) OS_LINK_FLAGS = -M /usr/lib/ld/map.noexstk
===================================== src/lisp/Config.x86_darwin ===================================== --- a/src/lisp/Config.x86_darwin +++ b/src/lisp/Config.x86_darwin @@ -6,7 +6,7 @@ include Config.x86_common # you have the 10.5 SDK available. MIN_VER = -mmacosx-version-min=10.5
-CPPFLAGS += -DDARWIN $(MIN_VER) -m32 -DRELOCATABLE_STACK_START +CPPFLAGS += -DDARWIN $(MIN_VER) -m32 CFLAGS += -g3 -mtune=generic ASFLAGS += -g3 $(MIN_VER)
===================================== src/lisp/Config.x86_linux ===================================== --- a/src/lisp/Config.x86_linux +++ b/src/lisp/Config.x86_linux @@ -1,7 +1,7 @@ # -*- Mode: makefile -*- include Config.x86_common
-CPPFLAGS += -m32 -D__NO_CTYPE -D_GNU_SOURCE -DRELOCATABLE_STACK_START +CPPFLAGS += -m32 -D__NO_CTYPE -D_GNU_SOURCE CFLAGS += -rdynamic -march=pentium4 -mfpmath=sse -mtune=generic
UNDEFSYMPATTERN = -Xlinker -u -Xlinker &
===================================== src/lisp/solaris-os.c ===================================== --- a/src/lisp/solaris-os.c +++ b/src/lisp/solaris-os.c @@ -415,7 +415,7 @@ os_vm_address_t round_up_sparse_size(os_vm_address_t addr) */ static os_vm_address_t spaces[] = { READ_ONLY_SPACE_START, STATIC_SPACE_START, -#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS BINDING_STACK_START, CONTROL_STACK_START #endif @@ -505,7 +505,7 @@ make_holes(void) void make_stack_holes(void) { -#ifdef RELOCATABLE_STACK_START +#ifdef FEATURE_RELOCATABLE_STACKS make_hole((os_vm_address_t)control_stack, control_stack_size); make_hole((os_vm_address_t)binding_stack, binding_stack_size); #endif
===================================== src/lisp/sparc-validate.h ===================================== --- a/src/lisp/sparc-validate.h +++ b/src/lisp/sparc-validate.h @@ -92,7 +92,7 @@ #define READ_ONLY_SPACE_START (SpaceStart_TargetReadOnly) #define READ_ONLY_SPACE_SIZE ((2*MB_128) - SPARSE_BLOCK_SIZE) /* 256 MB - 32 KB, 256 MB max */
-#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS #define BINDING_STACK_START (0x20000000) #endif
@@ -101,7 +101,7 @@ #define STATIC_SPACE_START (SpaceStart_TargetStatic) #define STATIC_SPACE_SIZE ((2*MB_128) - SPARSE_BLOCK_SIZE) /* 256 MB - 32 KB, 256 MB max */
-#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS #define CONTROL_STACK_START (0x38000000) #endif #define CONTROL_STACK_SIZE (MB_128 - SPARSE_BLOCK_SIZE) /* 128 MB - 32 KB, 128 MB max */
===================================== src/lisp/validate.h ===================================== --- a/src/lisp/validate.h +++ b/src/lisp/validate.h @@ -8,6 +8,8 @@ #ifndef _VALIDATE_H_ #define _VALIDATE_H_
+#include "internals.h" + #ifdef parisc #include "hppa-validate.h" #endif
===================================== src/lisp/x86-validate-darwin.h ===================================== --- a/src/lisp/x86-validate-darwin.h +++ b/src/lisp/x86-validate-darwin.h @@ -18,12 +18,12 @@ #define STATIC_SPACE_START (SpaceStart_TargetStatic) #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
-#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS #define BINDING_STACK_START (0x38000000) #endif #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
-#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS #define CONTROL_STACK_START (0x40000000) #endif
@@ -33,7 +33,7 @@ */ #define CONTROL_STACK_SIZE (0x07fdf000) /* 128MB - SIGSTKSZ - 1 page */
-#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS #define SIGNAL_STACK_START (0x47fe0000) /* One page past the end of the control stack */ #endif #define SIGNAL_STACK_SIZE SIGSTKSZ
===================================== src/lisp/x86-validate-linux.h ===================================== --- a/src/lisp/x86-validate-linux.h +++ b/src/lisp/x86-validate-linux.h @@ -45,17 +45,17 @@ #define STATIC_SPACE_START (SpaceStart_TargetStatic) #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
-#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS #define BINDING_STACK_START (0x20000000) #endif #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
-#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS #define CONTROL_STACK_START 0x38000000 #endif #define CONTROL_STACK_SIZE (0x07fff000 - 8192)
-#ifndef RELOCATABLE_STACK_START +#ifndef FEATURE_RELOCATABLE_STACKS #define SIGNAL_STACK_START CONTROL_STACK_END #endif #define SIGNAL_STACK_SIZE SIGSTKSZ
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/00ec87ed626beaa99ae6c3ff1...