Hello community,

here is the log from the commit of package libatomic_ops for openSUSE:Factory 
checked in at 2018-11-05 22:48:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libatomic_ops (Old)
 and      /work/SRC/openSUSE:Factory/.libatomic_ops.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libatomic_ops"

Mon Nov  5 22:48:05 2018 rev:11 rq:644194 version:7.6.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/libatomic_ops/libatomic_ops.changes      
2018-02-09 15:40:59.169523034 +0100
+++ /work/SRC/openSUSE:Factory/.libatomic_ops.new/libatomic_ops.changes 
2018-11-05 22:48:16.860595388 +0100
@@ -1,0 +2,10 @@
+Wed Oct 24 05:09:08 UTC 2018 - s...@suspend.net
+
+- Update to new upstream release 7.6.6
+  * Fix undefined reference to __atomic_load/store/cas_16
+  * Fix a typo in the overview section of README
+  * Fix comments style in configure.ac and Makefile.am
+  * Update copyright information in README and some header files
+- Remove patch libatomic_ops-ppc64.patch, looks merged
+
+-------------------------------------------------------------------

Old:
----
  libatomic_ops-7.6.2.tar.gz
  libatomic_ops-ppc64.patch

New:
----
  libatomic_ops-7.6.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libatomic_ops.spec ++++++
--- /var/tmp/diff_new_pack.qDyUWE/_old  2018-11-05 22:48:18.236593648 +0100
+++ /var/tmp/diff_new_pack.qDyUWE/_new  2018-11-05 22:48:18.240593642 +0100
@@ -12,21 +12,20 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           libatomic_ops
-Version:        7.6.2
+Version:        7.6.6
 Release:        0
 Summary:        A portable library for atomic memory operations
-License:        GPL-2.0+ and MIT
+License:        GPL-2.0-or-later AND MIT
 Group:          Development/Languages/C and C++
 Url:            https://github.com/ivmai/libatomic_ops
 
 #Git-Clone:    git://github.com/ivmai/libatomic_ops
 Source:         http://www.ivmaisoft.com/_bin/atomic_ops/%name-%version.tar.gz
-Patch1:         libatomic_ops-ppc64.patch
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  libtool
@@ -54,7 +53,6 @@
 
 %prep
 %setup -q
-%patch -P 1 -p1
 
 %build
 autoreconf -fiv

++++++ libatomic_ops-7.6.2.tar.gz -> libatomic_ops-7.6.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/AUTHORS 
new/libatomic_ops-7.6.6/AUTHORS
--- old/libatomic_ops-7.6.2/AUTHORS     2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/AUTHORS     2018-08-07 09:33:44.000000000 +0200
@@ -43,10 +43,12 @@
 Ranko Zivojnovic <ra...@spidernet.net>
 Roger Hoover <roger.hoo...@gmail.com>
 Sebastian Siewior <sebast...@breakpoint.cc>
+Shea Levy <s...@shealevy.com>
 Steve Capper <steve.cap...@linaro.org>
 Takashi Yoshii <takashi.yoshii...@renesas.com>
 Thiemo Seufer <ica2...@csv.ica.uni-stuttgart.de>
 Thorsten Glaser <t...@debian.org>
 Tobias Leich <em...@froggs.de>
 Tony Mantler <nic...@ubb.ca>
+YunQiang Su <wzss...@gmail.com>
 Yvan Roux <yvan.r...@linaro.org>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/COPYING 
new/libatomic_ops-7.6.6/COPYING
--- old/libatomic_ops-7.6.2/COPYING     2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/COPYING     2018-08-07 09:33:44.000000000 +0200
@@ -1,12 +1,12 @@
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
 
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-                           Preamble
+                            Preamble
 
   The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
@@ -15,7 +15,7 @@
 General Public License applies to most of the Free Software
 Foundation's software and to any other program whose authors commit to
 using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
+the GNU Lesser General Public License instead.)  You can apply it to
 your programs, too.
 
   When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@
 
   The precise terms and conditions for copying, distribution and
 modification follow.
-
-                   GNU GENERAL PUBLIC LICENSE
+
+                    GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
   0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@
     License.  (Exception: if the Program itself is interactive but
     does not normally print such an announcement, your work based on
     the Program is not required to print an announcement.)
-
+
 These requirements apply to the modified work as a whole.  If
 identifiable sections of that work are not derived from the Program,
 and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@
 access to copy the source code from the same place counts as
 distribution of the source code, even though third parties are not
 compelled to copy the source along with the object code.
-
+
   4. You may not copy, modify, sublicense, or distribute the Program
 except as expressly provided under this License.  Any attempt
 otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@
 
 This section is intended to make thoroughly clear what is believed to
 be a consequence of the rest of this License.
-
+
   8. If the distribution and/or use of the Program is restricted in
 certain countries either by patents or by copyrighted interfaces, the
 original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-                           NO WARRANTY
+                            NO WARRANTY
 
   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
@@ -277,9 +277,9 @@
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-                    END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Programs
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
@@ -303,17 +303,16 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 Also add information on how to contact you by electronic and paper mail.
 
 If the program is interactive, make it output a short notice like this
 when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision version 69, Copyright (C) year name of author
     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@
 This General Public License does not permit incorporating your program into
 proprietary programs.  If your program is a subroutine library, you may
 consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
+library.  If this is what you want to do, use the GNU Lesser General
 Public License instead of this License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/ChangeLog 
new/libatomic_ops-7.6.6/ChangeLog
--- old/libatomic_ops-7.6.2/ChangeLog   2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/ChangeLog   2018-08-07 09:33:44.000000000 +0200
@@ -1,4 +1,25 @@
 
+== [7.6.6] 2018-08-07 ==
+
+* COPYING: sync with FSF's gpl-2.0.txt
+* Fix 'undefined reference to __atomic_load/store/cas_16' error (gcc-7/x64)
+* Fix a typo in the overview section of README
+* Fix comments style in configure.ac and Makefile.am
+* Update copyright information in README and some header files
+
+
+== [7.6.4] 2018-03-27 ==
+
+* Add RISC-V support
+* Convert atomic_ops_malloc.c and tests to valid C++ code
+* Eliminate 'function is never used' cppcheck warning for load_before_cas
+* Eliminate 'using argument that points at uninitialized var' cppcheck error
+* Fix 'AO_pt_lock undefined' error if cross-compiling manually (MinGW)
+* Fix public headers inclusion from clients C++ code
+* Remove gcc/nios2.h file (include gcc/generic.h directly for nios2)
+* Support MIPS rel6
+
+
 == [7.6.2] 2017-12-24 ==
 
 * Allow to alter DEFAULT/MAX_NTHREADS values in test_malloc/stack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/Makefile.am 
