cmd/link: use plugin path in visibility analysis
CL 32355 switched from using the output file as a
plugin prefix to the full package path. The linker dead code analysis
was not updated.
Updates #17821
Change-Id: I13fc45e0264b425d28524ec54c829e2c3e895b0b
Reviewed-on: https://go-review.googlesource.com/32916
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/cmd/link/internal/ld/deadcode.go b/src/cmd/link/internal/ld/deadcode.go
index 335d984..c0c0c6b 100644
--- a/src/cmd/link/internal/ld/deadcode.go
+++ b/src/cmd/link/internal/ld/deadcode.go
@@ -7,9 +7,7 @@
import (
"cmd/internal/obj"
"cmd/internal/sys"
- "flag"
"fmt"
- "path/filepath"
"strings"
"unicode"
)
@@ -245,9 +243,7 @@
if *FlagLinkshared && (Buildmode == BuildmodeExe || Buildmode == BuildmodePIE) {
names = append(names, "main.main", "main.init")
} else if Buildmode == BuildmodePlugin {
- pluginName := strings.TrimSuffix(filepath.Base(flag.Arg(0)), ".a")
- pluginInit := pluginName + ".init"
- names = append(names, pluginInit, "go.plugin.tabs")
+ names = append(names, *flagPluginPath+".init", *flagPluginPath+".main", "go.plugin.tabs")
// We don't keep the go.plugin.exports symbol,
// but we do keep the symbols it refers to.