Closed
Bug 24515
Opened 25 years ago
Closed 23 years ago
Cant build XPCOM standalone
Categories
(Core :: XPCOM, defect, P3)
Core
XPCOM
Tracking
()
RESOLVED
INVALID
People
(Reporter: dp, Assigned: dougt)
References
Details
(Keywords: helpwanted)
Attachments
(2 files)
Obstacles to xpcom standalone are header dependencies from xpcom to intl for charset converters. These need to be removed and a standalone target made to build xpcom.
Reporter | ||
Updated•25 years ago
|
Status: NEW → ASSIGNED
Target Milestone: M16
I ran across another dependency, xpcom/base/nsTraceRefcnt.cpp includes nsIPref.h which means xpcom also requires libpref's (header) dependencies as well. Aside from dependencies, is there any particular method you wanted to use for a standalone xpcom? Did you want to use Makefile.ref's like js does or have your own standalone configure setup like xmlterm has?
OS: Windows NT → All
Reporter | ||
Comment 2•24 years ago
|
||
Just removed the pref dependency. Now for the intl stuff.
Reporter | ||
Comment 3•24 years ago
|
||
Just removed the pref dependency. Now for the intl stuff.
No longer depends on: 24535
Reporter | ||
Updated•24 years ago
|
Keywords: helpwanted
Target Milestone: M16 → M20
xpcom/proxy/src/nsProxyObjectManager.cpp appears to depend upon nsAppShellCIDs.h but if I comment out that include, it compiles fine. Here's the list of directories that are required to be traversed to build xpcom standalone: $(NSPRPUB_DIR) modules/libreg xpcom intl/unicharutil/public intl/uconv/public This does not include xpcom/tests though. If you want to build that, then you need to build libtimer and libmozjs which each bring in a whole other set of dependencies.
Like I noted in the related dbm bug, I just added the --enable-modules build option to configure. Currently, it only works with dbm & xpcom and still requires you to pull the entire tree but we're working to fix that. Per the previous comment, the standalone xpcom build does not build tests.
The previous patch has been checked in (r=shaver). Any word on cleaning up xpcom/tests ?
Reporter | ||
Comment 9•24 years ago
|
||
It would be nice if we can build xpcom standalone.
Assignee: dp → rayw
Status: ASSIGNED → NEW
Comment 10•24 years ago
|
||
I get this error when I remove <nsIPref.h> from xpcom/reflect/xptinfo/src/xptiprivate.h . ../../../../../mozilla/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp: In method `xptiInterfaceInfoManager::xptiInterfaceInfoManager()': ../../../../../mozilla/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp:92: `nsIPref' undeclared (first use this function) Um, we're using prefs for logging stats? After commenting out the body of xptiInterfaceInfoManager::xptiInterfaceInfoManager() in xptiInterfaceInfoManager.cpp, the dependency is gone. xptiprivate.h also includes nsIZipReader.h which pulls in a dependency upon libjar and thus, caps & psm-glue. Not being familiar with the code, I don't see a quick fix for this one.
Updated•24 years ago
|
Status: NEW → ASSIGNED
Comment 11•24 years ago
|
||
Reporter | ||
Comment 12•24 years ago
|
||
Thanks Chris. I will try this tonight and do the change.
Comment 13•24 years ago
|
||
Are we planning to stick with the XPCOM_STANDALONE define or are there plans to eventually make a standalone xpcom use the same config as the in-browser one? CCing the resident Mac gurus as a cry for help in getting this working on the Mac.
Comment 14•24 years ago
|
||
Too make design problems in XPCOM ahead of this one. Making future.
Target Milestone: M20 → Future
Comment 15•24 years ago
|
||
Is this up for grabs? cls, you want to take it? /be
Comment 16•24 years ago
|
||
I'm not qualified to make design decisions about xpcom. I can probably make the current standalone setup work under win32 & mac but it'll just take us further into #ifdef hell.
Comment 17•24 years ago
|
||
*** Bug 57016 has been marked as a duplicate of this bug. ***
Comment 18•24 years ago
|
||
dougt@netscape.com wrote the following in bug 57016: I am building a embedding target which uses the BUILD_MODULE macro. This (for whatever reason) defines xpcom to be 'standalone'. In standalone, xpcom does not include the implementation of the nsUnicharInputStream. Why this is, I can not tell. Layout requires this to be present. So, after I am doing building, I exit because layout can not find these needed implmentation. dp added this the #ifndef here: http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&whitespace_mode=show&root=/cvsroot&subdir=mozilla/xpcom/io&command=DIFF_FRAMESET&file=nsUnicharInputStream.cpp&rev2=3.23&rev1=3.22 In my build, I have taken this out and can still build standalone without any trouble. Any ideas about this? Can I remove this #ifndef safely? Or should I try to fix layout not to use this implementation. Here are the callers: http://lxr.mozilla.org/seamonkey/search?string=NS_NewConverterStream
Comment 19•24 years ago
|
||
But you're not really building xpcom standalone. You have the additional embedding requirements. I'm going to venture that removing the ifdef works for you because you use the intl/ in other parts of the embedding code. Remove the ifdefs and then try building just xpcom standalone.
Assignee | ||
Comment 20•24 years ago
|
||
Okay. I understand. So, how come we enabled XPCOM Standalone if we use the BUILD_MODULE macros by default?
Comment 21•24 years ago
|
||
Because no one had a pressing need for the alternative? The XPCOM_STANDALONE define works for the xpconnect standalone case as well which is really the only other standalone module that's currently setup to use xpcom.
Assignee | ||
Comment 22•24 years ago
|
||
right. I need to be able to build just some subset of the "seamonkey" project. You suggested that I use BUILD_MODULE_DIRS. Now, this enables STANDALONE for xpcom and xpconnect. Can we remove this implict define and make people building standalone pass that to configure like it was before? Thanks
Comment 23•24 years ago
|
||
I suggested using BUILD_MODULE as an alternative to creating a special target for embedding in the Makefiles because the arch was already inplace. People have never passed the STANDLONE defines to configure. They have only existed as long as the enable-modules / xpcom-standalone modules have existed. The proper fix for this is to fix xpcom so that its standalone case doesn't require the extra defines. But no one seems to have the desire/time/ability to remove intl & prefs from xpcom for the default build. To continue with the hack, modify config/config.mk so that the standalone defines only get set if BUILD_MODULES is set to xpcom or xpconnect but don't break our existing standalone setup.
Comment 24•24 years ago
|
||
Do we have a bug on file against xpcom for its bogus intl and prefs dependencies? /be
Comment 25•24 years ago
|
||
I don't recall seeing a bug for that.
Comment 26•24 years ago
|
||
umm, this is it.
Comment 27•24 years ago
|
||
Ok, this is the bug, but it seems misassigned. I submit that rayw is unlikely to relieve xpcom of bogus intl and prefs deps. Who will do it? Scc? Shaver? Warren? Jband? /be
Comment 28•24 years ago
|
||
Assigning rest of xpcom stuff to myself (from Ray).
Assignee: rayw → warren
Status: ASSIGNED → NEW
Target Milestone: Future → mozilla1.0
Comment 29•24 years ago
|
||
The standalone build structure was changed (see bug 57282) to accommodate the fact that people want the best of both worlds, building fully functional modules but without buliding the entire tree. I believe that change should remove the need for the XPCOM_STANDALONE defines on unix. Would someone care to verify this?
Comment 30•24 years ago
|
||
dp is no longer @netscape.com. changing qa contact to default for this product
QA Contact: dp → kandrot
Comment 31•23 years ago
|
||
reasigning warren bugs to default component owners.
Assignee: warren → kandrot
QA Contact: kandrot → scc
Target Milestone: mozilla1.0 → ---
Assignee | ||
Comment 33•23 years ago
|
||
this is going to be fixed by alecf work such that there will not be a need for the standalone xpcom targe.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•