aboutsummaryrefslogtreecommitdiffstats
path: root/emulator/opengl/shared/emugl/common/shared_library.cpp
diff options
context:
space:
mode:
authorTina Zhang <tina.zhang@intel.com>2014-07-25 10:13:53 +0800
committerVince Harron <vharron@google.com>2014-07-27 19:41:56 -0700
commit1ee821ec62d0adf1fc6132a1cf853d3af0467908 (patch)
tree2f1d08fc297d189ad081026edcd8a096c357c7c4 /emulator/opengl/shared/emugl/common/shared_library.cpp
parentec58e2e9626c5f4c5da339a77178d81c32fdb461 (diff)
downloadsdk-1ee821ec62d0adf1fc6132a1cf853d3af0467908.zip
sdk-1ee821ec62d0adf1fc6132a1cf853d3af0467908.tar.gz
sdk-1ee821ec62d0adf1fc6132a1cf853d3af0467908.tar.bz2
Support dynamic lib name without ".dylib" on Mac
On Mac, some of the dynamic libs has name without ".dylib". Like, "System/Library/Frameworks/OpenGL.framework/OpenGL", we need solution to handle it in the dlopen() API. Change-Id: Ie513ace5a0d7d154f73e0f13919005d1498901d7 Signed-off-by: Tina Zhang <tina.zhang@intel.com> Signed-off-by: Chao Qin <chaox.qin@intel.com>
Diffstat (limited to 'emulator/opengl/shared/emugl/common/shared_library.cpp')
-rw-r--r--emulator/opengl/shared/emugl/common/shared_library.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/emulator/opengl/shared/emugl/common/shared_library.cpp b/emulator/opengl/shared/emugl/common/shared_library.cpp
index db1c75c..e78e36b 100644
--- a/emulator/opengl/shared/emugl/common/shared_library.cpp
+++ b/emulator/opengl/shared/emugl/common/shared_library.cpp
@@ -75,7 +75,17 @@ SharedLibrary* SharedLibrary::open(const char* libraryName) {
libPath = path;
}
+#ifdef __APPLE__
+ // On OSX, some libraries don't include an extension (notably OpenGL)
+ // On OSX we try to open |libraryName| first. If that doesn't exist,
+ // we try |libraryName|.dylib
+ void* lib = dlopen(libraryName, RTLD_NOW);
+ if (lib == NULL) {
+ lib = dlopen(libPath, RTLD_NOW);
+ }
+#else
void* lib = dlopen(libPath, RTLD_NOW);
+#endif
if (path) {
free(path);