From 525f8516c2580018f910cfb99ab5e0e36bd55ab1 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Fri, 6 Oct 2017 16:27:09 +0200 Subject: Remove qml-debug configure flag and feature The feature belongs to qtdeclarative and will be added there. Change-Id: I2faf89f6caf841958e60efed8ff3882e530f0720 Reviewed-by: Oswald Buddenhagen --- configure.json | 9 --------- 1 file changed, 9 deletions(-) (limited to 'configure.json') diff --git a/configure.json b/configure.json index 26e1572f32..07549e0b7e 100644 --- a/configure.json +++ b/configure.json @@ -102,7 +102,6 @@ "platform": "string", "plugin-manifests": "boolean", "profile": "boolean", - "qml-debug": "boolean", "qreal": "string", "qtlibinfix": { "type": "string", "name": "qt_libinfix" }, "qtnamespace": { "type": "string", "name": "qt_namespace" }, @@ -1235,13 +1234,6 @@ "condition": "libs.libudev", "output": [ "privateFeature" ] }, - "qml-debug": { - "label": "QML debugging", - "output": [ - "privateFeature", - { "type": "publicQtConfig", "negative": true } - ] - }, "compile_examples": { "label": "Compile examples", "output": [ "privateConfig" ] @@ -1454,7 +1446,6 @@ Configure with '-qreal float' to create a build that is binary-compatible with 5 "section": "Support enabled for", "entries": [ "pkg-config", - "qml-debug", "libudev", "system-zlib" ] -- cgit v1.2.3 From 7ce71f00911d3a8e139c6d4b4a3655863a413c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 21 Nov 2017 20:42:51 +0100 Subject: Disable -optimize-debug for Clang It results in Xcode outputting a warning when debugging: [app name] was compiled with optimization - stepping may behave oddly; variables may not be available. And the warning is correct, debugging is broken in this situation. Likely caused by Clang treating -Og as -O1: https://reviews.llvm.org/D24998 Change-Id: I25d6bf1e65c81cc5be92b9847f7d5dd6754a0177 Reviewed-by: Allan Sandfeld Jensen --- configure.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'configure.json') diff --git a/configure.json b/configure.json index a91456aaf3..ce20aa3dc1 100644 --- a/configure.json +++ b/configure.json @@ -689,7 +689,7 @@ }, "optimize_debug": { "label": "Optimize debug build", - "condition": "!config.msvc && (features.debug || features.debug_and_release) && tests.optimize_debug", + "condition": "!config.msvc && !config.clang && (features.debug || features.debug_and_release) && tests.optimize_debug", "output": [ "privateConfig" ] }, "optimize_size": { @@ -1312,7 +1312,7 @@ Configure with '-qreal float' to create a build that is binary-compatible with 5 { "type": "feature", "args": "optimize_debug", - "condition": "!config.msvc && (features.debug || features.debug_and_release)" + "condition": "!config.msvc && !config.clang && (features.debug || features.debug_and_release)" }, { "type": "feature", -- cgit v1.2.3 From a09fc184acd0874ea9876cdb2c4b123b226d8587 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 15 Nov 2017 21:01:15 -0800 Subject: Add a configure-time check for QT_COMPILER_SUPPORTS_SIMD_ALWAYS 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 --- configure.json | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'configure.json') diff --git a/configure.json b/configure.json index 07549e0b7e..9ae3cc284a 100644 --- a/configure.json +++ b/configure.json @@ -218,7 +218,7 @@ }, "testTypeAliases": { - "compile": [ "library", "architecture" ] + "compile": [ "library", "architecture", "x86SimdAlways" ] }, "tests": { @@ -563,6 +563,11 @@ "test": "avx512", "args": "AVX512=VBMI" }, + "x86SimdAlways": { + "label": "Intrinsics without -mXXX argument", + "type": "x86SimdAlways", + "test": "x86_simd" + }, "mips_dsp": { "label": "MIPS DSP instructions", "type": "subarch", @@ -1111,6 +1116,14 @@ { "type": "define", "name": "QT_COMPILER_SUPPORTS_SHA", "value": 1 } ] }, + "x86SimdAlways": { + "label": "Intrinsics without -mXXX option", + "condition": "(arch.i386 || arch.x86_64) && tests.x86SimdAlways", + "output": [ + "privateConfig", + { "type": "define", "name": "QT_COMPILER_SUPPORTS_SIMD_ALWAYS", "value": 1 } + ] + }, "mips_dsp": { "label": "DSP", "condition": "arch.mips && tests.mips_dsp", @@ -1397,6 +1410,11 @@ Configure with '-qreal float' to create a build that is binary-compatible with 5 "args": "aesni f16c rdrnd shani", "condition": "(arch.i386 || arch.x86_64)" }, + { + "type": "feature", + "args": "x86SimdAlways", + "condition": "(arch.i386 || arch.x86_64) && !config.msvc" + }, { "type": "feature", "args": "neon", -- cgit v1.2.3 From e32812d1d2e59e17697c8b8c6375a18556175b54 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 15 Nov 2017 21:31:30 -0800 Subject: Centralize the x86 SIMD testing in one place 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 --- configure.json | 165 ++++++++------------------------------------------------- 1 file changed, 21 insertions(+), 144 deletions(-) (limited to 'configure.json') diff --git a/configure.json b/configure.json index 9ae3cc284a..1268fc87a2 100644 --- a/configure.json +++ b/configure.json @@ -218,7 +218,7 @@ }, "testTypeAliases": { - "compile": [ "library", "architecture", "x86SimdAlways" ] + "compile": [ "library", "architecture", "x86Simd", "x86SimdAlways" ] }, "tests": { @@ -362,206 +362,83 @@ }, "sse2": { "label": "SSE2 instructions", - "type": "compile", - "test": { - "include": "emmintrin.h", - "main": [ - "__m128i a = _mm_setzero_si128();", - "_mm_maskmoveu_si128(a, _mm_setzero_si128(), 0);" - ], - "qmake": [ - "!defined(QMAKE_CFLAGS_SSE2, var): error(\"This compiler does not support SSE2\")", - "QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE2" - ] - } + "type": "x86Simd" }, "sse3": { "label": "SSE3 instructions", - "type": "compile", - "test": { - "include": "pmmintrin.h", - "main": [ - "__m128d a = _mm_set1_pd(6.28);", - "__m128d b = _mm_set1_pd(3.14);", - "__m128d result = _mm_addsub_pd(a, b);", - "(void) _mm_movedup_pd(result);" - ], - "qmake": [ - "!defined(QMAKE_CFLAGS_SSE3, var): error(\"This compiler does not support SSE3\")", - "QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE3" - ] - } + "type": "x86Simd" }, "ssse3": { "label": "SSSE3 instructions", - "type": "compile", - "test": { - "include": "tmmintrin.h", - "main": [ - "__m128i a = _mm_set1_epi32(42);", - "_mm_abs_epi8(a);", - "(void) _mm_sign_epi16(a, _mm_set1_epi32(64));" - ], - "qmake": [ - "!defined(QMAKE_CFLAGS_SSSE3, var): error(\"This compiler does not support SSSE3\")", - "QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSSE3" - ] - } + "type": "x86Simd" }, "sse4_1": { "label": "SSE4.1 instructions", - "type": "compile", - "test": { - "include": "smmintrin.h", - "main": [ - "__m128 a = _mm_setzero_ps();", - "_mm_ceil_ps(a);", - "__m128i result = _mm_mullo_epi32(_mm_set1_epi32(42), _mm_set1_epi32(64));", - "(void)result;" - ], - "qmake": [ - "!defined(QMAKE_CFLAGS_SSE4_1, var): error(\"This compiler does not support SSE4.1\")", - "QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE4_1" - ] - } + "type": "x86Simd" }, "sse4_2": { "label": "SSE4.2 instructions", - "type": "compile", - "test": { - "include": "nmmintrin.h", - "main": [ - "__m128i a = _mm_setzero_si128();", - "__m128i b = _mm_set1_epi32(42);", - "(void) _mm_cmpestrm(a, 16, b, 16, 0);" - ], - "qmake": [ - "!defined(QMAKE_CFLAGS_SSE4_2, var): error(\"This compiler does not support SSE4.2\")", - "QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE4_2" - ] - } + "type": "x86Simd" }, "aesni": { "label": "AES new instructions", - "type": "compile", - "test": "common/aesni" + "type": "x86Simd" }, "f16c": { "label": "F16C instructions", - "type": "compile", - "test": { - "include": "immintrin.h", - "main": [ - "__m128i a = _mm_setzero_si128();", - "__m128 b = _mm_cvtph_ps(a);", - "__m256 b256 = _mm256_cvtph_ps(a);", - "(void) _mm_cvtps_ph(b, 0);", - "(void) _mm256_cvtps_ph(b256, 0);" - ], - "qmake": [ - "!defined(QMAKE_CFLAGS_F16C, var): error(\"This compiler does not support F16C\")", - "QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_F16C" - ] - } + "type": "x86Simd" }, "rdrnd": { "label": "RDRAND instruction", - "type": "compile", - "test": "common/rdrnd" + "type": "x86Simd" }, "shani": { "label": "SHA new instructions", - "type": "compile", - "test": "common/shani" + "type": "x86Simd" }, "avx": { "label": "AVX instructions", - "type": "compile", - "test": { - "include": "immintrin.h", - "main": [ - "__m256d a = _mm256_setzero_pd();", - "__m256d b = _mm256_set1_pd(42.42);", - "(void) _mm256_add_pd(a, b);" - ], - "qmake": [ - "!defined(QMAKE_CFLAGS_AVX, var): error(\"This compiler does not support AVX\")", - "QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX" - ] - } + "type": "x86Simd" }, "avx2": { "label": "AVX2 instructions", - "type": "compile", - "test": { - "include": "immintrin.h", - "main": [ - "// AVX", - "_mm256_zeroall();", - "__m256i a = _mm256_setzero_si256();", - "// AVX2", - "__m256i b = _mm256_and_si256(a, a);", - "(void) _mm256_add_epi8(a, b);" - ], - "qmake": [ - "!defined(QMAKE_CFLAGS_AVX2, var): error(\"This compiler does not support AVX2\")", - "QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX2" - ] - } + "type": "x86Simd" }, "avx512f": { "label": "AVX512 F instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=F" + "type": "x86Simd" }, "avx512er": { "label": "AVX512 ER instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=ER" + "type": "x86Simd" }, "avx512cd": { "label": "AVX512 CD instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=CD" + "type": "x86Simd" }, "avx512pf": { "label": "AVX512 PF instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=PF" + "type": "x86Simd" }, "avx512dq": { "label": "AVX512 DQ instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=DQ" + "type": "x86Simd" }, "avx512bw": { "label": "AVX512 BW instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=BW" + "type": "x86Simd" }, "avx512vl": { "label": "AVX512 VL instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=VL" + "type": "x86Simd" }, "avx512ifma": { "label": "AVX512 IFMA instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=IFMA" + "type": "x86Simd" }, "avx512vbmi": { "label": "AVX512 VBMI instructions", - "type": "compile", - "test": "avx512", - "args": "AVX512=VBMI" + "type": "x86Simd" }, "x86SimdAlways": { "label": "Intrinsics without -mXXX argument", -- cgit v1.2.3 From e557a3c1d3bc0f77ea669e670029569fd0228598 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 14 Dec 2017 16:23:22 +0100 Subject: Export sanitizer as a global config This is necessary for WebEngine at configure time, to be able to query which of the sanitizers was enabled in order to report unsupported combinations. Task-number: QTBUG-64726 Change-Id: I72f8efe4bed3e14114f885bdae16650f1f23b24b Reviewed-by: Oswald Buddenhagen --- configure.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'configure.json') diff --git a/configure.json b/configure.json index c73369e6f6..a6f3ed66a9 100644 --- a/configure.json +++ b/configure.json @@ -867,7 +867,7 @@ "sanitizer": { "label": "Sanitizers", "condition": "features.sanitize_address || features.sanitize_thread || features.sanitize_memory || features.sanitize_undefined", - "output": [ "publicConfig" ] + "output": [ "sanitizer", "publicConfig" ] }, "GNUmake": { "label": "GNU make", -- cgit v1.2.3 From 152033bec09c8a57b46a01488cff1a88ca61da33 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 23 Nov 2016 12:05:48 +0100 Subject: Make QT_NO_FUTURE a feature ... and make sure we can compile without it. In particular, Qt Concurrent depends on QFuture, so we specify it as a condition, and QtConcurrentException should not depend on future but on concurrent. Change-Id: I65b158021cecb19f227554cc8b5df7a139fbfe78 Reviewed-by: Martin Smith Reviewed-by: Oswald Buddenhagen --- configure.json | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'configure.json') diff --git a/configure.json b/configure.json index a0b9765d18..6a37695d02 100644 --- a/configure.json +++ b/configure.json @@ -1055,10 +1055,17 @@ "condition": "libs.zlib", "output": [ "privateFeature" ] }, + "future": { + "label": "QFuture", + "purpose": "Provides QFuture and related classes.", + "section": "Kernel", + "output": [ "publicFeature" ] + }, "concurrent": { "label": "Qt Concurrent", "purpose": "Provides a high-level multi-threading API.", "section": "Kernel", + "condition": "features.future", "output": [ "publicFeature", "feature" ] }, "dbus": { -- cgit v1.2.3 From 7951d1cdfaab6104535f25f5f47616ba71192344 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 4 Dec 2017 11:34:09 +0100 Subject: Generate gdb indexing for faster debugging on Linux If the linker supports it, add the gdb index to the debug symbols, which makes loading gdb on Qt libraries much faster. Change-Id: I2ed201c22913b97ac2efaefb5e31636e795ae102 Reviewed-by: Oswald Buddenhagen --- configure.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'configure.json') diff --git a/configure.json b/configure.json index 6a37695d02..50d426594a 100644 --- a/configure.json +++ b/configure.json @@ -307,6 +307,11 @@ "type": "linkerSupportsFlag", "flag": "--enable-new-dtags" }, + "gdb_index": { + "label": "gdb index support", + "type": "linkerSupportsFlag", + "flag": "--gdb-index" + }, "reduce_exports": { "label": "symbol visibility support", "type": "compile", @@ -813,6 +818,12 @@ "condition": "config.linux && tests.enable_new_dtags", "output": [ "privateConfig" ] }, + "enable_gdb_index": { + "label": "Generating GDB index", + "autoDetect": "features.developer-build", + "condition": "config.gcc && !config.clang && (features.debug || features.force_debug_info || features.debug_and_release) && tests.gdb_index", + "output": [ "privateConfig" ] + }, "reduce_exports": { "label": "Reduce amount of exported symbols", "condition": "!config.win32 && tests.reduce_exports", @@ -1265,6 +1276,11 @@ Configure with '-qreal float' to create a build that is binary-compatible with 5 "args": "enable_new_dtags", "condition": "config.linux" }, + { + "type": "feature", + "args": "enable_gdb_index", + "condition": "config.gcc && !config.clang && (features.debug || features.force_debug_info || features.debug_and_release)" + }, "precompile_header", "ltcg", { -- cgit v1.2.3 From 5cfd5fd9d7ece7e1eb3c4d2be8ec342b376acf38 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 20 Feb 2018 12:33:23 +0100 Subject: configure: introduce 'subarch' term to expression evaluator ... and make use of it. it's a logical continuation of the 'arch' term, and will be used also in qt3d's configure. Started-by: Thiago Macieira Change-Id: I940917d6763842499b18fffd1514c96889a0cc63 Reviewed-by: Thiago Macieira --- configure.json | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) (limited to 'configure.json') diff --git a/configure.json b/configure.json index a7b8149469..3f751203b8 100644 --- a/configure.json +++ b/configure.json @@ -213,8 +213,7 @@ "compile": [ "verifyspec" ], "detectPkgConfig": [ "cross_compile", "machineTuple" ], "library": [ "pkg-config" ], - "getPkgConfigVariable": [ "pkg-config" ], - "subarch": [ "architecture" ] + "getPkgConfigVariable": [ "pkg-config" ] }, "testTypeAliases": { @@ -450,21 +449,6 @@ "type": "x86SimdAlways", "test": "x86_simd" }, - "mips_dsp": { - "label": "MIPS DSP instructions", - "type": "subarch", - "subarch": "dsp" - }, - "mips_dspr2": { - "label": "MIPS DSPr2 instructions", - "type": "subarch", - "subarch": "dspr2" - }, - "neon": { - "label": "NEON instructions", - "type": "subarch", - "subarch": "neon" - }, "posix_fallocate": { "label": "POSIX fallocate()", "type": "compile", @@ -1014,7 +998,7 @@ }, "mips_dsp": { "label": "DSP", - "condition": "arch.mips && tests.mips_dsp", + "condition": "arch.mips && subarch.dsp", "output": [ "privateConfig", { "type": "define", "name": "QT_COMPILER_SUPPORTS_MIPS_DSP", "value": 1 } @@ -1022,7 +1006,7 @@ }, "mips_dspr2": { "label": "DSPr2", - "condition": "arch.mips && tests.mips_dspr2", + "condition": "arch.mips && subarch.dspr2", "output": [ "privateConfig", { "type": "define", "name": "QT_COMPILER_SUPPORTS_MIPS_DSPR2", "value": 1 } @@ -1030,7 +1014,7 @@ }, "neon": { "label": "NEON", - "condition": "(arch.arm || arch.arm64) && tests.neon", + "condition": "(arch.arm || arch.arm64) && subarch.neon", "output": [ "privateConfig", { "type": "define", "name": "QT_COMPILER_SUPPORTS_NEON", "value": 1 } -- cgit v1.2.3