From d0e408334be22158fbf58a4d02789a48f5cb911e Mon Sep 17 00:00:00 2001 From: David Crawshaw Date: Sun, 30 Oct 2016 23:53:09 -0400 Subject: cmd/link: support plugins with no exported symbols A plugin with no exported symbols is still potentially very useful. Its init functions are called on load, and it so it can have visible side effects. Fixes #17681 Change-Id: Icdca31f48e5ab13c99020a2ef724f3de47dcd74b Reviewed-on: https://go-review.googlesource.com/32437 Run-TryBot: David Crawshaw Reviewed-by: Ian Lance Taylor --- src/cmd/link/internal/ld/deadcode.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/cmd/link/internal/ld/deadcode.go') diff --git a/src/cmd/link/internal/ld/deadcode.go b/src/cmd/link/internal/ld/deadcode.go index 7ecc5b1ec2..ac64813228 100644 --- a/src/cmd/link/internal/ld/deadcode.go +++ b/src/cmd/link/internal/ld/deadcode.go @@ -252,8 +252,10 @@ func (d *deadcodepass) init() { // We don't keep the go.plugin.exports symbol, // but we do keep the symbols it refers to. exports := d.ctxt.Syms.ROLookup("go.plugin.exports", 0) - for _, r := range exports.R { - d.mark(r.Sym, nil) + if exports != nil { + for _, r := range exports.R { + d.mark(r.Sym, nil) + } } } for _, name := range markextra { -- cgit v1.3-5-g9baa