On Sun, 04 Feb 2007 21:24:22 +0000, John D Lamb wrote:
On Sun, 2007-02-04 at 11:09 -0500, Rami Michael wrote:
Or bomb out right at the start, which is when shared libraries are usually loaded.
It just won't start. The dynamic linker reads special fields in the ELF headers of a binary and tries to load the libraries recorded there. If any of these is missing, the application won't be started.
For many applications you can use a --disable-shared flag in a configure file so that the library becomes part of the binary you build.
Many libraries nowadays only come in dynamic versions and static libraries are getting scarcer.
This will increase file size, sometimes dramatically, but will often make the application start faster and will make it much more likely to work when copied to another system.
And will make maintenance a nightmare! If, for instance, a security bug is discovered in a library, *every* app that linked in the library statically has to be rebuilt. Contrast this with simply replacing one dynamic library.
As an example, I've compiled gcc itself on one system and then copied the binaries to another. It works.
Yes, but it usually doesn't buy you much. Philipp -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org