internal/rosa: libffi artifact
All checks were successful
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m42s
Test / Hakurei (push) Successful in 3m49s
Test / ShareFS (push) Successful in 3m54s
Test / Hpkg (push) Successful in 4m30s
Test / Sandbox (race detector) (push) Successful in 5m2s
Test / Hakurei (race detector) (push) Successful in 6m13s
Test / Flake checks (push) Successful in 1m45s

Required by python during llvm test suite.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-01-22 02:47:47 +09:00
parent d7d058fdc5
commit 6420b6e6e8
4 changed files with 30 additions and 1 deletions

View File

@@ -48,7 +48,6 @@ make DESTDIR=/work install
mustDecode(checksum),
pkg.TarBzip2,
)))
}
// NewAutoconf returns a [pkg.Artifact] containing an installation of GNU Autoconf.

28
internal/rosa/libffi.go Normal file
View File

@@ -0,0 +1,28 @@
package rosa
import "hakurei.app/internal/pkg"
// NewLibffi returns a [pkg.Artifact] containing an installation of libffi.
func (t Toolchain) NewLibffi() pkg.Artifact {
const (
version = "3.4.5"
checksum = "apIJzypF4rDudeRoI_n3K7N-zCeBLTbQlHRn9NSAZqdLAWA80mR0gXPTpHsL7oMl"
)
return t.New("libffi-"+version, []pkg.Artifact{
t.NewMake(),
t.NewKernelHeaders(),
}, nil, nil, `
cd "$(mktemp -d)"
/usr/src/libffi/configure \
--prefix=/system \
--build="${ROSA_TRIPLE}"
make "-j$(nproc)" check
make DESTDIR=/work install
`, pkg.Path(AbsUsrSrc.Append("libffi"), false, pkg.NewHTTPGetTar(
nil,
"https://github.com/libffi/libffi/releases/download/"+
"v"+version+"/libffi-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
)))
}

View File

@@ -125,6 +125,7 @@ func (t Toolchain) newLLVM(variant string, attr *llvmAttr) pkg.Artifact {
}
extra := []pkg.Artifact{
t.NewLibffi(),
t.NewPython(),
t.NewKernelHeaders(),
}

View File

@@ -36,6 +36,7 @@ func (t Toolchain) NewPython() pkg.Artifact {
return t.New("python-"+version, []pkg.Artifact{
t.NewMake(),
t.NewZlib(),
t.NewLibffi(),
}, nil, []string{
"EXTRATESTOPTS=-j0 -x " + strings.Join(skipTests, " -x "),
}, `