new/libatomic_ops-7.6.6/Makefile.am
--- old/libatomic_ops-7.6.2/Makefile.am 2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/Makefile.am 2018-08-07 09:33:44.000000000 +0200
@@ -12,9 +12,9 @@
 
 EXTRA_DIST = autogen.sh
 
-# TODO: After migration to autoconf-1.13+, remove check-nolink definition
-# from this Makefile.am and add AM_EXTRA_RECURSIVE_TARGETS([check-nolink])
-# back to configure.ac file.
+## TODO: After migration to autoconf-1.13+, remove check-nolink definition
+## from this Makefile.am and add AM_EXTRA_RECURSIVE_TARGETS([check-nolink])
+## back to configure.ac file.
 .PHONY: check-nolink check-nolink-local
 check-nolink: check-nolink-local
        $(MAKE) --directory tests $(AM_MAKEFLAGS) check-nolink-local
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/Makefile.in 
new/libatomic_ops-7.6.6/Makefile.in
--- old/libatomic_ops-7.6.2/Makefile.in 2017-12-24 09:32:23.000000000 +0100
+++ new/libatomic_ops-7.6.6/Makefile.in 2018-08-07 09:34:42.000000000 +0200
@@ -890,9 +890,6 @@
 .PRECIOUS: Makefile
 
 
-# TODO: After migration to autoconf-1.13+, remove check-nolink definition
-# from this Makefile.am and add AM_EXTRA_RECURSIVE_TARGETS([check-nolink])
-# back to configure.ac file.
 .PHONY: check-nolink check-nolink-local
 check-nolink: check-nolink-local
        $(MAKE) --directory tests $(AM_MAKEFLAGS) check-nolink-local
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/README.md 
new/libatomic_ops-7.6.6/README.md
--- old/libatomic_ops-7.6.2/README.md   2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/README.md   2018-08-07 09:33:44.000000000 +0200
@@ -2,7 +2,7 @@
 
 IN NEW CODE, PLEASE USE C11 OR C++14 STANDARD ATOMICS INSTEAD OF THIS PACKAGE.
 
-This is version 7.6.2 of libatomic_ops.
+This is version 7.6.6 of libatomic_ops.
 
 
 ## Download
@@ -18,7 +18,7 @@
 ## Overview
 
 This package provides semi-portable access to hardware-provided
-atomic memory update operations on a number architectures.  These might
+atomic memory update operations on a number of architectures.  These might
 allow you to write code:
 
 * That does more interesting things in signal handlers.
@@ -96,4 +96,25 @@
 
 ## Copyright & Warranty
 
-See doc/LICENSING.txt file.
+ * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
+ * Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
+ * Copyright (c) 1999-2011 Hewlett-Packard Development Company, L.P.
+ * Copyright (c) 2008-2018 Ivan Maidanski
+
+The file armcc/arm_v6.h is also
+
+ * Copyright (c) 2007 by NEC LE-IT.  All rights reserved.
+
+The file gcc/avr32.h is
+
+ * Copyright (c) 2009 Bradley Smith <b...@brad-smith.co.uk>
+
+The file gcc/mips.h is
+
+ * Copyright (c) 2005, 2007 Thiemo Seufer <t...@networkno.de>
+
+The file gcc/sh.h is
+
+ * Copyright (c) 2009 by Takashi YOSHII. All rights reserved.
+
+See doc/LICENSING.txt for the details.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/configure 
new/libatomic_ops-7.6.6/configure
--- old/libatomic_ops-7.6.2/configure   2017-12-24 09:32:22.000000000 +0100
+++ new/libatomic_ops-7.6.6/configure   2018-08-07 09:34:42.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libatomic_ops 7.6.2.
+# Generated by GNU Autoconf 2.69 for libatomic_ops 7.6.6.
 #
 # Report bugs to <https://github.com/ivmai/libatomic_ops/issues>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='libatomic_ops'
 PACKAGE_TARNAME='libatomic_ops'
-PACKAGE_VERSION='7.6.2'
-PACKAGE_STRING='libatomic_ops 7.6.2'
+PACKAGE_VERSION='7.6.6'
+PACKAGE_STRING='libatomic_ops 7.6.6'
 PACKAGE_BUGREPORT='https://github.com/ivmai/libatomic_ops/issues'
 PACKAGE_URL=''
 
