llvm: Set target-abi module flag.

LLVM is increasingly making use of this module flag when present.
This commit is contained in:
Alex Rønne Petersen 2025-02-12 15:26:59 +01:00
parent e99c11856d
commit 3d1cfdb365
No known key found for this signature in database

View File

@ -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(