Opened 12 years ago

Last modified 9 years ago

#10169 infoneeded defect

After successfull install: _core_.so: undefined symbol: _ZN12wxAppConsole15CreateLogTargetEv

Reported by: azlk Owned by: robind
Priority: normal Milestone:
Component: base Version: 2.8.9
Keywords: _core_.so: undefined symbol: _ZN12wxAppConsole15CreateLogTargetEv Cc:
Blocked By: Blocking:
Patch: no

Description

System: uname -a

Linux puppypc 2.6.21.7 #1 Wed Aug 27 16:05:38 GMT-8 2008 i686 Intel(R) Celeron(R) CPU 2.66GHz GenuineIntel GNU/Linux

Python 2.5.2 installed at /usr/lib/python2.5

I downloaded wxPython 2.8.9.1 sources from wxpython.org and built it with next options:

../configure --prefix=/opt/wx/2.8 \
             --with-gtk \
             --enable-optimize \
             --enable-gui \
             --enable-shared \
             --enable-plugins \
             --enable-intl \
             --enable-unicode \
             --enable-debug_gdb \
             --enable-geometry \
             --enable-graphics_ctx \
             --enable-sound --with-sdl \
             --enable-mediactrl \
             --enable-image \
             --enable-gif \
             --enable-pcx \
             --enable-tga \
             --enable-iff \
             --enable-xpm \
             --with-libjpeg=builtin \
             --with-libpng=builtin \
             --with-libtiff=builtin \
             --with-zlib=builtin \
             --without-opengl \
             --without-glcanvas \
             --disable-glcanvas

Everything was built fine - I did it exactly as it described on the main page http://wxpython.org/BUILD.html - .configure, .make, then .make install.
Thus wx were installed to /opt/wx/2.8

Next:

export PYTHONPATH=export PYTHONPATH=/usr/lib/python2.5
cd to $WXDIR/wxPython
python2.5 setup.py build_ext --inplace --debug BUILD_GLCANVAS=0
python2.5 setup.py install BUILD_GLCANVAS=0

(glcanvas failed for some reason)
...and wx and wxPython were successfully installed to python directory /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode.

But when I tried to run

python demo.py

I got this error:

Traceback (most recent call last):
  File "demo.py", line 3, in <module>
    import Main
  File "/initrd/mnt/dev_save/Home/Downloads/WX/wxPython-src-2.8.9.1/wxPython-src-2.8.9.1/wxPython/demo/Main.py", line 34, in <module>
    import wx              
  File "/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/__init__.py", line 45, in <module>
    from wx._core import *
  File "/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 4, in <module>
    import _core_
ImportError: /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core_.so: undefined symbol: _ZN12wxAppConsole15CreateLogTargetEv

And any program written with wxPython (ftpcube, for example) gives the same error:

# ftpcube                                                                  
Ftpcube - Compilation error: /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core_.so: undefined symbol: _ZN12wxAppConsole15CreateLogTargetEv.
	Unable to import the wxPython package.

I tried to buils wxPython with option:

--disable-shared
--enable-monolithic

