[Development] 5.7/5.8 gives unusable static ltcg x86 builds on MSVC 2015/2017
thiago.macieira at intel.com
Tue Apr 18 04:26:02 CEST 2017
Em segunda-feira, 17 de abril de 2017, às 18:46:02 PDT, Kuba Ober escreveu:
> Are -static -ltcg -debug-and-release x86 builds tested and supported?
No and we will not test it. That will create a .lib file with no code. Only
during the linking of your application will ALL the code be generated.
I don't think we test -static either.
> For me; 5.8 in a debug build corrupts the heap early during static
> initialization and doesn't even get to main's body. A release build is will
> generally crash somewhere but due to lack of heap diagnostics it will get
> to run first, on a partially corrupted heap.
Does the same problem happen with -static and without -ltcg? If it doesn't
happen, then it's either a compiler bug or something completely unsupported.
You'll have to debug yourself, sorry.
> I will file bug reports but would want to know first whether it's anything
> known. To be completely frank, I couldn't get any Qt version between 5.6
> and 5.8, inclusive, to work under either MSVC 2015 or 2017 with -static
> -ltcg so it seems like an untested configuration that's exposing undefined
> behavior somewhere as the whole thing is globally optimized.
Don't file. We'll just close the bug as unsupported.
File only if the problem persists when you use only one of -ltcg or -static.
Or I can assign it back to you, if you're willing to work on identifying the
> I kinda need this to work. Unless I hear better ideas, I plan on stripping
> away code to see what it takes to make it not crash. With 5.8 it crashes
> even with no plugins linked in, the heap corruption is detected in a heap
> free from one of the Q_GLOBAL_STATICs in somewhere in Qt.
That would be welcome.
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Development