Version: CVS (using Devel) OS: Linux kmail wont start, due to abi break Reproducible: Always Steps to Reproduce: start kmail Actual Results: kmail to open Expected Results: $ kmail kmail: symbol lookup error: /usr/lib/libkmailprivate.so.4: undefined symbol: _ZN13KCMultiDialog16staticMetaObjectE kdelibs5 4:4.4.80-0ubuntu1
Not a downstream bug, before anybody asks. Libkutils was split into separate libraries without proper steps to ensure ABI compatibility being taken.
This is caused by libkutils.so not including the symbols for kcm classes any more. They have been moved to libkcmutils.so kutils does not link to kcmutils, at least in the Kubuntu packages. Maybe there is some magic flag to force kutils to link to kcmutils.
This apparently only happens on systems that use the --as-needed option for linking, but the use of that flag is a very valid usecase.
Yes, we build with -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--no-undefined -Wl,--as-needed" so that needs to be overridden for the new libkutils I tried adding "LINK_FLAGS -Wl,--no-as-needed" to set_target_properties() in kutils/CMakeLists.txt but that just results in both --as-needed and --no-as-needed being called and seems --as-needed wins
Should be something else. Tried passing --as-needed or not, and it doesn't make any difference for me, in both cases libkutils links against libkcmutils, libkidletime, libkprintutils and libkemoticons as expected. Still needs investigating, really this libkutils split should be BC.
SVN commit 1132757 by ervin: Be much more aggressive about using the symbols coming from the other libraries split out from the old libkutils. Otherwise for some reason some new linker manage to avoid depending on libkcmutils and friends. You just gotta love when linker behavior change behind your back. ;-) BUG: 240120 M +9 -0 dummy.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1132757