qmetatype.h: remove unnecessary EXPORT macro

It was introduced in commit d9f9bc9bad for
Qt 6.0 to avoid extern __declspec(dllexport), which MSVC doesn't like,
but was made obsolete by commit 77b99e8111
that removed the extern templates altogether for MSVC.

This change is NOT a no-op because Q_CORE_EXPORT expands to
Q_DECL_IMPORT which is __attribute__((visibility("default"))) on ELF
platforms. That's actually a good thing, because the symbol is not
defined in any library that is not called QtCore anyway. GCC and Linux
are also going towards properly requiring imported symbols to be
explicitly marked, which this is.

Task-number: QTBUG-93471
Pick-to: 6.3 6.4
Change-Id: Id0fb9ab0089845ee8843fffd16f99616883281e3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
bb10
Thiago Macieira 2022-06-17 19:29:21 -07:00
parent 8726647df4
commit 97fbf7d151
1 changed files with 2 additions and 9 deletions

View File

@ -2377,14 +2377,8 @@ public:
*/
#if !defined(QT_BOOTSTRAPPED) && !defined(Q_CC_MSVC)
#if !defined(QT_BUILD_CORE_LIB)
#define QT_METATYPE_TEMPLATE_EXPORT Q_CORE_EXPORT
#else
#define QT_METATYPE_TEMPLATE_EXPORT
#endif
#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER(TypeName, Id, Name) \
extern template class QT_METATYPE_TEMPLATE_EXPORT QMetaTypeForType<Name>;
#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER(TypeName, Id, Name) \
extern template class Q_CORE_EXPORT QMetaTypeForType<Name>;
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wattributes") // false positive because of QMetaTypeForType<void>
QT_FOR_EACH_STATIC_PRIMITIVE_TYPE(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
@ -2394,7 +2388,6 @@ QT_FOR_EACH_STATIC_CORE_CLASS(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
QT_FOR_EACH_STATIC_CORE_POINTER(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
QT_FOR_EACH_STATIC_CORE_TEMPLATE(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
#undef QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER
#undef QT_METATYPE_TEMPLATE_EXPORT
#endif
template<typename T>