summaryrefslogtreecommitdiffstats
path: root/config.tests
Commit message (Collapse)AuthorAgeFilesLines
* Use SPDX license identifiersLucie Gérard2022-05-169-288/+19
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* CMake: Make sure the strip_for_binary project works with MakefilesAlexandru Croitor2022-04-041-0/+1
| | | | | | | | | | | | | | | The printed lib path did not appear when building the project with the Unix Makefiles generator. Make sure the printing does not depend on the shell used by the generator, by making it VERBATIM. Amends 39f657032b5e65bfcb93472201f6607c0388ba37 Pick-to: 6.2 6.3 Task-number: QTBUG-101653 Change-Id: I3853bbed3b121ecdc8b2e9da42eb3399f347b8c2 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* CMake: Generate and use a wrapper script for stripping binariesAlexandru Croitor2022-03-242-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MinGW 11.2.0 comes with a strip.exe that strips the ".gnu_debuglink" section in binaries, a section that is needed for the separate debug information feature. binutils version 2.34 mentions the feature for the first time: https://sourceware.org/binutils/docs-2.34/binutils/strip.html#strip To ensure the debuglink section is preserved, generate a shell wrapper that calls the original strip binary with an extra option to keep the required section. To determine if the option is supported, we build a real shared library on which strip will be called with the --keep-section option. If the option is not supported, a wrapper is not generated and the stock strip binary is used. This logic only applies when targeting Linux and MinGW + a shared library Qt. For other targets, the stock strip binary is used. Developers can opt out of this logic by passing -DQT_NO_STRIP_WRAPPER=TRUE when configuring each Qt repo. Pick-to: 6.2 6.3 Fixes: QTBUG-101653 Change-Id: Idd213d48d087d3c9600c853362aebaba348cde33 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add VERBATIM option to add_custom_command callsAlexey Edelev2022-03-171-1/+2
| | | | | | | | | | | Use VERBATIM option to prepare the correct command line for the add_custom_command. This especially sensitive when using build directories with names containing special symbols, that cannot be handled by shell correctly. Change-Id: I51d7041cb806411135fd59bf6273c04a3c695443 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: add detection of x86 VAES and AVX512VBMI2 featuresThiago Macieira2022-03-081-0/+20
| | | | | | | | We have VAES code in qhash.cpp that isn't getting compiled right now. Change-Id: Ibf4acec0f166495998f7fffd16d6961261dec361 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* CMake: remove unused config.tests (atomicfptr, avx512 and stl)Thiago Macieira2022-02-154-281/+0
| | | | | Change-Id: Ib42b3adc93bf4d43bd55fffd16c10873018acb04 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* qsimd_p.h: add a hack to allow AVX to work with MinGWThiago Macieira2022-01-201-3/+0
| | | | | | | | | | | | | | | | | | | GCC is unable to emit the SEH metadata about the stack aligning that is required to execute AVX aligned instructions (VMOVDQA, VMOVAPS, etc.), so it just doesn't align the stack. That causes crashes on a 50/50 chance every time the compiler attempts to address a stack-aligned variable. In a debug-mode build, because it always loads & saves everything on the stack, the chance of a crash happening is a near certainty. So we hack around it by going behind the compiler's back and instructing the assembler to emit the unaligned counterparts of the instructions every time the compiler wished to emit the aligned one. There's no performance penalty: if the variable is actually aligned, the unaligned instruction executes in the exact same time. Change-Id: Ib42b3adc93bf4d43bd55fffd16c29cac0da18972 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* wasm: add simd supportLorn Potter2021-10-051-0/+4
| | | | | | | | | | | | | | | | | | Emscripten only supports SSE1, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, and 128-bit AVX instruction sets at this time. https://emscripten.org/docs/porting/simd.html Browsers might need to enable simd support in the advanced configurations about: config or chrome:flags Enable by configuring Qt with -sse2 Pick-to: 6.2 Fixes: QTBUG-63924 Change-Id: Ifeafae20e199dee0d19689802ad20fd0bd424ca7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Fix separate_debug_info configure test for cross-compilationJoerg Bornemann2021-09-281-1/+0
| | | | | | | | | | | | | | | The separate_debug_info configure test uses the CMake variable CMAKE_OBJCOPY. CMakeFindBinUtils in the test project finds the host's objcopy despite CMAKE_TOOLCHAIN_FILE being correctly set. We now add CMAKE_OBJCOPY to the list of variables that are passed to configure test projects and remove the CMakeFindBinUtils include, which looks rather internal anyways. Pick-to: 6.2 Fixes: QTBUG-96798 Change-Id: I164c6bd1771e8789e9dd19b50573b33b8866bd3b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Bump almost all cmake_minimum_required calls to 3.16Alexandru Croitor2021-09-225-5/+5
| | | | | | | | | | | | Needed for subsequent change that will check and error out if the version is lower than 3.16. We do that to ensure all policies introduced by CMake up to version 3.16 have their behavior set to NEW. Pick-to: 6.2 Task-number: QTBUG-95018 Change-Id: Ieaf82c10987dd797d86a3fd4a986a67e72de486a Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix the precompile_header configure testJoerg Bornemann2021-06-193-0/+92
| | | | | | | | This configure test always failed, and its result was never used. Pick-to: 6.2 Change-Id: I5112464b247efb5327ef5c23c96ef27168c11afc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove target specific flags from the linker capabilities checkAlexey Edelev2021-06-165-0/+151
| | | | | | | | | | | | | Remove target specific flags from static_link_order. Move the check to the common config.tests folder. Amends 5fb99e3860eb43f4bacacec7f4a4626cb0159b14 Pick-to: 6.2 Task-number: QTBUG-93002 Task-number: QTBUG-94528 Change-Id: I1368075ec6bd1e743b2b89fd93143df38a278ec2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add runtime ARM64 AES checkAllan Sandfeld Jensen2021-05-201-0/+3
| | | | | | | | | | | | Adds runtime CPU detection for Windows and macOS, and switches feature detection of AES to runtime like for x86, So far only on ARM64, since gcc doesn't do function versioning on ARM32, but clang can, so it could be added later. Change-Id: Ibe5d60f48cdae3e366a8ecd6263534ba2b09b131 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Check whether CMake was built with zstd supportJoerg Bornemann2021-04-161-0/+5
| | | | | | | | | | | | | | | | CMake 3.18 introduced the file(ARCHIVE_CREATE) API that we use with COMPRESSION Zstd for compressing corelib's mimedatabase. It's possible to build CMake without proper zstd support, and we have encountered such builds in the wild where the file(ARCHIVE_CREATE) call crashes. Add a configure test to determine whether CMake properly supports the Zstd compression method. Fixes: QTBUG-89108 Change-Id: I37e389c878845162b6f18457984d4f73a265b604 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-078-82/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* CMake: Skip regeneration of manual compile test projectAlexandru Croitor2020-04-091-0/+1
| | | | | Change-Id: I8563ed5b034c843b9f3a4390f963558f6d214ad1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: Port the 'separate_debug_info' featureJoerg Bornemann2020-03-063-0/+18
| | | | | | | | | | | | | | | For this, we have to uninline the separate_debug_info configure test, because supporting the conversion of this in configurejson2cmake is not worth the hassle. Separate debug information can be turned on for a target by calling the function qt_enable_separate_debug_info. For Qt's shared libraries and tools separate debug information is generated if the 'separate_debug_info' feature is manually turned on. Change-Id: Ic2ffc15efef3794dc0aa42f3d853ef6d651a751c Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add initial support for cross-building to iOSAlexandru Croitor2019-12-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | Tested locally with the following configurations: - iOS device builds (arm64) - iOS simulator builds (x86_64) - iOS simulator_and_device builds (fat arm64 and x86_64 archives) All iOS builds currently require a custom vcpkg fork which contains fixes for building the required 3rd party libraries. qtsvg, qtdeclarative, qtgraphicaleffects and qtquickcontrols2 have also been tested to build successfully. simulator_and_device builds are also supported, but require an umerged patch in upstream CMake as well as further patches to vcpkg. Task-number: QTBUG-75576 Change-Id: Icd29913fbbd52a60e07ea5253fd9c7af7f8ce44c Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
* Merge remote-tracking branch 'origin/dev' into wip/cmakeSimon Hausmann2019-10-171-4/+1
|\ | | | | | | Change-Id: Ia1da879a7bd8f71a649661a1844144dd67d60b3a
| * Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-10-161-4/+1
| |\ | | | | | | | | | Change-Id: Ifd83db69416230175ddc3161f640b612755018fc
| | * wasm: fix arch detect on windows with WASM_OBJECT_FILESLorn Potter2019-10-141-4/+1
| | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-79146 Change-Id: I00188013b98687f34582aeb7b29b6d7439334536 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2019-10-141-0/+17
|\| | | | | | | | | | | Change-Id: I4a78428a8ea273b6960792e3b8043f816fa37fcf
| * | QRandom: add support for RDSEEDThiago Macieira2019-10-091-0/+17
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Intel whitepaer[1] recommends using the RDSEED over RDRAND whenever present. libstdc++ from GCC 10 will also use it in std::random_device. [ChangeLog][QtCore][QRandomGenerator] The system() random generator will now use the RDSEED instruction on x86 processors whenever available as the first source of random data. It will fall back to RDRAND and then to the system functions, in that order. [1] https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide Change-Id: I907a43cd9a714da288a2fffd15bab176e54e1975 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-10-113-0/+16
|\| | | | | | | Change-Id: I3a1d7673c3c20019ab12a2ea0a60f1619920a34c
| * Say hello to Android multi arch build in one goBogDan Vatra2019-08-261-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Multi arch build in one go is need to support the new .aab packaging format. By default the users apps are built for all Android ABIs: arm64-v8a armeabi-v7a x86_64 x86 The user can pass ANDROID_ABIS to qmake to filter the ABIs during development, e.g. qmake ANDROID_ABIS="arm64-v8a armeabi-v7a" will build only for arm ABIs. [ChangeLog][Android] Android multi arch build in one go, needed to support the new .aab packaging format. Change-Id: I3a64caf9621c2a195863976a62a57cdf47e6e3b5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-08-123-0/+19
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/arch/write_info.pri Repair architecture config test for the WASM_OBJECT_FILES=1 build mode configure.pri tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp Done-With: Jörg Bornemann <joerg.bornemann@qt.io> Change-Id: I9e12088356eb5bc65b53211cd7a8e330cccd1bb4
| | * Fix host architecture detection for canadian cross buildsJoerg Bornemann2019-08-083-0/+16
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the host architecture is different from -platform (canadian cross build with -external-hostbindir) then we cannot use QMAKE_HOST.os to deduce the executable extension for that platform, because this value comes from the qmake binary that was pointed to by -external-hostbindir. Move the target name deduction mechanism to the actual configure test .pro files to make sure the right scopes are available, and write the deduced target name to a text file. That text file is read by qtConfTest_architecture to get the right binary to analyze. Fixes: QTBUG-77286 Change-Id: I68b844dd51dbfda6432a4b0dca6331899c82255f Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Merge branch 'wip/qt6' into wip/cmakeAlexandru Croitor2019-08-152-2/+1
|\| | | | | | | Change-Id: I50ac36b8803c296998149e98cc61e38687cdd14b
| * Fix android architecture detectionAllan Sandfeld Jensen2019-07-092-2/+1
| | | | | | | | | | | | | | | | | | | | Android is also unix, so can pick up the host 'arch' binary when rerunning configure. This patch splits the names so we don't end up confusing target and host binaries. Task-number: QTBUG-76445 Change-Id: Ib65251a514e45ad8873f523d71c17e13e56ea58a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge commit 'dev' into 'wip/cmake-merge'Tobias Hunger2019-04-1634-796/+3
|\| | | | | | | Change-Id: I176c40d031be26a1dd1cf08843e448a660598783
| * x86: Disable AVX support on 64-bit MinGWThiago Macieira2019-02-061-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC for 64-bit Windows has a bug that it fails to properly re-align the stack pointer for use with 256-bit memory addresses (AVX). Therefore, there's about a 50/50 chance that any function using AVX will have an improperly-aligned stack. In release mode, stack accesses should be rare, but in debug mode they happen frequently. Either way, this is a ticking time bomb, so we disable. Clang is not affected. 32-bit MinGW is not affected. 64-bit in other OSes with GCC are not affected. Fixes: QTBUG-73539 Change-Id: Id061f35c088044b69a15fffd1580967808f31671 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * configure: modernize iconv useOswald Buddenhagen2018-12-195-112/+0
| | | | | | | | | | | | | | use library objects for all variants, and inline the tests. Change-Id: I029f9a6655a783dab4a22abf601aadbb484c03af Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * configure: enable inline tests to refer to PWDOswald Buddenhagen2018-12-193-106/+0
| | | | | | | | | | | | | | ... and use that to inline the xlocalescanprint test. Change-Id: I0973133d7f9ecc9a38b70dc4b83df174a35b2b1f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * configure: enable inline tests to contain auxiliary filesOswald Buddenhagen2018-12-193-49/+0
| | | | | | | | | | | | | | ... and use that to migrate the pch test. Change-Id: I2ce884442cab6124c37142f571cf6f82191ee4f5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * configure: inline openssl test sourcesOswald Buddenhagen2018-12-194-105/+0
| | | | | | | | | | Change-Id: I47c1c43b5db30cf1d59de9c6c20ca83abef2cf8c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * configure: inline a few more testsOswald Buddenhagen2018-12-1716-375/+0
| | | | | | | | | | | | | | | | these were new on dev while the original migration happened on 5.9, or came from new changes which hadn't adapted yet. Change-Id: I5e48437061a97e6df6e93881c98471455e177631 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * configure: inline corewlan testOswald Buddenhagen2018-12-172-48/+0
| | | | | | | | | | | | | | we have support for objc++ since 591edbb11. Change-Id: I5f430fd7c410913d4532627d18529b077f794035 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * configure: convert xlib to a proper library definitionOswald Buddenhagen2018-12-071-1/+0
| | | | | | | | | | Change-Id: I1623aee9e8632e4bfd466e09e275cc23f94c6dab Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
| * Merge remote-tracking branch 'origin/5.11' into 5.12Qt Forward Merge Bot2018-10-211-2/+2
| |\ | | | | | | | | | Change-Id: Iaf28977e7ecf566b28b9406dcb005d48621169c2
| | * OpenSSL: force the "1.0.0" soname when loading OpenSSL 1.0Giuseppe D'Angelo2018-10-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some Linux distributions patch OpenSSL's soname, making builds on such distributions not deployable elsewhere. The problem is that the code loading OpenSSL symbols would attempt to use the soname of the build machine, and therefore not finding the OpenSSL libraries on the deploy system. The binary builds of Qt for Linux are affected by this problem, as they build under RHEL7.4 which changes to soname of OpenSSL to a non-standard string. This makes the binary builds not pick up OpenSSL 1.0 from the machine where the build gets installed on. Given that in the pre-1.1 versions only the 1.0 series is supported, bump the minimum requirement of Qt to that. The 1.0.x releases (up to 1.0.2, at the time of this writing) have kept binary compatibility, and advertise a soname of "1.0.0", which is used by most distributions. So, if loading of OpenSSL with the build-time soname fails, try to load them with the "1.0.0" hardcoded soname. [ChangeLog][QtNetwork][SSL] OpenSSL >= 1.0 is now required to build Qt with OpenSSL support. Task-number: QTBUG-68156 Change-Id: Ieff1561a3c1d278b511f09fef06580f034f188c6 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Fix sub-architecture (instruction sets / SIMD) handlingAlexandru Croitor2019-03-211-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In qmake there are at least 2 things to know regarding sub-architectures and instruction sets. Which instruction sets does the compiler know to compile for, represented by the various config.tests and features in qtbase/configure.json. And which instructions sets are enabled by the compiler by default, represented by the configure.json "architecture" test and accessed via QT_CPU_FEATURES.$$arch qmake argument. Before this patch there was some mishandling of the above concepts in CMake code. The former can now be checked in CMake with via TEST_subarch_foo and QT_FEATURE_foo (where foo is sse2, etc). The latter can now be checked by TEST_arch_${TEST_architecture_arch}_subarch_foo (where foo is sse2, etc and the main arch is dynamyicall evaluated). The configurejson2cmake script was adjusted to take care of the above changes, and the cmake files were regenerated as well. Change-Id: Ifbf558242e320cafae50da388eee56fa5de2a50c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | CMake: Add QT_CFLAGS_* when building x86simd testsTobias Hunger2019-03-181-0/+15
|/ / | | | | | | | | Change-Id: I5caa088d517cb9d3749c3ed8ef88a41552c1d340 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | AVX512 test: an intrinsic that GCC forgot to implement prior to GCC8Thiago Macieira2018-09-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | _mm512_mask_cvtepi32_storeu_epi8 is VPMOVDB (convert from 32-bit to 8-bit with truncation) where the destination is a memory address, with an OpMask register used to indicate which of the lanes in the vector to store. Similarly, _mm512_mask_cvtepi16_storeu_epi8 is VPMOVWB (convert from 16-bit o 8-bit), which is useful for UTF-16 to Latin1 conversion. Change-Id: I8f261579aad648fdb4f0fffd15542ea306841ce6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | SIMD: Remove unused (and unlikely to be ever used) AVX-512 profilesThiago Macieira2018-06-251-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | "AVX512MIC" (Many Integrated Cores) is the set of AVX-512 features found on the Intel Xeon Phi coprocessors (codename "Knights Landing"), which is an unlikely architecture for Qt to run on. The two profiles with VL came from study of early GCC code and are no longer applicable. GCC source code now shows both VBMI and IFMA as part of the -march=cannonlake feature set. Change-Id: Iff4151c519c144d580c4fffd153a0f268919fe2c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | qsimd: add support for new x86 CPU featuresThiago Macieira2018-05-051-1/+33
|/ | | | | | | | | | | | | | | | | | | | | | | | | This adds detection for: VAES, GFNI, AVX512VBMI2, AVX512VNNI, AVX512BITALG, AVX512VPOPCNTDQ, AVX512_4NNIW, AVX512_4FMAPS. These features were found in the "Intel® Architecture Instruction Set Extensions and Future Features" manual, revision 30. This commit also adds support for RDPID (already in the main manual) and the Control-flow Enforcement Technology, which appears in a separate Intel paper. This new support was done by adding a new generator script so we don't have to maintain two tables in sync, one in qsimd.cpp with the feature names, and the other in qsimd_p.h. Since we now need a lot more bits, it's no longer worth keeping the two halves of the qt_cpu_features variable mostly similar to the main two CPUID results. This commit goes back to keeping things in order, like we used to prior to commit 6a8251a89b6a61258498f4af1ba7b3d5b7f7096c (Qt 5.6) At the time of this commit, GCC 8 has macros for AVX512VPOPCNTDQ, AVX512_4NNIW, AVX512_4FMAPS, AVX512VBMI2 and GFNI. Change-Id: I938b024e38bf4aac9154fffd14f7afae50faaa96 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.11Liang Qi2018-02-142-50/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/corelib/animation/qvariantanimation.cpp src/corelib/global/qglobal.cpp src/corelib/global/qlogging.cpp src/corelib/io/qprocess_win.cpp src/corelib/json/qjsonarray.cpp src/corelib/tools/qsimd_p.h src/corelib/tools/qtimezoneprivate_p.h src/corelib/xml/qxmlstream_p.h src/gui/kernel/qsimpledrag.cpp src/gui/kernel/qsimpledrag_p.h src/plugins/generic/generic.pro src/plugins/platforms/cocoa/qcocoamenu.mm src/widgets/styles/qmacstyle_mac.mm tests/auto/concurrent/qtconcurrentmap/BLACKLIST tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/widgets/dialogs/qmessagebox/BLACKLIST Change-Id: I508d686cf20f7f8cc6a7119b9bc7c3bbb505c58e
| * configure: inline D3D11_QUERY_DATA_TIMESTAMP_DISJOINT testOswald Buddenhagen2018-01-182-50/+0
| | | | | | | | | | | | | | amends a96656a8fb. Change-Id: Ic434c272bfe985ea0410090537b8a22aad3192f1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Centralize the x86 SIMD testing in one placeThiago Macieira2017-11-308-165/+7
| | | | | | | | | | | | | | | | Since the x86_simd/main.cpp file already has all the source for each and every test anyway, just reuse it. Change-Id: I938b024e38bf4aac9154fffd14f779f450827fb9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Add a configure-time check for QT_COMPILER_SUPPORTS_SIMD_ALWAYSThiago Macieira2017-11-302-0/+258
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has two main benefits: 1) introduces a qmake CONFIG we can use in .pro/.pri/.prf files 2) removes the need to keep an up-to-date list of which compilers support the feature The test is implemented as trying to compile every single SIMD test we currently have, but without passing the -mXXX option. The reason for trying all of them is that some people may have modified their mkspecs to add -mXXX options or -march=XXX, which could enable the particular feature we tried, resulting in a false positive outcome. Change-Id: I938b024e38bf4aac9154fffd14f7784dc8d1f020 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Add support for AVX-512 intrinsics found in MSVC 2017 15.3Thiago Macieira2017-11-302-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems the compiler supports /arch:AVX512 and /arch:AVX512F but none of the other switches (and neither are documented). And when you pass those, you also get Conflict Detection (CD), Double & Quad (DQ), Byte & Word (BW) and Vector Length (VL), which matches the ICC switch "-xCORE-AVX512". Unlike ICC, there doesn't seem to be an option to enable only the common part of AVX-512. Support for Intel Xeon Phi's current features (Exponential & Reciprocation and Prefetch) and future ones (IFMA, VBMI, 4FMAPS, 4VNNI and VPOPCNTDQ) seems to be missing altogether. See https://blogs.msdn.microsoft.com/vcblog/2017/07/11/microsoft-visual-studio-2017-supports-intel-avx-512/ Change-Id: I98105cd9616b8097957db680d73eb1f86e487e6d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>