diff options
author | joerg <joerg> | 2015-03-19 19:14:26 +0000 |
---|---|---|
committer | joerg <joerg> | 2015-03-19 19:14:26 +0000 |
commit | cf54f903d70efe1539d1d2656c311700cc42468a (patch) | |
tree | 17f64d1ed8b05764d27ec2ede9cec701615f2245 /devel | |
parent | 7317c4a8b0aacdf88195c6aa371a1a87a3e91414 (diff) | |
download | pkgsrc-cf54f903d70efe1539d1d2656c311700cc42468a.tar.gz |
Fix build with Clang on ARM.
Diffstat (limited to 'devel')
-rw-r--r-- | devel/userspace-rcu/distinfo | 3 | ||||
-rw-r--r-- | devel/userspace-rcu/patches/patch-urcu_uatomic_generic.h | 100 |
2 files changed, 102 insertions, 1 deletions
diff --git a/devel/userspace-rcu/distinfo b/devel/userspace-rcu/distinfo index e5beceebef6..26e3c2136d8 100644 --- a/devel/userspace-rcu/distinfo +++ b/devel/userspace-rcu/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.8 2014/11/10 20:59:39 pettai Exp $ +$NetBSD: distinfo,v 1.9 2015/03/19 19:14:26 joerg Exp $ SHA1 (userspace-rcu-0.8.6.tar.bz2) = f10e9bf812557cd0c2a35a277e04010ec278d25d RMD160 (userspace-rcu-0.8.6.tar.bz2) = 4d40678ed27a78768cea1947e54a2b510b52fa33 Size (userspace-rcu-0.8.6.tar.bz2) = 424037 bytes +SHA1 (patch-urcu_uatomic_generic.h) = 6492e58d704805b29e9dce119c76ebdf615adddc diff --git a/devel/userspace-rcu/patches/patch-urcu_uatomic_generic.h b/devel/userspace-rcu/patches/patch-urcu_uatomic_generic.h new file mode 100644 index 00000000000..cb517a3c668 --- /dev/null +++ b/devel/userspace-rcu/patches/patch-urcu_uatomic_generic.h @@ -0,0 +1,100 @@ +$NetBSD: patch-urcu_uatomic_generic.h,v 1.1 2015/03/19 19:14:26 joerg Exp $ + +Clang requires correctly sized pointer arguments for the builtins. + +--- urcu/uatomic/generic.h.orig 2015-03-17 21:09:40.000000000 +0000 ++++ urcu/uatomic/generic.h +@@ -65,17 +65,17 @@ unsigned long _uatomic_cmpxchg(void *add + switch (len) { + #ifdef UATOMIC_HAS_ATOMIC_BYTE + case 1: +- return __sync_val_compare_and_swap_1(addr, old, _new); ++ return __sync_val_compare_and_swap_1((uint8_t *)addr, old, _new); + #endif + #ifdef UATOMIC_HAS_ATOMIC_SHORT + case 2: +- return __sync_val_compare_and_swap_2(addr, old, _new); ++ return __sync_val_compare_and_swap_2((uint16_t *)addr, old, _new); + #endif + case 4: +- return __sync_val_compare_and_swap_4(addr, old, _new); ++ return __sync_val_compare_and_swap_4((uint32_t *)addr, old, _new); + #if (CAA_BITS_PER_LONG == 64) + case 8: +- return __sync_val_compare_and_swap_8(addr, old, _new); ++ return __sync_val_compare_and_swap_8((uint64_t *)addr, old, _new); + #endif + } + _uatomic_link_error(); +@@ -100,20 +100,20 @@ void _uatomic_and(void *addr, unsigned l + switch (len) { + #ifdef UATOMIC_HAS_ATOMIC_BYTE + case 1: +- __sync_and_and_fetch_1(addr, val); ++ __sync_and_and_fetch_1((uint8_t *)addr, val); + return; + #endif + #ifdef UATOMIC_HAS_ATOMIC_SHORT + case 2: +- __sync_and_and_fetch_2(addr, val); ++ __sync_and_and_fetch_2((uint16_t *)addr, val); + return; + #endif + case 4: +- __sync_and_and_fetch_4(addr, val); ++ __sync_and_and_fetch_4((uint32_t *)addr, val); + return; + #if (CAA_BITS_PER_LONG == 64) + case 8: +- __sync_and_and_fetch_8(addr, val); ++ __sync_and_and_fetch_8((uint64_t *)addr, val); + return; + #endif + } +@@ -139,20 +139,20 @@ void _uatomic_or(void *addr, unsigned lo + switch (len) { + #ifdef UATOMIC_HAS_ATOMIC_BYTE + case 1: +- __sync_or_and_fetch_1(addr, val); ++ __sync_or_and_fetch_1((uint8_t *)addr, val); + return; + #endif + #ifdef UATOMIC_HAS_ATOMIC_SHORT + case 2: +- __sync_or_and_fetch_2(addr, val); ++ __sync_or_and_fetch_2((uint16_t *)addr, val); + return; + #endif + case 4: +- __sync_or_and_fetch_4(addr, val); ++ __sync_or_and_fetch_4((uint32_t *)addr, val); + return; + #if (CAA_BITS_PER_LONG == 64) + case 8: +- __sync_or_and_fetch_8(addr, val); ++ __sync_or_and_fetch_8((uint64_t *)addr, val); + return; + #endif + } +@@ -180,17 +180,17 @@ unsigned long _uatomic_add_return(void * + switch (len) { + #ifdef UATOMIC_HAS_ATOMIC_BYTE + case 1: +- return __sync_add_and_fetch_1(addr, val); ++ return __sync_add_and_fetch_1((uint8_t *)addr, val); + #endif + #ifdef UATOMIC_HAS_ATOMIC_SHORT + case 2: +- return __sync_add_and_fetch_2(addr, val); ++ return __sync_add_and_fetch_2((uint16_t *)addr, val); + #endif + case 4: +- return __sync_add_and_fetch_4(addr, val); ++ return __sync_add_and_fetch_4((uint32_t *)addr, val); + #if (CAA_BITS_PER_LONG == 64) + case 8: +- return __sync_add_and_fetch_8(addr, val); ++ return __sync_add_and_fetch_8((uint64_t *)addr, val); + #endif + } + _uatomic_link_error(); |