From 7bab52625d143c93a988b53d8682aae5f3273942 Mon Sep 17 00:00:00 2001 From: Raymond Toy <toy.raymond@gmail.com> Date: Sat, 21 May 2016 13:27:41 -0700 Subject: [PATCH] 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. --- src/code/sparc-svr4-vm.lisp | 4 ++++ src/code/x86-vm.lisp | 3 +++ src/lisp/validate.h | 2 ++ src/lisp/x86-validate-darwin.h | 6 +++--- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/code/sparc-svr4-vm.lisp b/src/code/sparc-svr4-vm.lisp index 1368fb260..c894a6acd 100644 --- 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. diff --git a/src/code/x86-vm.lisp b/src/code/x86-vm.lisp index a7e307d78..987d1a345 100644 --- 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. diff --git a/src/lisp/validate.h b/src/lisp/validate.h index 7f1c0e0c7..6ad287611 100644 --- 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 diff --git a/src/lisp/x86-validate-darwin.h b/src/lisp/x86-validate-darwin.h index d6b956d21..f4c094d48 100644 --- 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 -- GitLab