pkgsrc/lang/spidermonkey185/patches/patch-jsiter.cpp
jperkin 1e893164d1 spidermonkey185: Fix SunOS/x86_64 mmap handling.
The previous MAP_32BIT workaround was insufficient, SpiderMonkey still makes
certain assumptions about memory layout, requiring that the high 17 bits are
clear.  This was most noticeable with couchdb's couchjs process that would
reliably segfault.

Instead, apply a mixture of Debian and upstream patches to implement their
ia64 workaround on SunOS/x86_64, utilising both a fixed mmap range and
disabling static strings to workaround this issue.

Tested with the couchdb test suite which now runs to completion.

Bump PKGREVISION.
2018-05-02 12:42:50 +00:00

20 lines
657 B
C++

$NetBSD: patch-jsiter.cpp,v 1.1 2018/05/02 12:42:51 jperkin Exp $
Implement Debian disable-static-strings-on-ia64.patch fix.
--- jsiter.cpp.orig 2011-03-31 19:08:36.000000000 +0000
+++ jsiter.cpp
@@ -1002,9 +1002,12 @@ js_IteratorNext(JSContext *cx, JSObject
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;