kde-base/pykde4-4.14.3, fails to build due to a multitude of missing Qt4/KDE symbols: Linking CXX shared library lib/dnssd.so /usr/bin/cmake -E cmake_link_script CMakeFiles/python_module_PyKDE4_dnssd.dir/link.txt --verbose=1 /usr/bin/x86_64-pc-linux-gnu-g++ -fPIC -O2 -march=haswell -mtune=haswell -pipe -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 -Wl,-O1 -Wl,--as-needed -shared -Wl,-soname,dnssd.so -o lib/dnssd.so CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart0.cpp.o CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart1.cpp.o CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart2.cpp.o CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart3.cpp.o CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart4.cpp.o CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart5.cpp.o CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart6.cpp.o CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart7.cpp.o -lpython2.7 /usr/lib64/libkdnssd.so.4.14.14 /usr/lib64/qt4/libQtCore.so -lpthread /usr/lib64/libkdecore.so.5.14.14 /usr/lib64/qt4/libQtCore.so -lpthread /usr/lib64/qt4/libQtDBus.so -Wl,-rpath,/usr/lib64/qt4: CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart2.cpp.o: In function `meth_DNSSD_ServiceBrowser_resolveHostName': sipdnssdpart2.cpp:(.text+0x212): undefined reference to `QHostAddress::QHostAddress(QHostAddress const&)' sipdnssdpart2.cpp:(.text+0x21a): undefined reference to `QHostAddress::~QHostAddress()' collect2: error: ld returned 1 exit status To my untrained eye it seems that a reference to /usr/lib64/qt4/libQtNetwork.so should fix it. [ 52%] Linking CXX shared library lib/kio.so /usr/bin/cmake -E cmake_link_script CMakeFiles/python_module_PyKDE4_kio.dir/link.txt --verbose=1 /usr/bin/x86_64-pc-linux-gnu-g++ -fPIC -O2 -march=haswell -mtune=haswell -pipe -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 -Wl,-O1 -Wl,--as-needed -shared -Wl,-soname,kio.so -o lib/kio.so CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart0.cpp.o CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart1.cpp.o CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart2.cpp.o CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart3.cpp.o CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart4.cpp.o CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart5.cpp.o CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart6.cpp.o CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart7.cpp.o -lpython2.7 /usr/lib64/libkfile.so.4.14.14 /usr/lib64/libkio.so.5.14.14 /usr/lib64/qt4/libQtNetwork.so /usr/lib64/qt4/libQtXml.so /usr/lib64/libkdeui.so.5.14.14 /usr/lib64/qt4/libQtSvg.so /usr/lib64/libkdecore.so.5.14.14 /usr/lib64/qt4/libQtDBus.so /usr/lib64/qt4/libQtCore.so -lpthread /usr/lib64/qt4/libQtGui.so -Wl,-rpath,/usr/lib64/qt4: CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart3.cpp.o: In function `meth_KFilePlacesModel_deviceForIndex': sipkiopart3.cpp:(.text+0x7df7): undefined reference to `Solid::Device::Device(Solid::Device const&)' sipkiopart3.cpp:(.text+0x7dff): undefined reference to `Solid::Device::~Device()' CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart4.cpp.o: In function `meth_KDeviceListModel_deviceForIndex': sipkiopart4.cpp:(.text+0x14d47): undefined reference to `Solid::Device::Device(Solid::Device const&)' sipkiopart4.cpp:(.text+0x14d4f): undefined reference to `Solid::Device::~Device()' collect2: error: ld returned 1 exit status CMakeFiles/python_module_PyKDE4_kio.dir/build.make:435: recipe for target 'lib/kio.so' failed I don't know what's wrong here, the constructor/destructor of Solid::Device are definitely there, and the signature of the constructor matches /usr/include/solid/device.h. I've rebuilt all of Qt4 (4.8.7), python2.7/3.5, sip-4.17, PyQt4-4.11.4, kdelibs-4.14.8 already, didn't help. Portage 2.2.26 (python 2.7.10-final-0, default/linux/amd64/13.0/desktop/kde/systemd, gcc-5.2.0, glibc-2.22-r1, 4.3.0 x86_64) ================================================================= System uname: Linux-4.3.0-x86_64-Intel-R-_Core-TM-_i7-4910MQ_CPU_@_2.90GHz-with-gentoo-2.2 KiB Mem: 32899500 total, 14842836 free KiB Swap: 21955904 total, 21955904 free Timestamp of repository gentoo: Fri, 27 Nov 2015 20:15:01 +0000 sh bash 4.3_p42 ld GNU ld (Gentoo git) 2.26.51.20151127 distcc 3.2rc1 x86_64-pc-linux-gnu [disabled] ccache version 3.2.4 [disabled] app-shells/bash: 4.3_p42::gentoo dev-java/java-config: 2.2.0::gentoo dev-lang/perl: 5.22.0::gentoo dev-lang/python: 2.7.10-r3::gentoo, 3.5.0-r1::gentoo dev-util/ccache: 3.2.4::gentoo dev-util/cmake: 3.4.0-r1::gentoo dev-util/pkgconfig: 0.29::gentoo sys-apps/baselayout: 2.2::gentoo sys-apps/openrc: 0.18.3::gentoo sys-apps/sandbox: 2.9::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r1::gentoo sys-devel/automake: 1.11.6-r1::gentoo, 1.12.6::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo sys-devel/binutils: 9999::gentoo sys-devel/gcc: 4.9.3::gentoo, 5.2.0::gentoo sys-devel/gcc-config: 1.8::gentoo sys-devel/libtool: 2.4.6-r1::gentoo sys-devel/make: 4.1-r1::gentoo sys-kernel/linux-headers: 4.3::gentoo (virtual/os-headers) sys-libs/glibc: 2.22-r1::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://moya/gentoo-portage priority: -1000 mano location: /etc/portage/overlay masters: gentoo priority: 0 steam-overlay location: /var/lib/layman/steam-overlay masters: gentoo priority: 50 x11 location: /var/lib/layman/x11 masters: gentoo priority: 50 ACCEPT_KEYWORDS="amd64 ~amd64 ~amd64-linux" ACCEPT_LICENSE="* -@EULA GPL-3 LGPL-3 Oracle-BCLA-JavaSE NVIDIA-CUDA PUEL" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=haswell -mtune=haswell -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -march=haswell -mtune=haswell -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--quiet-build=n" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs candy cgroup compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersync" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://mirror.netcologne.de/gentoo/" LANG="POSIX" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j7" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/tmp-ram" USE="X acl alsa amd64 bash-completion bluetooth bzip2 crypt dbus dri gstreamer iconv inotify introspection ipv6 jpeg lzma nptl opengl pam png policykit qml qt4 ssl systemd threads tiff udev udisks unicode upower usb zlib" ABI_X86="64" CALLIGRA_FEATURES="author braindump flow karbon kexi krita sheets stage words" CAMERAS="*" CPU_FLAGS_X86="mmx mmxext sse3 ssse3 sse sse2 sse4_1 sse4_2 avx avx2 fma3 aes" CURL_SSL="openssl" ELIBC="glibc" GPSD_PROTOCOLS="*" GRUB_PLATFORMS="pc efi-64" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LINGUAS="en" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_5" QEMU_USER_TARGETS="mipsel mips sh4 sh4eb mips64 mips64el" RUBY_TARGETS="ruby22" SANE_BACKENDS="*" USERLAND="GNU" VIDEO_CARDS="nvidia intel i965" Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON Reproducible: Always
Does it work with GCC 4?
Yes, it does build with GCC-4. Curious though, I last rebuilt pykde4 on 20th of September with GCC-5.2.
It reminds me of ABI breakage, but that would have been solved by those rebuilds.
I've just stumbled into this after the upgrade to GCC 5.3.0 CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart3.cpp.o: In function `meth_KFilePlacesModel_deviceForIndex': sipkiopart3.cpp:(.text+0x7077): undefined reference to `Solid::Device::Device(Solid::Device const&)' sipkiopart3.cpp:(.text+0x707f): undefined reference to `Solid::Device::~Device()' CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart4.cpp.o: In function `meth_KDeviceListModel_deviceForIndex': sipkiopart4.cpp:(.text+0x144e7): undefined reference to `Solid::Device::Device(Solid::Device const&)' sipkiopart4.cpp:(.text+0x144ef): undefined reference to `Solid::Device::~Device()' Different missing things, but I suspect the root cause will be the same, maybe in different packages.
OK weird... I've just re-re-emerged as follows: [ebuild R ] dev-qt/qtcore-4.8.7-r1 [ebuild R ] dev-qt/qtgui-4.8.7 [ebuild R ] dev-qt/qtdbus-4.8.7 [ebuild R ] dev-qt/qtsvg-4.8.7 [ebuild R ] kde-base/kdelibs-4.14.14 And the problem has "gone away"... can only assume something in the chain impacts things downstream. Same thing might sort the original poster's problem.
No it didn't, that was utter nonsense. It fixed a similar problem I was having with PyQt4.... problem with pykde4 remains.
In the meantime I've rebuilt every package on my system twice now with gcc-5.3 (only takes 4 hours), but the pykde4 error remains.
Just had chance to have a deeper look. On the face of it, I agree with the original post; a link to libQtNetwork.so should fix one and a link to libsolid.so should fix the other.
Created attachment 419462 [details, diff] Patch to add needed libraries Here's my attempt at a patch.
Damn, you beat to it :-) Patch works a treat for me. Good work, thanks.
had same problem while moving to 5.3.0 applied patch now kde-base/pykde4-4.14.3 compile fine thanks
ditto here in OZ pykde4 compiled up just fine after the patch applied
*** Bug 568646 has been marked as a duplicate of this bug. ***
Wonderful patch. First time I had to apply one; using /etc/portage/patches it proved quite simple. Did not want to wait for an updated ebuild any longer.
*** Bug 569298 has been marked as a duplicate of this bug. ***
Patch fixes the issue here as well (tested with gcc-4.9.3, 5.2 and 5.3)
*** Bug 570214 has been marked as a duplicate of this bug. ***
I can confirm that pykde4-4.14.3 compiles again, at least with gcc-5.3.0.
Thanks, fixed in git by Andreas using Erik's patch. https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fb0ed8c85dd15fb18a902b22a7555ba4f7cf01cb