aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-10-24 21:28:56 -0400
committerAndrew Kelley <superjoe30@gmail.com>2017-10-24 21:31:47 -0400
commit1828f8eb8e1514578ed2da8d58536903f94b7ed0 (patch)
treef8e9891a31798e671867dd95f4be7e24471c4ff1 /src/codegen.cpp
parentd7e28f991d431ee6347f316f03a6f35a5692e095 (diff)
downloadzig-1828f8eb8e1514578ed2da8d58536903f94b7ed0.tar.gz
zig-1828f8eb8e1514578ed2da8d58536903f94b7ed0.zip
fix missing compiler_rt in release modes
the optimizer was deleting compiler_rt symbols, so I changed the linkage type from LinkOnce to Weak also changed LinkOnce to mean linkonce_odr in llvm and Weak to mean weak_odr in llvm. See #563
Diffstat (limited to 'src/codegen.cpp')
-rw-r--r--src/codegen.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 8c5d7622cc..6fb8d4b8ef 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -456,10 +456,10 @@ static LLVMValueRef fn_llvm_value(CodeGen *g, FnTableEntry *fn_table_entry) {
LLVMSetLinkage(fn_table_entry->llvm_value, LLVMExternalLinkage);
break;
case GlobalLinkageIdWeak:
- LLVMSetLinkage(fn_table_entry->llvm_value, LLVMWeakAnyLinkage);
+ LLVMSetLinkage(fn_table_entry->llvm_value, LLVMWeakODRLinkage);
break;
case GlobalLinkageIdLinkOnce:
- LLVMSetLinkage(fn_table_entry->llvm_value, LLVMLinkOnceAnyLinkage);
+ LLVMSetLinkage(fn_table_entry->llvm_value, LLVMLinkOnceODRLinkage);
break;
}