08691f896a
== [7.4.0] 2013-11-17 == * Add and/or/xor entries to list_atomic (tests). * Add char/short/int/AO_double_t and dd_acquire cases to list_atomic (tests). * Add compile-time assertion for size of 'standard' AO_double_t. * Add double_store pthread-based implementation and tests. * Add generalized CAS primitives of char/short/int size. * Add generalized atomic and/or/xor operations for char/short/int types. * Add generalized fetch_and_add_acquire/release (for ARMv6+). * Add generic implementation of double_load primitives. * Add information about AO_ASSUME_VISTA to README_win32. * Add internal header containing only char/short/int/AO_t atomic loads. * Add load/store primitives generalization based on CAS. * Add lock-based implementation of char/short/int_fetch_compare_and_swap. * Add makefile rule to test list_atomic.template syntax (tests). * Add missing 'const' in aligned-atomic XSIZE_load implementation. * Add missing double_compare_and_swap to generalization. * Add missing generalization of no-barrier CAS in template. * Add negative double-CAS test cases to test_atomic_include (tests). * Add test_stack to Makefile.msft (tests). * Adjust fprintf arguments type matching specifier in test_stack (tests). * Adjust included filenames in atomic_ops_malloc and test_stack. * Adjust quotes in echo command of Makefile.msft (Win32). * Always use 'mfence' for nop_full if target CPU supports SSE2 (gcc/x86). * Better document configure THREADDLLIBS variable. * Cast away volatile on dereference in CAS-based generalization primitives. * Change policy regarding version numbers ("micro" part instead of "alpha"). * Convert README to Markdown format. * Define AO_NO_PTHREADS in configure if no pthreads (Win32 and VxWorks). * Define AO_int_X operations for ARM and avr32. * Define double-wide ordered loads/stores for x86. * Define int_and/or/xor primitives in ao_t_is_int header. * Define nop_full as compiler barrier for pre-ARMv6 single-core case. * Do not duplicate BUILT_SOURCES entries in nobase_private_HEADERS (Makefile). * Do not include standard_ao_double_t.h where double-CAS is unimplemented. * Do not report absence of meaningless nop, load and store in test_atomic. * Do not use deprecated AO_T and AO_TS_T (tests). * Eliminate 'missing initializer' warning for AO_stack_t value initializer. * Eliminate 64-bit compiler warnings in atomic_ops_malloc. * Eliminate arithmetic shifts in double-CAS (gcc/arm, msftc/x86). * Eliminate warning for fetch_and_add argument in test_atomic_include (tests). * Enable Makefile.msft for Win64. * Enable build using toolchain without pthreads. * Enable double_compare_and_swap for non-cpp code (msftc/x86.h). * Enable generalization of all variants of CAS via fetch_compare_and_swap. * Enable test_stack for pthreads-w32 and Win32 with native threads. * Fix generalized AO_char/short_compare_and_swap args (missing 'unsigned'). * Fix makefile sed rule for list_atomic (tests). * Fix missing abort() usage in atomic_ops_malloc and tests on WinCE. * Generalize compare_double_and_swap_double using double_compare_and_swap. * Generalize double_load/store for x86_64 (GCC). * Generate ao_t_is_int, 'loadstore' headers from templates. * Generate generalized AO_t load/store/fetch_and_add primitives from template. * Generate ordered_loads/stores_only headers from templates. * Group all X_acquire_release_volatile.h and X_[aligned_]atomic_load_store.h. * Implement and/or/xor, AO_double_load for ARM. * Implement atomic store using direct write by default on ARMv6+. * Implement char/short/int-wide primitives using GCC built-in atomic/sync. * Implement char/short/int_fetch_and_add for msftc/x86[_64] (Win32). * Implement char/short_fetch_and_add, char/short_load for ARMv6+ (GCC). * Implement char/short_store primitives at aligned addresses for ARM. * Implement compare_double_and_swap_double for SunCC/x86. * Implement double_load/store based on guaranteed x86 access atomicity. * Implement double_store for ARMv7 using LDREXD/STREXD. * Implement load/store via simple LDR/STR for ARMv6+ (msftc). * Implement nop_full/write using 'dmb' instruction if available (gcc/arm). * Improve debug printing in test_stack (tests). * Log messages to stdout instead of stderr (tests). * Make AO_ASSUME_VISTA also enables Win98 code in msftc/x86.h (Win32). * Minimize gcc/generic-arithm template by factoring out barriers. * Move 'unsigned' keyword to XCTYPE in generalize-small template. * Move default compiler options to CFLAGS in Makefile.msft (Win32). * Move definitions of ordered loads/stores to inner separate headers. * Move gcc-generic AO_t-wide primitives to generic-small/arithm headers. * Move generalized arithmetical primitives to 'generalize-arithm' template. * Optimize AO_spin manually to minimize compiler influence on its duration. * Parameterize list_atomic template with XSIZE (tests). * Perform only few list reversals in test_malloc if AO based on pthreads. * Put autogen.sh to 'dist' package (Automake). * Remote duplicate definition of test_and_set_acquire in generalize.h. * Remove X_aligned_atomic_load_store headers and template. * Remove duplicate AO_spin and AO_pause definition in atomic_ops_stack. * Remove gcc/x86_64.h eliminating code duplication of gcc/x86.h. * Remove nested AO_USE_PTHREAD_DEFS macro check in atomic_ops.h (gcc/arm). * Remove redundant 'cc' clobber for LDREXD instruction (gcc/arm). * Remove store_full from msftc/arm.h in favor of generalized primitive. * Remove sunc/x86_64.h eliminating code duplication of sunc/x86.h. * Remove unsafe emulation-based implementation of double CAS (SunCC/x86_64). * Remove useless 'perror' call in run_parallel.h (tests). * Reorder AO_double_t union elements for AO_DOUBLE_T_INITIALIZER portability. * Replace atomic_load_store.template with atomic_load and atomic_store ones. * Replace some FIXME items with TODO in atomic_ops.c and sysdeps headers. * Specify fetch_and_add/sub1 result as unused in test_atomic (tests). * Support AArch64 (64-bit ARM) target (GCC). * Support ARMv8 target (gcc/arm). * Test double_compare_and_swap in test_atomic (tests). * Use AO_ prefix for internal functions in arm_v6.h, hppa.h. * Use __atomic GCC built-in to implement generic double-wide CAS. * Use built-in __sync CAS for double-CAS if AO_USE_SYNC_CAS_BUILTIN for x86. * Workaround GCC 4.4.3 warning reported for 'val' of list_atomic.c (tests). == [7.3alpha2] 2012-05-11 == * 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). == [7.2e] 2013-11-10 == * Fix (remove) invalid include of read_ordered.h for ARM. * Fix AM_CONFIG_HEADER in configure for autoconf-2.69-1. * Fix AO_pause sleep delay for particular argument values (Win32). * Fix ARMv7 LDREXD/STREXD double-wide operand specification (GCC/Clang). * Fix LDREXD/STREXD use for pre-Clang3.3/arm. * Fix README regarding _acquire_read barrier. * Fix XSIZE_load/store definition order in generalize-small template. * Fix asm constraint of CAS memory operand for gcc/alpha, clang-3.1/mips. * Fix asm constraints of primitives in sunc/x86.h. * Fix cmpxchg16b-based compare_double_and_swap_double for SunCC/x86_64. * Fix compare_double_and_swap_double and double_ptr_storage for gcc/x32. * Fix compare_double_and_swap_double for clang3.0/x86 in PIC mode. * Fix compare_double_and_swap_double_full definition condition in emul_cas. * Fix generalize-small template adding missed CAS-based fetch_and_add. * Fix generalized fetch_and_add function. * Fix missing compiler barrier in nop_full for uniprocessor ARM. * Fix ordered_except_wr header inclusion for s390. * Fix return type of AO_int_X primitives defined in ao_t_is_int header. * Fix return type of char/short/int_load_read() in read_ordered.h. * Fix template-based headers regeneration order in src/Makefile. * Fix typos in ao_t_is_int, atomic_ops.h, generalize.h, msftc/arm.h comments. * Fix variable type to match printf format specifier in test_stack. * Fix visibility and initial value of 'dummy' variable in atomic_ops_stack. * Terminate tests with abort after error reported. == [7.2d] 2012-08-09 == * 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. == [7.2] 2012-05-11 == * 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_<type>_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. |
||
---|---|---|
.. | ||
patches | ||
buildlink3.mk | ||
DESCR | ||
distinfo | ||
Makefile | ||
MESSAGE | ||
PLIST |