Commit Graph

55317 Commits

Author SHA1 Message Date
Andreas Buhr
2ff797689d Remove unused Qt4-compat test
There was a test for Qt4 compatibility in tst_qheaderview.
We don't run it since Qt 6.
This patch removes the unused code.

Change-Id: I751829ac5a142e79379e81e9e739107544cf7406
Reviewed-by: Arnaud Bienner <arnaud.bienner@gmail.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2022-02-24 13:51:22 +01:00
Fabian Kosmale
3fd43fafba QVariant: use std::swap for swapping known type
Amends b1b0c2970e

Task-number: QTBUG-97601
Pick-to: 6.3 6.2
Change-Id: I5161360f10e052d21c91044b2c9bf4260467e585
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-24 12:36:05 +01:00
Pasi Petäjäjärvi
055fd403c4 CI: Add docker support for tst_platformsocketengine test
Currently test relies solely for external test server. This makes it
not possible to run test successfully with environment where docker is
used.

Pick-to: 6.2 6.3
Change-Id: Ie2974a0e2fec9b16d9d023730b76fa2a32f77e65
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-02-24 09:50:31 +02:00
Pasi Petäjäjärvi
30d55abbac Core: Fix tests that did break because QProcess security fix
Amends 29fceed2ff

Pick-to: 5.15 6.2 6.3
Change-Id: Ief3317a89f7be1dd1dc249297bd16e958b9e1ef2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-24 09:49:52 +02:00
Pasi Petäjäjärvi
3a151faec2 QNX: Fix support for abstract Unix-domain socket
As QNX claims to support abstract Unix-domain sockets, its getsockname
always returns for socket that has not been bound to local name
address_len of sun_path as maximum length (106) even when it does not
contain valid address.
https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.lib_ref/topic/u/unix_proto.html

Pick-to: 6.2 6.3
Change-Id: I0f0f5c05611c8db6af35377dde16450f58c83c56
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-24 07:49:37 +00:00
Pasi Petäjäjärvi
df270368ee Fix getsockopt option_value initial initialization
On some platforms, some of the options we're getting the value
for may be a single byte, so attempting to read the full int
produces garbage.

Found with IP_MULTICAST_TTL and IP_MULTICAST_LOOP on QNX. See:
https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.lib_ref/topic/g/getsockopt.html#getsockopt__IP_MULTICAST_TTL

Pick-to: 5.15 6.2 6.3
Change-Id: Id9f7f249c6c4be0c3f94c5904d402b4ec4e17b59
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-24 07:49:10 +00:00
Alexey Edelev
708eb85e38 Allow calling qt6_android_add_apk_target twice
If qt6_android_add_apk_target is called manually in user project this
might cause duplicated targets issue when calling the finalizer(either
manually or in a defer call).
Skip the qt6_android_add_apk_target body if target is already
registered in _qt_apk_targets list.

Pick-to: 6.3
Change-Id: I36ef569227e0c5f0f077446bbe5d7e8d8fc0bfc6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-02-24 03:42:28 +01:00
Alexey Edelev
bb209b5715 Fix the mapping between configure arguments and CMake variables
Pick-to: 6.2 6.3
Fixes: QTBUG-101172
Change-Id: Ie1e01880911e771eedbf29b0d2d0607bc25b0549
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-02-24 03:42:28 +01:00
Martin Storsjö
7341251e0e QHash: Fix building for i386 after "add support for VAES and AVX512VL"
Fix a typo from da1720485e,
where mm_cvtsz_si128 was undefined when building for a 32 bit
target. The code would make it seem this was a typo, with the
listing of defines didn't match between 32 and 64 bit.

Change-Id: Ica24d88e7f71ecd1d24ed990773711f9105f3ec8
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2022-02-24 03:59:53 +02:00
Marc Mutz
dd9f4a2033 Un-export QConfFile
Only clearCache() is used by tests. Ubsan build also passes.

Makes it easier to reason about the mutex handling in the class' ctor
and dtor.

Change-Id: I917991cfecda71dcd0a5bea7705a7f7f3a3e75b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-23 23:07:45 +01:00
Michal Klocek
a232927474 Add back accidentally removed check for QT_FEATURE_system_zlib
This commit amends be2745e478