@@ -1343,7 +1343,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libatomic_ops 7.6.2 to adapt to many kinds of systems.
+\`configure' configures libatomic_ops 7.6.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1414,7 +1414,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libatomic_ops 7.6.2:";;
+     short | recursive ) echo "Configuration of libatomic_ops 7.6.6:";;
    esac
   cat <<\_ACEOF
 
@@ -1535,7 +1535,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libatomic_ops configure 7.6.2
+libatomic_ops configure 7.6.6
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1813,7 +1813,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libatomic_ops $as_me 7.6.2, which was
+It was created by libatomic_ops $as_me 7.6.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2793,7 +2793,7 @@
 
 # Define the identity of the package.
  PACKAGE='libatomic_ops'
- VERSION='7.6.2'
+ VERSION='7.6.6'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2913,7 +2913,6 @@
 ac_config_headers="$ac_config_headers src/config.h"
 
 
-# Checks for programs.
 DEPDIR="${am__leading_dot}deps"
 
 ac_config_commands="$ac_config_commands depfiles"
@@ -12085,7 +12084,6 @@
 
 
 
-# Checks for functions.
 
 
 
@@ -12495,7 +12493,6 @@
 
 
 
-# Extra user-defined C flags.
 
 
 
@@ -12505,7 +12502,6 @@
 
 
 
-# These macros are tested in public headers
 
 
 
@@ -13172,7 +13168,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libatomic_ops $as_me 7.6.2, which was
+This file was extended by libatomic_ops $as_me 7.6.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13238,7 +13234,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libatomic_ops config.status 7.6.2
+libatomic_ops config.status 7.6.6
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/configure.ac 
new/libatomic_ops-7.6.6/configure.ac
--- old/libatomic_ops-7.6.2/configure.ac        2017-12-24 09:31:12.000000000 
+0100
+++ new/libatomic_ops-7.6.6/configure.ac        2018-08-07 09:33:44.000000000 
+0200
@@ -1,5 +1,18 @@
-# Process this file with autoconf to produce a configure script.
-AC_INIT([libatomic_ops],[7.6.2],https://github.com/ivmai/libatomic_ops/issues)
+# Copyright (c) 2005-2006 Hewlett-Packard Development Company, L.P.
+# Copyright (c) 2009-2018 Ivan Maidanski
+#
+# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+# OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+#
+# Permission is hereby granted to use or copy this program
+# for any purpose,  provided the above notices are retained on all copies.
+# Permission to modify the code and to distribute modified code is granted,
+# provided the above notices are retained, and a notice that the code was
+# modified is included with the above copyright notice.
+
+dnl Process this file with autoconf to produce configure.
+
+AC_INIT([libatomic_ops],[7.6.6],https://github.com/ivmai/libatomic_ops/issues)
 
 AC_PREREQ(2.61)
 AC_CANONICAL_TARGET([])
@@ -10,12 +23,12 @@
 
 AC_CONFIG_HEADERS([src/config.h])
 
-# Checks for programs.
+dnl Checks for programs.
 AM_PROG_CC_C_O
 AM_PROG_AS
 LT_INIT([disable-shared])
 
-# Checks for functions.
+dnl Checks for functions.
 AC_FUNC_MMAP
 
 # Determine PIC flag.
@@ -133,7 +146,7 @@
 AC_SUBST(PICFLAG)
 AC_SUBST(DEFS)
 
-# Extra user-defined C flags.
+dnl Extra user-defined C flags.
 AC_SUBST([CFLAGS_EXTRA])
 
 AH_TEMPLATE([_PTHREADS], [Indicates the use of pthreads (NetBSD).])
@@ -149,7 +162,7 @@
          are emulated)])
 AH_TEMPLATE([AO_TRACE_MALLOC], [Trace AO_malloc/free calls (for debug only)])
 
-# These macros are tested in public headers
+dnl These macros are tested in public headers.
 AH_TEMPLATE([AO_GENERALIZE_ASM_BOOL_CAS],
         [Force compare_and_swap definition via fetch_compare_and_swap])
 AH_TEMPLATE([AO_PREFER_GENERALIZED],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/Makefile.am 
new/libatomic_ops-7.6.6/src/Makefile.am
--- old/libatomic_ops-7.6.2/src/Makefile.am     2017-12-24 09:31:12.000000000 
+0100
+++ new/libatomic_ops-7.6.6/src/Makefile.am     2018-08-07 09:33:44.000000000 
+0200
@@ -90,8 +90,8 @@
           atomic_ops/sysdeps/gcc/ia64.h \
           atomic_ops/sysdeps/gcc/m68k.h \
           atomic_ops/sysdeps/gcc/mips.h \
-          atomic_ops/sysdeps/gcc/nios2.h \
           atomic_ops/sysdeps/gcc/powerpc.h \
+          atomic_ops/sysdeps/gcc/riscv.h \
           atomic_ops/sysdeps/gcc/s390.h \
           atomic_ops/sysdeps/gcc/sh.h \
           atomic_ops/sysdeps/gcc/sparc.h \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/Makefile.in 
new/libatomic_ops-7.6.6/src/Makefile.in
--- old/libatomic_ops-7.6.2/src/Makefile.in     2017-12-24 09:32:23.000000000 
+0100
+++ new/libatomic_ops-7.6.6/src/Makefile.in     2018-08-07 09:34:42.000000000 
+0200
@@ -444,8 +444,8 @@
           atomic_ops/sysdeps/gcc/ia64.h \
           atomic_ops/sysdeps/gcc/m68k.h \
           atomic_ops/sysdeps/gcc/mips.h \
-          atomic_ops/sysdeps/gcc/nios2.h \
           atomic_ops/sysdeps/gcc/powerpc.h \
+          atomic_ops/sysdeps/gcc/riscv.h \
           atomic_ops/sysdeps/gcc/s390.h \
           atomic_ops/sysdeps/gcc/sh.h \
           atomic_ops/sysdeps/gcc/sparc.h \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/atomic_ops/ao_version.h 
new/libatomic_ops-7.6.6/src/atomic_ops/ao_version.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/ao_version.h 2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/ao_version.h 2018-08-07 
09:33:44.000000000 +0200
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2003-2004 Hewlett-Packard Development Company, L.P.
+ * Copyright (c) 2011-2018 Ivan Maidanski
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to 
deal
@@ -34,4 +35,4 @@
 /* The version here should match that in configure.ac and README.       */
 #define AO_VERSION_MAJOR 7
 #define AO_VERSION_MINOR 6
-#define AO_VERSION_MICRO 2 /* 7.6.2 */
+#define AO_VERSION_MICRO 6 /* 7.6.6 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/emul_cas.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/emul_cas.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/emul_cas.h   2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/emul_cas.h   2018-08-07 
09:33:44.000000000 +0200
@@ -43,6 +43,10 @@
 # include "standard_ao_double_t.h"
 #endif
 
+#ifdef __cplusplus
+  extern "C" {
+#endif
+
 AO_t AO_fetch_compare_and_swap_emulation(volatile AO_t *addr, AO_t old_val,
                                          AO_t new_val);
 
@@ -76,3 +80,7 @@
 #undef AO_HAVE_store_full
 #define AO_store_full(addr, val) AO_store_full_emulation(addr, val)
 #define AO_HAVE_store_full
+
+#ifdef __cplusplus
+  } /* extern "C" */
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/aarch64.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/aarch64.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/aarch64.h        
2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/aarch64.h        
2018-08-07 09:33:44.000000000 +0200
@@ -2,7 +2,7 @@
  * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
  * Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
  * Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved.
- *
+ * Copyright (c) 2013-2017 Ivan Maidanski
  *
  * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/arm.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/arm.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/arm.h    2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/arm.h    2018-08-07 
09:33:44.000000000 +0200
@@ -2,7 +2,7 @@
  * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
  * Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
  * Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved.
- *
+ * Copyright (c) 2008-2017 Ivan Maidanski
  *
  * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/generic.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/generic.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/generic.h        
2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/generic.h        
2018-08-07 09:33:44.000000000 +0200
@@ -2,7 +2,7 @@
  * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
  * Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
  * Copyright (c) 2003-2011 Hewlett-Packard Development Company, L.P.
- *
+ * Copyright (c) 2013-2017 Ivan Maidanski
  *
  * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/mips.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/mips.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/mips.h   2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/mips.h   2018-08-07 
09:33:44.000000000 +0200
@@ -41,14 +41,23 @@
 
 # if !defined(_ABI64) || _MIPS_SIM != _ABI64
 #   define AO_T_IS_INT
-#   define AO_MIPS_SET_ISA    "       .set mips2\n"
+#   if __mips_isa_rev >= 6
+      /* Encoding of ll/sc in mips rel6 differs from that of mips2/3. */
+#     define AO_MIPS_SET_ISA  ""
+#   else
+#     define AO_MIPS_SET_ISA  "       .set mips2\n"
+#   endif
 #   define AO_MIPS_LL_1(args) "       ll " args "\n"
 #   define AO_MIPS_SC(args)   "       sc " args "\n"
 # else
-#   define AO_MIPS_SET_ISA    "       .set mips3\n"
+#   if __mips_isa_rev >= 6
+#     define AO_MIPS_SET_ISA  ""
+#   else
+#     define AO_MIPS_SET_ISA  "       .set mips3\n"
+#   endif
 #   define AO_MIPS_LL_1(args) "       lld " args "\n"
 #   define AO_MIPS_SC(args)   "       scd " args "\n"
-# endif
+# endif /* _MIPS_SIM == _ABI64 */
 
 #ifdef AO_ICE9A1_LLSC_WAR
   /* ICE9 rev A1 chip (used in very few systems) is reported to */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/nios2.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/nios2.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/nios2.h  2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/nios2.h  1970-01-01 
01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-/*
- * Copyright (C) 2016 Marek Vasut <ma...@denx.de>
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#include "generic.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/riscv.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/riscv.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/riscv.h  1970-01-01 
01:00:00.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/riscv.h  2018-08-07 
09:33:44.000000000 +0200
@@ -0,0 +1,22 @@
+/*
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+ * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program
+ * for any purpose,  provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is granted,
+ * provided the above notices are retained, and a notice that the code was
+ * modified is included with the above copyright notice.
+ */
+
+/* As of gcc-7.2.0, some __GCC_HAVE_SYNC_COMPARE_AND_SWAP_n are missing. */
+/* The operations are lock-free (even for the types smaller than word).  */
+#define AO_GCC_FORCE_HAVE_CAS
+
+/* While double-word atomic operations are provided by the compiler     */
+/* (which requires -latomic currently), they are not lock-free as       */
+/* riscv itself does not have the double-word atomic operations.        */
+
+#include "generic.h"
+
+#undef AO_GCC_FORCE_HAVE_CAS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/x86.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/x86.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/gcc/x86.h    2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/x86.h    2018-08-07 
09:33:44.000000000 +0200
@@ -2,7 +2,7 @@
  * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
  * Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
  * Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved.
- *
+ * Copyright (c) 2008-2018 Ivan Maidanski
  *
  * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
@@ -67,7 +67,15 @@
 #       define AO_SKIPATOMIC_DOUBLE_LOAD_STORE_ANY
 #     endif
 #   endif /* __x86_64__ */
-# endif /* __clang__ */
+
+# elif AO_GNUC_PREREQ(7, 0) && !defined(AO_PREFER_BUILTIN_ATOMICS) \
+       && !defined(AO_THREAD_SANITIZER) && !defined(__MINGW32__)
+    /* gcc-7.x/x64 (gcc-7.2, at least) requires -latomic flag in case   */
+    /* of double-word atomic operations use (but not in case of TSan).  */
+    /* TODO: Revise it for the future gcc-7 releases. */
+#   define AO_SKIPATOMIC_double_compare_and_swap_ANY
+#   define AO_SKIPATOMIC_DOUBLE_LOAD_STORE_ANY
+# endif /* __GNUC__ && !__clang__ */
 
 # ifdef AO_SKIPATOMIC_DOUBLE_LOAD_STORE_ANY
 #   define AO_SKIPATOMIC_double_load
@@ -557,6 +565,10 @@
 #elif defined(AO_WEAK_DOUBLE_CAS_EMULATION)
 # include "../standard_ao_double_t.h"
 
+# ifdef __cplusplus
+    extern "C" {
+# endif
+
   /* This one provides spinlock based emulation of CAS implemented in   */
   /* atomic_ops.c.  We probably do not want to do this here, since it   */
   /* is not atomic with respect to other kinds of updates of *addr.     */
@@ -566,6 +578,10 @@
                                         AO_t old_val1, AO_t old_val2,
                                         AO_t new_val1, AO_t new_val2);
 
+# ifdef __cplusplus
+    } /* extern "C" */
+# endif
+
   AO_INLINE int
   AO_compare_double_and_swap_double_full(volatile AO_double_t *addr,
                                          AO_t old_val1, AO_t old_val2,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/generic_pthread.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/generic_pthread.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/generic_pthread.h    
2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/generic_pthread.h    
2018-08-07 09:33:44.000000000 +0200
@@ -33,10 +33,18 @@
         /* This is not necessarily compatible with the native           */
         /* implementation.  But those can't be safely mixed anyway.     */
 
+#ifdef __cplusplus
+  extern "C" {
+#endif
+
 /* We define only the full barrier variants, and count on the           */
 /* generalization section below to fill in the rest.                    */
 extern pthread_mutex_t AO_pt_lock;
 
+#ifdef __cplusplus
+  } /* extern "C" */
+#endif
+
 AO_INLINE void
 AO_nop_full(void)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/loadstore/double_atomic_load_store.h
 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/double_atomic_load_store.h
--- 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/loadstore/double_atomic_load_store.h
 2017-12-24 09:31:12.000000000 +0100
+++ 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/double_atomic_load_store.h
 2018-08-07 09:33:44.000000000 +0200
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2004 Hewlett-Packard Development Company, L.P.
+ * Copyright (c) 2013 Ivan Maidanski
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to 
deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/msftc/arm.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/msftc/arm.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/msftc/arm.h  2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/msftc/arm.h  2018-08-07 
09:33:44.000000000 +0200
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2003 Hewlett-Packard Development Company, L.P.
+ * Copyright (c) 2009-2017 Ivan Maidanski
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to 
deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/msftc/common32_defs.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/msftc/common32_defs.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/msftc/common32_defs.h        
2017-12-24 09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/msftc/common32_defs.h        
2018-08-07 09:33:44.000000000 +0200
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2003-2011 Hewlett-Packard Development Company, L.P.
+ * Copyright (c) 2009-2018 Ivan Maidanski
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to 
deal
@@ -62,7 +63,7 @@
    LONG __cdecl _InterlockedCompareExchange(LONG volatile *,
                                         LONG /* Exchange */, LONG /* Comp */);
 #  ifdef __cplusplus
-     }
+     } /* extern "C" */
 #  endif
 # endif /* _MSC_VER < 1400 */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/sunc/sparc.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/sunc/sparc.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/sunc/sparc.h 2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/sunc/sparc.h 2018-08-07 
09:33:44.000000000 +0200
@@ -28,9 +28,17 @@
 /* Test_and_set location is just a byte.                */
 #include "../test_and_set_t_is_char.h"
 
+#ifdef __cplusplus
+  extern "C" {
+#endif
+
 extern AO_TS_VAL_t
 AO_test_and_set_full(volatile AO_TS_t *addr);
 /* Implemented in separate .S file, for now.    */
 #define AO_HAVE_test_and_set_full
 
 /* TODO: Like the gcc version, extend this for V8 and V9.   */
+
+#ifdef __cplusplus
+  } /* extern "C" */
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/sunc/x86.h 
new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/sunc/x86.h
--- old/libatomic_ops-7.6.2/src/atomic_ops/sysdeps/sunc/x86.h   2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/sunc/x86.h   2018-08-07 
09:33:44.000000000 +0200
@@ -2,7 +2,7 @@
  * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
  * Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
  * Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved.
- *
+ * Copyright (c) 2009-2016 Ivan Maidanski
  *
  * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/atomic_ops.h 
new/libatomic_ops-7.6.6/src/atomic_ops.h
--- old/libatomic_ops-7.6.2/src/atomic_ops.h    2017-12-24 09:31:12.000000000 
+0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops.h    2018-08-07 09:33:44.000000000 
+0200
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2003-2011 Hewlett-Packard Development Company, L.P.
+ * Copyright (c) 2008-2018 Ivan Maidanski
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to 
deal
@@ -285,72 +286,56 @@
     /* it might require specifying additional options (like -march)     */
     /* or additional link libraries (if -march is not specified).       */
 #   include "atomic_ops/sysdeps/gcc/x86.h"
-# endif /* __i386__ */
-# if defined(__x86_64__)
+# elif defined(__x86_64__)
 #   if AO_GNUC_PREREQ(4, 2) && !defined(AO_USE_SYNC_CAS_BUILTIN)
       /* It is safe to use __sync CAS built-in on this architecture.    */
 #     define AO_USE_SYNC_CAS_BUILTIN
 #   endif
 #   include "atomic_ops/sysdeps/gcc/x86.h"
-# endif /* __x86_64__ */
-# if defined(__ia64__)
+# elif defined(__ia64__)
 #   include "atomic_ops/sysdeps/gcc/ia64.h"
 #   define AO_GENERALIZE_TWICE
-# endif /* __ia64__ */
-# if defined(__hppa__)
+# elif defined(__hppa__)
 #   include "atomic_ops/sysdeps/gcc/hppa.h"
 #   define AO_CAN_EMUL_CAS
-# endif /* __hppa__ */
-# if defined(__alpha__)
+# elif defined(__alpha__)
 #   include "atomic_ops/sysdeps/gcc/alpha.h"
 #   define AO_GENERALIZE_TWICE
-# endif /* __alpha__ */
-# if defined(__s390__)
+# elif defined(__s390__)
 #   include "atomic_ops/sysdeps/gcc/s390.h"
-# endif /* __s390__ */
-# if defined(__sparc__)
+# elif defined(__sparc__)
 #   include "atomic_ops/sysdeps/gcc/sparc.h"
 #   define AO_CAN_EMUL_CAS
-# endif /* __sparc__ */
-# if defined(__m68k__)
+# elif defined(__m68k__)
 #   include "atomic_ops/sysdeps/gcc/m68k.h"
-# endif /* __m68k__ */
-# if defined(__nios2__)
-#   include "atomic_ops/sysdeps/gcc/nios2.h"
-# endif /* __nios2__ */
-# if defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) \
-     || defined(__powerpc64__) || defined(__ppc64__) \
-     || defined(_ARCH_PPC)
+# elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) \
+       || defined(__powerpc64__) || defined(__ppc64__) || defined(_ARCH_PPC)
 #   include "atomic_ops/sysdeps/gcc/powerpc.h"
-# endif /* __powerpc__ */
-# if defined(__aarch64__)
+# elif defined(__aarch64__)
 #   include "atomic_ops/sysdeps/gcc/aarch64.h"
 #   define AO_CAN_EMUL_CAS
-# endif /* __aarch64__ */
-# if defined(__arm__)
+# elif defined(__arm__)
 #   include "atomic_ops/sysdeps/gcc/arm.h"
 #   define AO_CAN_EMUL_CAS
-# endif /* __arm__ */
-# if defined(__cris__) || defined(CRIS)
+# elif defined(__cris__) || defined(CRIS)
 #   include "atomic_ops/sysdeps/gcc/cris.h"
 #   define AO_CAN_EMUL_CAS
 #   define AO_GENERALIZE_TWICE
-# endif
-# if defined(__mips__)
+# elif defined(__mips__)
 #   include "atomic_ops/sysdeps/gcc/mips.h"
-# endif /* __mips__ */
-# if defined(__sh__) || defined(SH4)
+# elif defined(__sh__) || defined(SH4)
 #   include "atomic_ops/sysdeps/gcc/sh.h"
 #   define AO_CAN_EMUL_CAS
-# endif /* __sh__ */
-# if defined(__avr32__)
+# elif defined(__avr32__)
 #   include "atomic_ops/sysdeps/gcc/avr32.h"
-# endif
-# if defined(__hexagon__)
+# elif defined(__hexagon__)
 #   include "atomic_ops/sysdeps/gcc/hexagon.h"
-# endif
-# if defined(__tile__)
+# elif defined(__riscv)
+#   include "atomic_ops/sysdeps/gcc/riscv.h"
+# elif defined(__tile__)
 #   include "atomic_ops/sysdeps/gcc/tile.h"
+# else /* __nios2__, etc. */
+#   include "atomic_ops/sysdeps/gcc/generic.h"
 # endif
 #endif /* __GNUC__ && !AO_USE_PTHREAD_DEFS */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/atomic_ops_malloc.c 
new/libatomic_ops-7.6.6/src/atomic_ops_malloc.c
--- old/libatomic_ops-7.6.2/src/atomic_ops_malloc.c     2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops_malloc.c     2018-08-07 
09:33:44.000000000 +0200
@@ -145,8 +145,9 @@
     if (zero_fd == -1)
       return 0;
 # endif
-  result = mmap(0, sz, PROT_READ | PROT_WRITE,
-                GC_MMAP_FLAGS | OPT_MAP_ANON, zero_fd, 0/* offset */);
+  result = (char *)mmap(0, sz, PROT_READ | PROT_WRITE,
+                        GC_MMAP_FLAGS | OPT_MAP_ANON,
+                        zero_fd, 0 /* offset */);
 # ifndef USE_MMAP_ANON
     close(zero_fd);
 # endif
@@ -361,7 +362,7 @@
             log_sz > LOG_MAX_SIZE ? (unsigned)log_sz : 1UL << log_sz);
 # endif
   if (AO_EXPECT_FALSE(log_sz > LOG_MAX_SIZE)) {
-    AO_free_large(p);
+    AO_free_large((char *)p);
   } else {
     ASAN_POISON_MEMORY_REGION(base + 1, ((size_t)1 << log_sz) - sizeof(AO_t));
     AO_stack_push(AO_free_list + log_sz, base);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/atomic_ops_malloc.h 
new/libatomic_ops-7.6.6/src/atomic_ops_malloc.h
--- old/libatomic_ops-7.6.2/src/atomic_ops_malloc.h     2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops_malloc.h     2018-08-07 
09:33:44.000000000 +0200
@@ -30,6 +30,10 @@
 
 #include <stddef.h> /* for size_t */
 
+#ifdef __cplusplus
+  extern "C" {
+#endif
+
 #ifdef AO_STACK_IS_LOCK_FREE
 # define AO_MALLOC_IS_LOCK_FREE
 #endif
@@ -70,4 +74,8 @@
 /* Allow use of mmap to grow the heap.  No-op on some platforms.        */
 void AO_malloc_enable_mmap(void);
 
+#ifdef __cplusplus
+  } /* extern "C" */
+#endif
+
 #endif /* !AO_MALLOC_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/atomic_ops_stack.c 
new/libatomic_ops-7.6.6/src/atomic_ops_stack.c
--- old/libatomic_ops-7.6.2/src/atomic_ops_stack.c      2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops_stack.c      2018-08-07 
09:33:44.000000000 +0200
@@ -225,7 +225,9 @@
 
 /* The functionality is the same as of AO_load_next but the atomicity   */
 /* is not needed.  The usage is similar to that of store_before_cas.    */
-#ifdef AO_THREAD_SANITIZER
+#if defined(AO_THREAD_SANITIZER) \
+    && (defined(AO_HAVE_compare_and_swap_double) \
+        || defined(AO_HAVE_compare_double_and_swap_double))
   /* TODO: If compiled by Clang (as of clang-4.0) with -O3 flag,        */
   /* no_sanitize attribute is ignored unless the argument is volatile.  */
 # if defined(__clang__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/src/atomic_ops_stack.h 
new/libatomic_ops-7.6.6/src/atomic_ops_stack.h
--- old/libatomic_ops-7.6.2/src/atomic_ops_stack.h      2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/src/atomic_ops_stack.h      2018-08-07 
09:33:44.000000000 +0200
@@ -31,6 +31,10 @@
 
 #include "atomic_ops.h"
 
+#ifdef __cplusplus
+  extern "C" {
+#endif
+
 #ifdef AO_USE_ALMOST_LOCK_FREE
   /* Use the almost-non-blocking implementation regardless of the       */
   /* double-word CAS availability.                                      */
@@ -154,7 +158,13 @@
 #ifndef AO_HAVE_double_t
   /* Can happen if we're using CAS emulation, since we don't want to    */
   /* force that here, in case other atomic_ops clients don't want it.   */
+# ifdef __cplusplus
+    } /* extern "C" */
+# endif
 # include "atomic_ops/sysdeps/standard_ao_double_t.h"
+# ifdef __cplusplus
+    extern "C" {
+# endif
 #endif
 
 typedef volatile AO_double_t AO_stack_t;
@@ -191,4 +201,8 @@
 # define AO_HAVE_stack_pop
 #endif
 
+#ifdef __cplusplus
+  } /* extern "C" */
+#endif
+
 #endif /* !AO_STACK_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/tests/list_atomic.c 
new/libatomic_ops-7.6.6/tests/list_atomic.c
--- old/libatomic_ops-7.6.2/tests/list_atomic.c 2017-12-24 09:32:27.000000000 
+0100
+++ new/libatomic_ops-7.6.6/tests/list_atomic.c 2018-08-07 09:34:45.000000000 
+0200
@@ -34,7 +34,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add) || defined(AO_HAVE_and) \
      || defined(AO_HAVE_or) || defined(AO_HAVE_xor)
@@ -155,7 +155,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add_release) || defined(AO_HAVE_and_release) \
      || defined(AO_HAVE_or_release) || defined(AO_HAVE_xor_release)
@@ -276,7 +276,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add_acquire) || defined(AO_HAVE_and_acquire) \
      || defined(AO_HAVE_or_acquire) || defined(AO_HAVE_xor_acquire)
@@ -397,7 +397,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add_read) || defined(AO_HAVE_and_read) \
      || defined(AO_HAVE_or_read) || defined(AO_HAVE_xor_read)
@@ -518,7 +518,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add_write) || defined(AO_HAVE_and_write) \
      || defined(AO_HAVE_or_write) || defined(AO_HAVE_xor_write)
@@ -639,7 +639,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_full)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add_full) || defined(AO_HAVE_and_full) \
      || defined(AO_HAVE_or_full) || defined(AO_HAVE_xor_full)
@@ -760,7 +760,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add_release_write) || 
defined(AO_HAVE_and_release_write) \
      || defined(AO_HAVE_or_release_write) || defined(AO_HAVE_xor_release_write)
@@ -881,7 +881,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add_acquire_read) || 
defined(AO_HAVE_and_acquire_read) \
      || defined(AO_HAVE_or_acquire_read) || defined(AO_HAVE_xor_acquire_read)
@@ -1002,7 +1002,7 @@
     static AO_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_dd_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_fetch_and_add_dd_acquire_read) || 
defined(AO_HAVE_and_dd_acquire_read) \
      || defined(AO_HAVE_or_dd_acquire_read) || 
defined(AO_HAVE_xor_dd_acquire_read)
@@ -1123,7 +1123,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add) || defined(AO_HAVE_char_and) \
      || defined(AO_HAVE_char_or) || defined(AO_HAVE_char_xor)
@@ -1244,7 +1244,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add_release) || 
defined(AO_HAVE_char_and_release) \
      || defined(AO_HAVE_char_or_release) || defined(AO_HAVE_char_xor_release)
@@ -1365,7 +1365,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add_acquire) || 
defined(AO_HAVE_char_and_acquire) \
      || defined(AO_HAVE_char_or_acquire) || defined(AO_HAVE_char_xor_acquire)
@@ -1486,7 +1486,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add_read) || 
defined(AO_HAVE_char_and_read) \
      || defined(AO_HAVE_char_or_read) || defined(AO_HAVE_char_xor_read)
@@ -1607,7 +1607,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add_write) || 
defined(AO_HAVE_char_and_write) \
      || defined(AO_HAVE_char_or_write) || defined(AO_HAVE_char_xor_write)
@@ -1728,7 +1728,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_full)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add_full) || 
defined(AO_HAVE_char_and_full) \
      || defined(AO_HAVE_char_or_full) || defined(AO_HAVE_char_xor_full)
@@ -1849,7 +1849,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add_release_write) || 
defined(AO_HAVE_char_and_release_write) \
      || defined(AO_HAVE_char_or_release_write) || 
defined(AO_HAVE_char_xor_release_write)
@@ -1970,7 +1970,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add_acquire_read) || 
defined(AO_HAVE_char_and_acquire_read) \
      || defined(AO_HAVE_char_or_acquire_read) || 
defined(AO_HAVE_char_xor_acquire_read)
@@ -2091,7 +2091,7 @@
     static unsigned/**/char newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_dd_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_char_fetch_and_add_dd_acquire_read) || 
defined(AO_HAVE_char_and_dd_acquire_read) \
      || defined(AO_HAVE_char_or_dd_acquire_read) || 
defined(AO_HAVE_char_xor_dd_acquire_read)
@@ -2212,7 +2212,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add) || defined(AO_HAVE_short_and) \
      || defined(AO_HAVE_short_or) || defined(AO_HAVE_short_xor)
@@ -2333,7 +2333,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add_release) || 
defined(AO_HAVE_short_and_release) \
      || defined(AO_HAVE_short_or_release) || defined(AO_HAVE_short_xor_release)
@@ -2454,7 +2454,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add_acquire) || 
defined(AO_HAVE_short_and_acquire) \
      || defined(AO_HAVE_short_or_acquire) || defined(AO_HAVE_short_xor_acquire)
@@ -2575,7 +2575,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add_read) || 
defined(AO_HAVE_short_and_read) \
      || defined(AO_HAVE_short_or_read) || defined(AO_HAVE_short_xor_read)
@@ -2696,7 +2696,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add_write) || 
defined(AO_HAVE_short_and_write) \
      || defined(AO_HAVE_short_or_write) || defined(AO_HAVE_short_xor_write)
@@ -2817,7 +2817,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_full)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add_full) || 
defined(AO_HAVE_short_and_full) \
      || defined(AO_HAVE_short_or_full) || defined(AO_HAVE_short_xor_full)
@@ -2938,7 +2938,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add_release_write) || 
defined(AO_HAVE_short_and_release_write) \
      || defined(AO_HAVE_short_or_release_write) || 
defined(AO_HAVE_short_xor_release_write)
@@ -3059,7 +3059,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add_acquire_read) || 
defined(AO_HAVE_short_and_acquire_read) \
      || defined(AO_HAVE_short_or_acquire_read) || 
defined(AO_HAVE_short_xor_acquire_read)
@@ -3180,7 +3180,7 @@
     static unsigned/**/short newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_dd_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_short_fetch_and_add_dd_acquire_read) || 
defined(AO_HAVE_short_and_dd_acquire_read) \
      || defined(AO_HAVE_short_or_dd_acquire_read) || 
defined(AO_HAVE_short_xor_dd_acquire_read)
@@ -3301,7 +3301,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add) || defined(AO_HAVE_int_and) \
      || defined(AO_HAVE_int_or) || defined(AO_HAVE_int_xor)
@@ -3422,7 +3422,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add_release) || 
defined(AO_HAVE_int_and_release) \
      || defined(AO_HAVE_int_or_release) || defined(AO_HAVE_int_xor_release)
@@ -3543,7 +3543,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add_acquire) || 
defined(AO_HAVE_int_and_acquire) \
      || defined(AO_HAVE_int_or_acquire) || defined(AO_HAVE_int_xor_acquire)
@@ -3664,7 +3664,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add_read) || defined(AO_HAVE_int_and_read) \
      || defined(AO_HAVE_int_or_read) || defined(AO_HAVE_int_xor_read)
@@ -3785,7 +3785,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add_write) || 
defined(AO_HAVE_int_and_write) \
      || defined(AO_HAVE_int_or_write) || defined(AO_HAVE_int_xor_write)
@@ -3906,7 +3906,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_full)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add_full) || defined(AO_HAVE_int_and_full) \
      || defined(AO_HAVE_int_or_full) || defined(AO_HAVE_int_xor_full)
@@ -4027,7 +4027,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add_release_write) || 
defined(AO_HAVE_int_and_release_write) \
      || defined(AO_HAVE_int_or_release_write) || 
defined(AO_HAVE_int_xor_release_write)
@@ -4148,7 +4148,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add_acquire_read) || 
defined(AO_HAVE_int_and_acquire_read) \
      || defined(AO_HAVE_int_or_acquire_read) || 
defined(AO_HAVE_int_xor_acquire_read)
@@ -4269,7 +4269,7 @@
     static unsigned newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_dd_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_int_fetch_and_add_dd_acquire_read) || 
defined(AO_HAVE_int_and_dd_acquire_read) \
      || defined(AO_HAVE_int_or_dd_acquire_read) || 
defined(AO_HAVE_int_xor_dd_acquire_read)
@@ -4390,7 +4390,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add) || defined(AO_HAVE_double_and) \
      || defined(AO_HAVE_double_or) || defined(AO_HAVE_double_xor)
@@ -4511,7 +4511,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add_release) || 
defined(AO_HAVE_double_and_release) \
      || defined(AO_HAVE_double_or_release) || 
defined(AO_HAVE_double_xor_release)
@@ -4632,7 +4632,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add_acquire) || 
defined(AO_HAVE_double_and_acquire) \
      || defined(AO_HAVE_double_or_acquire) || 
defined(AO_HAVE_double_xor_acquire)
@@ -4753,7 +4753,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add_read) || 
defined(AO_HAVE_double_and_read) \
      || defined(AO_HAVE_double_or_read) || defined(AO_HAVE_double_xor_read)
@@ -4874,7 +4874,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add_write) || 
defined(AO_HAVE_double_and_write) \
      || defined(AO_HAVE_double_or_write) || defined(AO_HAVE_double_xor_write)
@@ -4995,7 +4995,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_full)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add_full) || 
defined(AO_HAVE_double_and_full) \
      || defined(AO_HAVE_double_or_full) || defined(AO_HAVE_double_xor_full)
@@ -5116,7 +5116,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_release_write)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add_release_write) || 
defined(AO_HAVE_double_and_release_write) \
      || defined(AO_HAVE_double_or_release_write) || 
defined(AO_HAVE_double_xor_release_write)
@@ -5237,7 +5237,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add_acquire_read) || 
defined(AO_HAVE_double_and_acquire_read) \
      || defined(AO_HAVE_double_or_acquire_read) || 
defined(AO_HAVE_double_xor_acquire_read)
@@ -5358,7 +5358,7 @@
     static AO_double_t newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_set_dd_acquire_read)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_double_fetch_and_add_dd_acquire_read) || 
defined(AO_HAVE_double_and_dd_acquire_read) \
      || defined(AO_HAVE_double_or_dd_acquire_read) || 
defined(AO_HAVE_double_xor_dd_acquire_read)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/tests/list_atomic.template 
new/libatomic_ops-7.6.6/tests/list_atomic.template
--- old/libatomic_ops-7.6.2/tests/list_atomic.template  2017-12-24 
09:31:12.000000000 +0100
+++ new/libatomic_ops-7.6.6/tests/list_atomic.template  2018-08-07 
09:33:44.000000000 +0200
@@ -33,7 +33,7 @@
     static XCTYPE newval /* = 0 */;
 # endif
 # if defined(AO_HAVE_test_and_setXX)
-    AO_TS_t ts;
+    AO_TS_t ts = AO_TS_INITIALIZER;
 # endif
 # if defined(AO_HAVE_XSIZE_fetch_and_addXX) || defined(AO_HAVE_XSIZE_andXX) \
      || defined(AO_HAVE_XSIZE_orXX) || defined(AO_HAVE_XSIZE_xorXX)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/tests/test_atomic.c 
new/libatomic_ops-7.6.6/tests/test_atomic.c
--- old/libatomic_ops-7.6.2/tests/test_atomic.c 2017-12-24 09:31:12.000000000 
+0100
+++ new/libatomic_ops-7.6.6/tests/test_atomic.c 2018-08-07 09:33:44.000000000 
+0200
@@ -15,7 +15,8 @@
 # include "config.h"
 #endif
 
-#if defined(AO_NO_PTHREADS) && defined(AO_USE_PTHREAD_DEFS)
+#if (defined(AO_NO_PTHREADS) || defined(__MINGW32__)) \
+    && defined(AO_USE_PTHREAD_DEFS)
 # include <stdio.h>
 
   int main(void)
@@ -187,6 +188,10 @@
      || defined(AO_USE_NO_SIGNALS) || defined(AO_USE_WIN32_PTHREADS)) \
     && defined(AO_TEST_EMULATION)
 
+# ifdef __cplusplus
+    extern "C" {
+# endif
+
   void AO_store_full_emulation(volatile AO_t *addr, AO_t val);
   AO_t AO_fetch_compare_and_swap_emulation(volatile AO_t *addr, AO_t old_val,
                                            AO_t new_val);
@@ -196,6 +201,10 @@
                                                 AO_t new_val1, AO_t new_val2);
 # endif
 
+# ifdef __cplusplus
+    } /* extern "C" */
+# endif
+
   void test_atomic_emulation(void)
   {
     AO_t x;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/tests/test_malloc.c 
new/libatomic_ops-7.6.6/tests/test_malloc.c
--- old/libatomic_ops-7.6.2/tests/test_malloc.c 2017-12-24 09:31:12.000000000 
+0100
+++ new/libatomic_ops-7.6.6/tests/test_malloc.c 2018-08-07 09:33:44.000000000 
+0200
@@ -81,7 +81,7 @@
   int * extras;
   unsigned i;
 
-  result = AO_malloc(sizeof(ln) + sizeof(int)*my_extra);
+  result = (ln *)AO_malloc(sizeof(ln) + sizeof(int)*my_extra);
   if (result == 0)
     {
       fprintf(stderr, "Out of memory\n");
@@ -170,7 +170,7 @@
 void * run_one_test(void * arg) {
   ln * x = make_list(1, LIST_LENGTH);
   int i;
-  char *p = AO_malloc(LARGE_OBJ_SIZE);
+  char *p = (char *)AO_malloc(LARGE_OBJ_SIZE);
   char *q;
   char a = 'a' + ((int)((AO_PTRDIFF_T)arg) * 2) % ('z' - 'a' + 1);
   char b = a + 1;
@@ -185,7 +185,7 @@
 #   endif
   } else {
     p[0] = p[LARGE_OBJ_SIZE/2] = p[LARGE_OBJ_SIZE-1] = a;
-    q = AO_malloc(LARGE_OBJ_SIZE);
+    q = (char *)AO_malloc(LARGE_OBJ_SIZE);
     if (q == 0)
       {
         fprintf(stderr, "Out of memory\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.2/tests/test_stack.c 
new/libatomic_ops-7.6.6/tests/test_stack.c
--- old/libatomic_ops-7.6.2/tests/test_stack.c  2017-12-24 09:31:12.000000000 
+0100
+++ new/libatomic_ops-7.6.6/tests/test_stack.c  2018-08-07 09:33:44.000000000 
+0200
@@ -91,7 +91,7 @@
   list_element * le;
   if (n == 0) return;
   add_elements(n-1);
-  le = malloc(sizeof(list_element));
+  le = (list_element *)malloc(sizeof(list_element));
   if (le == 0)
     {
       fprintf(stderr, "Out of memory\n");


Reply via email to