authorgravatar for tw19881113@gmail.comTw <tw19881113@gmail.com> 2023-03-28 16:26:24+08:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2023-03-30 12:11:04+03:00
log11903436a9818cba1ef474dfd705d10798d16ef6
tree27163d005452c87d9e6b168bb4585e9c93709637
parent9c3bea8482915277093a5cb68eba6e05f01d404a

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>

1 files changed, 3 insertions(+), 0 deletions(-)

src/codegen/llvm.zig+3
......@@ -2719,6 +2719,9 @@ pub const DeclGen = struct {
27192719 if (comp.bin_file.options.llvm_cpu_features) |s| {
27202720 llvm_fn.addFunctionAttr("target-features", s);
27212721 }
2722 if (comp.getTarget().cpu.arch.isBpf()) {
2723 llvm_fn.addFunctionAttr("no-builtins", "");
2724 }
27222725 }
27232726
27242727 fn resolveGlobalDecl(dg: *DeclGen, decl_index: Module.Decl.Index) Error!*llvm.Value {