head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.64 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.62 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.60 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.58 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.56 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.54 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.52 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.50 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.48 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.46 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.44 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.42 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.40 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.38 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.36 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.34 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.32 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.30 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.28 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.26 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.24 pkgsrc-2021Q1-base:1.1 pkgsrc-2020Q4:1.1.0.22 pkgsrc-2020Q4-base:1.1 pkgsrc-2020Q3:1.1.0.20 pkgsrc-2020Q3-base:1.1 pkgsrc-2020Q2:1.1.0.18 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.14 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.16 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.12 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.10 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.8 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.6 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.4 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.2 pkgsrc-2018Q2-base:1.1; locks; strict; comment @// @; 1.1 date 2018.05.02.12.42.51; author jperkin; state Exp; branches; next ; commitid c6Ouwv7Es2pvJIAA; desc @@ 1.1 log @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. @ text @$NetBSD$ Implement Debian disable-static-strings-on-ia64.patch fix. --- jstracer.cpp.orig 2011-03-31 19:08:36.000000000 +0000 +++ jstracer.cpp @@@@ -11505,6 +11505,7 @@@@ TraceRecorder::callNative(uintN argc, JS } 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 @@@@ TraceRecorder::callNative(uintN argc, JS 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 @@@@ TraceRecorder::getCharCodeAt(JSString *s 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 @@@@ TraceRecorder::getCharAt(JSString *str, } 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 @@@@ TraceRecorder::record_JSOP_GETELEM() 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 @@@@ TraceRecorder::record_JSOP_GETELEM() set(&lval, char_ins); return ARECORD_CONTINUE; } +#endif if (lval.isPrimitive()) RETURN_STOP_A("JSOP_GETLEM on a primitive"); @