Re-do the namespace fix for the linker scripts

This amends and corrects b63045477ea05c17f9abe9434e6d824453e3935a. The
fix there was incorrect for two reasons:
1) it missed one symbol in QtCore (the QFutureInterfaceBase one
   added in 0f0371c8304bd7354a3c43f9fac6b85bd3e9a3f1.
2) it only worked for namespaces that were 15 characters long

Instead, just use a wildcard where the namespace should be for Qt
symbols (note: an extra wildcard appears for plain types because they go
from <N><type> to N<N><namespace><N><type>E).

Change-Id: Iae41eb8991e349ceb836fffd179d6e709d6632f8
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit 93233516957f71054c42ba843cdd57216834acd7)
This commit is contained in:
Thiago Macieira 2023-12-03 13:07:44 -08:00
parent 2ad8e19a03
commit 52cc586a65
2 changed files with 3 additions and 3 deletions

View File

@ -1422,7 +1422,7 @@ qt_internal_extend_target(Core
# Function called by inline methods taking a pointer to a private class as a parameter
EXTRA_LINKER_SCRIPT_EXPORTS
# QFutureInterfaceBase::setContinuation(std::function<void (QFutureInterfaceBase const&)>, QFutureInterfaceBasePrivate*)
"_ZN20QFutureInterfaceBase15setContinuationE*P27QFutureInterfaceBasePrivate"
"_ZN*20QFutureInterfaceBase15setContinuationE*27QFutureInterfaceBasePrivate*"
# QReadWriteLock::destroyRecursive(QReadWriteLockPrivate*)
"_ZN14QReadWriteLock16destroyRecursiveEP21QReadWriteLockPrivate"
"_ZN*14QReadWriteLock16destroyRecursiveEP*21QReadWriteLockPrivate*"
)

View File

@ -402,5 +402,5 @@ qt_internal_extend_target(Network
# Function called by inline methods taking a pointer to a private class as a parameter
EXTRA_LINKER_SCRIPT_EXPORTS
# QNetworkDatagram::destroy(QNetworkDatagramPrivate *d)
"_ZN16QNetworkDatagram7destroyEP23QNetworkDatagramPrivate"
"_ZN*16QNetworkDatagram7destroyEP*23QNetworkDatagramPrivate*"
)