runtime: config overlay

This commit is contained in:
visualfc
2025-02-06 11:02:09 +08:00
parent 1b3464b610
commit 0d218bb4b9
7 changed files with 16 additions and 9 deletions

View File

@@ -329,6 +329,12 @@ func TestIntVal(t *testing.T) {
intVal(&ssa.Parameter{})
}
func TestIgnoreName(t *testing.T) {
if !ignoreName("runtime/foo.bar") || ignoreName("internal/abi.Type") {
t.Fatal("ignoreName failed")
}
}
func TestErrImport(t *testing.T) {
var ctx context
pkg := types.NewPackage("foo", "foo")

View File

@@ -134,9 +134,9 @@ func Do(args []string, conf *Config) ([]Package, error) {
cfg.Mode |= packages.NeedForTest
}
if len(overlayFiles) > 0 {
if len(llruntime.OverlayFiles) > 0 {
cfg.Overlay = make(map[string][]byte)
for file, src := range overlayFiles {
for file, src := range llruntime.OverlayFiles {
overlay := unsafe.Slice(unsafe.StringData(src), len(src))
cfg.Overlay[filepath.Join(env.GOROOT(), "src", file)] = overlay
}

View File

@@ -8,7 +8,7 @@ func SkipToBuild(pkgPath string) bool {
if _, ok := hasAltPkg[pkgPath]; ok {
return false
}
if _, ok := supportInternal[pkgPath]; ok {
if _, ok := supportedInternal[pkgPath]; ok {
return false
}
switch pkgPath {
@@ -27,13 +27,14 @@ func IgnoreName(name string) bool {
}
*/
const internal = "internal/"
return (strings.HasPrefix(name, internal) && IsSupportInternal(name)) ||
return (strings.HasPrefix(name, internal) && !IsSupportedInternal(name)) ||
strings.HasPrefix(name, "runtime/") || strings.HasPrefix(name, "arena.") ||
strings.HasPrefix(name, "maps.") || strings.HasPrefix(name, "plugin.")
}
func IsSupportInternal(path string) (b bool) {
_, b = supportInternal[path]
func IsSupportedInternal(name string) (b bool) {
paths := strings.Split(name, ".")
_, b = supportedInternal[paths[0]]
return
}
@@ -75,7 +76,7 @@ var hasAltPkg = map[string]none{
"io": {},
}
var supportInternal = map[string]none{
var supportedInternal = map[string]none{
"internal/abi": {},
"internal/bytealg": {},
"internal/itoa": {},

View File

@@ -1,4 +1,4 @@
package build
package runtime
import (
_ "embed"
@@ -13,7 +13,7 @@ var testing_testing string
//go:embed _overlay/net/textproto/textproto.go
var net_textproto string
var overlayFiles = map[string]string{
var OverlayFiles = map[string]string{
"math/exp_amd64.go": "package math;",
"go/parser/resolver.go": go_parser_resolver,
"testing/testing.go": testing_testing,