On 27/05/07, Patrice Dumas <pertusus(a)free.fr> wrote:
I have exactly the opposite experience. I have issues with
incompatibilities, for example. Or missing libraries on platform I am
not administrator. Or libraries with different sonames. In what case did
you have bizarre results?
A program statically linked with GMP running on two different
platforms giving different answers.
> Besides which, if you were to want to statically link a binary
> send it to run elsewhere, Fedora isn't the platform to be doing it on.
Fedora is usually based on the latest glibc. Segfaults seem to ensue
when running a statically linked binary compiled on Fedora with a
system with an earlier glibc.
> If you're looking for that sort of portability, you should be using a
> consistent and reliable platform for the calculations, like RHEL.
What a bizarre suggestion. Fedora should be good for numerical models.
If fedora isn't good for that RHEL wont be either.
Yeah, I phrased the poorly. I use Fedora daily for numerical work.
What i meant was, if you're really loking for a reliable and
reproducible setup for running numerical calcs based on static linking
and distributing binaries, you wouldn't want to use a distro with
rapid ABI turnover.
> The right fix here is to educate scientific programmers as to
> statically linking in libraries doesn't actually get them what they
> want, and that it is broken.
I don't want to give false ideas, in many real life cases statically
linking numerical models gave a binary that gave a similar result on all
the platforms. I prefer educating people that believe that static
linking doesn't bring in portability.
Right - that's what I meant the last sentence - so why go to the
bother of making statically linkable libraries available if it doesn't
actually achieve the goal of producing portable binaries, but rather
gives people false hope. That's what I'd call wasting people's time,
or giving them a noose to hang themselves with.
It seems to me that the use case doesn't justify what you're asking
for though. The solution you're proposing (allowing users to link
statically to system wide libraries) doesn't achieve the goal
(producing "run anywhere" binaries). As Matthias pointed out, if
someone is hell bent on producing statically linked binaries, then
they can download the source for the libraries they need and build and
link statically against them.