Pick-to: 6.3
Change-Id: I2fd687e12440cc40ad25b65cbfcc1ce261d04258
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-02-23 17:41:59 +01:00
Joerg Bornemann
71d011d35a Fix QT_ADDITIONAL_(HOST_)PACKAGES_PREFIX_PATH environment variables
Except on Windows, the values in CMake environment variables that
contain path lists are separated by colons, not semicolons.  See
documentation of CMAKE_PREFIX_PATH.

This is necessary for conan's virtualenv generator which sets these
environment variables with native list separators.

This amends commit e044c94a61.

Pick-to: 6.2 6.3
Task-number: QTBUG-94524
Change-Id: I7f3d140a8462347b181f1d9601fd11cc1ba449db
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-02-23 17:06:20 +01:00
Alexandru Croitor
56abd7e4e0 CMake: Fix exclusion of QtFoo in QtBarDepends for 3rd party libs
When configuring a static Qt with the -qt-zlib option and the build
system creates a 3rd party header module QtZlib, syncqt
does not generate a QtZlib header file that would include all its
public headers.

Then when the QtSvgDepends header is generated, it would add an
 #include <QtZlib> which would break compilation of the QtSvg PCH
file (which compiles QtSvgDepends).

We have logic to exclude addition of headers from regular 3rd party
static libraries, but not header only 3rd party libraries.

Adjust the code to handle header-only 3rd party libraries, as well as
make sure it works across repos by exporting the relevant properties.

As a drive-by, also rename and export some other informational
properties.

Amends af00402d64
Amends 6fdeaea24f
Amends be2745e478

Pick-to: 6.2 6.3
Change-Id: I087f50b193dd845e4a5ec906e8851d63122faf80
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-02-23 15:17:42 +01:00
Andreas Buhr
2f6faca901 Add tests to QAbstractItemModelTester checking only one change in flight
This patch adds checks to QAbstractItemModelTester checking
that only one change is in flight at a time.

Change-Id: I15fe1ad1274649aa652ed6489a889df72c8a8292
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-02-23 14:42:27 +01:00
Eike Ziller
3ab49ee040 MimeDatabase::mimeTypeForFileNameAndData: Do not open file unnecessarily
If the file extension already matches uniquely, we do not need to do any
actual file operation.

Pick-to: 6.3
Change-Id: Ide8b82eefbcd13348b78b28b66230a91e1e3c5d8
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-23 08:44:23 +01:00
Thiago Macieira
fa2830dc6e qHash: fix running on CPUs without AVX2
The extra "V" accidentally enabled AVX2 code in the aeshash128()
function.

Fixes: QTBUG-101082
Change-Id: Ibf4acec0f166495998f7fffd16d63e220dbe02d0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-02-22 22:31:38 -08:00
Lorn Potter
af36dc7d76 wasm: move user configurable settings
Both INITIAL_MEMORY and PTHREAD_POOL_SIZE are settings users can
change, they are not interface settings.

Fixes: QTBUG-100693
Pick-to: 6.3 6.2
Change-Id: Ie1547c7f52c9fe109a313260616705728024b6b8
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: David Skoland <david.skoland@qt.io>
2022-02-23 12:04:37 +10:00
Sona Kurazyan
196e10bce4 Fix formatting in qbytearrayalgorithms.h
Pick-to: 6.3
Change-Id: I1ff15049e73b8ce02101b5d84b2ac02d5fb69abb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-23 02:39:14 +01:00
Giuseppe D'Angelo
8123a69e6e QRegularExpression: print the pattern when warning
Just as a minor debugging helper: when warning that an invalid
regular expression object is being used to match, also print
the used regular expression pattern.

Change-Id: I0f99bcf4ca87ec67d04ed91d9dc315814f56d392
Fixes: QTBUG-76670
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-22 21:15:31 +01:00
Marc Mutz
b727f2190f Protect headers against min/max macros
... using the usual pattern, which, being idiomatic, doesn't need a
comment explaining it.

Pick-to: 6.3
Change-Id: Id6b12450495a18f89e1f83f2018b6218b03ff6a7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-22 20:12:29 +00:00
Marc Mutz
a87edb9ae9 QStringEncoder/Decoder: make base class ctors protected
Base class dtors should either be public and virtual or else
non-virtual and protected. We don't need polymorphy, so make them
protected.

Because ~QStringConverter is now user-declared, the move special
member functions are suppressed. Re-add them using = default.

