summaryrefslogtreecommitdiffstats
path: root/src/3rdparty
Commit message (Collapse)AuthorAgeFilesLines
* md4c: Fix MSVC compiler level 3 warningsKai Köhne10 days2-4/+44
| | | | | | | | | | | Fix various C4244 warnings with the MSVC compiler for 64 bit Proposed upstream fix: https://github.com/mity/md4c/pull/162 for an upstream fix, Pick-to: 6.1 6.2 Change-Id: I2ac1c17febb4fb269ac7244458f4cd90ce8b8e49 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Update md4c to 0.4.8Kai Köhne10 days2-28/+67
| | | | | | Pick-to: 6.1 6.2 5.15 Change-Id: Ib0e1ef259696aa380aba0819aa4e1d8a12b4a21d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix license information for libjpeg-turboKai Köhne2021-06-044-15/+65
| | | | | | | | | | | | | Fix the license metadata in that libjpeg contains parts under three different bsd-like licenses. Also, do include the IJG, zlib license texts in the metadata. [ChangeLog][Third-Party Code] Clarified that libjpeg-turbo is actually covered by three licenses, not only IJG. Pick-to: 6.1 6.0 Change-Id: I6c4e3e8577bdf83e7e73474b34b0553cbe1d9b6d Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* blake2: Fix MSVC warning C4804Kai Köhne2021-05-312-4/+4
| | | | | | Pick-to: 6.1 Change-Id: I392da957b9cc84f55bb8eaeb888ca5dd35ec36f2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PCRE2: upgrade to 10.37Giuseppe D'Angelo2021-05-3114-179/+973
| | | | | | | | | New upstream release. Change-Id: I3a7e6c3d6706c940c0a279e4b63e1bfd96cc242c Pick-to: 6.1 5.15 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Attributions: Don't mention QT_CRYPTOGRAPHICHASH_ONLY_SHA1Mårten Nordheim2021-05-232-2/+2
| | | | | | | | | | It's only meant for bootstrap builds. Considering that SHA1 is deprecated by NIST we should not artificially limit ourselves to using only that. Task-number: QTBUG-93838 Change-Id: Ib779ad4e4349cfdc71d797eb3ba5ccfb7747e933 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Granularily disable PCRE2 JIT on macOS ARMTor Arne Vestbø2021-05-191-4/+3
| | | | | | | | | | | | | | 2f8df4d1a87df9dd67913b016171dac20839d16e disabled the PCRE2 JIT on macOS for ARM, but did so based on the build system architecture configure test. When doing a universal build these configure tests are based on the primary architecture (x86_64 in our case), which means we ended up still enabling the JIT. We work around it by passing the PCRE2_DISABLE_JIT define only when building the arm64 slice. Change-Id: I60df82acb57030ccef8b117a40209eb107b1d5bd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Cherry-pick upstream patch for non-gcc/clang/msvc compilersAllan Sandfeld Jensen2021-05-183-4/+15
| | | | | | | | | | Fix build w/ non-GCC-compatible Un*x/Arm compilers Fixes: QTBUG-93779 Change-Id: Ib52e9ded6e2814c7998d6cd798e945da0f87f7a1 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 4341f6763b8a737ebc07bb78ead22bc05a1a515b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* SQLite: Update SQLite to v3.35.5Andy Shaw2021-05-093-94/+187
| | | | | | | | | [ChangeLog][QtSQL][SQLite] Updated SQLite to v3.35.5 Pick-to: 6.1 5.15 5.12 Change-Id: I7e1f5a4b6eb48d9f6105d7f08b35a2c62fc79660 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Update bundled libjpeg-turbo to version 2.1.0Eirik Aavitsland2021-05-0539-667/+1079
| | | | | | | | | [ChangeLog][Third-Party Code] libjpeg-turbo was updated to version 2.1.0 Pick-to: 6.1 6.0 5.15 5.12 Change-Id: I82a58609120923c18f6031fec7d597138ec473ee Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Simplify bundled libjpeg buildEirik Aavitsland2021-05-053-1/+1
| | | | | | | | | | | | Move the config headers of the bundled libjpeg back into its source directory, where they originally live, to avoid having to trick with the include path to find them. The goal is unification across maintained Qt branches, making version updates simpler. Pick-to: 6.1 6.0 5.15 5.12 Change-Id: I5b574446bbd264b0a1cb3efceb4c1cb7203cac7d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* zlib: Disable MSVC warning C4267Kai Köhne2021-04-262-1/+5
| | | | | | Pick-to: 6.1 Change-Id: Ifc51c1847841bb7172f79067facf0c7e425a042b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* CMake: Introduce zlib find script to work around hardcoded iOS SDKAlexandru Croitor2021-04-192-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Xcode allows building a project targeting either the device or simulator sysroot in one single build dir, but for the sysroot switching to work there should be no linker or compiler flags referencing absolute paths of a specific sysroot. During CMake configuration of a project targeting iOS, all found system libraries will be within one single sysroot, either the device one or the simulator one, whichever one was passed to CMAKE_OSX_SYSROOT. CMake will then generate the Xcode project and pass those absolute paths, which makes sysroot switching within Xcode not work. To avoid that, the CMake documentation recommends passing linker and framework flags of the form '-lfoo' and '-framework bar' instead of absolute paths. Xcode then takes care of setting the correct framework search path. Zlib is one of the libraries found in the iOS sysroot and thus passed as absolute path. To avoid that, create a new FindWrapZLIB find script. The target it creates will pass the absolute path to the library on non Apple platforms and an -lz linker flag on Apple platforms (macOS and iOS). To avoid issues with target global promotion when system PNG package is found, ensure that a found ZLIB::ZLIB target is promoted to global manually in src/gui/configure.cmake. Pick-to: 6.1 Change-Id: I8bd8649be4f680a331ad51925f27cb9d13ac5e5f Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Android: Bump gradle (plugin) versionsMike Achtelik2021-04-105-42/+60
| | | | | | | | | | | | | | | | | | | Android Gradle plugin 4.1.3 is compatible with the new <queries> declaration for package visibility on Android 11. If someone adds the <queries> element or starts relying on a library or SDK that supports targeting Android 11, they might encounter manifest merging errors when building the app. This is important since starting August 2021 the PlayStore requires new apps from targeting Android 11. So lets update to the newest Android Gradle plugin version. This also reverts 1e4dec12d5c0152d5c3eee3b612a0af4bf389a37 as AGP 4.1 requires at least buildToolsVersion 29.0.2. Change-Id: Id8ce5dadeb8a325dc9f901503946f325f3fd18a0 Reviewed-by: Lars Schmertmann <lars.schmertmann@governikus.de> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Update to Harfbuzz 2.8.0Eskil Abrahamsen Blomfeldt2021-04-06245-15037/+23386
| | | | | | | | | | | | This updates Harfbuzz to the latest version and also adds an import script to help with this work in the future. Task-number: QTBUG-90217 Pick-to: 6.1 Change-Id: I23eae7b7bbbd5001df9873e4784a0c4213de5508 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* SQLite: Update to 3.35.2Andy Shaw2021-03-203-4599/+7020
| | | | | | | | [ChangeLog][QtSQL][SQLite] Updated SQLite to v3.35.2 Pick-to: 6.1 6.0 5.15 5.12 Change-Id: I1e784627d7ed3a226acfbb28d8379d4c69f91a84 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Make Platform a dependency for all Qt internal targetsAlexandru Croitor2021-03-191-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | In particular that influences BundledLibrary targets. Most internal targets already depended transitively on Qt::Platform via Qt::Core as a public dependency. This was not the case for BundledLibrary targets which don't link to Qt::Core. This led to compilation issues in user projects when targeting WebAssembly, due to mismatched flags between a bundled Harfbuzz vs a user project. Probably other subtle issues as well (e.g. none of the Windows specific compile definitions were passed to bundled libs). Bundled libraries depend on PlatformCommonInternal already, so make PlatformCommonInternal turn depend on the public Platform target. I thought that was already the case, but we merely relied on the Qt::Core dependency. Note that Qt::Core should still list Platform as a public dependency, so it gets propagated to user projects. Amends acf9b3a68b98b806329dd92184e632e049441cec Change-Id: Ida3b219818f89ec6eba2c2d92c5db65ad56bc5a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* MSVC: Build harfbuzz with -Zc:__cplusplus -permissive-Kai Köhne2021-03-171-0/+1
| | | | | | | | | | harfbuzz includes QtCore/qatomic.h. But the Qt headers are expected to be compiled with -Zc:__cplusplus. Change-Id: I28847844e9a00f2b7c84f0d5d7d3257eb22e2e8e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Update bundled libjpeg-turbo to version 2.0.6Eirik Aavitsland2021-03-0426-150/+235
| | | | | | | | [ChangeLog][Third-Party Code] libjpeg-turbo was updated to version 2.0.6 Pick-to: 6.1 6.0 5.15 5.12 Change-Id: I3e308d241853edf3c1d616955cda203220a258d8 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix attribution for tinycborKai Köhne2021-02-151-1/+1
| | | | | | | | Amends cbdf2ba46aed53d002b90d4d9683c28306f8e0a9 Pick-to: 6.1 Change-Id: Ie1a89ec9367ecc2d674b5f8b27ab3d9bc5a16eca Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Fix compilation with system double-conversionMårten Nordheim2021-02-1220-0/+0
| | | | | | | | | | | | | | A recent patch made it so we don't need to keep patching the includes of the sources. However it changed how we use double-conversion ourselves which meant that system installs would no longer work. Keeping an extra directory and adding another INCLUDE_DIRECTORY fixes both of our problems. Amends dca74b45a33de3ec098b936b087a112c7112241b Fixes: QTBUG-90961 Change-Id: If17aa1670535867343374eec846055441592f36b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Use the double-conversion sources without rearrangementEdward Welbourne2021-02-0321-361/+39
| | | | | | | | | This simplifies the include path addition we need when compiling and eliminates the need to rewrite all the #include lines on update. Change-Id: I14e301d277f1eb49286721b012559f0ec84ea520 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix duplicate symbols warnings in bundled freetypeJoerg Bornemann2021-02-011-11/+0
| | | | | | | | | | Some of the listed source files are already included and must not be compiled. Pick-to: 6.0 Fixes: QTBUG-90777 Change-Id: I80b4ca6a50b882445aca513d800ef8375070d786 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Update double-conversion library to current masterEdward Welbourne2021-02-0123-1666/+2265
| | | | | | | | | | | | | | | | | | | | | | Turned our local diffs into a side-branch in the upstream repo, got material changes upstreamed (leaving only our #include changes), rebased it to master, copied back to our version. Upstream has made no new release since 3.1.5 in 2019 May, but there is substantial change since then, including acceptance of our upstreaming. Our patches have been refined in the process of upstreaming. The list of source files is slightly changed. The double-conversion.* files are split in two, string-to-double.* and double-to-string.*, but the old double-conversion.h header is retained, simply pulling in its two halves. These thus need to be present in the include directory. Changed the patches/ directory to be in git format-patch form, for sending or applying to the upstream repo, before copying files into the qtbase source tree. This should make future upstreaming easier. Task-number: QTBUG-90214 Change-Id: Id94198f58ef7bdf02af117c35cb9678b5c34ac0e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Update TinyCBORThiago Macieira2021-01-2211-48/+114
| | | | | | | | | | | Updated to commit e6a4fa4862bcc3a6f6b07cf9d9b784d0ab6068b4. Pick-to: 6.0 Fixes: QTBUG-89650 Task-number: QTBUG-90214 Change-Id: I6edce5101800424a8093fffd15cdf6591cbf809d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* SQLite: Update to 3.34.0Andy Shaw2021-01-213-730/+2030
| | | | | | | | | [ChangeLog][QtSQL][SQLite] Updated to 3.34.0 Fixes: QTBUG-90226 Pick-to: 6.0 5.15 Change-Id: I2a489bec1fee2bdee7ea474094ca3db308699753 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* vkmemalloc: Silence clang warning about unused member varLaszlo Agocs2021-01-192-3/+43
| | | | | Change-Id: Id968fd2302e3ff7b4d1a20cd8dd1f4d789588511 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add "Q_UNUSED" to (3rdparty) strtod.cc for a 32 bit code pathAndrei Golubev2021-01-172-0/+23
| | | | | | | | | | Accidentally stepped on this thing. Cannot build Qt Core on 32-bit Ubuntu 16 without this patch. Fixes: QTBUG-90354 Pick-to: 6.0 5.15 Change-Id: Iab5b2a317ee18b537b416eff008db29932fc043b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Update vkmemalloc to 2.3.0Laszlo Agocs2021-01-159-1169/+2292
| | | | | | Task-number: QTBUG-90219 Change-Id: I382f59edbc869fd4f3557411264f290e9fd5dee5 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Remove .prev_CMakeLists.txt filesJoerg Bornemann2021-01-122-237/+0
| | | | | | | | | | Those serve no purpose anymore, now that the .pro files are gone. Task-number: QTBUG-88742 Change-Id: I39943327b8c9871785b58e9973e4e7602371793e Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-0716-572/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Upgrade md4c to 0.4.7Giuseppe D'Angelo2021-01-044-86/+131
| | | | | | Change-Id: I9400c2df13c30fb0bc14728a0c44851c2d1e9079 Pick-to: 6.0 5.15 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Replace QtTest headers with QTestDavid Skoland2020-12-224-4/+5
| | | | | | | | | | | Complete search and replace of QtTest and QtTest/QtTest with QTest, as QtTest includes the whole module. Replace all such instances with correct header includes. See Jira task for more discussion. Fixes: QTBUG-88831 Change-Id: I981cfae18a1cabcabcabee376016b086d9d01f44 Pick-to: 6.0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Regenerate projects using pro2cmake one last timeAlexandru Croitor2020-12-102-0/+2
| | | | | | | | | And fix up some wrong qmake project files Pick-to: 6.0 Change-Id: I66cb82aeb9c1419a74df1a650fa78a511ade7443 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* PCRE: update to 10.36Giuseppe D'Angelo2020-12-0734-13242/+4166
| | | | | | | | | | | | Dropped the RTEMS patch (upstream now uses posix_madvise). Drop support for the TILE architecture (dropped by upstream). [ChangeLog][Third-Party Code] PCRE2 has been updated to version 10.36. Pick-to: 6.0 5.15 Change-Id: Idb4467bef0ff520605b8b5d9188b9d67d8e4d0f2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* CMake: Re-generate project files in srcJoerg Bornemann2020-11-301-0/+1
| | | | | | Pick-to: 6.0 Change-Id: I1f5f822d68129490f1a7c495f718aead0b520ca9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Install 3rd party headers and meta for static buildsMichal Klocek2020-11-163-1/+6
| | | | | | | | | | | | | | | | | When doing static builds any project which uses same libraries as qtbase 3rd party libraries will most likely end up in broken binaries, since symbols will be included twice. Moreover, libraries can have different versions. Install 3rd party headers and meta data for: * qtlibpng * qtfreetype * qtharbuzz Pick-to: 5.15 Task-number: QTBUG-87154 Change-Id: I243dff9a12a95af20dee414f55bb762b8d579c81 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update third-party md4c to version 0.4.6Shawn Rutledge2020-11-033-129/+135
| | | | | | | | | | | | If you try to parse markdown containing null characters, it should not crash anymore. [ChangeLog][Third-Party Code] md4c was updated to 0.4.6. Pick-to: 5.15 Fixes: QTBUG-87965 Change-Id: I6e0ac6f4ecb41c0836f22c7a6a2d510102c933c0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Android: disable Gradle caching by defaultAssam Boudjelthia2020-10-291-2/+4
| | | | | | | | | | | If enabled by default, the cache size will grow quickly, especially if multiple different projects are managed every day. Keep the option commented, which can be enabled manually by the user. Pick-to: 5.15.2 Change-Id: I6d4a67f4f1bb3e37b02de7ff4c534ec4d006f9a3 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
* Revert changes in strto(u)ll.c to avoid integer overflowsRobert Loehning2020-10-263-25/+32
| | | | | | | | Found in oss-fuzz issue 26045. Pick-to: 5.12 5.15 Change-Id: Id9eac1b4f67ad9bbe2d92dd69cd03338a6ced74e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix included license text for PCRE2 - Stack-less Just-In-Time CompilerKai Koehne2020-10-251-1/+1
| | | | | | | | | | [ChangeLog][Third-Party Code] Changed license text of "PCRE2 - Stack-less Just-In-Time Compiler" component. The documentation (incorrectly) included the generic PCRE2 license so far. Pick-to: 5.15 5.12 Change-Id: I7b36a640ba83fb6087fe28d77f9435af13f8c84d Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix copyright information for src/3rdparty/xcbKai Koehne2020-10-251-1/+1
| | | | | | | | | | | The new copyright lines are taken from xcb-proto-1.13/COPYING, and xcb-proto-1.13/src/xinput.xml. [ChangeLog][Third-Party] Fixed copyright information for "XCB-XInput". Pick-to: 5.15 Change-Id: I8afa4dab39765b85a015524fe16b085dcfe5a864 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* CVE-2020-15999: Heap buffer overflow in freetypeWerner Lemberg2020-10-201-7/+7
| | | | | | | | | | | | | Manual cherry-pick of fix in freetype: Fix heap buffer overflow (#59308). This is CVE-2020-15999. * src/sfnt/pngshim.c (Load_SBit_Png): Test bitmap size earlier. Pick-to: 5.15 5.12.10 Change-Id: I23824074f134802b3e4f737877d144b59e6b8151 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* sqlite: Upgrade to 3.33.0Andy Shaw2020-10-173-9937/+10673
| | | | | | | | | [ChangeLog][QtSQL][sqlite] Upgraded to v3.33.0 Pick-to: 5.15 Pick-to: 5.12 Change-Id: I379d8c62b449d4c6b04e5154c8c1a86761e5466e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix copyright year of tinycborKai Koehne2020-10-121-1/+1
| | | | | | | | | | [ChangeLog][Third-Party Code] Fix aggregated copyright information of TinyCBOR component to reflect the years in the individual source files. Note that this is not same as the Copyright year in the upstream MIT license text. Pick-to: 5.15 5.12 Change-Id: I238d973d937fbfc3a81627c4c65491fbb5cb3c30 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove workaround for MSVC 2008Allan Sandfeld Jensen2020-09-301-2/+1
| | | | | | | We don't build on platforms without stdint.h Change-Id: Iee9de3e71a7bcae524f2d1377919cf074a713960 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake: Regenerate projects to use new qt_internal_ APIAlexandru Croitor2020-09-236-33/+33
| | | | | | | | | | | Modify special case locations to use the new API as well. Clean up some stale .prev files that are not needed anymore. Clean up some project files that are not used anymore. Task-number: QTBUG-86815 Change-Id: I9947da921f98686023c6bb053dfcc101851276b5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix dead link in thirdparty license documentationKai Koehne2020-09-191-1/+2
| | | | | | | | | | bistream-vera is not a known license for SPDX. Instead use a DejaCode URN. Handling of such URN's is done in a separate patch in qtools. Pick-to: 5.15 Change-Id: I687507ab05d2d377a50dbc0a1037071a9de68341 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Android: remove --no-daemon arg for GradleAssam Boudjelthia2020-09-173-1/+12
| | | | | | | | | | | | | | Allow Gradle builds to run using JVM daemon, this will improve the current build time noticeably for clean builds and hugely for incremental builds. This will bring the Gradle build to comparable speed with a normal Gradle build in Android Studio. Task-number: QTBUG-86674 Pick-to: 5.15 Change-Id: Icc4267223802e4c9350b48099236650c023f868d Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* forkfd/Linux: ask clone() to use the SIGCHLD as the termination signalThiago Macieira2020-09-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because of these lines in the Linux kernel (kernel/fork.c, see [1][3]): if (clone_flags & CLONE_VFORK) trace = PTRACE_EVENT_VFORK; else if (args->exit_signal != SIGCHLD) trace = PTRACE_EVENT_CLONE; else trace = PTRACE_EVENT_FORK; Without CLONE_VFORK (which we can't use), if the exit signal isn't SIGCHLD, the debugger will get a PTRACE_EVENT_CLONE, which makes it think the process we're starting is a thread, not a new process. Both gdb and lldb remain attached to the child and when it later performs an execve(), they get mightily confused. See gdb bug report[5]. The idea of not having an exit_signal was so that no SIGCHLD would be delivered to the parent process in the first place. That way, some misguided SIGCHLD handler (*cough* GLib *cough*) wouldn't reap our processes. Unfortunately, what I didn't realize was that the kernel sends SIGCHLD anyway (see [2][4]), so this defensive measure didn't actually work. Consequently, we can pass SIGCHLD to clone() and get the debuggers working again. [ChangeLog][Linux] Fixed an issue that would cause debugging a Qt application that uses QProcess to confuse both gdb and lldb if the Linux kernel was version 5.4 or higher. Behavior outside of a debugging session was not affected. [1] https://code.woboq.org/linux/linux/kernel/fork.c.html#_do_fork [2] https://code.woboq.org/linux/linux/kernel/signal.c.html#do_notify_parent [3] https://elixir.bootlin.com/linux/v5.8/source/kernel/fork.c#L2432 [4] https://elixir.bootlin.com/linux/v5.8/source/kernel/signal.c#L1925 [5] https://sourceware.org/bugzilla/show_bug.cgi?id=26562 Fixes: QTBUG-86319 Pick-to: 5.15 Change-Id: I2fc68c725ba649218bd9fffd1633863613537d42 Reviewed-by: Dimitrios Apostolou <jimis@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: hjk <hjk@qt.io>