summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleksandr Tymoshenko <[email protected]>2016-05-16 23:24:36 -0700
committerRalf Nolden <[email protected]>2016-05-19 10:15:42 +0000
commite9628fbd391972d4ffe5882d283d512df7fa705c (patch)
tree33e05104805bb15612e4591bdcdf6a6e9eef2099
parentdd8745e1d4beedfb8ef2e42fc10050287d3975f3 (diff)
Fix dynamic librariy support detection for platforms without libdl
Some platforms (e.g. FreeBSD) do not have libdl, but dlopen and related functions are part of libc. So first check for dlopen in libc, and only if that fails, look for it in libdl. Task-number: QTBUG-52951 Change-Id: I65a8ed18fce157da32f4e1ffeba30d7513385a8f Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
-rw-r--r--config.tests/unix/dlopen/dlopen.cpp (renamed from config.tests/unix/libdl/libdl.cpp)0
-rw-r--r--config.tests/unix/dlopen/dlopen.pro2
-rw-r--r--config.tests/unix/libdl/libdl.pro5
-rwxr-xr-xconfigure8
4 files changed, 10 insertions, 5 deletions
diff --git a/config.tests/unix/libdl/libdl.cpp b/config.tests/unix/dlopen/dlopen.cpp
index 28a82330f2d..28a82330f2d 100644
--- a/config.tests/unix/libdl/libdl.cpp
+++ b/config.tests/unix/dlopen/dlopen.cpp
diff --git a/config.tests/unix/dlopen/dlopen.pro b/config.tests/unix/dlopen/dlopen.pro
new file mode 100644
index 00000000000..1d343143325
--- /dev/null
+++ b/config.tests/unix/dlopen/dlopen.pro
@@ -0,0 +1,2 @@
+SOURCES = $$PWD/dlopen.cpp
+CONFIG -= qt dylib
diff --git a/config.tests/unix/libdl/libdl.pro b/config.tests/unix/libdl/libdl.pro
index 8ed5231a8f3..4016395d35d 100644
--- a/config.tests/unix/libdl/libdl.pro
+++ b/config.tests/unix/libdl/libdl.pro
@@ -1,3 +1,2 @@
-SOURCES = libdl.cpp
-CONFIG -= qt dylib
-!qnx: LIBS += -ldl
+include(../dlopen/dlopen.pro)
+LIBS += -ldl
diff --git a/configure b/configure
index 7c65fbd8b51..109c0bbbac0 100755
--- a/configure
+++ b/configure
@@ -4743,9 +4743,13 @@ if [ "$CFG_LIBPNG" = "auto" ]; then
fi
# detect dl
-if ! compileTest unix/libdl "libdl"; then
- QMakeVar add DEFINES QT_NO_DYNAMIC_LIBRARY
+if compileTest unix/dlopen "dlopen"; then
QMAKE_CONFIG="$QMAKE_CONFIG no-libdl"
+else
+ if ! compileTest unix/libdl "libdl"; then
+ QMAKE_CONFIG="$QMAKE_CONFIG no-libdl"
+ QMakeVar add DEFINES QT_NO_DYNAMIC_LIBRARY
+ fi
fi
if [ "$CFG_EGLFS" = "yes" ]; then