Skip to content

Releases: ivmai/libatomic_ops

7.2d

10 May 20:06
Compare
Choose a tag to compare

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

libatomic_ops-7.2d.tar.gz

7.2

10 May 20:03
Compare
Choose a tag to compare
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

libatomic_ops-7.2.tar.gz

7.3-alpha2

10 May 20:14
Compare
Choose a tag to compare
7.3-alpha2 Pre-release
Pre-release

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

libatomic_ops-7.3alpha2.tar.gz

1.2

10 May 19:57
Compare
Choose a tag to compare
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

libatomic_ops-1.2.tar.gz

1.1

10 May 19:55
Compare
Choose a tag to compare
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

libatomic_ops-1.1.tar.gz

7.1

10 May 20:27
Compare
Choose a tag to compare
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

10 May 20:29
Compare
Choose a tag to compare
7.0

Changes

  • Add 64-bit version of AO_load_acquire for PowerPC (by Luca Barbato)
  • Add support of x86 and x86_64 for MS VC
  • Do not assume that "mfence" is always present (x86.h)
  • Fix ARM AO_test_and_set_full
  • Include windows.h (MS VC)
  • Update README to reflect C++0x effort

7.2-alpha6

10 May 19:59
Compare
Choose a tag to compare
7.2-alpha6 Pre-release
Pre-release

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

libatomic_ops-7.2alpha6.tar.gz

7.2-alpha4

10 May 20:26
Compare
Choose a tag to compare
7.2-alpha4 Pre-release
Pre-release

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

10 May 19:52
Compare
Choose a tag to compare
1.0 Pre-release
Pre-release

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

Distribution Tarball

libatomic_ops-1.0.tar.gz