зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1357897 - ensure __has_feature(thread_local) before using it on Mac; r=froydnj
Bug 1348419 enabled thread-local storage for Mac, but only Xcode 8+ supports that feature, which busted building with Xcode 7-. This change fixes that bustage by ensuring a Mac compiler supports the feature before using it.
This commit is contained in:
Родитель
54cc70d50a
Коммит
4024ee8f8d
|
@ -31,7 +31,8 @@ typedef sig_atomic_t sig_safe_t;
|
|||
|
||||
namespace detail {
|
||||
|
||||
#if defined(HAVE_THREAD_TLS_KEYWORD) || defined(XP_WIN) || defined(XP_MACOSX)
|
||||
#if defined(HAVE_THREAD_TLS_KEYWORD) || defined(XP_WIN) || \
|
||||
(defined(XP_MACOSX) && defined(__has_feature) && __has_feature(cxx_thread_local))
|
||||
#define MOZ_HAS_THREAD_LOCAL
|
||||
#endif
|
||||
|
||||
|
@ -181,7 +182,7 @@ ThreadLocal<T>::set(const T aValue)
|
|||
}
|
||||
|
||||
#ifdef MOZ_HAS_THREAD_LOCAL
|
||||
#if defined(XP_WIN) || defined(XP_MACOSX)
|
||||
#if defined(XP_WIN) || (defined(XP_MACOSX) && defined(__has_feature) && __has_feature(cxx_thread_local))
|
||||
#define MOZ_THREAD_LOCAL(TYPE) thread_local mozilla::detail::ThreadLocal<TYPE>
|
||||
#else
|
||||
#define MOZ_THREAD_LOCAL(TYPE) __thread mozilla::detail::ThreadLocal<TYPE>
|
||||
|
|
Загрузка…
Ссылка в новой задаче