Files
hakurei/internal/rosa/musl.go
Ophestra d041fee791
All checks were successful
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 2m35s
Test / Hakurei (push) Successful in 3m42s
Test / ShareFS (push) Successful in 3m54s
Test / Hpkg (push) Successful in 4m21s
Test / Sandbox (race detector) (push) Successful in 4m53s
Test / Hakurei (race detector) (push) Successful in 6m11s
Test / Flake checks (push) Successful in 1m52s
internal/rosa: export musl
This can be useful externally.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-28 22:49:54 +09:00

54 lines
1.2 KiB
Go

package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newMusl(
headers bool,
env []string,
extra ...pkg.Artifact,
) pkg.Artifact {
const (
version = "1.2.5"
checksum = "y6USdIeSdHER_Fw2eT2CNjqShEye85oEg2jnOur96D073ukmIpIqDOLmECQroyDb"
)
name := "musl"
attr := MakeAttr{
OmitDefaults: true,
SkipCheck: true,
Env: env,
Script: `
mkdir -p /work/system/bin
COMPAT_LINKER_NAME="ld-musl-` + linuxArch() + `.so.1"
ln -vs ../lib/libc.so /work/system/bin/linker
ln -vs ../lib/libc.so /work/system/bin/ldd
ln -vs libc.so "/work/system/lib/${COMPAT_LINKER_NAME}"
rm -v "/work/lib/${COMPAT_LINKER_NAME}"
rmdir -v /work/lib
`,
}
if headers {
name += "-headers"
attr.ScriptInstall = "make DESTDIR=/work install-headers"
attr.Script = ""
}
return t.NewViaMake(name, version, t.NewPatchedSource(
// expected to be writable in copies
"musl", version, pkg.NewHTTPGetTar(
nil, "https://musl.libc.org/releases/musl-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), false,
), &attr, stage0Concat(t, extra,
t.Load(Coreutils),
)...)
}
func init() {
artifactsF[Musl] = func(t Toolchain) pkg.Artifact {
return t.newMusl(false, nil)
}
}