aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-02-20 14:48:12 +0000
committergingerBill <bill@gingerbill.org>2022-02-20 14:48:12 +0000
commit3e5c60f74672651044d70303e8b0a8e56ca765f2 (patch)
tree1dbd240ebea3e33646aa8c4d8a939ec38d6222bd /src/llvm_backend.cpp
parent0fa487f468b1f63d5ec97ae8bbb0da01717f32cc (diff)
Add `-reloc-mode:<string>`
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 934daee28..692b96c51 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -1308,6 +1308,20 @@ void lb_generate_code(lbGenerator *gen) {
reloc_mode = LLVMRelocPIC;
}
+ switch (build_context.reloc_mode) {
+ case RelocMode_Default:
+ break;
+ case RelocMode_Static:
+ reloc_mode = LLVMRelocStatic;
+ break;
+ case RelocMode_PIC:
+ reloc_mode = LLVMRelocPIC;
+ break;
+ case RelocMode_DynamicNoPIC:
+ reloc_mode = LLVMRelocDynamicNoPic;
+ break;
+ }
+
for_array(i, gen->modules.entries) {
target_machines[i] = LLVMCreateTargetMachine(
target, target_triple, llvm_cpu,