aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-02-18 18:42:53 +0900
committerOphestra <cat@gensokyo.uk>2026-02-18 19:26:42 +0900
commit149dfbb6af2a777007e2a9d27207fdf74426078e (patch)
treea4ed1a892ad79c24bf4794af9d2dc5aae7dbad06
parent58801b44d4fc783984c2fb8800c2f752b7ed06a1 (diff)
internal/rosa: tamago toolchain artifact
Currently used by the (wip) bootloader, might not make it into the final OS. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/rosa/all.go2
-rw-r--r--internal/rosa/go.go3
-rw-r--r--internal/rosa/tamago.go40
3 files changed, 45 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 8a905825..81f7272d 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 a466bc59..475eb086 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 00000000..58ca648b
--- /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 }