Workaround for LLVM-3.2 invalid reporting of host triple on darwin9.8

This commit is contained in:
Siu Kwan Lam 2013-01-17 14:13:03 -06:00
commit ea315a58cb

View file

@ -214,7 +214,10 @@ class EngineBuilder(object):
_util.check_is_unowned(tm) _util.check_is_unowned(tm)
ret = _core.LLVMEngineBuilderCreateTM(self.ptr, tm.ptr) ret = _core.LLVMEngineBuilderCreateTM(self.ptr, tm.ptr)
else: else:
ret = _core.LLVMEngineBuilderCreate(self.ptr) # Fix wrong host-triple reported by LLVM 3.2 on darwin9.8
# ret = _core.LLVMEngineBuilderCreate(self.ptr)
tm = self.select_target()
ret = _core.LLVMEngineBuilderCreateTM(self.ptr, tm.ptr)
if isinstance(ret, str): if isinstance(ret, str):
raise llvm.LLVMException(ret) raise llvm.LLVMException(ret)
engine = ExecutionEngine(ret, self._module) engine = ExecutionEngine(ret, self._module)
@ -224,9 +227,11 @@ class EngineBuilder(object):
def select_target(self): def select_target(self):
'''get the corresponding target machine '''get the corresponding target machine
''' '''
ptr = _core.LLVMTargetMachineFromEngineBuilder(self.ptr) # Fix wrong host-triple reported by LLVM 3.2 on darwin9.8
return TargetMachine(ptr) # ptr = _core.LLVMTargetMachineFromEngineBuilder(self.ptr)
# return TargetMachine(ptr)
return TargetMachine.new(cm=CM_JITDEFAULT)
#===----------------------------------------------------------------------=== #===----------------------------------------------------------------------===
# Execution engine # Execution engine