Brendan wrote:
Does anyone think this number of shared libraries is sane?
If you wouldn't mind explaining what each of the >100 shared libraries that Mozilla uses are for, and how they can be re-used by other programs...
Well, i can't explain for the 100 of them, but you have several "groups":
* libgtk,libgdk, libX*, /usr/X11R6/lib/* (which is already 12 of them) : used for communication with the GUI, etc.
* a bunch of mozilla-specific shlibs (mailview, cookie, webbrwsr, composer) that are here because mozilla is component-oriented and each component is a shlib in the common framework (e.g. they are sort of "plug-ins" to the main binary file).
* pthread, gmodules, nss_files, nss_dns, esd, audiofile, UTF-16 etc which are there because some feature of the 'standard" libraries are implemented through plug-in shlibs aswell ...
Whether it's "sane" or not ... hmm ... hard to tell. Considering the fact that each of those shlibs have been developped by a different team, having them shlibs improve the probability that they work together (restricted interface and so on). Replacing them all by IPC-connected programs ? that's what kde does in a way (using DCOP server, etc). And you could certainly have the composer and the navigator of mozilla be two separated programs with a common base, but i'm not sure it would reduce the amount of shlibs at all (they share dedicated widgets, theme management, DOM inspector, rendering functions ...)
Now probably that those 100 shlibs could be grouped into a few 'collections' of shlibs that are often seen together (like all the sound things, or the GTK+GDK+X libraries) and that *one* slot could be assigned to each *group* of shlibs, leaving the internal organization an issue to be solved within the group. At least, it would ensure that commonly used shlibs get a greater chance to have their 'favourite' address and that other shlibs can be loaded nonetheless ...