diff options
| -rw-r--r-- | internal/rosa/azalea/evaluate.go | 3 | ||||
| -rw-r--r-- | internal/rosa/rosa.go | 7 | ||||
| -rw-r--r-- | internal/rosa/state.go | 5 |
3 files changed, 13 insertions, 2 deletions
diff --git a/internal/rosa/azalea/evaluate.go b/internal/rosa/azalea/evaluate.go index 59702062..9b7b08d0 100644 --- a/internal/rosa/azalea/evaluate.go +++ b/internal/rosa/azalea/evaluate.go @@ -208,6 +208,8 @@ var ( IdentInputs = unique.Make(Ident("inputs")) // IdentCross has the same semantics as [IdentTools]. IdentCross = unique.Make(Ident("cross")) + // IdentNative has the same semantics as [IdentTools]. + IdentNative = unique.Make(Ident("native")) // IdentRuntime has the same semantics as [IdentTools]. IdentRuntime = unique.Make(Ident("runtime")) // IdentExtra has the same semantics as [IdentTools]. @@ -364,6 +366,7 @@ func evaluateAny(d PF, s []Frame, expr, rp any) bool { IdentTools, IdentInputs, IdentCross, + IdentNative, IdentRuntime, IdentExtra, } { diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go index 7123de6e..27f31ecf 100644 --- a/internal/rosa/rosa.go +++ b/internal/rosa/rosa.go @@ -344,6 +344,8 @@ type PackageAttr struct { NoLibc bool // Inputs added only during cross-compilation. Cross P + // Native utilities added only during cross-compilation. + CrossTools P // Native utilities used by the build process. Tools P // Unregistered extras. @@ -429,7 +431,7 @@ func (t Toolchain) New( root := make([]pkg.Artifact, 0, 1<<3+ len(attr.Extra)+ len(attr.Tools)+ - len(attr.Cross)+ + len(attr.CrossTools)+ len(inputs)) root = append(root, attr.Extra...) @@ -545,6 +547,9 @@ func (t Toolchain) New( for _, p := range attr.Cross { rootCross = t.appendHandle(rootCross, spv, p) } + for _, p := range attr.CrossTools { + root = native.appendHandle(root, pv, p) + } } boot := native.S.New(t.stage - 1) diff --git a/internal/rosa/state.go b/internal/rosa/state.go index 5d2de9a0..aba5c312 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -1103,7 +1103,7 @@ func (ctx *evalContext) pf( overlay string join bool - tools, inputs, extra azalea.Array + tools, native, inputs, extra azalea.Array cross, runtimes = azalea.Array{}, azalea.Array{} bootstrap, libc = true, true @@ -1138,6 +1138,7 @@ func (ctx *evalContext) pf( k("exec"): &helper, k("inputs"): &inputs, k("cross"): &cross, + k("native"): &native, k("tools"): &tools, k("runtime"): &runtimes, k("join"): &join, @@ -1154,6 +1155,8 @@ func (ctx *evalContext) pf( return } else if attr.Cross, err = toHandles(cross); err != nil { return + } else if attr.CrossTools, err = toHandles(native); err != nil { + return } else if attr.Tools, err = toHandles(tools); err != nil { return } else if extraH, err = toHandles(extra); err != nil { |
