fix build on Windows
[ghc-hetmet.git] / rts / Linker.c
index 3b419f2..d84e4f7 100644 (file)
@@ -89,6 +89,7 @@
 #  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>
@@ -977,8 +978,7 @@ typedef struct _RtsSymbolVal {
       SymI_NeedsProto(__muldi3)                               \
       SymI_NeedsProto(__ashldi3)                      \
       SymI_NeedsProto(__ashrdi3)                      \
-      SymI_NeedsProto(__lshrdi3)                      \
-      SymI_NeedsProto(__eprintf)
+      SymI_NeedsProto(__lshrdi3)
 #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 initLinkerCleanup( void );
 #ifdef THREADED_RTS
 static Mutex dl_mutex; // mutex to protect dlopen/dlerror critical section
 #endif
@@ -1111,7 +1110,9 @@ void
 initLinker( void )
 {
     RtsSymbolVal *sym;
+#if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)
     int compileResult;
+#endif
 
     /* 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;
     }
 
-#ifdef THREADED_RTS
+#if defined(THREADED_RTS) && (defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO))
     initMutex(&dl_mutex);
 #endif
     stablehash = allocStrHashTable();