but with the same negative result :-(

More details I could dig while googling about similar errors:

ld /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core_.so                                
ld: warning: cannot find entry symbol _start; not setting start address
/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core_.so: undefined reference to `wxAppConsole::CreateLogTarget()'
/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core_.so: undefined reference to `wxAppConsole::CreateMessageOutput()'

IMHO, victory was somewhere very near...but where?...
I would like to be able to repair it myself...if I only could understand what's the reason of this error...
Sincerely, A

Change History (9)

comment:1 Changed 12 years ago by azlk

Forgot to say that it was the first install of wxPython on fresh system, and there was no other _core* file in it exept that: /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core_.so

And I have just installed gcc 4.2.4 from Slackware - with the same result, unfortunately, so I begin to supect that something wrong in code?..

comment:2 Changed 12 years ago by azlk

And yes, I have

  • checked if wx.pth in my python site-packages is pointing to the correct wxPython directory
  • and checked /etc/ld.so.conf and I see that the wxWidgets libs are there in a directory listed in it.

comment:3 Changed 12 years ago by robind

  • Status changed from new to infoneeded_new

This kind of error usually means that the wx headers used in the wxPython part of the build do not match the shared library that is being loaded. A couple more things to check:

  • Use ldd on _code_.so to check which shared libraries are being loaded. It should display the libs in /opt/wx/2.8/lib that it is loading.
  • Ensure that the wxPython part of the build is using /opt/wx/2.8/bin/wx-config and not some other wx-config that may already be present on your system. It should show in the first few lines of output which wx-config it is using, and if you want to force it to use a different one then you can use WX_CONFIG=/opt/wx/2.8/bin/wx-config (or some other pathname) on the setup.py command line,

comment:4 Changed 12 years ago by azlk

  • Status changed from infoneeded_new to new

1.wxPython doesn't have any other wx-config as it was the one and first install of wx on this PC

  1. I ran ldd but I cannot see what is wrong here:
# ldd _core_.so
	linux-gate.so.1 =>  (0xffffe000)
	libwx_gtk2u_richtext-2.8.so.0 => /usr/lib/libwx_gtk2u_richtext-2.8.so.0 (0xb7ccf000)
	libwx_gtk2u_aui-2.8.so.0 => /usr/lib/libwx_gtk2u_aui-2.8.so.0 (0xb7c7b000)
	libwx_gtk2u_xrc-2.8.so.0 => /usr/lib/libwx_gtk2u_xrc-2.8.so.0 (0xb7be9000)
	libwx_gtk2u_qa-2.8.so.0 => /usr/lib/libwx_gtk2u_qa-2.8.so.0 (0xb7bc9000)
	libwx_gtk2u_html-2.8.so.0 => /usr/lib/libwx_gtk2u_html-2.8.so.0 (0xb7b2d000)
	libwx_gtk2u_adv-2.8.so.0 => /usr/lib/libwx_gtk2u_adv-2.8.so.0 (0xb7a6e000)
	libwx_gtk2u_core-2.8.so.0 => /usr/lib/libwx_gtk2u_core-2.8.so.0 (0xb770c000)
	libwx_baseu_xml-2.8.so.0 => /usr/lib/libwx_baseu_xml-2.8.so.0 (0xb7702000)
	libwx_baseu_net-2.8.so.0 => /usr/lib/libwx_baseu_net-2.8.so.0 (0xb76d3000)
	libwx_baseu-2.8.so.0 => /usr/lib/libwx_baseu-2.8.so.0 (0xb756f000)
	libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0xb7439000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7353000)
	libm.so.6 => /lib/libm.so.6 (0xb732c000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7321000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xb7309000)
	libc.so.6 => /lib/libc.so.6 (0xb71c7000)
	libdl.so.2 => /lib/libdl.so.2 (0xb71c3000)
	libiconv.so.2 => /usr/lib/libiconv.so.2 (0xb70e5000)
	libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb6d68000)
	libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb6cde000)
	libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb6cc3000)
	libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb6cac000)
	libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb6c70000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb6c38000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6c35000)
	libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb6c31000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb6b65000)
	libXinerama.so.1 => /usr/X11R7/lib/libXinerama.so.1 (0xb6b62000)
	libXxf86vm.so.1 => /usr/X11R7/lib/libXxf86vm.so.1 (0xb6b5d000)
	libSM.so.6 => /usr/lib/libSM.so.6 (0xb6b55000)
	libpng.so.3 => /usr/lib/libpng.so.3 (0xb6b1a000)
	libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb6afa000)
	libtiff.so.3 => /usr/lib/libtiff.so.3 (0xb6aa5000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6a85000)
	libutil.so.1 => /lib/libutil.so.1 (0xb6a81000)
	/lib/ld-linux.so.2 (0x80000000)
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xb6a26000)
	libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6a17000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xb6928000)
	libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb68b3000)
	libfontconfig.so.1 => /usr/X11R7/lib/libfontconfig.so.1 (0xb6888000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xb6879000)
	libXrender.so.1 => /usr/X11R7/lib/libXrender.so.1 (0xb6871000)
	librt.so.1 => /lib/librt.so.1 (0xb6869000)
	libICE.so.6 => /usr/lib/libICE.so.6 (0xb6852000)
	libz.so.1 => /lib/libz.so.1 (0xb6841000)
	libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6818000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb67ab000)
	libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb67a9000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6792000)
	libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb676e000)
	libXau.so.6 => /usr/X11R7/lib/libXau.so.6 (0xb676a000)
	libXdmcp.so.6 => /usr/X11R7/lib/libXdmcp.so.6 (0xb6765000)

	Version information:
	./_core_.so:
		libwx_baseu_net-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu_net-2.8.so.0
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libwx_gtk2u_adv-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_adv-2.8.so.0
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8.5) => /usr/lib/libwx_gtk2u_core-2.8.so.0
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8.8) => /usr/lib/libwx_gtk2u_core-2.8.so.0
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_core-2.8.so.0
		libwx_baseu-2.8.so.0 (WXU_2.8.5) => /usr/lib/libwx_baseu-2.8.so.0
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
	/usr/lib/libwx_gtk2u_richtext-2.8.so.0:
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libwx_baseu_xml-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu_xml-2.8.so.0
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libwx_gtk2u_html-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_html-2.8.so.0
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
		libwx_gtk2u_adv-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_adv-2.8.so.0
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_core-2.8.so.0
	/usr/lib/libwx_gtk2u_aui-2.8.so.0:
		libm.so.6 (GLIBC_2.1) => /lib/libm.so.6
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_core-2.8.so.0
	/usr/lib/libwx_gtk2u_xrc-2.8.so.0:
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libwx_baseu_xml-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu_xml-2.8.so.0
		libwx_gtk2u_html-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_html-2.8.so.0
		libwx_gtk2u_adv-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_adv-2.8.so.0
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_core-2.8.so.0
	/usr/lib/libwx_gtk2u_qa-2.8.so.0:
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libwx_baseu_xml-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu_xml-2.8.so.0
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_core-2.8.so.0
	/usr/lib/libwx_gtk2u_html-2.8.so.0:
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_core-2.8.so.0
	/usr/lib/libwx_gtk2u_adv-2.8.so.0:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libgcc_s.so.1 (GLIBC_2.0) => /usr/lib/libgcc_s.so.1
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
		libwx_gtk2u_core-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_gtk2u_core-2.8.so.0
	/usr/lib/libwx_gtk2u_core-2.8.so.0:
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libm.so.6 (GLIBC_2.1) => /lib/libm.so.6
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
	/usr/lib/libwx_baseu_xml-2.8.so.0:
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
	/usr/lib/libwx_baseu_net-2.8.so.0:
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
		libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libgcc_s.so.1 (GLIBC_2.0) => /usr/lib/libgcc_s.so.1
		libwx_baseu-2.8.so.0 (WXU_2.8) => /usr/lib/libwx_baseu-2.8.so.0
	/usr/lib/libwx_baseu-2.8.so.0:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
		libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.3.2) => /lib/libpthread.so.0
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libgcc_s.so.1 (GLIBC_2.0) => /usr/lib/libgcc_s.so.1
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
	/usr/lib/libpython2.5.so.1.0:
		libutil.so.1 (GLIBC_2.0) => /lib/libutil.so.1
		libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
		libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
		libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libstdc++.so.6:
		ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
		libgcc_s.so.1 (GCC_4.2.0) => /usr/lib/libgcc_s.so.1
		libgcc_s.so.1 (GLIBC_2.0) => /usr/lib/libgcc_s.so.1
		libgcc_s.so.1 (GCC_3.3) => /usr/lib/libgcc_s.so.1
		libgcc_s.so.1 (GCC_3.0) => /usr/lib/libgcc_s.so.1
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
	/lib/libm.so.6:
		ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libgcc_s.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2.4) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/lib/libpthread.so.0:
		ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/lib/libc.so.6:
		ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
	/lib/libdl.so.2:
		ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
	/usr/lib/libiconv.so.2:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libgtk-x11-2.0.so.0:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libgdk-x11-2.0.so.0:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libatk-1.0.so.0:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libgdk_pixbuf-2.0.so.0:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libpango-1.0.so.0:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libgobject-2.0.so.0:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libgmodule-2.0.so.0:
		libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
		libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libgthread-2.0.so.0:
		librt.so.1 (GLIBC_2.2) => /lib/librt.so.1
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.3.2) => /lib/libpthread.so.0
	/usr/lib/libglib-2.0.so.0:
		libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/X11R7/lib/libXinerama.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/X11R7/lib/libXxf86vm.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libSM.so.6:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libpng.so.3:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libjpeg.so.62:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libtiff.so.3:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libexpat.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/lib/libutil.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libgio-2.0.so.0:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libpangocairo-1.0.so.0:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libX11.so.6:
		libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
		libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libcairo.so.2:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
	/usr/X11R7/lib/libfontconfig.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libXext.so.6:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/X11R7/lib/libXrender.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/lib/librt.so.1:
		libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_PRIVATE) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libICE.so.6:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/lib/libz.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libpangoft2-1.0.so.0:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libfreetype.so.6:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libxcb-xlib.so.0:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libxcb.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libpng12.so.0:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/X11R7/lib/libXau.so.6:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/X11R7/lib/libXdmcp.so.6:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6

