On Fri, Feb 08, 2002 at 04:50:57PM +0200, Maxim Sobolev wrote: > Ruslan Ermilov wrote: > > > > On Fri, Feb 08, 2002 at 12:48:34PM +0200, Maxim Sobolev wrote: > > > Terry Lambert wrote: > > > > > > > > Maxim Sobolev wrote: > > > > > That would be nice, but we have a real problem at hand. As I said, I > > > > > think that ld(1) should be smart enough to reorder libc/libc_r so that > > > > > libc_r is always linked before libc. This is clearly not the case > > > > > right now. Unfortunately there is no easy way to reproduce this, but > > > > > if you have some spare CPU cycles try to remore explicit -pthread from > > > > > ports/mail/evolution/Makefile, build the port on -current and do `ldd > > > > > /usr/X11R6/bin/evolution'. You will see that libc.so.X precedes > > > > > libc_r.so.X, even though -lc wasn't supplied to a linker, while -lc_r > > > > > was. > > > > > > When you say ld(1), are you perhaps mean rtld-elf.so.1 (aka rtld(1))? > > ld(1) only _links_ when static linkage was requested (which is not the > > case here), or writes dynamic dependencies on shared objects. > > No, I meant ld(1). The problem here is that in the case when libc is > recorded before libc_r in dynamic dependencies list the resulting > executable may not work correctly (see my testcase). > Sorry, but I don't get it. I can't reproduce it other than specifying -lc explicitly. For example, -lssh now depends on -lcrypto and -lz, in that order. Attempting to link a program with -lc_r -lssh gives, in that order:
libc_r.so.5 => /usr/lib/libc_r.so.5 (0x28065000) libssh.so.2 => /usr/lib/libssh.so.2 (0x28083000) libc.so.5 => /usr/lib/libc.so.5 (0x280b2000) libcrypto.so.2 => /usr/lib/libcrypto.so.2 (0x28168000) libz.so.2 => /usr/lib/libz.so.2 (0x28223000) The primary dependecies come first, then secondaries. I can only imagine the situation where libc.so comes before libc_r.so if some library has a (bogus) explicit dependency on libc.so. How does ldd(1) output in question looks like, the full version? Cheers, -- Ruslan Ermilov Sysadmin and DBA, [EMAIL PROTECTED] Sunbay Software AG, [EMAIL PROTECTED] FreeBSD committer, +380.652.512.251 Simferopol, Ukraine http://www.FreeBSD.org The Power To Serve http://www.oracle.com Enabling The Information Age To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message