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