diff options
-rw-r--r-- | gcc-4.7/libstdc++-v3/include/ext/atomicity.h | 5 | ||||
-rw-r--r-- | gcc-4.7/libstdc++-v3/include/std/type_traits | 2 | ||||
-rw-r--r-- | gcc-4.8/libatomic/configure.tgt | 5 | ||||
-rw-r--r-- | gcc-4.8/libstdc++-v3/include/ext/atomicity.h | 5 | ||||
-rw-r--r-- | gcc-4.8/libstdc++-v3/include/std/type_traits | 2 | ||||
-rw-r--r-- | gcc-4.9/libatomic/configure.tgt | 5 | ||||
-rw-r--r-- | gcc-4.9/libgcc/config.host | 3 | ||||
-rw-r--r-- | gcc-4.9/libstdc++-v3/include/std/type_traits | 2 | ||||
-rw-r--r-- | gcc-4.9/libstdc++-v3/libsupc++/eh_globals.cc | 4 |
9 files changed, 10 insertions, 23 deletions
diff --git a/gcc-4.7/libstdc++-v3/include/ext/atomicity.h b/gcc-4.7/libstdc++-v3/include/ext/atomicity.h index 9f48b81c6..ed1bb6df6 100644 --- a/gcc-4.7/libstdc++-v3/include/ext/atomicity.h +++ b/gcc-4.7/libstdc++-v3/include/ext/atomicity.h @@ -42,9 +42,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // To abstract locking primitives across all thread policies, use: // __exchange_and_add_dispatch // __atomic_add_dispatch -#if defined(_GLIBCXX_ATOMIC_BUILTINS) && (!defined(__clang__) || defined(__i386__)) - // NOTE: clang arm/mips can't compile the following two library calls yet. - static inline _Atomic_word +#ifdef _GLIBCXX_ATOMIC_BUILTINS + static inline _Atomic_word __exchange_and_add(volatile _Atomic_word* __mem, int __val) { return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); } diff --git a/gcc-4.7/libstdc++-v3/include/std/type_traits b/gcc-4.7/libstdc++-v3/include/std/type_traits index 732f06a14..cbe732fc8 100644 --- a/gcc-4.7/libstdc++-v3/include/std/type_traits +++ b/gcc-4.7/libstdc++-v3/include/std/type_traits @@ -252,7 +252,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION struct __is_floating_point_helper<long double> : public true_type { }; -#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__clang__) +#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && (!defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) template<> struct __is_floating_point_helper<__float128> : public true_type { }; diff --git a/gcc-4.8/libatomic/configure.tgt b/gcc-4.8/libatomic/configure.tgt index b9e5d6ce0..7eaab38d9 100644 --- a/gcc-4.8/libatomic/configure.tgt +++ b/gcc-4.8/libatomic/configure.tgt @@ -95,11 +95,6 @@ fi # Other system configury case "${target}" in - aarch64*) - # This is currently not supported in AArch64. - UNSUPPORTED=1 - ;; - arm*-*-linux*) # OS support for atomic primitives. config_path="${config_path} linux/arm posix" diff --git a/gcc-4.8/libstdc++-v3/include/ext/atomicity.h b/gcc-4.8/libstdc++-v3/include/ext/atomicity.h index 88698bbe3..6139c9346 100644 --- a/gcc-4.8/libstdc++-v3/include/ext/atomicity.h +++ b/gcc-4.8/libstdc++-v3/include/ext/atomicity.h @@ -43,9 +43,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // To abstract locking primitives across all thread policies, use: // __exchange_and_add_dispatch // __atomic_add_dispatch -#if defined(_GLIBCXX_ATOMIC_BUILTINS) && (!defined(__clang__) || defined(__i386__)) - // NOTE: clang arm/mips can't compile the following two library calls yet. - static inline _Atomic_word +#ifdef _GLIBCXX_ATOMIC_BUILTINS + static inline _Atomic_word __exchange_and_add(volatile _Atomic_word* __mem, int __val) { return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); } diff --git a/gcc-4.8/libstdc++-v3/include/std/type_traits b/gcc-4.8/libstdc++-v3/include/std/type_traits index b5f8c795d..9b7b98695 100644 --- a/gcc-4.8/libstdc++-v3/include/std/type_traits +++ b/gcc-4.8/libstdc++-v3/include/std/type_traits @@ -264,7 +264,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION struct __is_floating_point_helper<long double> : public true_type { }; -#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__clang__) +#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && (!defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) template<> struct __is_floating_point_helper<__float128> : public true_type { }; diff --git a/gcc-4.9/libatomic/configure.tgt b/gcc-4.9/libatomic/configure.tgt index 3904e6602..a3757efbb 100644 --- a/gcc-4.9/libatomic/configure.tgt +++ b/gcc-4.9/libatomic/configure.tgt @@ -95,11 +95,6 @@ fi # Other system configury case "${target}" in - aarch64*) - # ANDROID - This is currently not supported in AArch64. - UNSUPPORTED=1 - ;; - arm*-*-linux*) # OS support for atomic primitives. config_path="${config_path} linux/arm posix" diff --git a/gcc-4.9/libgcc/config.host b/gcc-4.9/libgcc/config.host index 8e0e142c1..f4a742872 100644 --- a/gcc-4.9/libgcc/config.host +++ b/gcc-4.9/libgcc/config.host @@ -320,8 +320,7 @@ aarch64*-*-elf) tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp" ;; aarch64*-*-linux*) - # ANDROID - uncomment when sysroot contains sys/ucontext.h - # md_unwind_header=aarch64/linux-unwind.h + md_unwind_header=aarch64/linux-unwind.h tmake_file="${tmake_file} ${cpu_type}/t-aarch64" tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp" ;; diff --git a/gcc-4.9/libstdc++-v3/include/std/type_traits b/gcc-4.9/libstdc++-v3/include/std/type_traits index 0261c7de9..86fde9e0c 100644 --- a/gcc-4.9/libstdc++-v3/include/std/type_traits +++ b/gcc-4.9/libstdc++-v3/include/std/type_traits @@ -259,7 +259,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION struct __is_floating_point_helper<long double> : public true_type { }; -#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) +#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && (!defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) template<> struct __is_floating_point_helper<__float128> : public true_type { }; diff --git a/gcc-4.9/libstdc++-v3/libsupc++/eh_globals.cc b/gcc-4.9/libstdc++-v3/libsupc++/eh_globals.cc index 12e48db6a..a790246a0 100644 --- a/gcc-4.9/libstdc++-v3/libsupc++/eh_globals.cc +++ b/gcc-4.9/libstdc++-v3/libsupc++/eh_globals.cc @@ -93,9 +93,9 @@ struct __eh_globals_init bool _M_init; __eh_globals_init() : _M_init(false) - { + { if (__gthread_active_p()) - _M_init = __gthread_key_create(&_M_key, eh_globals_dtor) == 0; + _M_init = __gthread_key_create(&_M_key, eh_globals_dtor) == 0; } ~__eh_globals_init() |