Hello community,

here is the log from the commit of package libatomic_ops for openSUSE:Factory 
checked in at 2019-01-15 09:08:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libatomic_ops (Old)
 and      /work/SRC/openSUSE:Factory/.libatomic_ops.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libatomic_ops"

Tue Jan 15 09:08:24 2019 rev:12 rq:663508 version:7.6.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/libatomic_ops/libatomic_ops.changes      
2018-11-05 22:48:16.860595388 +0100
+++ /work/SRC/openSUSE:Factory/.libatomic_ops.new.28833/libatomic_ops.changes   
2019-01-15 09:08:25.690676346 +0100
@@ -1,0 +2,6 @@
+Tue Jan  8 02:26:25 UTC 2019 - Jan Engelhardt <jeng...@inai.de>
+
+- Update to new upstream release 7.6.8
+  * Support aarch64-ilp32 (GCC) target
+
+-------------------------------------------------------------------

Old:
----
  libatomic_ops-7.6.6.tar.gz

New:
----
  libatomic_ops-7.6.8.tar.gz

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

Other differences:
------------------
++++++ libatomic_ops.spec ++++++
--- /var/tmp/diff_new_pack.yylPdp/_old  2019-01-15 09:08:26.170675906 +0100
+++ /var/tmp/diff_new_pack.yylPdp/_new  2019-01-15 09:08:26.170675906 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libatomic_ops
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           libatomic_ops
-Version:        7.6.6
+Version:        7.6.8
 Release:        0
 Summary:        A portable library for atomic memory operations
 License:        GPL-2.0-or-later AND MIT

++++++ libatomic_ops-7.6.6.tar.gz -> libatomic_ops-7.6.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/AUTHORS 
new/libatomic_ops-7.6.8/AUTHORS
--- old/libatomic_ops-7.6.6/AUTHORS     2018-08-07 09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/AUTHORS     2018-12-11 09:52:06.000000000 +0100
@@ -46,6 +46,7 @@
 Shea Levy <s...@shealevy.com>
 Steve Capper <steve.cap...@linaro.org>
 Takashi Yoshii <takashi.yoshii...@renesas.com>
+Tautvydas Zilys <tautvydas.zi...@gmail.com>
 Thiemo Seufer <ica2...@csv.ica.uni-stuttgart.de>
 Thorsten Glaser <t...@debian.org>
 Tobias Leich <em...@froggs.de>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/ChangeLog 
new/libatomic_ops-7.6.8/ChangeLog
--- old/libatomic_ops-7.6.6/ChangeLog   2018-08-07 09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/ChangeLog   2018-12-11 09:52:06.000000000 +0100
@@ -1,4 +1,16 @@
 
+== [7.6.8] 2018-12-11 ==
+
+* Eliminate 'casting signed to bigger unsigned int' CSA warning (test_stack)
+* Eliminate 'redundant blank line at start/end of block' CodeFactor warning
+* Fix 'Cannot implement CAS_full on this architecture' build error (nios2)
+* Fix a typo in arm_v6.h
+* Support aarch64-ilp32 (GCC) and UWP/arm64 (MS VC) targets
+* Undefine AO_ARM_HAVE_* private macros after their usage
+* Use standalone private macro to guard against AO_GCC_BARRIER redefinition
+* Workaround 'condition my_chunk_ptr is always false' cppcheck false positive
+
+
 == [7.6.6] 2018-08-07 ==
 
 * COPYING: sync with FSF's gpl-2.0.txt
@@ -130,6 +142,15 @@
 Also, includes 7.4.6 changes
 
 
+== [7.4.12] 2018-12-11 ==
+
+* COPYING: sync with FSF's gpl-2.0.txt
+* Fix a typo in arm_v6.h
+* Fix a typo in the overview section of README
+* Support ILP32 in AArch64 assembly routines (GCC)
+* Support UWP/arm64 target
+
+
 == [7.4.10] 2017-12-22 ==
 
 * Fix AO_malloc for sizes near CHUNK_SIZE
@@ -333,6 +354,11 @@
 Also, includes 7.2 changes
 
 
+== [7.2j] (not released yet) ==
+
+* Fix a typo in arm_v6.h
+
+
 == [7.2i] 2017-12-21 ==
 
 * Fix 'missing select.h', 'undefined sigprocmask' compiler errors (Hexagon)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/README.md 
