package llvm-project { description = "LLVM monorepo with Rosa OS patches"; anitya = 1830; version# = "23.1.4"; output = remoteGitHub { suffix = "llvm/llvm-project"; tag = "llvmorg-"+version; checksum = "WcBjxRCDEAJDQVDxnEzr8iivxiShCKU7hM84TMSNfwdymAX-Eyw8oTda7pDSL73O"; }; patches = [ "increase-stack-size-unconditional.patch", "add-rosa-vendor.patch", "xfail-broken-tests.patch", "path-system-include.patch", "path-system-libraries.patch", ]; } package early-builtins { description = "early LLVM runtime: compiler-rt (builtins)"; source = llvm-project; libc = false; exec = cmake { append = [ "compiler-rt/lib/builtins" ]; cache = { "LLVM_HOST_TRIPLE": triple; "LLVM_ENABLE_RTTI": "ON"; "LLVM_BUILD_LLVM_DYLIB": "ON"; "LLVM_LINK_LLVM_DYLIB": "ON"; "LLVM_ENABLE_PER_TARGET_RUNTIME_DIR": "ON"; "COMPILER_RT_DEFAULT_TARGET_ONLY": "ON"; }; test = nil; }; tools = [ python-early ]; inputs = [ musl-headers, kernel-headers, ]; } package early-compiler-rt { description = "early LLVM runtime: compiler-rt"; source = llvm-project; libc = false; early = ` LLVM_VERSION_MAJOR="$(CLICOLOR_FORCE= 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": ""; // musl not yet available "CMAKE_TRY_COMPILE_TARGET_TYPE": "STATIC_LIBRARY"; "LLVM_HOST_TRIPLE": 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"; // does not work without libunwind "COMPILER_RT_BUILD_CTX_PROFILE": "OFF"; "COMPILER_RT_BUILD_SANITIZERS": "OFF"; "COMPILER_RT_BUILD_LIBFUZZER": "OFF"; "COMPILER_RT_BUILD_MEMPROF": "OFF"; "COMPILER_RT_BUILD_PROFILE": "OFF"; "COMPILER_RT_BUILD_XRAY": "OFF"; "COMPILER_RT_BUILD_ORC": "OFF"; }; test = nil; postInstall = ` mkdir -p "/work/system/lib/clang/$LLVM_VERSION_MAJOR/lib/" ln -s \ '../../../`+triple+`' \ "/work/system/lib/clang/$LLVM_VERSION_MAJOR/lib/" `; }; tools = [ python-early ]; inputs = [ musl-headers, kernel-headers, ]; cross = [ early-builtins ]; } package early-runtimes { description = "early LLVM runtimes: libunwind, libcxx, libcxxabi"; source = llvm-project; exec = cmake { append = [ "runtimes" ]; cache = { "ENABLE_LINKER_BUILD_ID": "ON"; // libc++ not yet available "CMAKE_CXX_COMPILER_WORKS": "ON"; "LLVM_HOST_TRIPLE": 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"; }; test = nil; }; tools = [ python-early ]; inputs = [ zlib, zstd, early-compiler-rt, kernel-headers, ]; runtime = [ musl, early-compiler-rt, ]; }