Closed
Bug 25562
Opened 26 years ago
Closed 25 years ago
Build problem on IRIX 7.3.1.1 compilers
Categories
(Core :: JavaScript Engine, defect, P3)
Tracking
()
RESOLVED
INVALID
mozilla0.9
People
(Reporter: pack, Assigned: cls)
Details
I tried to build the M13 Mozilla with native 7.3.1.1
compilers (yes, I see the instructions for gcc stuff,
yes, I am a bit contrary). I was able to get the package
compiled after changing two modules:
nsJSEnvironment.cpp and nsProxyEventClass.cpp
Both of these files elicited the error message
during compilation of an Error: A goto outside a
region cannot jump to a label inside a region
Specifically, it was:
"nsProxyEventClass.cpp": Error: A goto outside a region cannot jump to a
label inside a region, 1 at line 174
and
"nsJSEnvironment.cpp": Error: A goto outside a region cannot jump to a
label
inside a region, 1 at line 182
These seem to be the only places where there is a return
inside a module. I rewrote this blindly assuming that instead
I could have this condition fall through to the end of the
module. Compilation proceeds in this case.
Running the program gives many successful Registering lines
and finally:
*** Registering nsAbModule components (all right -- a generic module!)
*** Registering nsCookieModule components (all right -- a generic
module!)
nsNativeComponentLoader: autoregistering succeeded
moz_run_program[30]: 92996 Bus error(coredump)
Compiling problem can be fixed easily.
The core file is created in JS_ArenaAllocate() [jsarena.c - Line 99]
because pool->current is filled with the illegal pseudoaddress "0xdadadada".
The can be reproduced.
Severity: normal → major
Assigning all open "nobody@mozilla.org" bugs to "leger@netscape.com" to weed
thru.
Assignee: nobody → leger
mike, would you take a look at this?
Assignee: leger → mccabe
Component: Browser-General → Javascript Engine
QA Contact: nobody → rginda
The source files in question need not be modified. instead adding
-LANG:exceptions=OFF to the CXXFLAGS makes the compilation proceed. however,
mozilla is not running then either, see <A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=30427">bug #30427</A>.
Comment 6•25 years ago
|
||
[SPAM] Marking milestone 'future' as part of nsbeta3 triage.
Status: NEW → ASSIGNED
Target Milestone: --- → Future
I'm also seeing the same error on a different file,
netwerk/protocol/jar/src/nsJARChannel.cpp on the mason tinderbox. Taking the
bug.
Victor, is the compiler option suggested by jsd the proper fix for this problem
or will we run into unwanted side-effects?
Assignee: mccabe → cls
Status: ASSIGNED → NEW
Target Milestone: Future → M18
Comment 8•25 years ago
|
||
I don't believe the compiler flag option would be the right solution
as that would just mask the real problem. Rob Low has been looking
into this bug and is evaluating a source change to fix this problem.
This may be another compiler bug where it's allowing a return prior
to the end of the destructor.
I'd like to see that this bug get fixed in time for the M18/PR3 release.
Victor Riley
Oops. I added the compiler option so that we could get the tinderboxes up and
running. I'll back it out once we get a better solution. (We don't support
exceptions anyways, right?)
Keywords: nsbeta3
Comment 10•25 years ago
|
||
As suggested by the initial bug report message,
my preferred fix was to make a generic code change
to simply avoid using return in the destructor.
It doesn't make the code that much harder to read.
-------% cvs diff -c nsJSEnvironment.cpp
Index: nsJSEnvironment.cpp
===================================================================
RCS file: /cvsroot/mozilla/dom/src/base/nsJSEnvironment.cpp,v
retrieving revision 1.100
diff -c -r1.100 nsJSEnvironment.cpp
*** nsJSEnvironment.cpp 2000/06/24 16:18:40 1.100
--- nsJSEnvironment.cpp 2000/09/21 02:16:50
***************
*** 299,316 ****
}
// Cope with JS_NewContext failure in ctor (XXXbe move NewContext to Init?)
! if (!mContext)
! return;
! /* Remove global object reference to window object, so it can be collected.
*/
! ::JS_SetGlobalObject(mContext, nsnull);
! ::JS_DestroyContext(mContext);
! // Let xpconnect resync its JSContext tracker (this is optional)
! nsresult rv;
! NS_WITH_SERVICE(nsIXPConnect, xpc, nsIXPConnect::GetCID(), &rv);
! if (NS_SUCCEEDED(rv))
! xpc->SyncJSContexts();
}
NS_IMPL_ISUPPORTS(nsJSContext, NS_GET_IID(nsIScriptContext));
--- 299,316 ----
}
// Cope with JS_NewContext failure in ctor (XXXbe move NewContext to Init?)
! if (mContext) {
! /* Remove global object reference to window object, so it can be
collected. */
! ::JS_SetGlobalObject(mContext, nsnull);
! ::JS_DestroyContext(mContext);
! // Let xpconnect resync its JSContext tracker (this is optional)
! nsresult rv;
! NS_WITH_SERVICE(nsIXPConnect, xpc, nsIXPConnect::GetCID(), &rv);
! if (NS_SUCCEEDED(rv))
! xpc->SyncJSContexts();
! }
}
NS_IMPL_ISUPPORTS(nsJSContext, NS_GET_IID(nsIScriptContext));
| Assignee | ||
Comment 11•25 years ago
|
||
Is this the only place that happens? I thought I saw it somewhere else when I
fixed the first occurance and decided to fall back to the compiler switch. And
could you post patches using diff -u? It makes them a bit easier to read.
Comment 12•25 years ago
|
||
This was the only instance I had to change, (using the
M17 source release), but I agree that the bug will
probably appear/disappear in different places as code
changes over time.
Comment 13•25 years ago
|
||
Marking nsbeta3- unless this can be shown to be problematic for Win, Mac, or
Linux and the user visible problems specified.
Whiteboard: [nsbeta3-]
| Assignee | ||
Comment 14•25 years ago
|
||
*sigh* Appealing to a higher power.
Can we get an official statement as to how porting fixes fall into the release
schedule? This particular problem is being worked around by a compiler flag
which is the only thing that's keeping this from being a blocker on Irix.
| Assignee | ||
Comment 15•25 years ago
|
||
Wait long enough and the bug just *poof* goes away. Not sure what happened but
when I removed the -LANG:exceptions=OFF cxxflag, the only place I hit this bug
was in mailnews/compose/src/nsMsgSend.cpp. I just checked in a fix for that
one. Marking this bug as fixed.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Keywords: nsbeta3
Resolution: --- → FIXED
Whiteboard: [nsbeta3-]
Comment 16•25 years ago
|
||
I am reopening this, talked with cls and he find out that tinderbox
is actually running version 7.2.1.3m. I tryed with version 7.3.1.1m and i still
run to this same 'goto outside a region...' problem.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
For the record, the cement tinderbox hit this error (with real gotos, not a
return in a destructor) in revision 1.90 of gfx/src/nsImageNetContextAsync.cpp,
so I changed the code in revision 1.91 to work around it.
Comment 18•25 years ago
|
||
If this helps resolve this bug, the new MIPS 7.3.1.2m compilers have released
and are available at:
http://support.sgi.com/colls/patches/tools/relstream/index.html
Try installing them and see if this gets resolved.
Victor Riley
SGI
Comment 19•25 years ago
|
||
Ok, i update to 7.3.1.2m and now compiles ok (still other problems thougt).
So i think this should be marked as fixed? And update irix build page
to say that 7.3.1.2m required to compile (maybe 7.2.x.x works too?)
| Assignee | ||
Comment 20•25 years ago
|
||
Resolving INVALID (compiler bug) per Tomi's comment. If you are still using the
7.3.1.1 compiler, please upgrade to the 7.3.1.2m release as pointed out by Victor.
Status: REOPENED → RESOLVED
Closed: 25 years ago → 25 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•