new/libatomic_ops-7.6.8/README.md
--- old/libatomic_ops-7.6.6/README.md   2018-08-07 09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/README.md   2018-12-11 09:52:06.000000000 +0100
@@ -2,7 +2,7 @@
 
 IN NEW CODE, PLEASE USE C11 OR C++14 STANDARD ATOMICS INSTEAD OF THIS PACKAGE.
 
-This is version 7.6.6 of libatomic_ops.
+This is version 7.6.8 of libatomic_ops.
 
 
 ## Download
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/configure 
new/libatomic_ops-7.6.8/configure
--- old/libatomic_ops-7.6.6/configure   2018-08-07 09:34:42.000000000 +0200
+++ new/libatomic_ops-7.6.8/configure   2018-12-11 09:53:10.000000000 +0100
@@ -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.6.
+# Generated by GNU Autoconf 2.69 for libatomic_ops 7.6.8.
 #
 # 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.6'
-PACKAGE_STRING='libatomic_ops 7.6.6'
+PACKAGE_VERSION='7.6.8'
+PACKAGE_STRING='libatomic_ops 7.6.8'
 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.6 to adapt to many kinds of systems.
+\`configure' configures libatomic_ops 7.6.8 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.6:";;
+     short | recursive ) echo "Configuration of libatomic_ops 7.6.8:";;
    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.6
+libatomic_ops configure 7.6.8
 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.6, which was
+It was created by libatomic_ops $as_me 7.6.8, 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.6'
+ VERSION='7.6.8'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13168,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.6, which was
+This file was extended by libatomic_ops $as_me 7.6.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13234,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.6
+libatomic_ops config.status 7.6.8
 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.6/configure.ac 
new/libatomic_ops-7.6.8/configure.ac
--- old/libatomic_ops-7.6.6/configure.ac        2018-08-07 09:33:44.000000000 
+0200
+++ new/libatomic_ops-7.6.8/configure.ac        2018-12-11 09:52:06.000000000 
+0100
@@ -12,7 +12,7 @@
 
 dnl Process this file with autoconf to produce configure.
 
-AC_INIT([libatomic_ops],[7.6.6],https://github.com/ivmai/libatomic_ops/issues)
+AC_INIT([libatomic_ops],[7.6.8],https://github.com/ivmai/libatomic_ops/issues)
 
 AC_PREREQ(2.61)
 AC_CANONICAL_TARGET([])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/src/atomic_ops/ao_version.h 
new/libatomic_ops-7.6.8/src/atomic_ops/ao_version.h
--- old/libatomic_ops-7.6.6/src/atomic_ops/ao_version.h 2018-08-07 
09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/src/atomic_ops/ao_version.h 2018-12-11 
09:52:06.000000000 +0100
@@ -35,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 6 /* 7.6.6 */
+#define AO_VERSION_MICRO 8 /* 7.6.8 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/armcc/arm_v6.h 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/armcc/arm_v6.h
--- old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/armcc/arm_v6.h       
2018-08-07 09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/armcc/arm_v6.h       
2018-12-11 09:52:06.000000000 +0100
@@ -52,8 +52,8 @@
 {
 # ifndef AO_UNIPROCESSOR
     unsigned int dest=0;
-    /* issue an data memory barrier (keeps ordering of memory transactions */
-    /* before and after this operation)                                    */
+    /* Issue a data memory barrier (keeps ordering of memory transactions  */
+    /* before and after this operation).                                   */
     __asm {
             mcr p15,0,dest,c7,c10,5
             };
@@ -100,7 +100,6 @@
 #ifndef AO_PREFER_GENERALIZED
 AO_INLINE AO_TS_VAL_t
 AO_test_and_set(volatile AO_TS_t *addr) {
-
         AO_TS_VAL_t oldval;
         unsigned long tmp;
         unsigned long one = 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/aarch64.h 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/gcc/aarch64.h
--- old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/aarch64.h        
2018-08-07 09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/gcc/aarch64.h        
2018-12-11 09:52:06.000000000 +0100
@@ -39,7 +39,8 @@
 /* word require -latomic, are not lock-free and cause test_stack        */
 /* failure, so the asm-based implementation is used for now.            */
 /* TODO: Update it for newer GCC releases. */
-#if !defined(__clang__) || defined(AO_AARCH64_ASM_LOAD_STORE_CAS)
+#if (!defined(__ILP32__) && !defined(__clang__)) \
+    || defined(AO_AARCH64_ASM_LOAD_STORE_CAS)
 
 # ifndef AO_PREFER_GENERALIZED
     AO_INLINE AO_double_t
@@ -52,8 +53,13 @@
       /* single-copy atomic (unlike LDREXD for 32-bit ARM).             */
       do {
         __asm__ __volatile__("//AO_double_load\n"
-        "       ldxp  %0, %1, %3\n"
-        "       stxp %w2, %0, %1, %3"
+#       ifdef __ILP32__
+          "       ldxp  %w0, %w1, %3\n"
+          "       stxp %w2, %w0, %w1, %3"
+#       else
+          "       ldxp  %0, %1, %3\n"
+          "       stxp %w2, %0, %1, %3"
+#       endif
         : "=&r" (result.AO_val1), "=&r" (result.AO_val2), "=&r" (status)
         : "Q" (*addr));
       } while (AO_EXPECT_FALSE(status));
@@ -69,8 +75,13 @@
 
       do {
         __asm__ __volatile__("//AO_double_load_acquire\n"
-        "       ldaxp  %0, %1, %3\n"
-        "       stxp %w2, %0, %1, %3"
+#       ifdef __ILP32__
+          "       ldaxp  %w0, %w1, %3\n"
+          "       stxp %w2, %w0, %w1, %3"
+#       else
+          "       ldaxp  %0, %1, %3\n"
+          "       stxp %w2, %0, %1, %3"
+#       endif
         : "=&r" (result.AO_val1), "=&r" (result.AO_val2), "=&r" (status)
         : "Q" (*addr));
       } while (AO_EXPECT_FALSE(status));
@@ -86,8 +97,13 @@
 
       do {
         __asm__ __volatile__("//AO_double_store\n"
-        "       ldxp  %0, %1, %3\n"
-        "       stxp %w2, %4, %5, %3"
+#       ifdef __ILP32__
+          "       ldxp  %w0, %w1, %3\n"
+          "       stxp %w2, %w4, %w5, %3"
+#       else
+          "       ldxp  %0, %1, %3\n"
+          "       stxp %w2, %4, %5, %3"
+#       endif
         : "=&r" (old_val.AO_val1), "=&r" (old_val.AO_val2), "=&r" (status),
           "=Q" (*addr)
         : "r" (value.AO_val1), "r" (value.AO_val2));
@@ -106,8 +122,13 @@
 
       do {
         __asm__ __volatile__("//AO_double_store_release\n"
-        "       ldxp  %0, %1, %3\n"
-        "       stlxp %w2, %4, %5, %3"
+#       ifdef __ILP32__
+          "       ldxp  %w0, %w1, %3\n"
+          "       stlxp %w2, %w4, %w5, %3"
+#       else
+          "       ldxp  %0, %1, %3\n"
+          "       stlxp %w2, %4, %5, %3"
+#       endif
         : "=&r" (old_val.AO_val1), "=&r" (old_val.AO_val2), "=&r" (status),
           "=Q" (*addr)
         : "r" (value.AO_val1), "r" (value.AO_val2));
@@ -125,13 +146,21 @@
 
     do {
       __asm__ __volatile__("//AO_double_compare_and_swap\n"
-        "       ldxp  %0, %1, %2\n"
+#       ifdef __ILP32__
+          "       ldxp  %w0, %w1, %2\n"
+#       else
+          "       ldxp  %0, %1, %2\n"
+#       endif
         : "=&r" (tmp.AO_val1), "=&r" (tmp.AO_val2)
         : "Q" (*addr));
       if (tmp.AO_val1 != old_val.AO_val1 || tmp.AO_val2 != old_val.AO_val2)
         break;
       __asm__ __volatile__(
-        "       stxp %w0, %2, %3, %1\n"
+#       ifdef __ILP32__
+          "       stxp %w0, %w2, %w3, %1\n"
+#       else
+          "       stxp %w0, %2, %3, %1\n"
+#       endif
         : "=&r" (result), "=Q" (*addr)
         : "r" (new_val.AO_val1), "r" (new_val.AO_val2));
     } while (AO_EXPECT_FALSE(result));
@@ -148,13 +177,21 @@
 
     do {
       __asm__ __volatile__("//AO_double_compare_and_swap_acquire\n"
-        "       ldaxp  %0, %1, %2\n"
+#       ifdef __ILP32__
+          "       ldaxp  %w0, %w1, %2\n"
+#       else
+          "       ldaxp  %0, %1, %2\n"
+#       endif
         : "=&r" (tmp.AO_val1), "=&r" (tmp.AO_val2)
         : "Q" (*addr));
       if (tmp.AO_val1 != old_val.AO_val1 || tmp.AO_val2 != old_val.AO_val2)
         break;
       __asm__ __volatile__(
-        "       stxp %w0, %2, %3, %1\n"
+#       ifdef __ILP32__
+          "       stxp %w0, %w2, %w3, %1\n"
+#       else
+          "       stxp %w0, %2, %3, %1\n"
+#       endif
         : "=&r" (result), "=Q" (*addr)
         : "r" (new_val.AO_val1), "r" (new_val.AO_val2));
     } while (AO_EXPECT_FALSE(result));
@@ -171,13 +208,21 @@
 
     do {
       __asm__ __volatile__("//AO_double_compare_and_swap_release\n"
-        "       ldxp  %0, %1, %2\n"
+#       ifdef __ILP32__
+          "       ldxp  %w0, %w1, %2\n"
+#       else
+          "       ldxp  %0, %1, %2\n"
+#       endif
         : "=&r" (tmp.AO_val1), "=&r" (tmp.AO_val2)
         : "Q" (*addr));
       if (tmp.AO_val1 != old_val.AO_val1 || tmp.AO_val2 != old_val.AO_val2)
         break;
       __asm__ __volatile__(
-        "       stlxp %w0, %2, %3, %1\n"
+#       ifdef __ILP32__
+          "       stlxp %w0, %w2, %w3, %1\n"
+#       else
+          "       stlxp %w0, %2, %3, %1\n"
+#       endif
         : "=&r" (result), "=Q" (*addr)
         : "r" (new_val.AO_val1), "r" (new_val.AO_val2));
     } while (AO_EXPECT_FALSE(result));
@@ -194,13 +239,21 @@
 
     do {
       __asm__ __volatile__("//AO_double_compare_and_swap_full\n"
-        "       ldaxp  %0, %1, %2\n"
+#       ifdef __ILP32__
+          "       ldaxp  %w0, %w1, %2\n"
+#       else
+          "       ldaxp  %0, %1, %2\n"
+#       endif
         : "=&r" (tmp.AO_val1), "=&r" (tmp.AO_val2)
         : "Q" (*addr));
       if (tmp.AO_val1 != old_val.AO_val1 || tmp.AO_val2 != old_val.AO_val2)
         break;
       __asm__ __volatile__(
-        "       stlxp %w0, %2, %3, %1\n"
+#       ifdef __ILP32__
+          "       stlxp %w0, %w2, %w3, %1\n"
+#       else
+          "       stlxp %w0, %2, %3, %1\n"
+#       endif
         : "=&r" (result), "=Q" (*addr)
         : "r" (new_val.AO_val1), "r" (new_val.AO_val2));
     } while (AO_EXPECT_FALSE(result));
@@ -208,11 +261,13 @@
   }
 # define AO_HAVE_double_compare_and_swap_full
 
-#endif /* !__clang__ || AO_AARCH64_ASM_LOAD_STORE_CAS */
+#endif /* !__ILP32__ && !__clang__ || AO_AARCH64_ASM_LOAD_STORE_CAS */
 
-/* As of clang-5.0 and gcc-5.4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16     */
+/* As of clang-5.0 and gcc-8.1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16     */
 /* macro is still missing (while the double-word CAS is available).     */
-# define AO_GCC_HAVE_double_SYNC_CAS
+# ifndef __ILP32__
+#   define AO_GCC_HAVE_double_SYNC_CAS
+# endif
 
 #endif /* !__clang__ || AO_CLANG_PREREQ(3, 9) */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/arm.h 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/gcc/arm.h
--- old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/gcc/arm.h    2018-08-07 
09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/gcc/arm.h    2018-12-11 
09:52:06.000000000 +0100
@@ -719,6 +719,11 @@
 
 #endif /* AO_GCC_ATOMIC_TEST_AND_SET */
 
+#undef AO_ARM_HAVE_DMB
+#undef AO_ARM_HAVE_LDREX
+#undef AO_ARM_HAVE_LDREXBH
+#undef AO_ARM_HAVE_LDREXD
+#undef AO_ARM_HAVE_SWP
 #undef AO_BR_ALIGN
 #undef AO_MASK_PTR
 #undef AO_SKIPATOMIC_ANY_and_ANY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/hpc/ia64.h 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/hpc/ia64.h
--- old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/hpc/ia64.h   2018-08-07 
09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/hpc/ia64.h   2018-12-11 
09:52:06.000000000 +0100
@@ -100,7 +100,6 @@
   _Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
   return _Asm_cmpxchg(AO_T_SIZE, _SEM_REL, addr,
                       new_val, _LDHINT_NONE, _UP_MEM_FENCE);
-
 }
 #define AO_HAVE_fetch_compare_and_swap_release
 
@@ -111,7 +110,6 @@
   _Asm_mov_to_ar(_AREG_CCV, old_val, _DOWN_MEM_FENCE);
   return _Asm_cmpxchg(_SZ_B, _SEM_ACQ, addr,
                       new_val, _LDHINT_NONE, _DOWN_MEM_FENCE);
-
 }
 #define AO_HAVE_char_fetch_compare_and_swap_acquire
 
@@ -122,7 +120,6 @@
   _Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
   return _Asm_cmpxchg(_SZ_B, _SEM_REL, addr,
                       new_val, _LDHINT_NONE, _UP_MEM_FENCE);
-
 }
 #define AO_HAVE_char_fetch_compare_and_swap_release
 
@@ -134,7 +131,6 @@
   _Asm_mov_to_ar(_AREG_CCV, old_val, _DOWN_MEM_FENCE);
   return _Asm_cmpxchg(_SZ_B, _SEM_ACQ, addr,
                       new_val, _LDHINT_NONE, _DOWN_MEM_FENCE);
-
 }
 #define AO_HAVE_short_fetch_compare_and_swap_acquire
 
@@ -146,7 +142,6 @@
   _Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
   return _Asm_cmpxchg(_SZ_B, _SEM_REL, addr,
                       new_val, _LDHINT_NONE, _UP_MEM_FENCE);
-
 }
 #define AO_HAVE_short_fetch_compare_and_swap_release
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h
 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h
--- 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h
 2018-08-07 09:33:44.000000000 +0200
+++ 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h
 2018-12-11 09:52:06.000000000 +0100
@@ -31,13 +31,14 @@
 /* subexpressions across a volatile load; hence, we now add compiler    */
 /* barriers for gcc.                                                    */
 
-#ifndef AO_GCC_BARRIER
+#ifndef AO_HAVE_GCC_BARRIER
   /* TODO: Check GCC version (if workaround not needed for modern GCC). */
 # if defined(__GNUC__)
 #   define AO_GCC_BARRIER() AO_compiler_barrier()
 # else
 #   define AO_GCC_BARRIER() (void)0
 # endif
+# define AO_HAVE_GCC_BARRIER
 #endif
 
 AO_INLINE AO_t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.template
 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.template
--- 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.template
  2018-08-07 09:33:44.000000000 +0200
+++ 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.template
  2018-12-11 09:52:06.000000000 +0100
@@ -31,13 +31,14 @@
 /* subexpressions across a volatile load; hence, we now add compiler    */
 /* barriers for gcc.                                                    */
 
-#ifndef AO_GCC_BARRIER
+#ifndef AO_HAVE_GCC_BARRIER
   /* TODO: Check GCC version (if workaround not needed for modern GCC). */
 # if defined(__GNUC__)
 #   define AO_GCC_BARRIER() AO_compiler_barrier()
 # else
 #   define AO_GCC_BARRIER() (void)0
 # endif
+# define AO_HAVE_GCC_BARRIER
 #endif
 
 AO_INLINE XCTYPE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h
 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h
--- 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h
    2018-08-07 09:33:44.000000000 +0200
+++ 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h
    2018-12-11 09:52:06.000000000 +0100
@@ -31,13 +31,14 @@
 /* subexpressions across a volatile load; hence, we now add compiler    */
 /* barriers for gcc.                                                    */
 
-#ifndef AO_GCC_BARRIER
+#ifndef AO_HAVE_GCC_BARRIER
   /* TODO: Check GCC version (if workaround not needed for modern GCC). */
 # if defined(__GNUC__)
 #   define AO_GCC_BARRIER() AO_compiler_barrier()
 # else
 #   define AO_GCC_BARRIER() (void)0
 # endif
+# define AO_HAVE_GCC_BARRIER
 #endif
 
 AO_INLINE unsigned/**/char
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h
 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h
--- 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h
     2018-08-07 09:33:44.000000000 +0200
+++ 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h
     2018-12-11 09:52:06.000000000 +0100
@@ -31,13 +31,14 @@
 /* subexpressions across a volatile load; hence, we now add compiler    */
 /* barriers for gcc.                                                    */
 
-#ifndef AO_GCC_BARRIER
+#ifndef AO_HAVE_GCC_BARRIER
   /* TODO: Check GCC version (if workaround not needed for modern GCC). */
 # if defined(__GNUC__)
 #   define AO_GCC_BARRIER() AO_compiler_barrier()
 # else
 #   define AO_GCC_BARRIER() (void)0
 # endif
+# define AO_HAVE_GCC_BARRIER
 #endif
 
 AO_INLINE unsigned
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h
 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h
--- 
old/libatomic_ops-7.6.6/src/atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h
   2018-08-07 09:33:44.000000000 +0200
+++ 
new/libatomic_ops-7.6.8/src/atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h
   2018-12-11 09:52:06.000000000 +0100
@@ -31,13 +31,14 @@
 /* subexpressions across a volatile load; hence, we now add compiler    */
 /* barriers for gcc.                                                    */
 
-#ifndef AO_GCC_BARRIER
+#ifndef AO_HAVE_GCC_BARRIER
   /* TODO: Check GCC version (if workaround not needed for modern GCC). */
 # if defined(__GNUC__)
 #   define AO_GCC_BARRIER() AO_compiler_barrier()
 # else
 #   define AO_GCC_BARRIER() (void)0
 # endif
+# define AO_HAVE_GCC_BARRIER
 #endif
 
 AO_INLINE unsigned/**/short
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/src/atomic_ops.h 
new/libatomic_ops-7.6.8/src/atomic_ops.h
--- old/libatomic_ops-7.6.6/src/atomic_ops.h    2018-08-07 09:33:44.000000000 
+0200
+++ new/libatomic_ops-7.6.8/src/atomic_ops.h    2018-12-11 09:52:06.000000000 
+0100
@@ -330,11 +330,14 @@
 #   include "atomic_ops/sysdeps/gcc/avr32.h"
 # elif defined(__hexagon__)
 #   include "atomic_ops/sysdeps/gcc/hexagon.h"
+# elif defined(__nios2__)
+#   include "atomic_ops/sysdeps/gcc/generic.h"
+#   define AO_CAN_EMUL_CAS
 # elif defined(__riscv)
 #   include "atomic_ops/sysdeps/gcc/riscv.h"
 # elif defined(__tile__)
 #   include "atomic_ops/sysdeps/gcc/tile.h"
-# else /* __nios2__, etc. */
+# else /* etc. */
 #   include "atomic_ops/sysdeps/gcc/generic.h"
 # endif
 #endif /* __GNUC__ && !AO_USE_PTHREAD_DEFS */
@@ -380,7 +383,7 @@
 
 #if defined(_MSC_VER) || defined(__DMC__) || defined(__BORLANDC__) \
         || (defined(__WATCOMC__) && defined(__NT__))
-# if defined(_AMD64_) || defined(_M_X64)
+# if defined(_AMD64_) || defined(_M_X64) || defined(_M_ARM64)
 #   include "atomic_ops/sysdeps/msftc/x86_64.h"
 # elif defined(_M_IX86) || defined(x86)
 #   include "atomic_ops/sysdeps/msftc/x86.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/src/atomic_ops_malloc.c 
new/libatomic_ops-7.6.8/src/atomic_ops_malloc.c
--- old/libatomic_ops-7.6.6/src/atomic_ops_malloc.c     2018-08-07 
09:33:44.000000000 +0200
+++ new/libatomic_ops-7.6.8/src/atomic_ops_malloc.c     2018-12-11 
09:52:06.000000000 +0100
@@ -230,17 +230,17 @@
       }
 
     if (AO_EXPECT_FALSE(my_chunk_ptr - AO_initial_heap
-                        > AO_INITIAL_HEAP_SIZE - CHUNK_SIZE))
+                        > AO_INITIAL_HEAP_SIZE - CHUNK_SIZE)) {
+      /* We failed.  The initial heap is used up.       */
+      my_chunk_ptr = get_mmaped(CHUNK_SIZE);
+      assert(((AO_t)my_chunk_ptr & (ALIGNMENT-1)) == 0);
       break;
+    }
     if (AO_compare_and_swap(&initial_heap_ptr, (AO_t)my_chunk_ptr,
                             (AO_t)(my_chunk_ptr + CHUNK_SIZE))) {
-      return my_chunk_ptr;
+      break;
     }
   }
-
-  /* We failed.  The initial heap is used up.   */
-  my_chunk_ptr = get_mmaped(CHUNK_SIZE);
-  assert (!((AO_t)my_chunk_ptr & (ALIGNMENT-1)));
   return my_chunk_ptr;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libatomic_ops-7.6.6/tests/test_stack.c 
new/libatomic_ops-7.6.8/tests/test_stack.c
--- old/libatomic_ops-7.6.6/tests/test_stack.c  2018-08-07 09:33:44.000000000 
+0200
+++ new/libatomic_ops-7.6.8/tests/test_stack.c  2018-12-11 09:52:06.000000000 
+0100
@@ -179,16 +179,16 @@
 #endif
 {
   list_element * t[MAX_NTHREADS + 1];
-  int index = (int)(size_t)arg;
-  int i;
+  unsigned index = (unsigned)(size_t)arg;
+  unsigned i;
 # ifdef VERBOSE
-    int j = 0;
+    unsigned j = 0;
 
-    printf("starting thread %d\n", index);
+    printf("starting thread %u\n", index);
 # endif
   while (fetch_and_add(&ops_performed, index + 1) + index + 1 < LIMIT)
     {
-      for (i = 0; i < index + 1; ++i)
+      for (i = 0; i <= index; ++i)
         {
           t[i] = (list_element *)AO_stack_pop(&the_list);
           if (0 == t[i])
@@ -197,7 +197,7 @@
               abort();
             }
         }
-      for (i = 0; i < index + 1; ++i)
+      for (i = 0; i <= index; ++i)
         {
           AO_stack_push(&the_list, (AO_t *)t[i]);
         }
@@ -206,7 +206,7 @@
 #     endif
     }
 # ifdef VERBOSE
-    printf("finished thread %d: %d total ops\n", index, j);
+    printf("finished thread %u: %u total ops\n", index, j);
 # endif
   return 0;
 }
@@ -245,7 +245,7 @@
   for (exper_n = 0; exper_n < N_EXPERIMENTS; ++ exper_n)
     for (nthreads = 1; nthreads <= max_nthreads; ++nthreads)
       {
-        int i;
+        unsigned i;
 #       ifdef USE_WINTHREADS
           DWORD thread_id;
           HANDLE thread[MAX_NTHREADS];
@@ -268,7 +268,7 @@
 #       endif
         ops_performed = 0;
         start_time = get_msecs();
-        for (i = 1; i < nthreads; ++i) {
+        for (i = 1; (int)i < nthreads; ++i) {
           int code;
 
 #         ifdef USE_WINTHREADS
@@ -287,7 +287,7 @@
         /* We use the main thread to run one test.  This allows gprof   */
         /* profiling to work, for example.                              */
         run_one_test(0);
-        for (i = 1; i < nthreads; ++i) {
+        for (i = 1; (int)i < nthreads; ++i) {
           int code;
 
 #         ifdef USE_WINTHREADS


Reply via email to