      // 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" {
+@@ -63,101 +60,62 @@ extern "C" {
  #endif
          stricmp(ModuleName, "msvcrt20") != 0 &&
          stricmp(ModuleName, "msvcrt40") != 0) {

+
 #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;
 
 #include "explicit_symbols.inc"
 

+      DynamicLibrary::SearchForAddressOfSymbol(symbolName);
+    }
+  }
+  return (void *)(intptr_t) GetProcAddress((HMODULE)dlHandle, symbolName);
 }
 
-// Stack probing routines are in the support library (e.g. libgcc), but we don't
