Closed
Bug 15777
Opened 25 years ago
Closed 25 years ago
Some gcc versions have compilation problems
Categories
(Core :: Layout, defect, P3)
Tracking
()
VERIFIED
FIXED
M11
People
(Reporter: drepper, Assigned: akkzilla)
References
Details
Attachments
(1 file)
596 bytes,
patch
|
Details | Diff | Splinter Review |
I've reported the same problem for other parts of the source tree already
(see 15773 and 15776). The layout code also contains one instance of this
problem and it can be fixed with the following patch.
Index: layout/base/src/nsDocumentEncoder.cpp
===================================================================
RCS file: /cvsroot/mozilla/layout/base/src/nsDocumentEncoder.cpp,v
retrieving revision 1.20
diff -u -u -r1.20 nsDocumentEncoder.cpp
--- nsDocumentEncoder.cpp 1999/09/14 21:32:06 1.20
+++ nsDocumentEncoder.cpp 1999/10/07 21:18:53
@@ -236,12 +236,12 @@
nsIParser* parser;
- static NS_DEFINE_IID(kCParserIID, NS_IPARSER_IID);
- static NS_DEFINE_IID(kCParserCID, NS_PARSER_IID);
+ static NS_DEFINE_IID(kCParserIID2, NS_IPARSER_IID);
+ static NS_DEFINE_IID(kCParserCID2, NS_PARSER_IID);
- rv = nsComponentManager::CreateInstance(kCParserCID,
+ rv = nsComponentManager::CreateInstance(kCParserCID2,
nsnull,
- kCParserIID,
+ kCParserIID2,
(void **)&parser);
if (NS_SUCCEEDED(rv)) {
Assignee | ||
Updated•25 years ago
|
Status: NEW → ASSIGNED
Target Milestone: M11
Assignee | ||
Comment 2•25 years ago
|
||
Here's the comment from bug 15773 (just so I don't have to keep going to that
bug for the description of the problem):
Some gcc versions (I'm using the current development version of gcc) have
a bug when it comes to static variables in C++ functions which have an
extern "C" struct type. gcc errorneously emits a name without a special
prefix to distinguish the variable. In the case where in the same source
file there are two static variable definitions with the same name the
assembler will complain about multiple definitions of the same symbol.
Does this imply that we define the static symbol twice? If so, fixing it that
way would be better. But I'll fix it one way or the other. Unfortunately, I'm
going on vacation for a week (but if someone else wants to check it in in the
meantime, you have my approval), but I'll fix this when I get back (if no one
beats me to it).
Assignee | ||
Comment 3•25 years ago
|
||
Okay, I get it -- the same function-static is defined in two different
functions. That seems like a pretty serious compiler bug, not being able deal
with something that simple and common ... but there's no reason the statics
can't be moved to the top of the file, defined in the normal way. Attaching a
patch to this bug, and I'll try to get it checked in today.
Assignee | ||
Comment 4•25 years ago
|
||
Assignee | ||
Comment 5•25 years ago
|
||
Fix checked in.
Assignee | ||
Updated•25 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Comment 6•25 years ago
|
||
Akkana, since this is a code fix, could you please mark as verified fixed. I
don't have a way of checking for the fix. thanks.
Assignee | ||
Updated•25 years ago
|
Status: RESOLVED → VERIFIED
Assignee | ||
Comment 7•25 years ago
|
||
I wish the original poster would comment on whether this fixed the problem,
since I don't have a version of gcc which has the problem. But I'll mark it
verified to get it off your radar; if the original poster is still having
problems, please reopen!
Comment hidden (collapsed) |
You need to log in
before you can comment on or make changes to this bug.
Description
•