diff options
| -rw-r--r-- | internal/rosa/make.go | 4 | ||||
| -rw-r--r-- | internal/rosa/package/kernel/package.az | 1 | ||||
| -rw-r--r-- | internal/rosa/package/llvm/package.az | 2 | ||||
| -rw-r--r-- | internal/rosa/package/make.az | 2 | ||||
| -rw-r--r-- | internal/rosa/package/musl/package.az | 2 | ||||
| -rw-r--r-- | internal/rosa/rosa.go | 7 | ||||
| -rw-r--r-- | internal/rosa/state.go | 5 |
7 files changed, 17 insertions, 6 deletions
diff --git a/internal/rosa/make.go b/internal/rosa/make.go index 71eeaa25..e0b9094f 100644 --- a/internal/rosa/make.go +++ b/internal/rosa/make.go @@ -121,8 +121,8 @@ func (attr *MakeHelper) script(t Toolchain, name string) string { target := t.triple() if cross { configure += ` -export CC='clang --target=` + target + ` -isysroot=/system/` + arch + `' -export CXX='clang++ --target=` + target + ` -isysroot=/system/` + arch + `' +export CC='clang --target=` + target + ` --sysroot=/system/` + arch + `' +export CXX='clang++ --target=` + target + ` --sysroot=/system/` + arch + `' ` } diff --git a/internal/rosa/package/kernel/package.az b/internal/rosa/package/kernel/package.az index 8e2dcfe5..3f7cf243 100644 --- a/internal/rosa/package/kernel/package.az +++ b/internal/rosa/package/kernel/package.az @@ -21,6 +21,7 @@ package kernel-headers { // updated manually for API changes "version.h"; }; + libc = false; toyboxEarly = true; exec = make { diff --git a/internal/rosa/package/llvm/package.az b/internal/rosa/package/llvm/package.az index 02cea79a..f55f4a7d 100644 --- a/internal/rosa/package/llvm/package.az +++ b/internal/rosa/package/llvm/package.az @@ -22,6 +22,7 @@ package early-builtins { source = llvm-project; exclusive = true; + libc = false; exec = cmake { append = [ "compiler-rt/lib/builtins" ]; @@ -50,6 +51,7 @@ package early-compiler-rt { source = llvm-project; exclusive = true; + libc = false; early = ` LLVM_VERSION_MAJOR="$(CLICOLOR_FORCE= cmake -P /dev/stdin <<< ' include(cmake/Modules/LLVMVersion.cmake) diff --git a/internal/rosa/package/make.az b/internal/rosa/package/make.az index 4aaf5736..5142b079 100644 --- a/internal/rosa/package/make.az +++ b/internal/rosa/package/make.az @@ -44,7 +44,7 @@ package make { writable = true; early = ` chmod +w tests/scripts/misc -rm \ +rm -f \ tests/scripts/misc/close_stdout \ tests/scripts/misc/general4 `; diff --git a/internal/rosa/package/musl/package.az b/internal/rosa/package/musl/package.az index d901fbc2..6eb01fd8 100644 --- a/internal/rosa/package/musl/package.az +++ b/internal/rosa/package/musl/package.az @@ -18,6 +18,7 @@ package musl-headers { // expected to be writable in copies chmod = true; + libc = false; env = [ "LDFLAGS=" + earlyLDFLAGS, ]; @@ -43,6 +44,7 @@ package musl { // expected to be writable in copies chmod = true; + libc = false; env = [ "LDFLAGS=" + earlyLDFLAGS, ]; diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go index 2241788f..7123de6e 100644 --- a/internal/rosa/rosa.go +++ b/internal/rosa/rosa.go @@ -340,6 +340,8 @@ type PackageAttr struct { // Whether the [Helper] behaves identically across all architectures. NoArch bool + // Whether libc can be omitted. + NoLibc bool // Inputs added only during cross-compilation. Cross P // Native utilities used by the build process. @@ -434,7 +436,7 @@ func (t Toolchain) New( cross := t.cross() var rootCross []pkg.Artifact if cross { - rootCross = make([]pkg.Artifact, 0, len(inputs)+len(attr.Cross)) + rootCross = make([]pkg.Artifact, 0, 1+len(inputs)+len(attr.Cross)) } const lcMessages = "LC_MESSAGES=C.UTF-8" @@ -534,6 +536,9 @@ func (t Toolchain) New( root = t.appendHandle(root, spv, p) } } else { + if !attr.NoLibc { + rootCross = t.appendHandle(rootCross, spv, _musl) + } for _, p := range inputs { rootCross = t.appendHandle(rootCross, spv, p) } diff --git a/internal/rosa/state.go b/internal/rosa/state.go index 592d6018..5d2de9a0 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -1106,7 +1106,7 @@ func (ctx *evalContext) pf( tools, inputs, extra azalea.Array cross, runtimes = azalea.Array{}, azalea.Array{} - bootstrap = true + bootstrap, libc = true, true ) if err = args.Apply(map[unique.Handle[azalea.Ident]]any{ k("description"): &meta.Description, @@ -1130,6 +1130,7 @@ func (ctx *evalContext) pf( k("toyboxEarly"): &attr.Early, k("minimal"): &attr.NoToolchain, k("bootstrap"): &bootstrap, + k("libc"): &libc, k("checksum"): &kc, k("output"): &output, @@ -1146,7 +1147,7 @@ func (ctx *evalContext) pf( }); err != nil { return } - attr.Std = !bootstrap + attr.Std, attr.NoLibc = !bootstrap, !libc attr.NoArch = cross == nil var inputsH, extraH P if inputsH, err = toHandles(inputs); err != nil { |
