Static linking considered harmful

Hans de Goede j.w.r.degoede at hhs.nl
Fri Nov 24 19:22:49 UTC 2006



Axel Thimm wrote:
> On Wed, Nov 22, 2006 at 12:14:25PM -0800, Ulrich Drepper wrote:
>> As for the "works everywhere" argument:
>>
>> - Jakub and others already pointed out that this is mostly a myth.
>>   Every non-trivial program needs services which require dynamic
>>   linking.  glibc's dependencies (iconv, nss, idn, ...) are prominent.
>>   But there are an increasing number of other projects which need it.
>>   Just look for all the DSOs linked against (explicitly or implicitly)
>>   libdl.  This includes basically all GUI stuff, all security apps.
>>   Heck, even ncurses falls in this category.  All of these are out
>>   when it comes to static linking.
> 
> Sorry, that's reality, not a myth. I'm a physicist myself and have
> worked in/collaborated with several academic or research locations,
> and the picture is the same everywhere: People prefer to create
> statically linked applications to distribute and share with
> colleages. That's true for physicists, chemists, weather science
> stations - most probably all of natural sciences, but perhaps cs.
> 
> If you take them the ability to statically link away, then Fedora (and
> then RHEL6) will stop being an attractive development platform for
> them anymore. Do we want that to happen? I don't think so, even though
> the scientific community isn't the largest group certainly.
> 
> And please note that the target group we're talking about are simple
> users (even though they may be very skillful programmers), not some
> package monkeys that will create rpms and debs for all systems
> required or that even care about DSO, tarballing their runtime
> enviroment and scripting launchers and so on (just quoting some
> solutions offered in this thread).
> 
> On the other hand their applications are usually quite non-trivial w/o
> involving iconv or nss or dlopening plugins (everyone defines
> non-trivial differently of course). Most numerical codes nowadays are
> also a mix of C, Fortran and C++, which makes portability w/o
> statically linking an even greater nightmare.
> 
> My 0.02 contribution is to identify the wrongly statically linked bits
> (as done by David), fix these, and let the rest as is, e.g. all
> packages are themselves using DSO, but some prominent ones like the
> glibc/libstdc++ and firends are offering statically linked libraries
> *for users*.
> 


+1, although it would be a good idea to put the static libs in a
seperate sub package. ( /me has no need for such a beast)

Regards,

Hans






More information about the fedora-devel-list mailing list