// platform dependent files.
#if defined(__WINDOWS__) || defined(__WXPM__) || defined(__EMX__)
- const wxChar *wxDynamicLibrary::ms_dllext( _T(".dll") );
+ const wxChar *wxDynamicLibrary::ms_dllext = _T(".dll");
#elif defined(__UNIX__)
#if defined(__HPUX__)
- const wxChar *wxDynamicLibrary::ms_dllext( _T(".sl") );
+ const wxChar *wxDynamicLibrary::ms_dllext = _T(".sl");
#else
- const wxChar *wxDynamicLibrary::ms_dllext( _T(".so") );
+ const wxChar *wxDynamicLibrary::ms_dllext = _T(".so");
#endif
#endif
}
}
+ // different ways to load a shared library
+ //
+ // FIXME: should go to the platform-specific files!
#if defined(__WXMAC__) && !defined(__DARWIN__)
FSSpec myFSSpec;
Ptr myMainAddr;
#if defined(__VMS) || defined(__DARWIN__)
m_handle = dlopen(libname.c_str(), 0); // The second parameter is ignored
-#else
+#else // !__VMS && !__DARWIN__
int rtldFlags = 0;
- if( flags & wxDL_LAZY )
+ if ( flags & wxDL_LAZY )
{
wxASSERT_MSG( (flags & wxDL_NOW) == 0,
_T("wxDL_LAZY and wxDL_NOW are mutually exclusive.") );
+#ifdef RTLD_LAZY
rtldFlags |= RTLD_LAZY;
+#else
+ wxLogDebug(_T("wxDL_LAZY is not supported on this platform"));
+#endif
}
- else if( flags & wxDL_NOW )
+ else if ( flags & wxDL_NOW )
{
+#ifdef RTLD_NOW
rtldFlags |= RTLD_NOW;
+#else
+ wxLogDebug(_T("wxDL_NOW is not supported on this platform"));
+#endif
}
- if( flags & wxDL_GLOBAL )
+
+ if ( flags & wxDL_GLOBAL )
{
-#ifdef __osf__
- wxLogDebug(_T("WARNING: RTLD_GLOBAL is not a supported on this platform."));
-#endif
+#ifdef RTLD_GLOBAL
rtldFlags |= RTLD_GLOBAL;
+#else
+ wxLogDebug(_T("RTLD_GLOBAL is not supported on this platform."));
+#endif
}
m_handle = dlopen(libname.c_str(), rtldFlags);
-#endif // __VMS || __DARWIN__
+#endif // __VMS || __DARWIN__ ?
#elif defined(HAVE_SHL_LOAD)
int shlFlags = 0;
#elif defined(__WINDOWS__)
m_handle = ::LoadLibrary(libname.c_str());
-
#else
-#error "runtime shared lib support not implemented"
+ #error "runtime shared lib support not implemented on this platform"
#endif
if ( m_handle == 0 )