]> Cypherpunks repositories - gostls13.git/commit
[dev.link] cmd/link: let cgo import overwrite contentless data symbol
authorCherry Zhang <cherryyz@google.com>
Sat, 12 Oct 2019 05:05:03 +0000 (01:05 -0400)
committerCherry Zhang <cherryyz@google.com>
Tue, 15 Oct 2019 19:00:00 +0000 (19:00 +0000)
commit7256f50065f1d53f44c1c9562ad04184ee93279d
treebbffe17007843ce94c6176fe20b40300ab3cdb4b
parent5fec7882391e839e0b6811b2d4347f0ba8b12358
[dev.link] cmd/link: let cgo import overwrite contentless data symbol

A contentless data symbol may be a declaration of a cgo-imported
variable, e.g.

//go:cgo_import_dynamic xxx
var xxx uintptr

In this case, we want to mark the symbol imported, instead of
defined with zero value.

We used to load cgo directives before loading the object file, so
we'll mark the symbol SDYNIMPORT first. But in newobj mode,
currently we load cgo directives later. Letting SDYNIMPORT
overwrite contentless data symbol makes it work in both ordering.

Change-Id: I878f52086d6cdb5a347669bf8f848a49bce87b52
Reviewed-on: https://go-review.googlesource.com/c/go/+/201020
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
src/cmd/link/internal/ld/go.go