summaryrefslogtreecommitdiffstats
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* Add libproxy backend for QNetworkProxyFactoryDaniel Molkentin2015-02-051-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | It will be used on Unix systems if the required dev package is present. (Detected by a configure compile test.) You can configure with -no-libproxy to avoid the dependency. It will not be used on OS X or Windows, as we already implement the native API for getting proxies there. Currently we use whatever PAC runner is provided by the distro for running PAC scripts - if we want to run PAC scripts using Qt, then we would have to implement a pacrunner plugin to libproxy. Note that their webkit pacrunner is using javascriptcore already. Tested using the libproxy 0.4.7 that is included in Ubuntu 12.04. Re-tested using Ubuntu 14.04 which ships libproxy 0.4.11. It works except when both socks and http proxies are configured in the manual settings - in that case libproxy returns only the socks proxy. This seems to be covered by libproxy issue 119. [ChangeLog][QtNetwork] Introduce libproxy backend for Unix platforms, enabled automatically if the required dev package is present Task-number: QTBUG-26295 Change-Id: I521c0a198fcf482386ea8a189114a0077778265c Reviewed-by: Richard J. Moore <rich@kde.org>
* improve support for cross-compilation to not directly supported platformsJochen Seemann2015-02-051-1/+9
| | | | | | | | | | | This adds a fallback platform OTHER to the platform-enum, which applies when -xplatform is set to an unsupported target, e.g. Linux. Without it, it would fall back to WINDOWS, with the consequence that logic like platform() != WINDOWS would break a proper configuration of Qt. Change-Id: Ie34522e23e375da6c24f66b3410638f85724a0f9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* introduce /dev variants of qmake propertiesOswald Buddenhagen2015-02-051-3/+3
| | | | | | | | | these reflect the on-target paths (unlike /raw, which are host paths, just without the -sysroot). this is necessary for anything deployment-related, starting with RPATH. Change-Id: I13d598995d0e4d6cb0dc1fc7938b8631cf3e3a95 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* write relative paths to qconfig.cpp as far as possibleOswald Buddenhagen2015-02-052-126/+191
| | | | | | | | | | | | | | | this cuts down the bloat in the binaries and the binary patching requirements in the installer. as a side effect, the sysroot and makespecs are not binary patchable any more as well, which is ok, as the installer does not do it anyway. we now also warn if -[host]<foo>dir is not a subdir of -[host]prefix, as putting things outside the prefix is anti-thetical (the obvious exception being the (unix-only) -sysconfdir). Change-Id: I878f0e71a4dfcfd55b2f8b1cf3045b98b502569b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* remove trailing semicolons from #definesOswald Buddenhagen2015-02-051-3/+3
| | | | | Change-Id: I522a7e838ab0e5bbe5b22296ab74912ea79468f0 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* don't overquote paths in qconfig.cppOswald Buddenhagen2015-02-051-34/+34
| | | | | | | | the function for emitting paths to .pri files is obviously not suited for C++ code. Change-Id: I96386d61334d06997475f044dbeab22a55749cef Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* base the libexec fallback logic on the makespecOswald Buddenhagen2015-02-051-1/+1
| | | | | | | this is consistent with the unix version. Change-Id: I84e15dd590b4ed9702f8a9dc0e8b655c930588d5 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* simplify mkspec determination when writing qconfig.cppOswald Buddenhagen2015-02-051-9/+3
| | | | | | | | we don't actually support qualified specs anyway - all tests assume that they can use startsWith() on the spec name. Change-Id: I9dc8688858d4798c3a18c34757318dcd7fd47c57 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* configure --help clarifications relating to -*prefixOswald Buddenhagen2015-02-051-4/+7
| | | | | Change-Id: I71c78b7c91c9fedb7d55731b3f61d46ea75c9b8d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* make configure -redo and config.status able to handle spaces in argumentsOswald Buddenhagen2015-02-041-7/+3
| | | | | Change-Id: If6ffe381b03595885570ae431a9937c6fdce164b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* remove redundant CXX definitionOswald Buddenhagen2015-02-041-1/+0
| | | | | | | configure.bat adds it anyway. Change-Id: Ica0d49c08f3d0ddbc51c211d61da1150444c6782 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-211-1/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/global.pri src/corelib/global/qcompilerdetection.h src/corelib/global/qglobal.h src/corelib/tools/qdatetime.cpp src/plugins/platforms/xcb/qxcbscreen.h src/plugins/platforms/xcb/qxcbwindow.h src/widgets/dialogs/qcolordialog.cpp src/widgets/dialogs/qcolordialog_p.h tools/configure/configureapp.cpp Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
| * Disable ANGLE builds for MSVC <= 2008.Friedemann Kleint2015-01-071-0/+5
| | | | | | | | | | | | Task-number: QTBUG-43475 Change-Id: If0f68ed6823564fd67219812334256936031f35f Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * configure.exe: improve error message by adding the filename.David Faure2014-12-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Before: Could not find output file: No such file or directory After: Could not find output file 'arch.exe' or 'arch' in C:/Qt/qt5/qtbase/config.tests/arch : No such file or directory (it turned out that linking in that directory failed because of a wrong %PATH%) Change-Id: I948d7f10f7e82f77a08ac9a8db76d97536c42dd0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Rename QML debug macro to Qt naming stylePasi Petäjäjärvi2015-01-161-1/+1
| | | | | | | | | | | | | | | | | | With change macro is in line with QT_NO_<feature> style of naming macros. This way it will also be automatically added to file mkspecs/qmodule.pri in QT_NO_DEFINES value. Change-Id: I111d07fd015994290c54e00e8aac2d6dbdb7de9e Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-181-0/+4
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/platformsupport/platformcompositor/qopenglcompositor.cpp src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I5422868500be695584a496dbbbc719d146bc572d
| * Build Android style on Windows hostEskil Abrahamsen Blomfeldt2014-12-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | The Windows configure application was missing the logic to enable the Android style, so this was missing from the Windows packages. [ChangeLog][Android] Included Android style on Windows hosts. Task-number: QTBUG-43302 Change-Id: I6a1423d58d00e7b4d4fd0a3d1a12cce10aa2fc91 Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Add detection of and support for Visual Studio 2015Thiago Macieira2014-12-133-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Tested with the Preview release of November 2014. Differences to the 2013 detection and support: - Option -Zc:strictStrings is present in both debug and release mode and is passed to qmake's own build - New warnings 4456, 4457 and 4458 (shadowing) are disabled - Compiler supports -arch:AVX2 Change-Id: I9572ff4d4aded4004c1fa5d6f13ffee5462043d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Update the names of Microsoft compilersThiago Macieira2014-12-133-26/+26
| | | | | | | | | | | | | | | | | | Microsoft hasn't called their compilers .NET since .NET 2003, so NET2005 and up were wrong. Change-Id: I28fa99d4e10fcc684be3096eb3237c916a80fa31 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Remove mkspecs and detection of Visual Studio .NET 2003Thiago Macieira2014-12-132-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This compiler is no longer supported, as the mkspec was moved to unsupported/ on commit 55c3799bd32d6fd8ec4b5fa26ebe3e5fdbbc91b3, but the MSVC support in qmake and in configure depend on an exact string match. So remove the remaining bits. No changelog because the actual removal happened in an earlier Qt release. Change-Id: I538345f4184a6af2ea7449052c161afe4eac625c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Android: Enable 64-bit configuration on Windows host platformEskil Abrahamsen Blomfeldt2014-11-071-4/+9
| | | | | | | | | | | | | | | | Default to android-21 when a 64-bit target is chosen, as this is the lowest API level supported for 64-bit targets. Change-Id: If4ece23911c3e9e45558906d970ef85a3b18b0bb Reviewed-by: BogDan Vatra <bogdan@kde.org>
* | Android: Default to newest toolchainEskil Abrahamsen Blomfeldt2014-11-041-1/+1
|/ | | | | | | | | | The recent NDKs have included the 4.9 version of the gcc toolchain, so we default to that instead of 4.8. This is also required for building for 64-bit targets, since the other toolchains do not support that. Change-Id: Id6908eb41c8e7cf003a9b134607ab2e55cb489e9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Check '-I' directories for auto-detection of featuresKai Koehne2014-10-231-1/+2
| | | | | | | | This allows e.g. openssl/openssl.h to be auto-detected if the include directory is passed via -I. Change-Id: Ib1d08ab2b7f98b4c08b7d6b66d55a55796f6802d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Android: Don't include Apache code under LGPLv2 licenseEskil Abrahamsen Blomfeldt2014-10-021-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | The code which extracts style assets for the Android style is licensed under the Apache license, which is not compatible with LGPLv2.1. It is, however, compatible with LGPLv3. This means that the Android platform plugin cannot be LGPLv2.1 as long as this code is included. To minimize licensing confusion, we default to only providing LGPLv3 for Android. If you want to build a LGPLv2.1-compatible library, you can add -no-android-style-assets to the configuration. This will in turn enable the LGPLv2.1 in the configure output, and it will disable the extraction code in the platform plugin. Running the Android style with an LGPLv2.1-compatible platform plugin will work, but it will look horrible. [ChangeLog][Android] Default open-source license for Qt for Android is now LGPLv3. For compatibility with the LGPLv2.1 license, add "-no-android-style-assets" to your configuration. Change-Id: I6c7b52140f38138520871fa7c69debbb4ee90e6c Task-number: QTBUG-41365 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Remove existence test for LICENSE.LGPL3Eskil Abrahamsen Blomfeldt2014-10-021-7/+3
| | | | | | | | This license file has to exist, since much of the code is licensed under LGPLv3. Change-Id: I2795a7cc62f6de65a35921e38d2ab5f8f0233f71 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add a way for qmake + configure to link dynamically to the CRTAndrew Knight2014-09-251-1/+1
| | | | | | | | | | | | | The static CRT, libcpmt.lib, is not shipped with Visual Studio Express for Windows (unlike VS Express for Windows Desktop or Professional versions), causing configure and qmake to fail linking if this is the only VS installed. By removing -MT (which is on by default) and adding $(CFLAGS_CRT) to the compiler line, -MD can be added to the compiler flags via the environment, providing a workaround for the issue. Change-Id: I5613346d60a3a1889c121f04d53b09fbb147fc02 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Update license headers and add new license filesMatti Paaso2014-09-2410-198/+118
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* windows: Enable ANGLE D3D11 renderer by defaultAndrew Knight2014-09-051-12/+3
| | | | | | | | | | | | | | | | | | | | | | | Also, remove the -angle-d3d11 configure option, as it no longer is necessary to select the renderer at build time. The D3D11 renderer is the default renderer in upstream ANGLE, and has been shown to be a more reliable solution for developers running over remote desktop and inside virtual machines. It also provides more features to the OpenGL ES implementation. This configuration switch does not disable the D3D9 render; if the GPU does not support D3D11, D3D9 is used instead. [ChangeLog][QtGui][Windows] The ANGLE D3D11 renderer was enabled by default. Systems which cannot use the new renderer will automatically fall back to the D3D9 renderer at runtime. Task-number: QTBUG-41031 Change-Id: If894309c07d9309c236b63c36f37679f74375133 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
* Make HarfBuzz-NG the default shaper on all platformsKonstantin Ritt2014-08-201-9/+10
| | | | | | | | | | [ChangeLog][Important Behavior Changes] HarfBuzz-NG is now the default shaper on all platforms. This results in a better shaping results for various languages, better performance, and lower memory consumption. Task-number: QTBUG-18980 Change-Id: I4d9454fc37e9050873df3857e52369dfc7f191b2 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Introduce secure transport backend for Windows RuntimeOliver Wolff2014-08-131-6/+29
| | | | | | | | | | The change creates a stub implementation for WinRT, adding the needed files and classes to build SSL support on that platform. Task-number: QTBUG-37497 Change-Id: Idc3e8aa91c5eb8a938705f2385d1074fe6c1d83e Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* Remove the last remnants of iWMMXt in QtThiago Macieira2014-08-051-19/+0
| | | | | | | | This code hasn't been tested for at least 4 years. It's not maintained and probably doesn't work. Change-Id: I4b9a5179e34111b400914f91caa6b741b69771bb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-08-042-7/+23
|\ | | | | | | | | | | | | | | | | Conflicts: config.tests/arch/arch.cpp src/opengl/qgl_qpa.cpp src/widgets/kernel/qapplication.cpp Change-Id: I80b442a4c2c9632743a5b5c7319ff201ec5bc4fd
| * pass --sysroot to compile tests also on windowsOswald Buddenhagen2014-08-012-0/+12
| | | | | | | | | | | | | | Change-Id: I486059197479842f32c3590d7fd269550d22698e Reviewed-by: David Schulz <david.schulz@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * add /ENTRY:main only for target buildsOswald Buddenhagen2014-08-011-2/+4
| | | | | | | | | | | | | | Change-Id: Ifa1d36607a1884ec989b5b514e7d1b9a2b40ddce Reviewed-by: David Schulz <david.schulz@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * ensure that arch_host.pro is used also on windowsOswald Buddenhagen2014-08-011-5/+7
| | | | | | | | | | Change-Id: I110ec33a40f37ecdec5ab952ea56a4fc00cd27a8 Reviewed-by: David Schulz <david.schulz@digia.com>
* | Add sqlite to Windows Phone default buildMaurice Kalinowski2014-08-021-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sqlite 3.8.5 supports Windows Phone 8.1. Make required adaptations and add it to the default build. For WinRT and Windows Phone the QSqlQueryModel unit-test fails, both with plugin compiled and using the system sqlite. Root cause seems to be deep inside sqlite, hoping for a fix soon. However, all other tests pass and hence we should enable it. Task-number: QTBUG-37770 Change-Id: I700dde4a44a8f1d74460ef6cb4a1e1d330073d66 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-292-3/+12
|\| | | | | | | | | | | | | Conflicts: src/network/ssl/qsslsocket_openssl_symbols.cpp Change-Id: Ic62419fa1fee5f4de6c372459d72e6e16f9a810b
| * Improve dbus cross compilationBernd Weimer2014-07-282-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Building QtDBus on Linux host for QNX target had two issues: * Configure check failed, because dbus-1 library was not linked in, if target platform doesn't support pkg-config. * Host tools were not built, because pkg-config was not used to locate dbus headers on the host. Task-number: QTBUG-37324 Change-Id: I71d8309599fd40ef2dd8c9e3b44b93a7482019f1 Reviewed-by: Rolf Eike Beer <eb@emlix.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Restore Neon "detection" in QtThiago Macieira2014-07-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't actually detect whether the compiler can create Neon code or provides Neon intrinsics. Most of them do, so that test would be mostly moot. We removed the detection previously because we couldn't automatically enable Neon due to leakage of instructions outside the areas protected at runtime. Instead, we rely on the mkspec properly passing the necessary flags that enable Neon support. This commit does not change that. All it does is verify whether the arch detection found "neon" as part of the target CPU features. In other words, it moves the test that was in simd.prf to configure. It does fix the Neon detection in configure.exe, which was always failing for trying to run a test that didn't exist (config.tests/unix/neon). Change-Id: Id561dfb2db7d3dca7b8c29afef63181693bdc0aa Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Enable building ANGLE with D3D11 in -opengl dynamic builds.Laszlo Agocs2014-07-251-3/+7
| | | | | | | | | | | | Task-number: QTBUG-40193 Change-Id: If70943355d650cd3f20f4ff25fa09417a28a2b93 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* | Introduce qmake feature use_gold_linkerAllan Sandfeld Jensen2014-07-231-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the feature use_gold_linker to use the gold linker that has been part of of GNU binutils since 2008. Gold links C++ libraries much faster and use less memory. The feature is autodetected when building Qt on Linux, but can be disabled in configure. On MingW builds it is default off but can be enabled for cross builds. Change-Id: Icdd6ba2e706b2c791bcf44b6e718c2b7a5eb2218 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | remove dead code relating MakeItemOswald Buddenhagen2014-07-072-38/+0
| | | | | | | | | | Change-Id: I413f038391dba02a22242eafef4a946f81babfca Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | nuke -process/-fully-process/-dont-process optionsOswald Buddenhagen2014-07-071-23/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][configure] The -process/-fully-process/-dont-process options have been removed due to being unnecessary and counterproductive. -fully-process has always been broken to a degree under unix (and since 5.0 under windows) - rcc isn't built before running qmake -r, so the dependencies are unreliable (and there are many warning messages from qmake). also, it is a lot slower nowadays, as qmake -r is not parallelized. -dont-process doesn't make any sense any more - even if you don't need the Makefile for some obscure reason, the time spent on creating it is not relevant without the recursion. this leaves -process as the only option. Task-number: QTBUG-36955 Change-Id: Ifd3949d9ff773780646c6f65db1629e1c19e53d2 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | remove configure's ability to create vcproj filesOswald Buddenhagen2014-07-071-53/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the generated projects aren't optimal for building qt anyway (as rcc is not built yet, dependencies are missing), and the added value isn't all that great to start with (Qt devs typically use Qt Creator nowadays). the -no-qmake-deps option was also removed, as it affected only -vcproj. [ChangeLog][configure] The -vcproj option was removed. Use "qmake -r -tp vc" _after_ building Qt in case you want to use VS to work on Qt. Change-Id: I0207d1a89a83b70991a63a7d121a9de4cb685ca5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Add the -qreal option to the Qt ABI informationThiago Macieira2014-06-171-2/+12
| | | | | | | | | | | | | | | | | | If -qreal float is passed, fullCpuArchitecture() will now include "-qreal_float". If something else other than "float" is passed to -qreal, we'll try to encode it (e.g., -qreal "fixed<int, 7>"). Change-Id: Ie33fd1a643f4376e6f01a7966e01c7c34e6fcffd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Add support for single-file multi-target intrinsics in QtThiago Macieira2014-05-271-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 4.9 now allows us to #include any and all intrinsics headers, not just the one for which we're compiling code, a behavior that ICC and MSVC have had for some time. With that, we're able to have the functions for different targets in the same source file. See the GCC manual: http://gcc.gnu.org/onlinedocs/gcc/Function-Multiversioning.html This functionality is notified by the QT_COMPILER_SUPPORTS_HERE(XXX) macro, which indicates that all the intrinsics from QT_COMPILER_SUPPORTS_xxx are available and enabled. To complement, a QT_COMPILER_SUPPORTS(XXX) macro is also added. Unlike ICC and MSVC, GCC requires a special function attribute, which will also cause code optimization. That's the QT_FUNCTION_TARGET macro. Note: because of the absence of the target attribute, ICC and MSVC will not generate instructions with the VEX prefix unless they only exist with the VEX prefix or if -mavx / -arch:AVX are enabled. Change-Id: I0c1880c20324bd8e0fc68a863e36d1fa7755dff0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Simon Hausmann2014-05-221-2/+3
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-05-221-2/+3
| |\| | | | | | | | | | Change-Id: Ia36e93771066d8abcf8123dbe2362c5c9d9260fc
| | * Strip bootstrapped binaries of unused sectionsThiago Macieira2014-05-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This matches the -ffunction-sections from bootstrap.pro, which tells the compiler to create a section for each function. The -gc-sections option tells the linker to drop what wasn't used (normally, it only drops entire files). Before (on Linux, built with -O3, no LTO): text data bss dec hex filename 1746385 7920 3750 1758055 1ad367 bin/moc 1444101 6664 1894 1452659 162a73 bin/rcc 4407725 1568 4896 4414189 435aed bin/qmake After: text data bss dec hex filename 1131655 6520 3494 1141669 116ba5 bin/moc 1027043 5480 1766 1034289 fc831 bin/rcc 3578489 1656 5313 3585458 36b5b2 bin/qmake Gain: 35% on moc, 28% on rcc, 19% on qmake Before (on OS X): __TEXT __DATA __OBJC others dec hex 1495040 12288 0 4294993008 4296500336 100176470 bin/moc 1265664 8192 0 4294983904 4296257760 10013b0e0 bin/rcc 5279744 81920 0 4297912320 4303273984 1007ec000 bin/qmake After: __TEXT __DATA __OBJC others dec hex 806912 8192 0 4294988132 4295803236 1000cc164 bin/moc 720896 8192 0 4294979764 4295708852 1000b50b4 bin/rcc 4841472 77824 0 4295580688 4300499984 100546c10 bin/qmake Gain: 46% on moc, 43% on rcc, 8% on qmake. Change-Id: Icc7cdc9fd6f5db15537b4adabaac7e7a27e539d4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| | * Make qmake also use -ffunction-sectionsThiago Macieira2014-05-191-2/+2
| | | | | | | | | | | | | | | | | | | | | This might lead to a smaller binary if we use --gc-sections too. Change-Id: I7e17b956a85ecefc3e187054848393d2855152b6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>