This is to start a new thread from the large one which was based on
"Building Mozilla under GCC/free compiler on Win32".
The outcome of that thread is to take some of the XPCOM library API's which
are implemented as classes, and wrap them in an extern "C" wrapper which
allows them to be used compiler independently. This will not change the old
classes or anything, it will just add in new functions with which to access
those guys.
For example, the nsMemory class provides quite a few useful static methods.
We would add wrapper functions for each static method which would then be
declared extern "C" and would just call the nsMemory methods.
Another example is a function to access the global nsComponentManager, but
access it as an nsIComponentManager. This would involve having a single
extern "C" function which just returns the global pointer defined in
nsXPComInit.cpp.
The reason for this post is thus two fold.
1) The results of the previous thread make this seem like a desirable trait
for XPCOM to have. Certainly compiler independence would be nice. That way
you would not be forced to build a version of your extension for each and
every compiler you could think of, just so people can use it with their
specific compiler. Does this sound reasonable to everyone who cares? Are
there other possible solutions?
2) What are the different global class based APIs we would like to wrap
thusly? I personally only use the nsMemory one right now, but the
nsComponentManager seems like an obvious candidate.
Ken