X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fglobals.h;h=679e6265098968dc94f2005a12c6eadbc18ff403;hb=c553e4be6da2d18f0827f190589c88e837b8b8a6;hp=60480a7cc75563a93ef7a8e0a85a8c5108d90982;hpb=2561033fd3ed9e224dffc445262e097e5abfa920;p=sbcl.git diff --git a/src/runtime/globals.h b/src/runtime/globals.h index 60480a7..679e626 100644 --- a/src/runtime/globals.h +++ b/src/runtime/globals.h @@ -20,9 +20,22 @@ #include "sbcl.h" +/* Currently threads live only on x86oid platforms, but this thing + * cannot ever work with threads, so... */ +#if !defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) +#define FOREIGN_FUNCTION_CALL_FLAG +#endif + #ifndef LANGUAGE_ASSEMBLY + +#ifdef FOREIGN_FUNCTION_CALL_FLAG extern int foreign_function_call_active; -extern boolean stop_the_world; +#endif + +extern size_t dynamic_space_size; +extern size_t thread_control_stack_size; + +extern struct runtime_options *runtime_options; #ifdef LISP_FEATURE_WIN32 #define ENVIRON _environ @@ -31,7 +44,7 @@ extern boolean stop_the_world; #endif extern char **ENVIRON; -#if defined(LISP_FEATURE_SB_THREAD) +#if defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_GCC_TLS) extern pthread_key_t specials; #endif @@ -86,7 +99,7 @@ extern void globals_init(void); /**/ # ifdef LISP_FEATURE_PPC # ifdef LISP_FEATURE_DARWIN -# define EXTERN(name,bytes) .globl _/**/name +# define EXTERN(name,bytes) .globl _ ## name # else # define EXTERN(name,bytes) .globl name # endif @@ -102,7 +115,9 @@ extern void globals_init(void); # define POINTERSIZE 4 # endif +#ifdef FOREIGN_FUNCTION_CALL_FLAG EXTERN(foreign_function_call_active, 4) +#endif EXTERN(current_control_stack_pointer, POINTERSIZE) EXTERN(current_control_frame_pointer, POINTERSIZE)