Ivan Maidanski [Wed, 17 May 2017 08:12:46 +0000 (11:12 +0300)]
[7.2h]
Bump version to 7.2h in README and .travis.yml; update ChangeLog
Ivan Maidanski [Tue, 16 May 2017 20:49:49 +0000 (23:49 +0300)]
Travis CI: Add missing ';' inside 'if' body in the script
(fix commit 91a9fb3)
Ivan Maidanski [Tue, 16 May 2017 20:46:04 +0000 (23:46 +0300)]
Travis CI: Workaround 'aclocal-1.14 command not found' on Linux
(fix commit 0c89c73)
Ivan Maidanski [Tue, 16 May 2017 18:03:36 +0000 (21:03 +0300)]
Travis CI: Verbose compression of tarball in distcheck
(fix commit e823c7d)
Ivan Maidanski [Tue, 21 Mar 2017 09:01:26 +0000 (12:01 +0300)]
Travis CI: Also test with musl-gcc (Linux)
(Cherry-pick commit 1659f29 from 'release-7_4' branch.)
Ivan Maidanski [Tue, 16 May 2017 11:52:28 +0000 (14:52 +0300)]
Travis CI: Produce .tar.gz file with version suffix matching AO version
(fix commit 28ddf77)
Ivan Maidanski [Tue, 16 May 2017 11:22:21 +0000 (14:22 +0300)]
Travis CI: Do not run autoreconf
(fix commit 12ab23d)
Source code of release-7_2 branch still contains configure/Makefile
auto-generated files, so autoreconf should do nothing.
Ivan Maidanski [Tue, 16 May 2017 11:11:54 +0000 (14:11 +0300)]
Regenerate configure/Makefile; update ChangeLog
* doc/Makefile.in: Regenerate (by autoreconf -vif using autoconf-2.69,
automake-1.14.1, libtool-2.4.2, m4-1.4.17).
Ivan Maidanski [Mon, 15 May 2017 09:33:03 +0000 (12:33 +0300)]
Travis CI: Setup dist tarball uploading to GitHub on tag creation
(Cherry-pick commit bc143bb from 'release-7_4' branch.)
Ivan Maidanski [Fri, 5 May 2017 18:53:14 +0000 (21:53 +0300)]
Travis CI: Test also 'make distcheck'
(Cherry-pick commit 64bf277 from 'release-7_4' branch.)
GNU autotools version:
* autoconf 2.69
* automake 1.14.1
* m4 1.4.17
* libtool 2.4.2
Ivan Maidanski [Thu, 27 Apr 2017 20:57:02 +0000 (23:57 +0300)]
Travis CI: Test also the distributive file creation
(Cherry-pick commit 36eaf3f from 'release-7_4' branch.)
Ivan Maidanski [Mon, 15 May 2017 19:44:38 +0000 (22:44 +0300)]
Travis CI: Reformat .yml file by travis tool
(Cherry-pick commit 4f7614c from 'release-7_4' branch.)
Ivan Maidanski [Mon, 15 May 2017 20:05:35 +0000 (23:05 +0300)]
Update ChangeLog
Andy Li [Tue, 9 May 2017 01:42:14 +0000 (09:42 +0800)]
Fix 'doc' files installation folder
(Cherry-pick commit 17cfaaf from 'release-7_4' branch.)
docs are dist_doc_DATA. They should be installed to /usr/share/doc.
* doc/Makefile.am (dist_pkgdata_DATA): Remove COPYING, LICENSING.txt,
README.txt, README_stack.txt, README_malloc.txt, README_win32.txt.
* doc/Makefile.am (dist_doc_DATA): Add COPYING, LICENSING.txt,
README.txt, README_stack.txt, README_malloc.txt, README_win32.txt.
Ivan Maidanski [Wed, 10 May 2017 06:10:03 +0000 (09:10 +0300)]
Update ChangeLog
Fabrizio Fabbri [Fri, 7 Apr 2017 13:56:04 +0000 (09:56 -0400)]
Workaround test_stack failure on AIX/ppc
(Cherry-pick commit 9b697e8 from 'release-7_4' branch.)
* src/atomic_ops_stack.c [AO_USE_ALMOST_LOCK_FREE]
(AO_stack_pop_explicit_aux_acquire): Replace AO_load to AO_load_acquire
when loaded value is compared to first; add comment.
Ivan Maidanski [Mon, 3 Apr 2017 19:21:26 +0000 (22:21 +0300)]
Travis CI: Specify test configurations using 'matrix:include'
(Cherry-pick commit 6a640c7 from 'release-7_4' branch.)
Ivan Maidanski [Mon, 3 Apr 2017 21:21:12 +0000 (00:21 +0300)]
Update ChangeLog
Ivan Maidanski [Wed, 15 Mar 2017 08:27:48 +0000 (11:27 +0300)]
Fix AO_SIZE_MAX definition (Linux/musl-gcc)
(Cherry-pick commit 7a99c0f from 'master' branch.)
* src/atomic_ops_malloc.c [SIZE_MAX && !CPPCHECK] (AO_SIZE_MAX): Cast
SIZE_MAX to size_t explicitly (to workaround incorrect definition
of SIZE_MAX - e.g. it is defined as ~0ULL in musl-tools which is not
correct for a 32-bit target).
Ivan Maidanski [Tue, 21 Feb 2017 21:05:11 +0000 (00:05 +0300)]
Fix 'Cannot implement CAS_full on this architecture' build error (cris)
* src/atomic_ops.h [__cris__ || CRIS] (AO_CAN_EMUL_CAS): Define.
* src/atomic_ops/sysdeps/gcc/cris.h: Add TODO to implement CAS.
Ivan Maidanski [Mon, 20 Feb 2017 08:19:54 +0000 (11:19 +0300)]
Fix typo in comments in gcc/arm.h
(Cherry-pick commit 83e184f from 'release-7_4' branch.)
* src/atomic_ops/sysdeps/gcc/arm.h
(AO_compare_and_swap): Fix typo ("succeeded") and add "then" in comment.
* src/atomic_ops/sysdeps/gcc/arm.h
(AO_compare_double_and_swap_double): Likewise.
Ivan Maidanski [Wed, 15 Feb 2017 21:41:00 +0000 (00:41 +0300)]
.gitignore: Ignore *.sancov (generated by ASan)
Ivan Maidanski [Fri, 27 Jan 2017 21:36:09 +0000 (00:36 +0300)]
Travis CI: Exclude osx/gcc builds
(Cherry-pick commit 6890d9b from 'master' branch.)
Ivan Maidanski [Mon, 6 Feb 2017 13:52:17 +0000 (16:52 +0300)]
Appveyor CI: run also test_atomic[_w95]
Ivan Maidanski [Mon, 6 Feb 2017 13:42:41 +0000 (16:42 +0300)]
Update ChangeLog
Ivan Maidanski [Tue, 31 Jan 2017 07:29:44 +0000 (10:29 +0300)]
Fix test_atomic fail caused by AO_double_t misaligned load (Linux/i686)
(Cherry-pick commit 5417195 from 'release-7_4' branch.)
* src/atomic_ops/sysdeps/standard_ao_double_t.h [__i386__ && __GNUC__]
(double_ptr_storage): Add aligned(8) attribute (so that AO_double_t
global/static variables to have proper (double-word) alignment).
Ivan Maidanski [Tue, 24 Jan 2017 19:46:57 +0000 (22:46 +0300)]
Fix test_atomic failure caused unaligned AO_double_t access on x86
(Cherry-pick commit c386add from 'release-7_4' branch.)
The failure is caused by violation of an assertion that checks
AO_double_t variable is 8-byte aligned on x86.
* doc/README.txt (AO_double_t): Add note about required alignment.
* src/atomic_ops/sysdeps/standard_ao_double_t.h (AO_double_t): Add
comment about alignment.
* src/atomic_ops_stack.h (AO_stack_t): Likewise.
* tests/test_atomic.template (test_atomicXX): Define w
local variable as static (as otherwise, e.g., it could have 4-byte
alignment on x86); add comment.
* tests/test_atomic_include.h: Regenerate.
Ivan Maidanski [Thu, 26 Jan 2017 06:46:57 +0000 (09:46 +0300)]
Fix type of general AO_TS_INITIALIZER
* src/atomic_ops.h (AO_TS_INITIALIZER): Change type from AO_t to
AO_TS_t; add outermost parentheses.
Ivan Maidanski [Mon, 16 Jan 2017 20:55:01 +0000 (23:55 +0300)]
Remove outdated FIXME in msftc/arm.h about _InterlockedOps memory barrier
* src/atomic_ops/sysdeps/msftc/arm.h: Remove FIXME about memory barrier
of _InterlockedOps (they have the correct one according to the MSDN).
Ivan Maidanski [Tue, 31 Jan 2017 20:48:32 +0000 (23:48 +0300)]
.gitignore: Ignore coverage.info (generated by lcov)
Ivan Maidanski [Fri, 27 Jan 2017 06:47:03 +0000 (09:47 +0300)]
.gitignore: Ignore test_atomic_generalized
Ivan Maidanski [Fri, 13 Jan 2017 17:31:12 +0000 (20:31 +0300)]
.gitignore: Ignore gcov c/h output files
Ivan Maidanski [Mon, 12 Dec 2016 21:46:56 +0000 (00:46 +0300)]
.gitignore: Ignore folders and files of static code analysis tools
(Cherry-pick commits fa3ebc3, 8550ecd from 'master' branch.)
Ivan Maidanski [Fri, 4 Nov 2016 12:15:54 +0000 (15:15 +0300)]
Fix AppVeyor CI configuration for release-7_2 branch
Remove 'test_stack' build goal (no such rule in Makefile.msft).
Ivan Maidanski [Fri, 4 Nov 2016 11:21:47 +0000 (14:21 +0300)]
Update ChangeLog
Ivan Maidanski [Mon, 8 Oct 2012 08:15:48 +0000 (12:15 +0400)]
Enable Makefile.msft for Win64
(Cherry-pick commit 3556ba3 from 'release-7_4' branch.)
* src/Makefile.msft (libatomic_ops_gpl.lib): Do not pass
"/MACHINE:i386" option to "lib" tool (to select the proper target
architecture automatically).
Ivan Maidanski [Tue, 9 Aug 2011 16:42:05 +0000 (20:42 +0400)]
Makefile.msft: Add 'clean' target (Improve Makefile for MS VC++)
(Cherry-pick part of commit 9302b46 from 'release-7_4' branch.)
* src/Makefile.msft: Replace -o option with /Fo.
* src/Makefile.msft (clean): New target.
Ivan Maidanski [Tue, 9 Aug 2011 15:26:42 +0000 (19:26 +0400)]
Makefile.msft: exclude 'check' from nmake all
(Cherry-pick part of commit d21a5af from 'release-7_4' branch.)
* src/Makefile.msft (all): Build "libatomic_ops_gpl.lib" instead of
"check".
* src/Makefile.msft (test_malloc): Wrap long lines.
Ivan Maidanski [Thu, 3 Nov 2016 20:20:44 +0000 (23:20 +0300)]
Fix Travis CI configuration for release-7_2 branch
"./autogen.sh" replaced with "autoreconf -vif";
"--enable-werror" removed (not supported).
Ivan Maidanski [Thu, 3 Nov 2016 15:19:16 +0000 (18:19 +0300)]
Update ChangeLog
Ivan Maidanski [Wed, 2 Nov 2016 08:15:15 +0000 (11:15 +0300)]
Fix (improve) AO_REQUIRE_CAS description in README
* doc/README.txt: Document AO_REQUIRE_CAS better (replace
"compare-and-swap" with "AO_compare_and_swap*").
Ivan Maidanski [Mon, 15 Aug 2016 19:44:10 +0000 (22:44 +0300)]
Add configuration file for AppVeyor CI
(Cherry-pick commit 075a104 from 'release-7_4' branch.)
Note: builds version is set to 7.2.x
* appveyor.yml: New file (not a part of the distribution archive).
Ivan Maidanski [Thu, 11 Aug 2016 19:29:46 +0000 (22:29 +0300)]
Add configuration for Travis CI
* .travis.yml: New file.
Ivan Maidanski [Wed, 24 Aug 2016 08:07:38 +0000 (11:07 +0300)]
Fix assertions style in test_atomic_include
(Cherry-pick commit 1921896 from 'release-7_4' branch.)
Use TA_assert consistently (not assert).
* tests/test_atomic.template (test_atomicXX): Replace assert()
calls with TA_assert().
* test_atomic_include.h: Regenerate.
Ivan Maidanski [Mon, 22 Aug 2016 17:12:19 +0000 (20:12 +0300)]
Fix size value wrap around in AO_malloc_large
(Cherry-pick commits 1033478 and b1365bd from 'master' branch.)
AO_malloc(SIZE_MAX) should return NULL now.
* src/atomic_ops_malloc.c: Include limits.h (unless SIZE_MAX already
defined).
* src/atomic_ops_malloc.c (AO_SIZE_MAX): New macro.
* src/atomic_ops_malloc.c (SIZET_SAT_ADD): New macro.
* src/atomic_ops_malloc.c (AO_malloc_large): Use SIZET_SAT_ADD to
avoid integer overflow when computing the memory size to map (i.e.,
malloc should handle arguments close to SIZE_MAX correctly).
Ivan Maidanski [Wed, 5 Oct 2016 18:47:35 +0000 (21:47 +0300)]
Fix typos in 'error' pragma messages
* src/atomic_ops.h [_HPUX_SOURCE && !__ia64] (AO_barrier_dummy):
Fix typo ("do not") in comment.
* src/atomic_ops/generalize.h [AO_HAVE_nop_acquire]: Fix typo
("do not") in #error message.
* src/atomic_ops/generalize.h [AO_HAVE_nop_release]: Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM < 6]:
Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM < 6]: Add
#error pragma.
* src/atomic_ops_stack.c [AO_HAVE_compare_and_swap_double]: Fix typo
("does not") in #error message.
Ivan Maidanski [Mon, 23 May 2016 19:03:11 +0000 (22:03 +0300)]
[7.2g]
Bump version to 7.2g in README; update ChangeLog
Ivan Maidanski [Mon, 23 May 2016 18:57:46 +0000 (21:57 +0300)]
Update ChangeLog
Hans Boehm [Mon, 23 May 2016 18:24:33 +0000 (21:24 +0300)]
Add disclaimer to README to favor C11/C++14 atomics over libatomic_ops use
(Apply commit fe16265 from 'release-7_4' branch.)
* README: Add top-level disclaimer that it is better to use
C11 or C++14 atomic primitives instead of this library for the
newly-developed code.
Ivan Maidanski [Thu, 20 Feb 2014 20:39:54 +0000 (00:39 +0400)]
Update emails/links due to project site transition
(Apply commit 8c9da2d from 'release-7_4' branch.)
* README: Update links to BDWGC/libatomic_ops site.
* doc/README_stack.txt: Likewise.
Ivan Maidanski [Tue, 26 Apr 2016 08:22:58 +0000 (11:22 +0300)]
Update ChangeLog
Ivan Maidanski [Thu, 24 Mar 2016 20:32:39 +0000 (23:32 +0300)]
Remove obsolete information from README about C++0x standard future
* doc/README.txt (Future directions): Remove.
Ivan Maidanski [Tue, 22 Mar 2016 20:33:55 +0000 (23:33 +0300)]
Fix incorrectly regenerated Makefile.in
(revert part of commit aae1c04)
* Makefile.in: Regenerate properly (remove ltmain.sh from DIST_COMMON).
Ivan Maidanski [Tue, 22 Mar 2016 07:45:49 +0000 (10:45 +0300)]
Update ChangeLog
Ivan Maidanski [Tue, 22 Mar 2016 07:24:02 +0000 (10:24 +0300)]
Regenerate configure files using official libtool release (v2.4.2)
libtool 2.4.2 is an official release unlike libtool 2.4.2.418.
* Makefile.in: Regenerate (by autoreconf -vif using autoconf-2.69,
automake-1.14.1 and libtool-2.4.2).
* config.guess: Likewise.
* config.sub: Likewise.
Ivan Maidanski [Tue, 3 Feb 2015 07:53:07 +0000 (10:53 +0300)]
Update ChangeLog
James Cowgill [Thu, 8 Jan 2015 16:05:57 +0000 (16:05 +0000)]
Remove inclusion of acquire_release_volatile.h on mips
(Apply commit 6fefba1 from 'release-7_4' branch.)
I'm not entirely sure how this ended up here. It might have been the case
that MIPS processors used to do this, but the ISA manuals don't say anything
about volatile loads / stores having acquire / release semantics, so just
remove it to be safe.
Conflicts:
src/atomic_ops/sysdeps/gcc/mips.h
Ivan Maidanski [Mon, 26 May 2014 20:00:00 +0000 (00:00 +0400)]
.gitignore: Ignore .dirstamp
Ivan Maidanski [Sun, 18 May 2014 13:28:54 +0000 (17:28 +0400)]
.gitignore: Ignore tests/.libs (generated if configure --enable-shared)
Ivan Maidanski [Fri, 2 May 2014 15:12:50 +0000 (19:12 +0400)]
[7.2f]
Bump version to 7.2f in README; update ChangeLog
Ivan Maidanski [Fri, 2 May 2014 14:47:26 +0000 (18:47 +0400)]
Regenerate configure files by new automake (v1.14.1), libtool (v2.4.2.418)
* configure: Regenerate (by autoreconf -vif using autoconf-2.69,
automake-1.14.1 and libtool-2.4.2.418).
* INSTALL: Likewise.
* Makefile.in: Likewise.
* aclocal.m4: Likewise.
* config.guess: Likewise.
* config.sub: Likewise.
* doc/Makefile.in: Likewise.
* missing: Likewise.
* src/Makefile.in: Likewise.
* src/atomic_ops/Makefile.in: Likewise.
* src/atomic_ops/sysdeps/Makefile.in: Likewise.
* src/config.h.in: Likewise.
* test-driver: Likewise.
* tests/Makefile.in: Likewise.
Ivan Maidanski [Fri, 2 May 2014 06:24:35 +0000 (10:24 +0400)]
Update ChangeLog
Jan-Erik Rediger [Fri, 28 Mar 2014 13:12:31 +0000 (14:12 +0100)]
Removed unnecessary "an"
Ivan Maidanski [Sun, 10 Nov 2013 08:23:38 +0000 (12:23 +0400)]
[7.2e]
Bump version to 7.2e in README; update ChangeLog
Ivan Maidanski [Sat, 31 Aug 2013 07:16:19 +0000 (11:16 +0400)]
.gitignore: Ignore test*.log, test*.trs
Ivan Maidanski [Sat, 31 Aug 2013 07:00:25 +0000 (11:00 +0400)]
Regenerate configure files by autoconf-2.69, automake-1.13.4
* configure: Regenerate (by autoreconf -vif using autoconf-2.69,
automake-1.13.4 and libtool-2.4.2).
* INSTALL: Likewise.
* Makefile.in: Likewise.
* aclocal.m4: Likewise.
* compile: Likewise.
* config.guess: Likewise.
* config.sub: Likewise.
* depcomp: Likewise.
* doc/Makefile.in: Likewise.
* install-sh: Likewise.
* missing: Likewise.
* mkinstalldirs: Likewise.
* src/Makefile.in: Likewise.
* src/atomic_ops/Makefile.in: Likewise.
* src/atomic_ops/sysdeps/Makefile.in: Likewise.
* tests/Makefile.in: Likewise.
* test-driver: New generated file.
Ivan Maidanski [Sun, 18 Aug 2013 09:04:57 +0000 (13:04 +0400)]
Regenerate aclocal.m4; update ChangeLog
Ivan Maidanski [Sat, 17 Aug 2013 11:05:36 +0000 (15:05 +0400)]
Fix: Do not use LDREXD/STREXD for Clang3.2/arm (and earlier)
(Apply commit 2daf685 from 'master' branch.)
* src/atomic_ops/sysdeps/gcc/arm.h
(AO_compare_double_and_swap_double): Do not define for
pre-Clang3.3 (since the latter does not allocate register pairs for
LDREXD/STREXD instructions properly); add comment.
Conflicts:
src/atomic_ops/sysdeps/gcc/arm.h
Ivan Maidanski [Sat, 17 Aug 2013 09:58:59 +0000 (13:58 +0400)]
Fix ARM double-CAS operands width (GCC/Clang)
(Apply commit a81940c from 'master' branch.)
* src/atomic_ops/sysdeps/gcc/arm.h (AO_double_compare_and_swap): Swap
assembly code operands ("new_val" and "addr") to prevent
Clang3.3 warning about operand truncation.
Conflicts:
src/atomic_ops/sysdeps/gcc/arm.h
Ivan Maidanski [Sat, 17 Aug 2013 07:48:59 +0000 (11:48 +0400)]
Fix ARMv7 LDREXD/STREXD double-wide operand specification (GCC/Clang)
(Apply commit db2eef2 from 'master' branch.)
* src/atomic_ops/sysdeps/gcc/arm.h
(AO_double_compare_and_swap): Specify that LDREXD and STREXD use 2
adjacent registers (thus preventing Clang3.3 from register allocation
failures leading to "registers may not be the same" or
"even register required" GAS errors).
Conflicts:
src/atomic_ops/sysdeps/gcc/arm.h
Ivan Maidanski [Mon, 29 Jul 2013 21:18:38 +0000 (01:18 +0400)]
Fix typo in comment of generalize-small.template
(Apply commit 22d7c97 from 'master' branch.)
* src/atomic_ops/generalize.h: Fix a typo in comment
("acquire").
Conflicts:
src/atomic_ops/generalize-arithm.h
src/atomic_ops/generalize-arithm.template
Manuel Serrano [Wed, 3 Apr 2013 03:58:27 +0000 (07:58 +0400)]
Fix AM_CONFIG_HEADER in configure for autoconf-2.69-1
* configure.ac (AM_CONFIG_HEADER): Replace obsolete macro with with
AC_CONFIG_HEADERS one.
Ivan Maidanski [Fri, 29 Mar 2013 04:53:22 +0000 (08:53 +0400)]
Update ChangeLog
Ivan Maidanski [Fri, 29 Mar 2013 04:50:51 +0000 (08:50 +0400)]
Fix generalized fetch_and_add function
* src/atomic_ops/generalize-small.template (AO_XSIZE_fetch_and_add):
Do not use AO_EXPECT_FALSE (since defined only in v7.3+).
* src/atomic_ops/generalize-small.h: Regenerate.
Ivan Maidanski [Fri, 29 Mar 2013 03:31:06 +0000 (07:31 +0400)]
Fix asm constraints of primitives in sunc/x86.h
(Apply commit 31df7fa from 'master' branch.)
* src/atomic_ops/sysdeps/sunc/x86.h (AO_fetch_and_add_full,
AO_char_fetch_and_add_full, AO_short_fetch_and_add_full, AO_or_full,
AO_test_and_set_full,
AO_compare_and_swap_full): Use "+m" asm constraint for *addr instead
of "=m" (because the value pointed by addr is read and written by the
code).
Conflicts:
src/atomic_ops/sysdeps/sunc/x86.h
Ivan Maidanski [Wed, 13 Mar 2013 18:46:24 +0000 (22:46 +0400)]
Fix asm constraint of CAS memory operand for gcc/alpha
* src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Use "+m"
asm constraint for *addr instead of "=m" (because the value pointed by
addr is read and written by the code).
Ivan Maidanski [Tue, 12 Mar 2013 18:29:33 +0000 (22:29 +0400)]
Fix asm constraint of compare_and_swap for clang-3.1/mips
(Apply commit 3e4c369 from 'master' branch.)
* src/atomic_ops/sysdeps/gcc/mips.h (AO_compare_and_swap): Use "+m"
asm constraint for *addr instead of "+R" (the letter is unsupported
by clang3.1 resulting in "invalid output constraint in asm" error).
Conflicts:
src/atomic_ops/sysdeps/gcc/mips.h
Ivan Maidanski [Mon, 25 Feb 2013 15:06:22 +0000 (19:06 +0400)]
Update ChangeLog
Ivan Maidanski [Thu, 14 Feb 2013 10:08:47 +0000 (14:08 +0400)]
Fix (remove) invalid include of read_ordered.h for ARM
(fix commit 2df9c1e partially)
* src/atomic_ops/sysdeps/gcc/arm.h: Do not include read_ordered.h
(because load_acquire should contain a DMB instruction in a multi-core
case, new load_acquire/read primitives implementation is generalized
using nop_full/read which either contain a DMB instruction, or is just
a compiler barrier for uniprocessor).
* src/atomic_ops/sysdeps/armcc/arm_v6.h: Likewise.
* src/atomic_ops/sysdeps/msftc/arm.h: Likewise.
Ivan Maidanski [Mon, 25 Feb 2013 15:00:03 +0000 (19:00 +0400)]
Revert "Fix read_ordered.h inclusion for ARM"
(because it makes load_acquire/read incorrect for multi-core ARM)
This reverts commit
53f2152e00d4bf7d395f9de408c71ee2aa9a9bc4.
Ivan Maidanski [Sat, 2 Feb 2013 11:20:12 +0000 (15:20 +0400)]
Update ChangeLog
Ivan Maidanski [Mon, 14 Jan 2013 20:56:35 +0000 (00:56 +0400)]
Fix README regarding _acquire_read barrier
* doc/README.txt (_acquire_read): Add information about memory
barrier (similar as in atomic_ops.h).
* doc/README.txt (_release_read): Remove information about
non-existing barrier.
Ivan Maidanski [Sun, 13 Jan 2013 20:10:48 +0000 (00:10 +0400)]
Fix a typo in ao_t_is_int.h comment
* src/atomic_ops/sysdeps/ao_t_is_int.h: Fix a typo in comment.
Ivan Maidanski [Sun, 13 Jan 2013 18:42:52 +0000 (22:42 +0400)]
Fix return type of AO_int_X primitives defined in ao_t_is_int header
(Apply commit 3e9fc4f from 'add-dbl-load-store' branch.)
* src/atomic_ops/sysdeps/ao_t_is_int.h
(AO_int_load_acquire, AO_int_fetch_and_add_full,
AO_int_fetch_and_add1_acquire, AO_int_fetch_and_add1_release,
AO_int_fetch_and_sub1_acquire, AO_int_fetch_and_sub1_release): Cast
result to unsigned int instead of signed int.
Conflicts:
src/atomic_ops/sysdeps/ao_t_is_int.h
Ivan Maidanski [Sun, 13 Jan 2013 16:19:51 +0000 (20:19 +0400)]
Fix ordered_except_wr header inclusion for s390
* src/atomic_ops/sysdeps/gcc/s390.h: Move include of
ordered_except_wr.h down to be after all_aligned_atomic_load_store.h
inclusion (since the latter defines AO_X_load/store primitives used by
the former header).
Ivan Maidanski [Sun, 13 Jan 2013 16:04:36 +0000 (20:04 +0400)]
Fix read_ordered.h inclusion for ARM
* src/atomic_ops/sysdeps/armcc/arm_v6.h: Move include of read_ordered.h
down to the end of the file to be after AO_load/store definition
(since read_ordered.h depends on these primitives).
* src/atomic_ops/sysdeps/gcc/arm.h: Likewise.
* src/atomic_ops/sysdeps/msftc/arm.h: Likewise.
Conflicts:
src/atomic_ops/sysdeps/armcc/arm_v6.h
src/atomic_ops/sysdeps/gcc/arm.h
src/atomic_ops/sysdeps/msftc/arm.h
Ivan Maidanski [Sun, 13 Jan 2013 12:08:12 +0000 (16:08 +0400)]
Fix a typo in comment in msftc/arm.h
* src/atomic_ops/sysdeps/msftc/arm.h: Fix a typo in comment (about
SWP).
Ivan Maidanski [Sun, 27 Jan 2013 10:33:01 +0000 (14:33 +0400)]
.gitignore: Ignore .gch files
Ivan Maidanski [Fri, 11 Jan 2013 18:52:59 +0000 (22:52 +0400)]
Update ChangeLog
Ivan Maidanski [Mon, 7 Jan 2013 15:24:02 +0000 (19:24 +0400)]
Fix return type of AO_char/short/int_load_read() in read_ordered.h
* src/atomic_ops/sysdeps/read_ordered.h (AO_char_load_read,
AO_short_load_read, AO_int_load_read): Change return type (and the
type of "result" local variable) from AO_t to the type matching the
name of the function (i.e., unsigned char/short/int, respectively).
Ivan Maidanski [Sun, 6 Jan 2013 18:04:48 +0000 (22:04 +0400)]
Fix missing compiler barrier in AO_nop_full for uniprocessor ARM
(Apply commit b78058a from 'add-dbl-load-store' branch.)
* src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Insert
AO_compiler_barrier for AO_UNIPROCESSOR case.
* src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Likewise.
* src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full): Likewise.
* src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full): Refine comment.
Conflicts:
src/atomic_ops/sysdeps/msftc/arm.h
Ivan Maidanski [Sat, 5 Jan 2013 06:23:27 +0000 (10:23 +0400)]
Regenerate Makefile.in; update ChangeLog
Ivan Maidanski [Fri, 4 Jan 2013 19:28:42 +0000 (23:28 +0400)]
Fix template-based headers regeneration order in src/Makefile
* src/atomic_ops/Makefile.am (BUILT_SOURCES): Define to force
regeneration of generalize-small.h (if the corresponding
source template is changed) before compilation of .c files (that use
atomic_ops.h).
Conflicts:
src/Makefile.am
Ivan Maidanski [Thu, 3 Jan 2013 08:30:14 +0000 (12:30 +0400)]
Update ChangeLog
Ivan Maidanski [Wed, 2 Jan 2013 09:10:34 +0000 (13:10 +0400)]
Fix generalize-small template adding missed CAS-based fetch_and_add
* src/atomic_ops/generalize-small.template (AO_XSIZE_fetch_and_add):
Add missed definition based on CAS.
* src/atomic_ops/generalize-small.h: Regenerate.
Ivan Maidanski [Wed, 2 Jan 2013 08:31:08 +0000 (12:31 +0400)]
Fix AO_XSIZE_load/store definition order in generalize-small template
* src/atomic_ops/generalize-small.template (AO_XSIZE_load): Move
definition (which is based on AO_XSIZE_load_acquire) down to be after
AO_XSIZE_load_acquire definition.
* src/atomic_ops/generalize-small.template (AO_XSIZE_store): Move
definition (which is based on AO_XSIZE_store_release) down to be after
AO_XSIZE_store_release definition.
* src/atomic_ops/generalize-small.h : Regenerate.
Ivan Maidanski [Mon, 8 Oct 2012 20:23:21 +0000 (00:23 +0400)]
Update ChangeLog
Ivan Maidanski [Mon, 8 Oct 2012 20:06:19 +0000 (00:06 +0400)]
Fix variable type to match printf format specifier in test_stack
* tests/test_stack.c (run_one_test): Change type of "index" local
variable from long to int to match printf format specifier (when
VERBOSE defined); cast from "arg" pointer to integer via size_t (to
avoid 64-bit compiler warning).
Ivan Maidanski [Mon, 8 Oct 2012 18:37:30 +0000 (22:37 +0400)]
Update ChangeLog
Ivan Maidanski [Mon, 8 Oct 2012 10:51:30 +0000 (14:51 +0400)]
Properly fix compare_double_and_swap_double for gcc/x32 (use built-in CAS)
(Apply commit cbe517e from 'master' branch.)
* src/atomic_ops/sysdeps/gcc/x86.h (AO_double_compare_and_swap_full):
New function (only if __x86_64__) implemented using GCC built-in
__sync CAS primitive available for x32.
* src/atomic_ops/sysdeps/gcc/x86.h
(AO_HAVE_double_compare_and_swap_full): New macro (for x32 only).
* src/atomic_ops/sysdeps/gcc/x86.h
(AO_compare_double_and_swap_double_full): Implement using
double_compare_and_swap_full instead of cmpxchg8b for x32 (since
x86_64 has cmpxchg and cmpxchg16b but not cmpxchg8b).
Conflicts:
src/atomic_ops/sysdeps/gcc/x86.h