aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/llvm.go63
-rw-r--r--internal/rosa/package/llvm/package.az65
2 files changed, 65 insertions, 63 deletions
diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go
index 9228da83..9568b5aa 100644
--- a/internal/rosa/llvm.go
+++ b/internal/rosa/llvm.go
@@ -48,69 +48,6 @@ func litArgs(verbose bool, skipChecks ...string) string {
}
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",
-
- 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"},
-
- Cache: []KV{
- {"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,
- Script: `
-mkdir -p "/work/system/lib/clang/` + major + `/lib/"
-ln -s \
- "../../../${ROSA_TRIPLE}" \
- "/work/system/lib/clang/` + major + `/lib/"
-
-ln -s \
- "clang_rt.crtbegin-` + t.linuxArch() + `.o" \
- "/work/system/lib/${ROSA_TRIPLE}/crtbeginS.o"
-ln -s \
- "clang_rt.crtend-` + t.linuxArch() + `.o" \
- "/work/system/lib/${ROSA_TRIPLE}/crtendS.o"
-`,
- },
- _pythonEarly,
-
- _muslHeaders,
- _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 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;