Go to file
Thiago Macieira dbf58407cb QMetaType: extern-template the built-in Core types' QMetaTypeInterface
This *should* make no difference in behavior, it just prevents the
instantiation of the QMetaTypeInterface and all the lambdas used in it
in every compilation unit, with a copy in every library. Now, a simple
function like:

  QMetaType f() { return QMetaType::fromType<int>(); }

produces only a single function, with a reference into QtCore:

_Z1fv:
        movq    _ZN9QtPrivate25QMetaTypeInterfaceWrapperIiE8metaTypeE@GOTPCREL(%rip),%rax
        ret

The code above *does* work on Windows, producing:

_Z1fv:
        movq    __imp__ZN9QtPrivate25QMetaTypeInterfaceWrapperIiE8metaTypeE(%rip), %rax
        ret

However, it breaks the staticMetaObjects' metatype listing, because
getting the address of a __declspec(dllimport) variable is not a
constant expression (it lacks data relocations). So this is disabled on
Windows.

This change also broke the INTEGRITY build. I've simply disabled the
optimization there without attempting to understand why it fails.

Task-number: QTBUG-93471
Pick-to: 6.4
Change-Id: Id0fb9ab0089845ee8843fffd16f97748a00b4d64
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-06-28 15:07:40 -07:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Minor fixes for qt-configure-module 2022-06-27 17:55:19 +02:00
cmake CMake: update the x86 intrinsic checks 2022-06-28 03:28:42 +00:00
coin Adjust documentation build dir for out of source builds 2022-06-27 11:05:23 +00:00
config.tests CMake: update the x86 intrinsic checks 2022-06-28 03:28:42 +00:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Doc: Fix online macros for commercial template 2022-06-21 22:08:34 +00:00
examples Fix typos in docs and comments 2022-06-15 21:31:02 +02:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
libexec Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
LICENSES Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
mkspecs CMake: disable the attempt to force SIMD on iOS simulator builds 2022-06-27 20:28:41 -07:00
qmake Doc: Document QML_IMPORTS_PATH and QMLPATHS 2022-06-27 12:02:47 +00:00
src QMetaType: extern-template the built-in Core types' QMetaTypeInterface 2022-06-28 15:07:40 -07:00
tests qtestlib: exit with error if a test is invoked with unknown data tag 2022-06-28 18:06:33 +02:00
util sanitizer-testrunner: enforce line buffering 2022-06-16 21:04:48 +02:00
.cmake.conf Bump version to 6.5.0 2022-06-06 13:23:59 +03:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore Assume qhelpgenerator in libexec instead of bin 2021-11-08 19:27:32 +01:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
CMakeLists.txt Use REALPATH based check for symbolic links on Windows 2022-01-07 14:31:38 +01:00
conanfile.py Conan: Do not force 'qt_host_path' usage in cross-build context 2022-06-22 18:18:42 +03:00
config_help.txt CMake: update the x86 intrinsic checks 2022-06-28 03:28:42 +00:00
configure Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
configure.bat Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
configure.cmake CMake: update the x86 intrinsic checks 2022-06-28 03:28:42 +00:00
dependencies.yaml Re-add dependencies.yaml now that qt5.git wip/qt6 builds fine 2019-09-18 13:19:31 +02:00
qt_cmdline.cmake C++23/c++2b support 2022-06-08 19:43:34 +02:00
sync.profile Remove deprecated qgl.h from sync.profile 2022-06-11 00:42:13 +02:00