Update.
[kopensolaris-gnu/glibc.git] / bits / libc-tsd.h
index ce25601..d393829 100644 (file)
@@ -51,8 +51,9 @@
    We don't define an enum for the possible key values, because the KEYs
    translate directly into variables by macro magic.  */
 
-#if USE_TLS && HAVE___THREAD
-# define __libc_tsd_define(CLASS, KEY) CLASS __thread void *__libc_tsd_##KEY;
+#if USE___THREAD
+# define __libc_tsd_define(CLASS, KEY) \
+  CLASS __thread void *__libc_tsd_##KEY attribute_tls_model_ie;
 
 # define __libc_tsd_address(KEY)       (&__libc_tsd_##KEY)
 # define __libc_tsd_get(KEY)           (__libc_tsd_##KEY)
@@ -60,7 +61,7 @@
 #else
 # define __libc_tsd_define(CLASS, KEY) CLASS void *__libc_tsd_##KEY##_data;
 
-# define __libc_tsd_address(KEY)       (&__libc_tsd_##KEY)
+# define __libc_tsd_address(KEY)       (&__libc_tsd_##KEY##_data)
 # define __libc_tsd_get(KEY)           (__libc_tsd_##KEY##_data)
 # define __libc_tsd_set(KEY, VALUE)    (__libc_tsd_##KEY##_data = (VALUE))
 #endif