aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/package/llvm/package.az
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rosa/package/llvm/package.az')
-rw-r--r--internal/rosa/package/llvm/package.az65
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;