diff options
Diffstat (limited to 'internal/rosa/llvm.go')
| -rw-r--r-- | internal/rosa/llvm.go | 64 |
1 files changed, 28 insertions, 36 deletions
diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go index b1d79663..a577df41 100644 --- a/internal/rosa/llvm.go +++ b/internal/rosa/llvm.go @@ -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"}, |
