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.