[Development] QT_GCC_MAJOR_VERSION and building with clang...

René J. V. Bertin rjvbertin at gmail.com
Sat Dec 7 11:22:53 CET 2019


Thiago Macieira wrote:


>> QT_GCC_MAJOR_VERSION = 3
>> QT_GCC_MINOR_VERSION = 2
>> QT_GCC_PATCH_VERSION = 1
> 
> This is wrong. Clang reports GCC 4.2.1, not 3.2.1.

OK, I don't know what went wrong here, the file actually does have 4.2.1 ...

> This Clang is way too old. If you have GCC from 2018, please use Clang from
> 2018 too (that would be Clang 7 minimum).

Yeah, well, I think I've said it before: I find little performance advantage in 
the produced code when I use a newer clang (or indeed GCC), but definitely a 
significant increase in compile duration (as well as in binary sizes).

For something like QWE I am definitely more interested in keeping compile time 
and binary size down than in hypothetical performance increases.

> The problem is that it checked the GCC version before checking whether it was
> Clang. Either it does not support building with Clang (it's a possibility) or
> there's a mistake in the code.

But the version error was reported when I tried to build using GCC.

> We already do that. The information is obtained for every qmake parent project
> run.

Are you 100% certain it is done 100% of the time? This is probably where the 
MAJOR_VERSION = 3 above came from: a test to see if that trickled through into 
the error message.

I do out-of-tree builds and trashed the entire build directory before changing 
compilers so I shouldn't have been using an out-of-date .qmake.stash file.

>> It was a test, but IMHO it should be possible (as long as you're not also
>> mixing libstdc++ and libc++).
> 
> Building different parts of Qt with different compilers is not supported.
> 

The test was to see if the "stdlib.h not found" error I was getting was due to 
building with clang. Turns out it was due to some other improbability.

R.



More information about the Development mailing list