projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some support for platforms whose libraries do not maintain a frame pointer
[sbcl.git]
/
src
/
runtime
/
thread.c
diff --git
a/src/runtime/thread.c
b/src/runtime/thread.c
index
799b78e
..
838a187
100644
(file)
--- a/
src/runtime/thread.c
+++ b/
src/runtime/thread.c
@@
-96,7
+96,11
@@
pthread_key_t lisp_thread = 0;
#endif
#if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
#endif
#if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
-extern lispobj call_into_lisp_first_time(lispobj fun, lispobj *args, int nargs);
+extern lispobj call_into_lisp_first_time(lispobj fun, lispobj *args, int nargs)
+# ifdef LISP_FEATURE_X86_64
+ __attribute__((sysv_abi))
+# endif
+ ;
#endif
static void
#endif
static void
@@
-564,7
+568,12
@@
create_thread_struct(lispobj initial_function) {
th->os_thread=0;
#ifdef LISP_FEATURE_SB_SAFEPOINT
th->os_thread=0;
#ifdef LISP_FEATURE_SB_SAFEPOINT
+# ifdef LISP_FEATURE_WIN32
+ th->carried_base_pointer = 0;
+# endif
+# ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
th->pc_around_foreign_call = 0;
th->pc_around_foreign_call = 0;
+# endif
th->csp_around_foreign_call = csp_page;
#endif
th->csp_around_foreign_call = csp_page;
#endif