 +
  #define EXPLICIT_SYMBOL(SYM)                    \
 -  extern "C" { extern void *SYM; }
--#define EXPLICIT_SYMBOL2(SYMFROM, SYMTO) EXPLICIT_SYMBOL(SYMTO)
 +  extern "C" void *SYM; symMap[#SYM] = &SYM;
-+#define EXPLICIT_SYMBOL2(SYMFROM, SYMTO)        \
-+  symMap[#SYMFROM] = &SYMTO;
+ #define EXPLICIT_SYMBOL2(SYMFROM, SYMTO) EXPLICIT_SYMBOL(SYMTO)
  
  #include "explicit_symbols.inc"
  

     // Ignore VC++ runtimes prior to 7.1.  Somehow some of them get loaded
     // into the process.
     if (stricmp(ModuleName, "msvci70") != 0 &&
@@ -63,101 +59,63 @@ extern "C" {
 #endif
         stricmp(ModuleName, "msvcrt20") != 0 &&
         stricmp(ModuleName, "msvcrt40") != 0) {

 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -11,6 +11,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/ADT/DenseSet.h"
 #include "Windows.h"
 
 #ifdef __MINGW32__
@@ -32,15 +33,9 @@
 #endif
 
 namespace llvm {
