diff options
author | ed <ed@FreeBSD.org> | 2013-04-27 04:56:02 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2013-04-27 04:56:02 +0000 |
commit | f201fcc561ac7eab4ed7997403288e40b18a75a4 (patch) | |
tree | 4b862626af7bfbb06d0c17477809c39c52c3c91c /lib/libcompiler_rt/__sync_fetch_and_add_4.c | |
parent | 44c2a968f1f309c08b4f02d245f5af4afaf4fe76 (diff) | |
download | FreeBSD-src-f201fcc561ac7eab4ed7997403288e40b18a75a4.zip FreeBSD-src-f201fcc561ac7eab4ed7997403288e40b18a75a4.tar.gz |
Unbreak <stdatomic.h> on ARM + Clang.
Clang only supports atomic operations for ARMv6. For non-ARMv6, we still
need to emit these functions.
Clang's prototype for these functions slightly differs, as it is truly
based on GCC's documentation. It requires the use of signed types, but
also requires varargs. Still, we are not allowed to simply implement
this function directly. Cleverly work around this by implementing it
under a different name and using __strong_reference().
Diffstat (limited to 'lib/libcompiler_rt/__sync_fetch_and_add_4.c')
-rw-r--r-- | lib/libcompiler_rt/__sync_fetch_and_add_4.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libcompiler_rt/__sync_fetch_and_add_4.c b/lib/libcompiler_rt/__sync_fetch_and_add_4.c index 3c11a3b..6126cfa 100644 --- a/lib/libcompiler_rt/__sync_fetch_and_add_4.c +++ b/lib/libcompiler_rt/__sync_fetch_and_add_4.c @@ -1,6 +1,6 @@ /* $FreeBSD$ */ #define NAME __sync_fetch_and_add_4 -#define TYPE uint32_t +#define TYPE int32_t #define FETCHADD(x, y) atomic_fetchadd_32(x, y) #include "__sync_fetch_and_op_n.h" |