From 11903436a9818cba1ef474dfd705d10798d16ef6 Mon Sep 17 00:00:00 2001 From: Tw Date: Tue, 28 Mar 2023 16:26:24 +0800 Subject: [PATCH] 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(+) diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 85772524235a87ca245f384371eb1c553b6c30c0..eea68a80e910ce981b77f6e744be95b769f2a99a 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 { -- 2.54.0