Volker Braun wrote:
> It was suggested on
http://trac.sagemath.org/14699 that we rehash the
> old arguments why static libraries have no place in a modular software
> system. So here we go:
> * No easy way to tell which static library (much less its version) is
> used by a binary
> * Space (both disk and memory) bloat, code will be copied into each
> binary.
> * Inability to benefit from updates: Once statically linked, your
> binary will never use a newer (and potentially bug-fixed) version of the
> library
> * Various debug tools (LD_PRELOAD, LD_PROFILE, LD_AUDIT) don't work
> * No ASLR => security hole
That's totally not the point; we weren't discussing whether *Sage*
should *use* static (ATLAS) libraries rather than shared ones, but
whether -- since ATLAS builds static libraries (only) anyway by default
-- we should *keep* them too, or discard them.
It's trivial to delete them from the Sage installation if you don't need
(or want) them.
But if you happen to need them later, for whatever reason, you'd have to
rebuild ATLAS (with SAGE_KEEP_BUILT_SPKGS=yes or 'sage -f -s ...'),
search them in the build tree, and manually copy them from various
places. Inconvenient, tedious, error-prone and a waste of time
(especially if building ATLAS takes hours or nearly a day on your machine).
[And while it is relatively easy to (re)build a shared library from a
static one, the opposite is not.]
Btw., there's still not even a script to save the once built [shared]
ATLAS libraries for use by another Sage installation.
-leif
--
() The ASCII Ribbon Campaign
/\ Help Cure HTML E-Mail