void *hdl;
char *errmsg;
- // *** HACK
- // If we load libHSbase_cbits_dyn.[so|dylib],
- // then we know that we need to activate another newCAF
- // related hack in Storage.c because we can't redirect
- // newCAF to newDynCAF with the system dynamic linker.
-#ifdef OBJFORMAT_MACHO
- const char *hsbase = "/libHSbase_cbits_dyn.dylib";
-#else
- const char *hsbase = "/libHSbase_cbits_dyn.so";
-#endif
- int namelen = strlen(dll_name);
- int baselen = strlen(hsbase);
- if(namelen > baselen && !strcmp(dll_name + namelen - baselen, hsbase))
- {
- keepCAFs = rtsTrue;
- }
- // *** END HACK.
-
initLinker();
hdl= dlopen(dll_name, RTLD_NOW | RTLD_GLOBAL);
{
extern void* symbolsWithoutUnderscore[];
void **p = symbolsWithoutUnderscore;
- __asm__ volatile(".data\n_symbolsWithoutUnderscore:");
+ __asm__ volatile(".globl _symbolsWithoutUnderscore\n.data\n_symbolsWithoutUnderscore:");
#undef Sym
#define Sym(x) \