diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go index 1438baa5..1a986ca7 100644 --- a/cmd/mbf/main.go +++ b/cmd/mbf/main.go @@ -318,7 +318,7 @@ func main() { if err = cm.Do(func(cache *pkg.Cache) (err error) { pathname, _, err = cache.Cure( - (t - 2).Load(rosa.Clang), + (t - 2).Load(rosa.LLVM), ) return }); err != nil { @@ -328,7 +328,7 @@ func main() { if err = cm.Do(func(cache *pkg.Cache) (err error) { pathname, checksum[0], err = cache.Cure( - (t - 1).Load(rosa.Clang), + (t - 1).Load(rosa.LLVM), ) return }); err != nil { @@ -337,7 +337,7 @@ func main() { log.Println("stage2:", pathname) if err = cm.Do(func(cache *pkg.Cache) (err error) { pathname, checksum[1], err = cache.Cure( - t.Load(rosa.Clang), + t.Load(rosa.LLVM), ) return }); err != nil { @@ -542,7 +542,7 @@ func main() { presets[i] = p } - base := rosa.Clang + base := rosa.LLVM if !flagWithToolchain { base = rosa.Musl } diff --git a/internal/rosa/all.go b/internal/rosa/all.go index c5cce349..f61ec62f 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -16,9 +16,7 @@ import ( type PArtifact int const ( - CompilerRT PArtifact = iota - LLVMRuntimes - Clang + LLVM PArtifact = iota // EarlyInit is the Rosa OS init program. EarlyInit @@ -77,7 +75,6 @@ const ( LibXau Libbsd Libcap - Libclc Libdrm Libev Libexpat @@ -174,12 +171,13 @@ const ( // PresetUnexportedStart is the first unexported preset. PresetUnexportedStart - llvmSource = iota - 1 - buildcatrust + buildcatrust = iota - 1 utilMacros // Musl is a standalone libc that does not depend on the toolchain. Musl + // muslHeaders is a system installation of [Musl] headers. + muslHeaders // gcc is a hacked-to-pieces GCC toolchain meant for use in intermediate // stages only. This preset and its direct output must never be exposed. diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go index 0d3c993b..a7930e1b 100644 --- a/internal/rosa/llvm.go +++ b/internal/rosa/llvm.go @@ -1,195 +1,138 @@ package rosa -import "hakurei.app/internal/pkg" +import ( + "regexp" + "strings" -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 - }, + "hakurei.app/internal/pkg" +) - Name: "llvm-project", - Description: "LLVM monorepo with Rosa OS patches", +func (t Toolchain) newLLVM() (pkg.Artifact, string) { + const ( + version = "22.1.4" + checksum = "Bk3t-tV5sD5T0bqefFMcLeFuAwXnhFipywZmqst5hAZs97QQWGKB_5XyAFjj5tDB" + ) - ID: 1830, - } -} + cache := []KV{ + {"CMAKE_BUILD_TYPE", "Release"}, -func (t Toolchain) newCompilerRT() (pkg.Artifact, string) { - muslHeaders, _ := t.newMusl(true) - return t.NewPackage("compiler-rt", llvmVersion, t.Load(llvmSource), &PackageAttr{ - NonStage0: []pkg.Artifact{ - muslHeaders, - }, - Env: stage0ExclConcat(t, []string{}, - "LDFLAGS="+earlyLDFLAGS(false), - ), - Flag: TExclusive, - }, &CMakeHelper{ - Append: []string{"compiler-rt"}, + {"ENABLE_LINKER_BUILD_ID", "ON"}, + {"COMPILER_RT_USE_BUILTINS_LIBRARY", "ON"}, + {"COMPILER_RT_DEFAULT_TARGET_ONLY", "ON"}, + {"COMPILER_RT_BUILD_GWP_ASAN", "OFF"}, + {"LIBCXX_CXX_ABI", "libcxxabi"}, + {"LIBCXX_USE_COMPILER_RT", "ON"}, + {"LIBCXX_ENABLE_STATIC_ABI_LIBRARY", "OFF"}, + {"LIBCXX_HAS_MUSL_LIBC", "ON"}, + {"LIBCXX_HARDENING_MODE", "fast"}, + {"LIBCXXABI_USE_LLVM_UNWINDER", "ON"}, + {"LIBCXXABI_ENABLE_STATIC_UNWINDER", "OFF"}, + {"LIBCXXABI_USE_COMPILER_RT", "ON"}, + {"LLVM_INSTALL_BINUTILS_SYMLINKS", "ON"}, + {"LLVM_INSTALL_UTILS", "ON"}, + {"LLVM_BUILD_LLVM_DYLIB", "ON"}, + {"LLVM_LINK_LLVM_DYLIB", "ON"}, + {"LLVM_APPEND_VC_REV", "OFF"}, + {"LLVM_ENABLE_RTTI", "ON"}, + {"LLVM_ENABLE_ZLIB", "FORCE_ON"}, + {"LLVM_ENABLE_ZSTD", "FORCE_ON"}, + {"LLVM_ENABLE_PER_TARGET_RUNTIME_DIR", "ON"}, + {"CLANG_DEFAULT_RTLIB", "compiler-rt"}, + {"CLANG_DEFAULT_UNWINDLIB", "libunwind"}, + {"CLANG_DEFAULT_CXX_STDLIB", "libc++"}, + {"CLANG_CONFIG_FILE_SYSTEM_DIR", "/system/etc/clang"}, + {"LLVM_ENABLE_FFI", "OFF"}, + {"LLVM_ENABLE_LIBXML2", "OFF"}, + {"LLVM_ENABLE_LIBCXX", "ON"}, + {"LLVM_ENABLE_LLD", "ON"}, + {"LIBUNWIND_ENABLE_ASSERTIONS", "OFF"}, + {"LIBUNWIND_USE_COMPILER_RT", "ON"}, - Cache: []KV{ - {"CMAKE_BUILD_TYPE", "Release"}, - - {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`}, - {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`}, - - // libc++ not yet available - {"CMAKE_CXX_COMPILER_TARGET", ""}, - - {"COMPILER_RT_BUILD_BUILTINS", "ON"}, - {"COMPILER_RT_DEFAULT_TARGET_ONLY", "OFF"}, - {"COMPILER_RT_SANITIZERS_TO_BUILD", "asan"}, - {"LLVM_ENABLE_PER_TARGET_RUNTIME_DIR", "ON"}, - - // does not work without libunwind - {"COMPILER_RT_BUILD_CTX_PROFILE", "OFF"}, - {"COMPILER_RT_BUILD_LIBFUZZER", "OFF"}, - {"COMPILER_RT_BUILD_MEMPROF", "OFF"}, - {"COMPILER_RT_BUILD_PROFILE", "OFF"}, - {"COMPILER_RT_BUILD_XRAY", "OFF"}, - }, - Script: ` -mkdir -p "/work/system/lib/clang/` + llvmVersionMajor + `/lib/" -ln -s \ - "../../../${ROSA_TRIPLE}" \ - "/work/system/lib/clang/` + llvmVersionMajor + `/lib/" - -ln -s \ - "clang_rt.crtbegin-` + linuxArch() + `.o" \ - "/work/system/lib/${ROSA_TRIPLE}/crtbeginS.o" -ln -s \ - "clang_rt.crtend-` + linuxArch() + `.o" \ - "/work/system/lib/${ROSA_TRIPLE}/crtendS.o" -`, - }, - Python, - - KernelHeaders, - ), llvmVersion -} -func init() { - artifactsM[CompilerRT] = Metadata{ - f: Toolchain.newCompilerRT, - - Name: "compiler-rt", - Description: "LLVM runtime: compiler-rt", - Website: "https://llvm.org/", - - Dependencies: P{ - Musl, - }, - } -} - -func (t Toolchain) newLLVMRuntimes() (pkg.Artifact, string) { - return t.NewPackage("llvm-runtimes", llvmVersion, t.Load(llvmSource), &PackageAttr{ - NonStage0: t.AppendPresets(nil, CompilerRT), - Env: stage0ExclConcat(t, []string{}, - "LDFLAGS="+earlyLDFLAGS(false), - ), - Flag: TExclusive, - }, &CMakeHelper{ - Append: []string{"runtimes"}, - - Cache: []KV{ - {"CMAKE_BUILD_TYPE", "Release"}, - - {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`}, - {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`}, - {"LLVM_ENABLE_RUNTIMES", "'libunwind;libcxx;libcxxabi'"}, - - {"LIBUNWIND_USE_COMPILER_RT", "ON"}, - {"LIBCXX_HAS_MUSL_LIBC", "ON"}, - {"LIBCXX_USE_COMPILER_RT", "ON"}, - {"LIBCXXABI_USE_COMPILER_RT", "ON"}, - {"LIBCXXABI_USE_LLVM_UNWINDER", "ON"}, - - // libc++ not yet available - {"CMAKE_CXX_COMPILER_WORKS", "ON"}, - - {"LIBCXX_HAS_ATOMIC_LIB", "OFF"}, - {"LIBCXXABI_HAS_CXA_THREAD_ATEXIT_IMPL", "OFF"}, - - {"LLVM_ENABLE_ZLIB", "OFF"}, - {"LLVM_ENABLE_ZSTD", "OFF"}, - {"LLVM_ENABLE_LIBXML2", "OFF"}, - }, - }, - Python, - - KernelHeaders, - ), llvmVersion -} -func init() { - artifactsM[LLVMRuntimes] = Metadata{ - f: Toolchain.newLLVMRuntimes, - - Name: "llvm-runtimes", - Description: "LLVM runtimes: libunwind, libcxx, libcxxabi", - Website: "https://llvm.org/", - - Dependencies: P{ - CompilerRT, - }, - } -} - -func (t Toolchain) newClang() (pkg.Artifact, string) { - target := "'AArch64;RISCV;X86'" - if t.isStage0() { - target = "Native" + {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`}, + {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`}, + {"LLVM_ENABLE_PROJECTS", "'clang;lld;libclc'"}, + {"LLVM_ENABLE_RUNTIMES", "'compiler-rt;libcxx;libcxxabi;libunwind'"}, } - return t.NewPackage("clang", llvmVersion, t.Load(llvmSource), &PackageAttr{ - NonStage0: t.AppendPresets(nil, LLVMRuntimes), - Env: stage0ExclConcat(t, []string{}, - "CFLAGS="+earlyCFLAGS, - "CXXFLAGS="+earlyCXXFLAGS(), - "LDFLAGS="+earlyLDFLAGS(false), - ), - Flag: TExclusive, - }, &CMakeHelper{ + if !t.isStage0() { + skipChecks := []string{ + // expensive, pointless to run here + "benchmarks", + // LLVM ERROR: Tried to execute an unknown external function: roundevenf + "ExecutionEngine/Interpreter/intrinsics.ll", + // clang: deadlocks with LLVM_BUILD_LLVM_DYLIB + "crash-recovery-modules", + // clang: fatal error: '__config_site' file not found + "CodeGen/PowerPC/ppc-xmmintrin.c", + "CodeGen/PowerPC/ppc-mmintrin.c", + "CodeGen/PowerPC/ppc-emmintrin.c", + "CodeGen/PowerPC/ppc-pmmintrin.c", + "CodeGen/PowerPC/ppc-tmmintrin.c", + "CodeGen/PowerPC/ppc-smmintrin.c", + "CodeGenCUDA/amdgpu-alias-undef-symbols.cu", + // cxx: fails on musl + "close.dont-get-rid-of-buffer", + "re/re.traits", + "std/time", + "localization/locales", + "localization/locale.categories", + "selftest/dsl/dsl.sh.py", + "input.output/iostream.format", + "locale-specific_form", + // cxx: deadlocks + "std/thread/thread.jthread", + // unwind: fails on musl + "eh_frame_fde_pc_range", + } + for i, s := range skipChecks { + s = regexp.QuoteMeta(s) + s = strings.ReplaceAll(s, "/", "\\/") + skipChecks[i] = s + } + + cache = append(cache, []KV{ + // very expensive + {"LLVM_ENABLE_LTO", "Thin"}, + + // symbols: clock_gettime, mallopt + {"COMPILER_RT_INCLUDE_TESTS", "OFF"}, + + {"LLVM_LIT_ARGS", "'" + strings.Join([]string{ + "--verbose", + "--filter-out='\\''" + strings.Join(skipChecks, "|") + "'\\''", + }, " ") + "'"}, + }...) + } + + return t.NewPackage("llvm", version, t.NewPatchedSource("llvm", version, newFromGitHub( + "llvm/llvm-project", + "llvmorg-"+version, + checksum, + ), true, llvmPatches...), nil, &CMakeHelper{ Append: []string{"llvm"}, - Cache: []KV{ - {"CMAKE_BUILD_TYPE", "Release"}, - - {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`}, - {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`}, - {"LLVM_ENABLE_PROJECTS", "'clang;lld'"}, - - {"LLVM_ENABLE_LIBCXX", "ON"}, - {"LLVM_USE_LINKER", "lld"}, - - {"LLVM_INSTALL_BINUTILS_SYMLINKS", "ON"}, - {"LLVM_INSTALL_CCTOOLS_SYMLINKS", "ON"}, - - {"LLVM_LIT_ARGS", "'--verbose'"}, - - {"CLANG_DEFAULT_LINKER", "lld"}, - {"CLANG_DEFAULT_CXX_STDLIB", "libc++"}, - {"CLANG_DEFAULT_RTLIB", "compiler-rt"}, - {"CLANG_DEFAULT_UNWINDLIB", "libunwind"}, - - {"LLVM_TARGETS_TO_BUILD", target}, - {"CMAKE_CROSSCOMPILING", "OFF"}, - {"CXX_SUPPORTS_CUSTOM_LINKER", "ON"}, - - {"LLVM_ENABLE_ZLIB", "OFF"}, - {"LLVM_ENABLE_ZSTD", "OFF"}, - {"LLVM_ENABLE_LIBXML2", "OFF"}, - }, + Cache: cache, Script: ` ln -s ld.lld /work/system/bin/ld ln -s clang /work/system/bin/cc ln -s clang++ /work/system/bin/c++ +`, + // LLVM_LINK_LLVM_DYLIB causes llvm test suite to leak system + // installation into test environment, and the tests end up testing the + // system installation instead. Tests are disabled on stage0 and relies + // on 3-stage determinism to test later stages. + SkipTest: t.isStage0(), + + Test: ` +chmod +w /bin && ln -s \ + ../system/bin/chmod \ + ../system/bin/mkdir \ + ../system/bin/rm \ + ../system/bin/tr \ + ../system/bin/awk \ + /bin ninja ` + jobsFlagE + ` check-all `, }, @@ -201,44 +144,26 @@ ninja ` + jobsFlagE + ` check-all Coreutils, Findutils, + Zlib, + Zstd, + muslHeaders, KernelHeaders, - ), llvmVersion + ), version } func init() { - artifactsM[Clang] = Metadata{ - f: Toolchain.newClang, + artifactsM[LLVM] = Metadata{ + f: Toolchain.newLLVM, - Name: "clang", - Description: `an "LLVM native" C/C++/Objective-C compiler`, - Website: "https://llvm.org/", + Name: "llvm", + Description: "a collection of modular and reusable compiler and toolchain technologies", + Website: "https://llvm.org", Dependencies: P{ - LLVMRuntimes, + Zlib, + Zstd, + Musl, }, - } -} - -func (t Toolchain) newLibclc() (pkg.Artifact, string) { - return t.NewPackage("libclc", llvmVersion, t.Load(llvmSource), nil, &CMakeHelper{ - Append: []string{"libclc"}, - - Cache: []KV{ - {"CMAKE_BUILD_TYPE", "Release"}, - - {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`}, - {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`}, - - {"LIBCLC_TARGETS_TO_BUILD", "all"}, - }, - Script: "ninja " + jobsFlagE + " test", - }), llvmVersion -} -func init() { - artifactsM[Libclc] = Metadata{ - f: Toolchain.newLibclc, - - Name: "libclc", - Description: "an open source, BSD/MIT dual licensed implementation of the library requirements of the OpenCL C programming language", - Website: "https://libclc.llvm.org/", + + ID: 1830, } } diff --git a/internal/rosa/llvm_latest.go b/internal/rosa/llvm_latest.go deleted file mode 100644 index b5822eb5..00000000 --- a/internal/rosa/llvm_latest.go +++ /dev/null @@ -1,9 +0,0 @@ -package rosa - -// latest version of LLVM, conditional to temporarily avoid broken new releases -const ( - llvmVersionMajor = "22" - llvmVersion = llvmVersionMajor + ".1.4" - - llvmChecksum = "Bk3t-tV5sD5T0bqefFMcLeFuAwXnhFipywZmqst5hAZs97QQWGKB_5XyAFjj5tDB" -) diff --git a/internal/rosa/llvm_patches_latest.go b/internal/rosa/llvm_patches.go similarity index 100% rename from internal/rosa/llvm_patches_latest.go rename to internal/rosa/llvm_patches.go diff --git a/internal/rosa/mksh.go b/internal/rosa/mksh.go index fde25270..59784276 100644 --- a/internal/rosa/mksh.go +++ b/internal/rosa/mksh.go @@ -7,9 +7,9 @@ func (t Toolchain) newMksh() (pkg.Artifact, string) { version = "59c" checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq" ) - return t.New("mksh-"+version, 0, stage0Concat(t, []pkg.Artifact{}, - t.Load(Perl), - t.Load(Coreutils), + return t.New("mksh-"+version, 0, t.AppendPresets(nil, + Perl, + Coreutils, ), nil, []string{ "LDSTATIC=-static", "CPPFLAGS=-DMKSH_DEFAULT_PROFILEDIR=\\\"/system/etc\\\"", diff --git a/internal/rosa/musl.go b/internal/rosa/musl.go index 2e9709cd..0cc3356a 100644 --- a/internal/rosa/musl.go +++ b/internal/rosa/musl.go @@ -2,10 +2,7 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newMusl( - headers bool, - extra ...pkg.Artifact, -) (pkg.Artifact, string) { +func (t Toolchain) newMusl(headers bool) (pkg.Artifact, string) { const ( version = "1.2.6" checksum = "WtWb_OV_XxLDAB5NerOL9loLlHVadV00MmGk65PPBU1evaolagoMHfvpZp_vxEzS" @@ -36,25 +33,26 @@ rmdir -v /work/lib helper.Script = "" } + env := []string{ + "LDFLAGS=" + earlyLDFLAGS(false), + } + if t.isStage0() { + env = append(env, + "CC=clang", + "AR=ar", + "RANLIB=ranlib", + ) + } + return t.NewPackage(name, version, newTar( "https://musl.libc.org/releases/musl-"+version+".tar.gz", checksum, pkg.TarGzip, ), &PackageAttr{ - NonStage0: extra, - // expected to be writable in copies Chmod: true, - Env: stage0ExclConcat(t, []string{ - "CC=clang", - "LIBCC=/system/lib/clang/" + llvmVersionMajor + "/lib/" + - triplet() + "/libclang_rt.builtins.a", - "AR=ar", - "RANLIB=ranlib", - }, - "LDFLAGS="+earlyLDFLAGS(false), - ), + Env: env, }, &helper, Coreutils, ), version @@ -62,7 +60,7 @@ rmdir -v /work/lib func init() { artifactsM[Musl] = Metadata{ f: func(t Toolchain) (pkg.Artifact, string) { - return t.newMusl(false, t.Load(CompilerRT)) + return t.newMusl(false) }, Name: "musl", @@ -71,4 +69,13 @@ func init() { ID: 11688, } + + artifactsM[muslHeaders] = Metadata{ + f: func(t Toolchain) (pkg.Artifact, string) { + return t.newMusl(true) + }, + + Name: "musl-headers", + Description: "system installation of musl headers", + } } diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go index c60e4568..e1d20407 100644 --- a/internal/rosa/rosa.go +++ b/internal/rosa/rosa.go @@ -107,21 +107,6 @@ func earlyLDFLAGS(static bool) string { return s } -// earlyCFLAGS is reference CFLAGS for the stage0 toolchain. -const earlyCFLAGS = "-Qunused-arguments " + - "-isystem/system/include" - -// earlyCXXFLAGS returns reference CXXFLAGS for the stage0 toolchain -// corresponding to [runtime.GOARCH]. -func earlyCXXFLAGS() string { - return "--start-no-unused-arguments " + - "-stdlib=libc++ " + - "--end-no-unused-arguments " + - "-isystem/system/include/c++/v1 " + - "-isystem/system/include/" + triplet() + "/c++/v1 " + - "-isystem/system/include " -} - // Toolchain denotes the infrastructure to compile a [pkg.Artifact] on. type Toolchain uint32 @@ -191,24 +176,6 @@ func (t Toolchain) isStd() bool { } } -// stage0Concat concatenates s and values. If the current toolchain is -// toolchainStage0, stage0Concat returns s as is. -func stage0Concat[S ~[]E, E any](t Toolchain, s S, values ...E) S { - if t.isStage0() { - return s - } - return slices.Concat(s, values) -} - -// stage0ExclConcat concatenates s and values. If the current toolchain is not -// toolchainStage0, stage0ExclConcat returns s as is. -func stage0ExclConcat[S ~[]E, E any](t Toolchain, s S, values ...E) S { - if t.isStage0() { - return slices.Concat(s, values) - } - return s -} - // lastIndexFunc is like [strings.LastIndexFunc] but for [slices]. func lastIndexFunc[S ~[]E, E any](s S, f func(E) bool) (i int) { if i = slices.IndexFunc(s, f); i < 0 { @@ -338,7 +305,7 @@ mkdir -vp /work/system/bin toybox = toyboxEarly } - base := Clang + base := LLVM if flag&TNoToolchain != 0 { base = Musl } @@ -353,11 +320,6 @@ mkdir -vp /work/system/bin env = fixupEnviron(env, []string{ EnvTriplet + "=" + triplet(), lcMessages, - - "AR=ar", - "RANLIB=ranlib", - "LIBCC=/system/lib/clang/" + llvmVersionMajor + "/lib/" + triplet() + - "/libclang_rt.builtins.a", }, "/system/bin", "/bin") default: @@ -415,8 +377,8 @@ cat /usr/src/` + name + `-patches/* | \ ` aname += "-patched" } - return t.New(aname, 0, stage0Concat(t, []pkg.Artifact{}, - t.Load(Patch), + return t.New(aname, 0, t.AppendPresets(nil, + Patch, ), nil, nil, script, paths...) } @@ -463,9 +425,6 @@ type PackageAttr struct { // Passed to [Toolchain.NewPatchedSource]. Patches []KV - // Dependencies not provided by stage0. - NonStage0 []pkg.Artifact - // Passed through to [Toolchain.New], before source. Paths []pkg.ExecPath // Passed through to [Toolchain.New]. @@ -533,14 +492,8 @@ func (t Toolchain) NewPackage( panic("source must be non-nil") } wantsChmod, wantsWrite := helper.wantsChmod(), helper.wantsWrite() - dc := len(attr.NonStage0) - if !t.isStage0() { - dc += 1<<3 + len(extra) - } - - extraRes := make([]pkg.Artifact, 0, dc) - extraRes = append(extraRes, attr.NonStage0...) - if !t.isStage0() { + extraRes := make([]pkg.Artifact, 0, 1<<3+len(extra)) + { pv := paGet() for _, p := range helper.extra(attr.Flag) { extraRes = t.appendPreset(extraRes, pv, p) diff --git a/internal/rosa/rosa_test.go b/internal/rosa/rosa_test.go index 0386aee7..b64ebbd7 100644 --- a/internal/rosa/rosa_test.go +++ b/internal/rosa/rosa_test.go @@ -94,7 +94,7 @@ func TestCureAll(t *testing.T) { func BenchmarkStage3(b *testing.B) { for b.Loop() { - rosa.Std.Load(rosa.Clang) + rosa.Std.Load(rosa.LLVM) b.StopTimer() rosa.DropCaches() diff --git a/internal/rosa/stage0.go b/internal/rosa/stage0.go index 747fd802..0afaddfb 100644 --- a/internal/rosa/stage0.go +++ b/internal/rosa/stage0.go @@ -9,9 +9,6 @@ import ( func (t Toolchain) newStage0() (pkg.Artifact, string) { return t.New("rosa-stage0", 0, []pkg.Artifact{ t.Load(Musl), - t.Load(CompilerRT), - t.Load(LLVMRuntimes), - t.Load(Clang), t.Load(Zlib), t.Load(Bzip2),