Closed
Bug 113511
Opened 24 years ago
Closed 14 years ago
-O3 causes crash in xpcom when using MipsPro compiler
Categories
(Core :: XPCOM, defect)
Tracking
()
RESOLVED
INCOMPLETE
People
(Reporter: nickb, Unassigned)
Details
(Keywords: crash)
Attachments
(1 file)
|
618 bytes,
patch
|
netscape
:
review+
|
Details | Diff | Splinter Review |
A bus error occurs in xpcom, the stack trace shows
nsComponentManagerImpl::PlatformInit(void)
is xpcom/components/nsComponentManager.cpp:819,
however I think this is due to a problem at a higher level.
| Reporter | ||
Comment 1•24 years ago
|
||
After some investigation it is only xpcom/reflect/xptcall/md that I cannot
compile
at -O3. So this patch forces it to compile at -O2 if -O3 or -Ofast is used.
| Reporter | ||
Comment 2•24 years ago
|
||
Note: This is very similar to 79562, in that this is a work around which allows me
to compile at -O3, and not a fix.
Comment 3•24 years ago
|
||
build config
Assignee: asa → seawood
Component: Browser-General → Build Config
QA Contact: doronr → granrose
Comment 4•24 years ago
|
||
Ugh. Not again. Can we avoid populating the tree with these sed cases?
| Reporter | ||
Comment 5•24 years ago
|
||
I don't really understand the problem with using sed, but am happy to use a
better method if one exists.
sed is a lot more accurate then $(patsubst) for eg.
Of course, ideally we will get the compiler bug (if it exists) fixed and then
can do away with ugly hacks like this! :)
Component: Build Config → Browser-General
QA Contact: granrose → doronr
most likely no one cares, but could you please provide a stack trace and the
actual lines of code associated w/ the lines? the line you indicated is
currently inside a #if 0 block...
Severity: normal → critical
Status: UNCONFIRMED → NEW
Component: Browser-General → XPCOM
Ever confirmed: true
Keywords: crash
QA Contact: doronr → scc
| Reporter | ||
Comment 7•24 years ago
|
||
Sorry, I didn't have full symbols on before, however here is a full stack trace,
and a code snippet:
(dbx) where
> 0 nsSupportsArray::EnumerateBackwards(int (*)(nsISupports*,void*),void*)(this
= 0x5ff9a59c, aFunc = 0x10497b58, aData = 0x103ca270)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/xpcom/ds/nsSupportsArray.cpp":696,
0x5fe21020]
1 AutoJSSuspendRequest::~AutoJSSuspendRequest(void)(this = 0x7ffe3740, <no name>
= 2)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/xpconnect/src/xpcprivate.h":2800,
0x5f685e3c]
2 XPCWrappedNative::CallMethod(XPCCallContext&,XPCWrappedNative::CallMode)(ccx =
0x7ffe39c8, mode = CALL_GETTER__16XPCWrappedNative=1)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp":1950,
0x5f6805c0]
3 ::XPC_WN_GetterSetter(JSContext*,JSObject*,unsigned int,long*,long*)(cx =
0x103ca270, obj = 0x1015b708, argc = 0, argv = 0x104c1028, vp = 0x7ffe3b10)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/xpconnect/src/xpcprivate.h":1787,
0x5f695cc4]
4 js_Invoke(0x103ca270, 0x0, 0x2, 0x1015b708, 0x0, 0x5f695a30, 0x1015be88, 0x0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/jsinterp.c":809,
0x4053104]
5 js_InternalInvoke(0x103ca270, 0x1015b708, 0x1015be88, 0x0, 0x0, 0x0,
0x7ffe3dd8, 0x0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/jsinterp.c":901,
0x4053548]
6 js_GetProperty(0x103ca270, 0x1015b708, 0x10497b58, 0x7ffe3dd8, 0x8, 0x1,
0x5fee2e18, 0x0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/jsobj.c":2433,
0x407a1bc]
7 js_Interpret(0x103ca270, 0x7ffe466c, 0x0, 0x104b2d78, 0x104c0f7c, 0x101579f8,
0x1, 0x5de6b820)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/jsinterp.c":2564,
0x4061394]
8 js_Invoke(0x103ca270, 0x1, 0x2, 0x1015b708, 0x0, 0x0, 0x1015b840, 0x0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/jsinterp.c":826,
0x40531dc]
9 js_InternalInvoke(0x103ca270, 0x1015b708, 0x1015b840, 0x0, 0x1, 0x7ffe4c2c,
0x7ffe4984, 0x0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/jsinterp.c":901,
0x4053548]
10 JS_CallFunctionValue(0x103ca270, 0x1015b708, 0x1015b840, 0x1, 0x7ffe4c2c,
0x7ffe4984, 0x5fee2e18, 0x0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/js/src/jsapi.c":3387,
0x401eecc]
11 nsJSContext::CallEventHandler(void*,void*,unsigned int,void*,int*,int)(this =
0x103ca158, aTarget = 0x1015b708, aHandler = 0x1015b840, argc = 1, argv =
0x7ffe4c2c, aBoolResult = 0x7ffe4c38, aReverseReturnResult = 0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/dom/src/base/nsJSEnvironment.cpp":976,
0x5de68b3c]
12 nsJSEventListener::HandleEvent(nsIDOMEvent*)(this = 0x104af240, aEvent =
0x5efd0bcc)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/dom/src/events/nsJSEventListener.cpp":154,
0x5df2b88c]
13 nsXBLPrototypeHandler::ExecuteHandler(nsIDOMEventReceiver*,nsIDOMEvent*)(this
= 0x104b0d80, aReceiver = 0x1048a0c8, aEvent = 0x5efd0bcc)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/content/xbl/src/nsXBLPrototypeHandler.cpp":448,
0x5ec0d0b4]
14 nsXBLPrototypeHandler::BindingAttached(nsIDOMEventReceiver*)(this =
0x104b0d80, aReceiver = 0x1048a0c8)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/content/xbl/src/nsXBLPrototypeHandler.cpp":495,
0x5ec0e650]
15 nsXBLPrototypeBinding::BindingAttached(nsIDOMEventReceiver*)(this =
0x104a68d0, aReceiver = 0x1048a0c8)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/content/xbl/src/nsXBLPrototypeBinding.cpp":582,
0x5ebdcff0]
16 nsXBLBinding::ExecuteAttachedHandler(void)(this = 0x10486d98)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/content/xbl/src/nsXBLBinding.cpp":1149,
0x5ebc8878]
17 nsBindingManager::ProcessAttachedQueue(void)(this = 0x104247d8)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/content/xbl/src/nsBindingManager.cpp":1299,
0x5ec55c8c]
18
nsCSSFrameConstructor::ContentInserted(nsIPresContext*,nsIContent*,nsIContent*,int,nsILayoutHistoryState*)(this
= 0x10482898, aPresContext = 0x1023c188, aContainer = (nil), aChild =
0x10424498, aIndexInContainer = 0, aFrameState = (nil))
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp":8351,
0x5d71c2a4]
19
StyleSetImpl::ContentInserted(nsIPresContext*,nsIContent*,nsIContent*,int)(this
= 0x104827b0, aPresContext = 0x1023c188, aContainer = (nil), aChild =
0x10424498, aIndexInContainer = 0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/content/base/src/nsStyleSet.cpp":1201,
0x5edc4304]
20 PresShell::InitialReflow(int,int)(this = 0x10482950, aWidth = 1600, aHeight =
1600)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/layout/html/base/src/nsPresShell.cpp":2625,
0x5d5cc254]
21 HTMLContentSink::StartLayout(void)(this = 0x10453a60)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/content/html/document/src/nsHTMLContentSink.cpp":3904,
0x5e8a91e4]
22 HTMLContentSink::OpenBody(const nsIParserNode&)(this = 0x10453a60, aNode =
0x103ab5e8)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/content/html/document/src/nsHTMLContentSink.cpp":3185,
0x5e8a6844]
23 CNavDTD::OpenBody(const nsCParserNode*)(this = 0x104838e8, aNode =
0x103ab5e8)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/CNavDTD.cpp":3119,
0x5f8cb9fc]
24 CNavDTD::OpenContainer(const nsCParserNode*,nsHTMLTag,int,nsEntryStack*)(this
= 0x104838e8, aNode = 0x103ab5e8, aTag = eHTMLTag_body=15, aClosedByStartTag =
1, aStyleStack = (nil))
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/CNavDTD.cpp":3376,
0x5f8cc164]
25 CNavDTD::HandleDefaultStartToken(CToken*,nsHTMLTag,nsCParserNode*)(this =
0x104838e8, aToken = 0x10337d38, aChildTag = eHTMLTag_body=15, aNode =
0x103ab5e8)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/CNavDTD.cpp":1302,
0x5f8ca62c]
26 CNavDTD::HandleStartToken(CToken*)(this = 0x104838e8, aToken = 0x10337d38)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/CNavDTD.cpp":1715,
0x5f8ca1cc]
27 CNavDTD::HandleToken(CToken*,nsIParser*)(this = 0x104838e8, aToken =
0x10337d38, aParser = 0x10453958)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/CNavDTD.cpp":881,
0x5f8c7f44]
28
CNavDTD::BuildModel(nsIParser*,nsITokenizer*,nsITokenObserver*,nsIContentSink*)(this
= 0x104838e8, aParser = 0x10453958, aTokenizer = 0x104837e0, anObserver = (nil),
aSink = 0x10453a60)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/CNavDTD.cpp":517,
0x5f8c7628]
29 nsParser::BuildModel(void)(this = 0x10453958)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/nsParser.cpp":2023,
0x5f8fb660]
30 nsParser::ResumeParse(int,int)(this = 0x10453958, allowIteration = 1,
aIsFinalChunk = 0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/nsParser.cpp":1889,
0x5f8f82ac]
31 nsParser::OnDataAvailable(nsIRequest*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int)(this = 0x10453958, request = 0x103c19a0, aContext = (nil),
pIStream = 0x103cf2f8, sourceOffset = 0, aLength = 117)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/htmlparser/src/nsParser.cpp":2498,
0x5f8f8fac]
32
nsDocumentOpenInfo::OnDataAvailable(nsIRequest*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int)(this = 0x103bf708, request = 0x103c19a0, aCtxt = (nil), inStr
= 0x103cf2f8, sourceOffset = 0, count = 117)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/uriloader/base/nsURILoader.cpp":259,
0x5f1d73d8]
33 nsOnDataAvailableEvent::HandleEvent(void)(0x103c9ad8, 0x5ee79e28, 0x5ee79e28,
0x0, 0x8, 0x1, 0x5fee2e18, 0x0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/netwerk/base/src/nsStreamListenerProxy.cpp":192,
0x5f31d194]
34 nsARequestObserverEvent::HandlePLEvent(PLEvent*)(0x4055e7dc, 0x5ee79e28,
0x5ee79e28, 0x0, 0x8, 0x1, 0x5fee2e18, 0x0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/netwerk/base/src/nsRequestObserverProxy.cpp":79,
0x5f2fe9e4]
35 PL_HandleEvent(self = 0x103c9ad8)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/xpcom/threads/plevent.c":590,
0x5fea2820]
36 PL_ProcessEventsBeforeID(aSelf = 0x101ffa78, aID = 0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/xpcom/threads/plevent.c":1256,
0x5fea318c]
37 ::processQueue(void*,void*)(aElement = 0x1014d150, aData = 0xc9)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/widget/src/gtk/nsAppShell.cpp":479,
0x5f101f08]
38 nsVoidArray::EnumerateForwards(int (*)(void*,void*),void*)(this = 0x8adcd68,
aFunc = (nil), aData = 0x8adcd88)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/xpcom/ds/nsVoidArray.cpp":650,
0x5fe2b6c8]
39 nsAppShell::ProcessBeforeID(unsigned long)(aID = 201)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/widget/src/gtk/nsAppShell.cpp":487,
0x5f103974]
40 ::handle_gdk_event(_GdkEvent*,void*)(event = 0x10423290, data = (nil))
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/widget/src/gtk/nsGtkEventHandler.cpp":1005,
0x5f11b1d0]
41 gdk_event_dispatch(0x4055e7dc, 0x5ee79e28, 0x5ee79e28, 0x0, 0x8, 0x1,
0x5fee2e18, 0x0)
["/xlv1/freeware/2001.May/gtk+/1.2.9/gtk+-1.2.9.diffbuild/gdk/gdkevents.c":2139,
0x939c424]
42 g_main_dispatch(0x4055e7dc, 0x0, 0x5ee79e28, 0x0, 0x0, 0x1, 0x5fee2e18, 0x0)
["/xlv1/freeware/2001.May/glib/1.2.9/glib-1.2.9.diffbuild/gmain.c":656, 0x8ab6064]
43 g_main_iterate(0x4055e7dc, 0x1, 0x0, 0x0, 0x8, 0x1, 0x5fee2e18, 0x0)
["/xlv1/freeware/2001.May/glib/1.2.9/glib-1.2.9.diffbuild/gmain.c":877, 0x8ab64dc]
44 g_main_run(0x1041e0a0, 0x5ee79e28, 0x5ee79e28, 0x0, 0x8, 0x1, 0x5fee2e18,
0x0) ["/xlv1/freeware/2001.May/glib/1.2.9/glib-1.2.9.diffbuild/gmain.c":935,
0x8ab6a44]
45 gtk_main(0x4055e7dc, 0x5ee79e28, 0x5ee79e28, 0x0, 0x8, 0x1, 0x5fee2e18, 0x0)
["/xlv1/freeware/2001.May/gtk+/1.2.9/gtk+-1.2.9.diffbuild/gtk/gtkmain.c":524,
0x89b0d3c]
46 nsAppShell::Run(void)(this = 0x1015faa0)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/widget/src/gtk/nsAppShell.cpp":364,
0x5f102e5c]
47 nsAppShellService::Run(void)(this = 0x1013b938)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/xpfe/appshell/src/nsAppShellService.cpp":456,
0x5f80c784]
48 ::main1(int,char**,nsISupports*)(argc = 1, argv = 0x7ffe7df4, nativeApp =
(nil))
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/xpfe/bootstrap/nsAppRunner.cpp":1291,
0x1001163c]
49 ::main(argc = 1, argv = 0x7ffe7df4)
["/projects/sise/mozilla/devel/workpits/moz/0.9.5_branch_m_o/mozilla/xpfe/bootstrap/nsAppRunner.cpp":1619,
0x100127e8]
50 __start()
["/xlv55/kudzu-apr12/work/irix/lib/libc/libc_n32_M4/csu/crt1text.s":177, 0x10007ad8]
(dbx) list 689:11
689 NS_IMETHODIMP_(PRBool)
690 nsSupportsArray::EnumerateBackwards(nsISupportsArrayEnumFunc aFunc, void*
aData)
691 {
692 PRUint32 aIndex = mCount;
693 PRBool running = PR_TRUE;
694
695 while (running && (0 < aIndex--)) {
* 696 running = (*aFunc)(mArray[aIndex], aData);
697 }
698 return running;
699 }
And recompiling xpcom/reflect/xptcall/src/md/unix with -O2 avoids this crash.
Comment 8•24 years ago
|
||
I've mentioned the specific problem that I had with sed in bug 79562.
<rant>
In general, I have no faith that these hacks will ever actually disappear from
the tree once they are added. Especially since the problem occurs at a "high"
optimization level which makes it a bit harder to determine if it's a code or
compiler problem. Not that I have a better alternative, mind you. I'm just
fed up with dealing with broken compilers and/or broken code.
</rant>
| Reporter | ||
Comment 9•24 years ago
|
||
Thats kind of the reason I used sed, tho, because $(putsubst) and friends would
miss even more potential flags, or worse, change things it shouldn't (eg -OPT:
flags).
I have to say tho, I agree 100%! Would love to use a compiler that wasn't
broken in some way. gcc is far from perfect too (at least on IRIX).
Comment 10•24 years ago
|
||
Comment on attachment 60392 [details] [diff] [review]
xpcom/reflect/xptcall/md/Makefile.in - restrict optimisation to -O2
r=cls
Attachment #60392 -
Flags: review+
| Reporter | ||
Comment 12•24 years ago
|
||
Comment on attachment 60392 [details] [diff] [review]
xpcom/reflect/xptcall/md/Makefile.in - restrict optimisation to -O2
Does this mean you have changed the attachment? Not sure whats happened,
but what is in the tree is:
OS_CXXFLAGS := $(shell echo $(OS_CXXFLAGS) | sed 's/-O\(3|fast\)/-O2/g')
but this does not work, it is missing a '\'. It should be
OS_CXXFLAGS := $(shell echo $(OS_CXXFLAGS) | sed 's/-O\(3\|fast\)/-O2/g')
or rather (in v1.60)
CXXFLAGS := $(shell echo $(CXXFLAGS) | sed 's/-O\(3\|fast\)/-O2/g')
Comment 13•24 years ago
|
||
Sorry, I'm not sure how I managed to botch that up. Added the missing \
Updated•20 years ago
|
Assignee: nickb → nobody
QA Contact: scc → xpcom
Updated•14 years ago
|
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•