projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't Terminate the ticker thread (#3748)
[ghc-hetmet.git]
/
rts
/
Linker.c
diff --git
a/rts/Linker.c
b/rts/Linker.c
index
3b419f2
..
d84e4f7
100644
(file)
--- a/
rts/Linker.c
+++ b/
rts/Linker.c
@@
-89,6
+89,7
@@
# include <math.h>
#elif defined(darwin_HOST_OS)
# define OBJFORMAT_MACHO
# include <math.h>
#elif defined(darwin_HOST_OS)
# define OBJFORMAT_MACHO
+# include <regex.h>
# include <mach-o/loader.h>
# include <mach-o/nlist.h>
# include <mach-o/reloc.h>
# include <mach-o/loader.h>
# include <mach-o/nlist.h>
# include <mach-o/reloc.h>
@@
-977,8
+978,7
@@
typedef struct _RtsSymbolVal {
SymI_NeedsProto(__muldi3) \
SymI_NeedsProto(__ashldi3) \
SymI_NeedsProto(__ashrdi3) \
SymI_NeedsProto(__muldi3) \
SymI_NeedsProto(__ashldi3) \
SymI_NeedsProto(__ashrdi3) \
- SymI_NeedsProto(__lshrdi3) \
- SymI_NeedsProto(__eprintf)
+ SymI_NeedsProto(__lshrdi3)
#else
#define RTS_LIBGCC_SYMBOLS
#endif
#else
#define RTS_LIBGCC_SYMBOLS
#endif
@@
-1101,7
+1101,6
@@
static int linker_init_done = 0 ;
static void *dl_prog_handle;
static regex_t re_invalid;
static regex_t re_realso;
static void *dl_prog_handle;
static regex_t re_invalid;
static regex_t re_realso;
-static void initLinkerCleanup( void );
#ifdef THREADED_RTS
static Mutex dl_mutex; // mutex to protect dlopen/dlerror critical section
#endif
#ifdef THREADED_RTS
static Mutex dl_mutex; // mutex to protect dlopen/dlerror critical section
#endif
@@
-1111,7
+1110,9
@@
void
initLinker( void )
{
RtsSymbolVal *sym;
initLinker( void )
{
RtsSymbolVal *sym;
+#if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)
int compileResult;
int compileResult;
+#endif
/* Make initLinker idempotent, so we can call it
before evey relevant operation; that means we
/* Make initLinker idempotent, so we can call it
before evey relevant operation; that means we
@@
-1120,7
+1121,7
@@
initLinker( void )
linker_init_done = 1;
}
linker_init_done = 1;
}
-#ifdef THREADED_RTS
+#if defined(THREADED_RTS) && (defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO))
initMutex(&dl_mutex);
#endif
stablehash = allocStrHashTable();
initMutex(&dl_mutex);
#endif
stablehash = allocStrHashTable();