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), )...) }