diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c index 32c28993f84..6b0bf445e9c 100644 --- a/TSRM/TSRM.c +++ b/TSRM/TSRM.c @@ -63,8 +63,12 @@ static int tsrm_error_level; static FILE *tsrm_error_file; #ifdef USE___THREAD +#ifdef TSRM_WIN32 +TSRM_TLS void *tsrm_ls_cache = 0; +#else TSRM_API TSRM_TLS void *tsrm_ls_cache = 0; #endif +#endif #ifdef PASS_TSRMLS # define CALL_TSRMG_CTOR(ctor, globale, storage) (ctor)((globale), (storage)) diff --git a/TSRM/TSRM.h b/TSRM/TSRM.h index f77dcbf0358..840c303d6c5 100644 --- a/TSRM/TSRM.h +++ b/TSRM/TSRM.h @@ -109,7 +109,11 @@ extern "C" { # define TSRM_TLS __thread # endif +#ifdef TSRM_WIN32 +extern TSRM_TLS void *tsrm_ls_cache; +#else TSRM_API extern TSRM_TLS void *tsrm_ls_cache; +#endif #define TSRMG(id, type, element) \ ((type)((tsrm_uintptr_t)tsrm_ls_cache + id##_offset))->element