[ChangeLog][QtCore][Potentially Source-Incompatible Changes]
[QStringEncoder/Decoder] The destructors of the base classes of
QStringEncoder and QStringDecoder are now protected, to prevent
slicing.

Change-Id: I72cc5b98af1a6533a46080b537e1900808e1f130
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-02-22 21:12:29 +01:00
Alexey Edelev
d10bbc2e6a Convert Android paths to JSON compatible
Convert paths in the QT_ANDROID_EXTRA_PLUGINS and QT_ANDROID_EXTRA_LIBS
target properties to a JSON compatible, when generating deployment
settings using finalizers in user projects.

Pick-to: 6.3
Change-Id: I8878435d69688c21e44b22339dc84495b9cea5eb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-02-22 21:12:27 +01:00
Sona Kurazyan
9c35ab1cc2 Make QByteArrayView's numeric conversion methods inline
Make the implementations of these methods free functions in the
QtPrivate namespace, so that they can be called also from
QByteArrayView's corresponding inline methods.

These methods were added in 6.3, so we can still make them inline
without breaking BC.

Fixes: QTBUG-101077
Pick-to: 6.3
Change-Id: Id50c6d4df5471127ae787a544a5651ced9aece99
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-02-22 19:23:39 +01:00
Viktor Arvidsson
cfe421cee2 Windows QPA: Calculate window frame for frameless windows the same for all code paths
When we add the WS_THICKFRAME/WS_CAPTION window flags to a
frameless window the return value of AdjustWindowRectEx is no
longer 0. This works fine when creating the window since the version
of QWindowsGeometryHint::frame used during creation checks the
FramelessWindowHint, however later when the window changes
screen, the screen change code checks the fullFrameMargins which
uses a version of QWindowsGeometryHint::frame that does not
early out, causing a missmatch in the geometries of the backing
store and platform window.

This fixes aero snapping shortcuts for frameless windows on multi
monitor setups.

Fixes: QTBUG-84466
Pick-to: 6.2 6.3
Change-Id: I2357ea32669e4676645549996a3ac6073f3df15c
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
2022-02-22 18:03:11 +00:00
Joerg Bornemann
d48609a9c4 CMake: Add INSTALL_DIR argument to qt_internal_add_app
Add the possibility to install a Qt app into a directory different from
${INSTALL_BINDIR}.

If INSTALL_DIR is not specified, qt_internal_add_app still installs to
${INSTALL_BINDIR}.

Pick-to: 6.2 6.3
Task-number: QTBUG-99295
Task-number: QTBUG-100047
Change-Id: I52371aa0f770d80c32bb0b3442ce3c463916be63
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-02-22 18:37:48 +01:00
Marc Mutz
330f2132ca QStringEncoder/Decoder: add missing noexcept
The interesting part is what cannot be noexcept:

- nameForEncoding() and ctor from Encoding: because they don't handle
  all valid values of type Encoding, so have a narrow contract

- encodingForHtml(): because it allocates memory (→ QTBUG-101046)

Change-Id: I30cdc19a32537be047e43955e3337e4d6ccc363f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-02-22 18:16:24 +01:00
Alexey Edelev
4b8bc8b5bb Make android function sequence mutable
When building Qt itself or Qt standalone tests (but not user projects),
qt6_android_add_apk_target and qt6_android_generate_deployment_setting
can now be called at any time after the Android executable target is
created.

Note: Because we're now using genexes when we build Qt as described
above, Qt developers are required to use Unix-style paths for the
following target properties:
    QT_QML_IMPORT_PATH
    QT_QML_ROOT_PATH
    QT_ANDROID_PACKAGE_SOURCE_DIR

Pick-to: 6.3
Fixes: QTBUG-100796
Change-Id: Ida788f0d58bc0c028a89eed9d115babe27144325
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-02-22 17:22:59 +01:00
Andreas Buhr
1ba56134f5 Repair some of tst_qtableview tests on Android
The view.resize() command has no effect if the requested
size is smaller than the screen. So the view has space for
the whole model. It then won't scroll, so scrolling cannot
be tested.
This patch enlarges the model so that scrolling is always
necessary and thus possible.

Task-number: QTBUG-87407
Pick-to: 6.2 6.3
Change-Id: Ibff512158d9c16be120a69c7328b6d0ae2c3b551
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-02-22 17:22:59 +01:00
Andreas Buhr
b39d3cfe30 Activate all tst_qgridlayout tests on Android
Some tests were blacklisted, but the problems cannot be reproduced
any more. This patch activates them.

