From 5345fc79101bce6f40c9bd9db9b18d90a440b83b Mon Sep 17 00:00:00 2001 From: june-fish Date: Thu, 30 Apr 2026 10:54:09 -0500 Subject: [PATCH 1/7] it builds?? Signed-off-by: june-fish --- configure | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/configure b/configure index bede55f7..9b2e1091 100755 --- a/configure +++ b/configure @@ -30,7 +30,7 @@ known_arches=(riscv64) # shellcheck disable=SC2034 # Only accessed indirectly. tool_prefixes_riscv64=(riscv64-none-elf- riscv-none-elf- riscv64-unknown-elf-) -args=$(getopt -n ./configure -o 'h' -l 'arch:,help,no-default-cflags,clang,prefix:,target:' -- "$@") +args=$(getopt -n ./configure -o 'h' -l 'arch:,help,no-default-cflags,clang,zig,prefix:,target:' -- "$@") eval set -- "$args" unset args @@ -41,6 +41,7 @@ default_cflags=1 default_ldflags=1 help=0 clang=0 +zig=0 prefix=/ while true; do case "$1" in @@ -68,6 +69,10 @@ while true; do clang=1 shift ;; + --zig) + zig=1 + shift + ;; --no-default-cflags) default_cflags=0 shift @@ -169,7 +174,15 @@ find_tool_with_prefix() { find_tool "$tool_name" "${tools[@]}" } -if [[ "$clang" = 1 ]]; then +if [[ "$zig" = 1 ]]; then + find_tool_with_prefix CC zig + if [[ "$default_cflags" = 1 ]]; then + CFLAGS="--no-warnings $CFLAGS" + fi + if [[ "$default_ldflags" = 1 ]]; then + LDFLAGS="-fuse-ld=lld $LDFLAGS" + fi +elif [[ "$clang" = 1 ]]; then find_tool_with_prefix CC clang if [[ "$default_cflags" = 1 ]]; then CFLAGS="-target riscv64-none-elf -Wno-error=\#warnings $CFLAGS" From 46f20c026c1e6e05a84f174d580df5a7973f2c59 Mon Sep 17 00:00:00 2001 From: june-fish Date: Thu, 30 Apr 2026 11:24:46 -0500 Subject: [PATCH 2/7] add zig to nix flake Signed-off-by: june-fish --- flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/flake.nix b/flake.nix index b34ceb3d..16414ef5 100644 --- a/flake.nix +++ b/flake.nix @@ -49,6 +49,7 @@ pkgs.pkgsCross.riscv64-embedded.buildPackages.llvmPackages.lld pkgs.python3 pkgs.watchexec + pkgs.zig ]; dontUnpack = true; From cc144c6f2d11bf4f1b27dec6c60a032b13d3f55d Mon Sep 17 00:00:00 2001 From: june-fish Date: Thu, 30 Apr 2026 11:26:07 -0500 Subject: [PATCH 3/7] add zig to ci Signed-off-by: june-fish --- .github/workflows/build.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ae3aa05e..746ab292 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,14 +17,18 @@ jobs: - milkv-duos - milkv-jupiter - milkv-jupiter-clang + - milkv-jupiter-zig - qemu-riscv64 - qemu-riscv64-clang + - qemu-riscv64-zig steps: - name: Install dependencies run: | toolchain_pkgs="" target=${{ matrix.target }} - if [[ ${target} == *"clang" ]]; then + if [[ ${target} == *"zig" ]]; then + toolchain_pkgs="zig clang lld llvm" + elif [[ ${target} == *"clang" ]]; then toolchain_pkgs="clang lld llvm" else toolchain_pkgs="binutils-riscv-none-elf gcc-riscv-none-elf" @@ -52,7 +56,9 @@ jobs: mkdir build cd build target=${{ matrix.target }} - if [[ ${target} == *"clang" ]]; then + if [[ ${target} == *"zig" ]]; then + ../configure --target ${target::-6} --zig + elif [[ ${target} == *"clang" ]]; then ../configure --target ${target::-6} --clang else ../configure --target ${target} From 825edb6e50d020db52f993dc3c94c68d900c4040 Mon Sep 17 00:00:00 2001 From: june-fish Date: Thu, 30 Apr 2026 11:29:39 -0500 Subject: [PATCH 4/7] i can only count to 4 Signed-off-by: june-fish --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 746ab292..1728e8a0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,7 +57,7 @@ jobs: cd build target=${{ matrix.target }} if [[ ${target} == *"zig" ]]; then - ../configure --target ${target::-6} --zig + ../configure --target ${target::-4} --zig elif [[ ${target} == *"clang" ]]; then ../configure --target ${target::-6} --clang else From b38e714b972fa084d39ded8ae4f5f23e9a662725 Mon Sep 17 00:00:00 2001 From: june-fish Date: Thu, 30 Apr 2026 14:46:40 -0500 Subject: [PATCH 5/7] oops actually use zig cc Signed-off-by: june-fish --- configure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 9b2e1091..d652dadf 100755 --- a/configure +++ b/configure @@ -175,7 +175,7 @@ find_tool_with_prefix() { } if [[ "$zig" = 1 ]]; then - find_tool_with_prefix CC zig + CC="zig cc" if [[ "$default_cflags" = 1 ]]; then CFLAGS="--no-warnings $CFLAGS" fi @@ -213,7 +213,7 @@ prefix = $(printf %q "$prefix") srcdir = $(printf %q "$repo") target = $(printf %q "$target") -CC = $(printf %q "$CC") +CC = $(printf "$CC") GDB = $(printf %q "$GDB") OBJDUMP = $(printf %q "$OBJDUMP") PYTHON3 = $(printf %q "$PYTHON3") From 08c3ae8c3b0aa9e139caf91f28f8df697ad4f6ad Mon Sep 17 00:00:00 2001 From: june-fish Date: Thu, 30 Apr 2026 15:21:10 -0500 Subject: [PATCH 6/7] fix kernel flags for qemu-riscv64 with zig cc Signed-off-by: june-fish --- src/targets/riscv64/qemu-riscv64.mak | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/targets/riscv64/qemu-riscv64.mak b/src/targets/riscv64/qemu-riscv64.mak index ec2ed515..0320117d 100644 --- a/src/targets/riscv64/qemu-riscv64.mak +++ b/src/targets/riscv64/qemu-riscv64.mak @@ -2,5 +2,9 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -kernel-cflags += -march=rv64imafdcbv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb_zfa_zawrs_svpbmt_svinval_svnapot_sstc_sscofpmf_zifencei +ifeq ($(findstring zig,$(CC)),zig) + kernel-cflags += -target riscv64-freestanding-none +else + kernel-cflags += -march=rv64imafdcbv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb_zfa_zawrs_svpbmt_svinval_svnapot_sstc_sscofpmf_zifencei +endif target-qemuflags = --machine virt --cpu rva23s64 --smp 2 -m 1G --netdev user,id=net0 -device rtl8139,netdev=net0,bus=pcie.0 From 0f0b3a803d462da5feb8582e65724f3bbeb72fcb Mon Sep 17 00:00:00 2001 From: june-fish Date: Thu, 30 Apr 2026 15:22:04 -0500 Subject: [PATCH 7/7] comment jupiter zig cc job for now Signed-off-by: june-fish --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1728e8a0..976fa3d3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,7 @@ jobs: - milkv-duos - milkv-jupiter - milkv-jupiter-clang - - milkv-jupiter-zig + # - milkv-jupiter-zig - qemu-riscv64 - qemu-riscv64-clang - qemu-riscv64-zig