internal/rosa: migrate early-compiler-rt to azalea
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m44s
Test / ShareFS (push) Successful in 3m53s
Test / Hakurei (push) Successful in 4m8s
Test / Sandbox (race detector) (push) Successful in 5m30s
Test / Hakurei (race detector) (push) Successful in 6m39s
Test / Flake checks (push) Successful in 1m5s
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m44s
Test / ShareFS (push) Successful in 3m53s
Test / Hakurei (push) Successful in 4m8s
Test / Sandbox (race detector) (push) Successful in 5m30s
Test / Hakurei (race detector) (push) Successful in 6m39s
Test / Flake checks (push) Successful in 1m5s
Had to do the cmake hack for now due to evaluator limitation with inherited version. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -48,69 +48,6 @@ func litArgs(verbose bool, skipChecks ...string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
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) {
|
native.MustRegister("llvm", func(t Toolchain) (*Metadata, pkg.Artifact) {
|
||||||
meta := Metadata{
|
meta := Metadata{
|
||||||
Name: "llvm",
|
Name: "llvm",
|
||||||
|
|||||||
@@ -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 {
|
package early-runtimes {
|
||||||
description = "early LLVM runtimes: libunwind, libcxx, libcxxabi";
|
description = "early LLVM runtimes: libunwind, libcxx, libcxxabi";
|
||||||
source = llvm-project;
|
source = llvm-project;
|
||||||
|
|||||||
Reference in New Issue
Block a user