mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-21 06:21:08 +02:00
dev-lang/spidermonkey: Move back to portage-stable
This commit is contained in:
parent
237c094ed1
commit
598a55b14f
@ -1 +0,0 @@
|
||||
DIST js185-1.0.0.tar.gz 6164605 SHA256 5d12f7e1f5b4a99436685d97b9b7b75f094d33580227aa998c406bbae6f2a687 SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718 WHIRLPOOL 58b372713275874d3ae3c6b58c12c56bf8d17d024d591e321538bcdd8e615332e41655954368ce86b90e970209e3fd650c39d931000880f5ec22cb044b5d7a4e
|
@ -1,99 +0,0 @@
|
||||
--- a/js-1.8.5/js/src/configure.in 2011-03-31 15:08:36.000000000 -0400
|
||||
+++ b/js-1.8.5/js/src/configure.in 2012-11-02 15:32:38.000000000 -0400
|
||||
@@ -3550,7 +3550,7 @@
|
||||
_SAVE_CFLAGS="$CFLAGS"
|
||||
if test "$GNU_CC"; then
|
||||
# gcc needs -mfpu=neon to recognize NEON instructions
|
||||
- CFLAGS="$CFLAGS -mfpu=neon -mfloat-abi=softfp"
|
||||
+ CFLAGS="$CFLAGS -mfpu=neon"
|
||||
fi
|
||||
AC_TRY_COMPILE([],
|
||||
[asm("vadd.i8 d0, d0, d0");],
|
||||
@@ -4654,12 +4654,6 @@
|
||||
dnl ========================================================
|
||||
MOZ_ARG_HEADER(Individual module options)
|
||||
|
||||
-dnl Setup default CPU arch for arm target
|
||||
-case "$target_cpu" in
|
||||
- arm*)
|
||||
- MOZ_ARM_ARCH=armv7
|
||||
- ;;
|
||||
-esac
|
||||
dnl ========================================================
|
||||
dnl = Enable building the Thumb2 instruction set
|
||||
dnl ========================================================
|
||||
@@ -4668,66 +4662,32 @@
|
||||
MOZ_THUMB2=1,
|
||||
MOZ_THUMB2=)
|
||||
if test -n "$MOZ_THUMB2"; then
|
||||
- MOZ_ARM_ARCH=armv7
|
||||
+ AC_MSG_WARN([thumb2 enabled instead of autodetected -- hope you know what you are doing])
|
||||
+else
|
||||
+ AC_MSG_CHECKING([whether to build for thumb2])
|
||||
+ AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
|
||||
+ [MOZ_THUMB2=1
|
||||
+ AC_MSG_RESULT([yes])],
|
||||
+ [MOZ_THUMB2=
|
||||
+ AC_MSG_RESULT([no])])
|
||||
fi
|
||||
|
||||
dnl ========================================================
|
||||
dnl = Enable building for ARM specific CPU features
|
||||
dnl ========================================================
|
||||
-MOZ_ARG_WITH_STRING(cpu-arch,
|
||||
-[ --with-cpu-arch=arch Use specific arm architecture CPU features, default armv7],
|
||||
- MOZ_ARM_ARCH=$withval)
|
||||
-
|
||||
if test -n "$MOZ_THUMB2"; then
|
||||
case "$target_cpu" in
|
||||
arm*)
|
||||
- if test "$MOZ_ARM_ARCH" != "armv7"; then
|
||||
- AC_MSG_ERROR([--enable-thumb2 is not compatible with cpu-arch=$MOZ_ARM_ARCH])
|
||||
- fi
|
||||
if test "$GNU_CC"; then
|
||||
AC_DEFINE(MOZ_THUMB2)
|
||||
- AC_DEFINE(MOZ_ARM_ARCH)
|
||||
- CFLAGS="$CFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
|
||||
- CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
|
||||
- ASFLAGS="$ASFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
|
||||
else
|
||||
AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
|
||||
fi
|
||||
;;
|
||||
- *)
|
||||
- AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
|
||||
- ;;
|
||||
- esac
|
||||
-elif test "$MOZ_ARM_ARCH" = "armv7"; then
|
||||
- case "$target_cpu" in
|
||||
- arm*)
|
||||
- if test "$GNU_CC"; then
|
||||
- AC_DEFINE(MOZ_ARM_ARCH)
|
||||
- CFLAGS="$CFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
|
||||
- CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
|
||||
- ASFLAGS="$ASFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
|
||||
- else
|
||||
- AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
|
||||
- fi
|
||||
- ;;
|
||||
- *)
|
||||
- AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
|
||||
- ;;
|
||||
- esac
|
||||
-else
|
||||
- case "$target_cpu" in
|
||||
- arm*)
|
||||
- if test "$GNU_CC"; then
|
||||
- CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -msoft-float"
|
||||
- CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -msoft-float"
|
||||
- ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork -msoft-float"
|
||||
- fi
|
||||
- ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_THUMB2)
|
||||
-AC_SUBST(MOZ_ARM_ARCH)
|
||||
|
||||
dnl ========================================================
|
||||
dnl =
|
@ -1,120 +0,0 @@
|
||||
diff -urN js.orig/src/jsval.h js/src/jsval.h
|
||||
--- js.orig/src/jsval.h 2016-04-08 08:44:39.417713832 +0000
|
||||
+++ 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.orig/src/jsvalue.h js/src/jsvalue.h
|
||||
--- js.orig/src/jsvalue.h 2016-04-08 08:44:39.417713832 +0000
|
||||
+++ 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;
|
||||
}
|
||||
--- js.orig/src/methodjit/MethodJIT.cpp 2016-10-12 13:08:07.307916254 -0400
|
||||
+++ js/src/methodjit/MethodJIT.cpp 2016-10-12 13:08:59.647918787 -0400
|
||||
@@ -186,8 +186,8 @@
|
||||
JS_STATIC_ASSERT(offsetof(VMFrame, savedRBX) == 0x58);
|
||||
JS_STATIC_ASSERT(offsetof(VMFrame, regs.fp) == 0x38);
|
||||
|
||||
-JS_STATIC_ASSERT(JSVAL_TAG_MASK == 0xFFFF800000000000LL);
|
||||
-JS_STATIC_ASSERT(JSVAL_PAYLOAD_MASK == 0x00007FFFFFFFFFFFLL);
|
||||
+JS_STATIC_ASSERT(JSVAL_TAG_MASK == 0xFFFF000000000000LL);
|
||||
+JS_STATIC_ASSERT(JSVAL_PAYLOAD_MASK == 0x0000FFFFFFFFFFFFLL);
|
||||
|
||||
asm volatile (
|
||||
".text\n"
|
||||
@@ -204,8 +204,8 @@
|
||||
"pushq %rbx" "\n"
|
||||
|
||||
/* Load mask registers. */
|
||||
- "movq $0xFFFF800000000000, %r13" "\n"
|
||||
- "movq $0x00007FFFFFFFFFFF, %r14" "\n"
|
||||
+ "movq $0xFFFF000000000000, %r13" "\n"
|
||||
+ "movq $0x0000FFFFFFFFFFFF, %r14" "\n"
|
||||
|
||||
/* Build the JIT frame.
|
||||
* rdi = cx
|
||||
@@ -675,8 +675,8 @@
|
||||
*/
|
||||
JS_STATIC_ASSERT(offsetof(VMFrame, savedRBX) == 0x58);
|
||||
JS_STATIC_ASSERT(offsetof(VMFrame, regs.fp) == 0x38);
|
||||
-JS_STATIC_ASSERT(JSVAL_TAG_MASK == 0xFFFF800000000000LL);
|
||||
-JS_STATIC_ASSERT(JSVAL_PAYLOAD_MASK == 0x00007FFFFFFFFFFFLL);
|
||||
+JS_STATIC_ASSERT(JSVAL_TAG_MASK == 0xFFFF000000000000LL);
|
||||
+JS_STATIC_ASSERT(JSVAL_PAYLOAD_MASK == 0x0000FFFFFFFFFFFFLL);
|
||||
|
||||
// Windows x64 uses assembler version since compiler doesn't support
|
||||
// inline assembler
|
@ -1,15 +0,0 @@
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
|
||||
|
||||
--- js/src/Makefile.in
|
||||
+++ js/src/Makefile.in
|
||||
@@ -888,8 +888,8 @@
|
||||
ifeq (,$(HOST_BIN_SUFFIX))
|
||||
mv -f $(SHLIB_ANY_VER) $(SHLIB_EXACT_VER)
|
||||
@[ ! -h $(SHLIB_ABI_VER) ] || rm -f $(SHLIB_ABI_VER)
|
||||
- ln -s $(SHLIB_EXACT_VER) $(SHLIB_ABI_VER)
|
||||
- ln -s $(SHLIB_ABI_VER) $(SHLIB_ANY_VER)
|
||||
+ ln -s $(notdir $(SHLIB_EXACT_VER)) $(SHLIB_ABI_VER)
|
||||
+ ln -s $(notdir $(SHLIB_ABI_VER)) $(SHLIB_ANY_VER)
|
||||
endif
|
||||
endif
|
||||
ifneq (,$(IMPORT_LIBRARY))
|
@ -1,61 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Mike Hommey <mh+mozilla@glandium.org>
|
||||
# Date 1303461188 -7200
|
||||
# Node ID 59771590e9203d48ef8cbcd7eaf2f8ae45dbb1c1
|
||||
# Parent c4b82ec27d6d6e1c02ef0abb3b6e805bfdd092ec
|
||||
Bug 638056 - Avoid "The cacheFlush support is missing on this platform" error on exotic platforms. r=cdleary
|
||||
|
||||
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
|
||||
--- a/js/src/Makefile.in
|
||||
+++ b/js/src/Makefile.in
|
||||
@@ -383,17 +383,17 @@ CPPSRCS += checks.cc \
|
||||
platform.cc \
|
||||
utils.cc \
|
||||
$(NONE)
|
||||
|
||||
#
|
||||
# END enclude sources for V8 dtoa
|
||||
#############################################
|
||||
|
||||
-ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU)))
|
||||
+ifeq (,$(filter arm% %86 x86_64,$(TARGET_CPU)))
|
||||
|
||||
VPATH += $(srcdir)/assembler \
|
||||
$(srcdir)/assembler/wtf \
|
||||
$(srcdir)/yarr/pcre \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS += pcre_compile.cpp \
|
||||
pcre_exec.cpp \
|
||||
|
||||
# HG changeset patch
|
||||
# User Luke Wagner <lw@mozilla.com>
|
||||
# Date 1299520258 28800
|
||||
# Node ID 68203913d04cf5be53fd16278816183d5670ba5c
|
||||
# Parent 27e5814815491ebb68e474e453aff6c2ea908c43
|
||||
Bug 618485 - Add missing 64-bit big-endian jsval_layout field (r=luke)
|
||||
|
||||
diff --git a/js/src/jsval.h b/js/src/jsval.h
|
||||
--- a/js/src/jsval.h
|
||||
+++ b/js/src/jsval.h
|
||||
@@ -342,16 +342,17 @@ typedef union jsval_layout
|
||||
JSValueTag tag : 17;
|
||||
uint64 payload47 : 47;
|
||||
} debugView;
|
||||
struct {
|
||||
union {
|
||||
int32 i32;
|
||||
uint32 u32;
|
||||
JSWhyMagic why;
|
||||
+ jsuword word;
|
||||
} payload;
|
||||
} s;
|
||||
double asDouble;
|
||||
void *asPtr;
|
||||
} jsval_layout;
|
||||
# endif /* JS_BITS_PER_WORD */
|
||||
#endif /* defined(IS_LITTLE_ENDIAN) */
|
||||
|
||||
|
||||
|
||||
|
@ -1,144 +0,0 @@
|
||||
diff -upr a/js/src/jsapi.cpp b/js/src/jsapi.cpp
|
||||
--- a/js/src/jsapi.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/jsapi.cpp 2016-02-29 18:10:49.302307353 -0600
|
||||
@@ -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;
|
||||
diff -upr a/js/src/jsfun.cpp b/js/src/jsfun.cpp
|
||||
--- a/js/src/jsfun.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/jsfun.cpp 2016-02-29 18:21:45.249674890 -0600
|
||||
@@ -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());
|
||||
diff -upr a/js/src/jsiter.cpp b/js/src/jsiter.cpp
|
||||
--- a/js/src/jsiter.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/jsiter.cpp 2016-02-29 18:24:22.494659919 -0600
|
||||
@@ -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;
|
||||
diff -upr a/js/src/jsparse.cpp b/js/src/jsparse.cpp
|
||||
--- a/js/src/jsparse.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/jsparse.cpp 2016-02-29 18:29:03.997437475 -0600
|
||||
@@ -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();
|
||||
diff -upr a/js/src/jsstr.cpp b/js/src/jsstr.cpp
|
||||
--- a/js/src/jsstr.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/jsstr.cpp 2016-02-29 19:01:45.857779836 -0600
|
||||
@@ -1734,7 +1734,7 @@ class RegExpGuard
|
||||
if (flat) {
|
||||
patstr = flattenPattern(cx, fm.patstr);
|
||||
if (!patstr)
|
||||
- return false;
|
||||
+ return NULL;
|
||||
} else {
|
||||
patstr = fm.patstr;
|
||||
}
|
||||
@@ -3400,7 +3400,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;
|
||||
diff -upr a/js/src/jstypedarray.cpp b/js/src/jstypedarray.cpp
|
||||
--- a/js/src/jstypedarray.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/jstypedarray.cpp 2016-02-29 19:08:53.541136191 -0600
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
diff -upr a/js/src/jsxml.cpp b/js/src/jsxml.cpp
|
||||
--- a/js/src/jsxml.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/jsxml.cpp 2016-02-29 19:17:10.363279731 -0600
|
||||
@@ -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) {
|
||||
diff -upr a/js/src/methodjit/InvokeHelpers.cpp b/js/src/methodjit/InvokeHelpers.cpp
|
||||
--- a/js/src/methodjit/InvokeHelpers.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/methodjit/InvokeHelpers.cpp 2016-02-29 20:34:14.496983346 -0600
|
||||
@@ -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);
|
||||
diff -upr a/js/src/nanojit/NativeX64.cpp b/js/src/nanojit/NativeX64.cpp
|
||||
--- a/js/src/nanojit/NativeX64.cpp 2011-03-31 14:08:36.000000000 -0500
|
||||
+++ b/js/src/nanojit/NativeX64.cpp 2016-02-29 20:19:56.487934808 -0600
|
||||
@@ -1899,7 +1899,7 @@ namespace nanojit
|
||||
}
|
||||
}
|
||||
|
||||
- static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {0x8000000000000000LL,0};
|
||||
+ static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {int64_t(0x8000000000000000LL),0};
|
||||
|
||||
void Assembler::asm_fneg(LIns *ins) {
|
||||
Register rr, ra;
|
@ -1,53 +0,0 @@
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=589735
|
||||
|
||||
--- a/js/src/jsgcchunk.cpp 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jsgcchunk.cpp 2012-11-02 10:36:08.324453878 +0100
|
||||
@@ -318,15 +318,48 @@
|
||||
static void *
|
||||
MapPages(void *addr, size_t size)
|
||||
{
|
||||
+#if defined(__ia64__)
|
||||
+ /*
|
||||
+ * The JS engine assumes that all allocated pointers have their high 17 bits clear,
|
||||
+ * which ia64's mmap doesn't support directly. However, we can emulate it by passing
|
||||
+ * mmap an "addr" parameter with those bits clear. The mmap will return that address,
|
||||
+ * or the nearest available memory above that address, providing a near-guarantee
|
||||
+ * that those bits are clear. If they are not, we return NULL below to indicate
|
||||
+ * out-of-memory.
|
||||
+ *
|
||||
+ * The addr is chosen as 0x0000070000000000, which still allows about 120TB of virtual
|
||||
+ * address space.
|
||||
+ *
|
||||
+ * See Bug 589735 for more information.
|
||||
+ */
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* We don't use MAP_FIXED here, because it can cause the *replacement*
|
||||
* of existing mappings, and we only want to create new mappings.
|
||||
*/
|
||||
+#if defined(__ia64__)
|
||||
+ void *p = mmap(addr ? addr : (void*)0x0000070000000000,
|
||||
+ size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
|
||||
+ -1, 0);
|
||||
+#else
|
||||
void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
|
||||
-1, 0);
|
||||
+#endif
|
||||
if (p == MAP_FAILED)
|
||||
return NULL;
|
||||
+#if defined(__ia64__)
|
||||
+ /*
|
||||
+ * If the caller requested a specific memory location, verify that's what mmap returned.
|
||||
+ * Otherwise: If the allocated memory doesn't have its upper 17 bits clear, consider it
|
||||
+ * as out of memory.
|
||||
+ */
|
||||
+ if (addr && p != addr
|
||||
+ || !addr && ((long long)p & 0xffff800000000000)) {
|
||||
+#else
|
||||
+ /* If the caller requested a specific memory location, verify that's what mmap returned. */
|
||||
if (addr && p != addr) {
|
||||
+#endif
|
||||
/* We succeeded in mapping memory, but not in the right place. */
|
||||
JS_ALWAYS_TRUE(munmap(p, size) == 0);
|
||||
return NULL;
|
@ -1,381 +0,0 @@
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=589735
|
||||
|
||||
--- a/js/src/jsatom.cpp 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jsatom.cpp 2012-11-02 10:43:16.970562590 +0100
|
||||
@@ -603,11 +603,13 @@
|
||||
JSString str, *str2;
|
||||
JSAtomState *state;
|
||||
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
if (length == 1) {
|
||||
jschar c = *chars;
|
||||
if (c < UNIT_STRING_LIMIT)
|
||||
return STRING_TO_ATOM(JSString::unitString(c));
|
||||
}
|
||||
+#endif
|
||||
|
||||
str.initFlatNotTerminated((jschar *)chars, length);
|
||||
state = &cx->runtime->atomState;
|
||||
--- a/js/src/jsiter.cpp 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jsiter.cpp 2012-11-02 10:43:16.974562590 +0100
|
||||
@@ -1002,9 +1002,12 @@
|
||||
|
||||
JSString *str;
|
||||
jsint i;
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
if (rval->isInt32() && (jsuint(i = rval->toInt32()) < INT_STRING_LIMIT)) {
|
||||
str = JSString::intString(i);
|
||||
- } else {
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
str = js_ValueToString(cx, *rval);
|
||||
if (!str)
|
||||
return false;
|
||||
--- a/js/src/jsnum.cpp 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jsnum.cpp 2012-11-02 10:43:16.982562589 +0100
|
||||
@@ -605,8 +605,10 @@
|
||||
{
|
||||
uint32 ui;
|
||||
if (si >= 0) {
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
if (si < INT_STRING_LIMIT)
|
||||
return JSString::intString(si);
|
||||
+#endif
|
||||
ui = si;
|
||||
} else {
|
||||
ui = uint32(-si);
|
||||
@@ -1169,6 +1171,7 @@
|
||||
|
||||
int32_t i;
|
||||
if (JSDOUBLE_IS_INT32(d, &i)) {
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
if (base == 10 && jsuint(i) < INT_STRING_LIMIT)
|
||||
return JSString::intString(i);
|
||||
if (jsuint(i) < jsuint(base)) {
|
||||
@@ -1176,6 +1179,7 @@
|
||||
return JSString::intString(i);
|
||||
return JSString::unitString(jschar('a' + i - 10));
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (JSString *str = c->dtoaCache.lookup(base, d))
|
||||
return str;
|
||||
--- a/js/src/jsstr.cpp 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jsstr.cpp 2012-11-02 10:43:16.990562588 +0100
|
||||
@@ -3121,6 +3121,8 @@
|
||||
JS_FS_END
|
||||
};
|
||||
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
+
|
||||
/*
|
||||
* Set up some tools to make it easier to generate large tables. After constant
|
||||
* folding, for each n, Rn(0) is the comma-separated list R(0), R(1), ..., R(2^n-1).
|
||||
@@ -3291,6 +3293,8 @@
|
||||
#undef R3
|
||||
#undef R7
|
||||
|
||||
+#endif /* defined(JS_HAS_STATIC_STRINGS) */
|
||||
+
|
||||
JSBool
|
||||
js_String(JSContext *cx, uintN argc, Value *vp)
|
||||
{
|
||||
@@ -3331,6 +3335,7 @@
|
||||
uint16_t code;
|
||||
if (!ValueToUint16(cx, argv[0], &code))
|
||||
return JS_FALSE;
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
if (code < UNIT_STRING_LIMIT) {
|
||||
str = JSString::unitString(code);
|
||||
if (!str)
|
||||
@@ -3338,6 +3343,7 @@
|
||||
vp->setString(str);
|
||||
return JS_TRUE;
|
||||
}
|
||||
+#endif
|
||||
argv[0].setInt32(code);
|
||||
}
|
||||
chars = (jschar *) cx->malloc((argc + 1) * sizeof(jschar));
|
||||
@@ -3367,8 +3373,10 @@
|
||||
{
|
||||
JS_ASSERT(JS_ON_TRACE(cx));
|
||||
jschar c = (jschar)i;
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
if (c < UNIT_STRING_LIMIT)
|
||||
return JSString::unitString(c);
|
||||
+#endif
|
||||
return js_NewStringCopyN(cx, &c, 1);
|
||||
}
|
||||
#endif
|
||||
--- a/js/src/jsstr.h 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jsstr.h 2012-11-02 10:43:16.998562587 +0100
|
||||
@@ -57,6 +57,15 @@
|
||||
#include "jsvalue.h"
|
||||
#include "jscell.h"
|
||||
|
||||
+#if !defined(__ia64__)
|
||||
+/*
|
||||
+ * Don't use static strings on ia64 since the compiler may put the static
|
||||
+ * memory out of the acceptable 47-bit jsval pointer range.
|
||||
+ */
|
||||
+# define JS_HAS_STATIC_STRINGS
|
||||
+#endif
|
||||
+
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
enum {
|
||||
UNIT_STRING_LIMIT = 256U,
|
||||
SMALL_CHAR_LIMIT = 128U, /* Bigger chars cannot be in a length-2 string. */
|
||||
@@ -64,6 +73,7 @@
|
||||
INT_STRING_LIMIT = 256U,
|
||||
NUM_HUNDRED_STRINGS = 156U
|
||||
};
|
||||
+#endif
|
||||
|
||||
extern jschar *
|
||||
js_GetDependentStringChars(JSString *str);
|
||||
@@ -380,10 +390,15 @@
|
||||
typedef uint8 SmallChar;
|
||||
|
||||
static inline bool fitsInSmallChar(jschar c) {
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
return c < SMALL_CHAR_LIMIT && toSmallChar[c] != INVALID_SMALL_CHAR;
|
||||
+#else
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
static inline bool isUnitString(void *ptr) {
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
jsuword delta = reinterpret_cast<jsuword>(ptr) -
|
||||
reinterpret_cast<jsuword>(unitStringTable);
|
||||
if (delta >= UNIT_STRING_LIMIT * sizeof(JSString))
|
||||
@@ -392,9 +407,13 @@
|
||||
/* If ptr points inside the static array, it must be well-aligned. */
|
||||
JS_ASSERT(delta % sizeof(JSString) == 0);
|
||||
return true;
|
||||
+#else
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
static inline bool isLength2String(void *ptr) {
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
jsuword delta = reinterpret_cast<jsuword>(ptr) -
|
||||
reinterpret_cast<jsuword>(length2StringTable);
|
||||
if (delta >= NUM_SMALL_CHARS * NUM_SMALL_CHARS * sizeof(JSString))
|
||||
@@ -403,9 +422,13 @@
|
||||
/* If ptr points inside the static array, it must be well-aligned. */
|
||||
JS_ASSERT(delta % sizeof(JSString) == 0);
|
||||
return true;
|
||||
+#else
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
static inline bool isHundredString(void *ptr) {
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
jsuword delta = reinterpret_cast<jsuword>(ptr) -
|
||||
reinterpret_cast<jsuword>(hundredStringTable);
|
||||
if (delta >= NUM_HUNDRED_STRINGS * sizeof(JSString))
|
||||
@@ -414,6 +437,9 @@
|
||||
/* If ptr points inside the static array, it must be well-aligned. */
|
||||
JS_ASSERT(delta % sizeof(JSString) == 0);
|
||||
return true;
|
||||
+#else
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
static inline bool isStatic(void *ptr) {
|
||||
@@ -424,6 +450,7 @@
|
||||
#pragma align 8 (__1cIJSStringPunitStringTable_, __1cIJSStringSlength2StringTable_, __1cIJSStringShundredStringTable_)
|
||||
#endif
|
||||
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
static const SmallChar INVALID_SMALL_CHAR = -1;
|
||||
|
||||
static const jschar fromSmallChar[];
|
||||
@@ -436,6 +463,7 @@
|
||||
* strings, we keep a table to map from integer to the correct string.
|
||||
*/
|
||||
static const JSString *const intStringTable[];
|
||||
+#endif
|
||||
|
||||
static JSFlatString *unitString(jschar c);
|
||||
static JSLinearString *getUnitString(JSContext *cx, JSString *str, size_t index);
|
||||
--- a/js/src/jsstrinlines.h 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jsstrinlines.h 2012-11-02 10:43:17.010562586 +0100
|
||||
@@ -215,52 +215,75 @@
|
||||
inline JSFlatString *
|
||||
JSString::unitString(jschar c)
|
||||
{
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
JS_ASSERT(c < UNIT_STRING_LIMIT);
|
||||
return const_cast<JSString *>(&unitStringTable[c])->assertIsFlat();
|
||||
+#else
|
||||
+ JS_NOT_REACHED("no static strings");
|
||||
+ return NULL;
|
||||
+#endif
|
||||
}
|
||||
|
||||
inline JSLinearString *
|
||||
JSString::getUnitString(JSContext *cx, JSString *str, size_t index)
|
||||
{
|
||||
JS_ASSERT(index < str->length());
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
const jschar *chars = str->getChars(cx);
|
||||
if (!chars)
|
||||
return NULL;
|
||||
jschar c = chars[index];
|
||||
if (c < UNIT_STRING_LIMIT)
|
||||
return unitString(c);
|
||||
+#endif
|
||||
return js_NewDependentString(cx, str, index, 1);
|
||||
}
|
||||
|
||||
inline JSFlatString *
|
||||
JSString::length2String(jschar c1, jschar c2)
|
||||
{
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
JS_ASSERT(fitsInSmallChar(c1));
|
||||
JS_ASSERT(fitsInSmallChar(c2));
|
||||
return const_cast<JSString *> (
|
||||
&length2StringTable[(((size_t)toSmallChar[c1]) << 6) + toSmallChar[c2]]
|
||||
)->assertIsFlat();
|
||||
+#else
|
||||
+ JS_NOT_REACHED("no static strings");
|
||||
+ return NULL;
|
||||
+#endif
|
||||
}
|
||||
|
||||
inline JSFlatString *
|
||||
JSString::length2String(uint32 i)
|
||||
{
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
JS_ASSERT(i < 100);
|
||||
return length2String('0' + i / 10, '0' + i % 10);
|
||||
+#else
|
||||
+ JS_NOT_REACHED("no static strings");
|
||||
+ return NULL;
|
||||
+#endif
|
||||
}
|
||||
|
||||
inline JSFlatString *
|
||||
JSString::intString(jsint i)
|
||||
{
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
jsuint u = jsuint(i);
|
||||
JS_ASSERT(u < INT_STRING_LIMIT);
|
||||
return const_cast<JSString *>(JSString::intStringTable[u])->assertIsFlat();
|
||||
+#else
|
||||
+ JS_NOT_REACHED("no static strings");
|
||||
+ return NULL;
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* Get a static atomized string for chars if possible. */
|
||||
inline JSFlatString *
|
||||
JSString::lookupStaticString(const jschar *chars, size_t length)
|
||||
{
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
if (length == 1) {
|
||||
if (chars[0] < UNIT_STRING_LIMIT)
|
||||
return unitString(chars[0]);
|
||||
@@ -290,6 +313,7 @@
|
||||
return intString(i);
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
return NULL;
|
||||
}
|
||||
--- a/js/src/jstracer.cpp 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jstracer.cpp 2012-11-02 10:43:17.022562584 +0100
|
||||
@@ -11505,6 +11505,7 @@
|
||||
}
|
||||
if (vp[1].isString()) {
|
||||
JSString *str = vp[1].toString();
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
if (native == js_str_charAt) {
|
||||
jsdouble i = vp[2].toNumber();
|
||||
if (JSDOUBLE_IS_NaN(i))
|
||||
@@ -11518,7 +11519,9 @@
|
||||
set(&vp[0], char_ins);
|
||||
pendingSpecializedNative = IGNORE_NATIVE_CALL_COMPLETE_CALLBACK;
|
||||
return RECORD_CONTINUE;
|
||||
- } else if (native == js_str_charCodeAt) {
|
||||
+ } else
|
||||
+#endif
|
||||
+ if (native == js_str_charCodeAt) {
|
||||
jsdouble i = vp[2].toNumber();
|
||||
if (JSDOUBLE_IS_NaN(i))
|
||||
i = 0;
|
||||
@@ -12967,6 +12970,7 @@
|
||||
JS_STATIC_ASSERT(sizeof(JSString) == 16 || sizeof(JSString) == 32);
|
||||
|
||||
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
JS_REQUIRES_STACK LIns*
|
||||
TraceRecorder::getUnitString(LIns* str_ins, LIns* idx_ins)
|
||||
{
|
||||
@@ -13010,6 +13014,7 @@
|
||||
}
|
||||
return RECORD_CONTINUE;
|
||||
}
|
||||
+#endif
|
||||
|
||||
// Typed array tracing depends on EXPANDED_LOADSTORE and F2I
|
||||
#if NJ_EXPANDED_LOADSTORE_SUPPORTED && NJ_F2I_SUPPORTED
|
||||
@@ -13044,6 +13049,7 @@
|
||||
LIns* obj_ins = get(&lval);
|
||||
LIns* idx_ins = get(&idx);
|
||||
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
// Special case for array-like access of strings.
|
||||
if (lval.isString() && hasInt32Repr(idx)) {
|
||||
if (call)
|
||||
@@ -13056,6 +13062,7 @@
|
||||
set(&lval, char_ins);
|
||||
return ARECORD_CONTINUE;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (lval.isPrimitive())
|
||||
RETURN_STOP_A("JSOP_GETLEM on a primitive");
|
||||
--- a/js/src/jstracer.h 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/jstracer.h 2012-11-02 10:43:17.034562582 +0100
|
||||
@@ -1394,10 +1394,12 @@
|
||||
JS_REQUIRES_STACK RecordingStatus getCharCodeAt(JSString *str,
|
||||
nanojit::LIns* str_ins, nanojit::LIns* idx_ins,
|
||||
nanojit::LIns** out_ins);
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
JS_REQUIRES_STACK nanojit::LIns* getUnitString(nanojit::LIns* str_ins, nanojit::LIns* idx_ins);
|
||||
JS_REQUIRES_STACK RecordingStatus getCharAt(JSString *str,
|
||||
nanojit::LIns* str_ins, nanojit::LIns* idx_ins,
|
||||
JSOp mode, nanojit::LIns** out_ins);
|
||||
+#endif
|
||||
|
||||
JS_REQUIRES_STACK RecordingStatus initOrSetPropertyByName(nanojit::LIns* obj_ins,
|
||||
Value* idvalp, Value* rvalp,
|
||||
--- a/js/src/tracejit/Writer.cpp 2011-03-31 21:08:36.000000000 +0200
|
||||
+++ b/js/src/tracejit/Writer.cpp 2012-11-02 10:43:17.038562582 +0100
|
||||
@@ -246,7 +246,9 @@
|
||||
// ins = andq ins_oprnd1, ins_oprnd2
|
||||
ret = true;
|
||||
#endif
|
||||
- } else if (ins->isop(LIR_addp) &&
|
||||
+ }
|
||||
+#ifdef JS_HAS_STATIC_STRINGS
|
||||
+ else if (ins->isop(LIR_addp) &&
|
||||
((ins->oprnd1()->isImmP() &&
|
||||
(void *)ins->oprnd1()->immP() == JSString::unitStringTable) ||
|
||||
(ins->oprnd2()->isImmP() &&
|
||||
@@ -258,6 +260,7 @@
|
||||
// ins = addp JSString::unitStringTable, ...
|
||||
ret = true;
|
||||
}
|
||||
+#endif
|
||||
|
||||
return ret;
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
--- js/src/jsnum.h 2011-03-03 05:43:06.000000000 -0500
|
||||
+++ js/src/jsnum.h.new 2012-08-16 14:58:04.000000000 -0400
|
||||
@@ -97,6 +97,8 @@
|
||||
{
|
||||
#ifdef WIN32
|
||||
return _finite(d);
|
||||
+#elif defined(__UCLIBC__)
|
||||
+ return isfinite(d);
|
||||
#else
|
||||
return finite(d);
|
||||
#endif
|
@ -1,32 +0,0 @@
|
||||
This build system appears to allow for the use of -lfoo form to link
|
||||
against locally built libraries. However this appears to not be used
|
||||
and the automatic addition of -lfoo libs to make's dependencies breaks
|
||||
when an alternate $ROOT is set because make's search for -lfoo libs
|
||||
is incomplete and only considers /lib and /usr/lib.
|
||||
|
||||
--- js-1.8.5/js/src/config/rules.mk.orig 2015-10-12 15:34:30.641354103 -0700
|
||||
+++ js-1.8.5/js/src/config/rules.mk 2015-10-12 15:35:33.845673943 -0700
|
||||
@@ -860,23 +860,6 @@
|
||||
HOST_LIBS_DEPS = $(filter %.$(LIB_SUFFIX), $(HOST_LIBS))
|
||||
DSO_LDOPTS_DEPS = $(EXTRA_DSO_LIBS) $(filter %.$(LIB_SUFFIX), $(EXTRA_DSO_LDOPTS))
|
||||
|
||||
-ifndef _LIBNAME_RELATIVE_PATHS
|
||||
-
|
||||
-LIBS_DEPS += $(filter -l%, $(LIBS))
|
||||
-HOST_LIBS_DEPS += $(filter -l%, $(HOST_LIBS))
|
||||
-DSO_LDOPTS_DEPS += $(filter -l%, $(EXTRA_DSO_LDOPTS))
|
||||
-
|
||||
-_LIBDIRS = $(patsubst -L%,%,$(filter -L%, $(LIBS) $(HOST_LIBS) $(EXTRA_DSO_LDOPTS)))
|
||||
-ifneq (,$(_LIBDIRS))
|
||||
-vpath $(LIB_PREFIX)%.$(LIB_SUFFIX) $(_LIBDIRS)
|
||||
-ifdef IMPORT_LIB_SUFFIX
|
||||
-vpath $(LIB_PREFIX)%.$(IMPORT_LIB_SUFFIX) $(_LIBDIRS)
|
||||
-endif # IMPORT_LIB_SUFFIX
|
||||
-vpath $(DLL_PREFIX)%$(DLL_SUFFIX) $(_LIBDIRS)
|
||||
-endif # _LIBDIRS
|
||||
-
|
||||
-endif # _LIBNAME_RELATIVE_PATHS
|
||||
-
|
||||
# Dependencies which, if modified, should cause everything to rebuild
|
||||
GLOBAL_DEPS += Makefile Makefile.in $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk
|
||||
|
@ -1,21 +0,0 @@
|
||||
--- a/js/src/configure.in 2012-11-01 19:42:20.130330321 +0100
|
||||
+++ b/js/src/configure.in 2012-11-01 20:34:03.561351492 +0100
|
||||
@@ -3477,7 +3477,16 @@
|
||||
esac
|
||||
|
||||
dnl Performance measurement headers.
|
||||
-AC_CHECK_HEADER(linux/perf_event.h, HAVE_LINUX_PERF_EVENT_H=1)
|
||||
+AC_CHECK_HEADER(linux/perf_event.h,
|
||||
+ [AC_CACHE_CHECK(for perf_event_open system call,ac_cv_perf_event_open,
|
||||
+ [AC_TRY_COMPILE([#include <sys/syscall.h>],[return sizeof(__NR_perf_event_open);],
|
||||
+ ac_cv_perf_event_open=yes,
|
||||
+ ac_cv_perf_event_open=no)])])
|
||||
+if test "$ac_cv_perf_event_open" = "yes"; then
|
||||
+ HAVE_LINUX_PERF_EVENT_H=1
|
||||
+else
|
||||
+ HAVE_LINUX_PERF_EVENT_H=
|
||||
+fi
|
||||
AC_SUBST(HAVE_LINUX_PERF_EVENT_H)
|
||||
|
||||
dnl Checks for libraries.
|
||||
|
@ -1,32 +0,0 @@
|
||||
diff -Naur js/src/configure.in js.new/src/configure.in
|
||||
--- a/js/src/symverscript.in 2012-11-07 09:36:16.000000000 -0500
|
||||
+++ b/js/src/symverscript.in 2012-11-07 09:37:05.000000000 -0500
|
||||
@@ -0,0 +1,4 @@
|
||||
+mozjs185 {
|
||||
+ global: *;
|
||||
+};
|
||||
+
|
||||
diff -Naur js/src/Makefile.in js.new/src/Makefile.in
|
||||
--- a/js/src/Makefile.in 2012-11-07 09:36:16.000000000 -0500
|
||||
+++ b/js/src/Makefile.in 2012-11-07 09:37:09.000000000 -0500
|
||||
@@ -837,7 +837,10 @@
|
||||
mozjs185.pc \
|
||||
$(NULL)
|
||||
|
||||
-GARBAGE += $(pkg_config_files)
|
||||
+symverscript: symverscript.in
|
||||
+ cat $< > $@
|
||||
+
|
||||
+GARBAGE += $(pkg_config_files) symverscript
|
||||
|
||||
%.pc: $(srcdir)/%.pc.in Makefile
|
||||
cat $< | sed \
|
||||
@@ -872,6 +875,8 @@
|
||||
SHLIB_ABI_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_ABI_VERSION)
|
||||
SHLIB_EXACT_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_VERSION)
|
||||
$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -Wl,-soname,$(notdir $(SHLIB_ABI_VER))
|
||||
+$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -Wl,-version-script,symverscript
|
||||
+$(SHARED_LIBRARY): symverscript
|
||||
endif
|
||||
endif
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- a/js/src/config/system-headers
|
||||
+++ b/js/src/config/system-headers
|
||||
@@ -595,6 +595,7 @@ proto/exec.h
|
||||
psap.h
|
||||
Pt.h
|
||||
pthread.h
|
||||
+pthread_np.h
|
||||
pwd.h
|
||||
Python.h
|
||||
QDOffscreen.h
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- a/js/src/config/milestone.pl 2013-02-11 17:33:22.000000000 -0500
|
||||
+++ b/js/src/config/milestone.pl 2015-07-15 10:44:31.676153600 -0400
|
||||
@@ -55,7 +55,7 @@
|
||||
#
|
||||
my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
|
||||
|
||||
-if (defined(@TEMPLATE_FILE)) {
|
||||
+if (@TEMPLATE_FILE) {
|
||||
my $TFILE;
|
||||
|
||||
foreach $TFILE (@TEMPLATE_FILE) {
|
@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>mozilla</herd>
|
||||
<longdescription lang="en">
|
||||
Stand-alone JavaScript C library
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name='debug'>Enable assertions to allow for easier debugging of programs that link to spidermonkey -- note this will often crash software on regular end-user systems</flag>
|
||||
<flag name='threadsafe'>Build a threadsafe version of spidermonkey</flag>
|
||||
<flag name='system-icu'>Use the system-wide <pkg>dev-libs/icu</pkg> instead of bundled -- note, only takes effect when icu flag is enabled</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
@ -1,137 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Id$
|
||||
|
||||
EAPI="5"
|
||||
WANT_AUTOCONF="2.1"
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
PYTHON_REQ_USE="threads"
|
||||
inherit autotools eutils toolchain-funcs multilib python-any-r1 versionator pax-utils
|
||||
|
||||
MY_PN="js"
|
||||
TARBALL_PV="$(replace_all_version_separators '' $(get_version_component_range 1-3))"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
|
||||
DESCRIPTION="Stand-alone JavaScript C library"
|
||||
HOMEPAGE="http://www.mozilla.org/js/spidermonkey/"
|
||||
SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${TARBALL_P}.tar.gz"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="0/mozjs185"
|
||||
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x64-macos"
|
||||
IUSE="debug minimal static-libs test"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
BUILDDIR="${S}/js/src"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.7.0
|
||||
x64-macos? ( dev-libs/jemalloc )"
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
app-arch/zip
|
||||
virtual/pkgconfig"
|
||||
|
||||
pkg_setup(){
|
||||
if [[ ${MERGE_TYPE} != "binary" ]]; then
|
||||
export LC_ALL="C"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
|
||||
epatch "${FILESDIR}/${P}-fix-install-symlinks.patch"
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
|
||||
epatch "${FILESDIR}/${P}-fix-ppc64.patch"
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=400727
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=420471
|
||||
epatch "${FILESDIR}/${P}-arm_respect_cflags-3.patch"
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=438746
|
||||
epatch "${FILESDIR}"/${PN}-1.8.7-freebsd-pthreads.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=441928
|
||||
epatch "${FILESDIR}"/${PN}-1.8.5-perf_event-check.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=439260
|
||||
epatch "${FILESDIR}"/${P}-symbol-versions.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=441934
|
||||
epatch "${FILESDIR}"/${PN}-1.8.5-ia64-fix.patch
|
||||
epatch "${FILESDIR}"/${PN}-1.8.5-ia64-static-strings.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=431560
|
||||
epatch "${FILESDIR}"/${PN}-1.8.5-isfinite.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=552786
|
||||
epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
|
||||
# fix builds for alternate $ROOT locations
|
||||
epatch "${FILESDIR}"/${P}-no-link-lib-deps.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=582478
|
||||
epatch "${FILESDIR}"/${P}-gcc6.patch
|
||||
# Fix for CONFIG_ARM64_VA_BITS_48=y
|
||||
# https://github.com/coreos/coreos-overlay/pull/2241
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1143022
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1242326
|
||||
if [[ "${ARCH}" == "arm64" ]]; then
|
||||
epatch "${FILESDIR}/${P}-fix-arm64-va-48.patch"
|
||||
fi
|
||||
|
||||
epatch_user
|
||||
|
||||
cd "${BUILDDIR}" || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local nspr_cflags nspr_libs
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
# Mozilla screws up the meaning of BUILD, HOST, and TARGET :(
|
||||
tc-export_build_env CC CXX LD AR RANLIB PKG_CONFIG \
|
||||
BUILD_CC BUILD_CXX BUILD_LD BUILD_AR BUILD_RANLIB
|
||||
export HOST_CC="${BUILD_CC}" HOST_CFLAGS="${BUILD_CFLAGS}" \
|
||||
HOST_CXX="${BUILD_CXX}" HOST_CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
HOST_LD="${BUILD_LD}" HOST_LDFLAGS="${BUILD_LDFLAGS}" \
|
||||
HOST_AR="${BUILD_AR}" HOST_RANLIB="${BUILD_RANLIB}"
|
||||
|
||||
# Use pkg-config instead of nspr-config to use $SYSROOT
|
||||
nspr_cflags="$(${PKG_CONFIG} --cflags nspr)" || die
|
||||
nspr_libs="$(${PKG_CONFIG} --libs nspr)" || die
|
||||
|
||||
econf \
|
||||
${myopts} \
|
||||
--host="${CBUILD}" \
|
||||
--target="${CHOST}" \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--enable-threadsafe \
|
||||
--with-nspr-cflags="${nspr_cflags}" \
|
||||
--with-nspr-libs="${nspr_libs}" \
|
||||
$(use_enable debug) \
|
||||
$(use_enable static-libs static) \
|
||||
$(use_enable test tests)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
emake
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/jsapi-tests" || die
|
||||
# for bug 415791
|
||||
pax-mark mr jsapi-tests
|
||||
emake check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
emake DESTDIR="${D}" install
|
||||
# bug 437520 , exclude js shell for small systems
|
||||
if ! use minimal ; then
|
||||
dobin shell/js
|
||||
pax-mark m "${ED}/usr/bin/js"
|
||||
fi
|
||||
dodoc ../../README
|
||||
dohtml README.html
|
||||
|
||||
if ! use static-libs; then
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -delete || die
|
||||
fi
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install prepare setup test
|
||||
DEPEND=>=dev-libs/nspr-4.7.0 x64-macos? ( dev-libs/jemalloc ) || ( >=dev-lang/python-2.7.5-r2:2.7[threads] ) app-arch/zip virtual/pkgconfig >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) ~sys-devel/autoconf-2.13 >=sys-devel/libtool-2.4
|
||||
DESCRIPTION=Stand-alone JavaScript C library
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.mozilla.org/js/spidermonkey/
|
||||
IUSE=debug minimal static-libs test
|
||||
KEYWORDS=alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x64-macos
|
||||
LICENSE=NPL-1.1
|
||||
RDEPEND=>=dev-libs/nspr-4.7.0 x64-macos? ( dev-libs/jemalloc )
|
||||
SLOT=0/mozjs185
|
||||
SRC_URI=https://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 libtool f143db5a74ccd9ca28c1234deffede96 ltprune 08f9e1d9ee0af8f5d9a7854efbcd8c0e multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-any-r1 4900ae970f827a22d33d41bd8b8f9ace python-utils-r1 12114a2a9aab35b93efc037a196b3234 toolchain-funcs f164325a2cdb5b3ea39311d483988861 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748
|
||||
_md5_=c674255eca6d8201ff4579adebb9576a
|
Loading…
x
Reference in New Issue
Block a user