From 781b0856a2362e400954adfa545a8455ecbd31cd Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 17 Jun 2022 19:29:21 -0700 Subject: [PATCH] qmetatype.h: remove unnecessary EXPORT macro It was introduced in commit d9f9bc9bada91e3ec2b6c496d3b2242506ca56bc for Qt 6.0 to avoid extern __declspec(dllexport), which MSVC doesn't like, but was made obsolete by commit 77b99e8111cdd06b4fe12f2e18950a1e40ee2b76 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 Change-Id: Id0fb9ab0089845ee8843fffd16f99616883281e3 Reviewed-by: Fabian Kosmale (cherry picked from commit 97fbf7d151fbadb2c4541a5e0689810584a9a210) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/kernel/qmetatype.h | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index 219feac91fe..3722e3f7a30 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -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; +#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER(TypeName, Id, Name) \ + extern template class Q_CORE_EXPORT QMetaTypeForType; QT_WARNING_PUSH QT_WARNING_DISABLE_GCC("-Wattributes") // false positive because of QMetaTypeForType 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