Fixes: QTBUG-87404
Pick-to: 6.2 6.3
Change-Id: I5944c750a5717daaf43a22d6d1fa51ae54fc3da2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-02-22 17:22:59 +01:00
Andreas Buhr
9e7a5bb513 Activate tst_qopenglwidget for Android
tst_qopenglwidget was disabled because it crashed.
It does not any more.

Task-number: QTBUG-87671
Pick-to: 6.2 6.3
Change-Id: I7ea55f262f362c098b52e1b1a319b26c31a7e067
Reviewed-by: Pekka Gehör <pekka.gehor@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-02-22 17:22:58 +01:00
Andreas Buhr
1ae662cad0 Activate tst_qdom for Android
tst_qdom was disabled because it crashed. It does not any more.

Task-number: QTBUG-87671
Pick-to: 6.2 6.3
Change-Id: I41117938fe9d93b510c4a60beb4c2f5b20991434
Reviewed-by: Pekka Gehör <pekka.gehor@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-02-22 17:22:58 +01:00
Andy Shaw
baa2d09d0d SQLite: Update SQLite to v3.37.2
Fixes: QTBUG-100907
Pick-to: 6.2 6.3 5.15
Change-Id: I6e31b2ba19443ed6554a343423dcfd2ca6d0ac2f
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-02-22 15:44:48 +01:00
Shawn Rutledge
c5792dcfd6 Make QGuiApplicationPrivate::lastCursorPosition.toPoint() safe to use
QGuiApplicationPrivate::lastCursorPosition is initialized with qInf();
so before Qt has seen a mouse move event, attempting to convert to
QPoint is an error. It's best to have one place where we do the qIsInf()
check rather than several (and otherwise prefer using the QPointF as-is
rather than converting to QPoint at all).

Introduce a helper class that contains a QPointF, and provides a safe
conversion to QPoint, as well as simple accessors for clients using
QPointF.

Fixes: QTBUG-52472
Task-number: QTBUG-45045
Change-Id: I83fad1bfb658e03fa876344552f1d5bb751d9f81
Pick-to: 6.2 6.3
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2022-02-22 14:48:38 +01:00
Volker Hilsheimer
29a7489769 Always include qt_windows header first
qt_windows takes care of setting NOMINMAX, which prevents native headers
from defining `min` and `max` as macros, breaking the build. So include
that header always as the first header.

Pick-to: 6.3
Change-Id: I82cd8b21d263102000e6e66f135465bc2c126db4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2022-02-22 14:48:38 +01:00
Marc Mutz
66203133e3 QStringConverter: make explicit what should never have been implicit
As a drive-by, remove the GCC 7 constexpr work-around.

[ChangeLog][Potentially Source-Incompatible Changes]
All QStringEncoder/Decoder constructors are now explicit.

Change-Id: I0972e2736115993d44a48e73dbf4b08a1c94bef2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-22 12:20:15 +00:00
Friedemann Kleint
9ddc020246 Stabilize tst_QTabBar::hoverTab()
Port the test to use the QWindow* based overloads of QTest::mouseMove()
and move the cursor away.

Pick-to: 6.3
Task-number: QTBUG-98489
Change-Id: Id1ac0ef176c6f9bf179f989ddd5775877525fc0d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-02-22 07:55:30 +01:00
Marc Mutz
87c6e340a9 QStringConverter: fix move special member functions of State class
By copying 'd' instead of the (larger, on 32-bit platforms),
state_data variadic member, we may corrupt the state (by copying only
half the state).

Fix by copying state_data instead, which is guaranteed to be the
larger of the two.

The move-assignment operator must be self-assignment-safe in the
moved-from state (Hinnant Criterion), so we need to use memmove(), not
memcpy().

[ChangeLog][QtCore][QStringEncoder/Decoder] Fixed a potential data
corruption in the move constructor and move-assignment operator on
32-bit platforms.

