From dc9d219cad115cf04d07a0cd10a46d127cf6e5e1 Mon Sep 17 00:00:00 2001 From: Jeremy Quirke Date: Mon, 26 Dec 2022 04:07:03 +0000 Subject: [PATCH] cmd/link: remove 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 does import cycle detection in linksetup -> postorder. For #57400 Change-Id: I3095bdb3f16a82ba25681bf4a20ceaa3c9613921 GitHub-Last-Rev: 87a46153b136db67675874ffe46e5881b9c756ce GitHub-Pull-Request: golang/go#57462 Reviewed-on: https://go-review.googlesource.com/c/go/+/459475 TryBot-Result: Gopher Robot Reviewed-by: Than McIntosh Reviewed-by: Cherry Mui Run-TryBot: Cherry Mui --- 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() } -- 2.48.1