Fix library compatibility
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 24 May 2012 20:56:08 +0000 (16:56 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 24 May 2012 20:56:08 +0000 (16:56 -0400)
Commit 4d0d66bb795d1ed938e11a97a4e5f71326e20c71, implementing
tls-compat.h for pthread TLS compatibility, adds a prefix in front of
each TLS symbol (__tls_*). However, some of these symbols are exported
by the URCU library (e.g. rcu_reader_mb, defined in urcu.c as
"rcu_reader", which is overloaded by the urcu/map/urcu.h) to
applications. Therefore, this breaks binary compatibility with 0.6.x
versions of the library. This is not intended, and therefore is a bug,
so we remove this __tls_* prefix from the variables declared, defined
and referenced to through the tls-compat.h API for compilers supporting
"__thread".

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
urcu/tls-compat.h

index d7c7537042d9aca0f99abeb9c0ca7cc27b0fb934..9686ecaab139343547151e0f95697324c0442a55 100644 (file)
@@ -35,12 +35,12 @@ extern "C" {
 #ifdef CONFIG_RCU_TLS  /* Based on ax_tls.m4 */
 
 # define DECLARE_URCU_TLS(type, name)  \
-       CONFIG_RCU_TLS type __tls_ ## name
+       CONFIG_RCU_TLS type name
 
 # define DEFINE_URCU_TLS(type, name)   \
-       CONFIG_RCU_TLS type __tls_ ## name
+       CONFIG_RCU_TLS type name
 
-# define URCU_TLS(name)                (__tls_ ## name)
+# define URCU_TLS(name)                (name)
 
 #else /* #ifndef CONFIG_RCU_TLS */
 
This page took 0.025441 seconds and 4 git commands to generate.