This is the mail archive of the libc-alpha@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [Various] libc/1336: Problem building JDK 1.2.1 with glibc 2.1.2


On Fri, Nov 05, 1999 at 04:48:03PM +0100, Mark Kettenis wrote:
> If I'm not mistaken the problem Kars reported happens when libtt.so.2
> cannot be found by the dynamic linker.  Or is there an old version
> living in /usr/lib ?

No, no old versions around. It only happens when it can't be found.

> My guess is that in the versioning information in ttcp, somehow the
> dependency on libpthread is recorded, while no DT_NEEDED entry for
> libpthread is included.  Could you try to figure out if this is indeed
> the case Kars?

Looks like a Bingo! to me:

bash$ readelf -d -V ttcp

Dynamic segment at offset 0x32a8 contains 23 entries:
  Tag        Type                         Name/Value
  0x00000001 (NEEDED)                     Shared library: [libtt.so.2]
  0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
  0x00000001 (NEEDED)                     Shared library: [libm.so.6]
  0x00000001 (NEEDED)                     Shared library: [libc.so.6]
  ^^^^^^^^^^^^^^^^^^^ No libpthread here! ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  0x0000000c (INIT)                       0x800018e8
  0x0000000d (FINI)                       0x80002f84
  0x00000004 (HASH)                       0x80000124
  0x00000005 (STRTAB)                     0x80000cc4
  0x00000006 (SYMTAB)                     0x800004b4
  0x0000000a (STRSZ)                      2146 (bytes)
  0x0000000b (SYMENT)                     16 (bytes)
  0x00000015 (DEBUG)                      0
  0x00000003 (PLTGOT)                     0x800051e0
  0x00000002 (PLTRELSZ)                   564 (bytes)
  0x00000014 (PLTREL)                     RELA
  0x00000017 (JMPREL)                     0x800016b4
  0x00000007 (RELA)                       0x8000169c
  0x00000008 (RELASZ)                     24 (bytes)
  0x00000009 (RELAENT)                    12 (bytes)
  0x6ffffffe (VERNEED)                    0x8000164c
  0x6fffffff (VERNEEDNUM)                 2
  0x6ffffff0 (VERSYM)                     0x8000154a
  0x00000000 (NULL)                       0

Version symbols section '.gnu.version' contains 129 entries:
 Addr: 000000008000154a  Offset: 0x00154a  Link: 4 (.dynsym)
  000:   0 (*local*)       2 (GLIBC_2.1)     0 (*local*)       3 (GLIBC_2.0)
  004:   3 (GLIBC_2.0)     0 (*local*)       3 (GLIBC_2.0)     3 (GLIBC_2.0)
  008:   0 (*local*)       0 (*local*)       1 (*global*)      3 (GLIBC_2.0)
  00c:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     1 (*global*)      4 (GLIBC_2.0)
  010:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  014:   0 (*local*)       3 (GLIBC_2.0)     3 (GLIBC_2.0)     4 (GLIBC_2.0)
  018:   4 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)
  01c:   0 (*local*)       3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  010:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  014:   0 (*local*)       3 (GLIBC_2.0)     3 (GLIBC_2.0)     4 (GLIBC_2.0)
  018:   4 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)
  01c:   0 (*local*)       3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  020:   3 (GLIBC_2.0)     4 (GLIBC_2.0)     4 (GLIBC_2.0)     3 (GLIBC_2.0)
  024:   3 (GLIBC_2.0)     0 (*local*)       0 (*local*)       3 (GLIBC_2.0)
  028:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)       0 (*local*)
  02c:   3 (GLIBC_2.0)     0 (*local*)       0 (*local*)       1 (*global*)
  030:   0 (*local*)       3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  034:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)       3 (GLIBC_2.0)
  038:   3 (GLIBC_2.0)     4 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  03c:   3 (GLIBC_2.0)     4 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)
  040:   0 (*local*)       4 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)
  044:   0 (*local*)       3 (GLIBC_2.0)     0 (*local*)       3 (GLIBC_2.0)
  048:   0 (*local*)       3 (GLIBC_2.0)     0 (*local*)       3 (GLIBC_2.0)
  04c:   0 (*local*)       3 (GLIBC_2.0)     0 (*local*)       3 (GLIBC_2.0)
  050:   3 (GLIBC_2.0)     0 (*local*)       0 (*local*)       1 (*global*)
  054:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)       0 (*local*)
  058:   4 (GLIBC_2.0)     0 (*local*)       3 (GLIBC_2.0)     0 (*local*)
  05c:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     4 (GLIBC_2.0)     1 (*global*)
  060:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     4 (GLIBC_2.0)     3 (GLIBC_2.0)
  064:   0 (*local*)       3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  068:   3 (GLIBC_2.0)     4 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  06c:   1 (*global*)      1 (*global*)      1 (*global*)      3 (GLIBC_2.0)
  070:   0 (*local*)       3 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)
  074:   1 (*global*)      3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)
  078:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)     0 (*local*)
  07c:   3 (GLIBC_2.0)     3 (GLIBC_2.0)     3 (GLIBC_2.0)     1 (*global*)
  080:   3 (GLIBC_2.0)

Version needs section '.gnu.version_r' contains 2 entries:
 Addr: 0x000000008000164c  Offset: 0x00164c  Link to section: 5 (.dynstr)
  000000: Version: 1  File: libc.so.6  Cnt: 1
  0x0010: Name: GLIBC_2.0  Flags: none  Version: 4
  0x0020: Version: 1  File: libpthread.so.0  Cnt: 2
                            ^^^^^^^^^^^^^^^
  0x0030: Name: GLIBC_2.0  Flags: none  Version: 3
  0x0040: Name: GLIBC_2.1  Flags: none  Version: 2
bash$

Kars.
-- 
------------------------------------------------------------------------------
Kars de Jong             Signaalkamp rules the waves!       Turrican@Discworld
--------======]**-----|      jongk@cs.utwente.nl      |-----**[======---------

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]