diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 2c826933..4bbaed58 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -167,7 +167,8 @@ const ( // PresetUnexportedStart is the first unexported preset. PresetUnexportedStart - buildcatrust = iota - 1 + llvmSource = iota - 1 + buildcatrust utilMacros // Musl is a standalone libc that does not depend on the toolchain. diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go index 35b92d80..013e4670 100644 --- a/internal/rosa/llvm.go +++ b/internal/rosa/llvm.go @@ -6,17 +6,26 @@ import ( "hakurei.app/internal/pkg" ) -// llvmSource is the unpatched upstream LLVM monorepo. -var llvmSource = newFromGitHub( - "llvm/llvm-project", - "llvmorg-"+llvmVersion, - llvmChecksum, -) +func init() { + artifactsM[llvmSource] = Metadata{ + f: func(t Toolchain) (pkg.Artifact, string) { + return t.NewPatchedSource("llvm", llvmVersion, newFromGitHub( + "llvm/llvm-project", + "llvmorg-"+llvmVersion, + llvmChecksum, + ), true, llvmPatches...), llvmVersion + }, + + Name: "llvm-project", + Description: "LLVM monorepo with Rosa OS patches", + + ID: 1830, + } +} func (t Toolchain) newCompilerRT() (pkg.Artifact, string) { muslHeaders, _ := t.newMusl(true) - return t.NewPackage("compiler-rt", llvmVersion, llvmSource, &PackageAttr{ - Patches: llvmPatches, + return t.NewPackage("compiler-rt", llvmVersion, t.Load(llvmSource), &PackageAttr{ NonStage0: []pkg.Artifact{ muslHeaders, }, @@ -82,8 +91,7 @@ func init() { } func (t Toolchain) newLLVMRuntimes() (pkg.Artifact, string) { - return t.NewPackage("llvm-runtimes", llvmVersion, llvmSource, &PackageAttr{ - Patches: llvmPatches, + return t.NewPackage("llvm-runtimes", llvmVersion, t.Load(llvmSource), &PackageAttr{ NonStage0: t.AppendPresets(nil, CompilerRT), Env: stage0ExclConcat(t, []string{}, "LDFLAGS="+earlyLDFLAGS(false), @@ -151,8 +159,7 @@ func (t Toolchain) newClang() (pkg.Artifact, string) { } } - return t.NewPackage("clang", llvmVersion, llvmSource, &PackageAttr{ - Patches: llvmPatches, + return t.NewPackage("clang", llvmVersion, t.Load(llvmSource), &PackageAttr{ NonStage0: t.AppendPresets(nil, LLVMRuntimes), Env: stage0ExclConcat(t, []string{}, "CFLAGS="+earlyCFLAGS, @@ -222,13 +229,11 @@ func init() { Dependencies: P{ LLVMRuntimes, }, - - ID: 1830, } } func (t Toolchain) newLibclc() (pkg.Artifact, string) { - return t.NewPackage("libclc", llvmVersion, llvmSource, nil, &CMakeHelper{ + return t.NewPackage("libclc", llvmVersion, t.Load(llvmSource), nil, &CMakeHelper{ Append: []string{"libclc"}, Cache: []KV{