From e8de198ef7115dd85f9706de48cb503bd9877cf6 Mon Sep 17 00:00:00 2001 From: David Faure Date: Wed, 12 Mar 2025 22:16:35 +0100 Subject: [PATCH] Export QLoggingRegistry::instance() so we can use Q_LOGGING_CATEGORY_WITH_ENV_OVERRIDE outside QtCore. Otherwise clang++/macos says Undefined symbols for architecture x86_64: "QLoggingRegistry::instance()", referenced from: QLoggingCategoryWithEnvironmentOverride::QLoggingCategoryWithEnvironmentOverride(char const, char const) in qrhi.cpp.o As Thiago suggested, don't export the whole class to autotests, export only the symbols they need. This simplifies the code. Pick-to: 6.8 Change-Id: Id653385376a2a7604dddd2f520a0a90de5a541f6 Reviewed-by: Thiago Macieira (cherry picked from commit 8500343037950719119968a2d64e781a5635c658) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/io/qloggingregistry_p.h | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/corelib/io/qloggingregistry_p.h b/src/corelib/io/qloggingregistry_p.h index c298b79f0d3..f4eec4ccfc3 100644 --- a/src/corelib/io/qloggingregistry_p.h +++ b/src/corelib/io/qloggingregistry_p.h @@ -95,31 +95,29 @@ private: QList _rules; }; -class Q_AUTOTEST_EXPORT QLoggingRegistry +class QLoggingRegistry { Q_DISABLE_COPY_MOVE(QLoggingRegistry) public: - QLoggingRegistry(); + Q_AUTOTEST_EXPORT QLoggingRegistry(); - void initializeRules(); + Q_AUTOTEST_EXPORT void initializeRules(); void registerCategory(QLoggingCategory *category, QtMsgType enableForLevel); void unregisterCategory(QLoggingCategory *category); -#ifndef QT_BUILD_INTERNAL - Q_CORE_EXPORT // always export from QtCore -#endif - void registerEnvironmentOverrideForCategory(const char *categoryName, const char *environment); + Q_CORE_EXPORT void registerEnvironmentOverrideForCategory(const char *categoryName, + const char *environment); void setApiRules(const QString &content); QLoggingCategory::CategoryFilter installFilter(QLoggingCategory::CategoryFilter filter); - static QLoggingRegistry *instance(); + Q_CORE_EXPORT static QLoggingRegistry *instance(); private: - void updateRules(); + Q_AUTOTEST_EXPORT void updateRules(); static void defaultCategoryFilter(QLoggingCategory *category);