diff options
| author | Tina Zhang <tina.zhang@intel.com> | 2014-07-25 10:13:53 +0800 |
|---|---|---|
| committer | Vince Harron <vharron@google.com> | 2014-07-27 19:41:56 -0700 |
| commit | 1ee821ec62d0adf1fc6132a1cf853d3af0467908 (patch) | |
| tree | 2f1d08fc297d189ad081026edcd8a096c357c7c4 /emulator/opengl/shared/emugl/common/shared_library.cpp | |
| parent | ec58e2e9626c5f4c5da339a77178d81c32fdb461 (diff) | |
| download | sdk-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.cpp | 10 |
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); |
