diff gen/main.cpp @ 1521:982eb70e83b2

Fix build for LLVM >= r74640 Some LLVM objects now take a 'Context' to make multi-threaded apps easier. Since we're not multi-threaded it's safe to use llvm::getGlobalContext() which gives us the same behavior as we had before.
author Benjamin Kramer <benny.kra@gmail.com>
date Fri, 03 Jul 2009 17:24:35 +0200
parents 26d061e61b02
children b265fb6ce15b
line wrap: on
line diff
--- a/gen/main.cpp	Tue Jun 30 22:07:50 2009 +0200
+++ b/gen/main.cpp	Fri Jul 03 17:24:35 2009 +0200
@@ -7,6 +7,9 @@
 #include "gen/llvm-version.h"
 #include "llvm/LinkAllVMCore.h"
 #include "llvm/Linker.h"
+#if LLVM_REV >= 74640
+#include "llvm/LLVMContext.h"
+#endif
 #include "llvm/System/Signals.h"
 #include "llvm/Target/SubtargetFeature.h"
 #include "llvm/Target/TargetMachine.h"
@@ -399,7 +402,11 @@
     if (global.errors)
         fatal();
 
+#if LLVM_REV >= 74640
+    llvm::Module mod("dummy", llvm::getGlobalContext());
+#else
     llvm::Module mod("dummy");
+#endif
 
     // override triple if needed
     const char* defaultTriple = DEFAULT_TARGET_TRIPLE;
@@ -919,7 +926,11 @@
         char* name = m->toChars();
         char* filename = m->objfile->name->str;
         
+#if LLVM_REV >= 74640
+        llvm::Linker linker(name, name, llvm::getGlobalContext());
+#else
         llvm::Linker linker(name, name);
+#endif
         std::string errormsg;
         for (int i = 0; i < llvmModules.size(); i++)
         {