diff options
author | Rainer Orth <ro@gcc.gnu.org> | 2011-11-08 14:58:57 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2011-11-08 14:58:57 +0000 |
commit | e28a3d8bf261597466be4d9c54a823a0987e78a0 (patch) | |
tree | 38aea815839b6631ca1ae2c86e06be82652369da /libitm/config | |
parent | dbe175248f4329c0f50d49ca860afc0ae3d7c0e6 (diff) | |
download | gcc-e28a3d8bf261597466be4d9c54a823a0987e78a0.zip gcc-e28a3d8bf261597466be4d9c54a823a0987e78a0.tar.gz gcc-e28a3d8bf261597466be4d9c54a823a0987e78a0.tar.bz2 |
Fix Solaris/x86 libitm build
* configure.tgt: Handle i386 like i[456]86.
* config/generic/tls.h [!HAVE_ARCH_GTM_THREAD] (gtm_thr): Don't
take address.
* config/generic/tls.cc [!HAVE_ARCH_GTM_THREAD ||
!HAVE_ARCH_GTM_THREAD_DISP] (_gtm_thr_tls): New variable.
From-SVN: r181163
Diffstat (limited to 'libitm/config')
-rw-r--r-- | libitm/config/generic/tls.cc | 4 | ||||
-rw-r--r-- | libitm/config/generic/tls.h | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/libitm/config/generic/tls.cc b/libitm/config/generic/tls.cc index 3e82cff..c642111 100644 --- a/libitm/config/generic/tls.cc +++ b/libitm/config/generic/tls.cc @@ -26,6 +26,10 @@ namespace GTM HIDDEN { +#if !defined(HAVE_ARCH_GTM_THREAD) || !defined(HAVE_ARCH_GTM_THREAD_DISP) +__thread gtm_thread_tls _gtm_thr_tls; +#endif + // Filter out any updates that overlap the libitm stack, as defined by // TOP (entry point to library) and BOT (below current function). This // definition should be fine for all stack-grows-down architectures. diff --git a/libitm/config/generic/tls.h b/libitm/config/generic/tls.h index e282e54..6bbdccf 100644 --- a/libitm/config/generic/tls.h +++ b/libitm/config/generic/tls.h @@ -49,7 +49,7 @@ extern __thread gtm_thread_tls _gtm_thr_tls; #ifndef HAVE_ARCH_GTM_THREAD // If the target does not provide optimized access to the thread-local // data, simply access the TLS variable defined above. -static inline gtm_thread *gtm_thr() { return &_gtm_thr_tls.thr; } +static inline gtm_thread *gtm_thr() { return _gtm_thr_tls.thr; } static inline void set_gtm_thr(gtm_thread *x) { _gtm_thr_tls.thr = x; } #endif |