mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-19 00:21:40 +00:00
community/js185 to 1.0.0-3.1
This commit is contained in:
parent
f25ea31b27
commit
6700938969
3 changed files with 260 additions and 9 deletions
|
@ -1,14 +1,15 @@
|
|||
# $Id: PKGBUILD 183425 2013-04-21 22:11:08Z heftig $
|
||||
# $Id$
|
||||
# Maintainer: Ionut Biru <ibiru@archlinux.org>
|
||||
|
||||
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
# - patch to fix mozilla stupidity
|
||||
# - patch to fix mozilla stupidity
|
||||
# - patch for AArch64
|
||||
# - patch for GCC6
|
||||
# - two patches for AArch64
|
||||
|
||||
pkgname=js185
|
||||
pkgver=1.0.0
|
||||
pkgrel=3
|
||||
pkgrel=3.1
|
||||
pkgdesc="JavaScript interpreter and libraries (legacy)"
|
||||
arch=(i686 x86_64)
|
||||
url="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/1.8.5"
|
||||
|
@ -18,11 +19,27 @@ makedepends=(python2 zip)
|
|||
options=(!staticlibs)
|
||||
source=(http://ftp.mozilla.org/pub/mozilla.org/js/$pkgname-$pkgver.tar.gz
|
||||
ihatemozilla.patch no-neon.patch
|
||||
Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch)
|
||||
fix-811665.patch
|
||||
Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch
|
||||
mozjs185-tag.patch)
|
||||
md5sums=('a4574365938222adca0a6bd33329cb32'
|
||||
'9add35f52965e4643b9235307d0d6cc5'
|
||||
'5d4817fadff71765c9b5d1f7b90f904f'
|
||||
'31d3273a985b88938e229ded36271286')
|
||||
'f810f575c855e136fe32302c1167344f'
|
||||
'31d3273a985b88938e229ded36271286'
|
||||
'a6a40ac37ab66291c68ceeacc6e73a01')
|
||||
|
||||
prepare() {
|
||||
cd js-1.8.5/js/src
|
||||
|
||||
patch -p3 -i "$srcdir/ihatemozilla.patch"
|
||||
patch -p3 -i "$srcdir/no-neon.patch"
|
||||
patch -p3 -i "$srcdir/fix-811665.patch"
|
||||
if [[ $CARCH == "aarch64" ]]; then
|
||||
patch -p3 -i "$srcdir/Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch"
|
||||
patch -p3 -i "$srcdir/mozjs185-tag.patch"
|
||||
fi
|
||||
}
|
||||
|
||||
build() {
|
||||
cd js-1.8.5/js/src
|
||||
|
@ -30,10 +47,6 @@ build() {
|
|||
# _FORTIFY_SOURCE causes configure error
|
||||
unset CPPFLAGS
|
||||
|
||||
patch -p3 -i "$srcdir/ihatemozilla.patch"
|
||||
patch -p3 -i "$srcdir/no-neon.patch"
|
||||
[[ $CARCH == "aarch64" ]] && patch -p3 -i "$srcdir/Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch"
|
||||
|
||||
./configure --prefix=/usr --with-system-nspr \
|
||||
--enable-threadsafe
|
||||
make
|
||||
|
|
153
community/js185/fix-811665.patch
Normal file
153
community/js185/fix-811665.patch
Normal file
|
@ -0,0 +1,153 @@
|
|||
Description: Fix FTBFS with gcc6
|
||||
Most fixes are returning NULL instead of false and a narrowing issues.
|
||||
Author: Tobias Frost <tobi@debian.org>
|
||||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811665
|
||||
Last-Update: 2016-09-25
|
||||
---
|
||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
--- a/js/src/ctypes/CTypes.cpp
|
||||
+++ b/js/src/ctypes/CTypes.cpp
|
||||
@@ -4753,7 +4753,7 @@ NewFunctionInfo(JSContext* cx,
|
||||
for (JSUint32 i = 0; i < argLength; ++i) {
|
||||
bool isEllipsis;
|
||||
if (!IsEllipsis(cx, argTypes[i], &isEllipsis))
|
||||
- return false;
|
||||
+ return NULL;
|
||||
if (isEllipsis) {
|
||||
fninfo->mIsVariadic = true;
|
||||
if (i < 1) {
|
||||
--- a/js/src/jsapi.cpp
|
||||
+++ b/js/src/jsapi.cpp
|
||||
@@ -3985,7 +3985,7 @@ JS_Enumerate(JSContext *cx, JSObject *ob
|
||||
AutoIdVector props(cx);
|
||||
JSIdArray *ida;
|
||||
if (!GetPropertyNames(cx, obj, JSITER_OWNONLY, &props) || !VectorToIdArray(cx, props, &ida))
|
||||
- return false;
|
||||
+ return NULL;
|
||||
for (size_t n = 0; n < size_t(ida->length); ++n)
|
||||
JS_ASSERT(js_CheckForStringIndex(ida->vector[n]) == ida->vector[n]);
|
||||
return ida;
|
||||
--- a/js/src/jsfun.cpp
|
||||
+++ b/js/src/jsfun.cpp
|
||||
@@ -2051,7 +2051,7 @@ fun_toStringHelper(JSContext *cx, JSObje
|
||||
|
||||
JSString *str = JS_DecompileFunction(cx, fun, indent);
|
||||
if (!str)
|
||||
- return false;
|
||||
+ return NULL;
|
||||
|
||||
if (!indent)
|
||||
cx->compartment->toSourceCache.put(fun, str);
|
||||
@@ -2657,7 +2657,7 @@ LookupInterpretedFunctionPrototype(JSCon
|
||||
const Shape *shape = funobj->nativeLookup(id);
|
||||
if (!shape) {
|
||||
if (!ResolveInterpretedFunctionPrototype(cx, funobj))
|
||||
- return false;
|
||||
+ return NULL;
|
||||
shape = funobj->nativeLookup(id);
|
||||
}
|
||||
JS_ASSERT(!shape->configurable());
|
||||
--- a/js/src/jsiter.cpp
|
||||
+++ b/js/src/jsiter.cpp
|
||||
@@ -425,7 +425,7 @@ NewIteratorObject(JSContext *cx, uintN f
|
||||
*/
|
||||
JSObject *obj = js_NewGCObject(cx, FINALIZE_OBJECT0);
|
||||
if (!obj)
|
||||
- return false;
|
||||
+ return NULL;
|
||||
obj->init(cx, &js_IteratorClass, NULL, NULL, NULL, false);
|
||||
obj->setMap(cx->compartment->emptyEnumeratorShape);
|
||||
return obj;
|
||||
--- a/js/src/jsparse.cpp
|
||||
+++ b/js/src/jsparse.cpp
|
||||
@@ -3352,7 +3352,7 @@ Parser::functionDef(JSAtom *funAtom, Fun
|
||||
if (!outertc->inFunction() && bodyLevel && funAtom && !lambda && outertc->compiling()) {
|
||||
JS_ASSERT(pn->pn_cookie.isFree());
|
||||
if (!DefineGlobal(pn, outertc->asCodeGenerator(), funAtom))
|
||||
- return false;
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
pn->pn_blockid = outertc->blockid();
|
||||
--- a/js/src/jsstr.cpp
|
||||
+++ b/js/src/jsstr.cpp
|
||||
@@ -1734,7 +1734,7 @@ class RegExpGuard
|
||||
if (flat) {
|
||||
patstr = flattenPattern(cx, fm.patstr);
|
||||
if (!patstr)
|
||||
- return false;
|
||||
+ return NULL;
|
||||
} else {
|
||||
patstr = fm.patstr;
|
||||
}
|
||||
@@ -3408,7 +3408,7 @@ js_InitStringClass(JSContext *cx, JSObje
|
||||
UndefinedValue(), NULL, NULL,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_SHARED, 0, 0,
|
||||
NULL)) {
|
||||
- return JS_FALSE;
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
return proto;
|
||||
--- a/js/src/jstypedarray.cpp
|
||||
+++ b/js/src/jstypedarray.cpp
|
||||
@@ -1334,7 +1334,7 @@ class TypedArrayTemplate
|
||||
if (size != 0 && count >= INT32_MAX / size) {
|
||||
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
|
||||
JSMSG_NEED_DIET, "size and count");
|
||||
- return false;
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
int32 bytelen = size * count;
|
||||
@@ -1668,7 +1668,7 @@ TypedArrayConstruct(JSContext *cx, jsint
|
||||
|
||||
default:
|
||||
JS_NOT_REACHED("shouldn't have gotten here");
|
||||
- return false;
|
||||
+ return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
--- a/js/src/jsxml.cpp
|
||||
+++ b/js/src/jsxml.cpp
|
||||
@@ -282,7 +282,7 @@ NewXMLNamespace(JSContext *cx, JSLinearS
|
||||
|
||||
obj = NewBuiltinClassInstanceXML(cx, &js_NamespaceClass);
|
||||
if (!obj)
|
||||
- return JS_FALSE;
|
||||
+ return NULL;
|
||||
JS_ASSERT(JSVAL_IS_VOID(obj->getNamePrefixVal()));
|
||||
JS_ASSERT(JSVAL_IS_VOID(obj->getNameURIVal()));
|
||||
JS_ASSERT(JSVAL_IS_VOID(obj->getNamespaceDeclared()));
|
||||
@@ -431,7 +431,7 @@ ConvertQNameToString(JSContext *cx, JSOb
|
||||
size_t length = str->length();
|
||||
jschar *chars = (jschar *) cx->malloc((length + 2) * sizeof(jschar));
|
||||
if (!chars)
|
||||
- return JS_FALSE;
|
||||
+ return NULL;
|
||||
*chars = '@';
|
||||
const jschar *strChars = str->getChars(cx);
|
||||
if (!strChars) {
|
||||
--- a/js/src/methodjit/InvokeHelpers.cpp
|
||||
+++ b/js/src/methodjit/InvokeHelpers.cpp
|
||||
@@ -728,7 +728,7 @@ AtSafePoint(JSContext *cx)
|
||||
{
|
||||
JSStackFrame *fp = cx->fp();
|
||||
if (fp->hasImacropc())
|
||||
- return false;
|
||||
+ return NULL;
|
||||
|
||||
JSScript *script = fp->script();
|
||||
return script->maybeNativeCodeForPC(fp->isConstructing(), cx->regs->pc);
|
||||
--- a/js/src/nanojit/NativeX64.cpp
|
||||
+++ b/js/src/nanojit/NativeX64.cpp
|
||||
@@ -1899,7 +1899,7 @@ namespace nanojit
|
||||
}
|
||||
}
|
||||
|
||||
- static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {0x8000000000000000LL,0};
|
||||
+ static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {(int64_t) 0x8000000000000000ULL,0};
|
||||
|
||||
void Assembler::asm_fneg(LIns *ins) {
|
||||
Register rr, ra;
|
85
community/js185/mozjs185-tag.patch
Normal file
85
community/js185/mozjs185-tag.patch
Normal file
|
@ -0,0 +1,85 @@
|
|||
diff -urN js-1.8.5.orig/js/src/jsval.h js-1.8.5/js/src/jsval.h
|
||||
--- js-1.8.5.orig/js/src/jsval.h 2016-04-08 08:44:39.417713832 +0000
|
||||
+++ js-1.8.5/js/src/jsval.h 2016-04-11 06:26:40.807919594 +0000
|
||||
@@ -66,7 +66,7 @@
|
||||
#endif
|
||||
|
||||
#if JS_BITS_PER_WORD == 64
|
||||
-# define JSVAL_TAG_SHIFT 47
|
||||
+# define JSVAL_TAG_SHIFT 48
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -135,7 +135,8 @@
|
||||
/* Remember to propagate changes to the C defines below. */
|
||||
JS_ENUM_HEADER(JSValueTag, uint32)
|
||||
{
|
||||
- JSVAL_TAG_MAX_DOUBLE = 0x1FFF0,
|
||||
+ JSVAL_TAG_DUMMY = 0xFFFFFFFF, /* Make sure the enums cannot fit 16-bits. */
|
||||
+ JSVAL_TAG_MAX_DOUBLE = 0xFFF8,
|
||||
JSVAL_TAG_INT32 = JSVAL_TAG_MAX_DOUBLE | JSVAL_TYPE_INT32,
|
||||
JSVAL_TAG_UNDEFINED = JSVAL_TAG_MAX_DOUBLE | JSVAL_TYPE_UNDEFINED,
|
||||
JSVAL_TAG_STRING = JSVAL_TAG_MAX_DOUBLE | JSVAL_TYPE_STRING,
|
||||
@@ -196,7 +197,7 @@
|
||||
#elif JS_BITS_PER_WORD == 64
|
||||
|
||||
typedef uint32 JSValueTag;
|
||||
-#define JSVAL_TAG_MAX_DOUBLE ((uint32)(0x1FFF0))
|
||||
+#define JSVAL_TAG_MAX_DOUBLE ((uint32)(0xFFF8))
|
||||
#define JSVAL_TAG_INT32 (uint32)(JSVAL_TAG_MAX_DOUBLE | JSVAL_TYPE_INT32)
|
||||
#define JSVAL_TAG_UNDEFINED (uint32)(JSVAL_TAG_MAX_DOUBLE | JSVAL_TYPE_UNDEFINED)
|
||||
#define JSVAL_TAG_STRING (uint32)(JSVAL_TAG_MAX_DOUBLE | JSVAL_TYPE_STRING)
|
||||
@@ -236,8 +237,8 @@
|
||||
|
||||
#elif JS_BITS_PER_WORD == 64
|
||||
|
||||
-#define JSVAL_PAYLOAD_MASK 0x00007FFFFFFFFFFFLL
|
||||
-#define JSVAL_TAG_MASK 0xFFFF800000000000LL
|
||||
+#define JSVAL_PAYLOAD_MASK 0x0000FFFFFFFFFFFFLL
|
||||
+#define JSVAL_TAG_MASK 0xFFFF000000000000LL
|
||||
#define JSVAL_TYPE_TO_TAG(type) ((JSValueTag)(JSVAL_TAG_MAX_DOUBLE | (type)))
|
||||
#define JSVAL_TYPE_TO_SHIFTED_TAG(type) (((uint64)JSVAL_TYPE_TO_TAG(type)) << JSVAL_TAG_SHIFT)
|
||||
|
||||
@@ -297,8 +298,8 @@
|
||||
#if (!defined(_WIN64) && defined(__cplusplus))
|
||||
/* MSVC does not pack these correctly :-( */
|
||||
struct {
|
||||
- uint64 payload47 : 47;
|
||||
- JSValueTag tag : 17;
|
||||
+ uint64 payload48 : 48;
|
||||
+ JSValueTag tag : 16;
|
||||
} debugView;
|
||||
#endif
|
||||
struct {
|
||||
@@ -339,8 +340,8 @@
|
||||
{
|
||||
uint64 asBits;
|
||||
struct {
|
||||
- JSValueTag tag : 17;
|
||||
- uint64 payload47 : 47;
|
||||
+ JSValueTag tag : 16;
|
||||
+ uint64 payload48 : 48;
|
||||
} debugView;
|
||||
struct {
|
||||
union {
|
||||
diff -urN js-1.8.5.orig/js/src/jsvalue.h js-1.8.5/js/src/jsvalue.h
|
||||
--- js-1.8.5.orig/js/src/jsvalue.h 2016-04-08 08:44:39.417713832 +0000
|
||||
+++ js-1.8.5/js/src/jsvalue.h 2016-04-11 06:10:21.219479884 +0000
|
||||
@@ -255,7 +255,7 @@
|
||||
{
|
||||
uint64 lbits = lhs.asBits, rbits = rhs.asBits;
|
||||
return (lbits <= JSVAL_TAG_MAX_DOUBLE && rbits <= JSVAL_TAG_MAX_DOUBLE) ||
|
||||
- (((lbits ^ rbits) & 0xFFFF800000000000LL) == 0);
|
||||
+ (((lbits ^ rbits) & 0xFFFF000000000000LL) == 0);
|
||||
}
|
||||
|
||||
static JS_ALWAYS_INLINE jsval_layout
|
||||
@@ -277,7 +277,7 @@
|
||||
static JS_ALWAYS_INLINE JSValueType
|
||||
JSVAL_EXTRACT_NON_DOUBLE_TYPE_IMPL(jsval_layout l)
|
||||
{
|
||||
- uint64 type = (l.asBits >> JSVAL_TAG_SHIFT) & 0xF;
|
||||
+ uint64 type = (l.asBits >> JSVAL_TAG_SHIFT) & 0x7;
|
||||
JS_ASSERT(type > JSVAL_TYPE_DOUBLE);
|
||||
return (JSValueType)type;
|
||||
}
|
Loading…
Reference in a new issue