--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/desktop/firefox/patches/firefox-46-dtrace.patch Tue Mar 01 12:56:53 2016 -0800
@@ -0,0 +1,58 @@
+See Mozilla bug #702179 - dtrace probes are not installed on Solaris with
+static js lib.
+dtrace will trim the function name (too long).
+Do not plan to send upstream.
+
+diff -r abcf3e3a52d4 js/src/Makefile.in
+--- a/js/src/Makefile.in Sat Sep 05 10:14:47 2015 +0800
++++ b/js/src/Makefile.in Sun Sep 13 12:59:09 2015 +0800
+@@ -16,7 +16,6 @@
+
+ run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
+
+-DIST_INSTALL = 1
+ NO_EXPAND_LIBS = 1
+
+ ifdef JS_HAS_CTYPES
+diff -r abcf3e3a52d4 toolkit/library/libxul.mk
+--- a/toolkit/library/libxul.mk Sat Sep 05 10:14:47 2015 +0800
++++ b/toolkit/library/libxul.mk Sun Sep 13 12:59:09 2015 +0800
+@@ -44,7 +44,7 @@
+ endif
+
+ ifeq ($(OS_ARCH),SunOS)
+-OS_LDFLAGS += -lm -Wl,-z,defs
++OS_LDFLAGS += -lm -lsendfile -Wl,-z,defs ../../js/src/js-dtrace.o
+ endif
+
+ # BFD ld doesn't create multiple PT_LOADs as usual when an unknown section
+diff -r abcf3e3a52d4 js/src/jsobj.cpp
+--- a/js/src/jsobj.cpp Sat Sep 05 10:14:47 2015 +0800
++++ b/js/src/jsobj.cpp Sun Sep 13 12:59:09 2015 +0800
+@@ -1233,6 +1233,8 @@
+ !proto.toObject()->is<GlobalObject>();
+ }
+
++#pragma weak _ZN2js29NewObjectWithGivenTaggedProtoEPNS_16ExclusiveContextEPKNS_5ClassEN2JS6HandleINS_11TaggedProtoEEENS6_IP8JSObjectEENS_2gc = _ZN2js29NewObjectWithGivenTaggedProtoEPNS_16ExclusiveContextEPKNS_5ClassEN2JS6HandleINS_11TaggedProtoEEENS6_IP8JSObjectEENS_2gc9AllocKindENS_13NewObjectKindE
++
+ JSObject*
+ js::NewObjectWithGivenTaggedProto(ExclusiveContext* cxArg, const Class* clasp,
+ Handle<TaggedProto> proto, HandleObject parentArg,
+@@ -1386,6 +1388,8 @@
+ !cxArg->asJSContext()->compartment()->hasObjectMetadataCallback();
+ }
+
++#pragma weak _ZN2js29NewObjectWithClassProtoCommonEPNS_16ExclusiveContextEPKNS_5ClassEN2JS6HandleIP8JSObjectEES9_NS_2gc9AllocKindENS_13NewOb = _ZN2js29NewObjectWithClassProtoCommonEPNS_16ExclusiveContextEPKNS_5ClassEN2JS6HandleIP8JSObjectEES9_NS_2gc9AllocKindENS_13NewObjectKindE
++
+ JSObject*
+ js::NewObjectWithClassProtoCommon(ExclusiveContext* cxArg, const Class* clasp,
+ HandleObject protoArg, HandleObject maybeParent,
+@@ -1465,6 +1469,8 @@
+ * Create a plain object with the specified group. This bypasses getNewGroup to
+ * avoid losing creation site information for objects made by scripted 'new'.
+ */
++
++#pragma weak _ZN2js24NewObjectWithGroupCommonEP9JSContextN2JS6HandleIPNS_11ObjectGroupEEENS3_IP8JSObjectEENS_2gc9AllocKindENS_13NewObjectKin = _ZN2js24NewObjectWithGroupCommonEP9JSContextN2JS6HandleIPNS_11ObjectGroupEEENS3_IP8JSObjectEENS_2gc9AllocKindENS_13NewObjectKindE
+ JSObject*
+ js::NewObjectWithGroupCommon(JSContext* cx, HandleObjectGroup group, HandleObject parent,
+ gc::AllocKind allocKind, NewObjectKind newKind)