DevConf - Week-end

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…