aboutsummaryrefslogtreecommitdiff
path: root/test/link
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-02-03 12:49:40 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-02-03 12:49:40 -0700
commitfab9b7110ed1fa7bb082aad5e095047441db2b24 (patch)
tree81fef60aa45e7980dab8f3e23e5b5e92b40ee0a9 /test/link
parentd20d69b59e6b65a99f45cb6a45c14e887034dd18 (diff)
parent60935decd318498529a016eeb1379d943a7e830d (diff)
downloadzig-fab9b7110ed1fa7bb082aad5e095047441db2b24.tar.gz
zig-fab9b7110ed1fa7bb082aad5e095047441db2b24.zip
Merge remote-tracking branch 'origin/master' into llvm16
Diffstat (limited to 'test/link')
-rw-r--r--test/link/bss/build.zig13
-rw-r--r--test/link/common_symbols/build.zig19
-rw-r--r--test/link/common_symbols_alignment/build.zig21
-rw-r--r--test/link/interdependent_static_c_libs/build.zig28
-rw-r--r--test/link/macho/bugs/13056/build.zig11
-rw-r--r--test/link/macho/bugs/13457/build.zig15
-rw-r--r--test/link/macho/dead_strip/build.zig24
-rw-r--r--test/link/macho/dead_strip_dylibs/build.zig18
-rw-r--r--test/link/macho/dylib/build.zig22
-rw-r--r--test/link/macho/empty/build.zig15
-rw-r--r--test/link/macho/entry/build.zig13
-rw-r--r--test/link/macho/headerpad/build.zig22
-rw-r--r--test/link/macho/linksection/build.zig15
-rw-r--r--test/link/macho/needed_framework/build.zig12
-rw-r--r--test/link/macho/needed_library/build.zig23
-rw-r--r--test/link/macho/objc/build.zig13
-rw-r--r--test/link/macho/objcpp/build.zig11
-rw-r--r--test/link/macho/pagezero/build.zig21
-rw-r--r--test/link/macho/search_strategy/build.zig47
-rw-r--r--test/link/macho/stack_size/build.zig13
-rw-r--r--test/link/macho/strict_validation/build.zig15
-rw-r--r--test/link/macho/tls/build.zig22
-rw-r--r--test/link/macho/unwind_info/build.zig32
-rw-r--r--test/link/macho/uuid/build.zig29
-rw-r--r--test/link/macho/weak_framework/build.zig12
-rw-r--r--test/link/macho/weak_library/build.zig23
-rw-r--r--test/link/static_lib_as_system_lib/build.zig20
-rw-r--r--test/link/wasm/archive/build.zig14
-rw-r--r--test/link/wasm/basic-features/build.zig20
-rw-r--r--test/link/wasm/bss/build.zig14
-rw-r--r--test/link/wasm/export-data/build.zig16
-rw-r--r--test/link/wasm/export/build.zig33
-rw-r--r--test/link/wasm/extern-mangle/build.zig14
-rw-r--r--test/link/wasm/extern/build.zig12
-rw-r--r--test/link/wasm/function-table/build.zig32
-rw-r--r--test/link/wasm/infer-features/build.zig31
-rw-r--r--test/link/wasm/producers/build.zig14
-rw-r--r--test/link/wasm/segments/build.zig14
-rw-r--r--test/link/wasm/stack_pointer/build.zig14
-rw-r--r--test/link/wasm/type/build.zig14
40 files changed, 444 insertions, 327 deletions
diff --git a/test/link/bss/build.zig b/test/link/bss/build.zig
index 76e9bdb305..0df9c1d323 100644
--- a/test/link/bss/build.zig
+++ b/test/link/bss/build.zig
@@ -1,12 +1,15 @@
-const Builder = @import("std").build.Builder;
+const std = @import("std");
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test");
- const exe = b.addExecutable("bss", "main.zig");
+ const exe = b.addExecutable(.{
+ .name = "bss",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ });
b.default_step.dependOn(&exe.step);
- exe.setBuildMode(mode);
const run = exe.run();
run.expectStdOutEqual("0, 1, 0\n");
diff --git a/test/link/common_symbols/build.zig b/test/link/common_symbols/build.zig
index 2f9f892e86..ee9dd94ebd 100644
--- a/test/link/common_symbols/build.zig
+++ b/test/link/common_symbols/build.zig
@@ -1,14 +1,19 @@
-const Builder = @import("std").build.Builder;
+const std = @import("std");
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
- const lib_a = b.addStaticLibrary("a", null);
+ const lib_a = b.addStaticLibrary(.{
+ .name = "a",
+ .optimize = optimize,
+ .target = .{},
+ });
lib_a.addCSourceFiles(&.{ "c.c", "a.c", "b.c" }, &.{"-fcommon"});
- lib_a.setBuildMode(mode);
- const test_exe = b.addTest("main.zig");
- test_exe.setBuildMode(mode);
+ const test_exe = b.addTest(.{
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ });
test_exe.linkLibrary(lib_a);
const test_step = b.step("test", "Test it");
diff --git a/test/link/common_symbols_alignment/build.zig b/test/link/common_symbols_alignment/build.zig
index a62d86af4f..f6efdc784b 100644
--- a/test/link/common_symbols_alignment/build.zig
+++ b/test/link/common_symbols_alignment/build.zig
@@ -1,14 +1,21 @@
-const Builder = @import("std").build.Builder;
+const std = @import("std");
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
+ const target = b.standardTargetOptions(.{});
- const lib_a = b.addStaticLibrary("a", null);
+ const lib_a = b.addStaticLibrary(.{
+ .name = "a",
+ .optimize = optimize,
+ .target = target,
+ });
lib_a.addCSourceFiles(&.{"a.c"}, &.{"-fcommon"});
- lib_a.setBuildMode(mode);
- const test_exe = b.addTest("main.zig");
- test_exe.setBuildMode(mode);
+ const test_exe = b.addTest(.{
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = target,
+ });
test_exe.linkLibrary(lib_a);
const test_step = b.step("test", "Test it");
diff --git a/test/link/interdependent_static_c_libs/build.zig b/test/link/interdependent_static_c_libs/build.zig
index bd1b6100da..d8962a8e08 100644
--- a/test/link/interdependent_static_c_libs/build.zig
+++ b/test/link/interdependent_static_c_libs/build.zig
@@ -1,20 +1,30 @@
-const Builder = @import("std").build.Builder;
+const std = @import("std");
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
+ const target = b.standardTargetOptions(.{});
- const lib_a = b.addStaticLibrary("a", null);
+ const lib_a = b.addStaticLibrary(.{
+ .name = "a",
+ .optimize = optimize,
+ .target = target,
+ });
lib_a.addCSourceFile("a.c", &[_][]const u8{});
- lib_a.setBuildMode(mode);
lib_a.addIncludePath(".");
- const lib_b = b.addStaticLibrary("b", null);
+ const lib_b = b.addStaticLibrary(.{
+ .name = "b",
+ .optimize = optimize,
+ .target = target,
+ });
lib_b.addCSourceFile("b.c", &[_][]const u8{});
- lib_b.setBuildMode(mode);
lib_b.addIncludePath(".");
- const test_exe = b.addTest("main.zig");
- test_exe.setBuildMode(mode);
+ const test_exe = b.addTest(.{
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = target,
+ });
test_exe.linkLibrary(lib_a);
test_exe.linkLibrary(lib_b);
test_exe.addIncludePath(".");
diff --git a/test/link/macho/bugs/13056/build.zig b/test/link/macho/bugs/13056/build.zig
index 751a7c4db6..662fd25c92 100644
--- a/test/link/macho/bugs/13056/build.zig
+++ b/test/link/macho/bugs/13056/build.zig
@@ -1,8 +1,7 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const target_info = std.zig.system.NativeTargetInfo.detect(target) catch unreachable;
@@ -11,7 +10,10 @@ pub fn build(b: *Builder) void {
const test_step = b.step("test", "Test the program");
- const exe = b.addExecutable("test", null);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ });
b.default_step.dependOn(&exe.step);
exe.addIncludePath(std.fs.path.join(b.allocator, &.{ sdk.path, "/usr/include" }) catch unreachable);
exe.addIncludePath(std.fs.path.join(b.allocator, &.{ sdk.path, "/usr/include/c++/v1" }) catch unreachable);
@@ -20,7 +22,6 @@ pub fn build(b: *Builder) void {
"-nostdinc++",
});
exe.addObjectFile(std.fs.path.join(b.allocator, &.{ sdk.path, "/usr/lib/libc++.tbd" }) catch unreachable);
- exe.setBuildMode(mode);
const run_cmd = exe.run();
run_cmd.expectStdErrEqual("x: 5\n");
diff --git a/test/link/macho/bugs/13457/build.zig b/test/link/macho/bugs/13457/build.zig
index 2de8c01c6a..3560b4a168 100644
--- a/test/link/macho/bugs/13457/build.zig
+++ b/test/link/macho/bugs/13457/build.zig
@@ -1,16 +1,17 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test the program");
- const exe = b.addExecutable("test", "main.zig");
- exe.setBuildMode(mode);
- exe.setTarget(target);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = target,
+ });
const run = exe.runEmulatable();
test_step.dependOn(&run.step);
diff --git a/test/link/macho/dead_strip/build.zig b/test/link/macho/dead_strip/build.zig
index 25759f5619..d82c81edca 100644
--- a/test/link/macho/dead_strip/build.zig
+++ b/test/link/macho/dead_strip/build.zig
@@ -1,9 +1,7 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test the program");
@@ -11,7 +9,7 @@ pub fn build(b: *Builder) void {
{
// Without -dead_strip, we expect `iAmUnused` symbol present
- const exe = createScenario(b, mode, target);
+ const exe = createScenario(b, optimize, target);
const check = exe.checkObject(.macho);
check.checkInSymtab();
@@ -24,7 +22,7 @@ pub fn build(b: *Builder) void {
{
// With -dead_strip, no `iAmUnused` symbol should be present
- const exe = createScenario(b, mode, target);
+ const exe = createScenario(b, optimize, target);
exe.link_gc_sections = true;
const check = exe.checkObject(.macho);
@@ -37,11 +35,17 @@ pub fn build(b: *Builder) void {
}
}
-fn createScenario(b: *Builder, mode: std.builtin.Mode, target: std.zig.CrossTarget) *LibExeObjectStep {
- const exe = b.addExecutable("test", null);
+fn createScenario(
+ b: *std.Build,
+ optimize: std.builtin.OptimizeMode,
+ target: std.zig.CrossTarget,
+) *std.Build.CompileStep {
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ .target = target,
+ });
exe.addCSourceFile("main.c", &[0][]const u8{});
- exe.setBuildMode(mode);
- exe.setTarget(target);
exe.linkLibC();
return exe;
}
diff --git a/test/link/macho/dead_strip_dylibs/build.zig b/test/link/macho/dead_strip_dylibs/build.zig
index efdaf191bd..8b62cec6e6 100644
--- a/test/link/macho/dead_strip_dylibs/build.zig
+++ b/test/link/macho/dead_strip_dylibs/build.zig
@@ -1,16 +1,14 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test the program");
test_step.dependOn(b.getInstallStep());
{
// Without -dead_strip_dylibs we expect `-la` to include liba.dylib in the final executable
- const exe = createScenario(b, mode);
+ const exe = createScenario(b, optimize);
const check = exe.checkObject(.macho);
check.checkStart("cmd LOAD_DYLIB");
@@ -27,7 +25,7 @@ pub fn build(b: *Builder) void {
{
// With -dead_strip_dylibs, we should include liba.dylib as it's unreachable
- const exe = createScenario(b, mode);
+ const exe = createScenario(b, optimize);
exe.dead_strip_dylibs = true;
const run_cmd = exe.run();
@@ -36,10 +34,12 @@ pub fn build(b: *Builder) void {
}
}
-fn createScenario(b: *Builder, mode: std.builtin.Mode) *LibExeObjectStep {
- const exe = b.addExecutable("test", null);
+fn createScenario(b: *std.Build, optimize: std.builtin.OptimizeMode) *std.Build.CompileStep {
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ });
exe.addCSourceFile("main.c", &[0][]const u8{});
- exe.setBuildMode(mode);
exe.linkLibC();
exe.linkFramework("Cocoa");
return exe;
diff --git a/test/link/macho/dylib/build.zig b/test/link/macho/dylib/build.zig
index a5baf255c6..7a1e2d862c 100644
--- a/test/link/macho/dylib/build.zig
+++ b/test/link/macho/dylib/build.zig
@@ -1,16 +1,18 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const dylib = b.addSharedLibrary("a", null, b.version(1, 0, 0));
- dylib.setBuildMode(mode);
- dylib.setTarget(target);
+ const dylib = b.addSharedLibrary(.{
+ .name = "a",
+ .version = .{ .major = 1, .minor = 0 },
+ .optimize = optimize,
+ .target = target,
+ });
dylib.addCSourceFile("a.c", &.{});
dylib.linkLibC();
dylib.install();
@@ -24,9 +26,11 @@ pub fn build(b: *Builder) void {
test_step.dependOn(&check_dylib.step);
- const exe = b.addExecutable("main", null);
- exe.setTarget(target);
- exe.setBuildMode(mode);
+ const exe = b.addExecutable(.{
+ .name = "main",
+ .optimize = optimize,
+ .target = target,
+ });
exe.addCSourceFile("main.c", &.{});
exe.linkSystemLibrary("a");
exe.linkLibC();
diff --git a/test/link/macho/empty/build.zig b/test/link/macho/empty/build.zig
index ab016fd4bd..586da1511b 100644
--- a/test/link/macho/empty/build.zig
+++ b/test/link/macho/empty/build.zig
@@ -1,21 +1,22 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test the program");
test_step.dependOn(b.getInstallStep());
- const exe = b.addExecutable("test", null);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ .target = target,
+ });
exe.addCSourceFile("main.c", &[0][]const u8{});
exe.addCSourceFile("empty.c", &[0][]const u8{});
- exe.setBuildMode(mode);
- exe.setTarget(target);
exe.linkLibC();
- const run_cmd = std.build.EmulatableRunStep.create(b, "run", exe);
+ const run_cmd = std.Build.EmulatableRunStep.create(b, "run", exe);
run_cmd.expectStdOutEqual("Hello!\n");
test_step.dependOn(&run_cmd.step);
}
diff --git a/test/link/macho/entry/build.zig b/test/link/macho/entry/build.zig
index 0ecca14aa2..4504da9c6c 100644
--- a/test/link/macho/entry/build.zig
+++ b/test/link/macho/entry/build.zig
@@ -1,15 +1,16 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const exe = b.addExecutable("main", null);
- exe.setTarget(.{ .os_tag = .macos });
- exe.setBuildMode(mode);
+ const exe = b.addExecutable(.{
+ .name = "main",
+ .optimize = optimize,
+ .target = .{ .os_tag = .macos },
+ });
exe.addCSourceFile("main.c", &.{});
exe.linkLibC();
exe.entry_symbol_name = "_non_main";
diff --git a/test/link/macho/headerpad/build.zig b/test/link/macho/headerpad/build.zig
index 0730a01d44..3ef17573f8 100644
--- a/test/link/macho/headerpad/build.zig
+++ b/test/link/macho/headerpad/build.zig
@@ -1,17 +1,15 @@
const std = @import("std");
const builtin = @import("builtin");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
{
// Test -headerpad_max_install_names
- const exe = simpleExe(b, mode);
+ const exe = simpleExe(b, optimize);
exe.headerpad_max_install_names = true;
const check = exe.checkObject(.macho);
@@ -36,7 +34,7 @@ pub fn build(b: *Builder) void {
{
// Test -headerpad
- const exe = simpleExe(b, mode);
+ const exe = simpleExe(b, optimize);
exe.headerpad_size = 0x10000;
const check = exe.checkObject(.macho);
@@ -52,7 +50,7 @@ pub fn build(b: *Builder) void {
{
// Test both flags with -headerpad overriding -headerpad_max_install_names
- const exe = simpleExe(b, mode);
+ const exe = simpleExe(b, optimize);
exe.headerpad_max_install_names = true;
exe.headerpad_size = 0x10000;
@@ -69,7 +67,7 @@ pub fn build(b: *Builder) void {
{
// Test both flags with -headerpad_max_install_names overriding -headerpad
- const exe = simpleExe(b, mode);
+ const exe = simpleExe(b, optimize);
exe.headerpad_size = 0x1000;
exe.headerpad_max_install_names = true;
@@ -94,9 +92,11 @@ pub fn build(b: *Builder) void {
}
}
-fn simpleExe(b: *Builder, mode: std.builtin.Mode) *LibExeObjectStep {
- const exe = b.addExecutable("main", null);
- exe.setBuildMode(mode);
+fn simpleExe(b: *std.Build, optimize: std.builtin.OptimizeMode) *std.Build.CompileStep {
+ const exe = b.addExecutable(.{
+ .name = "main",
+ .optimize = optimize,
+ });
exe.addCSourceFile("main.c", &.{});
exe.linkLibC();
exe.linkFramework("CoreFoundation");
diff --git a/test/link/macho/linksection/build.zig b/test/link/macho/linksection/build.zig
index 9204499803..227d4eeb63 100644
--- a/test/link/macho/linksection/build.zig
+++ b/test/link/macho/linksection/build.zig
@@ -1,15 +1,18 @@
const std = @import("std");
-pub fn build(b: *std.build.Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target = std.zig.CrossTarget{ .os_tag = .macos };
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const obj = b.addObject("test", "main.zig");
- obj.setBuildMode(mode);
- obj.setTarget(target);
+ const obj = b.addObject(.{
+ .name = "test",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = target,
+ });
const check = obj.checkObject(.macho);
@@ -19,7 +22,7 @@ pub fn build(b: *std.build.Builder) void {
check.checkInSymtab();
check.checkNext("{*} (__TEXT,__TestFn) external _testFn");
- if (mode == .Debug) {
+ if (optimize == .Debug) {
check.checkInSymtab();
check.checkNext("{*} (__TEXT,__TestGenFnA) _main.testGenericFn__anon_{*}");
}
diff --git a/test/link/macho/needed_framework/build.zig b/test/link/macho/needed_framework/build.zig
index 4315935941..8b6e3dd87f 100644
--- a/test/link/macho/needed_framework/build.zig
+++ b/test/link/macho/needed_framework/build.zig
@@ -1,18 +1,18 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test the program");
test_step.dependOn(b.getInstallStep());
// -dead_strip_dylibs
// -needed_framework Cocoa
- const exe = b.addExecutable("test", null);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ });
exe.addCSourceFile("main.c", &[0][]const u8{});
- exe.setBuildMode(mode);
exe.linkLibC();
exe.linkFrameworkNeeded("Cocoa");
exe.dead_strip_dylibs = true;
diff --git a/test/link/macho/needed_library/build.zig b/test/link/macho/needed_library/build.zig
index a314fd2201..92a73d22b7 100644
--- a/test/link/macho/needed_library/build.zig
+++ b/test/link/macho/needed_library/build.zig
@@ -1,27 +1,30 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test the program");
test_step.dependOn(b.getInstallStep());
- const dylib = b.addSharedLibrary("a", null, b.version(1, 0, 0));
- dylib.setTarget(target);
- dylib.setBuildMode(mode);
+ const dylib = b.addSharedLibrary(.{
+ .name = "a",
+ .version = .{ .major = 1, .minor = 0 },
+ .optimize = optimize,
+ .target = target,
+ });
dylib.addCSourceFile("a.c", &.{});
dylib.linkLibC();
dylib.install();
// -dead_strip_dylibs
// -needed-la
- const exe = b.addExecutable("test", null);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ .target = target,
+ });
exe.addCSourceFile("main.c", &[0][]const u8{});
- exe.setBuildMode(mode);
- exe.setTarget(target);
exe.linkLibC();
exe.linkSystemLibraryNeeded("a");
exe.addLibraryPath(b.pathFromRoot("zig-out/lib"));
diff --git a/test/link/macho/objc/build.zig b/test/link/macho/objc/build.zig
index d7fd872f77..10d293baab 100644
--- a/test/link/macho/objc/build.zig
+++ b/test/link/macho/objc/build.zig
@@ -1,21 +1,22 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test the program");
- const exe = b.addExecutable("test", null);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ });
exe.addIncludePath(".");
exe.addCSourceFile("Foo.m", &[0][]const u8{});
exe.addCSourceFile("test.m", &[0][]const u8{});
- exe.setBuildMode(mode);
exe.linkLibC();
// TODO when we figure out how to ship framework stubs for cross-compilation,
// populate paths to the sysroot here.
exe.linkFramework("Foundation");
- const run_cmd = std.build.EmulatableRunStep.create(b, "run", exe);
+ const run_cmd = std.Build.EmulatableRunStep.create(b, "run", exe);
test_step.dependOn(&run_cmd.step);
}
diff --git a/test/link/macho/objcpp/build.zig b/test/link/macho/objcpp/build.zig
index 767578e225..2a3459be50 100644
--- a/test/link/macho/objcpp/build.zig
+++ b/test/link/macho/objcpp/build.zig
@@ -1,17 +1,18 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test the program");
- const exe = b.addExecutable("test", null);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ });
b.default_step.dependOn(&exe.step);
exe.addIncludePath(".");
exe.addCSourceFile("Foo.mm", &[0][]const u8{});
exe.addCSourceFile("test.mm", &[0][]const u8{});
- exe.setBuildMode(mode);
exe.linkLibCpp();
// TODO when we figure out how to ship framework stubs for cross-compilation,
// populate paths to the sysroot here.
diff --git a/test/link/macho/pagezero/build.zig b/test/link/macho/pagezero/build.zig
index 5a7044d960..0a8471b919 100644
--- a/test/link/macho/pagezero/build.zig
+++ b/test/link/macho/pagezero/build.zig
@@ -1,17 +1,18 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
{
- const exe = b.addExecutable("pagezero", null);
- exe.setTarget(target);
- exe.setBuildMode(mode);
+ const exe = b.addExecutable(.{
+ .name = "pagezero",
+ .optimize = optimize,
+ .target = target,
+ });
exe.addCSourceFile("main.c", &.{});
exe.linkLibC();
exe.pagezero_size = 0x4000;
@@ -29,9 +30,11 @@ pub fn build(b: *Builder) void {
}
{
- const exe = b.addExecutable("no_pagezero", null);
- exe.setTarget(target);
- exe.setBuildMode(mode);
+ const exe = b.addExecutable(.{
+ .name = "no_pagezero",
+ .optimize = optimize,
+ .target = target,
+ });
exe.addCSourceFile("main.c", &.{});
exe.linkLibC();
exe.pagezero_size = 0;
diff --git a/test/link/macho/search_strategy/build.zig b/test/link/macho/search_strategy/build.zig
index e556b5bb23..62757f885b 100644
--- a/test/link/macho/search_strategy/build.zig
+++ b/test/link/macho/search_strategy/build.zig
@@ -1,9 +1,7 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test");
@@ -11,7 +9,7 @@ pub fn build(b: *Builder) void {
{
// -search_dylibs_first
- const exe = createScenario(b, mode, target);
+ const exe = createScenario(b, optimize, target);
exe.search_strategy = .dylibs_first;
const check = exe.checkObject(.macho);
@@ -26,40 +24,51 @@ pub fn build(b: *Builder) void {
{
// -search_paths_first
- const exe = createScenario(b, mode, target);
+ const exe = createScenario(b, optimize, target);
exe.search_strategy = .paths_first;
- const run = std.build.EmulatableRunStep.create(b, "run", exe);
+ const run = std.Build.EmulatableRunStep.create(b, "run", exe);
run.cwd = b.pathFromRoot(".");
run.expectStdOutEqual("Hello world");
test_step.dependOn(&run.step);
}
}
-fn createScenario(b: *Builder, mode: std.builtin.Mode, target: std.zig.CrossTarget) *LibExeObjectStep {
- const static = b.addStaticLibrary("a", null);
- static.setTarget(target);
- static.setBuildMode(mode);
+fn createScenario(
+ b: *std.Build,
+ optimize: std.builtin.OptimizeMode,
+ target: std.zig.CrossTarget,
+) *std.Build.CompileStep {
+ const static = b.addStaticLibrary(.{
+ .name = "a",
+ .optimize = optimize,
+ .target = target,
+ });
static.addCSourceFile("a.c", &.{});
static.linkLibC();
- static.override_dest_dir = std.build.InstallDir{
+ static.override_dest_dir = std.Build.InstallDir{
.custom = "static",
};
static.install();
- const dylib = b.addSharedLibrary("a", null, b.version(1, 0, 0));
- dylib.setTarget(target);
- dylib.setBuildMode(mode);
+ const dylib = b.addSharedLibrary(.{
+ .name = "a",
+ .version = .{ .major = 1, .minor = 0 },
+ .optimize = optimize,
+ .target = target,
+ });
dylib.addCSourceFile("a.c", &.{});
dylib.linkLibC();
- dylib.override_dest_dir = std.build.InstallDir{
+ dylib.override_dest_dir = std.Build.InstallDir{
.custom = "dynamic",
};
dylib.install();
- const exe = b.addExecutable("main", null);
- exe.setTarget(target);
- exe.setBuildMode(mode);
+ const exe = b.addExecutable(.{
+ .name = "main",
+ .optimize = optimize,
+ .target = target,
+ });
exe.addCSourceFile("main.c", &.{});
exe.linkSystemLibraryName("a");
exe.linkLibC();
diff --git a/test/link/macho/stack_size/build.zig b/test/link/macho/stack_size/build.zig
index 91c44baf52..3529a134eb 100644
--- a/test/link/macho/stack_size/build.zig
+++ b/test/link/macho/stack_size/build.zig
@@ -1,16 +1,17 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const exe = b.addExecutable("main", null);
- exe.setTarget(target);
- exe.setBuildMode(mode);
+ const exe = b.addExecutable(.{
+ .name = "main",
+ .optimize = optimize,
+ .target = target,
+ });
exe.addCSourceFile("main.c", &.{});
exe.linkLibC();
exe.stack_size = 0x100000000;
diff --git a/test/link/macho/strict_validation/build.zig b/test/link/macho/strict_validation/build.zig
index 0ea150252c..408076657b 100644
--- a/test/link/macho/strict_validation/build.zig
+++ b/test/link/macho/strict_validation/build.zig
@@ -1,18 +1,19 @@
const std = @import("std");
const builtin = @import("builtin");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const exe = b.addExecutable("main", "main.zig");
- exe.setBuildMode(mode);
- exe.setTarget(target);
+ const exe = b.addExecutable(.{
+ .name = "main",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = target,
+ });
exe.linkLibC();
const check_exe = exe.checkObject(.macho);
diff --git a/test/link/macho/tls/build.zig b/test/link/macho/tls/build.zig
index 031a05cedf..c77588cb5d 100644
--- a/test/link/macho/tls/build.zig
+++ b/test/link/macho/tls/build.zig
@@ -1,19 +1,23 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
- const lib = b.addSharedLibrary("a", null, b.version(1, 0, 0));
- lib.setBuildMode(mode);
- lib.setTarget(target);
+ const lib = b.addSharedLibrary(.{
+ .name = "a",
+ .version = .{ .major = 1, .minor = 0 },
+ .optimize = optimize,
+ .target = target,
+ });
lib.addCSourceFile("a.c", &.{});
lib.linkLibC();
- const test_exe = b.addTest("main.zig");
- test_exe.setBuildMode(mode);
- test_exe.setTarget(target);
+ const test_exe = b.addTest(.{
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = target,
+ });
test_exe.linkLibrary(lib);
test_exe.linkLibC();
diff --git a/test/link/macho/unwind_info/build.zig b/test/link/macho/unwind_info/build.zig
index cc00854465..408f762f5d 100644
--- a/test/link/macho/unwind_info/build.zig
+++ b/test/link/macho/unwind_info/build.zig
@@ -1,26 +1,24 @@
const std = @import("std");
const builtin = @import("builtin");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test the program");
- testUnwindInfo(b, test_step, mode, target, false);
- testUnwindInfo(b, test_step, mode, target, true);
+ testUnwindInfo(b, test_step, optimize, target, false);
+ testUnwindInfo(b, test_step, optimize, target, true);
}
fn testUnwindInfo(
- b: *Builder,
- test_step: *std.build.Step,
- mode: std.builtin.Mode,
+ b: *std.Build,
+ test_step: *std.Build.Step,
+ optimize: std.builtin.OptimizeMode,
target: std.zig.CrossTarget,
dead_strip: bool,
) void {
- const exe = createScenario(b, mode, target);
+ const exe = createScenario(b, optimize, target);
exe.link_gc_sections = dead_strip;
const check = exe.checkObject(.macho);
@@ -52,8 +50,16 @@ fn testUnwindInfo(
test_step.dependOn(&run_cmd.step);
}
-fn createScenario(b: *Builder, mode: std.builtin.Mode, target: std.zig.CrossTarget) *LibExeObjectStep {
- const exe = b.addExecutable("test", null);
+fn createScenario(
+ b: *std.Build,
+ optimize: std.builtin.OptimizeMode,
+ target: std.zig.CrossTarget,
+) *std.Build.CompileStep {
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ .target = target,
+ });
b.default_step.dependOn(&exe.step);
exe.addIncludePath(".");
exe.addCSourceFiles(&[_][]const u8{
@@ -61,8 +67,6 @@ fn createScenario(b: *Builder, mode: std.builtin.Mode, target: std.zig.CrossTarg
"simple_string.cpp",
"simple_string_owner.cpp",
}, &[0][]const u8{});
- exe.setBuildMode(mode);
- exe.setTarget(target);
exe.linkLibCpp();
return exe;
}
diff --git a/test/link/macho/uuid/build.zig b/test/link/macho/uuid/build.zig
index 314febdb20..6a68263fbf 100644
--- a/test/link/macho/uuid/build.zig
+++ b/test/link/macho/uuid/build.zig
@@ -1,8 +1,6 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
@@ -27,23 +25,23 @@ pub fn build(b: *Builder) void {
}
fn testUuid(
- b: *Builder,
- test_step: *std.build.Step,
- mode: std.builtin.Mode,
+ b: *std.Build,
+ test_step: *std.Build.Step,
+ optimize: std.builtin.OptimizeMode,
target: std.zig.CrossTarget,
comptime exp: []const u8,
) void {
// The calculated UUID value is independent of debug info and so it should
// stay the same across builds.
{
- const dylib = simpleDylib(b, mode, target);
+ const dylib = simpleDylib(b, optimize, target);
const check_dylib = dylib.checkObject(.macho);
check_dylib.checkStart("cmd UUID");
check_dylib.checkNext("uuid " ++ exp);
test_step.dependOn(&check_dylib.step);
}
{
- const dylib = simpleDylib(b, mode, target);
+ const dylib = simpleDylib(b, optimize, target);
dylib.strip = true;
const check_dylib = dylib.checkObject(.macho);
check_dylib.checkStart("cmd UUID");
@@ -52,10 +50,17 @@ fn testUuid(
}
}
-fn simpleDylib(b: *Builder, mode: std.builtin.Mode, target: std.zig.CrossTarget) *LibExeObjectStep {
- const dylib = b.addSharedLibrary("test", null, b.version(1, 0, 0));
- dylib.setTarget(target);
- dylib.setBuildMode(mode);
+fn simpleDylib(
+ b: *std.Build,
+ optimize: std.builtin.OptimizeMode,
+ target: std.zig.CrossTarget,
+) *std.Build.CompileStep {
+ const dylib = b.addSharedLibrary(.{
+ .name = "test",
+ .version = .{ .major = 1, .minor = 0 },
+ .optimize = optimize,
+ .target = target,
+ });
dylib.addCSourceFile("test.c", &.{});
dylib.linkLibC();
return dylib;
diff --git a/test/link/macho/weak_framework/build.zig b/test/link/macho/weak_framework/build.zig
index 44675a15f8..ca28458d77 100644
--- a/test/link/macho/weak_framework/build.zig
+++ b/test/link/macho/weak_framework/build.zig
@@ -1,16 +1,16 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test the program");
test_step.dependOn(b.getInstallStep());
- const exe = b.addExecutable("test", null);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .optimize = optimize,
+ });
exe.addCSourceFile("main.c", &[0][]const u8{});
- exe.setBuildMode(mode);
exe.linkLibC();
exe.linkFrameworkWeak("Cocoa");
diff --git a/test/link/macho/weak_library/build.zig b/test/link/macho/weak_library/build.zig
index 79f67bd7df..de5aa45e30 100644
--- a/test/link/macho/weak_library/build.zig
+++ b/test/link/macho/weak_library/build.zig
@@ -1,25 +1,28 @@
const std = @import("std");
-const Builder = std.build.Builder;
-const LibExeObjectStep = std.build.LibExeObjStep;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const target: std.zig.CrossTarget = .{ .os_tag = .macos };
const test_step = b.step("test", "Test the program");
test_step.dependOn(b.getInstallStep());
- const dylib = b.addSharedLibrary("a", null, b.version(1, 0, 0));
- dylib.setTarget(target);
- dylib.setBuildMode(mode);
+ const dylib = b.addSharedLibrary(.{
+ .name = "a",
+ .version = .{ .major = 1, .minor = 0, .patch = 0 },
+ .target = target,
+ .optimize = optimize,
+ });
dylib.addCSourceFile("a.c", &.{});
dylib.linkLibC();
dylib.install();
- const exe = b.addExecutable("test", null);
+ const exe = b.addExecutable(.{
+ .name = "test",
+ .target = target,
+ .optimize = optimize,
+ });
exe.addCSourceFile("main.c", &[0][]const u8{});
- exe.setTarget(target);
- exe.setBuildMode(mode);
exe.linkLibC();
exe.linkSystemLibraryWeak("a");
exe.addLibraryPath(b.pathFromRoot("zig-out/lib"));
diff --git a/test/link/static_lib_as_system_lib/build.zig b/test/link/static_lib_as_system_lib/build.zig
index f39f3fac2a..b6cf32d711 100644
--- a/test/link/static_lib_as_system_lib/build.zig
+++ b/test/link/static_lib_as_system_lib/build.zig
@@ -1,17 +1,23 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
+ const target = b.standardTargetOptions(.{});
- const lib_a = b.addStaticLibrary("a", null);
+ const lib_a = b.addStaticLibrary(.{
+ .name = "a",
+ .optimize = optimize,
+ .target = target,
+ });
lib_a.addCSourceFile("a.c", &[_][]const u8{});
- lib_a.setBuildMode(mode);
lib_a.addIncludePath(".");
lib_a.install();
- const test_exe = b.addTest("main.zig");
- test_exe.setBuildMode(mode);
+ const test_exe = b.addTest(.{
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = target,
+ });
test_exe.linkSystemLibrary("a"); // force linking liba.a as -la
test_exe.addSystemIncludePath(".");
const search_path = std.fs.path.join(b.allocator, &[_][]const u8{ b.install_path, "lib" }) catch unreachable;
diff --git a/test/link/wasm/archive/build.zig b/test/link/wasm/archive/build.zig
index 7efa88999a..342c4c08d1 100644
--- a/test/link/wasm/archive/build.zig
+++ b/test/link/wasm/archive/build.zig
@@ -1,17 +1,17 @@
const std = @import("std");
-const Builder = std.build.Builder;
-
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
// The code in question will pull-in compiler-rt,
// and therefore link with its archive file.
- const lib = b.addSharedLibrary("main", "main.zig", .unversioned);
- lib.setBuildMode(mode);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const lib = b.addSharedLibrary(.{
+ .name = "main",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = b.standardOptimizeOption(.{}),
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ });
lib.use_llvm = false;
lib.use_lld = false;
lib.strip = false;
diff --git a/test/link/wasm/basic-features/build.zig b/test/link/wasm/basic-features/build.zig
index 2c565f9263..9f57066518 100644
--- a/test/link/wasm/basic-features/build.zig
+++ b/test/link/wasm/basic-features/build.zig
@@ -1,14 +1,18 @@
const std = @import("std");
-pub fn build(b: *std.build.Builder) void {
- const mode = b.standardReleaseOptions();
-
+pub fn build(b: *std.Build) void {
// Library with explicitly set cpu features
- const lib = b.addSharedLibrary("lib", "main.zig", .unversioned);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
- lib.target.cpu_model = .{ .explicit = &std.Target.wasm.cpu.mvp };
- lib.target.cpu_features_add.addFeature(0); // index 0 == atomics (see std.Target.wasm.Features)
- lib.setBuildMode(mode);
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = b.standardOptimizeOption(.{}),
+ .target = .{
+ .cpu_arch = .wasm32,
+ .cpu_model = .{ .explicit = &std.Target.wasm.cpu.mvp },
+ .cpu_features_add = std.Target.wasm.featureSet(&.{.atomics}),
+ .os_tag = .freestanding,
+ },
+ });
lib.use_llvm = false;
lib.use_lld = false;
diff --git a/test/link/wasm/bss/build.zig b/test/link/wasm/bss/build.zig
index e234a3f402..1017e70a71 100644
--- a/test/link/wasm/bss/build.zig
+++ b/test/link/wasm/bss/build.zig
@@ -1,15 +1,15 @@
const std = @import("std");
-const Builder = std.build.Builder;
-
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const lib = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- lib.setBuildMode(mode);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = b.standardOptimizeOption(.{}),
+ });
lib.use_llvm = false;
lib.use_lld = false;
lib.strip = false;
diff --git a/test/link/wasm/export-data/build.zig b/test/link/wasm/export-data/build.zig
index 283566dab3..c989153e47 100644
--- a/test/link/wasm/export-data/build.zig
+++ b/test/link/wasm/export-data/build.zig
@@ -1,13 +1,15 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const lib = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- lib.setBuildMode(.ReleaseSafe); // to make the output deterministic in address positions
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .optimize = .ReleaseSafe, // to make the output deterministic in address positions
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ });
lib.use_lld = false;
lib.export_symbol_names = &.{ "foo", "bar" };
lib.global_base = 0; // put data section at address 0 to make data symbols easier to parse
@@ -23,8 +25,8 @@ pub fn build(b: *Builder) void {
check_lib.checkNext("type i32");
check_lib.checkNext("mutable false");
check_lib.checkNext("i32.const {bar_address}");
- check_lib.checkComputeCompare("foo_address", .{ .op = .eq, .value = .{ .literal = 0 } });
- check_lib.checkComputeCompare("bar_address", .{ .op = .eq, .value = .{ .literal = 4 } });
+ check_lib.checkComputeCompare("foo_address", .{ .op = .eq, .value = .{ .literal = 4 } });
+ check_lib.checkComputeCompare("bar_address", .{ .op = .eq, .value = .{ .literal = 0 } });
check_lib.checkStart("Section export");
check_lib.checkNext("entries 3");
diff --git a/test/link/wasm/export/build.zig b/test/link/wasm/export/build.zig
index 181e77e296..69c34a320e 100644
--- a/test/link/wasm/export/build.zig
+++ b/test/link/wasm/export/build.zig
@@ -1,24 +1,33 @@
const std = @import("std");
-pub fn build(b: *std.build.Builder) void {
- const mode = b.standardReleaseOptions();
-
- const no_export = b.addSharedLibrary("no-export", "main.zig", .unversioned);
- no_export.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
- no_export.setBuildMode(mode);
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
+
+ const no_export = b.addSharedLibrary(.{
+ .name = "no-export",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ });
no_export.use_llvm = false;
no_export.use_lld = false;
- const dynamic_export = b.addSharedLibrary("dynamic", "main.zig", .unversioned);
- dynamic_export.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
- dynamic_export.setBuildMode(mode);
+ const dynamic_export = b.addSharedLibrary(.{
+ .name = "dynamic",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ });
dynamic_export.rdynamic = true;
dynamic_export.use_llvm = false;
dynamic_export.use_lld = false;
- const force_export = b.addSharedLibrary("force", "main.zig", .unversioned);
- force_export.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
- force_export.setBuildMode(mode);
+ const force_export = b.addSharedLibrary(.{
+ .name = "force",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ });
force_export.export_symbol_names = &.{"foo"};
force_export.use_llvm = false;
force_export.use_lld = false;
diff --git a/test/link/wasm/extern-mangle/build.zig b/test/link/wasm/extern-mangle/build.zig
index ae46117f18..19913e6eca 100644
--- a/test/link/wasm/extern-mangle/build.zig
+++ b/test/link/wasm/extern-mangle/build.zig
@@ -1,15 +1,15 @@
const std = @import("std");
-const Builder = std.build.Builder;
-
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const lib = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- lib.setBuildMode(mode);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = b.standardOptimizeOption(.{}),
+ });
lib.import_symbols = true; // import `a` and `b`
lib.rdynamic = true; // export `foo`
lib.install();
diff --git a/test/link/wasm/extern/build.zig b/test/link/wasm/extern/build.zig
index 88cce88d98..569d94091a 100644
--- a/test/link/wasm/extern/build.zig
+++ b/test/link/wasm/extern/build.zig
@@ -1,10 +1,12 @@
const std = @import("std");
-pub fn build(b: *std.build.Builder) void {
- const mode = b.standardReleaseOptions();
- const exe = b.addExecutable("extern", "main.zig");
- exe.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .wasi });
- exe.setBuildMode(mode);
+pub fn build(b: *std.Build) void {
+ const exe = b.addExecutable(.{
+ .name = "extern",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = b.standardOptimizeOption(.{}),
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .wasi },
+ });
exe.addCSourceFile("foo.c", &.{});
exe.use_llvm = false;
exe.use_lld = false;
diff --git a/test/link/wasm/function-table/build.zig b/test/link/wasm/function-table/build.zig
index f7572bd6b1..4c25d0d860 100644
--- a/test/link/wasm/function-table/build.zig
+++ b/test/link/wasm/function-table/build.zig
@@ -1,29 +1,37 @@
const std = @import("std");
-const Builder = std.build.Builder;
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const import_table = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- import_table.setBuildMode(mode);
- import_table.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const import_table = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = optimize,
+ });
import_table.use_llvm = false;
import_table.use_lld = false;
import_table.import_table = true;
- const export_table = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- export_table.setBuildMode(mode);
- export_table.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const export_table = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = optimize,
+ });
export_table.use_llvm = false;
export_table.use_lld = false;
export_table.export_table = true;
- const regular_table = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- regular_table.setBuildMode(mode);
- regular_table.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const regular_table = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = optimize,
+ });
regular_table.use_llvm = false;
regular_table.use_lld = false;
diff --git a/test/link/wasm/infer-features/build.zig b/test/link/wasm/infer-features/build.zig
index b50caf7264..d6d706a33d 100644
--- a/test/link/wasm/infer-features/build.zig
+++ b/test/link/wasm/infer-features/build.zig
@@ -1,21 +1,32 @@
const std = @import("std");
-pub fn build(b: *std.build.Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
+ const optimize = b.standardOptimizeOption(.{});
// Wasm Object file which we will use to infer the features from
- const c_obj = b.addObject("c_obj", null);
- c_obj.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
- c_obj.target.cpu_model = .{ .explicit = &std.Target.wasm.cpu.bleeding_edge };
+ const c_obj = b.addObject(.{
+ .name = "c_obj",
+ .optimize = optimize,
+ .target = .{
+ .cpu_arch = .wasm32,
+ .cpu_model = .{ .explicit = &std.Target.wasm.cpu.bleeding_edge },
+ .os_tag = .freestanding,
+ },
+ });
c_obj.addCSourceFile("foo.c", &.{});
- c_obj.setBuildMode(mode);
// Wasm library that doesn't have any features specified. This will
// infer its featureset from other linked object files.
- const lib = b.addSharedLibrary("lib", "main.zig", .unversioned);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
- lib.target.cpu_model = .{ .explicit = &std.Target.wasm.cpu.mvp };
- lib.setBuildMode(mode);
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "main.zig" },
+ .optimize = optimize,
+ .target = .{
+ .cpu_arch = .wasm32,
+ .cpu_model = .{ .explicit = &std.Target.wasm.cpu.mvp },
+ .os_tag = .freestanding,
+ },
+ });
lib.use_llvm = false;
lib.use_lld = false;
lib.addObject(c_obj);
diff --git a/test/link/wasm/producers/build.zig b/test/link/wasm/producers/build.zig
index 7557b4fa41..2589b0dfcf 100644
--- a/test/link/wasm/producers/build.zig
+++ b/test/link/wasm/producers/build.zig
@@ -1,16 +1,16 @@
const std = @import("std");
const builtin = @import("builtin");
-const Builder = std.build.Builder;
-
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const lib = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- lib.setBuildMode(mode);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = b.standardOptimizeOption(.{}),
+ });
lib.use_llvm = false;
lib.use_lld = false;
lib.strip = false;
diff --git a/test/link/wasm/segments/build.zig b/test/link/wasm/segments/build.zig
index 1b2cdf87ab..76160e905f 100644
--- a/test/link/wasm/segments/build.zig
+++ b/test/link/wasm/segments/build.zig
@@ -1,15 +1,15 @@
const std = @import("std");
-const Builder = std.build.Builder;
-
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const lib = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- lib.setBuildMode(mode);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = b.standardOptimizeOption(.{}),
+ });
lib.use_llvm = false;
lib.use_lld = false;
lib.strip = false;
diff --git a/test/link/wasm/stack_pointer/build.zig b/test/link/wasm/stack_pointer/build.zig
index 5b67c3caa3..95c7643880 100644
--- a/test/link/wasm/stack_pointer/build.zig
+++ b/test/link/wasm/stack_pointer/build.zig
@@ -1,15 +1,15 @@
const std = @import("std");
-const Builder = std.build.Builder;
-
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const lib = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- lib.setBuildMode(mode);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = b.standardOptimizeOption(.{}),
+ });
lib.use_llvm = false;
lib.use_lld = false;
lib.strip = false;
diff --git a/test/link/wasm/type/build.zig b/test/link/wasm/type/build.zig
index fbae6dc741..816b57ccab 100644
--- a/test/link/wasm/type/build.zig
+++ b/test/link/wasm/type/build.zig
@@ -1,15 +1,15 @@
const std = @import("std");
-const Builder = std.build.Builder;
-
-pub fn build(b: *Builder) void {
- const mode = b.standardReleaseOptions();
+pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Test");
test_step.dependOn(b.getInstallStep());
- const lib = b.addSharedLibrary("lib", "lib.zig", .unversioned);
- lib.setBuildMode(mode);
- lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding });
+ const lib = b.addSharedLibrary(.{
+ .name = "lib",
+ .root_source_file = .{ .path = "lib.zig" },
+ .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
+ .optimize = b.standardOptimizeOption(.{}),
+ });
lib.use_llvm = false;
lib.use_lld = false;
lib.strip = false;