diff --git a/libcxx/include/__threading_support b/libcxx/include/__threading_support --- a/libcxx/include/__threading_support +++ b/libcxx/include/__threading_support @@ -420,7 +420,13 @@ _LIBCPP_HIDE_FROM_ABI inline int __libcpp_thread_detach(__libcpp_thread_t *__t) { +#if !defined(__MVS__) || defined( __SUSV3_THR) return pthread_detach(*__t); +#elif defined(_OPEN_THREADS) + return pthread_detach(__t); +#else + #error pthread_detach function is not available +#endif } _LIBCPP_HIDE_FROM_ABI inline @@ -446,7 +452,13 @@ _LIBCPP_HIDE_FROM_ABI inline void *__libcpp_tls_get(__libcpp_tls_key __key) { +#if !defined(__MVS__) || defined( __SUSV3_THR) return pthread_getspecific(__key); +#elif defined(_OPEN_THREADS) + return pthread_getspecific_d8_np(__key); +#else + #error pthread_getspecific function is not available +#endif } _LIBCPP_HIDE_FROM_ABI inline