mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
std.Target: Add Abi.muslf32 and Abi.muslsf.
This commit is contained in:
parent
1599f8ade0
commit
8954e9748a
2
lib/compiler/aro/aro/target.zig
vendored
2
lib/compiler/aro/aro/target.zig
vendored
@ -698,6 +698,8 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 {
|
|||||||
.muslabi64 => "muslabi64",
|
.muslabi64 => "muslabi64",
|
||||||
.musleabi => "musleabi",
|
.musleabi => "musleabi",
|
||||||
.musleabihf => "musleabihf",
|
.musleabihf => "musleabihf",
|
||||||
|
.muslf32 => "muslf32",
|
||||||
|
.muslsf => "muslsf",
|
||||||
.muslx32 => "muslx32",
|
.muslx32 => "muslx32",
|
||||||
.msvc => "msvc",
|
.msvc => "msvc",
|
||||||
.itanium => "itanium",
|
.itanium => "itanium",
|
||||||
|
|||||||
@ -775,6 +775,8 @@ pub const Abi = enum {
|
|||||||
muslabi64,
|
muslabi64,
|
||||||
musleabi,
|
musleabi,
|
||||||
musleabihf,
|
musleabihf,
|
||||||
|
muslf32,
|
||||||
|
muslsf,
|
||||||
muslx32,
|
muslx32,
|
||||||
msvc,
|
msvc,
|
||||||
itanium,
|
itanium,
|
||||||
@ -949,6 +951,8 @@ pub const Abi = enum {
|
|||||||
.muslabi64,
|
.muslabi64,
|
||||||
.musleabi,
|
.musleabi,
|
||||||
.musleabihf,
|
.musleabihf,
|
||||||
|
.muslf32,
|
||||||
|
.muslsf,
|
||||||
.muslx32,
|
.muslx32,
|
||||||
=> true,
|
=> true,
|
||||||
else => abi.isOpenHarmony(),
|
else => abi.isOpenHarmony(),
|
||||||
@ -2251,9 +2255,20 @@ pub const DynamicLinker = struct {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
.loongarch32,
|
||||||
|
.loongarch64,
|
||||||
|
=> |arch| initFmt("/lib/ld-musl-{s}{s}.so.1", .{
|
||||||
|
@tagName(arch),
|
||||||
|
switch (abi) {
|
||||||
|
.musl => "",
|
||||||
|
.muslf32 => "-sp",
|
||||||
|
.muslsf => "-sf",
|
||||||
|
else => return none,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
|
||||||
.aarch64,
|
.aarch64,
|
||||||
.aarch64_be,
|
.aarch64_be,
|
||||||
.loongarch64, // TODO: `-sp` and `-sf` ABI support in LLVM 20.
|
|
||||||
.m68k,
|
.m68k,
|
||||||
.powerpc64,
|
.powerpc64,
|
||||||
.powerpc64le,
|
.powerpc64le,
|
||||||
|
|||||||
@ -236,6 +236,8 @@ fn libCGenericName(target: std.Target) [:0]const u8 {
|
|||||||
.muslabi64,
|
.muslabi64,
|
||||||
.musleabi,
|
.musleabi,
|
||||||
.musleabihf,
|
.musleabihf,
|
||||||
|
.muslf32,
|
||||||
|
.muslsf,
|
||||||
.muslx32,
|
.muslx32,
|
||||||
.none,
|
.none,
|
||||||
.ohos,
|
.ohos,
|
||||||
|
|||||||
@ -37,6 +37,7 @@ pub const available_libcs = [_]ArchOsAbi{
|
|||||||
.{ .arch = .loongarch64, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 36, .patch = 0 }, .glibc_triple = "loongarch64-linux-gnu-lp64d" },
|
.{ .arch = .loongarch64, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 36, .patch = 0 }, .glibc_triple = "loongarch64-linux-gnu-lp64d" },
|
||||||
.{ .arch = .loongarch64, .os = .linux, .abi = .gnusf, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 36, .patch = 0 }, .glibc_triple = "loongarch64-linux-gnu-lp64s" },
|
.{ .arch = .loongarch64, .os = .linux, .abi = .gnusf, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 36, .patch = 0 }, .glibc_triple = "loongarch64-linux-gnu-lp64s" },
|
||||||
.{ .arch = .loongarch64, .os = .linux, .abi = .musl, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 } },
|
.{ .arch = .loongarch64, .os = .linux, .abi = .musl, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 } },
|
||||||
|
.{ .arch = .loongarch64, .os = .linux, .abi = .muslsf, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 } },
|
||||||
.{ .arch = .m68k, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 1, .minor = 3, .patch = 94 } },
|
.{ .arch = .m68k, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 1, .minor = 3, .patch = 94 } },
|
||||||
.{ .arch = .m68k, .os = .linux, .abi = .musl, .os_ver = .{ .major = 1, .minor = 3, .patch = 94 } },
|
.{ .arch = .m68k, .os = .linux, .abi = .musl, .os_ver = .{ .major = 1, .minor = 3, .patch = 94 } },
|
||||||
.{ .arch = .mips, .os = .linux, .abi = .gnueabi, .os_ver = .{ .major = 1, .minor = 1, .patch = 82 }, .glibc_triple = "mips-linux-gnu-soft" },
|
.{ .arch = .mips, .os = .linux, .abi = .gnueabi, .os_ver = .{ .major = 1, .minor = 1, .patch = 82 }, .glibc_triple = "mips-linux-gnu-soft" },
|
||||||
|
|||||||
@ -275,6 +275,8 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 {
|
|||||||
.muslabi64 => "musl", // Should be muslabi64 in LLVM 20.
|
.muslabi64 => "musl", // Should be muslabi64 in LLVM 20.
|
||||||
.musleabi => "musleabi",
|
.musleabi => "musleabi",
|
||||||
.musleabihf => "musleabihf",
|
.musleabihf => "musleabihf",
|
||||||
|
.muslf32 => "muslf32",
|
||||||
|
.muslsf => "muslsf",
|
||||||
.muslx32 => "muslx32",
|
.muslx32 => "muslx32",
|
||||||
.msvc => "msvc",
|
.msvc => "msvc",
|
||||||
.itanium => "itanium",
|
.itanium => "itanium",
|
||||||
|
|||||||
@ -496,10 +496,9 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 {
|
|||||||
|
|
||||||
return switch (target.cpu.arch) {
|
return switch (target.cpu.arch) {
|
||||||
.arm, .armeb, .thumb, .thumbeb => "aapcs",
|
.arm, .armeb, .thumb, .thumbeb => "aapcs",
|
||||||
// TODO: `muslsf` and `muslf32` in LLVM 20.
|
|
||||||
.loongarch64 => switch (target.abi) {
|
.loongarch64 => switch (target.abi) {
|
||||||
.gnusf => "lp64s",
|
.gnusf, .muslsf => "lp64s",
|
||||||
.gnuf32 => "lp64f",
|
.gnuf32, .muslf32 => "lp64f",
|
||||||
else => "lp64d",
|
else => "lp64d",
|
||||||
},
|
},
|
||||||
.loongarch32 => switch (target.abi) {
|
.loongarch32 => switch (target.abi) {
|
||||||
|
|||||||
@ -114,6 +114,8 @@ const targets = [_]std.Target.Query{
|
|||||||
// .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnuf32 },
|
// .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnuf32 },
|
||||||
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnusf },
|
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnusf },
|
||||||
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .musl },
|
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .musl },
|
||||||
|
// .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .muslf32 },
|
||||||
|
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .muslsf },
|
||||||
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .none },
|
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .none },
|
||||||
// .{ .cpu_arch = .loongarch64, .os_tag = .uefi, .abi = .none },
|
// .{ .cpu_arch = .loongarch64, .os_tag = .uefi, .abi = .none },
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user