]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: propagate FromAssembly attribute when cloning symbols to external
authorCherry Mui <cherryyz@google.com>
Fri, 24 May 2024 17:19:35 +0000 (13:19 -0400)
committerCherry Mui <cherryyz@google.com>
Fri, 24 May 2024 20:26:10 +0000 (20:26 +0000)
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>
src/cmd/link/internal/loader/loader.go

index 0a76c1fb0c6cd2416e75ed1620bc26e00db2c487..f448a3ee7cb24131794bed52929217d444eadaa1 100644 (file)
@@ -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)