I begin to think that wxPython is not easy shot for every user who wants it..
Seems maybe it's actually better to try other things, because to simply make it run wxPython becomes a real pain!
What then would be when testing python programs?...

Excuse me, of course this is all about my faulty /dev/hands, not wxPython, surely.

comment:5 Changed 12 years ago by robind

  • Owner set to robind
  • Status changed from new to accepted

In your configure command you specify a prefix of /opt/wx/2.8, but ldd shows that it is dynamically linking with the wx libs located in /usr/lib, so this is certainly a case of mismatched libraries/headers as I suspected. You can work around this by setting LD_LIBRARY_PATH to /opt/wx/2.8/lib so the linker will choose the libs in that location instead.

Unless you need the absolutely latest version of wxPython you will probably be better off looking for a an existing package from your distro or wherever the wxGTK libs in /usr/lib came from.

comment:6 Changed 12 years ago by robind

  • Status changed from accepted to infoneeded

Please let us know if this solves it for you.

comment:7 follow-up: Changed 9 years ago by andim2

  • Component changed from wxPython to base
  • Milestone set to 2.8.13
  • Type changed from build error to defect

OK, let me add another slightly different angle on this issue.
I've got a binary build of my app vs. the system-provided wx 2.8.12-1.el5 package on RHEL5; trying to execute this binary on SuSE SLED 11 with system-provided wx 2.8 (2.8.8.1, IIRC) package yields the (in-)famous _ZN12wxAppConsole15CreateLogTargetEv error.
Thus I spoke "aha!" and tried to _manually_ fumble (undefine) all WXWIN_COMPATIBILITY_x_y in my build
to get rid of these entirely needlessly imported symbols.
But of course I soon discovered that this won't work either, since this time I managed to break my build on the very platform that I actually built it on, due to the system-provided wx header configuration now differing from the system-provided wx binaries due to my undefining.

