./devel/libatomic_ops, Multi-platform library of atomic operations by Hans Boehm

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 7.6.6, Package name: libatomic_ops-7.6.6, Maintainer: pkgsrc-users

This package provides semi-portable access to hardware provided
atomic memory operations. These might allow you to write code:

- That does more interesting things in signal handlers.
- Makes more effective use of multiprocessors by allowing you to write
clever lock-free code. Note that such code is very difficult to get
right, and will unavoidably be less portable than lock-based code. It
is also not always faster than lock-based code. But it may occasionally
be a large performance win.
- To experiment with new and much better thread programming paradigms, etc.

Required to build:

Master sites:

SHA1: 89a320bc94860fc63069615a0a7ee6f38eee9b70
RMD160: cd88fb23ddf3913c687be98c0570185a1abc9cdd
Filesize: 486.511 KB

Version history: (Expand)

CVS history: (Expand)

   2018-09-18 05:42:07 by Maya Rashish | Files touched by this commit (1)
Log message:
libatomic_ops: build fix for netbsd/sparc, which might be sparc v8.

from Tobias Ulmer in PR pkg/53570
   2018-08-16 12:13:30 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
libatomic_ops: updated to 7.6.6

COPYING: sync with FSF's gpl-2.0.txt
Fix 'undefined reference to __atomic_load/store/cas_16' error (gcc-7/x64)
Fix a typo in the overview section of README
Fix comments style in configure.ac and Makefile.am
Update copyright information in README and some header files
   2018-04-17 07:30:30 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
libatomic_ops: update to 7.6.4.

== [7.6.4] 2018-03-27 ==

* Add RISC-V support
* Convert atomic_ops_malloc.c and tests to valid C++ code
* Eliminate 'function is never used' cppcheck warning for load_before_cas
* Eliminate 'using argument that points at uninitialized var' cppcheck error
* Fix 'AO_pt_lock undefined' error if cross-compiling manually (MinGW)
* Fix public headers inclusion from clients C++ code
* Remove gcc/nios2.h file (include gcc/generic.h directly for nios2)
* Support MIPS rel6
   2018-02-22 00:59:33 by Maya Rashish | Files touched by this commit (3)
Log message:
libatomic-ops: check if AO_AO_TS_T is defined before using it

PR pkg/53046: x11/libdrm doesn't compile on GNU/Linux
   2018-01-01 21:32:55 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
libatomic_ops: updated to 7.6.2

Allow to alter DEFAULT/MAX_NTHREADS values in test_malloc/stack
Allow to select almost-non-blocking stack implementation explicitly
Annotate AO_malloc with 'alloc_size' and 'malloc' attributes
Avoid misleading 'AO_t undefined' error if wrong atomic_ops.h included
Define AO_TS_SET to 1 (true) if GCC atomic_test_and_set is used
Disable workaround in stack_pop_acquire that was needed for ancient Clang
Do not define AO_GCC_FORCE_HAVE_CAS for Clang 3.8+ (Aarch64)
Do not disallow to define double_load using built-in atomics (Aarch64)
Do not expose AO_GCC_FORCE_HAVE_CAS macro to client code (GCC)
Do not install documentation if configure --disable-docs (new option)
Do not produce .tar.bz2 distribution file (configure)
Eliminate '-pedantic is not an option that controls warnings' GCC message
Eliminate data race in cons() of test_malloc
Eliminate GCC-5 ASan global-buffer-overflow false positive for AO_stack_bl
Fill in allocated memory with values depending on thread id (test_malloc)
Fix 'bad register name %sil' assembler error (GCC-4.4/x86)
Fix 'unknown attribute no_sanitize' compiler warning for GCC
Fix AO_malloc for sizes near CHUNK_SIZE
Fix memory leak in test_malloc
Fix test failures for Clang-3.8 and older (Aarch64)
Fix test_stack failure if AO_PREFER_BUILTIN_ATOMICS (GCC/Aarch64)
Fix typo in AO_REAL_NEXT_PTR comment
Increase the default number of threads to 16 in test_malloc/stack
Mark unallocated/freed memory as inaccessible using ASan functionality
New macro (DONT_USE_MMAP) to support testing as if mmap() is unavailable
New macro to select stack implementation based on CAS-double
Place no_sanitize attributes in a GCC-compliant way
Prevent too long run of test_atomic_generalized (especially with TSan)
Simplify '#if' expressions in gcc/x86.h (code refactoring)
Test smallest allocation of large type (test_malloc)
Use __builtin_expect in atomic_ops_malloc
Use built-in atomics for load/store/CAS for Clang by default (Aarch64)
Use double-word atomic intrinsics for recent Clang versions (gcc/x86.h)
Use GCC atomic intrinsics for Hexagon (clang 3.9+)
Use generalized double-wide load/store if AO_PREFER_GENERALIZED (Aarch64)
Workaround 'unused result' code defects in atomic_ops.c, list_atomic
Workaround Thread Sanitizer (TSan) false positive warnings
Also, includes 7.4.8 changes
   2017-05-29 14:55:10 by Thomas Klausner | Files touched by this commit (4) | Package updated
Log message:
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 store
   2017-05-19 14:05:51 by Ryosuke Moro | Files touched by this commit (1)
Log message:
fix directory name
   2017-05-18 22:37:03 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
== [7.4.6] 2017-05-18 ==

* Add assertion that double-wide CAS target is aligned (msftc/x86[_64])
* Add configure --enable-gcov option (enable code coverage analysis)
* Code refactoring of gcc/powerpc.h to avoid code duplication
* Eliminate 'cast to long from void*' compiler warning in test_atomic
* Eliminate 'implicit declaration of close' warning in 'strict ANSI' mode
* Eliminate 'missing braces around initializer' gcc warning (hppa)
* Eliminate 'printf format specifies type void*' GCC pedantic warnings
* Eliminate 'value shift followed by expansion' false code defect warning
* Enable limited testing in Makefile.msft without Cygwin
* Fix (delete) comment for AO_and_full (x86)
* Fix block_all_signals compilation in 'strict ANSI' mode
* Fix missing .exe for test filenames in Makefile (MinGW)
* Fix missing printed value names (test_stack)
* Implement fetch-CAS for s390[x] (gcc)
* Move libraries version info to the beginning of Makefile.am
* Refine documentation in Makefile.msft how to run all tests (MS VC)
* Refine README about library downloading
* Rename doc/README.txt to doc/README_details.txt
* Support AIX/ppc (gcc)
* Support CFLAGS_EXTRA to pass extra user-defined compiler flags (make)
* Support n32 ABI for mips64
* Update shared libraries version info for 7.4.6+ (to 1:4:0)
* Use 'inline code' format for commands in README.md
* Use LLD and SCD instructions on mips64
* Workaround 'resource leak' false positives in AO_malloc, add_elements
* Workaround 'uninitialized memory use' MemorySanitizer warning (test_atomic)
Also, includes 7.2h changes