Commit graph

32 commits

Author SHA1 Message Date
wiz
9e3be2c0cd 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-29 12:55:10 +00:00
szptvlfn
1aae194210 fix directory name 2017-05-19 12:05:51 +00:00
adam
ff94ae0f1b == [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
2017-05-18 20:37:03 +00:00
wiz
e8e030a518 Updated libatomic_ops to 7.4.4.
== [7.4.4] 2016-05-24 ==

* Eliminate 'signed-to-unsigned value extension' compiler warning in malloc.
* Eliminate 'variable set but not used' Cppcheck warnings in test_stack.
* Fix GCC 5.x compatibility for AArch64 double-wide primitives.
* Fix makefile preventing AO_pause undefined in libatomic_ops_gpl.
* Fix missing casts to match printf format specifier in test_atomic.
* Fix missing output folder on making auto-generated test files (Automake).
* Fix typo in configure.ac (in description of AO_ASM_X64_AVAILABLE).
* Minor fix of code alignment in mips AO_compare_and_swap.
* Remove TODO file.
* Restore contribution info in ChangeLog for authors not listed in git log.
Also, includes 7.2g changes.
2016-06-12 14:33:57 +00:00
agc
d9e4cfe05d Add SHA512 digests for distfiles for devel category
Issues found with existing distfiles:
	distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
	distfiles/fortran-utils-1.1.tar.gz
	distfiles/ivykis-0.39.tar.gz
	distfiles/enum-1.11.tar.gz
	distfiles/pvs-3.2-libraries.tgz
	distfiles/pvs-3.2-linux.tgz
	distfiles/pvs-3.2-solaris.tgz
	distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
2015-11-03 03:27:11 +00:00
obache
c368698f22 Provide patched Makefile.in regen form patched Makefile.am. 2014-11-09 08:33:14 +00:00
obache
a365caf06f Update libatomic_ops to 7.4.2.
== [7.4.2] 2014-05-02 ==

* Fix a typo in doc/README.txt (remove redundant "an" article).
* Update emails/links due to project site transition.
2014-11-09 08:32:17 +00:00
obache
ffa7526260 current this package does not come from CVS snapshot. 2014-11-02 12:03:02 +00:00
obache
ea5d7c3c87 Fixes path for pc files to overwrite.
Bump PKGREVISION.
2014-06-05 02:36:03 +00:00
pho
815d014f78 Fix build failure at least on Darwin:
atomic_ops_stack.c refers to AO_pause defined in atomic_ops.c so
either removing -no-undefined or declaring the dependency is needed.
2014-05-12 22:46:49 +00:00
wiz
4611647dbf To be on the safe side, put an upper limit on the dependency to avoid
matching the previous version number.
2014-04-16 14:11:31 +00:00
wiz
08691f896a Update to 7.4.0.
== [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.
2014-04-16 11:21:32 +00:00
jperkin
70acbe0a75 automake-1.13 compatability. 2013-01-25 11:25:50 +00:00
bsiegert
723e090d27 Always define __PIC__ on MirBSD, fixes compilation. No-op on other platforms. 2012-12-28 14:38:59 +00:00
asau
e1ab7079b6 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-31 11:16:30 +00:00
minskim
41d643eb96 Correct the path to libatomic_ops. 2011-10-04 21:44:29 +00:00
bsiegert
95820add6e Import libatomic_ops from wip, copy distfile to ftp.netbsd.org.
Fixes build on Mac OS X, thus fixing PR pkg/45377.
2011-10-04 18:15:29 +00:00
tnn
9b022d337b fix another sloppy Makefile that attempted to install the same file twice 2009-08-01 21:25:03 +00:00
tnn
ead32275e0 uses autoreconf, so need to patch Makefile.am instead of Makefile.in 2009-07-22 10:33:21 +00:00
tnn
a2248ca776 don't attempt to install the same headers twice.
Should fix Linux build.
2009-07-21 09:45:12 +00:00
joerg
bacea7cad5 Remove @dirrm entries from PLISTs 2009-06-14 17:48:39 +00:00
joerg
2d1ba244e9 Simply and speed up buildlink3.mk files and processing.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
2009-03-20 19:23:50 +00:00
sketch
e650402bc4 Forgot to remove obsolete patches. 2009-02-05 14:03:20 +00:00
sketch
64512180ce Sun Studio x86 implementation isn't quite good enough yet for e.g.
pulseaudio, so instead use the generic pthread implementation for now.
2009-01-31 20:05:57 +00:00
sketch
13e67489d5 Forgot to install the sunc/x86.h header in previous. 2009-01-27 20:26:01 +00:00
sketch
f9d1523a14 Rudimentary support for Sun Studio on x86. 2009-01-26 15:01:56 +00:00
epg
0f00cb9e48 s/ia/is/ 2008-12-22 18:06:00 +00:00
jmcneill
0c01a2785e Bump BUILDLINK_API_DEPENDS 2008-12-22 02:48:56 +00:00
jmcneill
b778819414 libtoolize libatomic_ops so it builds shared libraries, bump PKGREVISION 2008-12-22 02:46:52 +00:00
bjs
7ecda0dfb5 Fix distinfo. 2008-10-25 05:46:01 +00:00
bjs
03c187a464 Add buildlink3.mk. 2008-10-25 00:36:10 +00:00
bjs
666636bffd Import libatomic_ops-20081024 (version 1.2)
The latest code is only found in the boehm-gc CVS repository (see
Makefile.version for information).  I had to take this from there,
as there were bug fixes.

This library was imported primarily for the [hopefully]
upcoming audio/pulseaudio package.

TODO: Add support for NetBSD atomic ops?

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
  ia 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.

As the latest code for this library is only available via CVS, this package
provides a snapshot.
2008-10-25 00:32:23 +00:00