diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-01-22 02:47:47 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-01-22 02:47:47 +0900 |
| commit | 6420b6e6e881c67f19e7f4d37dc612d19a0c0b93 (patch) | |
| tree | 1024d647ef0ffb23c452b2d50e7e1c40a30419ac /internal/rosa/libffi.go | |
| parent | d7d058fdc512bc3c09643bb3a3ad04d95aba261b (diff) | |
internal/rosa: libffi artifact
Required by python during llvm test suite.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/libffi.go')
| -rw-r--r-- | internal/rosa/libffi.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/internal/rosa/libffi.go b/internal/rosa/libffi.go new file mode 100644 index 00000000..3c39005a --- /dev/null +++ b/internal/rosa/libffi.go @@ -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, + ))) +} |
