diff --git a/configure b/configure index d2a6fde7b8..9d06982eea 100755 --- a/configure +++ b/configure @@ -41048,9 +41048,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then HAVE_DL_FUNCS=0 HAVE_SHL_FUNCS=0 if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then - if test "$USE_DARWIN" = 1; then - HAVE_DL_FUNCS=1 - elif test "$USE_DOS" = 1; then + if test "$USE_DOS" = 1; then HAVE_DL_FUNCS=0 else @@ -41421,7 +41419,7 @@ fi done - if test "$HAVE_DL_FUNCS" = 1; then + if test "$HAVE_DL_FUNCS" = 1; then for ac_func in dlerror do @@ -41525,7 +41523,7 @@ _ACEOF else - echo "$as_me:$LINENO: checking for dlerror in -ldl" >&5 + echo "$as_me:$LINENO: checking for dlerror in -ldl" >&5 echo $ECHO_N "checking for dlerror in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlerror+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -41600,7 +41598,11 @@ fi fi done + fi fi + + if test "$USE_DARWIN" = 1; then + HAVE_DL_FUNCS=1 fi if test "$HAVE_DL_FUNCS" = 0; then diff --git a/configure.in b/configure.in index fac14c401f..1453962246 100644 --- a/configure.in +++ b/configure.in @@ -5876,10 +5876,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then HAVE_DL_FUNCS=0 HAVE_SHL_FUNCS=0 if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then - if test "$USE_DARWIN" = 1; then - dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X - HAVE_DL_FUNCS=1 - elif test "$USE_DOS" = 1; then + if test "$USE_DOS" = 1; then HAVE_DL_FUNCS=0 else dnl the test is a bit complicated because we check for dlopen() both with @@ -5913,15 +5910,21 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then ]) ]) - dnl check also for dlerror() - if test "$HAVE_DL_FUNCS" = 1; then - AC_CHECK_FUNCS(dlerror, - AC_DEFINE(HAVE_DLERROR), - [ - AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR)) - ] - ) + dnl check also for dlerror() + if test "$HAVE_DL_FUNCS" = 1; then + AC_CHECK_FUNCS(dlerror, + AC_DEFINE(HAVE_DLERROR), + [ + AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR)) + ] + ) + fi fi + + dnl Force HAVE_DL_FUNCS on for Darwin, even if the tests failed (e.g. pre-10.3) + if test "$USE_DARWIN" = 1; then + dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X + HAVE_DL_FUNCS=1 fi if test "$HAVE_DL_FUNCS" = 0; then diff --git a/include/wx/dynlib.h b/include/wx/dynlib.h index 58c81afebd..c8336df36a 100644 --- a/include/wx/dynlib.h +++ b/include/wx/dynlib.h @@ -42,14 +42,15 @@ class WXDLLIMPEXP_BASE wxDynamicLibraryDetailsCreator; // native version, even if configure detected presence of DLOPEN. #if defined(__OS2__) || defined(__EMX__) || defined(__WINDOWS__) typedef HMODULE wxDllType; +#elif defined(__DARWIN__) + // Don't include dlfcn.h on Darwin, we may be using our own replacements. + typedef void *wxDllType; #elif defined(HAVE_DLOPEN) #include typedef void *wxDllType; #elif defined(HAVE_SHL_LOAD) #include typedef shl_t wxDllType; -#elif defined(__DARWIN__) - typedef void *wxDllType; #elif defined(__WXMAC__) #include typedef CFragConnectionID wxDllType;