Re: __gnu_cxx error in OpenSolaris

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

 



On 19 May 2011 15:47, Jonathan Wakely wrote:
> 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

See the docs for --enable-symvers at
http://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html

If that isn't given explicitly then it will be guessed by configure.
The guess will depend on whether the linker supports symvers or not so
depends on what linker gcc is configured to use. Also support for
--enable-symvers=sun was added in gcc 4.6, so maybe that is being used
by your 4.6 build.



[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