mirror of https://github.com/golang/go.git
cmd/go/internal/load,cmd/link/internal/ld: use objabi.LookupPkgSpecial(pkg).Runtime
As suggested by Michael in CL 655515. Change-Id: I472d32da835757abfd4448b142a033aa9ca3e40b
This commit is contained in:
parent
a812e5f3c3
commit
58eda020f5
|
|
@ -7,6 +7,7 @@ package load
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"cmd/internal/objabi"
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
|
|
@ -3561,7 +3562,7 @@ func SelectCoverPackages(roots []*Package, match []func(*Package) bool, op strin
|
||||||
// $GOROOT/src/internal/coverage/pkid.go dealing with
|
// $GOROOT/src/internal/coverage/pkid.go dealing with
|
||||||
// hard-coding of runtime package IDs.
|
// hard-coding of runtime package IDs.
|
||||||
cmode := cfg.BuildCoverMode
|
cmode := cfg.BuildCoverMode
|
||||||
if cfg.BuildRace && p.Standard && p.ImportPath == "runtime" {
|
if cfg.BuildRace && p.Standard && objabi.LookupPkgSpecial(p.ImportPath).Runtime {
|
||||||
cmode = "regonly"
|
cmode = "regonly"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,30 +55,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// isRuntimeDepPkg reports whether pkg is the runtime package or its dependency.
|
// isRuntimeDepPkg reports whether pkg is the runtime package or its dependency.
|
||||||
// TODO: just compute from the runtime package, and remove this hardcoded list.
|
|
||||||
func isRuntimeDepPkg(pkg string) bool {
|
func isRuntimeDepPkg(pkg string) bool {
|
||||||
switch pkg {
|
return objabi.LookupPkgSpecial(pkg).Runtime
|
||||||
case "runtime",
|
|
||||||
"sync/atomic", // runtime may call to sync/atomic, due to go:linkname // TODO: this is not true?
|
|
||||||
"internal/abi", // used by reflectcall (and maybe more)
|
|
||||||
"internal/asan",
|
|
||||||
"internal/bytealg", // for IndexByte
|
|
||||||
"internal/byteorder",
|
|
||||||
"internal/chacha8rand", // for rand
|
|
||||||
"internal/coverage/rtcov",
|
|
||||||
"internal/cpu", // for cpu features
|
|
||||||
"internal/goarch",
|
|
||||||
"internal/godebugs",
|
|
||||||
"internal/goexperiment",
|
|
||||||
"internal/goos",
|
|
||||||
"internal/msan",
|
|
||||||
"internal/profilerecord",
|
|
||||||
"internal/race",
|
|
||||||
"internal/stringslite",
|
|
||||||
"unsafe":
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return strings.HasPrefix(pkg, "internal/runtime/") && !strings.HasSuffix(pkg, "_test")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Estimate the max size needed to hold any new trampolines created for this function. This
|
// Estimate the max size needed to hold any new trampolines created for this function. This
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue