Skip to content

Commit

Permalink
Merge pull request #14017 from Micket/20210916194009_new_pr_Qt55152
Browse files Browse the repository at this point in the history
{devel}[GCCcore/11.2.0] Qt5 v5.15.2
  • Loading branch information
boegel committed Dec 21, 2021
2 parents 9983444 + 62a1597 commit 4b6969e
Show file tree
Hide file tree
Showing 2 changed files with 212 additions and 0 deletions.
73 changes: 73 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.15.2-GCCcore-11.2.0.eb
@@ -0,0 +1,73 @@
easyblock = 'EB_Qt'

name = 'Qt5'
version = '5.15.2'

homepage = 'https://qt.io/'
description = "Qt is a comprehensive cross-platform C++ application framework."

toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
# disabling use of -ftree-vectorize is required to avoid compilation failures on some systems (e.g. Intel Skylake X)
toolchainopts = {'vectorize': False}

source_urls = [
'https://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/single/',
'https://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/single/',
'https://download.qt.io/new_archive/qt/%(version_major_minor)s/%(version)s/single/',
]
sources = ['qt-everywhere-src-%(version)s.tar.xz']
patches = [
'Qt5-5.13.1_fix-avx2.patch',
'Qt5-5.13.1_fix-qmake-libdir.patch',
'Qt5-5.14.1_fix-OF-Gentoo.patch',
'Qt5-5.15.2_fix-gcc11.patch',
]
checksums = [
'3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240', # qt-everywhere-src-5.15.2.tar.xz
'6f46005f056bf9e6ff3e5d012a874d18ee03b33e685941f2979c970be91a9dbc', # Qt5-5.13.1_fix-avx2.patch
'511ca9c0599ceb1989f73d8ceea9199c041512d3a26ee8c5fd870ead2c10cb63', # Qt5-5.13.1_fix-qmake-libdir.patch
'0b9defb7ce75314d85bebe07e143db7f7de316fec64c17cbd13f7eec5d2d1afa', # Qt5-5.14.1_fix-OF-Gentoo.patch
'6606e2434aacaac49545be733bf012f1d489393bf8bd5573691c171ab8bc0976', # Qt5-5.15.2_fix-gcc11.patch
]

builddependencies = [
('binutils', '2.37'),
('pkg-config', '0.29.2'),
# deps for QtWebEngine
('Bison', '3.7.6'),
('flex', '2.6.4'),
('gperf', '3.1'),
('Ninja', '1.10.2'),
# Qt5WebEngine has build dependency on Python 2
('Python', '2.7.18', '-bare'),
('re2c', '2.2'),
]

dependencies = [
('double-conversion', '3.1.5'),
('GLib', '2.69.1'),
('PCRE2', '10.37'),
('libpng', '1.6.37'),
# deps for QtWebEngine
('X11', '20210802'),
('fontconfig', '2.13.94'),
('DBus', '1.13.18'),
('libevent', '2.1.12'),
('libGLU', '9.0.2'),
('libjpeg-turbo', '2.0.6'),
('NSS', '3.69'),
('snappy', '1.1.9'),
('JasPer', '2.0.33'),
('bzip2', '1.0.8'),
('OpenSSL', '1.1', '', True),
('ICU', '69.1'),
]

# qtgamepad needs recent kernel/libevdev (fails on RHEL 6.x)
# qtwayland fails to build on (some) Centos 7 systems
configopts = '-skip qtgamepad -skip qtwayland'

# make sure QtWebEngine component is being built & installed
check_qtwebengine = True

moduleclass = 'devel'
139 changes: 139 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.15.2_fix-gcc11.patch
@@ -0,0 +1,139 @@
# Qt 5.15.2 build fixes for GCC 11
#
# Upstream patches:
# https://code.qt.io/cgit/qt/qtbase.git/commit/?id=813a928c7c3cf986
# https://code.qt.io/cgit/qt/qtbase.git/commit/?id=9c56d4da2ff631a8
# https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=367293b18ab0d0a0
#
# Third-party software patches (taken from Fedora):
# https://src.fedoraproject.org/rpms/qt5-qtwebengine/blob/rawhide/f/qtwebengine-gcc11.patch
#
diff -Nrup a/qtbase/src/corelib/global/qendian.h b/qtbase/src/corelib/global/qendian.h
--- a/qtbase/src/corelib/global/qendian.h 2020-10-27 09:02:11.000000000 +0100
+++ b/qtbase/src/corelib/global/qendian.h 2021-06-21 18:02:01.741899258 +0200
@@ -1,7 +1,7 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2016 Intel Corporation.
+** Copyright (C) 2021 The Qt Company Ltd.
+** Copyright (C) 2021 Intel Corporation.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -44,6 +44,8 @@
#include <QtCore/qfloat16.h>
#include <QtCore/qglobal.h>

