aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/loader/loader.go
diff options
context:
space:
mode:
authorCherry Mui <cherryyz@google.com>2022-03-21 13:45:50 -0400
committerCherry Mui <cherryyz@google.com>2022-03-22 19:38:35 +0000
commite8534640557939755917edc3e6afc16d93b2e70b (patch)
tree084da621f83646a5be004bb7639021eeb7718c6b /src/cmd/link/internal/loader/loader.go
parent63ea27e9e02e9ddf5845a32082013e7344134fd7 (diff)
downloadgo-e8534640557939755917edc3e6afc16d93b2e70b.tar.xz
cmd/compile, cmd/link: produce unlinkable object when compile without -p
CL 391014 requires the compiler to be invoked with the -p flag, to specify the package path. People are used to run "go tool compile" from the command line with the -p flag. This is mostly for simple testing, or debugging the compiler. The produced object file is almost never intended to be linked. This CL makes the compiler allow "go tool compile" without the -p flag again. It will produce an unlinkable object. If the linker sees such an object it will error out. Change-Id: I7bdb162c3cad61dadd5c456d903b92493a3df20f Reviewed-on: https://go-review.googlesource.com/c/go/+/394217 Trust: Cherry Mui <cherryyz@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/cmd/link/internal/loader/loader.go')
-rw-r--r--src/cmd/link/internal/loader/loader.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
index dfaad10143..6f2d41aa78 100644
--- a/src/cmd/link/internal/loader/loader.go
+++ b/src/cmd/link/internal/loader/loader.go
@@ -2083,6 +2083,10 @@ func (l *Loader) Preload(localSymVersion int, f *bio.Reader, lib *sym.Library, u
objidx: uint32(len(l.objs)),
}
+ if r.Unlinkable() {
+ log.Fatalf("link: unlinkable object (from package %s) - compiler requires -p flag", lib.Pkg)
+ }
+
// Autolib
lib.Autolib = append(lib.Autolib, r.Autolib()...)