summaryrefslogtreecommitdiffstats
path: root/src/corelib/plugin/qlibrary_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/plugin/qlibrary_unix.cpp')
-rw-r--r--src/corelib/plugin/qlibrary_unix.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp
index e89d6396f6..43e2b5c15b 100644
--- a/src/corelib/plugin/qlibrary_unix.cpp
+++ b/src/corelib/plugin/qlibrary_unix.cpp
@@ -273,7 +273,15 @@ bool QLibraryPrivate::unload_sys()
# else
if (dlclose(pHnd)) {
# endif
+# if defined (Q_OS_QNX) // Workaround until fixed in QNX; fixes crash in
+ char *error = dlerror(); // QtDeclarative auto test "qqmlenginecleanup" for instance
+ if (!qstrcmp(error, "Shared objects still referenced")) // On QNX that's only "informative"
+ return true;
+ errorString = QLibrary::tr("Cannot unload library %1: %2").arg(fileName)
+ .arg(QLatin1String(error));
+# else
errorString = QLibrary::tr("Cannot unload library %1: %2").arg(fileName).arg(qdlerror());
+# endif
return false;
}
#endif