diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2019-09-21 14:55:08 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2019-09-23 10:23:20 +0200 |
commit | e993a7f1f24303b4b1274b8b0d5e747bc00b9dce (patch) | |
tree | 84986dcb7fb5b143dee61b6e73db656e70ee5d98 /src/plugins | |
parent | 9b32e78758798ba2a2e97cafde79cc53cad0348f (diff) |
CAN: Avoid symbol clashes on static builds
Having the same function name in a global namespace
can lead the linker to pick an arbitrary one instead
the right one.
[ChangeLog] Fixed problems on static builds where
an arbitrary version of resolveSymbol() was used
instead the correct one.
Fixes: QTBUG-78546
Change-Id: I0ff9bc3e5905b3b9694dfe9d446b2a52700f213f
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
(cherry picked from commit 80144b89ca1adede0db9d6e485037f5e431216c3)
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/canbus/peakcan/peakcan_symbols_p.h | 2 | ||||
-rw-r--r-- | src/plugins/canbus/peakcan/peakcanbackend.cpp | 2 | ||||
-rw-r--r-- | src/plugins/canbus/systeccan/systeccan_symbols_p.h | 2 | ||||
-rw-r--r-- | src/plugins/canbus/systeccan/systeccanbackend.cpp | 2 | ||||
-rw-r--r-- | src/plugins/canbus/tinycan/tinycan_symbols_p.h | 2 | ||||
-rw-r--r-- | src/plugins/canbus/tinycan/tinycanbackend.cpp | 2 | ||||
-rw-r--r-- | src/plugins/canbus/vectorcan/vectorcan_symbols_p.h | 2 | ||||
-rw-r--r-- | src/plugins/canbus/vectorcan/vectorcanbackend.cpp | 2 |
8 files changed, 8 insertions, 8 deletions
diff --git a/src/plugins/canbus/peakcan/peakcan_symbols_p.h b/src/plugins/canbus/peakcan/peakcan_symbols_p.h index 9ab2e67..b42deb7 100644 --- a/src/plugins/canbus/peakcan/peakcan_symbols_p.h +++ b/src/plugins/canbus/peakcan/peakcan_symbols_p.h @@ -328,7 +328,7 @@ GENERATE_SYMBOL_VARIABLE(TPCANStatus, CAN_GetValue, TPCANHandle, TPCANParameter, GENERATE_SYMBOL_VARIABLE(TPCANStatus, CAN_SetValue, TPCANHandle, TPCANParameter, void *, quint32) GENERATE_SYMBOL_VARIABLE(TPCANStatus, CAN_GetErrorText, TPCANStatus, quint16, char *) -inline bool resolveSymbols(QLibrary *pcanLibrary) +inline bool resolvePeakCanSymbols(QLibrary *pcanLibrary) { if (!pcanLibrary->isLoaded()) { pcanLibrary->setFileName(QStringLiteral("pcanbasic")); diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp index f8932e9..411223a 100644 --- a/src/plugins/canbus/peakcan/peakcanbackend.cpp +++ b/src/plugins/canbus/peakcan/peakcanbackend.cpp @@ -66,7 +66,7 @@ bool PeakCanBackend::canCreate(QString *errorReason) #ifdef LINK_LIBPCANBASIC return true; #else - static bool symbolsResolved = resolveSymbols(pcanLibrary()); + static bool symbolsResolved = resolvePeakCanSymbols(pcanLibrary()); if (Q_UNLIKELY(!symbolsResolved)) { *errorReason = pcanLibrary()->errorString(); return false; diff --git a/src/plugins/canbus/systeccan/systeccan_symbols_p.h b/src/plugins/canbus/systeccan/systeccan_symbols_p.h index 102817c..0d9f246 100644 --- a/src/plugins/canbus/systeccan/systeccan_symbols_p.h +++ b/src/plugins/canbus/systeccan/systeccan_symbols_p.h @@ -282,7 +282,7 @@ GENERATE_SYMBOL_VARIABLE(UCANRET, UcanDeinitCanEx, tUcanHandle, quint8 /* channe GENERATE_SYMBOL_VARIABLE(UCANRET, UcanReadCanMsgEx, tUcanHandle, quint8 *, tCanMsgStruct *, quint32 *) GENERATE_SYMBOL_VARIABLE(UCANRET, UcanWriteCanMsgEx, tUcanHandle, quint8, tCanMsgStruct *, quint32 *) -inline bool resolveSymbols(QLibrary *systecLibrary) +inline bool resolveSystecCanSymbols(QLibrary *systecLibrary) { if (!systecLibrary->isLoaded()) { #ifdef Q_PROCESSOR_X86_64 diff --git a/src/plugins/canbus/systeccan/systeccanbackend.cpp b/src/plugins/canbus/systeccan/systeccanbackend.cpp index 3fdd135..d6942aa 100644 --- a/src/plugins/canbus/systeccan/systeccanbackend.cpp +++ b/src/plugins/canbus/systeccan/systeccanbackend.cpp @@ -55,7 +55,7 @@ Q_GLOBAL_STATIC(QLibrary, systecLibrary) bool SystecCanBackend::canCreate(QString *errorReason) { - static bool symbolsResolved = resolveSymbols(systecLibrary()); + static bool symbolsResolved = resolveSystecCanSymbols(systecLibrary()); if (Q_UNLIKELY(!symbolsResolved)) { *errorReason = systecLibrary()->errorString(); return false; diff --git a/src/plugins/canbus/tinycan/tinycan_symbols_p.h b/src/plugins/canbus/tinycan/tinycan_symbols_p.h index 44dffd6..625edd3 100644 --- a/src/plugins/canbus/tinycan/tinycan_symbols_p.h +++ b/src/plugins/canbus/tinycan/tinycan_symbols_p.h @@ -317,7 +317,7 @@ GENERATE_SYMBOL_VARIABLE(void, CanSetRxEventCallback, CanRxEventCallback) GENERATE_SYMBOL_VARIABLE(void, CanSetEvents, quint16) GENERATE_SYMBOL_VARIABLE(quint32, CanEventStatus, void) -inline bool resolveSymbols(QLibrary *mhstcanLibrary) +inline bool resolveTinyCanSymbols(QLibrary *mhstcanLibrary) { if (!mhstcanLibrary->isLoaded()) { mhstcanLibrary->setFileName(QStringLiteral("mhstcan")); diff --git a/src/plugins/canbus/tinycan/tinycanbackend.cpp b/src/plugins/canbus/tinycan/tinycanbackend.cpp index 3891186..496770a 100644 --- a/src/plugins/canbus/tinycan/tinycanbackend.cpp +++ b/src/plugins/canbus/tinycan/tinycanbackend.cpp @@ -62,7 +62,7 @@ bool TinyCanBackend::canCreate(QString *errorReason) #ifdef LINK_LIBMHSTCAN return true; #else - static bool symbolsResolved = resolveSymbols(mhstcanLibrary()); + static bool symbolsResolved = resolveTinyCanSymbols(mhstcanLibrary()); if (Q_UNLIKELY(!symbolsResolved)) { *errorReason = mhstcanLibrary()->errorString(); return false; diff --git a/src/plugins/canbus/vectorcan/vectorcan_symbols_p.h b/src/plugins/canbus/vectorcan/vectorcan_symbols_p.h index 3f2501f..6e35ba4 100644 --- a/src/plugins/canbus/vectorcan/vectorcan_symbols_p.h +++ b/src/plugins/canbus/vectorcan/vectorcan_symbols_p.h @@ -458,7 +458,7 @@ GENERATE_SYMBOL_VARIABLE(XLstatus, xlReceive, XLportHandle, quint32 *, XLevent * GENERATE_SYMBOL_VARIABLE(XLstatus, xlSetNotification, XLportHandle, XLhandle *, int) GENERATE_SYMBOL_VARIABLE(char *, xlGetErrorString, XLstatus) -inline bool resolveSymbols(QLibrary *vectorcanLibrary) +inline bool resolveVectorCanSymbols(QLibrary *vectorcanLibrary) { if (!vectorcanLibrary->isLoaded()) { #ifdef Q_PROCESSOR_X86_64 diff --git a/src/plugins/canbus/vectorcan/vectorcanbackend.cpp b/src/plugins/canbus/vectorcan/vectorcanbackend.cpp index 9026888..40ba0ac 100644 --- a/src/plugins/canbus/vectorcan/vectorcanbackend.cpp +++ b/src/plugins/canbus/vectorcan/vectorcanbackend.cpp @@ -61,7 +61,7 @@ bool VectorCanBackend::canCreate(QString *errorReason) #ifdef LINK_LIBVECTORCAN return true; #else - static bool symbolsResolved = resolveSymbols(vectorcanLibrary()); + static bool symbolsResolved = resolveVectorCanSymbols(vectorcanLibrary()); if (Q_UNLIKELY(!symbolsResolved)) { *errorReason = vectorcanLibrary()->errorString(); return false; |