aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/llvm.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-19 00:03:42 +0900
committerOphestra <cat@gensokyo.uk>2026-05-19 00:44:24 +0900
commit8807cbc7305e424725b2be8eed7ecd9234f7772e (patch)
tree5998f055396505becf0f99fcba3c86514f00650b /internal/rosa/llvm.go
parent0e95573f187f64de1a46f27af67325e57037b9a9 (diff)
internal/rosa: create metadata alongside artifact
This enables deferring evaluation of azalea-based packages and fixes the longstanding quirk of version being disjoint from other metadata. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/llvm.go')
-rw-r--r--internal/rosa/llvm.go512
1 files changed, 254 insertions, 258 deletions
diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go
index ccc8ee8c..0758183e 100644
--- a/internal/rosa/llvm.go
+++ b/internal/rosa/llvm.go
@@ -29,42 +29,52 @@ func litArgs(verbose bool, skipChecks ...string) string {
return "'" + strings.Join(args, " ") + "'"
}
-func (t Toolchain) newEarlyCompilerRT() (pkg.Artifact, string) {
- source, version := t.Load(llvmSource)
- major, _, _ := strings.Cut(version, ".")
- return t.NewPackage("early-compiler-rt", version, source, &PackageAttr{
- Flag: TExclusive,
- }, &CMakeHelper{
- Append: []string{"compiler-rt"},
+func init() {
+ native.MustRegister("early-compiler-rt", func(t Toolchain) (*Metadata, pkg.Artifact) {
+ meta := Metadata{
+ Name: "early-compiler-rt",
+ Description: "early LLVM runtime: compiler-rt",
- Cache: []KV{
- {"ENABLE_LINKER_BUILD_ID", "ON"},
+ Dependencies: P{
+ Musl,
+ },
+ }
+ _meta, source := t.MustLoad(llvmSource)
+ meta.Version = _meta.Version
+ major, _, _ := strings.Cut(meta.Version, ".")
+ return &meta, t.NewPackage("early-compiler-rt", meta.Version, source, &PackageAttr{
+ Flag: TExclusive,
+ }, &CMakeHelper{
+ Append: []string{"compiler-rt"},
- // libc++ not yet available
- {"CMAKE_CXX_COMPILER_TARGET", ""},
+ Cache: []KV{
+ {"ENABLE_LINKER_BUILD_ID", "ON"},
- {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`},
- {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`},
- {"LLVM_ENABLE_RTTI", "ON"},
- {"LLVM_BUILD_LLVM_DYLIB", "ON"},
- {"LLVM_LINK_LLVM_DYLIB", "ON"},
- {"LLVM_ENABLE_PER_TARGET_RUNTIME_DIR", "ON"},
+ // libc++ not yet available
+ {"CMAKE_CXX_COMPILER_TARGET", ""},
- {"COMPILER_RT_BUILD_BUILTINS", "ON"},
- {"COMPILER_RT_DEFAULT_TARGET_ONLY", "ON"},
- {"COMPILER_RT_USE_BUILTINS_LIBRARY", "ON"},
- {"COMPILER_RT_SANITIZERS_TO_BUILD", "asan"},
- {"COMPILER_RT_BUILD_GWP_ASAN", "OFF"},
+ {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`},
+ {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`},
+ {"LLVM_ENABLE_RTTI", "ON"},
+ {"LLVM_BUILD_LLVM_DYLIB", "ON"},
+ {"LLVM_LINK_LLVM_DYLIB", "ON"},
+ {"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"},
- },
- SkipTest: true,
- Script: `
+ {"COMPILER_RT_BUILD_BUILTINS", "ON"},
+ {"COMPILER_RT_DEFAULT_TARGET_ONLY", "ON"},
+ {"COMPILER_RT_USE_BUILTINS_LIBRARY", "ON"},
+ {"COMPILER_RT_SANITIZERS_TO_BUILD", "asan"},
+ {"COMPILER_RT_BUILD_GWP_ASAN", "OFF"},
+
+ // 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"},
+ },
+ SkipTest: true,
+ Script: `
mkdir -p "/work/system/lib/clang/` + major + `/lib/"
ln -s \
"../../../${ROSA_TRIPLE}" \
@@ -77,223 +87,242 @@ ln -s \
"clang_rt.crtend-` + t.linuxArch() + `.o" \
"/work/system/lib/${ROSA_TRIPLE}/crtendS.o"
`,
- },
- Python,
+ },
+ Python,
- muslHeaders,
- KernelHeaders,
- ), version
-}
-func init() {
- native.MustRegister(&Artifact{
- f: Toolchain.newEarlyCompilerRT,
+ muslHeaders,
+ KernelHeaders,
+ )
+ })
+
+ native.MustRegister("early-runtimes", func(t Toolchain) (*Metadata, pkg.Artifact) {
+ meta := Metadata{
+ Name: "early-runtimes",
+ Description: "early LLVM runtimes: libunwind, libcxx, libcxxabi",
- Name: "early-compiler-rt",
- Description: "early LLVM runtime: compiler-rt",
+ Dependencies: P{
+ earlyCompilerRT,
+ },
+ }
+ _meta, source := t.MustLoad(llvmSource)
+ meta.Version = _meta.Version
- Dependencies: P{
- Musl,
+ return &meta, t.NewPackage("early-runtimes", meta.Version, source, &PackageAttr{
+ Flag: TExclusive,
+ }, &CMakeHelper{
+ Append: []string{"runtimes"},
+
+ Cache: []KV{
+ {"ENABLE_LINKER_BUILD_ID", "ON"},
+
+ // libc++ not yet available
+ {"CMAKE_CXX_COMPILER_WORKS", "ON"},
+
+ {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`},
+ {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`},
+ {"LLVM_ENABLE_RTTI", "ON"},
+ {"LLVM_BUILD_LLVM_DYLIB", "ON"},
+ {"LLVM_LINK_LLVM_DYLIB", "ON"},
+ {"LLVM_ENABLE_RUNTIMES", "'libunwind;libcxx;libcxxabi'"},
+
+ {"LIBUNWIND_ENABLE_ASSERTIONS", "OFF"},
+ {"LIBUNWIND_USE_COMPILER_RT", "ON"},
+ {"LIBCXX_HAS_MUSL_LIBC", "ON"},
+ {"LIBCXX_USE_COMPILER_RT", "ON"},
+ {"LIBCXX_CXX_ABI", "libcxxabi"},
+ {"LIBCXX_ENABLE_STATIC_ABI_LIBRARY", "OFF"},
+ {"LIBCXX_HARDENING_MODE", "fast"},
+ {"LIBCXX_HAS_ATOMIC_LIB", "OFF"},
+ {"LIBCXXABI_USE_COMPILER_RT", "ON"},
+ {"LIBCXXABI_USE_LLVM_UNWINDER", "ON"},
+ {"LIBCXXABI_ENABLE_STATIC_UNWINDER", "OFF"},
+ {"LIBCXXABI_HAS_CXA_THREAD_ATEXIT_IMPL", "OFF"},
+
+ {"LLVM_ENABLE_ZLIB", "FORCE_ON"},
+ {"LLVM_ENABLE_ZSTD", "FORCE_ON"},
+ {"LLVM_ENABLE_LIBXML2", "OFF"},
+ },
+ SkipTest: true,
},
+ Python,
+
+ Zlib,
+ Zstd,
+ earlyCompilerRT,
+ KernelHeaders,
+ )
})
-}
-func (t Toolchain) newEarlyRuntimes() (pkg.Artifact, string) {
- source, version := t.Load(llvmSource)
- return t.NewPackage("early-runtimes", version, source, &PackageAttr{
- Flag: TExclusive,
- }, &CMakeHelper{
- Append: []string{"runtimes"},
+ const (
+ version = "22.1.5"
+ checksum = "32gOaLPHcUlo3hkdk5RbFumTE01XKeCAYZcpvn8IDHF95egXVfDFSl6eZL3ChMen"
+ )
- Cache: []KV{
- {"ENABLE_LINKER_BUILD_ID", "ON"},
+ native.MustRegister("llvm-project", func(t Toolchain) (*Metadata, pkg.Artifact) {
+ meta := Metadata{
+ Name: "llvm-project",
+ Description: "LLVM monorepo with Rosa OS patches",
+ Version: version,
- // libc++ not yet available
- {"CMAKE_CXX_COMPILER_WORKS", "ON"},
+ ID: 1830,
+ }
+ return &meta, t.NewPatchedSource("llvm", version, newFromGitHub(
+ "llvm/llvm-project",
+ "llvmorg-"+version,
+ checksum,
+ ), true, llvmPatches...)
+ })
- {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`},
- {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`},
- {"LLVM_ENABLE_RTTI", "ON"},
- {"LLVM_BUILD_LLVM_DYLIB", "ON"},
- {"LLVM_LINK_LLVM_DYLIB", "ON"},
- {"LLVM_ENABLE_RUNTIMES", "'libunwind;libcxx;libcxxabi'"},
+ native.MustRegister("llvm", func(t Toolchain) (*Metadata, pkg.Artifact) {
+ meta := Metadata{
+ Name: "llvm",
+ Description: "a collection of modular and reusable compiler and toolchain technologies",
+ Website: "https://llvm.org",
- {"LIBUNWIND_ENABLE_ASSERTIONS", "OFF"},
- {"LIBUNWIND_USE_COMPILER_RT", "ON"},
- {"LIBCXX_HAS_MUSL_LIBC", "ON"},
- {"LIBCXX_USE_COMPILER_RT", "ON"},
+ Dependencies: P{
+ Zlib,
+ Zstd,
+ Musl,
+ },
+ }
+ _meta, source := t.MustLoad(llvmSource)
+ meta.Version = _meta.Version
+
+ early := muslHeaders
+ if t.stage.isStage0() {
+ // The LLVM build system uses the system installation when building with
+ // LLVM_LINK_LLVM_DYLIB, since it builds runtimes after the fact, using
+ // the just-built toolchain. This is unacceptable in stage0 due to the
+ // potential version difference. Later stages bootstrap off of runtimes
+ // of its previous stage via 3-stage determinism.
+ early = earlyRuntimes
+ }
+
+ cache := []KV{
+ {"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"},
- {"LIBCXX_HAS_ATOMIC_LIB", "OFF"},
- {"LIBCXXABI_USE_COMPILER_RT", "ON"},
{"LIBCXXABI_USE_LLVM_UNWINDER", "ON"},
{"LIBCXXABI_ENABLE_STATIC_UNWINDER", "OFF"},
- {"LIBCXXABI_HAS_CXA_THREAD_ATEXIT_IMPL", "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"},
+ {"LLVM_INCLUDE_BENCHMARKS", "OFF"},
+ {"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"},
- },
- SkipTest: true,
- },
- Python,
-
- Zlib,
- Zstd,
- earlyCompilerRT,
- KernelHeaders,
- ), version
-}
-func init() {
- native.MustRegister(&Artifact{
- f: Toolchain.newEarlyRuntimes,
-
- Name: "early-runtimes",
- Description: "early LLVM runtimes: libunwind, libcxx, libcxxabi",
-
- Dependencies: P{
- earlyCompilerRT,
- },
- })
-}
-
-func (t Toolchain) newLLVM() (pkg.Artifact, string) {
- early := muslHeaders
- if t.stage.isStage0() {
- // The LLVM build system uses the system installation when building with
- // LLVM_LINK_LLVM_DYLIB, since it builds runtimes after the fact, using
- // the just-built toolchain. This is unacceptable in stage0 due to the
- // potential version difference. Later stages bootstrap off of runtimes
- // of its previous stage via 3-stage determinism.
- early = earlyRuntimes
- }
+ {"LLVM_ENABLE_LIBCXX", "ON"},
+ {"LLVM_ENABLE_LLD", "ON"},
+ {"LIBUNWIND_ENABLE_ASSERTIONS", "OFF"},
+ {"LIBUNWIND_USE_COMPILER_RT", "ON"},
- cache := []KV{
- {"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"},
- {"LLVM_INCLUDE_BENCHMARKS", "OFF"},
- {"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"},
+ {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`},
+ {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`},
+ {"LLVM_ENABLE_PROJECTS", "'" + strings.Join([]string{
+ "clang",
+ "lld",
+ }, ";") + "'"},
+ {"LLVM_ENABLE_RUNTIMES", "'" + strings.Join([]string{
+ "compiler-rt",
+ "libcxx",
+ "libcxxabi",
+ "libunwind",
+ "libclc",
+ }, ";") + "'"},
+ }
- {"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`},
- {"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`},
- {"LLVM_ENABLE_PROJECTS", "'" + strings.Join([]string{
- "clang",
- "lld",
- }, ";") + "'"},
- {"LLVM_ENABLE_RUNTIMES", "'" + strings.Join([]string{
- "compiler-rt",
- "libcxx",
- "libcxxabi",
- "libunwind",
- "libclc",
- }, ";") + "'"},
- }
+ if !t.stage.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",
+ }
+ switch t.arch {
+ case "arm64":
+ skipChecks = append(skipChecks,
+ // LLVM: intermittently crashes
+ "ExecutionEngine/OrcLazy/multiple-compile-threads-basic.ll",
+ // unwind: unexpectedly passes
+ "unwind_leaffunction",
+ )
+ }
- if !t.stage.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",
- }
- switch t.arch {
- case "arm64":
- skipChecks = append(skipChecks,
- // LLVM: intermittently crashes
- "ExecutionEngine/OrcLazy/multiple-compile-threads-basic.ll",
- // unwind: unexpectedly passes
- "unwind_leaffunction",
- )
- }
+ if t.opts&OptLLVMNoLTO == 0 {
+ cache = append(cache, []KV{
+ // very expensive
+ {"LLVM_ENABLE_LTO", "Thin"},
+ }...)
+ }
- if t.opts&OptLLVMNoLTO == 0 {
cache = append(cache, []KV{
- // very expensive
- {"LLVM_ENABLE_LTO", "Thin"},
+ // symbols: clock_gettime, mallopt
+ {"COMPILER_RT_INCLUDE_TESTS", "OFF"},
+
+ {"LLVM_BUILD_TESTS", "ON"},
+ {"LLVM_LIT_ARGS", litArgs(true, skipChecks...)},
}...)
}
- cache = append(cache, []KV{
- // symbols: clock_gettime, mallopt
- {"COMPILER_RT_INCLUDE_TESTS", "OFF"},
+ return &meta, t.NewPackage("llvm", meta.Version, source, &PackageAttr{
+ Flag: TExclusive,
+ }, &CMakeHelper{
+ Append: []string{"llvm"},
- {"LLVM_BUILD_TESTS", "ON"},
- {"LLVM_LIT_ARGS", litArgs(true, skipChecks...)},
- }...)
- }
-
- source, version := t.Load(llvmSource)
- return t.NewPackage("llvm", version, source, &PackageAttr{
- Flag: TExclusive,
- }, &CMakeHelper{
- Append: []string{"llvm"},
-
- Cache: cache,
- Script: `
+ Cache: cache,
+ Script: `
ln -s ld.lld /work/system/bin/ld
ln -s clang /work/system/bin/cc
ln -s clang /work/system/bin/cpp
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.stage.isStage0(),
+ // 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.stage.isStage0(),
- Test: `
+ Test: `
chmod +w /bin && ln -s \
../system/bin/chmod \
../system/bin/mkdir \
@@ -303,53 +332,20 @@ chmod +w /bin && ln -s \
/bin
ninja ` + jobsFlagE + ` check-all
`,
- },
- Python,
- Perl,
- Diffutils,
- Bash,
- Gawk,
- Coreutils,
- Findutils,
-
- Zlib,
- Zstd,
- early,
- KernelHeaders,
- ), version
-}
-func init() {
- const (
- version = "22.1.5"
- checksum = "32gOaLPHcUlo3hkdk5RbFumTE01XKeCAYZcpvn8IDHF95egXVfDFSl6eZL3ChMen"
- )
-
- native.MustRegister(&Artifact{
- f: func(t Toolchain) (pkg.Artifact, string) {
- return t.NewPatchedSource("llvm", version, newFromGitHub(
- "llvm/llvm-project",
- "llvmorg-"+version,
- checksum,
- ), true, llvmPatches...), version
},
+ Python,
+ Perl,
+ Diffutils,
+ Bash,
+ Gawk,
+ Coreutils,
+ Findutils,
- Name: "llvm-project",
- Description: "LLVM monorepo with Rosa OS patches",
-
- ID: 1830,
- })
-
- native.MustRegister(&Artifact{
- f: Toolchain.newLLVM,
-
- Name: "llvm",
- Description: "a collection of modular and reusable compiler and toolchain technologies",
- Website: "https://llvm.org",
-
- Dependencies: P{
Zlib,
Zstd,
- Musl,
- },
+ early,
+ KernelHeaders,
+ )
+
})
}