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