summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2019-09-21 14:55:08 +0200
committerAlex Blasche <alexander.blasche@qt.io>2019-09-23 10:23:20 +0200
commite993a7f1f24303b4b1274b8b0d5e747bc00b9dce (patch)
tree84986dcb7fb5b143dee61b6e73db656e70ee5d98
parent9b32e78758798ba2a2e97cafde79cc53cad0348f (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>
-rw-r--r--src/plugins/canbus/peakcan/peakcan_symbols_p.h2
-rw-r--r--src/plugins/canbus/peakcan/peakcanbackend.cpp2
-rw-r--r--src/plugins/canbus/systeccan/systeccan_symbols_p.h2
-rw-r--r--src/plugins/canbus/systeccan/systeccanbackend.cpp2
-rw-r--r--src/plugins/canbus/tinycan/tinycan_symbols_p.h2
-rw-r--r--src/plugins/canbus/tinycan/tinycanbackend.cpp2
-rw-r--r--src/plugins/canbus/vectorcan/vectorcan_symbols_p.h2
-rw-r--r--src/plugins/canbus/vectorcan/vectorcanbackend.cpp2
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;