When building without --disable-tests the viewer test does not build as it cannot find the required wdgtos2.lib.
Created attachment 208493 [details] [diff] [review] hackish fix The break is because the respective Makefile wants to link to $(DIST)/lib/components/wdgtos2.lib which is not there (in fact no directory $(DIST)/lib/components/ exists). This instead points it to widget/src/os2/wdgtos2.lib which does exist, because I didn't find out how to get it copied to $(DIST)/lib/. Or should we remove the viewer test altogether? It does not look very functional to me now that it has linked successfully...
Argh, why the hell does "Accept bug" not assign it to me?!
Assignee: nobody → mozilla
Status: ASSIGNED → NEW
Interesting. I think viewer.exe is supposed to be a giant executable so there should be a version of wdgtos2.lib that we create that is a shared lib, not an import lib. No idea if that would actually work.... Any idea what changed to break this? Windows does things totally different here, so we can't look there.
The change occured somewhere between the 1.7 branch and the 1.8 branching and was that dist/lib/components/ disappeared. What caused that I have no clue. Let me see if I can figure out the lib thing, but I currently don't see what would make it get copied to dist/lib.
I still get tons of unresolved externals with this fix...
Knut had a fix in his declspec patch. It caused me some sort of problem in my builds as I wasn't building tests but I don't recall what it was now.
(In reply to comment #5) > I still get tons of unresolved externals with this fix... That's weird, after my patch viewer.exe built, and I could even start it (I just couldn't get it to do anything). I am still using GCC 3.2.2, that might make a difference. The change from 1.7 to 1.8 was that static builds were enabled. Now only those libs required for that are copied to dist/lib.
Andy: Indeed, Knut's patch from bug 301064 has +# bird: somehow this doesn't work automatically and the viewer.exe test +# depends on this being installed. +libs:: $(IMPORT_LIBRARY) + $(INSTALL) $(IFLAGS2) $(IMPORT_LIBRARY) $(DIST)/lib/components for widget/src/os2/Makefile.in. But I doubt that this can work, at least here I don't even get a lib/components directory any more!
Stumbled over bug 121881 which suggests that viewer is obsolete anyway.
OK, removing viewer has happened, I therefore resolve this bug as dupe of bug 121881 which did the removal. *** This bug has been marked as a duplicate of 121881 ***
Status: NEW → RESOLVED
Last Resolved: 13 years ago
Resolution: --- → DUPLICATE
I believe there is code that can be removed from widget now - also widget was exporting lots of extra stuff because of viewer.
I just stumbled over this again because I get the same build break on the branches. Perhaps we should check the fix from attachment 208493 [details] [diff] [review] into 1.8 branch? But I didn't find any special exports from widget as suggested by Mike in comment 11. Perhaps I misunderstand what is meant by "exports" in this case, but I don't see any special lines in the .def file or decorations to function names.
Now that I remember, it wasn't that widget exported specific stuff, it was that it exported everything - it wasn't a true component. This was because viewer linked against stuff. http://lxr.mozilla.org/seamonkey/source/widget/src/os2/Makefile.in#108 basically in rules.mk we don't just export NS_GetModule in that case. http://lxr.mozilla.org/seamonkey/search?string=HAS_EXTRAEXPORTS
You need to log in before you can comment on or make changes to this bug.