Updated libatomic_ops to 7.6.0. == [7.6.0] 2017-05-19 == * Add *_and/or/xor* and *_[fetch_]compare_and_swap* tests to test_atomic * Add asm-based and/or/xor implementation for char/short/int (gcc/x86) * Add asm-based char/short/int CAS implementation for gcc/x86[_64] * Add configure '--disable-atomic-intrinsics' option * Add dd_acquire_read case to test_atomic * Add initial nios2 architecture support * Add Makefile target (check-nolink) to compile all source without linking * Add Makefile target to run all tests without test-driver * Add test_atomic_generalized to Makefile and Makefile.msft * Allow alternate CC (CROSS_CC) for AC_TRY_COMPILE (configure) * Always define word-wide CAS for x86 (MS VC++ 8+) * Avoid atomic_compare_exchange_n if no __GCC_HAVE_SYNC_COMPARE_AND_SWAP_n * Avoid extra nop_full in stack_pop_acquire if atomic intrinsics used (x86) * Basic support of TILE-Gx and TILEPro CPUs * Code refactoring of int-wide primitives in gcc/x86.h * Define AO_TS_SET as __GCC_ATOMIC_TEST_AND_SET_TRUEVAL if applicable * Define CLANG/GNUC_PREREQ macros to check gcc/clang minimum version * Do not define print_list() unless used (tests) * Eliminate 'condition sizeof(long)>4 is always true' cppcheck style warning * Eliminate 'ISO C90 does not support long long' compiler pedantic warning * Eliminate 'scope of variable can be reduced' cppcheck warnings * Eliminate redundant lwsync 2nd call in CAS_full on fail (gcc/PowerPC) * Fix 'unknown attribute no_sanitize' compiler warning (clang prior to v3.8) * Fix 'variable new value is never used' cppcheck style warning * Fix missing double_compare_and_swap_dd_acquire_read * Fix reporting about missing and/or/xor_dd_acquire_read (test_atomic) * Hide AO_locks symbol * Implement AO_CLEAR using C11 atomic intrinsic (GCC) * Implement CAS_acquire/release/full using __atomic_compare_exchange_n (gcc) * Implement char and/or/xor and short CAS for msftc ARM and X86[_64] * Implement char CAS and char/short add for msftc X86[_64] (VS 2013+) * Implement compiler_barrier using C11 __atomic_signal_fence (GCC) * Implement int CAS/inc/dec for msftc/x86_64 * Implement short inc/dec directly for msftc ARM and X86[_64] * Initial ibmc/powerpc (xlc) support * New configure option (--enable-werror) to treat warnings as compiler errors * New macro AO_PREFER_BUILTIN_ATOMICS to rely on C11 atomics fully (AArch64) * Refine AO_nop_write comment for ARM big.LITTLE architecture * Refine configure messages when checking for compiler options * Refine documentation about _full memory ordering suffix * Refine README how to build the library source from the repository * Relax shareability domain for dmb st in AO_nop_write (ARM/AArch64) * Remove redundant include windows.h from headers (msftc/x86[_64]) * Remove spaces at EOLn in asm code * Report gcc/clang pedantic warnings (configure) * Support NaCl/arm * Suppress 'ISO C does not support __int128 type' GCC/Clang pedantic warning * Test store/CAS emulation explicitly * Update shared libraries version info to 2:0:1 * Use GCC atomic intrinsics for PowerPC 32/64 (GCC 4.8+ and clang 3.8+) * Use GCC atomic intrinsics for x86, x64, ARM, MIPS (gcc 4.9+, clang 3.5+) * Use generalized double-wide load/store if AO_PREFER_GENERALIZED (gcc/x86) * Workaround '#error' cppcheck error messages * Workaround 'condition always true', 'unused stored value' cppcheck warnings * Workaround 'function is never used' cppcheck style warnings * Workaround 'obsolescent ftime called' cppcheck style warning (POSIX) * Workaround 'overflow in pointer subtraction' cppcheck warning * Workaround 'shifting 32-bit value by 32 bits undefined' cppcheck warning * Workaround 'uninitialized memory use' code analyzer false warning (tests) * Workaround 'uninitialized variable' cppcheck error in hpc/hppa.h * Workaround 'value of macro is unknown' cppcheck information messages * Workaround a bug in double-wide intrinsics of Clang/x64 with ASan enabled * Workaround MSan warning about uninitialized data read by generalized storediff -r1.12 -r1.13 pkgsrc/devel/libatomic_ops/Makefile
(wiz)
@@ -1,16 +1,16 @@ | @@ -1,16 +1,16 @@ | |||
1 | # $NetBSD: Makefile,v 1.12 2017/05/18 20:37:03 adam Exp $ | 1 | # $NetBSD: Makefile,v 1.13 2017/05/29 12:55:10 wiz Exp $ | |
2 | 2 | |||
3 | DISTNAME= libatomic_ops-7.4.6 | 3 | DISTNAME= libatomic_ops-7.6.0 | |
4 | CATEGORIES= devel | 4 | CATEGORIES= devel | |
5 | MASTER_SITES= ${MASTER_SITE_GITHUB:=ivmai/} | 5 | MASTER_SITES= ${MASTER_SITE_GITHUB:=ivmai/} | |
6 | 6 | |||
7 | MAINTAINER= pkgsrc-users@NetBSD.org | 7 | MAINTAINER= pkgsrc-users@NetBSD.org | |
8 | HOMEPAGE= https://github.com/ivmai/libatomic_ops | 8 | HOMEPAGE= https://github.com/ivmai/libatomic_ops | |
9 | COMMENT= Multi-platform library of atomic operations by Hans Boehm | 9 | COMMENT= Multi-platform library of atomic operations by Hans Boehm | |
10 | LICENSE= gnu-gpl-v2 | 10 | LICENSE= gnu-gpl-v2 | |
11 | 11 | |||
12 | GITHUB_PROJECT= libatomic_ops | 12 | GITHUB_PROJECT= libatomic_ops | |
13 | GITHUB_RELEASE= v${PKGVERSION_NOREV} | 13 | GITHUB_RELEASE= v${PKGVERSION_NOREV} | |
14 | 14 | |||
15 | USE_LANGUAGES+= c | 15 | USE_LANGUAGES+= c | |
16 | USE_LIBTOOL= yes | 16 | USE_LIBTOOL= yes |
@@ -1,43 +1,45 @@ | @@ -1,43 +1,45 @@ | |||
1 | @comment $NetBSD: PLIST,v 1.8 2017/05/18 20:37:03 adam Exp $ | 1 | @comment $NetBSD: PLIST,v 1.9 2017/05/29 12:55:10 wiz Exp $ | |
2 | include/atomic_ops.h | 2 | include/atomic_ops.h | |
3 | include/atomic_ops/ao_version.h | 3 | include/atomic_ops/ao_version.h | |
4 | include/atomic_ops/generalize-arithm.h | 4 | include/atomic_ops/generalize-arithm.h | |
5 | include/atomic_ops/generalize-small.h | 5 | include/atomic_ops/generalize-small.h | |
6 | include/atomic_ops/generalize.h | 6 | include/atomic_ops/generalize.h | |
7 | include/atomic_ops/sysdeps/all_acquire_release_volatile.h | 7 | include/atomic_ops/sysdeps/all_acquire_release_volatile.h | |
8 | include/atomic_ops/sysdeps/all_aligned_atomic_load_store.h | 8 | include/atomic_ops/sysdeps/all_aligned_atomic_load_store.h | |
9 | include/atomic_ops/sysdeps/all_atomic_load_store.h | 9 | include/atomic_ops/sysdeps/all_atomic_load_store.h | |
10 | include/atomic_ops/sysdeps/all_atomic_only_load.h | 10 | include/atomic_ops/sysdeps/all_atomic_only_load.h | |
11 | include/atomic_ops/sysdeps/ao_t_is_int.h | 11 | include/atomic_ops/sysdeps/ao_t_is_int.h | |
12 | include/atomic_ops/sysdeps/armcc/arm_v6.h | 12 | include/atomic_ops/sysdeps/armcc/arm_v6.h | |
13 | include/atomic_ops/sysdeps/emul_cas.h | 13 | include/atomic_ops/sysdeps/emul_cas.h | |
14 | include/atomic_ops/sysdeps/gcc/aarch64.h | 14 | include/atomic_ops/sysdeps/gcc/aarch64.h | |
15 | include/atomic_ops/sysdeps/gcc/alpha.h | 15 | include/atomic_ops/sysdeps/gcc/alpha.h | |
16 | include/atomic_ops/sysdeps/gcc/arm.h | 16 | include/atomic_ops/sysdeps/gcc/arm.h | |
17 | include/atomic_ops/sysdeps/gcc/avr32.h | 17 | include/atomic_ops/sysdeps/gcc/avr32.h | |
18 | include/atomic_ops/sysdeps/gcc/cris.h | 18 | include/atomic_ops/sysdeps/gcc/cris.h | |
19 | include/atomic_ops/sysdeps/gcc/generic-arithm.h | 19 | include/atomic_ops/sysdeps/gcc/generic-arithm.h | |
20 | include/atomic_ops/sysdeps/gcc/generic-small.h | 20 | include/atomic_ops/sysdeps/gcc/generic-small.h | |
21 | include/atomic_ops/sysdeps/gcc/generic.h | 21 | include/atomic_ops/sysdeps/gcc/generic.h | |
22 | include/atomic_ops/sysdeps/gcc/hexagon.h | 22 | include/atomic_ops/sysdeps/gcc/hexagon.h | |
23 | include/atomic_ops/sysdeps/gcc/hppa.h | 23 | include/atomic_ops/sysdeps/gcc/hppa.h | |
24 | include/atomic_ops/sysdeps/gcc/ia64.h | 24 | include/atomic_ops/sysdeps/gcc/ia64.h | |
25 | include/atomic_ops/sysdeps/gcc/m68k.h | 25 | include/atomic_ops/sysdeps/gcc/m68k.h | |
26 | include/atomic_ops/sysdeps/gcc/mips.h | 26 | include/atomic_ops/sysdeps/gcc/mips.h | |
27 | include/atomic_ops/sysdeps/gcc/nios2.h | |||
27 | include/atomic_ops/sysdeps/gcc/powerpc.h | 28 | include/atomic_ops/sysdeps/gcc/powerpc.h | |
28 | include/atomic_ops/sysdeps/gcc/s390.h | 29 | include/atomic_ops/sysdeps/gcc/s390.h | |
29 | include/atomic_ops/sysdeps/gcc/sh.h | 30 | include/atomic_ops/sysdeps/gcc/sh.h | |
30 | include/atomic_ops/sysdeps/gcc/sparc.h | 31 | include/atomic_ops/sysdeps/gcc/sparc.h | |
32 | include/atomic_ops/sysdeps/gcc/tile.h | |||
31 | include/atomic_ops/sysdeps/gcc/x86.h | 33 | include/atomic_ops/sysdeps/gcc/x86.h | |
32 | include/atomic_ops/sysdeps/generic_pthread.h | 34 | include/atomic_ops/sysdeps/generic_pthread.h | |
33 | include/atomic_ops/sysdeps/hpc/hppa.h | 35 | include/atomic_ops/sysdeps/hpc/hppa.h | |
34 | include/atomic_ops/sysdeps/hpc/ia64.h | 36 | include/atomic_ops/sysdeps/hpc/ia64.h | |
35 | include/atomic_ops/sysdeps/ibmc/powerpc.h | 37 | include/atomic_ops/sysdeps/ibmc/powerpc.h | |
36 | include/atomic_ops/sysdeps/icc/ia64.h | 38 | include/atomic_ops/sysdeps/icc/ia64.h | |
37 | include/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h | 39 | include/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h | |
38 | include/atomic_ops/sysdeps/loadstore/atomic_load.h | 40 | include/atomic_ops/sysdeps/loadstore/atomic_load.h | |
39 | include/atomic_ops/sysdeps/loadstore/atomic_store.h | 41 | include/atomic_ops/sysdeps/loadstore/atomic_store.h | |
40 | include/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h | 42 | include/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h | |
41 | include/atomic_ops/sysdeps/loadstore/char_atomic_load.h | 43 | include/atomic_ops/sysdeps/loadstore/char_atomic_load.h | |
42 | include/atomic_ops/sysdeps/loadstore/char_atomic_store.h | 44 | include/atomic_ops/sysdeps/loadstore/char_atomic_store.h | |
43 | include/atomic_ops/sysdeps/loadstore/double_atomic_load_store.h | 45 | include/atomic_ops/sysdeps/loadstore/double_atomic_load_store.h |
@@ -1,7 +1,7 @@ | @@ -1,7 +1,7 @@ | |||
1 | $NetBSD: distinfo,v 1.18 2017/05/18 20:37:03 adam Exp $ | 1 | $NetBSD: distinfo,v 1.19 2017/05/29 12:55:10 wiz Exp $ | |
2 | 2 | |||
3 | SHA1 (libatomic_ops-7.4.6.tar.gz) = 0630cbe0c808f9d0e643e333143af9a69ac32828 | 3 | SHA1 (libatomic_ops-7.6.0.tar.gz) = b7236a3c3d6f3e5da69fe0c7b9508eb814a09825 | |
4 | RMD160 (libatomic_ops-7.4.6.tar.gz) = 8b207d008eb4e6deec314b919892b76f2cd6d4d5 | 4 | RMD160 (libatomic_ops-7.6.0.tar.gz) = 2500519f00de1e1197eb3d57f3858702b07c13d8 | |
5 | SHA512 (libatomic_ops-7.4.6.tar.gz) = 29c6f937aa5d21343741aa0661aaf33ec9196b7784b7165d40dd87ce7bf8a7691f5ba94040663f078465ded1935ca01bb829a4b56b190f9db63cc141515d9819 | 5 | SHA512 (libatomic_ops-7.6.0.tar.gz) = 58f1f1df94ff33bda5833af2e3a6a4af120ccfc0cec0fb15e2db24341e2ffd5a6436169cb4e7dbd96a6cb0431c1295dc4b5270d4b01806e470bacadc902720fc | |
6 | Size (libatomic_ops-7.4.6.tar.gz) = 479437 bytes | 6 | Size (libatomic_ops-7.6.0.tar.gz) = 493177 bytes | |
7 | SHA1 (patch-ad) = 01b30be4d320a88bd8690e65bcd243d224c3146b | 7 | SHA1 (patch-ad) = 6fb90f31ca7309c8ea65fb482a9964c5267c35fe |
@@ -1,14 +1,19 @@ | @@ -1,14 +1,19 @@ | |||
1 | $NetBSD: patch-ad,v 1.4 2014/04/16 11:21:32 wiz Exp $ | 1 | $NetBSD: patch-ad,v 1.5 2017/05/29 12:55:10 wiz Exp $ | |
2 | ||||
3 | revision 1.2 | |||
4 | date: 2009-01-31 21:05:57 +0100; author: sketch; state: Exp; lines: +2 -2; | |||
5 | Sun Studio x86 implementation isn't quite good enough yet for e.g. | |||
6 | pulseaudio, so instead use the generic pthread implementation for now. | |||
2 | 7 | |||
3 | --- src/atomic_ops.h.orig 2013-11-10 09:57:12.000000000 +0000 | 8 | --- src/atomic_ops.h.orig 2013-11-10 09:57:12.000000000 +0000 | |
4 | +++ src/atomic_ops.h | 9 | +++ src/atomic_ops.h | |
5 | @@ -351,7 +351,10 @@ | 10 | @@ -351,7 +351,10 @@ | |
6 | # endif | 11 | # endif | |
7 | #endif | 12 | #endif | |
8 | 13 | |||
9 | -#if !defined(__GNUC__) && (defined(sparc) || defined(__sparc)) \ | 14 | -#if !defined(__GNUC__) && (defined(sparc) || defined(__sparc)) \ | |
10 | +#if defined(__SUNPRO_C) && defined(__i386) | 15 | +#if defined(__SUNPRO_C) && defined(__i386) | |
11 | +# include "atomic_ops/sysdeps/generic_pthread.h" | 16 | +# include "atomic_ops/sysdeps/generic_pthread.h" | |
12 | +# define AO_CAN_EMUL_CAS | 17 | +# define AO_CAN_EMUL_CAS | |
13 | +#elif !defined(__GNUC__) && (defined(sparc) || defined(__sparc)) \ | 18 | +#elif !defined(__GNUC__) && (defined(sparc) || defined(__sparc)) \ | |
14 | && !defined(AO_USE_PTHREAD_DEFS) | 19 | && !defined(AO_USE_PTHREAD_DEFS) |