aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.7')
-rw-r--r--gcc-4.7/gcc/config/arm/linux-elf.h5
-rw-r--r--gcc-4.7/libstdc++-v3/include/ext/atomicity.h3
-rw-r--r--gcc-4.7/libstdc++-v3/include/std/type_traits2
3 files changed, 6 insertions, 4 deletions
diff --git a/gcc-4.7/gcc/config/arm/linux-elf.h b/gcc-4.7/gcc/config/arm/linux-elf.h
index 270e12bc5..0082d5682 100644
--- a/gcc-4.7/gcc/config/arm/linux-elf.h
+++ b/gcc-4.7/gcc/config/arm/linux-elf.h
@@ -65,8 +65,9 @@
%{static:-Bstatic} \
%{shared:-shared} \
%{symbolic:-Bsymbolic} \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " GNU_USER_DYNAMIC_LINKER " \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \
-X \
%{mbig-endian:-EB} %{mlittle-endian:-EL}" \
SUBTARGET_EXTRA_LINK_SPEC
diff --git a/gcc-4.7/libstdc++-v3/include/ext/atomicity.h b/gcc-4.7/libstdc++-v3/include/ext/atomicity.h
index c60306326..9f48b81c6 100644
--- a/gcc-4.7/libstdc++-v3/include/ext/atomicity.h
+++ b/gcc-4.7/libstdc++-v3/include/ext/atomicity.h
@@ -42,7 +42,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// To abstract locking primitives across all thread policies, use:
// __exchange_and_add_dispatch
// __atomic_add_dispatch
-#ifdef _GLIBCXX_ATOMIC_BUILTINS
+#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
__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 748469323..732f06a14 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)
+#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__clang__)
template<>
struct __is_floating_point_helper<__float128>
: public true_type { };