components/desktop/firefox/patches/firefox-46-dtrace.patch
changeset 5527 611b2d6efdfe
parent 5255 cea0e462549a
--- /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)