]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.link] cmd/link: accept more types in Xcoffadddynrel
authorCherry Zhang <cherryyz@google.com>
Mon, 27 Apr 2020 20:01:24 +0000 (16:01 -0400)
committerCherry Zhang <cherryyz@google.com>
Mon, 27 Apr 2020 20:46:04 +0000 (20:46 +0000)
In dodata we overwrite symbol types to SDATA. Now we'll stop
doing that, so accept more symbol types here. This is basically
a list of all writeable types handled in dodata that could appear
in XCOFF.

Change-Id: Iee35369162f5acd59806a3f0e6c8d3682620067e
Reviewed-on: https://go-review.googlesource.com/c/go/+/230310
Run-TryBot: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/link/internal/ld/xcoff.go
src/cmd/link/internal/ld/xcoff2.go

index f156cbf439f193b7f616a869aaa109c0572c1aff..c9c6507f1c9bd5799e6045de9df9aadbaa1298d8 100644 (file)
@@ -1141,7 +1141,7 @@ func Xcoffadddynrel2(target *Target, ldr *loader.Loader, syms *ArchSyms, s loade
                                        break
                                }
                        }
-               } else if ldr.SymType(s) == sym.SDATA {
+               } else if t := ldr.SymType(s); t == sym.SDATA || t == sym.SNOPTRDATA || t == sym.SBUILDINFO || t == sym.SXCOFFTOC {
                        switch ldr.SymSect(targ).Seg {
                        default:
                                ldr.Errorf(s, "unknown segment for .loader relocation with symbol %s", ldr.SymName(targ))
index a8c2268fb7f607025868311dd5c5f12936252629..27edbcb22ddb22cb919bebaab85240c45e3eaa7e 100644 (file)
@@ -84,7 +84,7 @@ func Xcoffadddynrel(target *Target, ldr *loader.Loader, s *sym.Symbol, r *sym.Re
                                        break
                                }
                        }
-               } else if s.Type == sym.SDATA {
+               } else if s.Type == sym.SDATA || s.Type == sym.SNOPTRDATA || s.Type == sym.SBUILDINFO || s.Type == sym.SXCOFFTOC {
                        switch r.Sym.Sect.Seg {
                        default:
                                Errorf(s, "unknown segment for .loader relocation with symbol %s", r.Sym.Name)