commit a6f64096a1487fa6787907d7f130dadff5decb5b (tree)
parent 87fa61bdd12f0b2625013ca6eabb5fe5479a18f4
Author: GasInfinity <me@gasinfinity.dev>
Date: Wed, 11 Feb 2026 15:44:42 +0100
chore(test/standalone): test linking libc in a shared library
Diffstat:
1 file changed, 34 insertions(+), 26 deletions(-)
diff --git a/test/standalone/shared_library/build.zig b/test/standalone/shared_library/build.zig
@@ -6,32 +6,40 @@ pub fn build(b: *std.Build) void {
const optimize: std.builtin.OptimizeMode = .Debug;
const target = b.graph.host;
- const lib = b.addLibrary(.{
- .linkage = .dynamic,
- .name = "mathtest",
- .version = .{ .major = 1, .minor = 0, .patch = 0 },
- .root_module = b.createModule(.{
- .root_source_file = b.path("mathtest.zig"),
- .target = target,
- .optimize = optimize,
- }),
- });
- const exe = b.addExecutable(.{
- .name = "test",
- .root_module = b.createModule(.{
- .root_source_file = null,
- .target = target,
- .optimize = optimize,
- .link_libc = true,
- }),
- });
- exe.root_module.addCSourceFile(.{
- .file = b.path("test.c"),
- .flags = &[_][]const u8{"-std=c99"},
- });
- exe.root_module.linkLibrary(lib);
+ const exe_names: []const []const u8 = &.{ "test", "test-dync" };
+ const lib_names: []const []const u8 = &.{ "mathtest", "mathtest-dync" };
+ const lib_link_libc: []const bool = &.{ false, true };
- const run_cmd = b.addRunArtifact(exe);
- test_step.dependOn(&run_cmd.step);
+ for (exe_names, lib_names, lib_link_libc) |exe_name, lib_name, dyn_libc| {
+ const lib = b.addLibrary(.{
+ .linkage = .dynamic,
+ .name = lib_name,
+ .version = .{ .major = 1, .minor = 0, .patch = 0 },
+ .root_module = b.createModule(.{
+ .root_source_file = b.path("mathtest.zig"),
+ .target = target,
+ .optimize = optimize,
+ .link_libc = dyn_libc,
+ }),
+ });
+
+ const exe = b.addExecutable(.{
+ .name = exe_name,
+ .root_module = b.createModule(.{
+ .root_source_file = null,
+ .target = target,
+ .optimize = optimize,
+ .link_libc = true,
+ }),
+ });
+ exe.root_module.addCSourceFile(.{
+ .file = b.path("test.c"),
+ .flags = &[_][]const u8{"-std=c99"},
+ });
+ exe.root_module.linkLibrary(lib);
+
+ const run_cmd = b.addRunArtifact(exe);
+ test_step.dependOn(&run_cmd.step);
+ }
}