diff options
Diffstat (limited to 'std')
| -rw-r--r-- | std/bootstrap.zig | 9 | ||||
| -rw-r--r-- | std/build.zig | 13 | ||||
| -rw-r--r-- | std/index.zig | 1 | ||||
| -rw-r--r-- | std/test_runner.zig | 2 | ||||
| -rw-r--r-- | std/test_runner_libc.zig | 6 | ||||
| -rw-r--r-- | std/test_runner_nolibc.zig | 5 |
6 files changed, 19 insertions, 17 deletions
diff --git a/std/bootstrap.zig b/std/bootstrap.zig index f520834654..074f06557e 100644 --- a/std/bootstrap.zig +++ b/std/bootstrap.zig @@ -1,17 +1,16 @@ // This file is in a package which has the root source file exposed as "@root". +// It is included in the compilation unit when exporting an executable. const root = @import("@root"); const std = @import("std"); -const want_start_symbol = switch(@compileVar("os")) { - Os.linux => true, - else => false, -}; -const want_main_symbol = !want_start_symbol; +const want_main_symbol = std.build.linkingLibrary("c"); +const want_start_symbol = !want_main_symbol; const exit = switch(@compileVar("os")) { Os.linux => std.linux.exit, Os.darwin => std.darwin.exit, + else => @compileError("Unsupported OS"), }; var argc: usize = undefined; diff --git a/std/build.zig b/std/build.zig new file mode 100644 index 0000000000..a21baa387d --- /dev/null +++ b/std/build.zig @@ -0,0 +1,13 @@ +const mem = @import("mem.zig"); + +pub fn linkingLibrary(lib_name: []const u8) -> bool { + // TODO shouldn't need this if + if (@compileVar("link_libs").len != 0) { + for (@compileVar("link_libs")) |link_lib| { + if (mem.eql(u8, link_lib, lib_name)) { + return true; + } + } + } + return false; +} diff --git a/std/index.zig b/std/index.zig index b4a86f0f9d..0a0b9557ad 100644 --- a/std/index.zig +++ b/std/index.zig @@ -1,3 +1,4 @@ +pub const build = @import("build.zig"); pub const cstr = @import("cstr.zig"); pub const debug = @import("debug.zig"); pub const fmt = @import("fmt.zig"); diff --git a/std/test_runner.zig b/std/test_runner.zig index 7aa11e523e..f494801671 100644 --- a/std/test_runner.zig +++ b/std/test_runner.zig @@ -7,7 +7,7 @@ const TestFn = struct { extern var zig_test_fn_list: []TestFn; -pub fn runTests() -> %void { +pub fn main(args: [][]u8) -> %void { for (zig_test_fn_list) |testFn, i| { %%io.stderr.printf("Test {}/{} {}...", i + 1, zig_test_fn_list.len, testFn.name); diff --git a/std/test_runner_libc.zig b/std/test_runner_libc.zig deleted file mode 100644 index bbd4f71d8b..0000000000 --- a/std/test_runner_libc.zig +++ /dev/null @@ -1,6 +0,0 @@ -const test_runner = @import("test_runner.zig"); - -export fn main(argc: c_int, argv: &&u8) -> c_int { - test_runner.runTests() %% return -1; - return 0; -} diff --git a/std/test_runner_nolibc.zig b/std/test_runner_nolibc.zig deleted file mode 100644 index 226cbb2a5c..0000000000 --- a/std/test_runner_nolibc.zig +++ /dev/null @@ -1,5 +0,0 @@ -const test_runner = @import("test_runner.zig"); - -pub fn main(args: [][]u8) -> %void { - return test_runner.runTests(); -} |
