X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/297ebe6b9749bba3ad8e7adb004f1ed390895c9c..7712a6a5ff0dd7fc30c8334657e79935d00ca7f5:/src/unix/dlunix.cpp diff --git a/src/unix/dlunix.cpp b/src/unix/dlunix.cpp index 8a9de2c421..53e44b5dca 100644 --- a/src/unix/dlunix.cpp +++ b/src/unix/dlunix.cpp @@ -28,6 +28,31 @@ #include "wx/dynlib.h" #include "wx/ffile.h" +#ifndef WX_PRECOMP + #include "wx/intl.h" + #include "wx/log.h" +#endif + +// only Mac OS X 10.3+ has dlfcn.h, and it is simpler to always provide our own +// wrappers using the native functions instead of doing checks for OS version +#ifndef __DARWIN__ + #include +#endif + +// if some flags are not supported, just ignore them +#ifndef RTLD_LAZY + #define RTLD_LAZY 0 +#endif + +#ifndef RTLD_NOW + #define RTLD_NOW 0 +#endif + +#ifndef RTLD_GLOBAL + #define RTLD_GLOBAL 0 +#endif + + #if defined(HAVE_DLOPEN) || defined(__DARWIN__) #define USE_POSIX_DL_FUNCS #elif !defined(HAVE_SHL_LOAD) @@ -172,24 +197,18 @@ wxDllType wxDynamicLibrary::RawLoad(const wxString& libname, int flags) #ifdef USE_POSIX_DL_FUNCS int rtldFlags = 0; -#ifdef RTLD_LAZY if ( flags & wxDL_LAZY ) { rtldFlags |= RTLD_LAZY; } -#endif -#ifdef RTLD_NOW if ( flags & wxDL_NOW ) { rtldFlags |= RTLD_NOW; } -#endif -#ifdef RTLD_GLOBAL if ( flags & wxDL_GLOBAL ) { rtldFlags |= RTLD_GLOBAL; } -#endif return dlopen(libname.fn_str(), rtldFlags); #else // !USE_POSIX_DL_FUNCS @@ -221,7 +240,7 @@ void wxDynamicLibrary::Unload(wxDllType handle) shl_unload(handle); #endif // USE_POSIX_DL_FUNCS/!USE_POSIX_DL_FUNCS -#ifdef USE_POSIX_DL_FUNCS +#if defined(USE_POSIX_DL_FUNCS) && defined(wxHAVE_DYNLIB_ERROR) if ( rc != 0 ) Error(); #endif @@ -316,7 +335,7 @@ wxDynamicLibraryDetailsArray wxDynamicLibrary::ListLoaded() #ifdef __LINUX__ // examine /proc/self/maps to find out what is loaded in our address space - wxFFile file("/proc/self/maps"); + wxFFile file(_T("/proc/self/maps")); if ( file.IsOpened() ) { // details of the module currently being parsed