qt5base-lts/tests/auto/corelib/kernel
Thiago Macieira 6234182d82 QMetaType: don't use global relocations to the lambdas and structures
The way the Qt 6.0 QMetaTypeInterface was designed, using a static
inline variable in a template, would normally require the linker and
dynamic linker to merge all copies and choose a single copy as the
official one. But because of hidden visibility and of Windows DLLs,
QMetaType already copes with multiple copies NOT getting merged. So we
may as well ask the linkers not to bother and use simpler, local
relocations to find those symbols.

They are all supposed to still be equivalent and it's an ODR violation
if they're not.

The Apple ld64 linker complains if you use this type of global
relocation:

 ld: warning: direct access in function
  [...]
   to global weak symbol
   'QtPrivate::QMetaTypeInterfaceWrapper<int>::metaType'

Fixes: QTBUG-93471
Pick-to: 6.3 6.4
Change-Id: Id0fb9ab0089845ee8843fffd16f98a10aa719434
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-08-12 11:32:29 -07:00
..
qapplicationstatic Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qcoreapplication Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qdeadlinetimer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qelapsedtimer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qeventdispatcher Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qeventloop Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qjnienvironment Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qjniobject Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qjnitypes Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmath Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetacontainer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetaenum Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetamethod Remove assertion from ownMethodIndex that breaks tests 2022-08-10 00:48:31 +02:00
qmetaobject Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetaobjectbuilder Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetaproperty Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qmetatype QMetaType: don't use global relocations to the lambdas and structures 2022-08-12 11:32:29 -07:00
qmimedata Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qobject Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qpointer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qproperty Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsharedmemory Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsignalblocker Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsignalmapper Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsocketnotifier Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qsystemsemaphore Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qtimer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qtranslator Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qvariant Add license headers to cmake files 2022-08-03 17:14:55 +02:00
qwineventnotifier Add license headers to cmake files 2022-08-03 17:14:55 +02:00
CMakeLists.txt Add license headers to cmake files 2022-08-03 17:14:55 +02:00