community/seamonkey: v7 fix

This commit is contained in:
Kevin Mihelich 2021-10-20 02:37:50 +00:00
parent 96a0b55b3b
commit 9c68f1a6a8
2 changed files with 40 additions and 2 deletions

View file

@ -3,6 +3,7 @@
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - mozconfig changes
# - patch to fix neon usage
# - patch to fix v7 FTBFS in js
highmem=1
buildarch=12
@ -24,10 +25,12 @@ optdepends=('networkmanager: Location detection via available WiFi networks'
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz"
"mozconfig"
"xulrunner-27.0-build-arm.patch")
"xulrunner-27.0-build-arm.patch"
"bug-1163171.patch")
sha256sums=('756fc69478b9913c1f3c91090b78d880da8f593238754b8416c87184e4d6e597'
'2b1404af0c6db2602bdf6449a936d04fbb6e97299addd5e21c55b0ceff43d891'
'bc83b8a51c81a401da2fbe1f7cd0843248c32607d3a51119585df074d797922e')
'bc83b8a51c81a401da2fbe1f7cd0843248c32607d3a51119585df074d797922e'
'6917d93f905af5a068e2daa598d8f64aacb47c69fc4a9e5263a583857abb7e29')
install="$pkgname.install"
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
@ -61,6 +64,7 @@ EOF
[[ $CARCH != "aarch64" ]] && echo "ac_add_options --disable-elf-hack" >> .mozconfig
LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
patch -p2 -i "${srcdir}"/xulrunner-27.0-build-arm.patch
patch -p1 -i "${srcdir}"/bug-1163171.patch
}
build() {

View file

@ -0,0 +1,34 @@
# HG changeset patch
# User Nathan Froyd <froydnj@gmail.com>
Bug 1163171 - part 5 - remove arm-specific hacks in typed array implementation; r=lth
clang does not have the specific problem that led to this hack in the
first place, so we can remove the hack. (The hack also causes issues
with clang; it complains that you can't pass `volatile T*` into the
intrinsics that we're using for atomic operations.)
diff --git a/js/src/vm/TypedArrayObject-inl.h b/js/src/vm/TypedArrayObject-inl.h
index e5b0253..9d9c0d5 100644
--- a/js/src/vm/TypedArrayObject-inl.h
+++ b/js/src/vm/TypedArrayObject-inl.h
@@ -258,17 +258,17 @@ class ElementSpecific
uint32_t count = source->length();
if (source->type() == target->type()) {
Ops::podCopy(dest, source->viewDataEither().template cast<T*>(), count);
return true;
}
// Inhibit unaligned accesses on ARM (bug 1097253, a compiler bug).
-#ifdef __arm__
+#if defined(__arm__) && defined(__GNUC__) && !defined(__clang__)
# define JS_VOLATILE_ARM volatile
#else
# define JS_VOLATILE_ARM
#endif
SharedMem<void*> data = Ops::extract(source);
switch (source->type()) {
case Scalar::Int8: {