Fix improper ELF versions of certain symbols

They got marked as Qt6_PRIVATE_API because of these private header
defining classes that don't follow Qt's naming convention ("mutex",
"condition_variable", "ControlElement"). We have an exclusion for
classes whose name start with Q.

Introduced by 5d903a64aca37ee7c2836e479e175336e9b7ca87 in the old Perl
syncqt and ported over.

Fixes: QTBUG-109605
Fixes: QTBUG-109604
Change-Id: I69ecc04064514f939896fffd173369623c960bcc
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
(cherry picked from commit 41b38c802b2b6251bdd65f8bf0d2031c304d70f6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Thiago Macieira 2022-12-23 08:42:37 -03:00 committed by Qt Cherry-pick Bot
parent 4b736cb7ad
commit ed82950776
2 changed files with 7 additions and 2 deletions

View File

@ -19,6 +19,11 @@
#include <QtCore/QDeadlineTimer>
#include <QtCore/private/qglobal_p.h>
// This header always defines a class called "mutex" and one called
// "condition_variable", so those mustn't be used to mark ELF symbol
// visibility. Don't add more classes to this header!
// ELFVERSION:stop
#include <condition_variable>
#include <mutex>

View File

@ -39,7 +39,7 @@ class QMouseEvent;
namespace QMdi {
template<typename T>
class ControlElement : public T
class ControlElement : public T // ELFVERSION:ignore
{
public:
ControlElement(QMdiSubWindow *child) : T(child, nullptr)
@ -58,7 +58,7 @@ public:
QPointer<QMdiSubWindow> mdiChild;
};
class ControlContainer : public QObject
class ControlContainer : public QObject // ELFVERSION:ignore
{
public:
ControlContainer(QMdiSubWindow *mdiChild);