From 149dfbb6af2a777007e2a9d27207fdf74426078e Mon Sep 17 00:00:00 2001 From: Ophestra Date: Wed, 18 Feb 2026 18:42:53 +0900 Subject: [PATCH] internal/rosa: tamago toolchain artifact Currently used by the (wip) bootloader, might not make it into the final OS. Signed-off-by: Ophestra --- internal/rosa/all.go | 2 ++ internal/rosa/go.go | 3 +++ internal/rosa/tamago.go | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 internal/rosa/tamago.go diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 8a90582..81f7272 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -74,6 +74,7 @@ const ( Sed Setuptools SquashfsTools + TamaGo Toybox toyboxEarly Unzip @@ -187,6 +188,7 @@ func ResolveName(name string) (p PArtifact, ok bool) { "sed": Sed, "setuptools": Setuptools, "squashfs-tools": SquashfsTools, + "tamago": TamaGo, "toybox": Toybox, "unzip": Unzip, "util-linux": UtilLinux, diff --git a/internal/rosa/go.go b/internal/rosa/go.go index a466bc5..475eb08 100644 --- a/internal/rosa/go.go +++ b/internal/rosa/go.go @@ -160,6 +160,9 @@ rm \ sed -i \ 's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \ cmd/link/internal/`+runtime.GOARCH+`/obj.go + +rm \ + os/root_unix_test.go `, go125, ) } diff --git a/internal/rosa/tamago.go b/internal/rosa/tamago.go new file mode 100644 index 0000000..58ca648 --- /dev/null +++ b/internal/rosa/tamago.go @@ -0,0 +1,40 @@ +package rosa + +import ( + "runtime" + + "hakurei.app/internal/pkg" +) + +func (t Toolchain) newTamaGo() pkg.Artifact { + const ( + version = "1.26.0" + checksum = "5XkfbpTpSdPJfwtTfUegfdu4LUy8nuZ7sCondiRIxTJI9eQONi8z_O_dq9yDkjw8" + ) + return t.New("tamago-go"+version, 0, []pkg.Artifact{ + t.Load(Bash), + t.Load(Go), + }, nil, []string{ + "CC=cc", + "GOCACHE=/tmp/gocache", + }, ` +mkdir /work/system # "${TMPDIR}" +cp -r /usr/src/tamago /work/system +cd /work/system/tamago/src +chmod -R +w .. + +sed -i \ + 's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \ + cmd/link/internal/`+runtime.GOARCH+`/obj.go +rm \ + os/root_unix_test.go + +./all.bash +`, pkg.Path(AbsUsrSrc.Append("tamago"), false, pkg.NewHTTPGetTar( + nil, "https://github.com/usbarmory/tamago-go/archive/refs/tags/"+ + "tamago-go"+version+".tar.gz", + mustDecode(checksum), + pkg.TarGzip, + ))) +} +func init() { artifactsF[TamaGo] = Toolchain.newTamaGo }