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)
ret = _core.LLVMEngineBuilderCreateTM(self.ptr, tm.ptr)
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):
raise llvm.LLVMException(ret)
engine = ExecutionEngine(ret, self._module)
@ -224,9 +227,11 @@ class EngineBuilder(object):
def select_target(self):
'''get the corresponding target machine
'''
ptr = _core.LLVMTargetMachineFromEngineBuilder(self.ptr)
return TargetMachine(ptr)
'''
# Fix wrong host-triple reported by LLVM 3.2 on darwin9.8
# ptr = _core.LLVMTargetMachineFromEngineBuilder(self.ptr)
# return TargetMachine(ptr)
return TargetMachine.new(cm=CM_JITDEFAULT)
#===----------------------------------------------------------------------===
# Execution engine