diff options
author | Jose <jose@zeroc.com> | 2012-02-22 17:06:42 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2012-02-22 17:06:42 +0100 |
commit | b462100d19a7afbdddee50300343dfa99604afa8 (patch) | |
tree | 64182254db8f6d0bb5a211ff49f95923c766a522 /cpp/src/Ice/DynamicLibrary.cpp | |
parent | ICE-4753 - Remove StaticMutex & RWRecMutex (diff) | |
download | ice-b462100d19a7afbdddee50300343dfa99604afa8.tar.bz2 ice-b462100d19a7afbdddee50300343dfa99604afa8.tar.xz ice-b462100d19a7afbdddee50300343dfa99604afa8.zip |
ICE-4798 - OSX DynamicLibrary fallback to .so/.bundle if .dylib fails
Diffstat (limited to 'cpp/src/Ice/DynamicLibrary.cpp')
-rw-r--r-- | cpp/src/Ice/DynamicLibrary.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/cpp/src/Ice/DynamicLibrary.cpp b/cpp/src/Ice/DynamicLibrary.cpp index 7cefbcebeea..314fc71f9ff 100644 --- a/cpp/src/Ice/DynamicLibrary.cpp +++ b/cpp/src/Ice/DynamicLibrary.cpp @@ -119,7 +119,6 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint, bool useIc { lib += "." + version; } - lib += ".dylib"; #elif defined(__hpux) lib = "lib" + libName; if(!version.empty()) @@ -145,10 +144,31 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint, bool useIc } #endif +#ifdef __APPLE__ + // + // On OS X fallback to .so and .bundle extensions if the default + // .dylib fails. + // + if(!load(lib + ".dylib")) + { + string errMsg = _err; + if(!load(lib + ".so")) + { + errMsg += "; " + _err; + if(!load(lib + ".bundle")) + { + _err = errMsg + "; " + _err; + return 0; + } + } + _err = ""; + } +#else if(!load(lib)) { return 0; } +#endif return getSymbol(funcName); } |