diff options
| author | Samuel Holland <samuel@sholland.org> | 2019-11-03 10:52:00 -0600 | 
|---|---|---|
| committer | Samuel Holland <samuel@sholland.org> | 2019-11-03 10:52:00 -0600 | 
| commit | 194307936110470487c41637684d4b09b3516af5 (patch) | |
| tree | 3c1551ab6b4b7ce75b25c9410a188d2cc3dbdc81 /src/rustllvm/PassWrapper.cpp | |
| parent | 91fd6283e658e2c7aab2d3f5206fc1891f486af2 (diff) | |
| download | rust-194307936110470487c41637684d4b09b3516af5.tar.gz rust-194307936110470487c41637684d4b09b3516af5.zip | |
Configure LLVM module PIC level
As of LLVM 9, this is required for 32-bit PowerPC to properly generate PLT references. Previously, only BigPIC was supported; now LLVM supports both BigPIC and SmallPIC, and there is no default value provided.
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
| -rw-r--r-- | src/rustllvm/PassWrapper.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index 0cda3465dc0..4c5bc20b86d 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -754,6 +754,10 @@ LLVMRustSetDataLayoutFromTargetMachine(LLVMModuleRef Module, unwrap(Module)->setDataLayout(Target->createDataLayout()); } +extern "C" void LLVMRustSetModulePICLevel(LLVMModuleRef M) { + unwrap(M)->setPICLevel(PICLevel::Level::BigPIC); +} + extern "C" void LLVMRustSetModulePIELevel(LLVMModuleRef M) { unwrap(M)->setPIELevel(PIELevel::Level::Large); } | 
