From 9df160966091ac2451a2b592ee60d9e5a9c3da50 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sat, 18 Jul 2026 23:22:56 +0900 Subject: [PATCH] internal/rosa: migrate early-runtimes to azalea This is fully representable in azalea, so migrate it. Signed-off-by: Ophestra --- internal/rosa/llvm.go | 67 ++------------------------- internal/rosa/package/llvm/package.az | 52 +++++++++++++++++++++ 2 files changed, 56 insertions(+), 63 deletions(-) diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go index 28415ac6..9228da83 100644 --- a/internal/rosa/llvm.go +++ b/internal/rosa/llvm.go @@ -9,11 +9,10 @@ import ( ) var ( - _llvmSource = H("llvm-project") - _muslHeaders = H("musl-headers") - _earlyCompilerRT = H("early-compiler-rt") - _earlyRuntimes = H("early-runtimes") - _musl = H("musl") + _llvmSource = H("llvm-project") + _muslHeaders = H("musl-headers") + _earlyRuntimes = H("early-runtimes") + _musl = H("musl") _bash = H("bash") _awk = H("awk") @@ -112,64 +111,6 @@ ln -s \ ) }) - native.MustRegister("early-runtimes", func(t Toolchain) (*Metadata, pkg.Artifact) { - meta := Metadata{ - Name: "early-runtimes", - Description: "early LLVM runtimes: libunwind, libcxx, libcxxabi", - - Dependencies: P{ - _earlyCompilerRT, - }, - } - _meta, source := t.MustLoad(_llvmSource) - meta.Version = _meta.Version - - 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, - }, - _pythonEarly, - - _zlib, - _zstd, - _earlyCompilerRT, - _kernelHeaders, - ) - }) - native.MustRegister("llvm", func(t Toolchain) (*Metadata, pkg.Artifact) { meta := Metadata{ Name: "llvm", diff --git a/internal/rosa/package/llvm/package.az b/internal/rosa/package/llvm/package.az index 1f93e352..feefeba8 100644 --- a/internal/rosa/package/llvm/package.az +++ b/internal/rosa/package/llvm/package.az @@ -16,3 +16,55 @@ package llvm-project { "path-system-libraries.patch", ]; } + +package early-runtimes { + description = "early LLVM runtimes: libunwind, libcxx, libcxxabi"; + source = llvm-project; + + exclusive = true; + exec = cmake { + append = [ "runtimes" ]; + cache = { + "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; + }; + + inputs = [ + python-early, + + zlib, + zstd, + early-compiler-rt, + kernel-headers, + ]; + + runtime = [ early-compiler-rt ]; +}