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>