Add Q_COMPILER_THREADSAFE_STATICS (a.k.a. "Magic Statics")

It had been so far only supported by GNU-style compilers due to the
IA-64 portable C++ ABI. But it's mandated by C++11, so let's add the
macro and use it in Q_GLOBAL_STATIC.

Looks like Visual Studio "14" will support it.

Change-Id: I9710b5146606c7e494c43413f49900419396cfe0
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: David Faure <david.faure@kdab.com>
MIPS: Support recognition of the DSP ASE at run-time

Add detection of MIPS DSPr2 at run-time in qsimd.cpp. This makes it
possible to have generic Qt builds for MIPS that can enable the fast
code paths for processors with the DSP ASE at run-time. Also, this
makes it possible to manually disable them by setting the environment
variable "QT_NO_CPU_FEATURE=dspr2". Last, but not least, functions
requiring DSPr2 are not enabled when running in CPUs with version-1
DSP.

Change-Id: Ia5a01d84119553c22ab83386c74a6cb8ba5fee53
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Expand the compiler test with C++11 and C++14 compiler tests

This allows us to quickly test if a compiler actually supports what it
claims to support.

Change-Id: Ia32212a11774aa7947ddffae30837c53665374f3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Fix ICC build on Windows: __VERSION__ isn't defined

So let's define the version ourselves. This is done for all OS because
__VERSION__ doesn't include the actual compiler version...

Change-Id: Ida706a8f4bfe75af04ce8f11ea2124c1659c19ce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Update the macx-icc mkspec for ICC 15

The -xXXXX options are deprecated, so use the GCC-style -mXXX options.

Change-Id: I235c73c4a170003b5b5e20bd4c4c7125107f7f82
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Fix building of the C++11 config.test on Windows with ICL

The Intel compiler does support C++11 options on the command-line.
configure.exe will correctly try to run it, but the test would fail for
incorrect reasons.

First, we need to pass the option -Qstd=c++11 to enable it.

Second, on Windows, the GCC experimental define isn't defined, nor is
__cplusplus updated yet. So we have to rely on the Intel-specific macro.

Third, we need CONFIG += console so that the application succeeds in
linking against a main() function, as opposed to a WinMain one.

Change-Id: I8f3252189df4f8854a9d9aa2cd919c288d2df420
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Work around Intel Compiler 14 & 15 bug with paths starting with dot

It somehow forgets the dot and thus can't open any moc or uic includes.

Intel bug: DPD200357915
Change-Id: I610ba4d3df0072bfb83f90347d94f4586d0d8c86
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Introduce qUtf8Printable() macro to qglobal.h

This macro is equivalent to arg.toUtf8().constData().
It is usable for "%s" arguments of qDebug(), qWarning(), qFatal(),
qCritical().

Change-Id: I2d9956e6651271e1e2183dce9c835511cf923bf3
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Windows: Fix setting of geometries in minimized state.

Use SetWindowPlacement() to set the normal position when applicable
as is done in Qt 4.

Task-number: QTBUG-39544
Change-Id: Ia158b968ea15361d9937619f07b56eb8a0312a13
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>