Thanks for asking around, @careyh. I’ve made a little progress based on the mozilla bug report. I had to change a number of things from symlinks to actual copies. I’ll submit patches for that once I have it working completely, but I now run into a different crash. I got a trace, but don’t have much experience with them, so I’ll need to figure out how to read this:
Crash reason: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
Crash address: 0xfffffffffffffffe
Process uptime: 1 seconds
Thread 0 (crashed)
0 XUL!nsXPCComponents_Utils::EvalInSandbox(nsAString_internal const&, JS::Handle<JS::Value>, JS::Handle<JS::Value>, nsACString_internal const&, int, JSContext*, unsigned char, JS::MutableHandle<JS::Value>) [RootingAPI.h:32e36869f84a : 733 + 0x0]
rax = 0xfffffffffffffffe rdx = 0x00007ffee894b8c8
rcx = 0x00007ffee894b7d0 rbx = 0x00007f852c00c8b8
rsi = 0x00007f852c00c8b8 rdi = 0x00007f8528c9dfe0
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b770
r8 = 0x00007f852c00c8e8 r9 = 0x0000000000000000
r10 = 0x00007f852c00c8b8 r11 = 0x0000000000000006
r12 = 0x0000000000000000 r13 = 0x00007f852c00c8e8
r14 = 0x00007ffee894b8e0 r15 = 0xffffffffffffffe6
rip = 0x000000010b730659
Found by: given as instruction pointer in context
1 XUL!mozilla::net::nsHttpDigestAuth::GenerateCredentials(nsIHttpAuthenticableChannel*, char const*, bool, char16_t const*, char16_t const*, char16_t const*, nsISupports**, nsISupports**, unsigned int*, char**)::hexChar + 0x4c70c
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b790
rip = 0x000000010e4d08bc
Found by: stack scanning
2 XUL!bool js::gc::GCRuntime::addRoot<JS::Value>(JS::Value*, char const*, js::JSGCRootType) [jsgc.cpp:32e36869f84a : 1677 + 0x5]
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b7a0
rip = 0x000000010d5e4ca4
Found by: stack scanning
3 XUL!mozilla::net::nsHttpDigestAuth::GenerateCredentials(nsIHttpAuthenticableChannel*, char const*, bool, char16_t const*, char16_t const*, char16_t const*, nsISupports**, nsISupports**, unsigned int*, char**)::hexChar + 0x4c70c
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b7a8
rip = 0x000000010e4d08bc
Found by: stack scanning
4 XUL!XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:32e36869f84a : 2396 + 0x5]
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b810
rip = 0x000000010b76b0de
Found by: stack scanning
5 XUL!js::jit::ICStubCompiler::getStubCode() [BaselineIC.cpp:32e36869f84a : 609 + 0x2]
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b820
rip = 0x000000010d3b9158
Found by: stack scanning
6 XUL!empty_buffer + 0x20
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b860
rip = 0x000000010d8658d0
Found by: stack scanning
7 XUL!empty_buffer + 0x20
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b868
rip = 0x000000010d8658d0
Found by: stack scanning
8 XUL!XPCVariant::VariantDataToJS(nsIVariant*, tag_nsresult*, JS::MutableHandle<JS::Value>) [XPCVariant.cpp:32e36869f84a : 631 + 0x1]
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b8e0
rip = 0x000000010b76031a
Found by: stack scanning
9 XUL!XPC_WN_Helper_NewResolve(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JSObject*>) [XPCWrappedNativeJSOps.cpp:32e36869f84a : 904 + 0x4]
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b910
rip = 0x000000010b7702b7
Found by: stack scanning
10 XUL!nsXPCComponents_Utils::GetSandbox(nsIXPCComponents_utils_Sandbox**) [nsCOMPtr.h:32e36869f84a : 809 + 0x3]
rbp = 0x00007ffee894b958 rsp = 0x00007ffee894b940
rip = 0x000000010b73000d
Found by: stack scanning
11 XUL!nsXPCComponents_Utils::ReportError(JS::Handle<JS::Value>, JSContext*) [nsJSUtils.h:32e36869f84a : 179 + 0x8]
rsp = 0x00007ffee894b970 rip = 0x000000010b73031a
Found by: stack scanning
12 XUL!NS_IsMainThread() [ThreadLocal.h:32e36869f84a : 127 + 0x5]
rsp = 0x00007ffee894b9a0 rip = 0x000000010b2d7fdd
Found by: stack scanning
13 XUL!XPCCallContext::XPCCallContext(XPCContext::LangType, JSContext*, JS::Handle<JSObject*>, JS::Handle<JSObject*>, JS::Handle<jsid>, unsigned int, JS::Value*, JS::Value*) [XPCCallContext.cpp:32e36869f84a : 59 + 0x7]
rsp = 0x00007ffee894b9b0 rip = 0x000000010b73dd46
Found by: stack scanning
14 XUL!XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) [XPCWrappedNativeJSOps.cpp:32e36869f84a : 1247 + 0xa]
rsp = 0x00007ffee894b9f0 rip = 0x000000010b770aa3
Found by: stack scanning
15 XUL + 0x51d8d0
rsp = 0x00007ffee894bb00 rip = 0x000000010b7708d0
Found by: stack scanning
16 XUL!js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) [Interpreter.cpp:32e36869f84a : 0 + 0x31]
rsp = 0x00007ffee894bb30 rip = 0x000000010d6c88b7
Found by: stack scanning
17 XUL!JS_ResolveStandardClass(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, bool*) [jsapi.cpp:32e36869f84a : 0 + 0x4]
rsp = 0x00007ffee894bb60 rip = 0x000000010d58f190
Found by: stack scanning
18 XUL!js::DefineNativeProperty(js::ExclusiveContext*, JS::Handle<js::NativeObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, bool (*)(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>), bool (*)(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, bool, JS::MutableHandle<JS::Value>), unsigned int) [NativeObject.cpp:32e36869f84a : 1497 + 0x22]
rsp = 0x00007ffee894bba0 rip = 0x000000010d6df187
Found by: stack scanning
19 XUL + 0x51cfd0
rsp = 0x00007ffee894bbe0 rip = 0x000000010b76ffd0
Found by: stack scanning
20 XUL!JS_ResolveStandardClass(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, bool*) [jsapi.cpp:32e36869f84a : 0 + 0x4]
rsp = 0x00007ffee894bbe8 rip = 0x000000010d58f190
Found by: stack scanning
21 XUL!js::NewFunctionWithProto(js::ExclusiveContext*, JS::Handle<JSObject*>, bool (*)(JSContext*, unsigned int, JS::Value*), unsigned int, JSFunction::Flags, JS::Handle<JSObject*>, JS::Handle<JSAtom*>, JSObject*, js::gc::AllocKind, js::NewObjectKind) [jsobjinlines.h:32e36869f84a : 624 + 0x15]
rsp = 0x00007ffee894bc30 rip = 0x000000010d5cc240
Found by: stack scanning
22 XUL!JSObject::defineGeneric(js::ExclusiveContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, bool (*)(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>), bool (*)(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, bool, JS::MutableHandle<JS::Value>), unsigned int) [jsobj.cpp:32e36869f84a : 3147 + 0x8]
rsp = 0x00007ffee894bc80 rip = 0x000000010d61146f
Found by: stack scanning
23 XUL!DefinePropertyById(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, JSPropertyOpWrapper const&, JSStrictPropertyOpWrapper const&, unsigned int, unsigned int) [jsapi.cpp:32e36869f84a : 2878 + 0x12]
rsp = 0x00007ffee894bc90 rip = 0x000000010d591cfb
Found by: stack scanning
24 XUL!js:: [jsfun.cpp:32e36869f84a : 1934 + 0x1b]
rsp = 0x00007ffee894bcb0 rip = 0x000000010d5d0a6d
Found by: stack scanning
25 XUL!js::NewFunctionByIdWithReserved(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), unsigned int, unsigned int, JSObject*, jsid) [jsfriendapi.cpp:32e36869f84a : 520 + 0x26]
rsp = 0x00007ffee894bce0 rip = 0x000000010d5c80f1
Found by: stack scanning
26 XUL!XPCNativeMember::Resolve(XPCCallContext&, XPCNativeInterface*, JS::Handle<JSObject*>, JS::Value*) [XPCWrappedNativeInfo.cpp:32e36869f84a : 95 + 0xd]
rsp = 0x00007ffee894bd30 rip = 0x000000010b76d05e
Found by: stack scanning
27 XUL!JS_DefinePropertyById(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, unsigned int, bool (*)(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>), bool (*)(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, bool, JS::MutableHandle<JS::Value>)) [jsapi.cpp:32e36869f84a : 2885 + 0x5]
rsp = 0x00007ffee894bd70 rip = 0x000000010d591a68
Found by: stack scanning
28 XUL!NS_IsMainThread() [ThreadLocal.h:32e36869f84a : 127 + 0x5]
rsp = 0x00007ffee894bd90 rip = 0x000000010b2d7fdd
Found by: stack scanning
29 XUL!DefinePropertyIfFound(XPCCallContext&, JS::Handle<JSObject*>, JS::Handle<jsid>, XPCNativeSet*, XPCNativeInterface*, XPCNativeMember*, XPCWrappedNativeScope*, bool, XPCWrappedNative*, XPCWrappedNative*, XPCNativeScriptableInfo*, unsigned int, bool*) [XPCWrappedNativeJSOps.cpp:32e36869f84a : 0 + 0xf]
rsp = 0x00007ffee894bda0 rip = 0x000000010b771c58
Found by: stack scanning
30 XUL!bool DefinePropertyOrElement<(js::ExecutionMode)0>(js::ExecutionModeTraits<(js::ExecutionMode)0>::ExclusiveContextType, JS::Handle<js::NativeObject*>, JS::Handle<jsid>, bool (*)(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>), bool (*)(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, bool, JS::MutableHandle<JS::Value>), unsigned int, JS::Handle<JS::Value>, bool, bool) [NativeObject.cpp:32e36869f84a : 1283 + 0x11]
rsp = 0x00007ffee894be00 rip = 0x000000010d6dfcb7
Found by: stack scanning
31 XUL + 0x233c1a0
rsp = 0x00007ffee894be18 rip = 0x000000010d58f1a0
Found by: stack scanning
32 XUL!NS_IsMainThread() [ThreadLocal.h:32e36869f84a : 127 + 0x5]
rsp = 0x00007ffee894be40 rip = 0x000000010b2d7fdd
Found by: stack scanning
33 XUL!XPCCallContext::XPCCallContext(XPCContext::LangType, JSContext*, JS::Handle<JSObject*>, JS::Handle<JSObject*>, JS::Handle<jsid>, unsigned int, JS::Value*, JS::Value*) [XPCCallContext.cpp:32e36869f84a : 59 + 0x7]
rsp = 0x00007ffee894be50 rip = 0x000000010b73dd46
Found by: stack scanning
34 XUL!NS_IsMainThread() [ThreadLocal.h:32e36869f84a : 127 + 0x5]
rsp = 0x00007ffee894be70 rip = 0x000000010b2d7fdd
Found by: stack scanning
35 XUL!<name omitted> [nsRefPtr.h:32e36869f84a : 57 + 0x6]
rsp = 0x00007ffee894be80 rip = 0x000000010b73e2c9
Found by: stack scanning
36 XUL!XPC_WN_Helper_NewResolve(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::MutableHandle<JSObject*>) [XPCWrappedNativeJSOps.cpp:32e36869f84a : 933 + 0x5]
rsp = 0x00007ffee894be90 rip = 0x000000010b7700cc
Found by: stack scanning
37 XUL!js::jit::ICCall_Native::Compiler::getStub(js::jit::ICStubSpace*) [BaselineIC.cpp:32e36869f84a : 10897 + 0x14]
rsp = 0x00007ffee894bf10 rip = 0x000000010d3f90cb
Found by: stack scanning
38 XUL!js::jit::TryAttachCallStub(JSContext*, js::jit::ICCall_Fallback*, JS::Handle<JSScript*>, unsigned char*, JSOp, unsigned int, JS::Value*, bool, bool, bool) [BaselineIC.cpp:32e36869f84a : 8521 + 0x5]
rsp = 0x00007ffee894bf50 rip = 0x000000010d3fee6a
Found by: stack scanning
39 libmozglue.dylib!double_conversion::FillFractionals(unsigned long long, int, int, double_conversion::Vector<char>, int*, int*) [fixed-dtoa.cc:32e36869f84a : 277 + 0x2]
rsp = 0x00007ffee894bf98 rip = 0x00000001072d0000
Found by: stack scanning
40 XUL!js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) [Interpreter.cpp:32e36869f84a : 537 + 0xa]
rsp = 0x00007ffee894bfd0 rip = 0x000000010d6c8f4d
Found by: stack scanning
41 XUL!js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) [BaselineIC.cpp:32e36869f84a : 8663 + 0x18]
rsp = 0x00007ffee894c0b0 rip = 0x000000010d3e9d6a
Found by: stack scanning
42 XUL!js::jit::DoGetElemFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetElem_Fallback*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) [BaselineIC.cpp:32e36869f84a : 3806 + 0x5]
rsp = 0x00007ffee894c150 rip = 0x000000010d3ce171
Found by: stack scanning
43 XUL!js::gc::MapAllocToTraceKind(js::gc::AllocKind)::map + 0x60
rsp = 0x00007ffee894c208 rip = 0x000000010da20b90
Found by: stack scanning