From 87a46153b136db67675874ffe46e5881b9c756ce Mon Sep 17 00:00:00 2001 From: Jeremy Quirke Date: Mon, 19 Dec 2022 18:52:57 -0800 Subject: [PATCH] cmd/link: remove dead importcycles function The importcycles method has not been useful since April 2016 when a large code deletion was performed. The compiler itself provides some protection against import cycles, and the linker now does import cycle detection in linksetup -> postorder. For #57400 --- src/cmd/link/internal/ld/go.go | 45 --------------------------------- src/cmd/link/internal/ld/lib.go | 2 -- 2 files changed, 47 deletions(-) diff --git a/src/cmd/link/internal/ld/go.go b/src/cmd/link/internal/ld/go.go index 9dfb0f756e..ef73924914 100644 --- a/src/cmd/link/internal/ld/go.go +++ b/src/cmd/link/internal/ld/go.go @@ -452,48 +452,3 @@ func (ctxt *Link) addexport() { adddynlib(ctxt, lib) } } - -type Pkg struct { - mark bool - checked bool - path string - impby []*Pkg -} - -var pkgall []*Pkg - -func (p *Pkg) cycle() *Pkg { - if p.checked { - return nil - } - - if p.mark { - nerrors++ - fmt.Printf("import cycle:\n") - fmt.Printf("\t%s\n", p.path) - return p - } - - p.mark = true - for _, q := range p.impby { - if bad := q.cycle(); bad != nil { - p.mark = false - p.checked = true - fmt.Printf("\timports %s\n", p.path) - if bad == p { - return nil - } - return bad - } - } - - p.checked = true - p.mark = false - return nil -} - -func importcycles() { - for _, p := range pkgall { - p.cycle() - } -} diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index c0730179db..22c764ada5 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -646,8 +646,6 @@ func (ctxt *Link) loadlib() { // We've loaded all the code now. ctxt.Loaded = true - importcycles() - strictDupMsgCount = ctxt.loader.NStrictDupMsgs() }