Releases: ivmai/libatomic_ops
Releases · ivmai/libatomic_ops
7.2d
Changes
- Fix AO_compare_double_and_swap_double_full for gcc-4.2.1/x86 in PIC mode
- Fix AO_compiler_barrier missing parentheses
- Fix missing 'unsigned' for generalized AO_char/short_fetch_and_add result
Distribution Tarball
7.2
Changes
- Add atomic_ops.pc.in and atomic_ops-uninstalled.pc.in to pkgconfig folder
- Define and use AO_PTRDIFF_T in tests for casts between pointer and integer
- Fix AO_compare_and_swap return type for s390 and PowerPC
- Fix AO_compare_double_and_swap_double_full for gcc/x86 (PIC mode)
- Fix AO_stack_push_release to workaround bug in clang-1.1/x86 compiler
- Fix AO_test_and_setXX in tests/list_atomic.template
- Fix AO_test_and_set_full (gcc/x86[_64].h) to work-around a bug in LLVM v2.7
- Fix AO_test_and_set_full on m68k
- Fix ARM_ARCH_5 macro handling for Android NDK (ARMv7)
- Fix configure for Cygwin, mingw-w64/32
- Fix configure to define PIC macro explicitly if needed (GCC)
- Fix double_ptr_storage definition for GCC pre-v4 (x86_64)
- Fix for x32 by removing 'q' suffix in x86-64 instructions
- Fix generalization for IA-64 (regarding AO_or, AO_..._read/write primitives)
- Fix generalized AO__fetch_and_add() return type
- Fix test_atomic_include for the case of missing CAS primitive
- Fix test_malloc - allocate less memory in case of missing mmap
- Implement the basic atomic primitives for the hexagon CPU
Distribution Tarball
7.3-alpha2
Changes
- Add '-no-undefined' to LDFLAGS in src/Makefile.am
- Add AO_and, AO_xor atomic operations
- Add AO_fetch_compare_and_swap primitives
- Add and fill in AUTHORS, TODO files
- Add autogen.sh file
- Adjust AO_..._H macros in public headers
- Code refactoring of gcc/arm.h by introducing AO_ARM_HAVE_x macros
- Define AO macros for libatomic_ops version identification
- Do not define NDEBUG if '--enable-assertions' passed to configure
- Eliminate compiler warnings in various functions and macros
- Generalize AO_compare_and_swap primitives via AO_fetch_compare_and_swap
- Generalize acquire/release/full CAS primitives for MIPS
- Implement fetch_and_add, test_and_set primitives for MIPS
- Improve Makefile for MS VC++; pass '-W3' option to MS compiler
- Include ao_t_is_int.h from atomic_ops.h after first generalization pass
- Merge all Makefile.am files in src tree
- Minor code refactoring of atomic_ops.c, generic_pthread.h
- Minor configure build improvements (e.g., ensure proper autoconf version)
- Place only major per-release changes description to ChangeLog (this file)
- Recognize AO_PREFER_GENERALIZED macro to favor generalization over assembly
- Remove all auto-generated files except for generalize-small.h from the repo
- Remove duplicate doc/COPYING and empty NEWS files
- Replace atomic_ops_malloc static mmap-related empty functions with macros
- Replace pointer relational comparisons with non-pointer ones
- Require autoconf 2.61 instead of v2.64
- Show extra compiler warnings (GCC only)
- Turn off AO primitives inlining if AO_NO_INLINE defined
- Use __builtin_expect in CAS failure loop condition checks (GCC only)
Also, includes 7.2 changes
Distribution Tarball
1.2
Changes
- Add prototypes to suppress compiler warnings
- Add simple VxWorks support
- Fix InterlockedCompareExchange proto usage
- Fix typos (ia64)
- Include all_acquire_release_volatile.h and all_atomic_load_store.h (ia64)
- Initial support for 64-bit targets
- Use "=q" for AO_test_and_set_full (x86)
- Use inline assembler to generate "mfence" and byte sized XCHG
- Use new intrinsics available in MSVC 2003 and MSVC 2005
Distribution Tarball
1.1
Changes
- Add and use read_ordered.h
- Change function naming from "byte" to "char"
- Fix AO_test_and_set for ARM; define AO_CAN_EMUL_CAS
Distribution Tarball
7.1
Changes
- Add test_and_set, AO_double_compare_and_swap generalizations
- Conditionally add compare_double_and_swap_double (x86)
- Conditionally add compare_double_and_swap_double (x86)
- Fix AO_compare_double_and_swap_double_full (x86) for PIC mode
- Fix AO_load_acquire for PowerPC
- Fix double-width CAS (x86)
- Refine README (add more warnings about data dependencies)
- Refine double_ptr_storage type definition
- Support ARMv6+ in GCC
- Support ArmCC compiler
- Use _InterlockedExchangeAdd for MS VC (x86)
7.0
7.2-alpha6
Changes
- Add missing AO_HAVE_ macros
- Add support of avr32 CPU
- Better support of various models of ARM
- Disable AO_compare_double_and_swap_double_full for SunCC x86 as not working
- Enable ARM Thumb-2 mode
- Fix AO_test_and_set_full for SunCC (x86)
- Fix bugs in tests
- Fix clobbers in AO_compare_and_swap_full (x86.h)
- Fix typos in identifiers and comments
- Improve AO_sync for PowerPC
- Improve make scripts (configure.ac)
- Make get_mmaped() in atomic_ops_malloc.c more portable
- Support Intel compiler
- Support NaCl target
- Suppress compiler warnings in various places
- Test more predefined macros (ARM, PowerPC)
- Use assembly code only for MS VC if available (x86_64)
- Use built-in __sync_bool_compare_and_swap if available (x86_64)
- Workaround bugs in LLVM GCC and SunCC regarding XCHG (x86, x86_64)
Distribution Tarball
7.2-alpha4
Changes
- Fix typos in comments, identifiers and documentation
- Implement AO_compare_and_swap_full for SPARC
- Refine ARM-specific code
- Refine code and comments for MS VC
- Regenerate make scripts
- Share common code for all 32-bit CPUs (MS VC)
- Support DigitalMars and Watcom compilers
- Support MS VC for ARM (WinCE)
- Support SH CPU
- Support win32-pthreads
- Support x86 and x86_64 for SunCC compiler
1.0
Changes
- Add atomic_ops primitives for different sized data
- Add compare_double_and_swap_double and compare_and_swap_double
- Add gcc/cris.h (originally comes from Hans-Peter Nilsson)
- Add gcc/m68k.h (contributed by Tony Mantler)
- Add gcc/powerpc.h (with help of Maged Michael, Doug Lea, Roger Hoover)
- Add initial support for atomic_ops for VC++/Windows/X86 and HP/UX
- Add minimal support for the Sun SPARC compiler
- Add support for platforms that require out-of-line assembly code
- Add support of int-wide operations on platforms with int-sized pointers
- Added libatomic_ops_gpl library with support for lock-free stack and malloc
- Change atomic_ops include file structure
- Change most platforms to use byte-wide test-and-set locations
- Define AO_CLEAR, __ldcw[_align] macros in gcc/hppa.h (by Carlos O'Donell)
- Fix various bugs
- Install under "atomic_ops" instead of "ao"
- Remove compiler_barrier workaround for gcc 3.4+
- Renamed various types to end in _t
- Replace AO_HAVE_NOP_FULL with AO_HAVE_nop_full (by Ranko Zivojnovic)
- Use autoconf, automake