zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 85d87c9ca1f0c0c7fe9efa5ab54e306c6a309de3 (tree)
parent 9f84f7f921d8a74926bb2f0ca1969b7b00f08172
Author: kcbanner <kcbanner@gmail.com>
Date:   Mon, 21 Oct 2024 20:24:58 -0400

coff: fix incorrect default `image_base` values and re-enable shared library tests on Windows

This was the cause of aarch64-windows shared libraries causing  "bad image" errors
during load-time linking. I also re-enabled the tests that were surfacing this bug.

Diffstat:
Msrc/link/Coff.zig | 10+++++++---
Mtest/standalone/c_compiler/build.zig | 5-----
Mtest/standalone/coff_dwarf/build.zig | 5-----
Mtest/standalone/load_dynamic_library/build.zig | 5-----
Mtest/standalone/shared_library/build.zig | 5-----
5 files changed, 7 insertions(+), 23 deletions(-)

diff --git a/src/link/Coff.zig b/src/link/Coff.zig @@ -274,11 +274,15 @@ pub fn createEmpty( .image_base = options.image_base orelse switch (output_mode) { .Exe => switch (target.cpu.arch) { - .aarch64 => 0x140000000, - .thumb, .x86_64, .x86 => 0x400000, + .aarch64, .x86_64 => 0x140000000, + .thumb, .x86 => 0x400000, + else => unreachable, + }, + .Lib => switch (target.cpu.arch) { + .aarch64, .x86_64 => 0x180000000, + .thumb, .x86 => 0x10000000, else => unreachable, }, - .Lib => 0x10000000, .Obj => 0, }, diff --git a/test/standalone/c_compiler/build.zig b/test/standalone/c_compiler/build.zig @@ -5,11 +5,6 @@ pub fn build(b: *std.Build) void { const test_step = b.step("test", "Test it"); b.default_step = test_step; - if (builtin.os.tag == .windows) { - // https://github.com/ziglang/zig/issues/16965 - return; - } - add(b, test_step, "test_c_Debug", "test_cpp_Debug", .Debug); add(b, test_step, "test_c_ReleaseFast", "test_cpp_ReleaseFast", .ReleaseFast); add(b, test_step, "test_c_ReleaseSmall", "test_cpp_ReleaseSmall", .ReleaseSmall); diff --git a/test/standalone/coff_dwarf/build.zig b/test/standalone/coff_dwarf/build.zig @@ -12,11 +12,6 @@ pub fn build(b: *std.Build) void { else b.resolveTargetQuery(.{ .os_tag = .windows }); - if (builtin.cpu.arch == .aarch64) { - // https://github.com/ziglang/zig/issues/18427 - return; - } - const exe = b.addExecutable(.{ .name = "main", .root_source_file = b.path("main.zig"), diff --git a/test/standalone/load_dynamic_library/build.zig b/test/standalone/load_dynamic_library/build.zig @@ -10,11 +10,6 @@ pub fn build(b: *std.Build) void { if (builtin.os.tag == .wasi) return; - if (builtin.os.tag == .windows) { - // https://github.com/ziglang/zig/issues/16960 - return; - } - const lib = b.addSharedLibrary(.{ .name = "add", .root_source_file = b.path("add.zig"), diff --git a/test/standalone/shared_library/build.zig b/test/standalone/shared_library/build.zig @@ -4,11 +4,6 @@ pub fn build(b: *std.Build) void { const test_step = b.step("test", "Test it"); b.default_step = test_step; - if (@import("builtin").os.tag == .windows) { - // https://github.com/ziglang/zig/issues/16959 - return; - } - const optimize: std.builtin.OptimizeMode = .Debug; const target = b.graph.host; const lib = b.addSharedLibrary(.{