Backport 51895 & 51896 which define HAVE_DLOPEN/HAVE_DLERROR when configure

is run on an OS X system supporting them (everything >= 10.3).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@51902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2008-02-19 00:25:05 +00:00
parent c842c9c98b
commit 136e8c5ca0
3 changed files with 25 additions and 19 deletions

8
configure vendored
View File

@@ -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
@@ -41603,6 +41601,10 @@ done
fi
fi
if test "$USE_DARWIN" = 1; then
HAVE_DL_FUNCS=1
fi
if test "$HAVE_DL_FUNCS" = 0; then
if test "$HAVE_SHL_FUNCS" = 0; then
if test "$USE_UNIX" = 1 -o "$USE_DOS" = 1; then

View File

@@ -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
@@ -5924,6 +5921,12 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
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
if test "$HAVE_SHL_FUNCS" = 0; then
if test "$USE_UNIX" = 1 -o "$USE_DOS" = 1; then

View File

@@ -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 <dlfcn.h>
typedef void *wxDllType;
#elif defined(HAVE_SHL_LOAD)
#include <dl.h>
typedef shl_t wxDllType;
#elif defined(__DARWIN__)
typedef void *wxDllType;
#elif defined(__WXMAC__)
#include <CodeFragments.h>
typedef CFragConnectionID wxDllType;