As I see it, the core of the issue is that we're toggling availability of virtuals (CreateLogTarget() etc.) with those version ABI compatibility defines, which is a big problem since that will cause mismatching vtable offsets in various wx library binary builds,
as opposed to non-virtual methods where it's simply _my application's own choice_ on whether to reference them (remain incompatible with binary libraries that don't offer them) or not, whereas with vtable offset mismatches there's nothing in hell that can be done about it (or is there?) when encountering a different system's differently configured binaries with thusly rather incompatible wxApp class.

Google ZN12wxAppConsole15CreateLogTargetEv shows 87 results for me, which admittedly are not too many (possibly there are other strings with other decorations/mangling?),
but these (non-)available wxApp vtable entries still seem to be a very annoying ABI problem.
It might be advisable to try to correct this grave inherent incompatibility by _always_ exporting those two virtuals (is it possible to have them in dummy stub form in case of 2.4 compat disabled, or does an implementation definitely need to be filled in?), and add a comment that these are for 2.4 compat and should be removed as soon as all other 2.4 compat parts go to bit heaven, too.

So perhaps:

  • always offer these prototypes
  • add comment
  • enable their implementation side based on availability of 2.4 compat define or not

Updated ticket Type and Component, changed Milestone to 2.8.13 since such an ABI issue needs timely review/fixing ("many existing installations out there, or soon to be").

Thanks!

comment:8 Changed 9 years ago by andim2

There seem to be a total of 7 virtuals affected by these compatibility defines:

app.h CreateLogTarget(), CreateMessageOutput()
bmpbuttn.h SetLabel()
dc.h SetOptimization(), GetOptimization(), DoGetClippingRegion()
sizer.h Remove()

Might still be a good idea to repair ABI compatibility of all affected methods.
Perhaps mark them as deprecated instead.

BTW, a useful, detailed and relevant link: http://en.opensuse.org/openSUSE:Packaging_wxWidgets

Thanks!

comment:9 in reply to: ↑ 7 Changed 9 years ago by vadz

  • Milestone 2.8.13 deleted

Replying to andim2:

I've got a binary build of my app vs. the system-provided wx 2.8.12-1.el5 package on RHEL5; trying to execute this binary on SuSE SLED 11 with system-provided wx 2.8 (2.8.8.1, IIRC) package yields the (in-)famous _ZN12wxAppConsole15CreateLogTargetEv error.

This means that your application was built with WXWIN_COMPATIBILITY_2_4==1 while the system libraries were built with WXWIN_COMPATIBILITY_2_4==0, right?

Thus I spoke "aha!" and tried to _manually_ fumble (undefine) all WXWIN_COMPATIBILITY_x_y in my build
to get rid of these entirely needlessly imported symbols.
But of course I soon discovered that this won't work either, since this time I managed to break my build on the very platform that I actually built it on, due to the system-provided wx header configuration now differing from the system-provided wx binaries due to my undefining.

So why did the headers become different now? They must have been different before and should have become the same now.

As I see it, the core of the issue is that we're toggling availability of virtuals (CreateLogTarget() etc.) with those version ABI compatibility defines

Yes, WXWIN_COMPATIBILITY_2_4 and similar do affect ABI.

Anyhow, once again, I'm afraid I don't understand what the problem actually is. AFAICS building your app with WXWIN_COMPATIBILITY_2_4==0 which is the default and is apparently also the option your system libraries were built in (which makes perfect sense) should make it work correctly. Why not just do this?

Note: See TracTickets for help on using tickets.