Fix: symbol aliases with TLS compat
[urcu.git] / src / urcu-utils.h
index 3c3c7a166198a20026f3f6e303215c6111415aac..eab6212dd61539651aaded7ad747874a6e9d1d92 100644 (file)
 #define URCU_ATTR_ALIAS(x) __attribute__((alias(x)))
 #endif
 
+#ifdef CONFIG_RCU_TLS
+#define DEFINE_URCU_TLS_ALIAS_1(type, name, alias)             \
+       URCU_ATTR_ALIAS(#name)                                  \
+       extern type alias
+
+#else
+#define DEFINE_URCU_TLS_ALIAS_1(type, name, alias)             \
+       URCU_ATTR_ALIAS("*__tls_access_" #name)                 \
+       type *__tls_access_ ## alias()
+#endif
+
+#define DEFINE_URCU_TLS_ALIAS(type, name, alias)               \
+       DEFINE_URCU_TLS_ALIAS_1(type, name, alias)
+
 #endif /* _URCU_UTILS_H */
This page took 0.022626 seconds and 4 git commands to generate.