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.
This commit is contained in:
kcbanner 2024-10-21 20:24:58 -04:00 committed by Andrew Kelley
parent 9f84f7f921
commit 85d87c9ca1
5 changed files with 7 additions and 23 deletions

View File

@ -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,
},

View File

@ -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);

View File

@ -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"),

View File

@ -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"),

View File

@ -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(.{