Skip to content

Commit

Permalink
test: Add a standalone test for omitting CFI directives.
Browse files Browse the repository at this point in the history
  • Loading branch information
alexrp committed Jan 19, 2025
1 parent 8a78d87 commit 45bb4f9
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 0 deletions.
3 changes: 3 additions & 0 deletions test/standalone/build.zig.zon
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,9 @@
.empty_global_error_set = .{
.path = "empty_global_error_set",
},
.omit_cfi = .{
.path = "omit_cfi",
},
},
.paths = .{
"build.zig",
Expand Down
67 changes: 67 additions & 0 deletions test/standalone/omit_cfi/build.zig
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
const std = @import("std");

pub fn build(b: *std.Build) void {
inline for (.{
.aarch64,
.aarch64_be,
.hexagon,
.loongarch64,
.mips,
.mipsel,
.mips64,
.mips64el,
.powerpc,
.powerpcle,
.powerpc64,
.powerpc64le,
.riscv32,
.riscv64,
.s390x,
.sparc64,
.x86,
.x86_64,
}) |arch| {
const target = b.resolveTargetQuery(.{
.cpu_arch = arch,
.os_tag = .linux,
});

const omit_dbg = b.addExecutable(.{
.name = b.fmt("{s}-linux-omit-dbg", .{@tagName(arch)}),
.root_module = b.createModule(.{
.root_source_file = b.path("main.zig"),
.target = target,
.optimize = .Debug,
// We are mainly concerned with CFI directives in our non-libc startup code and syscall
// code, so make it explicit that we don't want libc.
.link_libc = false,
.strip = true,
}),
});

const omit_uwt = b.addExecutable(.{
.name = b.fmt("{s}-linux-omit-uwt", .{@tagName(arch)}),
.root_module = b.createModule(.{
.root_source_file = b.path("main.zig"),
.target = target,
.optimize = .Debug,
.link_libc = false,
.unwind_tables = .none,
}),
});

const omit_both = b.addExecutable(.{
.name = b.fmt("{s}-linux-omit-both", .{@tagName(arch)}),
.root_module = b.createModule(.{
.root_source_file = b.path("main.zig"),
.target = target,
.optimize = .Debug,
.link_libc = false,
.strip = true,
.unwind_tables = .none,
}),
});

inline for (.{ omit_dbg, omit_uwt, omit_both }) |step| b.installArtifact(step);
}
}
1 change: 1 addition & 0 deletions test/standalone/omit_cfi/main.zig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pub fn main() void {}

0 comments on commit 45bb4f9

Please sign in to comment.