+#include <limits>
+
// include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems
#include <stdlib.h>
#include <string.h>
diff -Nrup a/qtbase/src/corelib/global/qfloat16.h b/qtbase/src/corelib/global/qfloat16.h
--- a/qtbase/src/corelib/global/qfloat16.h 2020-10-27 09:02:11.000000000 +0100
+++ b/qtbase/src/corelib/global/qfloat16.h 2021-06-21 18:02:17.409709370 +0200
@@ -43,6 +43,7 @@

#include <QtCore/qglobal.h>
#include <QtCore/qmetatype.h>
+#include <limits>
#include <string.h>

#if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__)
diff -Nrup a/qtbase/src/corelib/text/qbytearraymatcher.h b/qtbase/src/corelib/text/qbytearraymatcher.h
--- a/qtbase/src/corelib/text/qbytearraymatcher.h 2020-10-27 09:02:11.000000000 +0100
+++ b/qtbase/src/corelib/text/qbytearraymatcher.h 2021-06-21 18:13:45.885352546 +0200
@@ -42,6 +42,8 @@

#include <QtCore/qbytearray.h>

+#include <limits>
+
QT_BEGIN_NAMESPACE


diff -Nrup a/qtbase/src/corelib/tools/qsharedpointer_impl.h b/qtbase/src/corelib/tools/qsharedpointer_impl.h
--- a/qtbase/src/corelib/tools/qsharedpointer_impl.h 2020-10-27 09:02:11.000000000 +0100
+++ b/qtbase/src/corelib/tools/qsharedpointer_impl.h 2021-06-21 18:13:45.885352546 +0200
@@ -155,9 +155,6 @@ namespace QtSharedPointer {
#endif
inline void checkQObjectShared(...) { }
inline void setQObjectShared(...) { }
-
- inline void operator delete(void *ptr) { ::operator delete(ptr); }
- inline void operator delete(void *, void *) { }
};
// sizeof(ExternalRefCountData) = 12 (32-bit) / 16 (64-bit)

diff -Nrup a/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp b/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp
--- a/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp 2020-10-27 09:02:11.000000000 +0100
+++ b/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp 2021-06-21 18:13:45.885352546 +0200
@@ -698,7 +698,7 @@ void QXcbWindow::show()
if (isTransient(window())) {
const QWindow *tp = window()->transientParent();
if (tp && tp->handle())
- transientXcbParent = static_cast<const QXcbWindow *>(tp->handle())->winId();
+ transientXcbParent = tp->handle()->winId();
// Default to client leader if there is no transient parent, else modal dialogs can
// be hidden by their parents.
if (!transientXcbParent)
diff -Nrup a/qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h b/qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h
--- a/qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h 2020-10-27 09:02:12.000000000 +0100
+++ b/qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h 2021-06-22 09:35:22.877912946 +0200
@@ -48,6 +48,7 @@
#include <QtCore/qmetatype.h>

#include <initializer_list>
+#include <limits>
#include <type_traits>

//
diff -Nrup a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc
--- a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc 2020-11-07 02:22:36.000000000 +0100
+++ b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc 2021-06-22 12:05:40.736177321 +0200
@@ -14,9 +14,9 @@
* limitations under the License.
*/

+#include <limits>
#include "src/trace_processor/containers/string_pool.h"

-#include <limits>

#include "perfetto/base/logging.h"
#include "perfetto/ext/base/utils.h"
diff -Nrup a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc
--- a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc 2020-11-07 02:22:36.000000000 +0100
+++ b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc 2021-06-22 12:06:05.087880649 +0200
@@ -14,6 +14,7 @@
* limitations under the License.
*/

+#include <limits>
#include "src/trace_processor/db/column.h"

#include "src/trace_processor/db/compare.h"
diff -Nrup a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/heap_graph_walker.cc b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/heap_graph_walker.cc
--- a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/heap_graph_walker.cc 2020-11-07 02:22:36.000000000 +0100
+++ b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/heap_graph_walker.cc 2021-06-22 12:06:28.911590412 +0200
@@ -14,6 +14,8 @@
* limitations under the License.
*/

+#include <cstddef>
+
#include "src/trace_processor/importers/proto/heap_graph_walker.h"
#include "perfetto/base/logging.h"

diff -Nrup a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/types/variadic.cc b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/types/variadic.cc
--- a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/types/variadic.cc 2020-11-07 02:22:36.000000000 +0100
+++ b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/types/variadic.cc 2021-06-22 12:06:52.631301445 +0200
@@ -14,6 +14,7 @@
* limitations under the License.
*/

+#include <limits>
#include "src/trace_processor/types/variadic.h"

namespace perfetto {

0 comments on commit 4b6969e

Please sign in to comment.