aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cmd/link/internal/ld/data.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go
index aca8973a85..2e5db616cd 100644
--- a/src/cmd/link/internal/ld/data.go
+++ b/src/cmd/link/internal/ld/data.go
@@ -1836,6 +1836,11 @@ func (ctxt *Link) dodata() {
datsize = Rnd(datsize, int64(sect.Align))
sect.Vaddr = uint64(datsize)
for _, s := range dwarfp[i:] {
+ // Syms can (incorrectly) appear twice on the list. Ignore repeats.
+ // See golang.org/issue/21566.
+ if s.Type == obj.SRODATA {
+ continue
+ }
if s.Type != obj.SDWARFINFO {
break
}