diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/rosa/all.go | 4 | ||||
| -rw-r--r-- | internal/rosa/stage0.go | 39 | ||||
| -rw-r--r-- | internal/rosa/toybox.go | 4 |
3 files changed, 46 insertions, 1 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 0fdfdc8a..6c1a8ab7 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -83,6 +83,10 @@ const ( // stages only. This preset and its direct output must never be exposed. gcc + // Stage0 is a tarball containing all compile-time dependencies of artifacts + // part of the [Std] toolchain. + Stage0 + // _presetEnd is the total number of presets and does not denote a preset. _presetEnd ) diff --git a/internal/rosa/stage0.go b/internal/rosa/stage0.go new file mode 100644 index 00000000..7b347255 --- /dev/null +++ b/internal/rosa/stage0.go @@ -0,0 +1,39 @@ +package rosa + +import "hakurei.app/internal/pkg" + +func (t Toolchain) newStage0() pkg.Artifact { + musl, compilerRT, runtimes, clang := t.NewLLVM() + return t.New("rosa-stage0", 0, []pkg.Artifact{ + musl, + compilerRT, + runtimes, + clang, + + t.Load(Bzip2), + + t.Load(Patch), + t.Load(Make), + t.Load(CMake), + t.Load(Ninja), + + t.Load(Libffi), + t.Load(Python), + t.Load(Perl), + t.Load(Diffutils), + t.Load(Bash), + t.Load(Gawk), + t.Load(Coreutils), + t.Load(Findutils), + + t.Load(KernelHeaders), + }, nil, nil, ` +umask 377 +tar \ + -vjc \ + -C / \ + -f /work/stage0-`+triplet()+`.tar.bz2 \ + system bin usr/bin/env +`) +} +func init() { artifactsF[Stage0] = Toolchain.newStage0 } diff --git a/internal/rosa/toybox.go b/internal/rosa/toybox.go index 2e4d470e..a35215b7 100644 --- a/internal/rosa/toybox.go +++ b/internal/rosa/toybox.go @@ -16,7 +16,9 @@ func (t Toolchain) newToybox(suffix, script string) pkg.Artifact { ), nil, stage0Concat(t, []string{}, "ROSA_CHECK=make USER=cure tests", ), ` -ln -s ../system/bin/bash /bin/ || true +chmod +w /bin/ +ln -sf ../system/bin/bash /bin/ + cd /usr/src/toybox chmod +w kconfig tests rm \ |
