aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link
diff options
context:
space:
mode:
authorCherry Mui <cherryyz@google.com>2024-05-24 13:19:35 -0400
committerCherry Mui <cherryyz@google.com>2024-05-24 20:26:10 +0000
commit5c7d7745387f240dbbd31940dce8be2b3000c53d (patch)
treea7fb9de3b229e1bdb33eb11df0396b1369b4da3c /src/cmd/link
parent23778fcb276b020d41f7bc8a46fb482a40638017 (diff)
downloadgo-5c7d7745387f240dbbd31940dce8be2b3000c53d.tar.xz
cmd/link: propagate FromAssembly attribute when cloning symbols to external
When a symbol is cloned to external (in order to edit it), propagate the FromAssembly attribute, so the linker knows it is (originally) an assembly symbol, and can treat it specially (e.g. for stack maps). This should fix the Linux/RISCV64 builder. Change-Id: Icc956bcc43b79f328983a60835b05fd50f22326a Reviewed-on: https://go-review.googlesource.com/c/go/+/587926 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Than McIntosh <thanm@google.com>
Diffstat (limited to 'src/cmd/link')
-rw-r--r--src/cmd/link/internal/loader/loader.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
index 0a76c1fb0c..f448a3ee7c 100644
--- a/src/cmd/link/internal/loader/loader.go
+++ b/src/cmd/link/internal/loader/loader.go
@@ -763,6 +763,11 @@ func (l *Loader) IsFileLocal(i Sym) bool {
// object file generated by the Go assembler.
func (l *Loader) IsFromAssembly(i Sym) bool {
if l.IsExternal(i) {
+ pp := l.getPayload(i)
+ if pp.objidx != 0 {
+ r := l.objs[pp.objidx]
+ return r.FromAssembly()
+ }
return false
}
r, _ := l.toLocal(i)