Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 274374 - app-emulation/playonlinux won't run due to `GLIBCXX_3.4.9' not being found
Summary: app-emulation/playonlinux won't run due to `GLIBCXX_3.4.9' not being found
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo wxWidgets project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-16 15:38 UTC by John Simmonds (overfuse)
Modified: 2009-07-03 23:31 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch to add a dependency for gcc version 4.2 or higher (playonelinux-3.5.ebuild.patch,349 bytes, patch)
2009-06-16 15:48 UTC, John Simmonds (overfuse)
Details | Diff
Patch to add a dependency for gcc version 4.2 or higher (playonlinux-3.5.ebuild.patch,349 bytes, patch)
2009-06-16 15:50 UTC, John Simmonds (overfuse)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John Simmonds (overfuse) 2009-06-16 15:38:34 UTC
I solved this problem but felt I should raise a bug about it.

I emerged app-emulation/playonlinux-3.5 with no errors, but when I tried to run it I got the error:

"PlayOnLinux v3.5

Checking python : 				[ Ok ]
Traceback (most recent call last):
  File "/usr/share/games/playonlinux/python/mainwindow.py", line 23, in <module>
    import wx, wx.html
  File "usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/__init__.py", line 45, in <module>
  File "usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 4, in <module>
ImportError: /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/libwx_baseu-2.8.so.0)"

Turned out that I was using a gcc compiler earlier then version 4.2. If I set Gentoo to use a gcc compiler =>4.2 then it work with no error.

Reproducible: Always

Steps to Reproduce:
1. Run "playonlinux"
Actual Results:  
PlayOnLinux v3.5

Checking python : 				[ Ok ]
Traceback (most recent call last):
  File "/usr/share/games/playonlinux/python/mainwindow.py", line 23, in <module>
    import wx, wx.html
  File "usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/__init__.py", line 45, in <module>
  File "usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 4, in <module>
ImportError: /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/libwx_baseu-2.8.so.0)
Comment 1 John Simmonds (overfuse) 2009-06-16 15:48:46 UTC
Created attachment 194901 [details, diff]
Patch to add a dependency for gcc version 4.2 or higher

he is a patch for
/usr/portage/app-emulation/playonlinux/playonlinux-3.5.ebuild that adds
">=sys-devel/gcc-4.2" to the RDEPEND and fixes this bug.
Comment 2 John Simmonds (overfuse) 2009-06-16 15:50:33 UTC
Created attachment 194902 [details, diff]
Patch to add a dependency for gcc version 4.2 or higher

Spelling mistake with file name of previous patch.
Comment 3 Mounir Lamouri (volkmar) (RETIRED) gentoo-dev 2009-06-16 18:28:59 UTC
Actually, it doesn't look linked to playonlinux but to wxpython.
I checked and it looks like /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py at line 4 imports _core_ which is a .so file (compiled).

Did you compile wxpython with >=gcc4.2 and then try to run it with gcc-3 ?
Comment 4 John Simmonds (overfuse) 2009-06-17 15:54:38 UTC
(In reply to comment #3)
> Actually, it doesn't look linked to playonlinux but to wxpython.
> I checked and it looks like
> /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py at line 4
> imports _core_ which is a .so file (compiled).
> 
> Did you compile wxpython with >=gcc4.2 and then try to run it with gcc-3 ?
> 

To test this I switch to gcc-3 then re-emerged both wxpython then playonlinux Linux and still the same error. So I used gcc-config to switch back to gcc-4 and playonlinux worked (no re-emerging needed).

A different application also had the same issues and was disucssed on the Gentoo forum, see http://forums.gentoo.org/viewtopic-t-612695.html

I still think playonlinux is dependent on gcc-4.2 or higher.
Comment 5 Mounir Lamouri (volkmar) (RETIRED) gentoo-dev 2009-07-03 10:19:03 UTC
I've just tested in my chroot:

- install gcc-3
- change gcc to gcc-3
- merging wxpython and depends
- launch getdep script (scanelf and so one) returns:
Altdorf ~ # ./scripts/getdep.sh wxpython
dev-lang/python (/usr/lib/libpython2.6.so.1.0)
sys-devel/gcc (/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/libstdc++.so.6)
sys-libs/glibc (/lib/libc.so.6)
sys-libs/glibc (/lib/libm.so.6)
x11-libs/wxGTK (/usr/lib/libwx_baseu-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_baseu_net-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_baseu_xml-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_adv-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_aui-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_core-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_gizmos-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_gl-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_html-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_media-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_richtext-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_stc-2.8.so.0)
x11-libs/wxGTK (/usr/lib/libwx_gtk2u_xrc-2.8.so.0)

In my opinion, this is linked to wxpython.

Python team, can you look at this ?

Thanks
Comment 6 Ryan Hill (RETIRED) gentoo-dev 2009-07-03 23:31:07 UTC
You'll get this error whenever you try to run a program linked to any C++ library built with a later version of GCC than you currently have selected in gcc-config.  In this case, the offending library is /usr/lib/libwx_baseu-2.8.so.0, which belongs to wxGTK:

dirtyepic@halo ~ $ qfile /usr/lib/libwx_baseu-2.8.so.0
x11-libs/wxGTK (/usr/lib64/libwx_baseu-2.8.so.0)

It's not that playonlinux requires 4.2, it's that wxGTK is linked against the libstdc++.so.6 library from 4.2 which contains a symbol (GLIBCXX_3.4.9) which doesn't exist in earlier versions of GCC.  When you switch to an earlier version with gcc-config, it suddenly can't find that symbol and you get an error.

For eg. my wxGTK is built with GCC 4.4, and if I switch to 4.3 I can reproduce the same error:

dirtyepic@halo ~ $ python
Python 2.6.2 (r262:71600, Jun 13 2009, 23:15:08) 
[GCC 4.4.0] on linux2                            
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx                                                         
Traceback (most recent call last):                                    
  File "<stdin>", line 1, in <module>                                 
  File "/usr/lib64/python2.6/site-packages/wx-2.8-gtk2-unicode/wx/__init__.py", line 45, in <module>
    from wx._core import *                                                                          
  File "/usr/lib64/python2.6/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 4, in <module>    
    import _core_                                                                                   
ImportError: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/libwx_baseu-2.8.so.0)

Long story short, rebuild wxGTK.