[Bug c++/58678] [4.9 Regression] pykde4-4.11.2 link error (devirtualization too trigger happy)

nheghathivhistha at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Apr 3 12:48:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58678

--- Comment #57 from David Kredba <nheghathivhistha at gmail dot com> ---
I got it again with trunk revision 209048:

/usr/bin/x86_64-pc-linux-gnu-g++  -fPIC -flto=4 -fuse-linker-plugin -O2 -ggdb
-pipe -march=core2 -mtune=core2 -mno-3dnow -mno-sse4.2 -mno-avx -mno-xop
-mno-fma4 -mno-sse4a  -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align
-Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions
-DQT_NO_EXCEPTIONS -fno-check-new -fno-common -Woverloaded-virtual
-fno-threadsafe-statics -fvisibility=hidden -fvisibility-inlines-hidden
-Wl,--enable-new-dtags -Wl,--no-undefined -lc  -flto=4 -fuse-linker-plugin
-Wl,--as-needed -Wl,-O2 -Wl,-flto -O2 -ggdb -pipe -march=core2 -mtune=core2
-mno-3dnow -mno-sse4.2 -mno-avx -mno-xop -mno-fma4 -mno-sse4a -shared
-Wl,-soname,phonon.so -o lib/phonon.so
CMakeFiles/python_module_PyKDE4_phonon.dir/sip/phonon/sipphononpart0.cpp.o
CMakeFiles/python_module_PyKDE4_phonon.dir/sip/phonon/sipphononpart1.cpp.o
CMakeFiles/python_module_PyKDE4_phonon.dir/sip/phonon/sipphononpart2.cpp.o
CMakeFiles/python_module_PyKDE4_phonon.dir/sip/phonon/sipphononpart3.cpp.o
CMakeFiles/python_module_PyKDE4_phonon.dir/sip/phonon/sipphononpart4.cpp.o
CMakeFiles/python_module_PyKDE4_phonon.dir/sip/phonon/sipphononpart5.cpp.o
CMakeFiles/python_module_PyKDE4_phonon.dir/sip/phonon/sipphononpart6.cpp.o
CMakeFiles/python_module_PyKDE4_phonon.dir/sip/phonon/sipphononpart7.cpp.o
-lpython3.2 -lphonon /usr/lib64/qt4/libQtDBus.so /usr/lib64/qt4/libQtCore.so
-lpthread /usr/lib64/qt4/libQtGui.so -Wl,-rpath,/usr/lib64/qt4:
/tmp/ccpIV11w.ltrans24.ltrans.o: In function `__base_dtor ':
/usr/include/phonon/backendcapabilities.h:57: undefined reference to `vtable
for Phonon::BackendCapabilities::Notifier'
/usr/include/phonon/backendcapabilities.h:57: undefined reference to `vtable
for Phonon::BackendCapabilities::Notifier'
/usr/include/phonon/backendcapabilities.h:57: undefined reference to `vtable
for Phonon::BackendCapabilities::Notifier'
collect2: error: ld returned 1 exit status

And it is sipphononpart5.cpp.o again.

I use Markus's binutils patch (now trunk binutils got it too! :-) ) and the
only patch more to revision 209048 is the one from Martin Jambor (Simple
enhancements to dumping in ipa.c and ipa-cp.c).

It fails with python-3.2 only, python 2.7 and 3.3 version looks to be fine.
Without LTO it compiles fine.

Both binutils' nm and gcc-nm returns: no symbols
for /usr/lib64/libphonon.so.4.7.1.

But mc (Internal viewer of a Midnight Commander) can se them:

00000000000273f0 T Phonon::BackendCapabilities::notifier()

List of vtables inside /usr/lib64/libphonon.so.4.7.1:

                 U vtable for __cxxabiv1::__class_type_info
                 U vtable for __cxxabiv1::__si_class_type_info
                 U vtable for __cxxabiv1::__vmi_class_type_info
000000000026d580 V vtable for Phonon::SeekSlider
000000000026dd80 V vtable for Phonon::AudioOutput
000000000026dc00 V vtable for Phonon::MediaObject
000000000026e0c0 V vtable for Phonon::PulseStream
000000000026cb40 V vtable for Phonon::VideoPlayer
000000000026ce00 V vtable for Phonon::VideoWidget
000000000026c380 V vtable for Phonon::EffectWidget
000000000026c1c0 V vtable for Phonon::GlobalConfig
000000000026e180 V vtable for Phonon::PulseSupport
000000000026d340 V vtable for Phonon::VolumeSlider
000000000026e000 V vtable for Phonon::AudioDataOutput
000000000026c900 V vtable for Phonon::MediaController
000000000026d880 V vtable for Phonon::StreamInterface
000000000026d8c0 V vtable for Phonon::MediaNodePrivate
000000000026db40 V vtable for Phonon::VolumeFaderEffect
000000000026e280 V vtable for Phonon::MediaSourcePrivate
000000000026df00 V vtable for Phonon::AbstractAudioOutput
000000000026e2c0 V vtable for Phonon::AbstractMediaStream
000000000026c780 V vtable for Phonon::AbstractMediaStreamPrivate
000000000026dcc0 V vtable for Phonon::Effect
000000000026dea0 V vtable for Phonon::MediaNode

Objdump -t see no symbols, -T see symbols.

I rebuild phonon by the same compiler/binutils as pykde4.

Could you kindly please check if you are affected too?
Thank you in advance.



More information about the Gcc-bugs mailing list