self hosted compiler: final small fixes to get it compiling

This commit is contained in:
Vexu 2019-11-24 09:13:01 +02:00
parent 010494d8af
commit 0cbf00a3ec
No known key found for this signature in database
GPG Key ID: 5AEABFCAFF5CD8D6
3 changed files with 14 additions and 4 deletions

View File

@ -74,7 +74,7 @@ pub fn build(b: *Builder) !void {
const skip_libc = b.option(bool, "skip-libc", "Main test suite skips tests that link libc") orelse false;
const skip_self_hosted = b.option(bool, "skip-self-hosted", "Main test suite skips building self hosted compiler") orelse false;
if (!skip_self_hosted and builtin.os == .linux) {
// TODO evented I/O other OS'spu
// TODO evented I/O other OS's
test_step.dependOn(&exe.step);
}
@ -232,6 +232,9 @@ fn findLLVM(b: *Builder, llvm_config_exe: []const u8) !LibraryDep {
if (fs.path.isAbsolute(lib_arg)) {
try result.libs.append(lib_arg);
} else {
if (mem.endsWith(u8, lib_arg, ".lib")) {
lib_arg = lib_arg[0 .. lib_arg.len - 4];
}
try result.system_libs.append(lib_arg);
}
}

View File

@ -517,6 +517,9 @@ pub const Compilation = struct {
comp.target_layout_str = llvm.CopyStringRepOfTargetData(comp.target_data_ref) orelse return error.OutOfMemory;
defer llvm.DisposeMessage(comp.target_layout_str);
comp.events = try allocator.create(event.Channel(Event));
defer allocator.destroy(comp.events);
comp.events.init([0]Event{});
defer comp.events.deinit();

View File

@ -13,12 +13,16 @@ test "stage2" {
// TODO provide a way to run tests in evented I/O mode
if (!std.io.is_async) return error.SkipZigTest;
// TODO https://github.com/ziglang/zig/issues/1364
// TODO https://github.com/ziglang/zig/issues/3117
if (true) return error.SkipZigTest;
try ctx.init();
defer ctx.deinit();
try @import("stage2_tests").addCases(&ctx);
_ = async ctx.run();
try ctx.run();
}
const file1 = "1.zig";
@ -61,8 +65,8 @@ pub const TestContext = struct {
self.zig_compiler.deinit();
}
fn run(self: *TestContext) void {
std.event.Loop.instance.?.startCpuBoundOperation();
fn run(self: *TestContext) !void {
std.event.Loop.startCpuBoundOperation();
self.any_err = self.group.wait();
return self.any_err;
}