Re: __gnu_cxx error in OpenSolaris

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

 



On 19 May 2011 15:03,  <asyropoulos@xxxxxxx> wrote:
>
>> ignore that ... you didn't say whether you looked at the libstdc++.so
>> libs in /opt/gcc-4.6.0 and whether any of them use ELF symbol
>> versioning, which might make them incompatible.
>
> I have compiled Qt with gcc 4.5.3 and 4.6.0 and now I am trying again
> with 4.6.0 that has been configured to use GNU ld and GNU as. As about
> the versioning thing I am not sure what you mean, bur I hope the following
> help:
>
> $ elfdump -v /usr/lib/libstdc++.so.6.0.14
>
> Version Needed Section:  .SUNW_version
>    index  file                        version
>      [2]  libm.so.2                   SUNW_1.2
>      [3]  libgcc_s.so.1               GCC_3.0              [ INFO ]
>      [4]                              GCC_3.3              [ INFO ]
>      [5]                              GCC_4.2.0

This shows that /usr/lib/libstdc++.so doesn't use symvers.

> $ elfdump -v /opt/gcc-4.6.0/lib/libstdc++.so.6.0.15
>
> Version Definition Section:  .SUNW_version
>    index  version                     dependency
>      [1]  libstdc++.so.6                                   [ BASE ]
>      [2]  GLIBCXX_3.4
>      [3]  GLIBCXX_3.4.1               GLIBCXX_3.4
>      [4]  GLIBCXX_3.4.2               GLIBCXX_3.4.1
> ...

This shows that /opt/gcc-4.6.0/lib/libstdc++.so does use symvers.

Therefore they are not compatible.

If you compile with gcc 4.6 you must ensure the library in /opt is
found.  I suspect the wrong libstdc++.so is being found at link time.

Another alternative would be to rebuild gcc 4.6 without symbol
versioning enabled so that you get compatibility with the lib from gcc
4.5



[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