diff options
author | Oswald Buddenhagen <oswald.buddenhagen@gmx.de> | 2022-07-14 12:06:50 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@gmx.de> | 2022-07-20 12:26:48 +0000 |
commit | 9841a10f35af347048d1ba49687170bdf95960b5 (patch) | |
tree | e0adb2a8e8ea09843cc3522caf8dd222161be749 /src/plugins/projectexplorer/gcctoolchain.cpp | |
parent | 6fe15c58c973091807ae9d1c7874067cb3f1195a (diff) | |
download | qt-creator-9841a10f35af347048d1ba49687170bdf95960b5.tar.gz |
GccToolChain: whitelist all -f* and -O* gcc options
there are way too many -f* options to catch all relevant ones.
my particular case was the linux kernel, for which passing
-mcmodel=kernel but not -fno-PIE caused a gcc error.
if any particular option causes trouble, it should be blacklisted
instead.
also handle -O* while at it; -Og comes to mind as a relevant one.
this follows 3b79fafb3 in spirit.
Change-Id: I5de56082b695205409a8e82de2cab0618e2806a8
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/gcctoolchain.cpp')
-rw-r--r-- | src/plugins/projectexplorer/gcctoolchain.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index ee0a0e3e36..b3c827041f 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -449,18 +449,14 @@ static QStringList filteredFlags(const QStringList &allFlags, bool considerSysro || a == "-gcc-toolchain" || a == "-target" || a == "-mllvm" || a == "-isystem") { if (++i < allFlags.length()) filtered << a << allFlags.at(i); - } else if (a.startsWith("-m") || a == "-Os" || a == "-O0" || a == "-O1" || a == "-O2" - || a == "-O3" || a == "-ffinite-math-only" || a == "-fshort-double" - || a == "-fshort-wchar" || a == "-fsignaling-nans" || a == "-fno-inline" - || a == "-fno-exceptions" || a == "-fstack-protector" - || a == "-fstack-protector-all" || a == "-fsanitize=address" - || a == "-fno-rtti" || a.startsWith("-std=") || a.startsWith("-stdlib=") + } else if (a.startsWith("-m") || a.startsWith("-f") || a.startsWith("-O") + || a.startsWith("-std=") || a.startsWith("-stdlib=") || a.startsWith("-specs=") || a == "-ansi" || a == "-undef" - || a.startsWith("-D") || a.startsWith("-U") || a == "-fopenmp" - || a == "-Wno-deprecated" || a == "-fPIC" || a == "-fpic" || a == "-fPIE" - || a == "-fpie" || a.startsWith("-stdlib=") || a.startsWith("-B") + || a.startsWith("-D") || a.startsWith("-U") + || a.startsWith("-stdlib=") || a.startsWith("-B") || a.startsWith("--target=") || (a.startsWith("-isystem") && a.length() > 8) + || a == "-Wno-deprecated" || a == "-nostdinc" || a == "-nostdinc++") { filtered << a; } |