The package rpms/ck.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/ck.git/commit/?id=b8a2d7216eba4e9....
Change:
-%ifarch ppc64 ppc64le
Thanks.
Full change:
============
commit b8a2d7216eba4e961b1de2f6150deba6cb8647ee
Author: Honza Horak <hhorak(a)redhat.com>
Date: Wed Aug 21 13:46:28 2019 +0200
Add upstream patch ck_barrier_combining: switch to seq_cst semantics to make
ppc64le
diff --git a/ck-barrier-combining.patch b/ck-barrier-combining.patch
new file mode 100644
index 0000000..ca280b8
--- /dev/null
+++ b/ck-barrier-combining.patch
@@ -0,0 +1,49 @@
+commit d93d550aaeb8a15de7f27a27bdab946df04ac6d5
+Author: Kevin Bowling <kevin.bowling(a)kev009.com>
+Date: Sat Aug 4 00:22:08 2018 -0700
+
+ ck_barrier_combining: switch to seq_cst semantics.
+
+diff --git a/src/ck_barrier_combining.c b/src/ck_barrier_combining.c
+index 3ee72fd..ed1960c 100644
+--- a/src/ck_barrier_combining.c
++++ b/src/ck_barrier_combining.c
+@@ -35,7 +35,7 @@ struct ck_barrier_combining_queue {
+ struct ck_barrier_combining_group *tail;
+ };
+
+-CK_CC_INLINE static struct ck_barrier_combining_group *
++static struct ck_barrier_combining_group *
+ ck_barrier_combining_queue_dequeue(struct ck_barrier_combining_queue *queue)
+ {
+ struct ck_barrier_combining_group *front = NULL;
+@@ -48,7 +48,7 @@ ck_barrier_combining_queue_dequeue(struct ck_barrier_combining_queue
*queue)
+ return front;
+ }
+
+-CK_CC_INLINE static void
++static void
+ ck_barrier_combining_insert(struct ck_barrier_combining_group *parent,
+ struct ck_barrier_combining_group *tnode,
+ struct ck_barrier_combining_group **child)
+@@ -72,7 +72,7 @@ ck_barrier_combining_insert(struct ck_barrier_combining_group *parent,
+ * into the barrier's tree. We use a queue to implement this
+ * traversal.
+ */
+-CK_CC_INLINE static void
++static void
+ ck_barrier_combining_queue_enqueue(struct ck_barrier_combining_queue *queue,
+ struct ck_barrier_combining_group *node_value)
+ {
+@@ -185,10 +185,10 @@ ck_barrier_combining_aux(struct ck_barrier_combining *barrier,
+ ck_pr_fence_store();
+ ck_pr_store_uint(&tnode->sense, ~tnode->sense);
+ } else {
+- ck_pr_fence_memory();
+ while (sense != ck_pr_load_uint(&tnode->sense))
+ ck_pr_stall();
+ }
++ ck_pr_fence_memory();
+
+ return;
+ }
diff --git a/ck.spec b/ck.spec
index e4c4536..6ac9811 100644
--- a/ck.spec
+++ b/ck.spec
@@ -1,6 +1,6 @@
Name: ck
Version: 0.6.0
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Library for high performance concurrent programming
License: BSD
@@ -9,6 +9,7 @@ URL:
http://concurrencykit.org
Source:
http://concurrencykit.org/releases/ck-%{version}.tar.gz
Patch0: ck-config-s390x.patch
Patch1: ck-nogettid.patch
+Patch2: ck-barrier-combining.patch
BuildRequires: gcc
@@ -39,6 +40,7 @@ resources needed for developing Concurrency Kit applications.
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%build
export CFLAGS="%{optflags}"
@@ -59,13 +61,7 @@ chmod 0755 %{buildroot}%{_libdir}/libck.so.*
rm %{buildroot}%{_libdir}/libck.a
%check
-# tests fail on ppc64 and ppc64le, but since it's not whether it is problem
-# in tests or library, let's just ignore tests results for now
-%ifarch ppc64 ppc64le
-make check || :
-%else
make check
-%endif
%files
%license LICENSE
@@ -80,6 +76,10 @@ make check
%ldconfig_scriptlets
%changelog
+* Wed Aug 21 2019 Honza Horak <hhorak(a)redhat.com> - 0.6.0-11
+- Add upstream patch ck_barrier_combining: switch to seq_cst semantics to make
+ ppc64le
+
* Wed Aug 21 2019 Honza Horak <hhorak(a)redhat.com> - 0.6.0-10
- Remove static gettid definition