aboutsummaryrefslogtreecommitdiffstats
path: root/testing/mozjs-38
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2017-06-06 04:50:06 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2017-06-06 04:50:06 +0000
commitabeab1b01bd0d77ca6012a4ca12621b5793ecf07 (patch)
tree1a7977f5122afbf54b4dd71c87bb4764374f3c4c /testing/mozjs-38
parenta23717b73fb4f646abbe27e1f2a2d4889eaa30c6 (diff)
downloadaports-abeab1b01bd0d77ca6012a4ca12621b5793ecf07.tar.bz2
aports-abeab1b01bd0d77ca6012a4ca12621b5793ecf07.tar.xz
testing/mozjs-38: add gcc6 bad code generation workaround, add -dbg package
Diffstat (limited to 'testing/mozjs-38')
-rw-r--r--testing/mozjs-38/APKBUILD10
-rw-r--r--testing/mozjs-38/gcc-alignment.patch122
2 files changed, 128 insertions, 4 deletions
diff --git a/testing/mozjs-38/APKBUILD b/testing/mozjs-38/APKBUILD
index 67414bdffb..b0369daf2c 100644
--- a/testing/mozjs-38/APKBUILD
+++ b/testing/mozjs-38/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: William Pitcock <nenolod@dereferenced.org>
pkgname=mozjs-38
pkgver=38.8.0
-pkgrel=2
+pkgrel=3
pkgdesc="standalone mozilla javascript engine"
url="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/38"
arch="all"
@@ -10,12 +10,13 @@ depends=""
depends_dev="icu-dev nspr-dev libffi-dev readline-dev"
makedepends="$depends_dev python2 perl sed"
install=""
-subpackages="$pkgname-dev"
+subpackages="$pkgname-dev $pkgname-dbg"
source="https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.bz2
fix-fortify-system-wrappers.patch
copy-headers.patch
pkg-config-version.patch
- icu-add-bracket.patch"
+ icu-add-bracket.patch
+ gcc-alignment.patch"
builddir="$srcdir/mozilla-esr38"
_builddir="$builddir/js/src"
options="!check"
@@ -47,4 +48,5 @@ sha512sums="fcd2497a60176b8403a1793d1ad0a1c96a0a60217c2d4d7acd0506abf6810892bd51
a4f613ba4e977796fa024824940bbc1d3df549138612bfcdbb643753d54d4d5bfbf601a12f76312a87ecc7ec595ff34ddefb47c2cd1a6e31252c1fa3a263bdae fix-fortify-system-wrappers.patch
22cc4e4595ddbd7ff037ce5f04755de4156d24921fa57161afbaa6494c795e30b6cfc08e8b999dbcce145c231cc6a3322334134e40f251f514b4688598a75f61 copy-headers.patch
f3d87ffa7232e7242c4a1bf2762c2d1d4e190e72bd1c15fe223bce2480769bf577021ca799aab9570e3219144fcd9978e97cf8648f0cb7abe379bcabc9b03c4c pkg-config-version.patch
-658df4a957b2e11345dc3caf884d2063b4e492c58f002114d3c8d7b595731cde33d1ad43e02cc2eba4ec0e7a751c3c5bbbf0cacab6ca726f2a1158864b09af8c icu-add-bracket.patch"
+658df4a957b2e11345dc3caf884d2063b4e492c58f002114d3c8d7b595731cde33d1ad43e02cc2eba4ec0e7a751c3c5bbbf0cacab6ca726f2a1158864b09af8c icu-add-bracket.patch
+fba936027456cc30f3fb17036634a1f572078f4d90b8410b9647b579004b5ca5053ad870d7eeb73f3cf3139832cc2b4949c3c4dc7c0f31b87d4066218a6a5965 gcc-alignment.patch"
diff --git a/testing/mozjs-38/gcc-alignment.patch b/testing/mozjs-38/gcc-alignment.patch
new file mode 100644
index 0000000000..a3a57d5447
--- /dev/null
+++ b/testing/mozjs-38/gcc-alignment.patch
@@ -0,0 +1,122 @@
+--- a/js/src/jit/RegisterSets.h 2017-02-10 17:33:06.210702431 -0800
++++ b/js/src/jit/RegisterSets.h 2017-02-10 17:43:52.877514146 -0800
+@@ -7,7 +7,6 @@
+ #ifndef jit_RegisterSets_h
+ #define jit_RegisterSets_h
+
+-#include "mozilla/Alignment.h"
+ #include "mozilla/MathAlgorithms.h"
+
+ #include "jit/JitAllocPolicy.h"
+@@ -26,8 +25,8 @@
+ Code code_;
+
+ public:
+- AnyRegister()
+- { }
++ AnyRegister() = default;
++
+ explicit AnyRegister(Register gpr) {
+ code_ = gpr.code();
+ }
+@@ -156,7 +155,7 @@
+ }
+ #endif
+
+- ValueOperand() {}
++ ValueOperand() = default;
+ };
+
+ // Registers to hold either either a typed or untyped value.
+@@ -165,46 +164,25 @@
+ // Type of value being stored.
+ MIRType type_;
+
+- // Space to hold either an AnyRegister or a ValueOperand.
+ union U {
+- mozilla::AlignedStorage2<AnyRegister> typed;
+- mozilla::AlignedStorage2<ValueOperand> value;
++ AnyRegister typed;
++ ValueOperand value;
+ } data;
+
+- AnyRegister& dataTyped() {
+- MOZ_ASSERT(hasTyped());
+- return *data.typed.addr();
+- }
+- ValueOperand& dataValue() {
+- MOZ_ASSERT(hasValue());
+- return *data.value.addr();
+- }
+-
+- AnyRegister dataTyped() const {
+- MOZ_ASSERT(hasTyped());
+- return *data.typed.addr();
+- }
+- const ValueOperand& dataValue() const {
+- MOZ_ASSERT(hasValue());
+- return *data.value.addr();
+- }
+-
+ public:
+
+- TypedOrValueRegister()
+- : type_(MIRType_None)
+- {}
++ TypedOrValueRegister() = default;
+
+ TypedOrValueRegister(MIRType type, AnyRegister reg)
+ : type_(type)
+ {
+- dataTyped() = reg;
++ data.typed = reg;
+ }
+
+ MOZ_IMPLICIT TypedOrValueRegister(ValueOperand value)
+ : type_(MIRType_Value)
+ {
+- dataValue() = value;
++ data.value = value;
+ }
+
+ MIRType type() const {
+@@ -220,11 +198,13 @@
+ }
+
+ AnyRegister typedReg() const {
+- return dataTyped();
++ MOZ_ASSERT(hasTyped());
++ return data.typed;
+ }
+
+ ValueOperand valueReg() const {
+- return dataValue();
++ MOZ_ASSERT(hasValue());
++ return data.value;
+ }
+
+ AnyRegister scratchReg() {
+@@ -240,19 +220,18 @@
+ // Whether a constant value is being stored.
+ bool constant_;
+
+- // Space to hold either a Value or a TypedOrValueRegister.
+ union U {
+- mozilla::AlignedStorage2<Value> constant;
+- mozilla::AlignedStorage2<TypedOrValueRegister> reg;
++ Value constant;
++ TypedOrValueRegister reg;
+ } data;
+
+ Value& dataValue() {
+ MOZ_ASSERT(constant());
+- return *data.constant.addr();
++ return data.constant;
+ }
+ TypedOrValueRegister& dataReg() {
+ MOZ_ASSERT(!constant());
+- return *data.reg.addr();
++ return data.reg;
+ }
+
+ public: