Re: libstdc++.so without version information

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Philipp Thomas schrieb:
> On Tue, 24 Nov 2009 16:02:29 +0100, you wrote:
> 
>>                libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
>>                libstdc++.so.6 (CXXABI_1.3) => not found
>>                libstdc++.so.6 (GLIBCXX_3.4) => not found
>> [snip]
>> It seems that the libstdc++ does not contain the needed information:
>>
> 
> You can't check with strings. The right way to check the version
> information is by using  'objdump -p' on the library. When doing so,
> you'll see something like
> 
> Version definitions:
> 1 0x01 0x025f4d66 libstdc++.so.6
> 2 0x00 0x08922974 GLIBCXX_3.4
> 3 0x00 0x02297f81 GLIBCXX_3.4.1
>         GLIBCXX_3.4
> 4 0x00 0x02297f82 GLIBCXX_3.4.2
>         GLIBCXX_3.4.1
> 5 0x00 0x02297f83 GLIBCXX_3.4.3
>         GLIBCXX_3.4.2

Thanks for your tips!
With objdump I get:

root:# objdump -p libstdc++.so.6.0.8

libstdc++.so.6.0.8:     file format elf32-i386

Program Header:
    LOAD off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
         filesz 0x000e1ee0 memsz 0x000e1ee0 flags r-x
    LOAD off    0x000e28d8 vaddr 0x000e28d8 paddr 0x000e28d8 align 2**12
         filesz 0x00004190 memsz 0x00009e8c flags rw-
 DYNAMIC off    0x000e597c vaddr 0x000e597c paddr 0x000e597c align 2**2
         filesz 0x000000e0 memsz 0x000000e0 flags rw-
     TLS off    0x000e28d8 vaddr 0x000e28d8 paddr 0x000e28d8 align 2**2
         filesz 0x00000000 memsz 0x00000008 flags r--
EH_FRAME off    0x000c4cb0 vaddr 0x000c4cb0 paddr 0x000c4cb0 align 2**2
         filesz 0x0000456c memsz 0x0000456c flags r--
   STACK off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
         filesz 0x00000000 memsz 0x00000000 flags rw-
   RELRO off    0x000e28d8 vaddr 0x000e28d8 paddr 0x000e28d8 align 2**0
         filesz 0x000030a4 memsz 0x0000308c flags r--

Dynamic Section:
  NEEDED      libm.so.6
  NEEDED      libgcc_s.so.1
  NEEDED      libc.so.6
  NEEDED      ld-linux.so.2
  SONAME      libstdc++.so.6
  INIT        0x446c0
  FINI        0xc0954
  HASH        0x114
  STRTAB      0x135ac
  SYMTAB      0x4b8c
  STRSZ       0x295d0
  SYMENT      0x10
  PLTGOT      0xe5ff4
  PLTRELSZ    0x11a8
  PLTREL      0x11
  JMPREL      0x43518
  REL         0x3e980
  RELSZ       0x4b98
  RELENT      0x8
  VERNEED     0x3e8c0
  VERNEEDNUM  0x3
  VERSYM      0x3cb7c
  RELCOUNT    0x108

Version References:
  required from ld-linux.so.2:
    0x0d696913 0x00 09 GLIBC_2.3
  required from libgcc_s.so.1:
    0x0d696910 0x00 10 GLIBC_2.0
    0x0b792653 0x00 08 GCC_3.3
    0x0b792650 0x00 05 GCC_3.0
  required from libc.so.6:
    0x0d696911 0x00 07 GLIBC_2.1
    0x0d696913 0x00 06 GLIBC_2.3
    0x09691f73 0x00 04 GLIBC_2.1.3
    0x0d696910 0x00 03 GLIBC_2.0
    0x0d696912 0x00 02 GLIBC_2.2

i.e. no CXXABI, no GLIBCXX!

> Looks likeWhat ldconfig is telling you is that it doesn't find the
> library. Try calling ldconfig to get the dynamic linker to cache the
> library and then again ldd.

ldconfig did find the library, but could not extract the version info
(regarding CXXABI and GLIBCXX), since it's obviously not there. And
I don't know why.

Thanks
Christian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux