aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/rosa.go
AgeCommit message (Collapse)Author
2026-02-15internal/rosa: fixed-size toolchain enumOphestra
This fits in an inlined uint32 IR value. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-11internal/rosa: toolchain type methodsOphestra
This improves readability for toolchain-specific checks. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-10internal/rosa: use self-hosted stage0Ophestra
This removes the bootstrap dependency on Gentoo stage3 tarball. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-10internal/rosa: consistent stage0 pathsOphestra
This makes using the gentoo stage3 as our stage0 compatible with Rosa OS stage0 tarballs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-09internal/rosa: rename stage0 toolchainOphestra
This is stage0 relative to Rosa OS, and stage3 relative to the toolchain it is compiled on (Gentoo in this case). Referring to the toolchain itself as stage3 is counterintuitive and misleading. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-02internal/rosa: use stage3 mirrorOphestra
These get taken down periodically and causes way too many rebuilds when they are taken down. Use mirror until a more elegant solution is available. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-30internal/rosa: early toybox variantOphestra
This is a variant of toybox with unfinished tools enabled, for artifacts that will end up in a dependency loop without them. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-29internal/rosa: flags for toolchain-dependent artifactOphestra
This is much cleaner to add extra flags to. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-29internal/rosa: replace busybox with toyboxOphestra
The busybox artifact does not run on aarch64, and the workarounds required for it to compile successfully on x86_64 is unacceptably shaky. This change fully replaces it with toybox. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-29internal/rosa: replace busybox dash with mkshOphestra
Toybox does not provide a shell, mksh fills that gap. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/rosa: add arm64 stringsOphestra
This enables building on arm64. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/rosa: cross-platform stage3Ophestra
The stage3 binary seed is arch-specific. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/pkg: exclusive artifactsOphestra
This alleviates scheduler overhead when curing many artifacts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: patch ignore whitespaceOphestra
This makes it work better with patches emitted by git. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: isolate patching helperOphestra
This is useful outside llvm as well. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: name suffix by toolchainOphestra
This makes output more useful during bootstrap. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-25internal/rosa: lazy initialise all artifactsOphestra
This improves performance, though not as drastically as lazy initialising llvm. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-25internal/rosa: lazy initialise llvmOphestra
This significantly improves performance. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-24internal/rosa: stage3 special case helperOphestra
This makes it cleaner to specify non-stage3 and stage3-exclusive dependencies. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-24internal/rosa: patch library pathsOphestra
This removes the need for reference LDFLAGS in the standard toolchain. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-23internal/rosa: patch header search pathsOphestra
This removes the need for reference CFLAGS in the standard toolchain. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-22internal/rosa: fix toolchain layer orderOphestra
This allows extras to override toolchain artifacts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa: include iana-etcOphestra
This is used by some programs and will likely end up in the Rosa OS system image anyway. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: standard toolchain via 2-stage bootstrapOphestra
This implements the 2-stage bootstrap build without clumping the stages together in the cmake target. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: bootstrap on gentoo stage3Ophestra
This contains a fully working musl+llvm toolchain and many build systems in a pretty small package. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: GNU make artifactOphestra
This compiles GNU make from source. This is unfortunately required by many programs, but is a cure dependency only. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: toolchain abstractionOphestra
This provides a clean and easy to use API over toolchains. A toolchain is an opaque set of artifacts and environment fixups. Exported toolchains should be functionally indistinguishable from each other. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: busybox binary artifactOphestra
This installs a statically linked busybox binary distribution for decompressing the gentoo stage3 tarball, since there is no native xz implementation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-18internal/rosa: static etc artifactOphestra
This places configuration files with hardcoded content in /etc to silence test suites expecting them to be present. Signed-off-by: Ophestra <cat@gensokyo.uk>