Pick-to: 6.3 6.2
Change-Id: I7bbc475a6eecec618a011b23814cada35ce61d10
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-02-21 23:20:18 +01:00
Edward Welbourne
dcd87049bb Treat invalid Q(Date)?Time as null when used as an SQL value
In Qt 5, QVariant::isNull() was true when the contained object had an
isNull() that was true; this is no longer true in Qt 6, so we now have
QSqlResultPrivate::isVariantNull() to test is-or-contains
null. However, for date-times, QSqlDriver::formatValue() treats
invalid QDateTime as NULL, since it needs its toString(Qt::ISODate),
which will be empty if invalid. As QDateTime's isValid() is more
stringent than its !isNull(), this can lead to one that's neither
valid nor null, such as QDateTime(QDate(), QTime(0, 0)), producing an
invalid entry in a database.

Do the same for QTime, as its isValid() is more stringent than
!isNull(), and its toString() likewise returns empty on invalid
(although it's not clear it's possible to construct one that's neither
valid nor null). For QDate valid and null are simply complementary.

[ChangeLog][QSql] Handling of QDateTime and QTime values passed to SQL
now consistently treats invalid as null. Some values of these types
are neither valid nor null, which could lead to invalid data being
given to the SQL database. Invalid values are now treated as null to
prevent this.

Task-number: QTBUG-98471
Pick-to: 6.3
Change-Id: I145411280d6bcc53dc0dc5f4a1cb938d995fd6bc
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-02-21 20:37:28 +01:00
Tim Blechmann
d2ceb2e353 cmake: avoid unused parameters in cmake tests
unused parameters in cmake tests cause the tests to fail when the
project is configured with `-Werror,-Wunused-parameter`

Change-Id: If3065d008753a7718282dfc6ba0d79d46576cb34
Pick-to: 6.2 6.3
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-02-22 02:02:48 +08:00
Piotr Srebrny
8761078629 Remove unused variable which causes compiler error
Pick-to: 6.2 6.3
Change-Id: I87348370d10d2047e8fa861d7675bc0cd3db080b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2022-02-21 18:02:48 +00:00
Kai Köhne
f9880e5c8f Do not warn about qtnamespacemacros.h header in syncqt
Fixes syncqt warning:

  -- Running syncqt for module: 'QtCore'
  QtCore: WARNING: C:/Users/qt/work/qt/qtbase/src/corelib/global/qtnamespacemacros.h does not include QT_BEGIN_NAMESPACE

Change-Id: I8ad8b0b7faf8bc1643103cafcd12cd2990980a0b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-02-21 15:34:31 +01:00
Michal Klocek
b82061688d Add missing zconf.h
Zlib headers includes also configuration header, this should be also
installed.

This commit amends be2745e478

Fixes: QTBUG-101065
Change-Id: Ide8a59258469fa793966f636ee54f18211ed8fd6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-02-21 14:52:35 +01:00
Mårten Nordheim
b1d8fb3279 3rdparty: Update double-conversion
The old patch is removed but another was needed to fix a warning from
MSVC about truncation which is taken from
e634f265db5d296bd7a780f9813d6b8573f5bd90 in the master branch.

Since there is no other changes to the double-conversion directory
between 3.2.0 and that change we are essentially using that commit
directly.

Pick-to: 6.3
Fixes: QTBUG-100988
Change-Id: Ia69f39f61ef989907fdf097f897bece0b3af7194
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2022-02-21 14:52:35 +01:00
Alexandru Croitor
04f49e6881 CMake: Clean up qt_deploy_qt_conf for 6.3
Ensure both versioned and versionless functions
are available.
Document that the first argument should be an absolute path
and check that in the code.
Move the low-level warning to the top, after the TP message.
Use a few more options in the doc snippet.
Mention what the default values are.

Pick-to: 6.3
Fixes: QTBUG-100922
Change-Id: I0d852733e51750f4c8f15721b707cb1d27dfee9a
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-02-21 14:07:52 +01:00
Alexandru Croitor
2305656a4e CMake: Clean up qt_generate_deploy_app_script for 6.3
Mention in the docs that qt_generate_deploy_app_script does not
currently support cross-build scenarios.

Use the value of QT_DEPLOY_BIN_DIR instead of CMAKE_INSTALL_PREFIX
in the qt_deploy_runtime_dependencies call done by
qt6_generate_deploy_app_script. This matches what we say to do in the
documentation of qt_deploy_runtime_dependencies.

