Update of /cvsroot/sbcl/sbcl/src/runtime
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv28442/src/runtime
Modified Files:
Tag: lutex-branch
thread.c interrupt.c Config.mips-linux
Log Message:
0.9.12.26.lutex-branch.33
* merging 0.9.12.26 changes onto the lutex branch
Index: thread.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/thread.c,v
retrieving revision 1.62.2.7
retrieving revision 1.62.2.8
diff -u -d -r1.62.2.7 -r1.62.2.8
--- thread.c 29 Mar 2006 07:55:22 -0000 1.62.2.7
+++ thread.c 15 May 2006 17:07:51 -0000 1.62.2.8
@@ -106,7 +106,9 @@
if(arch_os_thread_init(th)==0) return 1;
link_thread(th);
th->os_thread=thread_self();
+#ifndef LISP_FEATURE_WIN32
protect_control_stack_guard_page(1);
+#endif
#if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
return call_into_lisp_first_time(function,args,0);
Index: interrupt.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/interrupt.c,v
retrieving revision 1.110.2.10
retrieving revision 1.110.2.11
diff -u -d -r1.110.2.10 -r1.110.2.11
--- interrupt.c 9 Apr 2006 01:23:10 -0000 1.110.2.10
+++ interrupt.c 15 May 2006 17:07:51 -0000 1.110.2.11
@@ -1337,15 +1337,21 @@
sa.sa_sigaction = handler;
else if (sigismember(&deferrable_sigset,signal))
sa.sa_sigaction = low_level_maybe_now_maybe_later;
+ /* The use of a trampoline appears to break the
+ arch_os_get_context() workaround for SPARC/Linux. For now,
+ don't use the trampoline (and so be vulnerable to the problems
+ that SA_NODEFER is meant to solve. */
+#if !(defined(LISP_FEATURE_SPARC) && defined(LISP_FEATURE_LINUX))
else if (!sigaction_nodefer_works &&
!sigismember(&blockable_sigset, signal))
sa.sa_sigaction = low_level_unblock_me_trampoline;
+#endif
else
sa.sa_sigaction = handler;
sigcopyset(&sa.sa_mask, &blockable_sigset);
- sa.sa_flags = SA_SIGINFO | SA_RESTART |
- (sigaction_nodefer_works ? SA_NODEFER : 0);
+ sa.sa_flags = SA_SIGINFO | SA_RESTART
+ | (sigaction_nodefer_works ? SA_NODEFER : 0);
#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
if((signal==SIG_MEMORY_FAULT)
#ifdef SIG_MEMORY_FAULT2
Index: Config.mips-linux
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/Config.mips-linux,v
retrieving revision 1.6
retrieving revision 1.6.4.1
diff -u -d -r1.6 -r1.6.4.1
--- Config.mips-linux 16 Sep 2005 13:26:39 -0000 1.6
+++ Config.mips-linux 15 May 2006 17:07:51 -0000 1.6.4.1
@@ -9,7 +9,7 @@
# provided with absolutely no warranty. See the COPYING and CREDITS
# files for more information.
-LINKFLAGS += -v -O2
+LINKFLAGS += -v -O2 -Wl,--export-dynamic
NM = ./linux-nm
ASSEM_SRC = mips-assem.S ldso-stubs.S
|