From 11903436a9818cba1ef474dfd705d10798d16ef6 Mon Sep 17 00:00:00 2001 From: Tw Date: Tue, 28 Mar 2023 16:26:24 +0800 Subject: 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 --- src/codegen/llvm.zig | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/codegen/llvm.zig') 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 { -- cgit v1.2.3