]>
granicus.if.org Git - libatomic_ops/log
Ivan Maidanski [Thu, 26 Oct 2017 07:17:12 +0000 (10:17 +0300)]
Update ChangeLog file (set v7.4.8 release date)
Ivan Maidanski [Fri, 13 Oct 2017 16:31:34 +0000 (19:31 +0300)]
Update ChangeLog file (v7.6 changes only)
Ivan Maidanski [Thu, 5 Oct 2017 22:59:55 +0000 (01:59 +0300)]
Travis CI: Test also 32-bit builds with --disable-atomic-intrinsics
Ivan Maidanski [Thu, 5 Oct 2017 22:52:08 +0000 (01:52 +0300)]
Travis CI: Test also 32-bit code with ASan (on OS X)
Ivan Maidanski [Thu, 5 Oct 2017 22:48:28 +0000 (01:48 +0300)]
Travis CI: Test AO_GENERALIZE_ASM_BOOL_CAS, AO_USE_NANOSLEEP/NO_SIGNALS
Ivan Maidanski [Thu, 5 Oct 2017 22:39:01 +0000 (01:39 +0300)]
Travis CI: Test also with Leak Sanitizer (LSan)
Ivan Maidanski [Thu, 5 Oct 2017 22:16:40 +0000 (01:16 +0300)]
Workaround TSan false positive warnings in stack_pop assertions
* src/atomic_ops_stack.c [AO_USE_ALMOST_LOCK_FREE]
(AO_stack_pop_explicit_aux_acquire): Skip
assert(a->AO_stack_bl[i]==first) and assert(*list!=first)
if AO_THREAD_SANITIZER; add comment.
Ivan Maidanski [Thu, 5 Oct 2017 08:40:31 +0000 (11:40 +0300)]
Fix 'bad register name %sil' assembler error (GCC-4.4/x86)
(fix commit
7708b76 )
* src/atomic_ops/sysdeps/gcc/x86.h [!AO_USE_SYNC_CAS_BUILTIN]
(AO_char_fetch_compare_and_swap_full): Replace "r"(new_val) to
"q"(new_val) in __asm__("cmpxchgb").
Ivan Maidanski [Wed, 27 Sep 2017 08:50:11 +0000 (11:50 +0300)]
Eliminate '-pedantic is not option that controls warnings' GCC-6.4 message
(fix commits
7633154 ,
7fad46e )
Issue #27 (libatomic_ops).
* src/atomic_ops/sysdeps/standard_ao_double_t.h
[(__x86_64__ && AO_GCC_ATOMIC_TEST_AND_SET || __aarch64__)
&& !__ILP32__ && AO_GNUC_PREREQ(4, 7)] (pragma GCC diagnostic):
Use "-Wpedantic" (instead of "-pedantic") if GCC v6.4+.
Ivan Maidanski [Thu, 21 Sep 2017 22:06:22 +0000 (01:06 +0300)]
Travis CI: Add a test build with Thread sanitizer (TSan)
Ivan Maidanski [Thu, 21 Sep 2017 21:19:27 +0000 (00:19 +0300)]
Travis CI: Fix builds for avr32, cris, sh4, tilegx after OS image update
Ivan Maidanski [Thu, 21 Sep 2017 08:36:30 +0000 (11:36 +0300)]
Workaround Thread Sanitizer (TSan) false positive warnings
* src/atomic_ops.h [__has_feature && __has_feature(thread_sanitizer)]
(AO_THREAD_SANITIZER): New internal macro.
* src/atomic_ops.h [!AO_ATTR_NO_SANITIZE_THREAD]
(AO_ATTR_NO_SANITIZE_THREAD): Likewise.
* src/atomic_ops/generalize-arithm.h: Regenerate.
* src/atomic_ops/generalize-small.h: Likewise.
* src/atomic_ops/generalize-arithm.template
(AO_XSIZE_fetch_and_add_full, AO_XSIZE_fetch_and_add_acquire,
AO_XSIZE_fetch_and_add_release, AO_XSIZE_fetch_and_add,
AO_XSIZE_and_full, AO_XSIZE_or_full, AO_XSIZE_xor_full): Add
AO_ATTR_NO_SANITIZE_THREAD attribute.
* src/atomic_ops/generalize-small.template (AO_XSIZE_load_read,
AO_XSIZE_load_full, AO_XSIZE_load_acquire, AO_XSIZE_load,
AO_XSIZE_store_write, AO_XSIZE_store, AO_XSIZE_store_release,
AO_XSIZE_store_full: Likewise.
* src/atomic_ops_stack.c [AO_USE_ALMOST_LOCK_FREE]
(AO_stack_push_explicit_aux_release): Likewise.
* src/atomic_ops_stack.c [AO_HAVE_compare_double_and_swap_double]
(AO_stack_push_release, AO_stack_pop_acquire): Likewise.
* tests/test_malloc.c (cons): Likewise.
* src/atomic_ops/sysdeps/gcc/x86.h [AO_GCC_ATOMIC_TEST_AND_SET
&& __clang__ && __x86_64__ && !__ILP32__ && AO_THREAD_SANITIZER]
(AO_SKIPATOMIC_double_compare_and_swap_ANY, AO_SKIPATOMIC_double_load,
AO_SKIPATOMIC_double_load_acquire, AO_SKIPATOMIC_double_store,
AO_SKIPATOMIC_double_store_release): Define; update comment.
* src/atomic_ops_malloc.c [AO_THREAD_SANITIZER] (AO_malloc, AO_free):
Use AO_store/load to write/read log_sz value in object header.
* tests/test_atomic.c (do_junk): New function (declared with
AO_ATTR_NO_SANITIZE_THREAD attribute); multiply junk value by two
different constant values.
* tests/test_atomic.c (test_and_set_thr): Call do_junk() instead of
operating on junk global variable directly.
Ivan Maidanski [Wed, 20 Sep 2017 21:35:15 +0000 (00:35 +0300)]
Update ChangeLog file (v7.6 changes only)
Ivan Maidanski [Wed, 20 Sep 2017 08:31:29 +0000 (11:31 +0300)]
Update ChangeLog file (v7.4 changes only)
(Cherry-pick commit
1b48276 from 'release-7_4' branch.)
Ivan Maidanski [Thu, 3 Aug 2017 21:34:31 +0000 (00:34 +0300)]
Travis CI: Test configure --disable-docs
Ivan Maidanski [Thu, 3 Aug 2017 21:18:34 +0000 (00:18 +0300)]
Do not install documentation if configure --disable-docs (new option)
Issue #28 (libatomic_ops).
* Makefile.am (dist_doc_DATA): Define only if ENABLE_DOCS.
* doc/Makefile.am (dist_doc_DATA): Likewise.
* configure.ac (docs): New AC_ARG_ENABLE.
* configure.ac (ENABLE_DOCS): New AM_CONDITIONAL.
Ivan Maidanski [Mon, 31 Jul 2017 06:41:23 +0000 (09:41 +0300)]
Eliminate '-pedantic is not an option that controls warnings' GCC message
(fix commit
7633154 )
Issue #27 (libatomic_ops).
* src/atomic_ops/sysdeps/standard_ao_double_t.h
[(__x86_64__ && AO_GCC_ATOMIC_TEST_AND_SET || __aarch64__)
&& !__ILP32__ && AO_GNUC_PREREQ(4, 7)] (pragma GCC diagnostic):
Use "-Wpedantic" (instead of "-pedantic") if GCC v7+.
Ivan Maidanski [Mon, 24 Jul 2017 09:56:47 +0000 (12:56 +0300)]
Workaround 'unused result' code defects in list_atomic.template
* tests/list_atomic.template: Include stdlib.h (needed for exit()
prototype).
* tests/list_atomic.template [AO_HAVE_XSIZE_loadXX]
(XSIZE_list_atomicXX): Cast AO_XSIZE_loadXX() result to void.
* tests/list_atomic.template [AO_HAVE_XSIZE_fetch_and_addXX]: Cast
AO_XSIZE_fetch_and_addXX() result to void.
* tests/list_atomic.template [AO_HAVE_XSIZE_fetch_and_add1XX]
(XSIZE_list_atomicXX): Cast AO_XSIZE_fetch_and_add1XX() result to void.
* tests/list_atomic.template [AO_HAVE_XSIZE_fetch_and_sub1XX]
(XSIZE_list_atomicXX): Cast AO_XSIZE_fetch_and_sub1XX() result to void.
* tests/list_atomic.template [AO_HAVE_test_and_setXX]
(XSIZE_list_atomicXX): Cast AO_test_and_setXX() result to void.
* tests/list_atomic.template [AO_HAVE_XSIZE_compare_and_swapXX]
(XSIZE_list_atomicXX): Call exit(1) if AO_XSIZE_compare_and_swapXX
failed.
* tests/list_atomic.template [AO_HAVE_XSIZE_fetch_compare_and_swapXX]
(XSIZE_list_atomicXX): Call exit(1) if AO_XSIZE_fetch_compare_and_swapXX
failed.
Ivan Maidanski [Mon, 24 Jul 2017 09:28:42 +0000 (12:28 +0300)]
Workaround 'unused result' code defect in atomic_ops.c
* src/atomic_ops.c [!AO_USE_NANOSLEEP && !AO_USE_WIN32_PTHREADS]
(AO_pause): Cast select() result to void.
Ivan Maidanski [Tue, 20 Jun 2017 09:23:15 +0000 (12:23 +0300)]
Update AUTHORS file (add Mikael Urankar)
Mikael Urankar [Mon, 19 Jun 2017 08:13:14 +0000 (10:13 +0200)]
Workaround misspelling in GCC to detect ARMv6KZ platform
Issue #26 (libatomic_ops).
Due to a misspelling in GCC, the check for the ARMv6KZ platform
uses ARM_ARCH_6ZK macro instead of ARM_ARCH_6KZ.
* src/atomic_ops/sysdeps/gcc/arm.h (AO_ARM_HAVE_DMB): Do not define
if __ARM_ARCH_6KZ__.
Ivan Maidanski [Thu, 15 Jun 2017 22:14:13 +0000 (01:14 +0300)]
Add bdwgc mailing list online archive link to README
* README.md (Feedback, Contribution, Questions and Notifications):
Update information about accessing the mailing list archive (add link
to that at Narkive site).
Ivan Maidanski [Fri, 9 Jun 2017 07:59:55 +0000 (10:59 +0300)]
Use GCC atomic intrinsics for Hexagon (clang 3.9+)
* src/atomic_ops/sysdeps/gcc/hexagon.h [AO_CLANG_PREREQ(3, 9)
&& !AO_DISABLE_GCC_ATOMICS] (AO_GCC_FORCE_HAVE_CAS,
AO_GCC_HAVE_double_SYNC_CAS): Define.
* src/atomic_ops/sysdeps/gcc/hexagon.h [AO_CLANG_PREREQ(3, 9)
&& !AO_DISABLE_GCC_ATOMICS]: Include standard_ao_double_t.h, generic.h.
* src/atomic_ops/sysdeps/gcc/hexagon.h [AO_CLANG_PREREQ(3, 9)
&& !AO_DISABLE_GCC_ATOMICS]: Do not include test_and_set_t_is_ao_t.h,
all_aligned_atomic_load_store.h.
* src/atomic_ops/sysdeps/gcc/hexagon.h [AO_CLANG_PREREQ(3, 9)
&& !AO_DISABLE_GCC_ATOMICS]: Do not define AO_nop_full,
AO_fetch_and_add, AO_test_and_set, AO_compare_and_swap,
AO_fetch_compare_and_swap, AO_T_IS_INT.
Ivan Maidanski [Thu, 8 Jun 2017 22:01:21 +0000 (01:01 +0300)]
Fix 'missing select.h', 'undefined sigprocmask' compiler errors (Hexagon)
* src/atomic_ops.c [__hexagon__ && !AO_USE_NO_SIGNALS
&& !AO_USE_NANOSLEEP] (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): Define;
add comment.
Ivan Maidanski [Thu, 8 Jun 2017 21:52:07 +0000 (00:52 +0300)]
Avoid misleading 'AO_t undefined' error if wrong atomic_ops.h included
This change might be useful e.g. in case of compilation by Hexagon SDK
which has own atomic_ops.h file (not related to libatomic_ops).
* tests/run_parallel.h [!CPPCHECK]: Issue #error if AO_ATOMIC_OPS_H is
not defined after #include atomic_ops.h.
Ivan Maidanski [Thu, 8 Jun 2017 21:38:57 +0000 (00:38 +0300)]
Do not produce .tar.bz2 distribution file (configure)
* configure.ac (AM_INIT_AUTOMAKE): Remove dist-bzip2.
Ivan Maidanski [Fri, 2 Jun 2017 04:44:15 +0000 (07:44 +0300)]
Update README about bugs reporting and new releases notification
* README.md (Download): Move (and update) information about bug reporting
to another section.
* README.md (Feedback, Contribution, Questions and Notifications): New
section.
* configure.ac (AC_INIT): Change URI for reporting bugs.
Ivan Maidanski [Thu, 1 Jun 2017 18:55:26 +0000 (21:55 +0300)]
Update several email addresses in AUTHORS file
Ivan Maidanski [Wed, 24 May 2017 21:39:59 +0000 (00:39 +0300)]
Travis CI: Move 'gnu-tools' to home folder
Ivan Maidanski [Fri, 19 May 2017 20:44:13 +0000 (23:44 +0300)]
Bump libatomic_ops version
* README.md: Bump version to 7.7.0.
* .travis.yml (addons.coverity_scan.project.version): Likewise.
* appveyor.yml (version): Likewise.
* configure.ac (AC_INIT): Likewise.
* src/atomic_ops/ao_version.h (AO_VERSION_MINOR): Likewise.
* README.md: Add back the build status indicators for "master" branch.
Ivan Maidanski [Fri, 19 May 2017 07:11:49 +0000 (10:11 +0300)]
[7.6.0]
Bump libatomic_ops version to 7.6.0
* ChangeLog (7.5.0): Bump version (to 7.6.0).
* .travis.yml (addons.coverity_scan.project.version): Likewise.
* README.md: Likewise.
* appveyor.yml (version): Likewise.
* configure.ac (AC_INIT): Likewise.
* src/atomic_ops/ao_version.h (AO_VERSION_MINOR): Likewise.
* ChangeLog (7.6.0, 7.4.6): Add release date.
* README.md: Remove build status indicators for "master" branch.
* src/Makefile.am (LIBATOMIC_OPS_GPL_VER_INFO): Change to 2:1:1
(increment revision number) because libatomic_ops_gpl.so implementation
has been updated (since the last change of the version info).
* src/Makefile.am (LIBATOMIC_OPS_VER_INFO): Change to 2:1:1 (just to
stay aligned with LIBATOMIC_OPS_GPL_VER_INFO).
Ivan Maidanski [Thu, 18 May 2017 08:33:10 +0000 (11:33 +0300)]
Update ChangeLog file (v7.2 - v7.4 changes only)
Ivan Maidanski [Thu, 18 May 2017 08:13:24 +0000 (11:13 +0300)]
Use 'inline code' format for commands in README.md
* README.md: Quote commands with a grave accent character ("`"); the
same for names containing an underscore; reformat text.
Ivan Maidanski [Tue, 16 May 2017 12:52:34 +0000 (15:52 +0300)]
Update ChangeLog file (v7.4 changes)
Ivan Maidanski [Tue, 16 May 2017 12:15:55 +0000 (15:15 +0300)]
Rename doc/README.txt to doc/README_details.txt
This is to differentiate from README.md when the documents are installed.
* doc/Makefile.am (dist_doc_DATA): Rename README.txt item to
README_details.txt.
* doc/README.txt: Rename to README_details.txt.
Ivan Maidanski [Mon, 15 May 2017 20:17:10 +0000 (23:17 +0300)]
Update ChangeLog file (v7.2 - v7.4 changes only)
Ivan Maidanski [Mon, 15 May 2017 19:44:38 +0000 (22:44 +0300)]
Travis CI: Reformat .yml file by travis tool
Ivan Maidanski [Mon, 15 May 2017 17:42:49 +0000 (20:42 +0300)]
Travis CI: Remove quotes and use single '=' in deploy:on:condition
(fix commits
63238a5 ,
0cbf615 )
Ivan Maidanski [Mon, 15 May 2017 17:38:02 +0000 (20:38 +0300)]
Travis CI: Remove parentheses in deploy:on:condition
(fix commit
63238a5 )
Ivan Maidanski [Mon, 15 May 2017 09:33:03 +0000 (12:33 +0300)]
Travis CI: Setup dist tarball uploading to GitHub on tag creation
Ivan Maidanski [Mon, 15 May 2017 09:24:31 +0000 (12:24 +0300)]
Travis CI: Move dist[check] test configs closer to the file beginning
(refactor commits
672aab2 ,
73162f6 )
Ivan Maidanski [Thu, 11 May 2017 08:21:01 +0000 (11:21 +0300)]
Eliminate 'value shift followed by expansion' false code defect warning
* src/atomic_ops.c [AO_USE_NANOSLEEP] (AO_pause): Use "L" suffix for
shifted immediate value (1) to match the type of ts.tv_nsec.
* src/atomic_ops.c [!AO_USE_NANOSLEEP && AO_USE_WIN32_PTHREADS]
(AO_pause): Cast shifted immediate value (1) to DWORD to match Sleep
argument type.
* src/atomic_ops.c [!AO_USE_NANOSLEEP && !AO_USE_WIN32_PTHREADS]
(AO_pause): Store computed usec value to an intermediate int variable
(before storing it to tv.tv_usec) so that to avoid widening conversion
of shifted immediate int value (1); add comment.
Ivan Maidanski [Wed, 10 May 2017 21:29:22 +0000 (00:29 +0300)]
Update AUTHORS file (add Andy Li)
Andy Li [Tue, 9 May 2017 01:42:14 +0000 (09:42 +0800)]
Fix 'doc' files installation folder
docs are dist_doc_DATA. They should be installed to /usr/share/doc.
* Makefile.am (dist_pkgdata_DATA): Remove COPYING, README.md.
* Makefile.am (dist_doc_DATA): Add COPYING, README.md.
* doc/Makefile.am (dist_pkgdata_DATA): Remove LICENSING.txt,
README.txt, README_stack.txt, README_malloc.txt, README_win32.txt.
* doc/Makefile.am (dist_doc_DATA): Add LICENSING.txt,
README.txt, README_stack.txt, README_malloc.txt, README_win32.txt.
Ivan Maidanski [Wed, 10 May 2017 07:50:56 +0000 (10:50 +0300)]
Update ChangeLog file
Ivan Maidanski [Wed, 10 May 2017 06:18:23 +0000 (09:18 +0300)]
Update ChangeLog file (v7.2 - v7.4 changes only)
Ivan Maidanski [Fri, 5 May 2017 18:53:14 +0000 (21:53 +0300)]
Travis CI: Test also 'make distcheck'
GNU autotools version:
* autoconf 2.69
* automake 1.15
* m4 1.4.18
* libtool 2.4.6
Ivan Maidanski [Fri, 28 Apr 2017 07:38:54 +0000 (10:38 +0300)]
Travis CI: Avoid quotes in build_command; fix indent of notification_email
(fix commits
18f1ddd ,
bd4257b )
Ivan Maidanski [Thu, 27 Apr 2017 20:57:02 +0000 (23:57 +0300)]
Travis CI: Test also the distributive file creation
Ivan Maidanski [Mon, 24 Apr 2017 18:16:41 +0000 (21:16 +0300)]
Travis CI: Add notification_email property for Coverity Scan
(fix commit
18f1ddd )
Ivan Maidanski [Mon, 24 Apr 2017 18:04:34 +0000 (21:04 +0300)]
Workaround 'value of AO_CLEAR unknown' cppcheck info message
* src/atomic_ops.h [AO_AO_TS_T || AO_CHAR_TS_T] (AO_CLEAR): Check
defined(AO_HAVE_CLEAR) instead of defined(AO_CLEAR).
* src/atomic_ops.h [AO_AO_TS_T || AO_CHAR_TS_T] (AO_HAVE_CLEAR): Define
(unless already defined).
* src/atomic_ops/sysdeps/gcc/generic.h (AO_HAVE_CLEAR): Define (along
with AO_CLEAR).
* src/atomic_ops/sysdeps/gcc/hppa.h (AO_HAVE_CLEAR): Likewise.
* src/atomic_ops/sysdeps/hpc/hppa.h (AO_HAVE_CLEAR): Likewise.
Ivan Maidanski [Mon, 24 Apr 2017 17:47:35 +0000 (20:47 +0300)]
Workaround 'value of abort unknown' cppcheck info message
(fix commit
9f4a38e )
* src/atomic_ops_malloc.c [_WIN32_WCE || __MINGW32CE__] (abort): Check
defined(AO_HAVE_abort) instead of defined(abort).
* tests/run_parallel.h [_WIN32_WCE || __MINGW32CE__] (abort): Likewise.
* tests/test_stack.c [_WIN32_WCE || __MINGW32CE__] (abort): Likewise.
Ivan Maidanski [Mon, 24 Apr 2017 17:26:38 +0000 (20:26 +0300)]
Workaround 'uninitialized variable' cppcheck error in hpc/hppa.h
* src/atomic_ops/sysdeps/hpc/hppa.h [CPPCHECK] (AO_test_and_set_full):
Initialize "ret" local variable (to zero) before AO_ldcw call; add
comment.
Ivan Maidanski [Mon, 24 Apr 2017 08:37:44 +0000 (11:37 +0300)]
Travis CI: Fix build_command for Coverity Scan
(fix commit
18f1ddd )
Ivan Maidanski [Fri, 21 Apr 2017 07:10:58 +0000 (10:10 +0300)]
Workaround 'resource leak' false positives in AO_malloc, add_elements
* src/atomic_ops_stack.c [AO_HAVE_compare_double_and_swap_double
&& LINT2] (AO_noop_sink): New global volatile variable.
* src/atomic_ops_stack.c [AO_HAVE_compare_double_and_swap_double
&& LINT2] (AO_stack_push_release): Store element value to AO_noop_sink;
add comment.
Ivan Maidanski [Wed, 19 Apr 2017 21:44:43 +0000 (00:44 +0300)]
Workaround 'uninitialized memory use' code analyzer false warning (tests)
* tests/test_atomic_include.template [AO_HAVE_storeXX && LINT2
&& AO_PREFER_GENERALIZED] (test_atomicXX): Initialize x local variable
(before AO_storeXX which can be defined using CAS); update comment.
* tests/test_atomic_include.template [AO_HAVE_short_storeXX && LINT2
&& AO_PREFER_GENERALIZED] (test_atomicXX): Initialize s local variable.
* tests/test_atomic_include.template [AO_HAVE_char_storeXX && LINT2
&& AO_PREFER_GENERALIZED] (test_atomicXX): Initialize b local variable.
* tests/test_atomic_include.template [AO_HAVE_int_storeXX && LINT2
&& AO_PREFER_GENERALIZED] (test_atomicXX): Initialize zz local variable.
Ivan Maidanski [Wed, 19 Apr 2017 20:40:44 +0000 (23:40 +0300)]
Travis CI: Test also by Coverity Scan
Ivan Maidanski [Wed, 19 Apr 2017 20:32:11 +0000 (23:32 +0300)]
Add Coverity Scan (static code analysis status) badge to README
Fabrizio Fabbri [Fri, 7 Apr 2017 13:56:04 +0000 (09:56 -0400)]
Workaround test_stack failure on AIX/ppc
* 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 [Sat, 15 Apr 2017 06:56:36 +0000 (09:56 +0300)]
Use CLANG/GNUC_PREREQ macros in gcc/powerpc.h
* src/atomic_ops/sysdeps/gcc/powerpc.h: Use AO_GNUC_PREREQ() instead
of direct use of __GNUC[_MINOR]__; use AO_CLANG_PREREQ() instead of
direct use __clang_major__ and __clang_minor__.
Ivan Maidanski [Fri, 5 Aug 2016 19:03:12 +0000 (22:03 +0300)]
Use GCC atomic intrinsics for PowerPC 32/64 (GCC 4.8+ and clang 3.8+)
(Cherry-pick commit
8e62b6f from 'ppc-gcc-atomics' branch.)
* src/atomic_ops/sysdeps/gcc/powerpc.h: Include generic.h and do not
include all_aligned_atomic_load_store.h, test_and_set_t_is_ao_t.h if
GCC 4.8+ or clang 3.8+ unless AO_DISABLE_GCC_ATOMICS.
* src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync,
AO_nop_write, AO_nop_read, AO_load_acquire, AO_store_release,
AO_test_and_set, AO_test_and_set_release, AO_test_and_set_full,
AO_compare_and_swap, AO_compare_and_swap_acquire,
AO_compare_and_swap_release, AO_compare_and_swap_full,
AO_fetch_compare_and_swap, AO_fetch_compare_and_swap_acquire,
AO_fetch_compare_and_swap_release, AO_fetch_compare_and_swap_full,
AO_fetch_and_add, AO_fetch_and_add_acquire, AO_fetch_and_add_release,
AO_fetch_and_add_full, AO_T_IS_INT): Do not define if generic.h is
included.
Ivan Maidanski [Tue, 4 Apr 2017 20:03:59 +0000 (23:03 +0300)]
Update ChangeLog file
Ivan Maidanski [Tue, 4 Apr 2017 08:35:50 +0000 (11:35 +0300)]
Update ChangeLog file (v7.2 - v7.4 changes only)
Ivan Maidanski [Tue, 4 Apr 2017 08:18:14 +0000 (11:18 +0300)]
ChangeLog: remove trailing dots
Ivan Maidanski [Mon, 3 Apr 2017 06:04:11 +0000 (09:04 +0300)]
Travis CI: Test also with mingw-w64 cross-compiler
Ivan Maidanski [Mon, 3 Apr 2017 05:56:42 +0000 (08:56 +0300)]
Travis CI: Set MAKEFILE_TARGET in 'matrix:include'
(refactor commit
859f874a )
Ivan Maidanski [Tue, 28 Mar 2017 08:19:57 +0000 (11:19 +0300)]
Travis CI: Replace multiple CONF_x with a single CONF_OPTIONS variable
(code refactoring)
Ivan Maidanski [Mon, 27 Mar 2017 07:17:28 +0000 (10:17 +0300)]
Revert 'Fix store-load ordering in AO_stack_pop_explicit_aux_acquire'
This reverts commit
85dd735949d712fa5db4bde0f0fc74f15a624222 .
As reported in issue #15, adding AO_nop_full to
AO_stack_pop_explicit_aux_acquire does not solve test_stack failure
on Power7.
Ivan Maidanski [Fri, 24 Mar 2017 16:20:12 +0000 (19:20 +0300)]
Travis CI: Run cppcheck once per build configuration
(refactoring of commit
ff3885c )
Ivan Maidanski [Fri, 24 Mar 2017 16:02:18 +0000 (19:02 +0300)]
Travis CI: Move optional -D arguments of CSA to CFLAGS_EXTRA
(refactoring of commit
4393a96 )
Ivan Maidanski [Fri, 24 Mar 2017 15:46:06 +0000 (18:46 +0300)]
Travis CI: Use inline format for some 'env' attributes
Ivan Maidanski [Thu, 23 Mar 2017 18:08:18 +0000 (21:08 +0300)]
Travis CI: Test also Intel x32 builds (Linux)
Ivan Maidanski [Thu, 23 Mar 2017 18:02:46 +0000 (21:02 +0300)]
Travis CI: Test also 32-bit, 64-bit builds with clang-4.0, gcc-5 (Linux)
Ivan Maidanski [Thu, 23 Mar 2017 17:57:48 +0000 (20:57 +0300)]
Travis CI: Use inline format for 'packages' and 'sources'
(refactoring of commit
6098194 )
Ivan Maidanski [Thu, 23 Mar 2017 07:37:59 +0000 (10:37 +0300)]
Travis CI: Test also with -D _FORTIFY_SOURCE, -std=c11, -std=c89
Ivan Maidanski [Thu, 23 Mar 2017 07:29:45 +0000 (10:29 +0300)]
Travis CI: Use -march=native for MSan/UBSan, musl-gcc, no atomic-intrinsics
Ivan Maidanski [Thu, 23 Mar 2017 07:27:16 +0000 (10:27 +0300)]
Travis CI: Use CSA v4.0 (clang-4.0)
Ivan Maidanski [Thu, 23 Mar 2017 07:23:10 +0000 (10:23 +0300)]
Travis CI: Use inline format of 'addons' and 'env'
(code refactoring of commits
d808080 ,
0f3f282 )
Ivan Maidanski [Thu, 23 Mar 2017 06:52:55 +0000 (09:52 +0300)]
Eliminate 'implicit declaration of close' warning in 'strict ANSI' mode
* src/atomic_ops_malloc.c [HAVE_MMAP && !USE_MMAP_ANON]: Include
unistd.h (to declare "close" function).
Ivan Maidanski [Thu, 23 Mar 2017 06:41:37 +0000 (09:41 +0300)]
Fix block_all_signals compilation in 'strict ANSI' mode
* src/atomic_ops.c [(__linux__ || __GLIBC__ || __GNU__)
&& !AO_USE_NO_SIGNALS] (_GNU_SOURCE): Define (before including system
headers).
Ivan Maidanski [Tue, 21 Mar 2017 09:01:26 +0000 (12:01 +0300)]
Travis CI: Also test with musl-gcc (Linux)
Ivan Maidanski [Mon, 20 Mar 2017 22:43:09 +0000 (01:43 +0300)]
Travis CI: Do not specify compiler for OS X builds
Ivan Maidanski [Mon, 20 Mar 2017 22:29:34 +0000 (01:29 +0300)]
Travis CI: Run CSA in a standalone test configuration
Ivan Maidanski [Mon, 20 Mar 2017 22:22:20 +0000 (01:22 +0300)]
Travis CI: Specify test configurations using 'matrix:include'
(code refactoring)
Also, require "sudo" only where needed.
Ivan Maidanski [Wed, 15 Mar 2017 08:27:48 +0000 (11:27 +0300)]
Fix AO_SIZE_MAX definition (Linux/musl-gcc)
(fix commit
b1365bd )
* 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 [Wed, 15 Mar 2017 08:22:26 +0000 (11:22 +0300)]
Refine configure messages when checking for compiler options
* configure.ac (AC_MSG_CHECKING, AC_MSG_RESULT): Refine message when
checking for a compiler option support (replace "gcc" with "compiler"),
and when reporting PIC option required; put string in [].
* configure.ac (AC_MSG_RESULT): Do not put string in quotes.
Ivan Maidanski [Fri, 10 Mar 2017 08:22:09 +0000 (11:22 +0300)]
Travis CI: Put a space after '-D', '-U' for cppcheck, clang, gcc
(refactoring of commits
4393a96 ,
797e428 ,
ff3885c ,
76825c7 ,
106bab9 )
Ivan Maidanski [Thu, 9 Mar 2017 04:53:32 +0000 (07:53 +0300)]
Workaround 'obsolescent ftime called' cppcheck style warning (POSIX)
* tests/test_stack.c [!NO_TIMES && (USE_WINTHREADS
|| AO_USE_WIN32_PTHREADS)] (get_msecs): Use gettimeofday-based
implementation if CPPCHECK.
Ivan Maidanski [Thu, 9 Mar 2017 04:30:35 +0000 (07:30 +0300)]
Workaround 'shifting 32-bit value by 32 bits undefined' cppcheck warning
* src/atomic_ops_malloc.c [__SIZEOF_SIZE_T__==8] (msb): Ignore by
CPPCHECK.
Ivan Maidanski [Mon, 6 Mar 2017 04:32:19 +0000 (07:32 +0300)]
Define CLANG/GNUC_PREREQ macros to check gcc/clang minimum version
(code refactoring)
* src/atomic_ops.h (AO_GNUC_PREREQ, AO_CLANG_PREREQ): New internal
macro.
* src/atomic_ops.h (AO_EXPECT_FALSE): Use AO_GNUC_PREREQ() instead of
direct use of __GNUC[_MINOR]__.
* src/atomic_ops.h [__x86_64__] (AO_USE_SYNC_CAS_BUILTIN): Likewise.
* src/atomic_ops/sysdeps/gcc/arm.h (AO_GCC_ATOMIC_TEST_AND_SET):
Likewise.
* src/atomic_ops/sysdeps/gcc/mips.h: Likewise.
* src/atomic_ops/sysdeps/gcc/tile.h: Likewise.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_GCC_ATOMIC_TEST_AND_SET):
Likewise.
* src/atomic_ops/sysdeps/standard_ao_double_t.h (pragma GCC,
double_ptr_storage): Likewise.
* src/atomic_ops.h [!AO_ATTR_NO_SANITIZE_MEMORY]
(AO_ATTR_NO_SANITIZE_MEMORY): Use AO_CLANG_PREREQ() instead of direct
use __clang_major__ and __clang_minor__.
* src/atomic_ops/sysdeps/gcc/arm.h (AO_GCC_ATOMIC_TEST_AND_SET,
AO_ARM_HAVE_LDREXD): Likewise.
* src/atomic_ops/sysdeps/gcc/mips.h: Likewise.
* src/atomic_ops/sysdeps/gcc/tile.h: Likewise.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_GCC_ATOMIC_TEST_AND_SET,
AO_SKIPATOMIC_double_load): Likewise.
* src/atomic_ops/sysdeps/standard_ao_double_t.h (pragma GCC): Likewise.
Ivan Maidanski [Wed, 1 Mar 2017 22:50:24 +0000 (01:50 +0300)]
Fix missing .exe for test filenames in Makefile (MinGW)
(fix commits
ad82960 ,
13a17dd ,
ecd43ca )
* tests/Makefile.am (TESTS, check-without-test-driver): Add $(EXEEXT)
suffix to each item (test).
* tests/Makefile.am (TEST_OBJS): Reorder items (to match the that of
TESTS).
* tests/Makefile.am (check_PROGRAMS): Specify all items explicitly (so
that to have all items without the suffix as before this change).
Ivan Maidanski [Mon, 27 Feb 2017 18:17:42 +0000 (21:17 +0300)]
Travis CI: Test also with kernel.org gcc-4.2, gcc-4.6 cross-compilers
(avr32, cris, sh4, tilegx)
Ivan Maidanski [Mon, 27 Feb 2017 17:58:28 +0000 (20:58 +0300)]
Allow alternate CC (CROSS_CC) for AC_TRY_COMPILE (configure)
* configure.ac [GCC && CROSS_CC] (CC): Assign to CROSS_CC temporarily
(for AC_TRY_COMPILE); restore original value after last AC_TRY_COMPILE.
Ivan Maidanski [Wed, 22 Feb 2017 21:44:46 +0000 (00:44 +0300)]
Travis CI: Test also with other kernel.org gcc-4.9 cross-compilers
(aarch64, alpha, hppa, ia64, m68k, mips[64], powerpc[64], s390x, sparc[64])
Ivan Maidanski [Wed, 22 Feb 2017 20:53:05 +0000 (23:53 +0300)]
Travis CI: Move CROSS_ prefix from NOLIBC_ARCH_ABI to GCC_VER variable
(code refactoring of commit
a596be3 )
Ivan Maidanski [Wed, 22 Feb 2017 15:37:50 +0000 (18:37 +0300)]
Travis CI: Reformat 'env' section (describe each configuration in a line)
(fix commits
641030c ,
ff3885c )
Ivan Maidanski [Wed, 22 Feb 2017 06:55:09 +0000 (09:55 +0300)]
Travis CI: Also test with ARM cross-compiler
Ivan Maidanski [Wed, 22 Feb 2017 06:45:48 +0000 (09:45 +0300)]
Travis CI: Move cppcheck to parent (home) folder
(fix commit
ff3885c )
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 [Tue, 21 Feb 2017 20:38:47 +0000 (23:38 +0300)]
Eliminate 'missing braces around initializer' gcc warning (hppa)
* src/atomic_ops/sysdeps/gcc/hppa.h (AO_TS_INITIALIZER): Add extra
outermost {} braces.