[Interest] Interest Digest, Vol 86, Issue 18

roland at logikalsolutions.com roland at logikalsolutions.com
Wed Nov 21 15:04:48 CET 2018


Quoting Thiago Macieira:

>
> This error is still present in current sources. It's no different than any
> compilation error and should be fixed. So, yes, we don't verify that
> everything builds with C++11. When I say that Qt supports C++11, I mean that
> we'll fix it if issues are found. And besides, you built over 99.9%  
> of Qt with
> C++11.

But, automated testing should. This is one of the few places an  
automated test is actually useful. Making sure the advertised minimum  
compilation standard really does work.

90% of a landing
https://pbs.twimg.com/media/CpE7U2zXEAADnUz.jpg

https://data.christianpost.com/full/62769/img.png

http://nextgenfmradio.com/wp/wp-content/uploads/2010/09/2007-09-09-Scandinavian-Airlines-aircraft-skidded-off-a-runway-in-Aalborg.jpg

While we are on the subject of automated testing, I wish I had the  
configure statement and the version number, but, one of the "current"  
(as in newer than 5.9.7) built without the c++11 standard has another  
inexcusable bug automated testing should have stopped. After configure  
and make -j3 I issued make install and make install compiled a  
ton-o-*(^*(&^. I know this because I saw all of the compilation  
warnings spewing past on the screen

If make install builds even one module, that is an __epic fail__. It  
means two things.

1) the make script is incorrect
2) that configure is now being completely ignored

make install, when run after make, should never ever launch the  
compiler. If it does there is a serious problem which will be very  
difficult to track down later.

>
> Just drop the -c++std argument from your configure line. It doesn't help your
> case and only made the build break because this particular module wasn't
> tested with that option.
>

Not physically an answer. Forcing c++11 is the only thing which will  
make the loadable on 18.04 and later. The C/C++ ABI changes torpedo  
everything built by default. The _only_ solution was to drop back to  
5.9.7 and use the configure statement which was in the message I  
cannot seem to find in the archives right now, might be lag, might be  
censorship, might be I'm just too blind. They really should have saved  
that bug report email. Especially the configure statement. It took  
weeks to find that. At the peak I had 5 machines, 2 I-5, 2 I-7 and a  
6-core AMD running through the combinations. It didn't take anywhere  
near that balancing act when I did this same project some 3 years ago.

If your application runs on Ubuntu desktops using QWebEngine and you  
need "One Deb to Install Them All" from 14 through 18+, that's the  
configure you need. Without forcing the c++11 standard, you have no  
hope. I tried every standard setting and lots of different configure  
statements trying to thread the needle of the C/C++ ABI changes  
finding one which could build on 14.04 and run on the later.

Probably should have posted the previous configure statement too. Last  
time we had to build on 15.04 and carry the binary backwards because  
nothing built on 12.04 could be made to go forward. At least not by  
any of us. I forget how many machines we had searching for the magic  
combination which did not exist.
-- 
Roland Hughes, President
Logikal Solutions
(630) 205-1593

http://www.theminimumyouneedtoknow.com
http://www.infiniteexposure.net
http://www.johnsmith-book.com
http://www.logikalblog.com
http://www.interestingauthors.com/blog
http://lesedi.us




More information about the Interest mailing list