R600: Add ISA documents to the CompilerWriterInfo page
[oota-llvm.git] / lib / ExecutionEngine / RTDyldMemoryManager.cpp
index 9d80281ccbfb5a8b47642ff6f0f3054842885242..4e7645722a4c1f484e0bf8eec7d9813da8ae489c 100644 (file)
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/Config/config.h"
 #include "llvm/ExecutionEngine/RTDyldMemoryManager.h"
 #include "llvm/Support/DynamicLibrary.h"
 #include "llvm/Support/ErrorHandling.h"
 
+#include <cstdlib>
+
+#ifdef __linux__
+  // These includes used by RTDyldMemoryManager::getPointerToNamedFunction()
+  // for Glibc trickery. See comments in this function for more information.
+  #ifdef HAVE_SYS_STAT_H
+    #include <sys/stat.h>
+  #endif
+  #include <fcntl.h>
+  #include <unistd.h>
+#endif
+
 namespace llvm {
 
 RTDyldMemoryManager::~RTDyldMemoryManager() {}
@@ -32,11 +45,11 @@ extern "C" void __register_frame(void*);
 
 static const char *processFDE(const char *Entry) {
   const char *P = Entry;
-  uint32_t Length = *((uint32_t*)P);
+  uint32_t Length = *((const uint32_t *)P);
   P += 4;
-  uint32_t Offset = *((uint32_t*)P);
+  uint32_t Offset = *((const uint32_t *)P);
   if (Offset != 0)
-    __register_frame((void*)Entry);
+    __register_frame(const_cast<char *>(Entry));
   return P + Length;
 }
 #endif