Some support for platforms whose libraries do not maintain a frame pointer
[sbcl.git] / src / runtime / thread.c
index 799b78e..838a187 100644 (file)
@@ -96,7 +96,11 @@ pthread_key_t lisp_thread = 0;
 #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
@@ -564,7 +568,12 @@ create_thread_struct(lispobj initial_function) {
     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;
+# endif
     th->csp_around_foreign_call = csp_page;
 #endif