build: mark need runtime

This commit is contained in:
xushiwei
2024-04-29 00:49:17 +08:00
parent c30ed1b3c8
commit 769b93a277
2 changed files with 27 additions and 3 deletions

View File

@@ -126,6 +126,8 @@ type aProgram struct {
uintptrTy Type
intTy Type
f64Ty Type
needRuntime bool
}
// A Program presents a program.
@@ -154,10 +156,16 @@ func (p Program) SetRuntime(runtime any) {
}
}
// NeedRuntime returns if the current package needs runtime.
func (p Program) NeedRuntime() bool {
return p.needRuntime
}
func (p Program) runtime() *types.Package {
if p.rt == nil {
p.rt = p.rtget()
}
p.needRuntime = true
return p.rt
}
@@ -197,6 +205,7 @@ func (p Program) NewPackage(name, pkgPath string) Package {
// mod.Finalize()
fns := make(map[string]Function)
gbls := make(map[string]Global)
p.needRuntime = false
return &aPackage{mod, fns, gbls, p}
}