Where is version in so's set? Seems to have disappeared w/gcc upgrade?
Xi Ruoyao
ryxi@stu.xidian.edu.cn
Tue Jun 13 19:45:00 GMT 2017
On 2017-06-13 11:46 -0700, L A Walsh wrote:
> I compiled & installed the gcc suite to get the 6.x toolset (only had 4.x
> available before).
>
> A side effect of this has cropped up in various libs generated
> by the new toolset that other tools link to:
>
> /home/opt/Qt/5.8/gcc_64/plugins/platforms/libqxcb.so:Â
> /usr/lib64/libQt5Core.so.5: no version information available (requiredÂ
> by /home/opt/Qt/5.8/gcc_64/plugins/platforms/libqxcb.so)
>
> Why did this disappear w/new gcc?   Did I leave off some
> switch in gcc-config or in compiling or linking the libs?
>
> Why is an internal version number needed?  Wasn't the
> ".so" extension supposed to allow for library versioning
> along the lines of:
>
> foo.so.4.3
> foo.so.5.8
> foo.so.4 => foo.so.4.3
> foo.so.5 => foo.so.5.8
> foo.so => foo.so.5
Libstdc++ has been using version number 6.0.x for a long time.
For each release we bump x and add some symbols.
See <https://gcc.gnu.org/onlinedocs/gcc-6.3.0/libstdc++/manual/manual/abi.html>.
Your issue happens because an ABI change in GCC 5 release
(most likely). Â The page
<https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html>
should help you.
I think building your libqxcb.so with -D_GLIBCXX_USE_CXX11_ABI=0
can solve your issue now. Â But as the BLFS book suggested
<http://linuxfromscratch.org/blfs/view/systemd/general/gcc.html>,
you should either recompile all of your C++ shared libraries,
or configure your GCC 6 with
"--with-default-libstdcxx-abi=gcc4-compatible", in order to
prevent this issue happening again.
> (not that such is used very often on linux for some reason).
>
> Thanks much!
> Linda
>
>
>
--
Xi Ruoyao <ryxi@stu.xidian.edu.cn>
School of Aerospace Science and Technology, Xidian University
More information about the Gcc-help
mailing list