The package rpms/webkit2gtk3.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/webkit2gtk3.git/commit/?id=720031....
Change:
+%ifarch s390x %{power64}
Thanks.
Full change:
============
commit 720031d55bcceee7ce26061b4511dffcf75b6da1
Author: Eike Rathke <erack(a)redhat.com>
Date: Thu Nov 28 23:54:00 2019 +0100
Workaround s390x ppc64le build failing
For USE(JSVALUE64) the path
#if COMPILER(GCC_COMPATIBLE) && USE(JSVALUE64)
is hit but only implemented for CPU(X86_64) and CPU(ARM64)
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec
index 178d718..a8436ed 100644
--- a/webkit2gtk3.spec
+++ b/webkit2gtk3.spec
@@ -18,6 +18,10 @@ Source0:
http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz
Patch0: user-agent-branding.patch
# Don't use the shebang, but point straight to python 3
Patch1: no-env-shebang.patch
+%ifarch s390x %{power64}
+# Implementation for GCC non-x86/arm not available, use default fallback.
+Patch2: workaround-JSVALUE64-architecture.patch
+%endif
BuildRequires: bison
BuildRequires: bubblewrap
diff --git a/workaround-JSVALUE64-architecture.patch
b/workaround-JSVALUE64-architecture.patch
new file mode 100644
index 0000000..a7ba3b3
--- /dev/null
+++ b/workaround-JSVALUE64-architecture.patch
@@ -0,0 +1,29 @@
+---
webkitgtk-2.27.3/Source/JavaScriptCore/heap/GCMemoryOperations.h.JSVALUE64-architecture 2019-11-18
09:38:36.000000000 +0100
++++ webkitgtk-2.27.3/Source/JavaScriptCore/heap/GCMemoryOperations.h 2019-11-28
22:57:42.627998747 +0100
+@@ -53,7 +53,7 @@ ALWAYS_INLINE void gcSafeMemcpy(T* dst,
+ bitwise_cast<volatile uint64_t*>(dst)[i] = bitwise_cast<volatile
uint64_t*>(src)[i];
+ };
+
+-#if COMPILER(GCC_COMPATIBLE) && USE(JSVALUE64)
++#if COMPILER(GCC_COMPATIBLE) && USE(JSVALUE64) && 0
+ if (bytes <= smallCutoff)
+ slowPathForwardMemcpy();
+ else if (isARM64() || bytes <= mediumCutoff) {
+@@ -168,7 +168,7 @@ ALWAYS_INLINE void gcSafeMemmove(T* dst,
+ bitwise_cast<volatile uint64_t*>(dst)[i] = bitwise_cast<volatile
uint64_t*>(src)[i];
+ };
+
+-#if COMPILER(GCC_COMPATIBLE)
++#if COMPILER(GCC_COMPATIBLE) && 0
+ if (bytes <= smallCutoff)
+ slowPathBackwardsMemmove();
+ else {
+@@ -255,7 +255,7 @@ ALWAYS_INLINE void gcSafeZeroMemory(T* d
+ static_assert(sizeof(T) == sizeof(JSValue));
+ RELEASE_ASSERT(bytes % 8 == 0);
+ #if USE(JSVALUE64)
+-#if COMPILER(GCC_COMPATIBLE)
++#if COMPILER(GCC_COMPATIBLE) && 0
+ #if CPU(X86_64)
+ uint64_t zero = 0;
+ size_t count = bytes / 8;