diff options
Diffstat (limited to 'internal/rosa/rosa.go')
| -rw-r--r-- | internal/rosa/rosa.go | 56 |
1 files changed, 13 insertions, 43 deletions
diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go index de4229ea..456f82e7 100644 --- a/internal/rosa/rosa.go +++ b/internal/rosa/rosa.go @@ -26,8 +26,8 @@ const ( // kindEtc is the kind of [pkg.Artifact] of cureEtc. kindEtc = iota + pkg.KindCustomOffset - // kindBusyboxBin is the kind of [pkg.Artifact] of busyboxBin. - kindBusyboxBin + // kindGentooOverlay is the kind of [pkg.Artifact] of gentooOverlay. + kindGentooOverlay ) // mustDecode is like [pkg.MustDecode], but replaces the zero value and prints @@ -97,15 +97,9 @@ func (s *S) earlyLDFLAGS(static bool) string { } const ( - // _stageBusybox denotes a busybox installation from the busyboxBin - // binary distribution. This is defined as a [Stage] to make use of the - // toolchain abstractions to preprocess stageGentoo and is not a real, - // functioning toolchain. It does not contain any compilers. - _stageBusybox Stage = iota - // stageGentoo denotes the toolchain in a Gentoo stage3 tarball. Special // care must be taken to compile correctly against this stage. - stageGentoo + stageGentoo Stage = iota // stageIntermediateGentoo is like stageIntermediate, but compiled against // stageGentoo. @@ -239,11 +233,6 @@ func (t Toolchain) New( var support []pkg.Artifact switch t.stage { - case _stageBusybox: - name += "-early" - support = slices.Concat([]pkg.Artifact{t.newBusyboxBin()}, extra) - env = fixupEnviron(env, nil, "/system/bin") - case stageGentoo, stageEarly: name += "-boot" support = append(support, extra...) @@ -251,22 +240,17 @@ func (t Toolchain) New( if t.stage == stageEarly { _, a := t.MustLoad(_stage0Dist) support = append(support, a) + } else if t.gentooStage3 == nil { + panic(os.ErrInvalid) } else { - support = append(support, t.S.New(_stageBusybox).New("gentoo", 0, nil, nil, nil, ` -tar -C /work -xf /usr/src/stage3.tar.xz -rm -rf /work/dev/ /work/proc/ -ln -vs ../usr/bin /work/bin -mkdir -vp /work/system/bin -(cd /work/system/bin && ln -vs \ - ../../bin/sh \ - ../../usr/lib/llvm/*/bin/* \ - .) -`, pkg.Path(AbsUsrSrc.Append("stage3.tar.xz"), false, - pkg.NewHTTPGet( - nil, t.gentooStage3, - t.gentooStage3Checksum, - ), - ))) + support = append(support, + t.gentooStage3, + gentooOverlay{t.gentooStage3}, + ) + env = append(env, + "CC=clang", + "CXX=clang++", + ) } env = fixupEnviron(env, []string{ EnvTriple + "=" + t.triple(), @@ -516,20 +500,6 @@ func (t Toolchain) NewPackage( sourceSuffix string ) - if _, ok := source.(pkg.FileArtifact); ok { - if attr.Writable || attr.Chmod || - wantsChmod || wantsWrite || - len(attr.Patches) > 0 { - panic("source processing requested on a xz-compressed tarball") - } - - sourceSuffix = ".tar.xz" - scriptEarly += ` -tar -C /usr/src/ -xf '/usr/src/` + name + `.tar.xz' -mv '/usr/src/` + rn + `' '/usr/src/` + name + `' -` - } - dir, create := helper.wantsDir() helperScriptEarly := helper.scriptEarly() if attr.EnterSource || |
