commit 11903436a9818cba1ef474dfd705d10798d16ef6 (tree)
parent 9c3bea8482915277093a5cb68eba6e05f01d404a
Author: Tw <tw19881113@gmail.com>
Date: Tue, 28 Mar 2023 16:26:24 +0800
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>
Diffstat:
1 file changed, 3 insertions(+), 0 deletions(-)
diff --git 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 {