Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package userspace-rcu for openSUSE:Factory checked in at 2022-01-29 21:01:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/userspace-rcu (Old) and /work/SRC/openSUSE:Factory/.userspace-rcu.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "userspace-rcu" Sat Jan 29 21:01:05 2022 rev:18 rq:949394 version:0.13.1 Changes: -------- --- /work/SRC/openSUSE:Factory/userspace-rcu/userspace-rcu.changes 2022-01-05 13:39:31.753515040 +0100 +++ /work/SRC/openSUSE:Factory/.userspace-rcu.new.1898/userspace-rcu.changes 2022-01-29 21:01:31.334899857 +0100 @@ -1,0 +2,13 @@ +Sun Jan 23 10:46:40 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 0.13.1: + * fix: properly detect 'cmpxchg' on x86-32 + * fix: use urcu-tls compat with c++ compiler + * fix: remove autoconf features default value in help message + * fix: add missing pkgconfig file for memb flavour lib + * Make temporary variable in _rcu_dereference non-const + * Fix: x86 and s390: uatomic __hp() macro C++ support + * Fix: x86 and s390: uatomic __hp() macro clang support + * Fix: x86 and s390 uatomic: __hp() macro warning with gcc 11 + +------------------------------------------------------------------- Old: ---- userspace-rcu-0.13.0.tar.bz2 userspace-rcu-0.13.0.tar.bz2.asc New: ---- userspace-rcu-0.13.1.tar.bz2 userspace-rcu-0.13.1.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ userspace-rcu.spec ++++++ --- /var/tmp/diff_new_pack.VFNp2A/_old 2022-01-29 21:01:31.958895662 +0100 +++ /var/tmp/diff_new_pack.VFNp2A/_new 2022-01-29 21:01:31.966895607 +0100 @@ -2,7 +2,7 @@ # # spec file for package userspace-rcu # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2012 Pascal Bleser <pascal.ble...@opensuse.org> # # All modifications and additions to the file contributed by third parties @@ -20,7 +20,7 @@ %define soname 8 Name: userspace-rcu -Version: 0.13.0 +Version: 0.13.1 Release: 0 Summary: Userspace Read-Copy-Update Library License: GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND GPL-3.0-or-later @@ -118,6 +118,7 @@ %{_libdir}/pkgconfig/liburcu-bp.pc %{_libdir}/pkgconfig/liburcu-cds.pc %{_libdir}/pkgconfig/liburcu-mb.pc +%{_libdir}/pkgconfig/liburcu-memb.pc %{_libdir}/pkgconfig/liburcu-qsbr.pc %{_libdir}/pkgconfig/liburcu-signal.pc ++++++ userspace-rcu-0.13.0.tar.bz2 -> userspace-rcu-0.13.1.tar.bz2 ++++++ ++++ 3829 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/ChangeLog new/userspace-rcu-0.13.1/ChangeLog --- old/userspace-rcu-0.13.0/ChangeLog 2021-06-03 22:43:02.000000000 +0200 +++ new/userspace-rcu-0.13.1/ChangeLog 2022-01-05 21:38:11.000000000 +0100 @@ -1,4 +1,15 @@ -2020-06-03 Userspace RCU 0.13.0 +2022-01-05 Userspace RCU 0.13.1 + * fix: properly detect 'cmpxchg' on x86-32 + * fix: use urcu-tls compat with c++ compiler + * fix: remove autoconf features default value in help message + * fix: add missing pkgconfig file for memb flavour lib + * Make temporary variable in _rcu_dereference non-const + * Fix: x86 and s390: uatomic __hp() macro C++ support + * Fix: x86 and s390: uatomic __hp() macro clang support + * Fix: x86 and s390 uatomic: __hp() macro warning with gcc 11 + * Fix: changelog: v0.13.0 was released in 2021 + +2021-06-03 Userspace RCU 0.13.0 * Document known ABI issue in README.md * Add serialized ABI definition files * bump SONAME major to 8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/config/test-driver new/userspace-rcu-0.13.1/config/test-driver --- old/userspace-rcu-0.13.0/config/test-driver 2018-02-20 18:18:42.000000000 +0100 +++ new/userspace-rcu-0.13.1/config/test-driver 2021-12-10 04:11:01.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # test-driver - basic testsuite driver script. -scriptversion=2013-07-13.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2018 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ # 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, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -140,9 +140,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/configure.ac new/userspace-rcu-0.13.1/configure.ac --- old/userspace-rcu-0.13.0/configure.ac 2021-06-03 22:47:50.000000000 +0200 +++ new/userspace-rcu-0.13.1/configure.ac 2022-01-05 21:38:11.000000000 +0100 @@ -7,7 +7,7 @@ # Project version information m4_define([urcu_version_major], [0]) m4_define([urcu_version_minor], [13]) -m4_define([urcu_version_patch], [0]) +m4_define([urcu_version_patch], [1]) m4_define([urcu_version_dev_stage], []) m4_define([urcu_version], urcu_version_major[.]urcu_version_minor[.]urcu_version_patch[]urcu_version_dev_stage) @@ -298,6 +298,7 @@ src/liburcu-cds.pc src/liburcu-qsbr.pc src/liburcu-mb.pc + src/liburcu-memb.pc src/liburcu-signal.pc ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/include/urcu/arch.h new/userspace-rcu-0.13.1/include/urcu/arch.h --- old/userspace-rcu-0.13.0/include/urcu/arch.h 2021-06-03 20:44:03.000000000 +0200 +++ new/userspace-rcu-0.13.1/include/urcu/arch.h 2022-01-05 21:38:11.000000000 +0100 @@ -64,15 +64,25 @@ #define URCU_ARCH_AMD64 1 #include <urcu/arch/x86.h> -#elif (defined(__i486__) || defined(__i586__) || defined(__i686__)) +#elif (defined(__i386__) || defined(__i386) || defined(__i486__) || defined(__i586__) || defined(__i686__)) #define URCU_ARCH_X86 1 -#include <urcu/arch/x86.h> - -#elif (defined(__i386__) || defined(__i386)) -#define URCU_ARCH_X86 1 +/* + * URCU_ARCH_X86_NO_CAS enables a compat layer that will detect the presence of + * the cmpxchg instructions at runtime and provide a compat mode based on a + * pthread mutex when it isn't. + * + * __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 was introduced in GCC 4.3 and Clang 3.3, + * building with older compilers will result in the compat layer always being + * used on x86-32. + */ +#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 +#define URCU_ARCH_X86_NO_CAS 1 +/* For backwards compat */ #define URCU_ARCH_I386 1 +#endif + #include <urcu/arch/x86.h> #elif (defined(__powerpc64__) || defined(__ppc64__)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/include/urcu/static/pointer.h new/userspace-rcu-0.13.1/include/urcu/static/pointer.h --- old/userspace-rcu-0.13.0/include/urcu/static/pointer.h 2021-06-01 22:15:35.000000000 +0200 +++ new/userspace-rcu-0.13.1/include/urcu/static/pointer.h 2022-01-05 21:04:04.000000000 +0100 @@ -90,9 +90,15 @@ # define __URCU_DEREFERENCE_USE_ATOMIC_CONSUME #endif +/* + * If p is const (the pointer itself, not what it points to), using + * __typeof__(p) would declare a const variable, leading to + * -Wincompatible-pointer-types errors. Using `+ 0` makes it an rvalue and + * gets rid of the const-ness. + */ #ifdef __URCU_DEREFERENCE_USE_ATOMIC_CONSUME # define _rcu_dereference(p) __extension__ ({ \ - __typeof__(p) _________p1; \ + __typeof__(p + 0) _________p1; \ __atomic_load(&(p), &_________p1, __ATOMIC_CONSUME); \ (_________p1); \ }) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/include/urcu/tls-compat.h new/userspace-rcu-0.13.1/include/urcu/tls-compat.h --- old/userspace-rcu-0.13.0/include/urcu/tls-compat.h 2021-06-03 20:44:03.000000000 +0200 +++ new/userspace-rcu-0.13.1/include/urcu/tls-compat.h 2022-01-05 21:36:47.000000000 +0100 @@ -112,6 +112,7 @@ type *__tls_access_ ## name(void) \ { \ static struct urcu_tls __tls_ ## name = { \ + .key = 0, \ .init_mutex = PTHREAD_MUTEX_INITIALIZER,\ .init_done = 0, \ }; \ @@ -128,9 +129,9 @@ pthread_mutex_unlock(&__tls_ ## name.init_mutex); \ } \ cmm_smp_rmb(); /* read init_done before getting key */ \ - __tls_p = pthread_getspecific(__tls_ ## name.key); \ + __tls_p = (__typeof__(type) *) pthread_getspecific(__tls_ ## name.key); \ if (caa_unlikely(__tls_p == NULL)) { \ - __tls_p = calloc(1, sizeof(type)); \ + __tls_p = (__typeof__(type) *) calloc(1, sizeof(type)); \ do_init \ (void) pthread_setspecific(__tls_ ## name.key, \ __tls_p); \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/include/urcu/uatomic/s390.h new/userspace-rcu-0.13.1/include/urcu/uatomic/s390.h --- old/userspace-rcu-0.13.0/include/urcu/uatomic/s390.h 2021-06-01 22:15:35.000000000 +0200 +++ new/userspace-rcu-0.13.1/include/urcu/uatomic/s390.h 2022-01-05 21:04:04.000000000 +0100 @@ -61,10 +61,19 @@ #endif /* !COMPILER_HAVE_SHORT_MEM_OPERAND */ -struct __uatomic_dummy { - unsigned long v[10]; -}; -#define __hp(x) ((struct __uatomic_dummy *)(x)) +/* + * The __hp() macro casts the void pointer @x to a pointer to a structure + * containing an array of char of the specified size. This allows passing the + * @addr arguments of the following inline functions as "m" and "+m" operands + * to the assembly. The @size parameter should be a constant to support + * compilers such as clang which do not support VLA. Create typedefs because + * C++ does not allow types be defined in casts. + */ + +typedef struct { char v[4]; } __hp_4; +typedef struct { char v[8]; } __hp_8; + +#define __hp(size, x) ((__hp_##size *)(x)) /* xchg */ @@ -79,8 +88,8 @@ __asm__ __volatile__( "0: cs %0,%2," MEMOP_REF(%3) "\n" " brc 4,0b\n" - : "=&r" (old_val), MEMOP_OUT (__hp(addr)) - : "r" (val), MEMOP_IN (__hp(addr)) + : "=&r" (old_val), MEMOP_OUT (__hp(4, addr)) + : "r" (val), MEMOP_IN (__hp(4, addr)) : "memory", "cc"); return old_val; } @@ -92,8 +101,8 @@ __asm__ __volatile__( "0: csg %0,%2," MEMOP_REF(%3) "\n" " brc 4,0b\n" - : "=&r" (old_val), MEMOP_OUT (__hp(addr)) - : "r" (val), MEMOP_IN (__hp(addr)) + : "=&r" (old_val), MEMOP_OUT (__hp(8, addr)) + : "r" (val), MEMOP_IN (__hp(8, addr)) : "memory", "cc"); return old_val; } @@ -123,8 +132,8 @@ __asm__ __volatile__( " cs %0,%2," MEMOP_REF(%3) "\n" - : "+r" (old_val), MEMOP_OUT (__hp(addr)) - : "r" (_new), MEMOP_IN (__hp(addr)) + : "+r" (old_val), MEMOP_OUT (__hp(4, addr)) + : "r" (_new), MEMOP_IN (__hp(4, addr)) : "memory", "cc"); return old_val; } @@ -133,8 +142,8 @@ { __asm__ __volatile__( " csg %0,%2," MEMOP_REF(%3) "\n" - : "+r" (old), MEMOP_OUT (__hp(addr)) - : "r" (_new), MEMOP_IN (__hp(addr)) + : "+r" (old), MEMOP_OUT (__hp(8, addr)) + : "r" (_new), MEMOP_IN (__hp(8, addr)) : "memory", "cc"); return old; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/include/urcu/uatomic/x86.h new/userspace-rcu-0.13.1/include/urcu/uatomic/x86.h --- old/userspace-rcu-0.13.0/include/urcu/uatomic/x86.h 2021-06-03 20:44:03.000000000 +0200 +++ new/userspace-rcu-0.13.1/include/urcu/uatomic/x86.h 2022-01-05 21:38:11.000000000 +0100 @@ -36,10 +36,21 @@ * Derived from AO_compare_and_swap() and AO_test_and_set_full(). */ -struct __uatomic_dummy { - unsigned long v[10]; -}; -#define __hp(x) ((struct __uatomic_dummy *)(x)) +/* + * The __hp() macro casts the void pointer @x to a pointer to a structure + * containing an array of char of the specified size. This allows passing the + * @addr arguments of the following inline functions as "m" and "+m" operands + * to the assembly. The @size parameter should be a constant to support + * compilers such as clang which do not support VLA. Create typedefs because + * C++ does not allow types be defined in casts. + */ + +typedef struct { char v[1]; } __hp_1; +typedef struct { char v[2]; } __hp_2; +typedef struct { char v[4]; } __hp_4; +typedef struct { char v[8]; } __hp_8; + +#define __hp(size, x) ((__hp_##size *)(x)) #define _uatomic_set(addr, v) ((void) CMM_STORE_SHARED(*(addr), (v))) @@ -56,7 +67,7 @@ __asm__ __volatile__( "lock; cmpxchgb %2, %1" - : "+a"(result), "+m"(*__hp(addr)) + : "+a"(result), "+m"(*__hp(1, addr)) : "q"((unsigned char)_new) : "memory"); return result; @@ -67,7 +78,7 @@ __asm__ __volatile__( "lock; cmpxchgw %2, %1" - : "+a"(result), "+m"(*__hp(addr)) + : "+a"(result), "+m"(*__hp(2, addr)) : "r"((unsigned short)_new) : "memory"); return result; @@ -78,7 +89,7 @@ __asm__ __volatile__( "lock; cmpxchgl %2, %1" - : "+a"(result), "+m"(*__hp(addr)) + : "+a"(result), "+m"(*__hp(4, addr)) : "r"((unsigned int)_new) : "memory"); return result; @@ -90,7 +101,7 @@ __asm__ __volatile__( "lock; cmpxchgq %2, %1" - : "+a"(result), "+m"(*__hp(addr)) + : "+a"(result), "+m"(*__hp(8, addr)) : "r"((unsigned long)_new) : "memory"); return result; @@ -123,7 +134,7 @@ unsigned char result; __asm__ __volatile__( "xchgb %0, %1" - : "=q"(result), "+m"(*__hp(addr)) + : "=q"(result), "+m"(*__hp(1, addr)) : "0" ((unsigned char)val) : "memory"); return result; @@ -133,7 +144,7 @@ unsigned short result; __asm__ __volatile__( "xchgw %0, %1" - : "=r"(result), "+m"(*__hp(addr)) + : "=r"(result), "+m"(*__hp(2, addr)) : "0" ((unsigned short)val) : "memory"); return result; @@ -143,7 +154,7 @@ unsigned int result; __asm__ __volatile__( "xchgl %0, %1" - : "=r"(result), "+m"(*__hp(addr)) + : "=r"(result), "+m"(*__hp(4, addr)) : "0" ((unsigned int)val) : "memory"); return result; @@ -154,7 +165,7 @@ unsigned long result; __asm__ __volatile__( "xchgq %0, %1" - : "=r"(result), "+m"(*__hp(addr)) + : "=r"(result), "+m"(*__hp(8, addr)) : "0" ((unsigned long)val) : "memory"); return result; @@ -187,7 +198,7 @@ __asm__ __volatile__( "lock; xaddb %1, %0" - : "+m"(*__hp(addr)), "+q" (result) + : "+m"(*__hp(1, addr)), "+q" (result) : : "memory"); return result + (unsigned char)val; @@ -198,7 +209,7 @@ __asm__ __volatile__( "lock; xaddw %1, %0" - : "+m"(*__hp(addr)), "+r" (result) + : "+m"(*__hp(2, addr)), "+r" (result) : : "memory"); return result + (unsigned short)val; @@ -209,7 +220,7 @@ __asm__ __volatile__( "lock; xaddl %1, %0" - : "+m"(*__hp(addr)), "+r" (result) + : "+m"(*__hp(4, addr)), "+r" (result) : : "memory"); return result + (unsigned int)val; @@ -221,7 +232,7 @@ __asm__ __volatile__( "lock; xaddq %1, %0" - : "+m"(*__hp(addr)), "+r" (result) + : "+m"(*__hp(8, addr)), "+r" (result) : : "memory"); return result + (unsigned long)val; @@ -251,7 +262,7 @@ { __asm__ __volatile__( "lock; andb %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(1, addr)) : "iq" ((unsigned char)val) : "memory"); return; @@ -260,7 +271,7 @@ { __asm__ __volatile__( "lock; andw %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(2, addr)) : "ir" ((unsigned short)val) : "memory"); return; @@ -269,7 +280,7 @@ { __asm__ __volatile__( "lock; andl %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(4, addr)) : "ir" ((unsigned int)val) : "memory"); return; @@ -279,7 +290,7 @@ { __asm__ __volatile__( "lock; andq %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(8, addr)) : "er" ((unsigned long)val) : "memory"); return; @@ -307,7 +318,7 @@ { __asm__ __volatile__( "lock; orb %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(1, addr)) : "iq" ((unsigned char)val) : "memory"); return; @@ -316,7 +327,7 @@ { __asm__ __volatile__( "lock; orw %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(2, addr)) : "ir" ((unsigned short)val) : "memory"); return; @@ -325,7 +336,7 @@ { __asm__ __volatile__( "lock; orl %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(4, addr)) : "ir" ((unsigned int)val) : "memory"); return; @@ -335,7 +346,7 @@ { __asm__ __volatile__( "lock; orq %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(8, addr)) : "er" ((unsigned long)val) : "memory"); return; @@ -363,7 +374,7 @@ { __asm__ __volatile__( "lock; addb %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(1, addr)) : "iq" ((unsigned char)val) : "memory"); return; @@ -372,7 +383,7 @@ { __asm__ __volatile__( "lock; addw %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(2, addr)) : "ir" ((unsigned short)val) : "memory"); return; @@ -381,7 +392,7 @@ { __asm__ __volatile__( "lock; addl %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(4, addr)) : "ir" ((unsigned int)val) : "memory"); return; @@ -391,7 +402,7 @@ { __asm__ __volatile__( "lock; addq %1, %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(8, addr)) : "er" ((unsigned long)val) : "memory"); return; @@ -420,7 +431,7 @@ { __asm__ __volatile__( "lock; incb %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(1, addr)) : : "memory"); return; @@ -429,7 +440,7 @@ { __asm__ __volatile__( "lock; incw %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(2, addr)) : : "memory"); return; @@ -438,7 +449,7 @@ { __asm__ __volatile__( "lock; incl %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(4, addr)) : : "memory"); return; @@ -448,7 +459,7 @@ { __asm__ __volatile__( "lock; incq %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(8, addr)) : : "memory"); return; @@ -473,7 +484,7 @@ { __asm__ __volatile__( "lock; decb %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(1, addr)) : : "memory"); return; @@ -482,7 +493,7 @@ { __asm__ __volatile__( "lock; decw %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(2, addr)) : : "memory"); return; @@ -491,7 +502,7 @@ { __asm__ __volatile__( "lock; decl %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(4, addr)) : : "memory"); return; @@ -501,7 +512,7 @@ { __asm__ __volatile__( "lock; decq %0" - : "=m"(*__hp(addr)) + : "=m"(*__hp(8, addr)) : : "memory"); return; @@ -518,7 +529,7 @@ #define _uatomic_dec(addr) (__uatomic_dec((addr), sizeof(*(addr)))) -#if ((CAA_BITS_PER_LONG != 64) && defined(URCU_ARCH_I386)) +#ifdef URCU_ARCH_X86_NO_CAS /* For backwards compat */ #define CONFIG_RCU_COMPAT_ARCH 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/m4/ae_config_feature.m4 new/userspace-rcu-0.13.1/m4/ae_config_feature.m4 --- old/userspace-rcu-0.13.0/m4/ae_config_feature.m4 2021-06-03 20:44:03.000000000 +0200 +++ new/userspace-rcu-0.13.1/m4/ae_config_feature.m4 2022-01-05 21:38:11.000000000 +0100 @@ -95,7 +95,7 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 1 +#serial 2 # AE_FEATURE_DEFAULT_ENABLE: The next feature defined with AE_FEATURE will @@ -230,7 +230,7 @@ AC_ARG_ENABLE([$1], AS_HELP_STRING([--ae_feature_default_switch-$1],dnl - [$2 [default=ae_feature_default_arg]]),[ + [$2]),[ case "${enableval}" in yes) enable_[]FEATURE[]=yes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/m4/libtool.m4 new/userspace-rcu-0.13.1/m4/libtool.m4 --- old/userspace-rcu-0.13.0/m4/libtool.m4 2017-06-20 21:49:26.000000000 +0200 +++ new/userspace-rcu-0.13.1/m4/libtool.m4 2021-12-10 04:10:58.000000000 +0100 @@ -4063,7 +4063,8 @@ if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -6438,7 +6439,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no @@ -6813,7 +6814,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -6878,7 +6879,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -7217,7 +7218,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support @@ -7301,7 +7302,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. @@ -7312,7 +7313,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/m4/ltsugar.m4 new/userspace-rcu-0.13.1/m4/ltsugar.m4 --- old/userspace-rcu-0.13.0/m4/ltsugar.m4 2016-05-12 17:27:36.000000000 +0200 +++ new/userspace-rcu-0.13.1/m4/ltsugar.m4 2021-12-10 04:10:58.000000000 +0100 @@ -1,6 +1,7 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives @@ -33,7 +34,7 @@ # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. +# Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], @@ -44,7 +45,7 @@ # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/m4/lt~obsolete.m4 new/userspace-rcu-0.13.1/m4/lt~obsolete.m4 --- old/userspace-rcu-0.13.0/m4/lt~obsolete.m4 2016-05-12 17:27:36.000000000 +0200 +++ new/userspace-rcu-0.13.1/m4/lt~obsolete.m4 2021-12-10 04:10:58.000000000 +0100 @@ -1,6 +1,7 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives @@ -11,7 +12,7 @@ # These exist entirely to fool aclocal when bootstrapping libtool. # -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # @@ -25,7 +26,7 @@ # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/src/Makefile.am new/userspace-rcu-0.13.1/src/Makefile.am --- old/userspace-rcu-0.13.0/src/Makefile.am 2021-06-03 20:44:03.000000000 +0200 +++ new/userspace-rcu-0.13.1/src/Makefile.am 2022-01-05 21:38:11.000000000 +0100 @@ -52,7 +52,7 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = liburcu-cds.pc liburcu.pc liburcu-bp.pc liburcu-qsbr.pc \ - liburcu-signal.pc liburcu-mb.pc + liburcu-signal.pc liburcu-mb.pc liburcu-memb.pc EXTRA_DIST = \ urcu-call-rcu-impl.h \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/src/compat_arch.c new/userspace-rcu-0.13.1/src/compat_arch.c --- old/userspace-rcu-0.13.0/src/compat_arch.c 2021-06-03 20:44:03.000000000 +0200 +++ new/userspace-rcu-0.13.1/src/compat_arch.c 2022-01-05 21:38:11.000000000 +0100 @@ -22,7 +22,7 @@ #include <urcu/arch.h> -#if defined(URCU_ARCH_I386) +#ifdef URCU_ARCH_X86_NO_CAS #include <stdio.h> #include <pthread.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/userspace-rcu-0.13.0/src/liburcu-memb.pc.in new/userspace-rcu-0.13.1/src/liburcu-memb.pc.in --- old/userspace-rcu-0.13.0/src/liburcu-memb.pc.in 1970-01-01 01:00:00.000000000 +0100 +++ new/userspace-rcu-0.13.1/src/liburcu-memb.pc.in 2022-01-05 21:04:04.000000000 +0100 @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: Userspace RCU membarrier syscall +Description: A userspace RCU (read-copy-update) library, membarrier syscall version +Version: @PACKAGE_VERSION@ +Requires: +Libs: -L${libdir} -lurcu-common -lurcu-memb +Cflags: -I${includedir}