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
+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)