[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How does versioning work (was: Bug mixing old sem_wait and new pth
From: |
John Reiser |
Subject: |
Re: How does versioning work (was: Bug mixing old sem_wait and new pthread_cond_broadcast) |
Date: |
Fri, 27 Apr 2001 09:09:12 -0700 |
> |> Why are two versions of libc.so.6 listed under libglib-1.2.so.0.0.9?
>
> There are two _version symbols_ listed, both belonging to the same
> library.
>
> |> How does the system determine which versions are required for a given
> |> library?
>
> It's encoded in the object image. Use `objdump -p' to get a listing.
For more detailed, symbol-by-symbol information, use
readelf --syms --version-info module
where readelf is part of the gnu binutils package.
For example, on the /bin/date that I have, the --syms part includes
26: 080489bc 58 FUNC GLOBAL DEFAULT UND address@hidden (2)
27: 08048b0c 229 FUNC GLOBAL DEFAULT UND address@hidden (3)
and the --version-info part includes [note hex<->decimal conflict in labels]
018: 2 (GLIBC_2.0) 2 (GLIBC_2.0) 2 (GLIBC_2.0) 3 (GLIBC_2.1)
Version needs section '.gnu.version_r' contains 1 entries:
Addr: 0x00000000080487c4 Offset: 0x0007c4 Link to section: 5 (.dynstr)
000000: Version: 1 File: libc.so.6 Cnt: 2
0x0010: Name: GLIBC_2.1 Flags: none Version: 3
0x0020: Name: GLIBC_2.0 Flags: none Version: 2
--
John Reiser, address@hidden