+2011-12-23 Dan Bernstein <mitz@apple.com>
+
+ Print dlerror() when dyld functions fail unexpectedly
+ https://bugs.webkit.org/show_bug.cgi?id=75185
+
+ Reviewed by Sam Weinig.
+
+ * platform/mac/SoftLinking.h:
+
2011-12-23 Sam Weinig <sam@webkit.org>
Start extracting platform specific bits out of PlatformEvents
static void* lib##Library() \
{ \
static void* dylib = dlopen("/usr/lib/" #lib ".dylib", RTLD_NOW); \
- ASSERT(dylib); \
+ ASSERT_WITH_MESSAGE(dylib, "%s", dlerror()); \
return dylib; \
}
static void* framework##Library() \
{ \
static void* frameworkLibrary = dlopen("/System/Library/Frameworks/" #framework ".framework/" #framework, RTLD_NOW); \
- ASSERT(frameworkLibrary); \
+ ASSERT_WITH_MESSAGE(frameworkLibrary, "%s", dlerror()); \
return frameworkLibrary; \
}
static void* framework##Library() \
{ \
static void* frameworkLibrary = dlopen("/System/Library/Frameworks/CoreServices.framework/Frameworks/" #framework ".framework/" #framework, RTLD_NOW); \
- ASSERT(frameworkLibrary); \
+ ASSERT_WITH_MESSAGE(frameworkLibrary, "%s", dlerror()); \
return frameworkLibrary; \
}
static resultType init##functionName parameterDeclarations \
{ \
softLink##functionName = (resultType (*) parameterDeclarations) dlsym(framework##Library(), #functionName); \
- ASSERT(softLink##functionName); \
+ ASSERT_WITH_MESSAGE(softLink##functionName, "%s", dlerror()); \
return softLink##functionName parameterNames; \
}\
\
static type init##name() \
{ \
void** pointer = static_cast<void**>(dlsym(framework##Library(), #name)); \
- ASSERT(pointer); \
+ ASSERT_WITH_MESSAGE(pointer, "%s", dlerror()); \
pointer##name = static_cast<type>(*pointer); \
get##name = name##Function; \
return pointer##name; \
static type init##name() \
{ \
void* constant = dlsym(framework##Library(), #name); \
- ASSERT(constant); \
+ ASSERT_WITH_MESSAGE(constant, "%s", dlerror()); \
constant##name = *static_cast<type*>(constant); \
get##name = name##Function; \
return constant##name; \