fix: don't use C++ thread_local on MacOs
[urcu.git] / include / urcu / tls-compat.h
index 24ef1b9a42b6dccad0f4864dc574654fffc3b60e..25cf375a23462dc53536c5da2cc4d5206466081b 100644 (file)
@@ -34,7 +34,12 @@ extern "C" {
 
 #ifdef CONFIG_RCU_TLS
 
-#if defined (__cplusplus) && (__cplusplus >= 201103L)
+/*
+ * Don't use C++ 'thread_local' on MacOs, the implementation is incompatible
+ * with C and will result in a link error when accessing an extern variable
+ * provided by the C library from C++ code.
+ */
+#if defined (__cplusplus) && (__cplusplus >= 201103L) && !defined(__APPLE__)
 # define URCU_TLS_STORAGE_CLASS        thread_local
 #elif defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
 # define URCU_TLS_STORAGE_CLASS        _Thread_local
This page took 0.022433 seconds and 4 git commands to generate.