Commit 53e4b8fc authored by Russ Cox's avatar Russ Cox

cmd/go: require -buildmode=c-shared to take one main package

The current behavior is to filter out the non-main packages silently,
which is confusing if there are only non-main packages.
Instead, report an error unless it's used with a single main package.

To be clear, I don't really know what I'm doing.
It might be that multiple main packages are allowed, or even
that we do want the filtering, but all.bash passes with this change,
so I am taking that as a sign that we don't need that extra flexibility.

Fixes #15082.

Change-Id: I984d0f444a01c0ee0c3cd6646a75527ea99a9ebe
Reviewed-on: https://go-review.googlesource.com/46421
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 7c02beb9
...@@ -288,7 +288,7 @@ func BuildModeInit() { ...@@ -288,7 +288,7 @@ func BuildModeInit() {
cfg.ExeSuffix = ".a" cfg.ExeSuffix = ".a"
ldBuildmode = "c-archive" ldBuildmode = "c-archive"
case "c-shared": case "c-shared":
pkgsFilter = pkgsMain pkgsFilter = oneMainPkg
if gccgo { if gccgo {
codegenArg = "-fPIC" codegenArg = "-fPIC"
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment