From 3d1cfdb3658e4d90189d9cf0be12a5a29a4c1e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Wed, 12 Feb 2025 15:26:59 +0100 Subject: [PATCH] llvm: Set target-abi module flag. LLVM is increasingly making use of this module flag when present. --- src/codegen/llvm.zig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 951af2edc1..3ed6ed0ff8 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -824,7 +824,7 @@ pub const Object = struct { } { - var module_flags = try std.ArrayList(Builder.Metadata).initCapacity(o.gpa, 7); + var module_flags = try std.ArrayList(Builder.Metadata).initCapacity(o.gpa, 8); defer module_flags.deinit(); const behavior_error = try o.builder.metadataConstant(try o.builder.intConst(.i32, 1)); @@ -832,6 +832,16 @@ pub const Object = struct { const behavior_max = try o.builder.metadataConstant(try o.builder.intConst(.i32, 7)); const behavior_min = try o.builder.metadataConstant(try o.builder.intConst(.i32, 8)); + if (target_util.llvmMachineAbi(comp.root_mod.resolved_target.result)) |abi| { + module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag( + behavior_error, + try o.builder.metadataString("target-abi"), + try o.builder.metadataConstant( + try o.builder.stringConst(try o.builder.string(abi)), + ), + )); + } + const pic_level = target_util.picLevel(comp.root_mod.resolved_target.result); if (comp.root_mod.pic) { module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(