|
|
Routines that use much static data increase the size of processes. Every process that uses a shared library gets its own private copy of the library's data, regardless of how much of the data is needed. Library data is static: it is not shared and cannot be loaded selectively, with the provision that unreferenced pages may be removed from the working set.
For example, getgrent(S) is not used by many standard UNIX system commands. Some versions of the module define over 1400 bytes of unshared, static data. It probably should not be included in a shared library.