Created attachment 345012 [details] emerge --info output Pretty sure this problem existed with 2.9.0 as well. kipiplugin_metadataedit.so fails to link, listing a large number of C++ symbols from the KIPIPlugins namespace. [31m[1mLinking CXX shared module ../lib/kipiplugin_metadataedit.so [0mcd /var/tmp/portage/media-plugins/kipi-plugins-3.0.0/work/kipi-plugins-3.0.0_build/metadataedit && /usr/bin/cmake -E cmake_link_script CMakeFiles/kipiplugin_metadataedit.dir/link.txt --verbose=1 /usr/bin/i686-pc-linux-gnu-g++ -fPIC -O2 -pipe -fomit-frame-pointer -march=i686 -mfpmath=sse -mmmx -msse -msse2 -msse3 -msse4a -mabm -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 -Wl,--as-needed -shared -Wl,-soname,kipiplugin_metadataedit.so -o ../lib/kipiplugin_metadataedit.so CMakeFiles/kipiplugin_metadataedit.dir/kipiplugin_metadataedit_automoc.o CMakeFiles/kipiplugin_metadataedit.dir/plugin/plugin_metadataedit.o CMakeFiles/kipiplugin_metadataedit.dir/plugin/metadatacheckbox.o CMakeFiles/kipiplugin_metadataedit.dir/plugin/altlangstringedit.o CMakeFiles/kipiplugin_metadataedit.dir/plugin/multistringsedit.o CMakeFiles/kipiplugin_metadataedit.dir/plugin/multivaluesedit.o CMakeFiles/kipiplugin_metadataedit.dir/plugin/ objectattributesedit.o CMakeFiles/kipiplugin_metadataedit.dir/plugin/metadataedit.o CMakeFiles/kipiplugin_metadataedit.dir/exif/exifeditwidget.o CMakeFiles/kipiplugin_metadataedit.dir/exif/exifcaption.o CMakeFiles/kipiplugin_metadataedit.dir/exif/exifdatetime.o CMakeFiles/kipiplugin_metadataedit.dir/exif/exifadjust.o CMakeFiles/kipiplugin_metadataedit.dir/exif/exiflens.o CMakeFiles/kipiplugin_metadataedit.dir/exif/exifdevice.o CMakeFiles/kipiplugin_metadataedit.dir/exif/exiflight.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptceditwidget.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptccontent.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptcsubjects.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptckeywords.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptccategories.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptccredits.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptcproperties.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptcstatus.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptcorigin.o CMakeFiles/kipiplugin_metadataedit.dir/iptc/iptcenvelope.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmpeditwidget.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmpcontent.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmpkeywords.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmpcategories.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmpsubjects.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmporigin.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmpcredits.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmpstatus.o CMakeFiles/kipiplugin_metadataedit.dir/xmp/xmpproperties.o -L/var/tmp/portage/media-plugins/kipi-plugins-3.0.0/work/kipi-plugins-3.0.0_build/lib -L/usr/lib/qt4 /usr/lib/libkparts.so.4.10.1 -lkipi -lkexiv2 -lkdcraw ../lib/libkipiplugins.so.3.0.0 /usr/lib/libkio.so.5.10.1 /usr/lib/qt4/libQtNetwork.so /usr/lib/qt4/libQtXml.so /usr/lib/libkdeui.so.5.10.1 /usr/lib/qt4/libQtSvg.so /usr/lib/libkdecore.so.5.10.1 /usr/lib/qt4/libQtDBus.so /usr/lib/qt4/libQtGui.so /usr/lib/qt4/libQtCore.so -lpthread -Wl,-rpath,/var/ tmp/portage/media-plugins/kipi-plugins-3.0.0/work/kipi-plugins-3.0.0_build/lib:/usr/lib/qt4: CMakeFiles/kipiplugin_metadataedit.dir/plugin/plugin_metadataedit.o: In function `KIPIMetadataEditPlugin::Plugin_MetadataEdit::slotImportXmp()': plugin_metadataedit.cpp:(.text+0x1792): undefined reference to `KIPIPlugins::KPMetadata::KPMetadata()' plugin_metadataedit.cpp:(.text+0x17cc): undefined reference to `KIPIPlugins::KPMetadata::load(QString const&) const' plugin_metadataedit.cpp:(.text+0x197e): undefined reference to `KIPIPlugins::KPMetadata::~KPMetadata()' plugin_metadataedit.cpp:(.text+0x222f): undefined reference to `KIPIPlugins::KPMetadata::KPMetadata()' plugin_metadataedit.cpp:(.text+0x2256): undefined reference to `KIPIPlugins::KPMetadata::load(QString const&) const' plugin_metadataedit.cpp:(.text+0x22c8): undefined reference to `KIPIPlugins::KPMetadata::save(QString const&) const' plugin_metadataedit.cpp:(.text+0x22f6): undefined reference to `KIPIPlugins::KPMetadata::~KPMetadata()' plugin_metadataedit.cpp:(.text+0x251f): undefined reference to `KIPIPlugins::KPMetadata::~KPMetadata()' CMakeFiles/kipiplugin_metadataedit.dir/plugin/plugin_metadataedit.o: In function `KIPIMetadataEditPlugin::Plugin_MetadataEdit::slotImportIptc()': plugin_metadataedit.cpp:(.text+0x2702): undefined reference to `KIPIPlugins::KPMetadata::KPMetadata()' plugin_metadataedit.cpp:(.text+0x273c): undefined reference to `KIPIPlugins::KPMetadata::load(QString const&) const' plugin_metadataedit.cpp:(.text+0x28ee): undefined reference to `KIPIPlugins::KPMetadata::~KPMetadata()' plugin_metadataedit.cpp:(.text+0x31a7): undefined reference to `KIPIPlugins::KPMetadata::KPMetadata()' plugin_metadataedit.cpp:(.text+0x31ce): undefined reference to `KIPIPlugins::KPMetadata::load(QString const&) const' plugin_metadataedit.cpp:(.text+0x3240): undefined reference to `KIPIPlugins::KPMetadata::save(QString const&) const' plugin_metadataedit.cpp:(.text+0x326e): undefined reference to `KIPIPlugins::KPMetadata::~KPMetadata()' plugin_metadataedit.cpp:(.text+0x3497): undefined reference to `KIPIPlugins::KPMetadata::~KPMetadata()' and many more.
Created attachment 345022 [details] Full build log for the failure I have this problem on two (very similar) x86 systems. I have tried running revdep-rebuild (which tells me the only broken package is kipi-plugins!), and rebuilding kde-base/libkipi-4.10.1:4 The build now seems to fail repeatably at linking libHUpnp.a - this is despite having use -upnp. It seems that the use flag does not turn off the plugin, but just swaps an external library for the internal bundled version (an out of date SVN snapshot, not the release). Changing to USE="+upnp" moves the failure around, now failing on liblibdng.a. Does anyone know how to persuade cmake to allow the compiler / linker error messages to be seen?
Building with only one thread (and minimal CFLAGS, --as-needed removed from LDFLAGS) unjumbles the output somewhat: cd /var/tmp/portage/media-plugins/kipi-plugins-3.0.0/work/kipi-plugins-3.0.0_build/timeadjust && /usr/bin/cmake -E cmake_link_script CMakeFiles/kipiplugin_timeadjust.dir/link.txt --verbose=1 /usr/bin/i686-pc-linux-gnu-g++ -fPIC -O2 -pipe -march=i686 -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,kipiplugin_timeadjust.so -o ../lib/kipiplugin_timeadjust.so CMakeFiles/kipiplugin_timeadjust.dir/kipiplugin_timeadjust_automoc.o CMakeFiles/kipiplugin_timeadjust.dir/plugin_timeadjust.o CMakeFiles/kipiplugin_timeadjust.dir/timeadjustdialog.o CMakeFiles/kipiplugin_timeadjust.dir/clockphotodialog.o CMakeFiles/kipiplugin_timeadjust.dir/actionthread.o CMakeFiles/kipiplugin_timeadjust.dir/task.o CMakeFiles/kipiplugin_timeadjust.dir/myimagelist.o CMakeFiles/kipiplugin_timeadjust.dir/settingswidget.o -L/var/tmp/portage/media-plugins/kipi-plugins-3.0.0/work/kipi-plugins-3.0.0_build/lib -L/usr/lib/qt4 /usr/lib/libkparts.so.4.10.1 /usr/lib/libthreadweaver.so.4.10.1 -lkipi -lkexiv2 -lkdcraw ../lib/libkipiplugins.so.3.0.0 /usr/lib/libthreadweaver.so.4.10.1 /usr/lib/libkio.so.5.10.1 /usr/lib/qt4/libQtNetwork.so /usr/lib/qt4/libQtXml.so /usr/lib/libkdeui.so.5.10.1 /usr/lib/qt4/libQtSvg.so /usr/lib/libkdecore.so.5.10.1 /usr/lib/qt4/libQtCore.so -lpthread /usr/lib/qt4/libQtDBus.so /usr/lib/qt4/libQtGui.so -Wl,-rpath,/var/tmp/portage/media-plugins/kipi-plugins-3.0.0/work/kipi-plugins-3.0.0_build/lib:/usr/lib/qt4: CMakeFiles/kipiplugin_timeadjust.dir/timeadjustdialog.o: In function `KIPITimeAdjustPlugin::TimeAdjustDialog::~TimeAdjustDialog()': timeadjustdialog.cpp:(.text+0x273): undefined reference to `KIPIPlugins::KPToolDialog::~KPToolDialog()' The library which is failing to link is ../lib/kipiplugin_timeadjust.so. There isn't a USE flag to turn building this off. Notably something (other than my LDFLAGS) is adding --as-needed to the linker command line, although that may not be relevant.
Please try rebuilding media-gfx/exiv2.
(In reply to comment #3) > Please try rebuilding media-gfx/exiv2. Thank you! I removed digikam, kipi-plugins and all the packages only used by those two (including the exiv libraries), then rebuilt from scratch, which worked! As revdep-rebuild and @preserved-libs didn't find this, is the bug still valid?
(In reply to comment #4) > (In reply to comment #3) > > Please try rebuilding media-gfx/exiv2. > > Thank you! I removed digikam, kipi-plugins and all the packages only used by > those two (including the exiv libraries), then rebuilt from scratch, which > worked! > > As revdep-rebuild and @preserved-libs didn't find this, is the bug still > valid? Yes and no... yes because it's certainly a bug somewhere (revdep-rebuild and/or preserved libs should catch these cases), no because this is extremely hard to track down and/or might not be easily reproducible. Let's close it now and re-open if the problem reappears.