From 83543d4d5f876def7327969ec6ec40606e9e63f1 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Sat, 14 May 2005 14:24:29 +0000 Subject: [PATCH] 0.9.0.31: sparc build fixes * disembodied WITH-FIXED-ALLOCATION. * globals.h patch from Thiemo Seufer. ... not that this is enough to restore Sparc buildability yet, but at least with this we can reach make-target-2.sh... --- src/compiler/sparc/alloc.lisp | 7 ++- src/runtime/globals.h | 109 +++++++++++++++++++++-------------------- version.lisp-expr | 2 +- 3 files changed, 59 insertions(+), 59 deletions(-) diff --git a/src/compiler/sparc/alloc.lisp b/src/compiler/sparc/alloc.lisp index 4564b25..721b944 100644 --- a/src/compiler/sparc/alloc.lisp +++ b/src/compiler/sparc/alloc.lisp @@ -135,10 +135,9 @@ (:temporary (:scs (non-descriptor-reg)) temp) (:results (result :scs (descriptor-reg))) (:generator 10 - (with-fixed-allocation - (result temp value-cell-header-widetag value-cell-size)) - (storew value result value-cell-value-slot other-pointer-lowtag))) - + (with-fixed-allocation + (result temp value-cell-header-widetag value-cell-size) + (storew value result value-cell-value-slot other-pointer-lowtag)))) ;;;; Automatic allocators for primitive objects. diff --git a/src/runtime/globals.h b/src/runtime/globals.h index 82446b7..03e991b 100644 --- a/src/runtime/globals.h +++ b/src/runtime/globals.h @@ -9,88 +9,89 @@ * files for more information. */ -#if !defined(_INCLUDE_GLOBALS_H_) +#ifndef _INCLUDED_GLOBALS_H_ #define _INCLUDED_GLOBALS_H_ #ifndef LANGUAGE_ASSEMBLY +# include +# include +# include "runtime.h" +#endif -#include -#include #include "sbcl.h" -#include "runtime.h" +#ifndef LANGUAGE_ASSEMBLY extern int foreign_function_call_active; extern boolean stop_the_world; extern lispobj *current_control_stack_pointer; extern lispobj *current_control_frame_pointer; -#if !defined(LISP_FEATURE_X86) +# if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) extern lispobj *current_binding_stack_pointer; -#endif +# endif -#if !defined(LISP_FEATURE_X86) -/* FIXME: Why doesn't the x86 need this? */ +# ifndef LISP_FEATURE_GENCGC +/* Beware! gencgc has also a (non-global) dynamic_space_free_pointer. */ extern lispobj *dynamic_space_free_pointer; extern lispobj *current_auto_gc_trigger; -#endif +# endif extern lispobj *current_dynamic_space; -extern boolean stop_the_world; extern void globals_init(void); #else /* LANGUAGE_ASSEMBLY */ -#ifdef LISP_FEATURE_MIPS -#ifdef __linux__ -#define EXTERN(name,bytes) .globl name -#else -#define EXTERN(name,bytes) .extern name bytes -#endif -#endif +# ifdef LISP_FEATURE_MIPS +# ifdef __linux__ +# define EXTERN(name,bytes) .globl name +# else +# define EXTERN(name,bytes) .extern name bytes +# endif +# endif /**/ -#ifdef LISP_FEATURE_SPARC -#ifdef SVR4 -#define EXTERN(name,bytes) .global name -#else -#define EXTERN(name,bytes) .global _ ## name -#endif -#endif +# ifdef LISP_FEATURE_SPARC +# ifdef SVR4 +# define EXTERN(name,bytes) .global name +# else +# define EXTERN(name,bytes) .global _ ## name +# endif +# endif /**/ -#ifdef LISP_FEATURE_ALPHA -#ifdef __linux__ -#define EXTERN(name,bytes) .globl name -#endif -#endif -#ifdef LISP_FEATURE_PPC -#ifdef LISP_FEATURE_DARWIN -#define EXTERN(name,bytes) .globl _/**/name -#else -#define EXTERN(name,bytes) .globl name -#endif -#endif -#ifdef LISP_FEATURE_X86 -#ifdef __linux__ -/* I'm very dubious about this. Linux hasn't used _ on external names - * since ELF became prevalent - i.e. about 1996, on x86 -dan 20010125 */ -#define EXTERN(name,bytes) .globl _/**/name -#else -#define EXTERN(name,bytes) .global _ ## name -#endif -#endif +# ifdef LISP_FEATURE_ALPHA +# ifdef __linux__ +# define EXTERN(name,bytes) .globl name +# endif +# endif +/**/ +# ifdef LISP_FEATURE_PPC +# ifdef LISP_FEATURE_DARWIN +# define EXTERN(name,bytes) .globl _/**/name +# else +# define EXTERN(name,bytes) .globl name +# endif +# endif +/**/ +# if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64) +# define EXTERN(name,bytes) .global name +# endif -/* FIXME : these sizes are, incidentally, bogus on Alpha. But the - * EXTERN macro doesn't use its second arg anyway, so no immediate harm - * done -dan 2002.05.07 - */ +# if defined(LISP_FEATURE_ALPHA) || defined(LISP_FEATURE_X86_64) +# define POINTERSIZE 8 +# else +# define POINTERSIZE 4 +# endif EXTERN(foreign_function_call_active, 4) -EXTERN(current_control_stack_pointer, 4) -EXTERN(current_control_frame_pointer, 4) -EXTERN(current_binding_stack_pointer, 4) -EXTERN(dynamic_space_free_pointer, 4) -EXTERN(current_dynamic_space, 4) +EXTERN(current_control_stack_pointer, POINTERSIZE) +EXTERN(current_control_frame_pointer, POINTERSIZE) +# if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) +EXTERN(current_binding_stack_pointer, POINTERSIZE) +# endif +# ifndef LISP_FEATURE_GENCGC +EXTERN(dynamic_space_free_pointer, POINTERSIZE) +# endif #endif /* LANGUAGE_ASSEMBLY */ diff --git a/version.lisp-expr b/version.lisp-expr index 63f589c..1f49538 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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".) -"0.9.0.30" +"0.9.0.31" -- 1.7.10.4