diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-07-18 23:56:05 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-07-18 23:56:05 +0900 |
| commit | c822ff9aca0a3f176bf325daa73c2b9e810f896d (patch) | |
| tree | 39533342a8d511bf07a612b3cd83b86c3e526375 /internal/rosa/package/llvm/package.az | |
| parent | 9df160966091ac2451a2b592ee60d9e5a9c3da50 (diff) | |
internal/rosa: migrate early-compiler-rt to azalea
Had to do the cmake hack for now due to evaluator limitation with inherited version.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/package/llvm/package.az')
| -rw-r--r-- | internal/rosa/package/llvm/package.az | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/internal/rosa/package/llvm/package.az b/internal/rosa/package/llvm/package.az index feefeba8..352dca53 100644 --- a/internal/rosa/package/llvm/package.az +++ b/internal/rosa/package/llvm/package.az @@ -17,6 +17,71 @@ package llvm-project { ]; } +package early-compiler-rt { + description = "early LLVM runtime: compiler-rt"; + source = llvm-project; + + exclusive = true; + early = ` +LLVM_VERSION_MAJOR="$(cmake -P /dev/stdin <<< ' +include(cmake/Modules/LLVMVersion.cmake) +message(NOTICE "${LLVM_VERSION_MAJOR}") +' 2>&1)" +`; + exec = cmake { + append = [ "compiler-rt" ]; + cache = { + "ENABLE_LINKER_BUILD_ID": "ON"; + + // libc++ not yet available + "CMAKE_CXX_COMPILER_TARGET": ""; + + "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"; + + "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; + postInstall = ` +mkdir -p "/work/system/lib/clang/$LLVM_VERSION_MAJOR/lib/" +ln -s \ + "../../../${ROSA_TRIPLE}" \ + "/work/system/lib/clang/$LLVM_VERSION_MAJOR/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" +`; + }; + + inputs = [ + python-early, + + musl-headers, + kernel-headers, + ]; + + runtime = [ musl ]; +} + package early-runtimes { description = "early LLVM runtimes: libunwind, libcxx, libcxxabi"; source = llvm-project; |
