From 47f68ceb9cf2138c57db3cfb0ccbd660a2595774 Mon Sep 17 00:00:00 2001 From: Sam Tebbs Date: Tue, 30 Apr 2019 10:43:40 +0100 Subject: [PATCH] Start using the zig build system Start using zig build system --- .gitignore | 5 +- README.md | 27 ++++++++- build.zig | 139 ++++++++++++++++++++++++++++++++++--------- grub/grub.cfg | 7 +++ grub/stage2_eltorito | Bin 0 -> 105522 bytes 5 files changed, 145 insertions(+), 33 deletions(-) create mode 100644 grub/grub.cfg create mode 100644 grub/stage2_eltorito diff --git a/.gitignore b/.gitignore index 849a50a..011a068 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,7 @@ .idea/ # Zig -zig-cache/ \ No newline at end of file +zig-cache + +# Build dir +bin/* diff --git a/README.md b/README.md index b09249f..c1560af 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,26 @@ -Compile: zig build-exe kmain.zig -target i386-freestanding --linker-script link.ld +# Pluto -Run: qemu-system-i386 -kernel kmain -curses +## Build +Requires *xorriso* and the grub tools (such as *grub-mkrescue*). +``` +mkdir -p bin/kernel +mkdir -p bin/iso/boot/grub +zig build +``` -To exit qemu: Esc + 2, type `quit` \ No newline at end of file +Note that the `mkdir` invocations are only needed once. See `zig build --help` for a list of options. + +## Run +``` +zig build run +``` +To debug the kernel: +``` +zig build run -Ddebug=true +zig build debug +``` + +# Test +``` +zig build test +``` diff --git a/build.zig b/build.zig index c97c285..32589c3 100644 --- a/build.zig +++ b/build.zig @@ -1,43 +1,124 @@ // Zig version: 0.4.0 const Builder = @import("std").build.Builder; +const Step = @import("std").build.Step; const builtin = @import("builtin"); -const Array = @import("std").ArrayList; +const std = @import("std"); +const ArrayList = std.ArrayList; +const warn = std.debug.warn; +const mem = std.mem; + +const src_files = [][]const u8{"kernel/kmain"}; + +fn concat(allocator: *std.mem.Allocator, str: []const u8, str2: []const u8) !std.Buffer { + var b = try std.Buffer.init(allocator, str); + try b.append(str2); + return b; +} pub fn build(b: *Builder) void { - const kernel_out_dir = "bin/kernel"; - const kernel_src = "src/kernel/"; + const debug = b.option(bool, "debug", "build with debug symbols / make qemu wait for a debug connection") orelse false; + var build_path = b.option([]const u8, "build-path", "path to build to") orelse "bin"; + var src_path = b.option([]const u8, "source-path", "path to source") orelse "src"; + var target = b.option([]const u8, "target", "target to build/run for") orelse "x86"; + const builtin_target = if (mem.eql(u8, target, "x86")) builtin.Arch.i386 else unreachable; - var kernel = b.addExecutable("pluto.elf", kernel_src ++ "kmain.zig"); - //kernel.addAssemblyFile(kernel_src ++ "start.s"); + const iso_path = concat(b.allocator, build_path, "/pluto.iso") catch unreachable; - kernel.setOutputDir(kernel_out_dir); - kernel.setBuildMode(b.standardReleaseOptions()); - kernel.setTarget(builtin.Arch.i386, builtin.Os.freestanding, builtin.Abi.gnu); - kernel.setLinkerScriptPath("link.ld"); + var objects_steps = buildObjects(b, builtin_target, build_path, src_path); + var link_step = buildLink(b, builtin_target, build_path); + const iso_step = buildISO(b, build_path, iso_path.toSlice()); - const run_objcopy = b.addSystemCommand([][]const u8 { - "objcopy", "-O", "binary", "-S", kernel.getOutputPath(), kernel_out_dir ++ "/pluto.bin", + for (objects_steps.toSlice()) |step| b.default_step.dependOn(step); + b.default_step.dependOn(link_step); + for (iso_step.toSlice()) |step| b.default_step.dependOn(step); + + buildRun(b, builtin_target, build_path, iso_path.toSlice(), debug); + buildDebug(b); + buildTest(b, src_path); +} + +fn buildTest(b: *Builder, src_path: []const u8) void { + const step = b.step("test", "Run all tests"); + const src_path2 = concat(b.allocator, src_path, "/") catch unreachable; + for (src_files) |file| { + var file_src = concat(b.allocator, src_path2.toSlice(), file) catch unreachable; + file_src.append(".zig") catch unreachable; + const tst = b.addTest(file_src.toSlice()); + step.dependOn(&tst.step); + } +} + +fn buildDebug(b: *Builder) void { + const step = b.step("debug", "Debug with gdb"); + const cmd = b.addSystemCommand([][]const u8{ + "gdb", + "-ex", + "symbol-file bin/iso/boot/pluto.elf", + "-ex", + "target remote localhost:1234", }); - run_objcopy.step.dependOn(&kernel.step); + step.dependOn(&cmd.step); +} - b.default_step.dependOn(&run_objcopy.step); +fn buildRun(b: *Builder, target: builtin.Arch, build_path: []const u8, iso_path: []const u8, debug: bool) void { + const step = b.step("run", "Run with qemu"); + const qemu = if (target == builtin.Arch.i386) "qemu-system-i386" else unreachable; + var qemu_flags = ArrayList([]const u8).init(b.allocator); + qemu_flags.appendSlice([][]const u8{ + qemu, + "-cdrom", + iso_path, + "-boot", + "d", + "-serial", + "stdio", + }) catch unreachable; + if (debug) + qemu_flags.appendSlice([][]const u8{ + "-s", + "-S", + }) catch unreachable; + const cmd = b.addSystemCommand(qemu_flags.toSlice()); + step.dependOn(&cmd.step); +} - const run_qemu = b.addSystemCommand([][]const u8 { - "qemu-system-i386", - "-display", "curses", - "-kernel", kernel.getOutputPath(), - }); +fn buildISO(b: *Builder, build_path: []const u8, iso_path: []const u8) ArrayList(*Step) { + const grub_build_path = concat(b.allocator, build_path, "/iso/boot/") catch unreachable; + const iso_dir_path = concat(b.allocator, build_path, "/iso") catch unreachable; + const grub_cmd = b.addSystemCommand([][]const u8{ "cp", "-r", "grub", grub_build_path.toSlice() }); + const iso_cmd = b.addSystemCommand([][]const u8{ "grub-mkrescue", "-o", iso_path, iso_dir_path.toSlice() }); + var steps = ArrayList(*Step).init(b.allocator); + steps.append(&grub_cmd.step) catch unreachable; + steps.append(&iso_cmd.step) catch unreachable; + return steps; +} - const run_qemu_debug = b.addSystemCommand([][]const u8 { - "qemu-system-i386", - "-display", "curses", - "-kernel", kernel.getOutputPath(), - "-s", "-S", - }); +fn buildLink(b: *Builder, target: builtin.Arch, build_path: []const u8) *Step { + const exec = b.addExecutable("pluto.elf", null); + const elf_path = concat(b.allocator, build_path, "/iso/boot") catch unreachable; + exec.setOutputDir(elf_path.toSlice()); + exec.setLinkerScriptPath("link.ld"); + exec.setTarget(target, builtin.Os.freestanding, builtin.Abi.gnu); + for (src_files) |file| { + var file_obj = concat(b.allocator, build_path, "/") catch unreachable; + file_obj.append(file) catch unreachable; + file_obj.append(".o") catch unreachable; + exec.addObjectFile(file_obj.toSlice()); + } + return &exec.step; +} - run_qemu.step.dependOn(&kernel.step); - //run_qemu_debug.step.dependOn(&kernel.step); - - b.default_step.dependOn(&run_qemu.step); -} \ No newline at end of file +fn buildObjects(b: *Builder, target: builtin.Arch, build_path: []const u8, src_path: []const u8) ArrayList(*Step) { + var objects = ArrayList(*Step).init(b.allocator); + const src_path2 = concat(b.allocator, src_path, "/") catch unreachable; + for (src_files) |file| { + var file_src = concat(b.allocator, src_path2.toSlice(), file) catch unreachable; + file_src.append(".zig") catch unreachable; + const obj = b.addObject(file, file_src.toSlice()); + obj.setOutputDir(build_path); + obj.setTarget(target, builtin.Os.freestanding, builtin.Abi.gnu); + objects.append(&obj.step) catch unreachable; + } + return objects; +} diff --git a/grub/grub.cfg b/grub/grub.cfg new file mode 100644 index 0000000..8d3fd21 --- /dev/null +++ b/grub/grub.cfg @@ -0,0 +1,7 @@ +set timeout=0 # How long grub should wait before booting default menu entry +set default=0 + +menuentry "pluto" { + multiboot /boot/pluto.elf + boot +} diff --git a/grub/stage2_eltorito b/grub/stage2_eltorito new file mode 100644 index 0000000000000000000000000000000000000000..817dd07e7304fea5c0d9d44f026408499375c643 GIT binary patch literal 105522 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 JH=NGye*ihN7o-3H literal 0 HcmV?d00001