BIC changes and ninja

Milian Wolff mail at milianw.de
Thu Jul 2 20:58:18 UTC 2015


On Thursday 02 July 2015 11:09:34 Aleix Pol wrote:
> On Thu, Jul 2, 2015 at 9:30 AM, Milian Wolff <mail at milianw.de> wrote:
> > Hey all, esp. Aleix.
> > 
> > I'm using ninja for a while now and really like the performance I get. But
> > today / yesterday night I hit a really bad issue. In
> > kdevplatform:8fc6453bfaf6d85e51071a0bd460701c63e95df7 I introduced a
> > binary
> > incompatible change. I used that then e.g. for the feature in
> > kdevelop:28cc1e5fd43ec4f21477251e4104e3a42b221640, and the unit tests
> > worked fine. But running the real KDevelop I saw tons of strange crashes.
> > Debugging it, I saw that quite some plugins, such as the CMakeBuilder,
> > did not get recompiled by ninja and thus still referenced the old, now
> > broken interface of the IPluginController. This lead to
> > loadPlugin(QString) being called instead of pluginForExtension(...),
> > causing all kinds of havoc. I now make cleaned both kdevplatform and
> > kdevelop and build from scratch - lo and behold, it works properly now...
> > 
> > But this is really unacceptable to me. With make, I never had any such
> > issues. Have anyone of you noticed similar behavior with ninja? Or is
> > maybe something else going one on my machine? Also note that I use an
> > ext4 file system mounted with noatime (it's on a SSD) - could that be the
> > reason?
> > 
> > Can anyone reproduce the above issue maybe? Just checkout the latest
> > master
> > and build, then see whether it works or crashes in strange places, or
> > asserts when not finding some plugin.
> 
> I've had to trigger updates at some point when modifying other
> projects. If you know how to reproduce it, maybe it would be worth
> reporting as a bug in cmake...

Another thing I've now noticed in two projects is something like this:

[14/22 Linking CXX shared library src/libKF5PimTextEdit.so.4.84.0
FAILED: : && /usr/bin/clang++  -fPIC -pipe -DQT_STRICT_ITERATORS -
DQURL_NO_CAST_FROM_STRING -DQT_NO_HTTP -DQT_NO_FTP -Wformat -Werror=format-
security -Werror=return-type -Wno-variadic-macros -std=c++0x -fno-exceptions -
Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -
Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-
type -g  -Wl,--no-undefined -Wl,--fatal-warnings -Wl,--enable-new-dtags -
shared -Wl,-soname,libKF5PimTextEdit.so.5 -o src/libKF5PimTextEdit.so.4.84.0 
src/CMakeFiles/KF5PimTextEdit.dir/emailquotehighlighter.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/emoticontexteditaction.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/emoticontexteditselector.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/htmlhighlighter.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/inserthtmldialog.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/insertimagedialog.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/insertimagewidget.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/inserttabledialog.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/selectspecialchardialog.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/tableactionmenu.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/tablecellformatdialog.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/tableformatdialog.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/textedit.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/textutils.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/inserttablewidget.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/emailquotedecorator.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/syntaxhighlighterbase.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/texteditorcompleter.cpp.o 
src/CMakeFiles/KF5PimTextEdit.dir/KF5PimTextEdit_automoc.cpp.o  
/home/milian/projects/compiled/kf5/lib64/libKF5TextWidgets.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5Emoticons.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5SonnetUi.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5KIOWidgets.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5KIOCore.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5Service.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5JobWidgets.so.5.12.0 
/usr/lib/libQt5Network.so.5.4.2 
/home/milian/projects/compiled/kf5/lib64/libKF5Completion.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5Codecs.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5WidgetsAddons.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5I18n.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5ConfigCore.so.5.12.0 
/home/milian/projects/compiled/kf5/lib64/libKF5CoreAddons.so.5.12.0 
/usr/lib/libQt5Widgets.so.5.4.2 /usr/lib/libQt5Gui.so.5.4.2 
/usr/lib/libQt5Core.so.5.4.2 -Wl,-
rpath,/home/milian/projects/compiled/kf5/lib64: -Wl,-rpath-
link,/home/milian/projects/compiled/kf5/lib64 && :
src/CMakeFiles/KF5PimTextEdit.dir/syntaxhighlighterbase.cpp.o: In function 
`SyntaxHighlighterBase':
/home/milian/projects/kf5/src/kde/pim/kpimtextedit/src/syntaxhighlighterbase.cpp:25: 
undefined reference to `vtable for KPIMTextEdit::SyntaxHighlighterBase'
src/CMakeFiles/KF5PimTextEdit.dir/syntaxhighlighterbase.cpp.o: In function 
`~SyntaxHighlighterBase':
/home/milian/projects/kf5/src/kde/pim/kpimtextedit/src/syntaxhighlighterbase.cpp:30: 
undefined reference to `vtable for KPIMTextEdit::SyntaxHighlighterBase'
src/CMakeFiles/KF5PimTextEdit.dir/texteditorcompleter.cpp.o: In function 
`TextEditorCompleter':
/home/milian/projects/kf5/src/kde/pim/kpimtextedit/src/texteditorcompleter.cpp:150: 
undefined reference to `vtable for KPIMTextEdit::TextEditorCompleter'
/home/milian/projects/kf5/src/kde/pim/kpimtextedit/src/texteditorcompleter.cpp:157: 
undefined reference to `vtable for KPIMTextEdit::TextEditorCompleter'
src/CMakeFiles/KF5PimTextEdit.dir/texteditorcompleter.cpp.o: In function 
`~TextEditorCompleter':
/home/milian/projects/kf5/src/kde/pim/kpimtextedit/src/texteditorcompleter.cpp:162: 
undefined reference to `vtable for KPIMTextEdit::TextEditorCompleter'
clang: error: linker command failed with exit code 1 (use -v to see 
invocation)

i.e. it looks as if moc did not run properly. Rerunning ninja and the error 
goes away... Have you ever seen anything like that as well?
-- 
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20150702/182baa1f/attachment.sig>


More information about the KDevelop-devel mailing list