cl: don't ignore standard libraries

This commit is contained in:
Li Jie
2025-01-16 21:55:25 +08:00
parent 727ec8a5cf
commit 491a23b21e
4 changed files with 2 additions and 39 deletions

View File

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

View File

@@ -135,9 +135,6 @@ func (p *context) compileType(pkg llssa.Package, t *ssa.Type) {
tnName := tn.Name() tnName := tn.Name()
typ := tn.Type() typ := tn.Type()
name := llssa.FullName(tn.Pkg(), tnName) name := llssa.FullName(tn.Pkg(), tnName)
if ignoreName(name) {
return
}
if debugInstr { if debugInstr {
log.Println("==> NewType", name, typ) log.Println("==> NewType", name, typ)
} }
@@ -160,7 +157,7 @@ func (p *context) compileMethods(pkg llssa.Package, typ types.Type) {
func (p *context) compileGlobal(pkg llssa.Package, gbl *ssa.Global) { func (p *context) compileGlobal(pkg llssa.Package, gbl *ssa.Global) {
typ := globalType(gbl) typ := globalType(gbl)
name, vtype, define := p.varName(gbl.Pkg.Pkg, gbl) name, vtype, define := p.varName(gbl.Pkg.Pkg, gbl)
if vtype == pyVar || ignoreName(name) { if vtype == pyVar {
return return
} }
if debugInstr { if debugInstr {

View File

@@ -516,9 +516,6 @@ func (p *context) funcName(fn *ssa.Function, ignore bool) (*types.Package, strin
} }
p.ensureLoaded(pkg) p.ensureLoaded(pkg)
orgName = funcName(pkg, fn, false) orgName = funcName(pkg, fn, false)
if ignore && ignoreName(orgName) {
return nil, orgName, ignoredFunc
}
} }
if v, ok := p.prog.Linkname(orgName); ok { if v, ok := p.prog.Linkname(orgName); ok {
if strings.HasPrefix(v, "C.") { if strings.HasPrefix(v, "C.") {
@@ -671,23 +668,4 @@ func replaceGoName(v string, pos int) string {
return v return v
} }
func ignoreName(name string) bool {
/* TODO(xsw): confirm this is not needed more
if name == "unsafe.init" {
return true
}
*/
const internal = "internal/"
return (strings.HasPrefix(name, internal) && !supportedInternal(name[len(internal):])) ||
strings.HasPrefix(name, "runtime/") || strings.HasPrefix(name, "arena.") ||
strings.HasPrefix(name, "maps.") || strings.HasPrefix(name, "plugin.")
}
func supportedInternal(name string) bool {
return strings.HasPrefix(name, "abi.") || strings.HasPrefix(name, "bytealg.") ||
strings.HasPrefix(name, "itoa.") || strings.HasPrefix(name, "oserror.") || strings.HasPrefix(name, "race.") ||
strings.HasPrefix(name, "reflectlite.") || strings.HasPrefix(name, "stringslite.") || strings.HasPrefix(name, "filepathlite.") ||
strings.HasPrefix(name, "syscall/unix.") || strings.HasPrefix(name, "syscall/execenv.")
}
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------

View File

@@ -854,13 +854,7 @@ func canSkipToBuild(pkgPath string) bool {
if _, ok := hasAltPkg[pkgPath]; ok { if _, ok := hasAltPkg[pkgPath]; ok {
return false return false
} }
switch pkgPath { return pkgPath == "unsafe"
case "unsafe":
return true
default:
return strings.HasPrefix(pkgPath, "internal/") ||
strings.HasPrefix(pkgPath, "runtime/internal/")
}
} }
// findDylibDep finds the dylib dependency in the executable. It returns empty // findDylibDep finds the dylib dependency in the executable. It returns empty