Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 08 Feb 2002 03:38:00 -0800
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Maxim Sobolev <sobomax@FreeBSD.org>
Cc:        jdp@FreeBSD.org, deischen@FreeBSD.org, jasone@FreeBSD.org, hackers@FreeBSD.org, jlemon@FreeBSD.org
Subject:   Re: Linking libc before libc_r into application causes weird problems
Message-ID:  <3C63B898.65E99472@mindspring.com>
References:  <1013147180.73417.2.camel@notebook> <3C637097.13B8C35A@mindspring.com> <3C63973F.111CF6D1@FreeBSD.org> <3C63A4C1.7C2CEEDF@mindspring.com> <3C63B14E.516941C4@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Maxim Sobolev wrote:
> When you are linking with shared libraries you do not need to specify
> them in the "correct" order, because AFAIK linker takes care of that
> using dependency information recorded within each shared library.
> Correct order only required for static libraries that do not have a
> way to record a dependency information.

Libraries are not all int he same dependency space.

It's possible to have a shared library that is linked
against libc_r.so.3, and have the rest of the program
linked against libc.so.4 (e.g. if there were a .init
that started a thread in the library when the program
was invoked, in order to service requests made via an
IPC, also defined by the library).

Likewise, it's possible for different interface versions
to coexist in a program, so long as there are no relied
upon interactions (e.g. a static buffer being blown by
one thread for use by another).

The relationship between libraries is not flat, it's
hierarchical, or at least is supposed to be able to be,
according to the ELF spec..

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C63B898.65E99472>