diff --git a/test/link/build.zig.zon b/test/link/build.zig.zon index d304212c05..59490fa741 100644 --- a/test/link/build.zig.zon +++ b/test/link/build.zig.zon @@ -24,9 +24,6 @@ .wasm_basic_features = .{ .path = "wasm/basic-features", }, - .wasm_bss = .{ - .path = "wasm/bss", - }, .wasm_export = .{ .path = "wasm/export", }, diff --git a/test/link/wasm/bss/build.zig b/test/link/wasm/bss/build.zig deleted file mode 100644 index 2d4cf84b62..0000000000 --- a/test/link/wasm/bss/build.zig +++ /dev/null @@ -1,91 +0,0 @@ -const std = @import("std"); - -pub const requires_stage2 = true; - -pub fn build(b: *std.Build) void { - const test_step = b.step("test", "Test"); - b.default_step = test_step; - - add(b, test_step, .Debug, true); - add(b, test_step, .ReleaseFast, false); - add(b, test_step, .ReleaseSmall, false); - add(b, test_step, .ReleaseSafe, true); -} - -fn add(b: *std.Build, test_step: *std.Build.Step, optimize_mode: std.builtin.OptimizeMode, is_safe: bool) void { - { - const lib = b.addExecutable(.{ - .name = "lib", - .root_module = b.createModule(.{ - .root_source_file = b.path("lib.zig"), - .target = b.resolveTargetQuery(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }), - .optimize = optimize_mode, - .strip = false, - }), - }); - lib.entry = .disabled; - lib.use_llvm = false; - lib.use_lld = false; - // to make sure the bss segment is emitted, we must import memory - lib.import_memory = true; - lib.link_gc_sections = false; - - const check_lib = lib.checkObject(); - - // since we import memory, make sure it exists with the correct naming - check_lib.checkInHeaders(); - check_lib.checkExact("Section import"); - check_lib.checkExact("entries 1"); - check_lib.checkExact("module env"); // default module name is "env" - check_lib.checkExact("name memory"); // as per linker specification - - // since we are importing memory, ensure it's not exported - check_lib.checkInHeaders(); - check_lib.checkNotPresent("Section export"); - - // validate the name of the stack pointer - check_lib.checkInHeaders(); - check_lib.checkExact("Section custom"); - check_lib.checkExact("type data_segment"); - check_lib.checkExact("names 1"); - // for safe optimization modes `undefined` is stored in data instead of bss. - if (is_safe) { - check_lib.checkExact("index 0"); - check_lib.checkExact("name .data"); - check_lib.checkNotPresent("name .bss"); - } else { - check_lib.checkExact("index 0"); // bss section always last - check_lib.checkExact("name .bss"); - } - test_step.dependOn(&check_lib.step); - } - - // verify zero'd declaration is stored in bss for all optimization modes. - { - const lib = b.addExecutable(.{ - .name = "lib", - .root_module = b.createModule(.{ - .root_source_file = b.path("lib2.zig"), - .target = b.resolveTargetQuery(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }), - .optimize = optimize_mode, - .strip = false, - }), - }); - lib.entry = .disabled; - lib.use_llvm = false; - lib.use_lld = false; - // to make sure the bss segment is emitted, we must import memory - lib.import_memory = true; - lib.link_gc_sections = false; - - const check_lib = lib.checkObject(); - check_lib.checkInHeaders(); - check_lib.checkExact("Section custom"); - check_lib.checkExact("type data_segment"); - check_lib.checkExact("names 1"); - check_lib.checkExact("index 0"); - check_lib.checkExact("name .bss"); - - test_step.dependOn(&check_lib.step); - } -} diff --git a/test/link/wasm/bss/lib.zig b/test/link/wasm/bss/lib.zig deleted file mode 100644 index 5a05d4d6e2..0000000000 --- a/test/link/wasm/bss/lib.zig +++ /dev/null @@ -1,9 +0,0 @@ -pub var bss: u32 = undefined; - -fn foo() callconv(.c) u32 { - return bss; -} - -comptime { - @export(&foo, .{ .name = "foo", .visibility = .hidden }); -} diff --git a/test/link/wasm/bss/lib2.zig b/test/link/wasm/bss/lib2.zig deleted file mode 100644 index 2cf1ef87da..0000000000 --- a/test/link/wasm/bss/lib2.zig +++ /dev/null @@ -1,9 +0,0 @@ -pub var bss: u32 = 0; - -fn foo() callconv(.c) u32 { - return bss; -} - -comptime { - @export(&foo, .{ .name = "foo", .visibility = .hidden }); -}