diff options
author | Tim Murray <timmurray@google.com> | 2014-09-03 15:05:59 -0700 |
---|---|---|
committer | Tim Murray <timmurray@google.com> | 2014-09-03 15:05:59 -0700 |
commit | 5886e06ece7cfa1a2bfa731dfd89bf166d03a00e (patch) | |
tree | d14a2e497eb9200a794660d05489c2f83e604671 | |
parent | 6e6c6b66815d2fcadf22885b839c49adae6807af (diff) | |
download | 3.5-5886e06ece7cfa1a2bfa731dfd89bf166d03a00e.tar.gz |
Update clang prebuilts to not use -pie.
bug 15814177
Change-Id: I1d5df040b1a3b99048537a2f3496a538604ca81e
-rwxr-xr-x | bin/clang | bin | 32975104 -> 32278800 bytes | |||
-rwxr-xr-x | bin/llvm-as | bin | 1984852 -> 1984852 bytes | |||
-rwxr-xr-x | bin/llvm-dis | bin | 1706320 -> 1706320 bytes | |||
-rwxr-xr-x | bin/llvm-link | bin | 2948768 -> 2948768 bytes | |||
-rw-r--r-- | lib/clang/3.5/include/stdatomic.h | 76 | ||||
-rwxr-xr-x | lib/libc++.so | bin | 6651548 -> 6651492 bytes |
6 files changed, 65 insertions, 11 deletions
Binary files differ diff --git a/bin/llvm-as b/bin/llvm-as Binary files differindex 9eea969..88940d1 100755 --- a/bin/llvm-as +++ b/bin/llvm-as diff --git a/bin/llvm-dis b/bin/llvm-dis Binary files differindex cf6ebb4..4f0a627 100755 --- a/bin/llvm-dis +++ b/bin/llvm-dis diff --git a/bin/llvm-link b/bin/llvm-link Binary files differindex 6552632..8558060 100755 --- a/bin/llvm-link +++ b/bin/llvm-link diff --git a/lib/clang/3.5/include/stdatomic.h b/lib/clang/3.5/include/stdatomic.h index adf60bb..3db25a7 100644 --- a/lib/clang/3.5/include/stdatomic.h +++ b/lib/clang/3.5/include/stdatomic.h @@ -32,13 +32,33 @@ #include <sys/cdefs.h> -#if defined(__cplusplus) && defined(_USING_LIBCXX) && \ - (__has_feature(cxx_atomic) || _GNUC_VER >= 407) + +#if defined(__cplusplus) && defined(_USING_LIBCXX) +# ifdef __clang__ +# if __has_feature(cxx_atomic) +# define _STDATOMIC_HAVE_ATOMIC +# endif +# else /* gcc */ +# if __GNUC_PREREQ(4, 7) +# define _STDATOMIC_HAVE_ATOMIC +# endif +# endif +#endif + +#ifdef _STDATOMIC_HAVE_ATOMIC /* We have a usable C++ <atomic>; use it instead. */ #include <atomic> +#undef _Atomic + /* Also defined by <atomic> for gcc. But not used in macros. */ + /* Also a clang intrinsic. */ + /* Should not be used by client code before this file is */ + /* included. The definitions in <atomic> themselves see */ + /* the old definition, as they should. */ + /* Client code sees the following definition. */ + #define _Atomic(t) std::atomic<t> using std::atomic_is_lock_free; @@ -129,14 +149,24 @@ using std::atomic_uintmax_t; # include <uchar.h> /* For char16_t and char32_t. */ #endif -#if __has_extension(c_atomic) || __has_extension(cxx_atomic) -#define __CLANG_ATOMICS -#elif __GNUC_PREREQ__(4, 7) -#define __GNUC_ATOMICS -#elif defined(__GNUC__) -#define __SYNC_ATOMICS +#ifdef __clang__ +# if __has_extension(c_atomic) || __has_extension(cxx_atomic) +# define __CLANG_ATOMICS +# else +# error "stdatomic.h does not support your compiler" +# endif +# if __has_builtin(__sync_swap) +# define __HAS_BUILTIN_SYNC_SWAP +# endif #else -#error "stdatomic.h does not support your compiler" +# if __GNUC_PREREQ(4, 7) +# define __GNUC_ATOMICS +# else +# define __SYNC_ATOMICS +# ifdef __cplusplus +# define __ATOMICS_AVOID_DOT_INIT +# endif +# endif #endif /* @@ -145,33 +175,53 @@ using std::atomic_uintmax_t; #ifdef __GCC_ATOMIC_BOOL_LOCK_FREE #define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_BOOL_LOCK_FREE 2 /* For all modern platforms */ #endif #ifdef __GCC_ATOMIC_CHAR_LOCK_FREE #define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_CHAR_LOCK_FREE 2 #endif #ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE #define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_CHAR16_T_LOCK_FREE 2 #endif #ifdef __GCC_ATOMIC_CHAR32_T_LOCK_FREE #define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_CHAR32_T_LOCK_FREE 2 #endif #ifdef __GCC_ATOMIC_WCHAR_T_LOCK_FREE #define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_WCHAR_T_LOCK_FREE 2 #endif #ifdef __GCC_ATOMIC_SHORT_LOCK_FREE #define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_SHORT_LOCK_FREE 2 #endif #ifdef __GCC_ATOMIC_INT_LOCK_FREE #define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_INT_LOCK_FREE 2 #endif #ifdef __GCC_ATOMIC_LONG_LOCK_FREE #define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_LONG_LOCK_FREE 2 #endif #ifdef __GCC_ATOMIC_LLONG_LOCK_FREE #define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_LLONG_LOCK_FREE 1 /* maybe */ #endif #ifdef __GCC_ATOMIC_POINTER_LOCK_FREE #define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE +#elif defined(__SYNC_ATOMICS) +#define ATOMIC_POINTER_LOCK_FREE 2 #endif /* @@ -182,7 +232,11 @@ using std::atomic_uintmax_t; #define ATOMIC_VAR_INIT(value) (value) #define atomic_init(obj, value) __c11_atomic_init(obj, value) #else +#ifdef __ATOMICS_AVOID_DOT_INIT +#define ATOMIC_VAR_INIT(value) { value } +#else #define ATOMIC_VAR_INIT(value) { .__val = (value) } +#endif #define atomic_init(obj, value) ((void)((obj)->__val = (value))) #endif @@ -282,7 +336,7 @@ atomic_signal_fence(memory_order __order __attribute__((unused))) * 7.17.6 Atomic integer types. */ -#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic) +#ifndef __CLANG_ATOMICS /* * No native support for _Atomic(). Place object in structure to prevent * most forms of direct non-atomic access. @@ -403,7 +457,7 @@ typedef _Atomic(uintmax_t) atomic_uintmax_t; desired, success, failure) \ atomic_compare_exchange_strong_explicit(object, expected, \ desired, success, failure) -#if __has_builtin(__sync_swap) +#ifdef __HAS_BUILTIN_SYNC_SWAP /* Clang provides a full-barrier atomic exchange - use it if available. */ #define atomic_exchange_explicit(object, desired, order) \ ((void)(order), __sync_swap(&(object)->__val, desired)) diff --git a/lib/libc++.so b/lib/libc++.so Binary files differindex 7262806..46bf6dd 100755 --- a/lib/libc++.so +++ b/lib/libc++.so |