aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTw <tw19881113@gmail.com>2023-03-28 16:26:24 +0800
committerVeikka Tuominen <git@vexu.eu>2023-03-30 12:11:04 +0300
commit11903436a9818cba1ef474dfd705d10798d16ef6 (patch)
tree27163d005452c87d9e6b168bb4585e9c93709637
parent9c3bea8482915277093a5cb68eba6e05f01d404a (diff)
downloadzig-11903436a9818cba1ef474dfd705d10798d16ef6.tar.gz
zig-11903436a9818cba1ef474dfd705d10798d16ef6.zip
llvm/bpf: disable llvm builtins for bpf target
As bpf program has no global section for constant values (especially strings), so use llvm's builtins (like memcpy, memset, etc) will lead to compilation failure (something like this: A call to built-in function 'memcpy' is not supported.) Signed-off-by: Tw <tw19881113@gmail.com>
-rw-r--r--src/codegen/llvm.zig3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 8577252423..eea68a80e9 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -2719,6 +2719,9 @@ pub const DeclGen = struct {
if (comp.bin_file.options.llvm_cpu_features) |s| {
llvm_fn.addFunctionAttr("target-features", s);
}
+ if (comp.getTarget().cpu.arch.isBpf()) {
+ llvm_fn.addFunctionAttr("no-builtins", "");
+ }
}
fn resolveGlobalDecl(dg: *DeclGen, decl_index: Module.Decl.Index) Error!*llvm.Value {