Static linking considered harmful
William W. Austin
waustin at speakeasy.net
Wed Nov 22 13:49:56 UTC 2006
On 2006-11-22 05:37:43, Patrice Dumas <pertusus at free.fr> wrote:
> On Wed, Nov 22, 2006 at 10:29:44AM +0000, Andrew Haley wrote:
> > >
> > > Not only. There are cases when all those issues are moot,
> > > a prominent one
> > > being for numerical models. Compiling models statically makes
> > > it possible
> > > to run them on any other linux (including different fedora
> > > version) box
> > > without recompiling. So all the libraries that can be used for
> > > numerical
> > > computations should have static libraries kept.
> >
> > This seems like a non sequitur. What's special about numerical
> > computations?
>
> I already explained it in my mail? To be more precise
>
> * security considerations are moot
> * nss, iconv are not needed
>
> Other arguments for dynamic linking are not compulsory.
> And numerical models are programs we would like to be able to run
> on other linux box without recompiling. Imagine that compilation
> takes 30 minutes and that you want to start 20 runs in paralell
> from nfs mounted filesystem in an heterogeneous linux environment
> with some redhat 6.2, 7.x, centos, debian, mandrake and fedora
> core (real world example, of course).
>
> --
> Pat
I have to agree with Patrice Dumas. I regularly do extensive numerical
analysis and modeling using such a network, and the compilation time
for the central program is VERY long, taking over 40 minutes on the
fastest machine I have available. While I don't think we have anything
older than RH8 in the pool of runtime machines, many of them cannot be
upgraded for other reasons (I don't own them - I just get to use them
when they are available, so the pool of machines changes probably every
time I visit phase space), and if I had to do a compile for every
different O/S+release combination I'm using, it would be a nightmare.
While my run time is longer than Pat's example (a little over 4 hours
using around 30 machines), if I had to recompile for each of the
different variations I use, it would be prohibitively time-consuming
and would be a reason to stop upgrading several machines here.
I don't know whether eliminating static libraries would be a problem
for other types of apps, for what I'm doing its elimination would be a
disaster.
While I don't see a problem with eliminating static linking of system
utilities, IMHO eliminating it for user-written utilities is not a
"universal benefit."
--
william w. austin waustin at speakeasy.net
"life is just another phase i'm going through. this time, anyway ..."
More information about the fedora-devel-list
mailing list