Pick-to: 6.3
Task-number: QTBUG-98545
Fixes: QTBUG-100921
Change-Id: Ie9bfddeaf503d3efe7a73b2e4148bbf0601d693e
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-02-21 14:07:51 +01:00
Joerg Bornemann
95457ba8e7 qmake: Enforce linker response files for WebAssembly on Windows
Set QMAKE_REPONSEFILE_THRESHOLD to 1 in the WebAssembly mkspec to
enforce the usage of linker response files.  This fixes "The command
line is too long." errors when linking user projects that depend on many
libraries, for example projects using QtQuickControls2.

Pick-to: 6.2 6.3
Fixes: QTBUG-100559
Change-Id: I2f03f0756c9f171bc7382940fa0f8079bdb75a00
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-02-21 12:37:19 +01:00
Joerg Bornemann
1d3b190425 qmake: Fix overlong command lines for static Qt builds on Windows
Linker response files for the MinGW and Unix makefile generators are
controlled by the variable QMAKE_LINK_OBJECT_MAX.  This variable holds a
number.  If the number of object files passed to the linker exceeds this
number, a linker response file containing object file paths is created.

This heuristic is extremely imprecise.  It doesn't take into account the
length of object file names nor the length of $$OBJECTS_DIR.

Also, when using a static Qt, a big part of the linker command line are
libraries.  A relatively small example can fail to link with "The
command line is too long" on Windows, even with the object files being
in a response file.

The MinGW makefile generator already reads the variable
QMAKE_RESPONSEFILE_THRESHOLD for compiler response files.  Re-use this
variable for the linker response file of the Unix and MinGW makefile
generators.

If QMAKE_RESPONSEFILE_THRESHOLD is set, use it to determine whether to
create a response file.  QMAKE_LINK_OBJECT_MAX is then ignored.  The
response file contains objects and libraries.

If QMAKE_RESPONSEFILE_THRESHOLD is not set, use QMAKE_LINK_OBJECT_MAX to
determine whether to create a response file.  The response file contains
only object files.

QMAKE_LINK_OBJECT_SCRIPT is used in both cases to specify a common base
name of all linker response files.

Pick-to: 6.2 6.3
Task-number: QTBUG-100559
Change-Id: I3c78354fa5ebb1a86438ec804679e0ee776c3f49
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2022-02-21 12:37:19 +01:00
Thiago Macieira
5731b83445 tst_qlogging (tst_qmessagehandler): use one line for output and expected
Makes it easier to interpret the output from the test, because of
embedded newlines.

Pick-to: 6.3
Change-Id: Ic15405335d804bdea761fffd16d4f141e09537f4
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-02-20 23:32:26 -08:00
Thiago Macieira
43a171a7d6 tst_qlogging (tst_qmessagehandler): use QProcessEnvironment
Simplifies the code. And removes the unnecessary quote around the
pattern that was there, for some reason.

Pick-to: 6.3
Change-Id: Ic15405335d804bdea761fffd16d4f135edf6993b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-02-20 23:32:20 -08:00
Thiago Macieira
4be85491e0 QHash: split the x86 AES hash into three separate functions
Instead of performing decisions inside the single aeshash() function, we
have three implementations instead. Those decisions are permanent for
each CPU, so the branch predictor should be pretty good, but hashing is
somewhat performance-sensitive.

We're only adding three of the four possible combinations of AVX512VL
and VAES. Excluded from the implementation are the CPUs that support
AVX512 but not VAES, which are the Skylake-based ones. Those are mostly
found in server CPUs (Intel Xeon Scalable line) as well as top-end
workstations (Intel Core i9), but never made into general desktop and
laptop parts. For those, the performance will remain what it was in Qt
6.3.

VAES is supported in Intel architectures codenamed Sunny Cove and
Gracemont and their successors. That means it's supported in both the E
and P cores of the Intel Alder Lake (12th Generation Core), as well as
future Atom lines. But neither Atoms nor hybrid CPUS have AVX512 (at
least when the E cores are active).

AVX512+VAES is supported for Ice Lake (10th Generation Core), Tiger Lake
(11th) as well as later generation with AVX512 support enabled. Like in
qstring.cpp, we restricted ourselves to 256-bit operations, which don't
cause performance impact and because the 512-bit VAESENC operates on the
fused Ports 0 and 1, so it has the exact same throughput as two 256-bit
VAESENC.

Change-Id: I6fcda969a9e9427198bffffd16cece9c37dbdbd3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2022-02-20 16:53:31 -08:00