Re: Missing dependencies on shared libraries



In message: <Pine.GSO.4.64.0604151411140.9269@xxxxxxxxxxxxx>
Daniel Eischen <deischen@xxxxxxxxxxx> writes:
: On Sat, 15 Apr 2006, M. Warner Losh wrote:
:
: > In message: <Pine.GSO.4.64.0604151358210.9220@xxxxxxxxxxxxx>
: > Daniel Eischen <deischen@xxxxxxxxxxx> writes:
: > : On Sat, 15 Apr 2006, M. Warner Losh wrote:
: > :
: > : > In message: <Pine.GSO.4.64.0604141439280.3685@xxxxxxxxxxxxx>
: > : > Daniel Eischen <deischen@xxxxxxxxxxx> writes:
: > : > : On Fri, 14 Apr 2006, Victor Balada Diaz wrote:
: > : > :
: > : > : > Hi,
: > : > : > I found that ldd doesn't report libc as a dependency on most (all?)
: > : > : > libraries:
: > : > : >
: > : > : > pato> ldd /usr/lib/libfetch.so
: > : > : > /usr/lib/libfetch.so:
: > : > : > libssl.so.3 => /usr/lib/libssl.so.3 (0x4816a000)
: > : > : > libcrypto.so.3 => /lib/libcrypto.so.3 (0x48198000)
: > : > : >
: > : > : > does anyone know why?
: > : > :
: > : > : AFAIK, it's being worked on. It's not just libc either, -pthread
: > : > : also has to start linking to libpthread.
: > : >
: > : > We don't record libc dependencies into shared libraries right now. If
: > : > we did, that would create some problems and solve some problems. With
: > : > symbol versioning, it most likely will become moot, since we'll never
: > : > have to bump libc major version again...
: > :
: > : kan stated he was working on doing this, which is what I was
: > : referring to above.
: >
: > That makes sense. If you explicitly include libc on the command line
: > to build the library, it is included...
:
: Here's the link to his original reply to -current. Also, if you
: look at linux shared libraries, you'll note they have dependencies
: to libc.

I guess what I'm saying is that on FreeBSD, the system built shared
libraries don't have libc recorded in them because we don't add -lc on
the commnad line to build them. Other libraries do have it recorded
in them, for example I have libxvidcore.so from some port on my
system:

readelf -d libxvidcore.so

Dynamic segment at offset 0x8a39c contains 20 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [libm.so.4]

If we hacked bsd.lib.mk to include -lc always, all shared libraries
would have a libc dependency.

Warner
_______________________________________________
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: .EXE -> .ASM -> .EXE
    ... I suspect your libc library is ... fragmentation when the OS loads the module into memory (that is, ... Rene claims that the way to go is with shared libraries because ...
    (alt.lang.asm)
  • Re: "-pthread" == "-lpthread" for shared libs in -CURRENT
    ... Recording dependency to libc_r or libc ... into shared libraries makes shared libraries that work in both threaded ...
    (freebsd-current)
  • Re: library organization question - how much to split up
    ... > libraries, I want to consider two points in re-designing it. ... > dependency on just one other library (other than libc). ... Then when you create your shared libraries do so such that the ... > different sections in my library, and each has a different header file. ...
    (comp.unix.programmer)
  • Re: library organization question - how much to split up
    ... |> libraries, I want to consider two points in re-designing it. ... |> dependency on just one other library (other than libc). ... | Then when you create your shared libraries do so such that the ... I do generate the dependencies in the libraries. ...
    (comp.unix.programmer)
  • Re: Using thread-specific data in shared libraries
    ... shared libraries since there might be a race condition between thread ... exit notification and pthread_key_delete called from library unload. ... might have TSD in threads that outlives the shared library. ...
    (comp.programming.threads)