X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-64-bsd-os.c;h=3b45bc5970b649c2589f5faebebf5e3134d4bdd5;hb=cd23187a89f532f7b57e88b5392a7905e6ae3276;hp=c1e3c3265dbd0ce24e5b255b8327800e486a87ee;hpb=0f234877047c56ca945fe54e9e77a9cc2c8141cb;p=sbcl.git diff --git a/src/runtime/x86-64-bsd-os.c b/src/runtime/x86-64-bsd-os.c index c1e3c32..3b45bc5 100644 --- a/src/runtime/x86-64-bsd-os.c +++ b/src/runtime/x86-64-bsd-os.c @@ -25,7 +25,7 @@ kern_return_t mach_thread_init(mach_port_t thread_exception_port); * entails; unfortunately, currently the situation is worse, not * better, than in the above paragraph. */ -#if defined(LISP_FEATURE_FREEBSD) || defined(LISP_FEATURE_DARWIN) +#if defined(LISP_FEATURE_FREEBSD) || defined(LISP_FEATURE_DARWIN) || defined(LISP_FEATURE_OPENBSD) os_context_register_t * os_context_register_addr(os_context_t *context, int offset) { @@ -89,8 +89,12 @@ os_flush_icache(os_vm_address_t address, os_vm_size_t length) int arch_os_thread_init(struct thread *thread) { stack_t sigstack; #ifdef LISP_FEATURE_SB_THREAD +#ifdef LISP_FEATURE_GCC_TLS + current_thread = thread; +#else pthread_setspecific(specials,thread); #endif +#endif #ifdef LISP_FEATURE_MACH_EXCEPTION_HANDLER mach_thread_init(THREAD_STRUCT_TO_EXCEPTION_PORT(thread));