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

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


Branch: CURRENT, Version: 7.8.2, Package name: libatomic_ops-7.8.2, 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:
[pkgtools/cwrappers]

Master sites:

Filesize: 512.341 KB

Version history: (Expand)


CVS history: (Expand)


   2023-12-17 23:15:30 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
libatomic_ops: update to 7.8.2.

== [7.8.2] 2023-12-15 ==

* Eliminate 'atomic_thread_fence is unsupported with tsan' gcc-11 warning
* Eliminate 'comparing signed/unsigned values' lcc warning in add_chunk_as
* Fix 'undefined reference to AO_pt_lock' if configure is using clang-16
* Fix 'undefined reference to __atomic_load/store/cas_16' Mingw64-gcc error
* Fix 'undefined reference' linker errors if shared build on OpenBSD (CMake)
* Fix get_chunk for case of mmap area is located before AO_initial_heap
* Fix typo in AO_HAVE_compare_and_swap_double name in atomic_ops_stack.h
* Fix typo in comment of run_one_test of test_stack
* Fix typos in comments of atomic_ops_malloc.c and atomic_ops_stack.c/h
* Update cmake minimum required version to 3.5
   2023-05-08 11:34:40 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
libatomic_ops: update to 7.8.0.

== [7.8.0] 2023-03-26 ==

* Add AUTHORS file to the list of installed documentation
* Add goal to Makefile.msft to build all tests but not execute them
* Allocate marks[] dynamically and report all found errors in test_stack
* Always export stack_init/push_release/pop_acquire from atomic_ops_gpl
* Always use 'mfence' for nop_full if target CPU supports SSE2 (MS VC/x86)
* Avoid 'cast increases required alignment' warnings in atomic_ops_malloc.c
* Avoid breaking strict-aliasing rules in test_malloc and test_stack
* Avoid code duplication in AO_stack_push_explicit_aux_release
* Better document test_stack internals
* Build atomic_ops.lib by Makefile.msft (MS VC)
* Build test object and executable files in tests folder (MS VC)
* Define AO_stack_t uniformly
* Define double_compare_and_swap_full if MS VS 2017+ (x86)
* Do not expose AO_REAL_HEAD/NEXT_PTR implementation in header by default
* Document config macros in README_win32 and remove them from configure
* Eliminate 'function is never used' cppcheck warning for AO_stack_init
* Enforce most strict level of compiler warnings (MS VC)
* Ensure atomic_ops.c global symbols are always declared as extern 'C'
* Explicitly outline symbols exported in AO shared libraries with AO_API
* Hide AO_free_list symbol
* Implement AO_stack_init using memset
* Implement AO_test_and_set using InterlockedExchange8 (MS VC)
* Implement and/or/xor for AO_t, short and int types (MS VC)
* Implement nf/acq/rel variants of primitives on Windows RT (MS VC)
* Mention MIT near core library licensing terms in LICENSE file
* Move all README_*.txt and license files to the top folder
* Move all non-double intrinsic-based primitives to msftc/common32_defs.h
* Move gcc-4/alpha workaround outside AO_stack_pop_explicit_aux_acquire
* New AO_stack_is_lock_free API function
* New configure option (--disable-gpl) to skip building of libatomic_ops_gpl
* Print message of almost-lock-free implementation in test_stack if used
* Refine LICENSE and README about code parts covered by MIT and GPL-2.0
* Refine copyright terms in GPL source files
* Reformat atomic_ops_stack.c/h files
* Remove 'lib' prefix for atomic_ops_gpl.lib in Makefile.msft
* Remove redundant assert in AO_stack_pop_explicit_aux_acquire
* Remove redundant cast to AO_t in lock-free AO_stack_pop_acquire
* Rename LICENSING.txt to LICENSE file
* Rename VERBOSE macro to VERBOSE_STACK in test_stack (refactoring)
* Rename fetch_and_add to fetch_then_add in test_stack (refactoring)
* Replace obsolete AC_HELP_STRING with AS_HELP_STRING in configure
* Replace obsolete AC_TRY_COMPILE with AC_COMPILE_IFELSE in configure
* Split test_stack main into several functions (refactoring)
* Support Elbrus 2000 (gcc/e2k)
* Support build with CMake
* Support double-wide CAS on armv7+ and UWP/arm64 (MS VC)
* Support test_atomic with MS build w/o the need to run GNU make first
* Use GCC atomic intrinsics for SPARC
* Use builtin_expect in AO_stack_push_explicit_aux_release
   2022-09-09 17:41:03 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
libatomic_ops: update to 7.6.14.

== [7.6.14] 2022-08-25 ==

* Add note to README that AO malloc code has same license as AO stack
* Adjust/reformat content of LICENSING.txt
* Avoid AO_stack_t to cross CPU cache line boundary
* Do not assume 'ordered except earlier write' for UWP/arm64
* Do not name GCC intrinsics as C11 ones in ChangeLog and configure
* Eliminate '-pedantic is not option that controls warnings' GCC-6.3 message
* Ensure result of AO_test_and_set is always AO_TS_CLEAR or AO_TS_SET
* Fix 'AO_malloc redefinition' MS VC warning caused by attributes mismatch
* Fix 'use of undeclared SIG_BLOCK' Clang error if -std=c89 on Cygwin
* Fix AO_compare_and_swap_full asm code for clang on sparc
* Fix a typo in comment of AO_stack_push_explicit_aux_release
* Fix code indentation in main() of test_stack.c
* Refine AO_UNIPROCESSOR macro description in configure
* Remove outdated comment about unsupported Win64 in atomic_ops_stack.h
* Repeat black list check on CAS fail in stack_push_explicit_aux_release
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2021-09-14 10:29:08 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
libatomic_ops: updated to 7.6.12

Changes 7.6.12

Allow to generalize bool-CAS for sparc (gcc)
Declare argument of AO_load_next with const in atomic_ops_stack
Describe double_compare_and_swap operation in README_details
Document CAS operations better in README_details
Fix gcc/sunc x86 AO_compare_double_and_swap_double missing side effect
Fix library name in README_details
Fix link fail caused by missing GCC char/short atomic primitives on riscv64
Fix size of local variable passed to cas[x] (gcc/sparc)
Implement fetch-CAS for sparc (gcc)
Refactor gcc x86 memory constraints
Refine and reformat description of size prefix in README_details
Remove outdated notes in README_details
Replace x86 setz instruction by asm flag output operand (gcc)
Support MSYS host (configure)
Turn off compare_double_and_swap_double_full PIC hack for GCC 5+ (x86)
Update README_win32 to match Makefile.msft
Use GCC atomic intrinsics for s390x (clang 8.0+ and gcc 5.4+)
Use __alignof__ instead of sizeof in atomic variable alignment assertions
Workaround assertion violation in AO_load/store on m68k
   2020-05-10 15:10:34 by Greg Troxel | Files touched by this commit (1)
Log message:
libatomic_ops: Drop MESSAGE (because it contains no MESSAGE content)

MESSAGE is for information that is so important to someone who
installs a package that bad things might happen if that information is
not known.  This file contains a statement about the kinds of header
files that are installed.  This is both unimportant, in that nothing
happens unless you try to build with the header file, and redundant
with the upstream documentation of how to use the library.
Additionally, the vast majority of people installing this package do
so as a dependency of some other package, not because they are trying
to write code that uses the library -- and if so they need to read the
upstream documentation anyway.
   2020-05-10 07:06:21 by Roland Illig | Files touched by this commit (2)
Log message:
devel/libatomic_ops: fix layout of MESSAGE file