qt: backport build issue fix on 5.14 due to isystem (#22772)

This commit is contained in:
Valentin Volkl 2021-04-04 15:55:42 +02:00 committed by GitHub
parent bfb3b55414
commit 1908e6834d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 108 additions and 0 deletions

View file

@ -122,6 +122,7 @@ class Qt(Package):
# https://bugreports.qt.io/browse/QTBUG-93402 # https://bugreports.qt.io/browse/QTBUG-93402
patch('qt5-15-gcc-10.patch', when='@5.12.7:5.15 %gcc@8:') patch('qt5-15-gcc-10.patch', when='@5.12.7:5.15 %gcc@8:')
patch('qt514.patch', when='@5.14') patch('qt514.patch', when='@5.14')
patch('qt514-isystem.patch', when='@5.14.2')
conflicts('%gcc@10:', when='@5.9:5.12.6 +opengl') conflicts('%gcc@10:', when='@5.9:5.12.6 +opengl')
# Build-only dependencies # Build-only dependencies

View file

@ -0,0 +1,107 @@
diff --git a/qtbase/mkspecs/common/clang.conf b/qtbase/mkspecs/common/clang.conf
index 2499c8b6d88..dad15a22a88 100644
--- a/qtbase/mkspecs/common/clang.conf
+++ b/qtbase/mkspecs/common/clang.conf
@@ -18,7 +18,6 @@ QMAKE_PCH_OUTPUT_EXT = .pch
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
-QMAKE_CFLAGS_ISYSTEM = -isystem
QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
QMAKE_CFLAGS_LTCG = -flto=thin
diff --git a/qtbase/mkspecs/common/gcc-base.conf b/qtbase/mkspecs/common/gcc-base.conf
index 3c2d5fdd533..99d77156fd7 100644
--- a/qtbase/mkspecs/common/gcc-base.conf
+++ b/qtbase/mkspecs/common/gcc-base.conf
@@ -46,7 +46,6 @@ QMAKE_CFLAGS_DEBUG += -g
QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC
-QMAKE_CFLAGS_ISYSTEM = -isystem
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
diff --git a/qtbase/mkspecs/linux-icc/qmake.conf b/qtbase/mkspecs/linux-icc/qmake.conf
index 75a601b1f1b..09f897d0934 100644
--- a/qtbase/mkspecs/linux-icc/qmake.conf
+++ b/qtbase/mkspecs/linux-icc/qmake.conf
@@ -9,7 +9,6 @@ include(../common/icc-base-unix.conf)
# modifications to icc-base-unix.conf
QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_ISYSTEM = -isystem
QMAKE_CFLAGS_THREAD = -D_REENTRANT
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
diff --git a/qtbase/qmake/generators/unix/unixmake2.cpp b/qtbase/qmake/generators/unix/unixmake2.cpp
index 0412b528134..ad6a0e94f2b 100644
--- a/qtbase/qmake/generators/unix/unixmake2.cpp
+++ b/qtbase/qmake/generators/unix/unixmake2.cpp
@@ -198,18 +198,13 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)\n";
t << "INCPATH =";
{
- QString isystem = var("QMAKE_CFLAGS_ISYSTEM");
const ProStringList &incs = project->values("INCLUDEPATH");
for(int i = 0; i < incs.size(); ++i) {
const ProString &inc = incs.at(i);
if (inc.isEmpty())
continue;
- if (!isystem.isEmpty() && isSystemInclude(inc.toQString()))
- t << ' ' << isystem << ' ';
- else
- t << " -I";
- t << escapeFilePath(inc);
+ t << " -I" << escapeFilePath(inc);
}
}
if(!project->isEmpty("QMAKE_FRAMEWORKPATH_FLAGS"))
@@ -1393,8 +1388,7 @@ void UnixMakefileGenerator::init2()
}
if (include_deps && project->isActiveConfig("gcc_MD_depends")) {
- // use -MMD if we know about -isystem too
- ProString MD_flag(project->values("QMAKE_CFLAGS_ISYSTEM").isEmpty() ? "-MD" : "-MMD");
+ ProString MD_flag("-MD");
project->values("QMAKE_CFLAGS") += MD_flag;
project->values("QMAKE_CXXFLAGS") += MD_flag;
}
diff --git a/qtbase/qmake/generators/win32/mingw_make.cpp b/qtbase/qmake/generators/win32/mingw_make.cpp
index d778790f8ac..ee9a41838bc 100644
--- a/qtbase/qmake/generators/win32/mingw_make.cpp
+++ b/qtbase/qmake/generators/win32/mingw_make.cpp
@@ -200,17 +200,12 @@ void MingwMakefileGenerator::writeIncPart(QTextStream &t)
{
t << "INCPATH = ";
- QString isystem = var("QMAKE_CFLAGS_ISYSTEM");
const ProStringList &incs = project->values("INCLUDEPATH");
for (ProStringList::ConstIterator incit = incs.begin(); incit != incs.end(); ++incit) {
QString inc = (*incit).toQString();
inc.replace(QRegExp("\\\\$"), "");
- if (!isystem.isEmpty() && isSystemInclude(inc))
- t << isystem << ' ';
- else
- t << "-I";
- t << escapeFilePath(inc) << ' ';
+ t << "-I" << escapeFilePath(inc) << ' ';
}
t << Qt::endl;
}
diff --git a/qtbase/src/plugins/platformthemes/gtk3/gtk3.pro b/qtbase/src/plugins/platformthemes/gtk3/gtk3.pro
index cac6f7054d3..8d217396d34 100644
--- a/qtbase/src/plugins/platformthemes/gtk3/gtk3.pro
+++ b/qtbase/src/plugins/platformthemes/gtk3/gtk3.pro
@@ -10,6 +10,8 @@ QT += core-private gui-private theme_support-private
CONFIG += X11
QMAKE_USE += gtk3
DEFINES += GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6
+# Needed for GTK < 3.23
+QMAKE_CXXFLAGS_WARN_ON += -Wno-error=parentheses
HEADERS += \
qgtk3dialoghelpers.h \