internal/rosa: stage3 special case helper
All checks were successful
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m42s
Test / Hakurei (push) Successful in 3m48s
Test / ShareFS (push) Successful in 3m58s
Test / Hpkg (push) Successful in 4m30s
Test / Sandbox (race detector) (push) Successful in 5m1s
Test / Hakurei (race detector) (push) Successful in 5m54s
Test / Flake checks (push) Successful in 1m40s
All checks were successful
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m42s
Test / Hakurei (push) Successful in 3m48s
Test / ShareFS (push) Successful in 3m58s
Test / Hpkg (push) Successful in 4m30s
Test / Sandbox (race detector) (push) Successful in 5m1s
Test / Hakurei (race detector) (push) Successful in 5m54s
Test / Flake checks (push) Successful in 1m40s
This makes it cleaner to specify non-stage3 and stage3-exclusive dependencies. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -124,20 +124,6 @@ func (t Toolchain) newLLVM(variant string, attr *llvmAttr) pkg.Artifact {
|
||||
)
|
||||
}
|
||||
|
||||
extra := []pkg.Artifact{
|
||||
t.NewLibffi(),
|
||||
t.NewPython(),
|
||||
t.NewPerl(),
|
||||
t.NewDiffutils(),
|
||||
t.NewBash(),
|
||||
t.NewCoreutils(),
|
||||
|
||||
t.NewKernelHeaders(),
|
||||
}
|
||||
if t == toolchainStage3 {
|
||||
extra = nil
|
||||
}
|
||||
|
||||
if attr.flags&llvmProjectClang != 0 {
|
||||
cache = append(cache,
|
||||
[2]string{"CLANG_DEFAULT_LINKER", "lld"},
|
||||
@@ -200,7 +186,9 @@ cp -r /system/include /usr/include && rm -rf /system/include
|
||||
patches[0] = pkg.Path(AbsUsrSrc.Append("llvmorg"), false, source)
|
||||
if len(patches) > 1 {
|
||||
source = t.New(
|
||||
"llvmorg-patched", nil, nil, nil, `
|
||||
"llvmorg-patched", stage3Concat(t, []pkg.Artifact{},
|
||||
t.NewPatch(),
|
||||
), nil, nil, `
|
||||
cp -r /usr/src/llvmorg/. /work/.
|
||||
chmod -R +w /work && cd /work
|
||||
cat /usr/src/llvm-patches/* | patch -p 1
|
||||
@@ -211,7 +199,16 @@ cat /usr/src/llvm-patches/* | patch -p 1
|
||||
return t.NewViaCMake("llvm", version, variant, source, &CMakeAttr{
|
||||
Cache: slices.Concat(cache, attr.cmake),
|
||||
Append: cmakeAppend,
|
||||
Extra: slices.Concat(attr.extra, extra),
|
||||
Extra: stage3Concat(t, attr.extra,
|
||||
t.NewLibffi(),
|
||||
t.NewPython(),
|
||||
t.NewPerl(),
|
||||
t.NewDiffutils(),
|
||||
t.NewBash(),
|
||||
t.NewCoreutils(),
|
||||
|
||||
t.NewKernelHeaders(),
|
||||
),
|
||||
Prefix: attr.prefix,
|
||||
|
||||
Env: slices.Concat([]string{
|
||||
@@ -239,15 +236,10 @@ func (t Toolchain) NewLLVM() (musl, compilerRT, runtimes, clang pkg.Artifact) {
|
||||
{"LLVM_ENABLE_LIBXML2", "OFF"},
|
||||
}
|
||||
|
||||
var env []string
|
||||
if t == toolchainStage3 {
|
||||
env = []string{
|
||||
"LDFLAGS=" + earlyLDFLAGS(false),
|
||||
}
|
||||
}
|
||||
|
||||
compilerRT = t.newLLVM("compiler-rt", &llvmAttr{
|
||||
env: env,
|
||||
env: stage3ExclConcat(t, []string{},
|
||||
"LDFLAGS="+earlyLDFLAGS(false),
|
||||
),
|
||||
cmake: [][2]string{
|
||||
// libc++ not yet available
|
||||
{"CMAKE_CXX_COMPILER_TARGET", ""},
|
||||
@@ -288,17 +280,21 @@ ln -s \
|
||||
|
||||
musl = t.NewMusl(&MuslAttr{
|
||||
Extra: []pkg.Artifact{compilerRT},
|
||||
Env: slices.Concat(env, []string{
|
||||
Env: stage3ExclConcat(t, []string{
|
||||
"CC=clang",
|
||||
"LIBCC=/system/lib/clang/21/lib/" +
|
||||
triplet() + "/libclang_rt.builtins.a",
|
||||
"AR=ar",
|
||||
"RANLIB=ranlib",
|
||||
}),
|
||||
},
|
||||
"LDFLAGS="+earlyLDFLAGS(false),
|
||||
),
|
||||
})
|
||||
|
||||
runtimes = t.newLLVM("runtimes", &llvmAttr{
|
||||
env: env,
|
||||
env: stage3ExclConcat(t, []string{},
|
||||
"LDFLAGS="+earlyLDFLAGS(false),
|
||||
),
|
||||
flags: llvmRuntimeLibunwind | llvmRuntimeLibcxx | llvmRuntimeLibcxxABI,
|
||||
cmake: slices.Concat([][2]string{
|
||||
// libc++ not yet available
|
||||
@@ -314,17 +310,13 @@ ln -s \
|
||||
},
|
||||
})
|
||||
|
||||
var clangExtraEnv []string
|
||||
if t == toolchainStage3 {
|
||||
clangExtraEnv = []string{
|
||||
"CFLAGS=" + earlyCFLAGS,
|
||||
"CXXFLAGS=" + earlyCXXFLAGS(),
|
||||
}
|
||||
}
|
||||
|
||||
clang = t.newLLVM("clang", &llvmAttr{
|
||||
flags: llvmProjectClang | llvmProjectLld,
|
||||
env: slices.Concat(clangExtraEnv, env),
|
||||
env: stage3ExclConcat(t, []string{},
|
||||
"CFLAGS="+earlyCFLAGS,
|
||||
"CXXFLAGS="+earlyCXXFLAGS(),
|
||||
"LDFLAGS="+earlyLDFLAGS(false),
|
||||
),
|
||||
cmake: slices.Concat([][2]string{
|
||||
{"LLVM_TARGETS_TO_BUILD", target},
|
||||
{"CMAKE_CROSSCOMPILING", "OFF"},
|
||||
|
||||
Reference in New Issue
Block a user