Saturday, January 28, 2017
[Lifted from Wordpress]
Week-end DevConf talks – I’m also taking the opportunity to try and repair Tao3D.
Unfortunately, the network was so slow I could not really take notes on the fly… So very little data actually recorded.
LLVM broke everything. Again.
I tried to build XLR against LLVM 3.9. As usual, LLVM completely broke the API. Again. Time to update llvm-crap.h. In case you wonder, CRAP obviously stands for Compatibility Restoration Adapter Protocol, of course, nothing else.
It looks like this will be a bit complicated, deferring for now.
Tao3D
I ran mostly into missing packages, again and again, and it was only painful because of the low quality of the local network.
One interesting issue I ran into is a problem with GCC6, C++ includes and -isystem. The manifestation is a bit puzzling, as the compiler complains it does not find some rather standard header (in my case, stdlib.h). The message looks like this:
compiling ../tao/xlr/xlr/basics.cpp In file included from /usr/include/c++/6.3.1/ext/string_conversions.h:41:0, from /usr/include/c++/6.3.1/bits/basic_string.h:5402, from /usr/include/c++/6.3.1/string:52, from /usr/include/c++/6.3.1/bits/locale_classes.h:40, from /usr/include/c++/6.3.1/bits/ios_base.h:41, from /usr/include/c++/6.3.1/ios:42, from /usr/include/c++/6.3.1/ostream:38, from /usr/include/c++/6.3.1/iostream:39, from ../tao/xlr/xlr/basics.cpp:41: /usr/include/c++/6.3.1/cstdlib:75:25: fatal error: stdlib.h: No such file or directory #include_next^
As often, this is a known issue. The root cause is that Qt5 uses -isystem in a way that the GCC developers have now decided they don’t like.
The fix for me was to hand-edit /usr/lib64/qt5/mkspecs/common/gcc-base.conf.qt5-qtbase-cxxflag and /usr/lib64/qt5/mkspecs/common/gcc-base.conf to remove the reference to -isystem. It works for me, not sure it will work for anybody else…