diff options
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
| -rw-r--r-- | src/rustllvm/PassWrapper.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index c410a6b1349..1e19e28e78a 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -290,7 +290,7 @@ extern "C" void LLVMRustPrintTargetFeatures(LLVMTargetMachineRef) { extern "C" LLVMTargetMachineRef LLVMRustCreateTargetMachine( const char *TripleStr, const char *CPU, const char *Feature, - LLVMRustCodeModel RustCM, LLVMRelocMode Reloc, + LLVMRustCodeModel RustCM, int Reloc, LLVMRustCodeGenOptLevel RustOptLevel, bool UseSoftFloat, bool PositionIndependentExecutable, bool FunctionSections, bool DataSections) { @@ -304,15 +304,26 @@ extern "C" LLVMTargetMachineRef LLVMRustCreateTargetMachine( auto OptLevel = fromRust(RustOptLevel); switch (Reloc) { - case LLVMRelocStatic: + case 1: RM = Reloc::Static; break; - case LLVMRelocPIC: + case 2: RM = Reloc::PIC_; break; - case LLVMRelocDynamicNoPic: + case 3: RM = Reloc::DynamicNoPIC; break; +#if LLVM_VERSION_GE(4, 0) + case 4: + RM = Reloc::ROPI; + break; + case 5: + RM = Reloc::RWPI; + break; + case 6: + RM = Reloc::ROPI_RWPI; + break; +#endif default: #if LLVM_VERSION_LE(3, 8) RM = Reloc::Default; |
