mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
Merge pull request #22095 from alexrp/test-llvm-emit
Change `llvm_targets` tests to actually emit objects, and fix bugs found as a result
This commit is contained in:
commit
a47aa9dd9d
@ -2884,19 +2884,29 @@ pub fn cTypeBitSize(target: Target, c_type: CType) u16 {
|
||||
},
|
||||
},
|
||||
|
||||
.elfiamcu,
|
||||
.fuchsia,
|
||||
.hermit,
|
||||
|
||||
.aix,
|
||||
.haiku,
|
||||
.hurd,
|
||||
.linux,
|
||||
.plan9,
|
||||
.rtems,
|
||||
.serenity,
|
||||
.zos,
|
||||
|
||||
.freebsd,
|
||||
.netbsd,
|
||||
.dragonfly,
|
||||
.netbsd,
|
||||
.openbsd,
|
||||
|
||||
.illumos,
|
||||
.solaris,
|
||||
|
||||
.wasi,
|
||||
.emscripten,
|
||||
.plan9,
|
||||
.solaris,
|
||||
.illumos,
|
||||
.haiku,
|
||||
.fuchsia,
|
||||
.serenity,
|
||||
=> switch (target.cpu.arch) {
|
||||
.msp430 => switch (c_type) {
|
||||
.char => return 8,
|
||||
@ -2941,7 +2951,10 @@ pub fn cTypeBitSize(target: Target, c_type: CType) u16 {
|
||||
.longdouble => switch (target.cpu.arch) {
|
||||
.x86 => switch (target.abi) {
|
||||
.android => return 64,
|
||||
else => return 80,
|
||||
else => switch (target.os.tag) {
|
||||
.elfiamcu => return 64,
|
||||
else => return 80,
|
||||
},
|
||||
},
|
||||
|
||||
.powerpc,
|
||||
@ -2955,7 +2968,7 @@ pub fn cTypeBitSize(target: Target, c_type: CType) u16 {
|
||||
.muslx32,
|
||||
=> return 64,
|
||||
else => switch (target.os.tag) {
|
||||
.freebsd, .netbsd, .openbsd => return 64,
|
||||
.aix, .freebsd, .netbsd, .openbsd => return 64,
|
||||
else => return 128,
|
||||
},
|
||||
},
|
||||
@ -2971,7 +2984,7 @@ pub fn cTypeBitSize(target: Target, c_type: CType) u16 {
|
||||
.muslx32,
|
||||
=> return 64,
|
||||
else => switch (target.os.tag) {
|
||||
.freebsd, .openbsd => return 64,
|
||||
.aix, .freebsd, .openbsd => return 64,
|
||||
else => return 128,
|
||||
},
|
||||
},
|
||||
@ -3049,10 +3062,17 @@ pub fn cTypeBitSize(target: Target, c_type: CType) u16 {
|
||||
.gnux32, .muslx32 => return 32,
|
||||
else => return 64,
|
||||
},
|
||||
else => return 64,
|
||||
else => switch (target.abi) {
|
||||
.ilp32 => return 32,
|
||||
else => return 64,
|
||||
},
|
||||
},
|
||||
.longlong, .ulonglong, .double => return 64,
|
||||
.longdouble => switch (target.cpu.arch) {
|
||||
.aarch64 => switch (target.os.tag) {
|
||||
.bridgeos => return 128,
|
||||
else => return 64,
|
||||
},
|
||||
.x86 => switch (target.abi) {
|
||||
.android => return 64,
|
||||
else => return 80,
|
||||
@ -3104,13 +3124,7 @@ pub fn cTypeBitSize(target: Target, c_type: CType) u16 {
|
||||
},
|
||||
|
||||
.ps3,
|
||||
.zos,
|
||||
.rtems,
|
||||
.aix,
|
||||
.elfiamcu,
|
||||
.contiki,
|
||||
.hermit,
|
||||
.hurd,
|
||||
.opengl,
|
||||
=> @panic("TODO specify the C integer and float type sizes for this OS"),
|
||||
}
|
||||
@ -3121,6 +3135,10 @@ pub fn cTypeAlignment(target: Target, c_type: CType) u16 {
|
||||
switch (target.cpu.arch) {
|
||||
.avr => return 1,
|
||||
.x86 => switch (target.os.tag) {
|
||||
.elfiamcu => switch (c_type) {
|
||||
.longlong, .ulonglong, .double => return 4,
|
||||
else => {},
|
||||
},
|
||||
.windows, .uefi => switch (c_type) {
|
||||
.longlong, .ulonglong, .double => return 8,
|
||||
.longdouble => switch (target.abi) {
|
||||
@ -3131,6 +3149,20 @@ pub fn cTypeAlignment(target: Target, c_type: CType) u16 {
|
||||
},
|
||||
else => {},
|
||||
},
|
||||
.powerpc, .powerpcle, .powerpc64, .powerpc64le => switch (target.os.tag) {
|
||||
.aix => switch (c_type) {
|
||||
.double, .longdouble => return 4,
|
||||
else => {},
|
||||
},
|
||||
else => {},
|
||||
},
|
||||
.wasm32, .wasm64 => switch (target.os.tag) {
|
||||
.emscripten => switch (c_type) {
|
||||
.longdouble => return 8,
|
||||
else => {},
|
||||
},
|
||||
else => {},
|
||||
},
|
||||
else => {},
|
||||
}
|
||||
|
||||
@ -3244,6 +3276,10 @@ pub fn cTypePreferredAlignment(target: Target, c_type: CType) u16 {
|
||||
},
|
||||
.avr => return 1,
|
||||
.x86 => switch (target.os.tag) {
|
||||
.elfiamcu => switch (c_type) {
|
||||
.longlong, .ulonglong, .double, .longdouble => return 4,
|
||||
else => {},
|
||||
},
|
||||
.windows, .uefi => switch (c_type) {
|
||||
.longdouble => switch (target.abi) {
|
||||
.gnu, .gnuilp32, .ilp32, .cygnus => return 4,
|
||||
@ -3256,6 +3292,13 @@ pub fn cTypePreferredAlignment(target: Target, c_type: CType) u16 {
|
||||
else => {},
|
||||
},
|
||||
},
|
||||
.wasm32, .wasm64 => switch (target.os.tag) {
|
||||
.emscripten => switch (c_type) {
|
||||
.longdouble => return 8,
|
||||
else => {},
|
||||
},
|
||||
else => {},
|
||||
},
|
||||
else => {},
|
||||
}
|
||||
|
||||
|
||||
@ -280,8 +280,7 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 {
|
||||
.cygnus => "cygnus",
|
||||
.simulator => "simulator",
|
||||
.macabi => "macabi",
|
||||
.ohos => "ohos",
|
||||
.ohoseabi => "ohoseabi",
|
||||
.ohos, .ohoseabi => "ohos",
|
||||
};
|
||||
try llvm_triple.appendSlice(llvm_abi);
|
||||
|
||||
|
||||
@ -4191,7 +4191,11 @@ pub const Platform = struct {
|
||||
return .{
|
||||
.os_tag = target.os.tag,
|
||||
.abi = target.abi,
|
||||
.version = target.os.version_range.semver.min,
|
||||
// This should use semver once we determine the version history.
|
||||
.version = if (target.os.tag == .bridgeos)
|
||||
.{ .major = 0, .minor = 0, .patch = 0 }
|
||||
else
|
||||
target.os.version_range.semver.min,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -15,13 +15,12 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .ios, .abi = .simulator },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .android },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .gnu },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .gnuilp32 },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .musl },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .ohos },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .macos, .abi = .none },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .netbsd, .abi = .none },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .openbsd, .abi = .none },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .rtems, .abi = .ilp32 },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .rtems, .abi = .none },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .serenity, .abi = .none },
|
||||
.{ .cpu_arch = .aarch64, .os_tag = .tvos, .abi = .none },
|
||||
@ -38,17 +37,17 @@ const targets = [_]std.Target.Query{
|
||||
|
||||
.{ .cpu_arch = .aarch64_be, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .aarch64_be, .os_tag = .linux, .abi = .gnu },
|
||||
.{ .cpu_arch = .aarch64_be, .os_tag = .linux, .abi = .gnuilp32 },
|
||||
.{ .cpu_arch = .aarch64_be, .os_tag = .linux, .abi = .musl },
|
||||
.{ .cpu_arch = .aarch64_be, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .aarch64_be, .os_tag = .netbsd, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .amdgcn, .os_tag = .amdhsa, .abi = .none },
|
||||
.{ .cpu_arch = .amdgcn, .os_tag = .amdpal, .abi = .none },
|
||||
.{ .cpu_arch = .amdgcn, .os_tag = .mesa3d, .abi = .none },
|
||||
// .{ .cpu_arch = .amdgcn, .os_tag = .amdpal, .abi = .none },
|
||||
// .{ .cpu_arch = .amdgcn, .os_tag = .mesa3d, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .arc, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .arc, .os_tag = .linux, .abi = .gnu },
|
||||
.{ .cpu_arch = .arc, .os_tag = .linux, .abi = .none },
|
||||
// .{ .cpu_arch = .arc, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .arc, .os_tag = .linux, .abi = .gnu },
|
||||
// .{ .cpu_arch = .arc, .os_tag = .linux, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .arm, .os_tag = .freebsd, .abi = .eabi },
|
||||
.{ .cpu_arch = .arm, .os_tag = .freebsd, .abi = .eabihf },
|
||||
@ -70,8 +69,8 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .arm, .os_tag = .openbsd, .abi = .eabihf },
|
||||
.{ .cpu_arch = .arm, .os_tag = .rtems, .abi = .eabi },
|
||||
.{ .cpu_arch = .arm, .os_tag = .rtems, .abi = .eabihf },
|
||||
.{ .cpu_arch = .arm, .os_tag = .uefi, .abi = .eabi },
|
||||
.{ .cpu_arch = .arm, .os_tag = .uefi, .abi = .eabihf },
|
||||
// .{ .cpu_arch = .arm, .os_tag = .uefi, .abi = .eabi },
|
||||
// .{ .cpu_arch = .arm, .os_tag = .uefi, .abi = .eabihf },
|
||||
|
||||
.{ .cpu_arch = .armeb, .os_tag = .freebsd, .abi = .eabi },
|
||||
.{ .cpu_arch = .armeb, .os_tag = .freebsd, .abi = .eabihf },
|
||||
@ -95,36 +94,37 @@ const targets = [_]std.Target.Query{
|
||||
|
||||
.{ .cpu_arch = .bpfel, .os_tag = .freestanding, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .csky, .os_tag = .freestanding, .abi = .eabi },
|
||||
.{ .cpu_arch = .csky, .os_tag = .freestanding, .abi = .eabihf },
|
||||
.{ .cpu_arch = .csky, .os_tag = .linux, .abi = .eabi },
|
||||
.{ .cpu_arch = .csky, .os_tag = .linux, .abi = .eabihf },
|
||||
.{ .cpu_arch = .csky, .os_tag = .linux, .abi = .gnueabi },
|
||||
.{ .cpu_arch = .csky, .os_tag = .linux, .abi = .gnueabihf },
|
||||
// .{ .cpu_arch = .csky, .os_tag = .freestanding, .abi = .eabi },
|
||||
// .{ .cpu_arch = .csky, .os_tag = .freestanding, .abi = .eabihf },
|
||||
// .{ .cpu_arch = .csky, .os_tag = .linux, .abi = .eabi },
|
||||
// .{ .cpu_arch = .csky, .os_tag = .linux, .abi = .eabihf },
|
||||
// .{ .cpu_arch = .csky, .os_tag = .linux, .abi = .gnueabi },
|
||||
// .{ .cpu_arch = .csky, .os_tag = .linux, .abi = .gnueabihf },
|
||||
|
||||
.{ .cpu_arch = .hexagon, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .hexagon, .os_tag = .linux, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .lanai, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .lanai, .os_tag = .freestanding, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .loongarch32, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .loongarch32, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .loongarch32, .os_tag = .uefi, .abi = .none },
|
||||
// .{ .cpu_arch = .loongarch32, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .loongarch32, .os_tag = .linux, .abi = .none },
|
||||
// .{ .cpu_arch = .loongarch32, .os_tag = .uefi, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .loongarch64, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnu },
|
||||
.{ .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 = .musl },
|
||||
.{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .loongarch64, .os_tag = .uefi, .abi = .none },
|
||||
// .{ .cpu_arch = .loongarch64, .os_tag = .uefi, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .m68k, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .m68k, .os_tag = .haiku, .abi = .none },
|
||||
.{ .cpu_arch = .m68k, .os_tag = .linux, .abi = .gnu },
|
||||
.{ .cpu_arch = .m68k, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .m68k, .os_tag = .netbsd, .abi = .none },
|
||||
.{ .cpu_arch = .m68k, .os_tag = .rtems, .abi = .none },
|
||||
// .{ .cpu_arch = .m68k, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .m68k, .os_tag = .haiku, .abi = .none },
|
||||
// .{ .cpu_arch = .m68k, .os_tag = .linux, .abi = .gnu },
|
||||
// .{ .cpu_arch = .m68k, .os_tag = .linux, .abi = .musl },
|
||||
// .{ .cpu_arch = .m68k, .os_tag = .linux, .abi = .none },
|
||||
// .{ .cpu_arch = .m68k, .os_tag = .netbsd, .abi = .none },
|
||||
// .{ .cpu_arch = .m68k, .os_tag = .rtems, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .mips, .os_tag = .freebsd, .abi = .eabi },
|
||||
.{ .cpu_arch = .mips, .os_tag = .freebsd, .abi = .eabihf },
|
||||
@ -178,12 +178,12 @@ const targets = [_]std.Target.Query{
|
||||
|
||||
.{ .cpu_arch = .msp430, .os_tag = .freestanding, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .nvptx, .os_tag = .cuda, .abi = .none },
|
||||
.{ .cpu_arch = .nvptx, .os_tag = .nvcl, .abi = .none },
|
||||
.{ .cpu_arch = .nvptx64, .os_tag = .cuda, .abi = .none },
|
||||
.{ .cpu_arch = .nvptx64, .os_tag = .nvcl, .abi = .none },
|
||||
// .{ .cpu_arch = .nvptx, .os_tag = .cuda, .abi = .none },
|
||||
// .{ .cpu_arch = .nvptx, .os_tag = .nvcl, .abi = .none },
|
||||
// .{ .cpu_arch = .nvptx64, .os_tag = .cuda, .abi = .none },
|
||||
// .{ .cpu_arch = .nvptx64, .os_tag = .nvcl, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .aix, .abi = .eabihf },
|
||||
// .{ .cpu_arch = .powerpc, .os_tag = .aix, .abi = .eabihf },
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .freebsd, .abi = .eabi },
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .freebsd, .abi = .eabihf },
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .freestanding, .abi = .eabi },
|
||||
@ -206,7 +206,7 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .powerpcle, .os_tag = .freestanding, .abi = .eabi },
|
||||
.{ .cpu_arch = .powerpcle, .os_tag = .freestanding, .abi = .eabihf },
|
||||
|
||||
.{ .cpu_arch = .powerpc64, .os_tag = .aix, .abi = .none },
|
||||
// .{ .cpu_arch = .powerpc64, .os_tag = .aix, .abi = .none },
|
||||
.{ .cpu_arch = .powerpc64, .os_tag = .freebsd, .abi = .none },
|
||||
.{ .cpu_arch = .powerpc64, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .powerpc64, .os_tag = .linux, .abi = .gnu },
|
||||
@ -226,7 +226,7 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .riscv32, .os_tag = .linux, .abi = .musl },
|
||||
.{ .cpu_arch = .riscv32, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .riscv32, .os_tag = .rtems, .abi = .none },
|
||||
.{ .cpu_arch = .riscv32, .os_tag = .uefi, .abi = .none },
|
||||
// .{ .cpu_arch = .riscv32, .os_tag = .uefi, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .riscv64, .os_tag = .freebsd, .abi = .none },
|
||||
.{ .cpu_arch = .riscv64, .os_tag = .freestanding, .abi = .none },
|
||||
@ -241,20 +241,20 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .riscv64, .os_tag = .openbsd, .abi = .none },
|
||||
.{ .cpu_arch = .riscv64, .os_tag = .rtems, .abi = .none },
|
||||
.{ .cpu_arch = .riscv64, .os_tag = .serenity, .abi = .none },
|
||||
.{ .cpu_arch = .riscv64, .os_tag = .uefi, .abi = .none },
|
||||
// .{ .cpu_arch = .riscv64, .os_tag = .uefi, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .s390x, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .s390x, .os_tag = .linux, .abi = .gnu },
|
||||
.{ .cpu_arch = .s390x, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .s390x, .os_tag = .zos, .abi = .none },
|
||||
// .{ .cpu_arch = .s390x, .os_tag = .zos, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .sparc, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .sparc, .os_tag = .illumos, .abi = .none },
|
||||
.{ .cpu_arch = .sparc, .os_tag = .linux, .abi = .gnu },
|
||||
.{ .cpu_arch = .sparc, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .sparc, .os_tag = .netbsd, .abi = .none },
|
||||
.{ .cpu_arch = .sparc, .os_tag = .rtems, .abi = .none },
|
||||
.{ .cpu_arch = .sparc, .os_tag = .solaris, .abi = .none },
|
||||
// .{ .cpu_arch = .sparc, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .sparc, .os_tag = .illumos, .abi = .none },
|
||||
// .{ .cpu_arch = .sparc, .os_tag = .linux, .abi = .gnu },
|
||||
// .{ .cpu_arch = .sparc, .os_tag = .linux, .abi = .none },
|
||||
// .{ .cpu_arch = .sparc, .os_tag = .netbsd, .abi = .none },
|
||||
// .{ .cpu_arch = .sparc, .os_tag = .rtems, .abi = .none },
|
||||
// .{ .cpu_arch = .sparc, .os_tag = .solaris, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .sparc64, .os_tag = .freebsd, .abi = .none },
|
||||
.{ .cpu_arch = .sparc64, .os_tag = .freestanding, .abi = .none },
|
||||
@ -301,8 +301,8 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .thumbeb, .os_tag = .rtems, .abi = .eabi },
|
||||
.{ .cpu_arch = .thumbeb, .os_tag = .rtems, .abi = .eabihf },
|
||||
|
||||
.{ .cpu_arch = .ve, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .ve, .os_tag = .linux, .abi = .none },
|
||||
// .{ .cpu_arch = .ve, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .ve, .os_tag = .linux, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .wasm32, .os_tag = .emscripten, .abi = .none },
|
||||
.{ .cpu_arch = .wasm32, .os_tag = .freestanding, .abi = .none },
|
||||
@ -329,6 +329,7 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .x86, .os_tag = .rtems, .abi = .none },
|
||||
.{ .cpu_arch = .x86, .os_tag = .solaris, .abi = .none },
|
||||
.{ .cpu_arch = .x86, .os_tag = .uefi, .abi = .none },
|
||||
.{ .cpu_arch = .x86, .os_tag = .windows, .abi = .cygnus },
|
||||
.{ .cpu_arch = .x86, .os_tag = .windows, .abi = .gnu },
|
||||
.{ .cpu_arch = .x86, .os_tag = .windows, .abi = .itanium },
|
||||
.{ .cpu_arch = .x86, .os_tag = .windows, .abi = .msvc },
|
||||
@ -368,14 +369,15 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .x86_64, .os_tag = .uefi, .abi = .none },
|
||||
.{ .cpu_arch = .x86_64, .os_tag = .visionos, .abi = .simulator },
|
||||
.{ .cpu_arch = .x86_64, .os_tag = .watchos, .abi = .simulator },
|
||||
.{ .cpu_arch = .x86_64, .os_tag = .windows, .abi = .cygnus },
|
||||
.{ .cpu_arch = .x86_64, .os_tag = .windows, .abi = .gnu },
|
||||
.{ .cpu_arch = .x86_64, .os_tag = .windows, .abi = .itanium },
|
||||
.{ .cpu_arch = .x86_64, .os_tag = .windows, .abi = .msvc },
|
||||
|
||||
.{ .cpu_arch = .xcore, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .xcore, .os_tag = .freestanding, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .xtensa, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .xtensa, .os_tag = .linux, .abi = .none },
|
||||
// .{ .cpu_arch = .xtensa, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .xtensa, .os_tag = .linux, .abi = .none },
|
||||
};
|
||||
|
||||
pub fn addCases(
|
||||
@ -392,7 +394,7 @@ pub fn addCases(
|
||||
.xtensa => if (!build_options.llvm_has_xtensa) continue,
|
||||
else => {},
|
||||
};
|
||||
var case = ctx.noEmitUsingLlvmBackend("llvm_targets", b.resolveTargetQuery(target_query));
|
||||
var case = ctx.addObjLlvm("llvm_targets", b.resolveTargetQuery(target_query));
|
||||
case.addCompile("");
|
||||
}
|
||||
}
|
||||
|
||||
@ -204,34 +204,18 @@ pub fn exeFromCompiledC(ctx: *Cases, name: []const u8, target_query: std.Target.
|
||||
return &ctx.cases.items[ctx.cases.items.len - 1];
|
||||
}
|
||||
|
||||
pub fn noEmitUsingLlvmBackend(ctx: *Cases, name: []const u8, target: std.Build.ResolvedTarget) *Case {
|
||||
pub fn addObjLlvm(ctx: *Cases, name: []const u8, target: std.Build.ResolvedTarget) *Case {
|
||||
ctx.cases.append(Case{
|
||||
.name = name,
|
||||
.target = target,
|
||||
.updates = std.ArrayList(Update).init(ctx.cases.allocator),
|
||||
.output_mode = .Obj,
|
||||
.emit_bin = false,
|
||||
.deps = std.ArrayList(DepModule).init(ctx.arena),
|
||||
.backend = .llvm,
|
||||
}) catch @panic("out of memory");
|
||||
return &ctx.cases.items[ctx.cases.items.len - 1];
|
||||
}
|
||||
|
||||
/// Adds a test case that uses the LLVM backend to emit an executable.
|
||||
/// Currently this implies linking libc, because only then we can generate a testable executable.
|
||||
pub fn exeUsingLlvmBackend(ctx: *Cases, name: []const u8, target: std.Build.ResolvedTarget) *Case {
|
||||
ctx.cases.append(Case{
|
||||
.name = name,
|
||||
.target = target,
|
||||
.updates = std.ArrayList(Update).init(ctx.cases.allocator),
|
||||
.output_mode = .Exe,
|
||||
.deps = std.ArrayList(DepModule).init(ctx.arena),
|
||||
.backend = .llvm,
|
||||
.link_libc = true,
|
||||
}) catch @panic("out of memory");
|
||||
return &ctx.cases.items[ctx.cases.items.len - 1];
|
||||
}
|
||||
|
||||
pub fn addObj(
|
||||
ctx: *Cases,
|
||||
name: []const u8,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user