diff options
author | Oleksandr Tymoshenko <[email protected]> | 2016-05-16 23:24:36 -0700 |
---|---|---|
committer | Ralf Nolden <[email protected]> | 2016-05-19 10:15:42 +0000 |
commit | e9628fbd391972d4ffe5882d283d512df7fa705c (patch) | |
tree | 33e05104805bb15612e4591bdcdf6a6e9eef2099 | |
parent | dd8745e1d4beedfb8ef2e42fc10050287d3975f3 (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.pro | 2 | ||||
-rw-r--r-- | config.tests/unix/libdl/libdl.pro | 5 | ||||
-rwxr-xr-x | configure | 8 |
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 |