Closed
Bug 190783
Opened 23 years ago
Closed 23 years ago
Failure to link mozilla-bin
Categories
(SeaMonkey :: Build Config, defect)
Tracking
(Not tracked)
VERIFIED
WONTFIX
People
(Reporter: colin, Assigned: netscape)
Details
Attachments
(1 obsolete file)
The build is broken on OpenVMS. When linking mozilla-bin, two symbols are not found:
%LINK-W-NUDFSYMS, 2 undefined symbols:
%LINK-I-UDFSYM, nsStringAllocator<char > &StringAllocator_char()
%LINK-I-UDFSYM, nsStringAllocator<unsigned short >
&StringAllocator_wchar_t()
These symbols are in libstring_s.a and that library is referecned at link time.
But the symbols aren't getting resolved. Why? On OpenVMS the order in which
files are referenced is important; a library must be referenced AFTER any
references to that library, otherwise it won't get loaded. That's what's
happening here. The reference to the two symbols is (I think) coming from code
in template instantiations, and that appears to be getting loaded last by the
linker on OpenVMS. So at the time when libstring_s.a is encountered by the
linker, those two symbols have not yet been referenced and so the module is not
loaded.
The fix (not sure if its the right fix) is to force these static libraries to be
loaded. For now I've jsut forced libstring and that fixes my link problem, but
maybe all four static libs should be forced?
This has happened as a result of the GRE build changes.
| Reporter | ||
Comment 1•23 years ago
|
||
| Reporter | ||
Comment 2•23 years ago
|
||
Setting ? for blocking1.3b flag, since this IS a blocker for OpenVMS.
Flags: blocking1.3b?
Attachment #112744 -
Flags: superreview?(seawood)
Attachment #112744 -
Flags: review?(dougt)
Comment 3•23 years ago
|
||
Comment on attachment 112744 [details] [diff] [review]
Force load of libstring_s
if seawood say okay...
Attachment #112744 -
Flags: review?(dougt) → review+
| Assignee | ||
Comment 4•23 years ago
|
||
Comment on attachment 112744 [details] [diff] [review]
Force load of libstring_s
I'm not convinced that this is the right fix. Usually, the fix for unresolved
symbols is reordering the libraries on the link line. If the libraries have
circular dependencies, then we do the force load of every symbol to treat the
libraries as a group. Are you certain that the template instantiations are
being added last by the linker and that it's not a problem of embedstring_s
having unresolved symbols due to using a header which instantiates those
templates, in which case, we could just link against embedstring_s first?
| Reporter | ||
Comment 5•23 years ago
|
||
Putting embedstring_s first, and/or libstring_s last, doesn't cure the problem.
I'd already tried that :-(
| Assignee | ||
Comment 6•23 years ago
|
||
Comment on attachment 112744 [details] [diff] [review]
Force load of libstring_s
Hrm. Ok. I guess we can do this for now and look for a better fix in the
future.
Attachment #112744 -
Flags: superreview?(seawood)
Attachment #112744 -
Flags: superreview+
Attachment #112744 -
Flags: approval1.3b?
| Reporter | ||
Comment 7•23 years ago
|
||
Comment on attachment 112744 [details] [diff] [review]
Force load of libstring_s
I found a way to force my linker to include all template instantiations. By
specifying these flags in my LDFLAGS I no longer need this change.
Attachment #112744 -
Attachment is obsolete: true
| Reporter | ||
Comment 8•23 years ago
|
||
Comment on attachment 112744 [details] [diff] [review]
Force load of libstring_s
Clearing "approval1.3b" request flag.
Attachment #112744 -
Flags: approval1.3b?
| Reporter | ||
Comment 9•23 years ago
|
||
Clearing "blocking1.3b" ? flag and closing.
Status: NEW → RESOLVED
Closed: 23 years ago
Flags: blocking1.3b?
Resolution: --- → WONTFIX
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•