~ chicken-core (chicken-5) 6e186a9622119b3a2a9372afe28c695a3039f397
commit 6e186a9622119b3a2a9372afe28c695a3039f397
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Aug 12 04:23:50 2010 -0400
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Thu Aug 12 04:23:50 2010 -0400
Solaris build- and runtime patches by Semih Cemiloglu
diff --git a/Makefile.solaris b/Makefile.solaris
index bd2a133a..163020e2 100644
--- a/Makefile.solaris
+++ b/Makefile.solaris
@@ -41,9 +41,9 @@ export INSTALL_PROGRAM ?= ginstall
# options
ifeq ($(C_COMPILER),cc)
-C_COMPILER_OPTIONS ?= -errtags -DHAVE_CHICKEN_CONFIG_H
-C_COMPILER_OPTIONS ?= -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H
+C_COMPILER_OPTIONS ?= -errtags -xdebugformat=stabs -xannotate=no -DHAVE_CHICKEN_CONFIG_H
else
+C_COMPILER_OPTIONS ?= -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H
endif
ifdef DEBUGBUILD
@@ -55,13 +55,13 @@ endif
else
ifdef OPTIMIZE_FOR_SPEED
ifeq ($(C_COMPILER),cc)
-C_COMPILER_OPTIMIZATION_OPTIONS ?= -xdebugformat=stabs -xannotate=no -g -xO4
+C_COMPILER_OPTIMIZATION_OPTIONS += -g -xO4
else
C_COMPILER_OPTIMIZATION_OPTIONS ?= -O3 -fomit-frame-pointer
endif
else
ifeq ($(C_COMPILER),cc)
-C_COMPILER_OPTIMIZATION_OPTIONS ?= -xannotate=no -xO3
+C_COMPILER_OPTIMIZATION_OPTIONS += -g -xO3
else
C_COMPILER_OPTIMIZATION_OPTIONS ?= -Os -fomit-frame-pointer
endif
@@ -69,15 +69,15 @@ endif
endif
ifeq ($(C_COMPILER),cc)
-LINKER_LINK_SHARED_LIBRARY_OPTIONS = -G
-LINKER_LINK_SHARED_DLOADABLE_OPTIONS = -G
+LINKER_LINK_SHARED_LIBRARY_OPTIONS = -xannotate=no -G
+LINKER_LINK_SHARED_DLOADABLE_OPTIONS = -xannotate=no -G
LINKER_LINK_SHARED_PROGRAM_OPTIONS =
else
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
LINKER_LINK_SHARED_DLOADABLE_OPTIONS = -shared -Wl,-R"$(RUNTIME_LINKER_PATH)" -Wl,-L.
LINKER_LINK_SHARED_PROGRAM_OPTIONS = -Wl,-R"$(RUNTIME_LINKER_PATH)"
endif
-LIBRARIES = -lrt -lsocket -lnsl -lm -ldl
+LIBRARIES = -lsocket -lnsl -lm -ldl
NEEDS_RELINKING = yes
# special files
diff --git a/runtime.c b/runtime.c
index b47a262b..730fb6f9 100644
--- a/runtime.c
+++ b/runtime.c
@@ -2612,11 +2612,18 @@ void C_save_and_reclaim(void *trampoline, void *proc, int n, ...)
}
-#define mark(x) \
- C_cblock \
- C_word *_x = (x), _val = *_x; \
- if(!C_immediatep(_val)) really_mark(_x); \
+#ifdef __SUNPRO_C
+static void mark(C_word *x) { \
+ C_word *_x = (x), _val = *_x; \
+ if(!C_immediatep(_val)) really_mark(_x); \
+}
+#else
+# define mark(x) \
+ C_cblock \
+ C_word *_x = (x), _val = *_x; \
+ if(!C_immediatep(_val)) really_mark(_x); \
C_cblockend
+#endif
C_regparm void C_fcall C_reclaim(void *trampoline, void *proc)
@@ -3079,11 +3086,18 @@ C_regparm void C_fcall really_mark(C_word *x)
}
-#define remark(x) \
- C_cblock \
- C_word *_x = (x), _val = *_x; \
- if(!C_immediatep(_val)) really_remark(_x); \
+#ifdef __SUNPRO_C
+static void remark(C_word *x) { \
+ C_word *_x = (x), _val = *_x; \
+ if(!C_immediatep(_val)) really_remark(_x); \
+}
+#else
+#define remark(x) \
+ C_cblock \
+ C_word *_x = (x), _val = *_x; \
+ if(!C_immediatep(_val)) really_remark(_x); \
C_cblockend
+#endif
/* Do a major GC into a freshly allocated heap: */
Trap