Implementing shared libraries
Posted on 2002-03-14
I have waht I think is a pretty basic question but I'm hoping I can get some details answers.
I'm running various Unix servers, including some FreeBSD implementations (3.4 version so this would mainly apply to FreeBSD but I assume it's generally the same for other Unix variants but please let me know if it isn't).
The utilities that come with Unix, such as bind, popper, ftpd, apache, sendmail, etc. always are much smaller in size than the later versions I compile and install to update the system.
I'm under the impression that what's going on here, is when I compile a newer version of, say Apache or Sendmail, by default the compilation is stand-alone, and in most cases, it could be compiled with some sort of shared library option which would dramatically reduce the size and memory overhead of the software? In the case of Apache, where you might have 100+ daemons spawned, I've been told that if I recompiled the program to share memory/libs that it would be much more memory efficient. How can I do this?
Specifically here are my questions:
1. Is there a special module or set of libraries that must be installed to implement this? Does it vary by OS/version? Where can I get this code if I don't have it already?
2. I'd like detailed instructions on how to compile the following programs to use these shared libraries: bind, ftpd/wuftp, popper, apache, sendmail, etc.
I'm assuming maybe it's a single extra compilation/linking command parameter? Is it true that by default none of these systems compile in this manner?
Any additional thoughts or comments on what I'm trying to do? It's frustrating to replace a 300k 2.0 version with a 4320k 2.1 version of a program...