]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: enable DWARF compression on Windows
authorHeschi Kreinick <heschi@google.com>
Tue, 19 Jun 2018 19:39:17 +0000 (15:39 -0400)
committerHeschi Kreinick <heschi@google.com>
Tue, 19 Jun 2018 22:13:43 +0000 (22:13 +0000)
Simple follow-on to CL 118276. Everything worked except that the
compressed sections need to be aligned at PEFILEALIGN.

Fixes #25927
Updates #11799

Change-Id: Iec871defe30e3e66055d64a5ae77d5a7aca355f5
Reviewed-on: https://go-review.googlesource.com/119816
Run-TryBot: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/cmd/link/internal/ld/dwarf.go

index 3824dc3c2af8045c4aa94e940f21cc66ad5ac82a..1dd45969c77fb9b913c529670706c446275b9808 100644 (file)
@@ -1951,7 +1951,7 @@ func dwarfaddelfsectionsyms(ctxt *Link) {
 // relocations are applied. After this, dwarfp will contain a
 // different (new) set of symbols, and sections may have been replaced.
 func dwarfcompress(ctxt *Link) {
-       if !ctxt.IsELF || ctxt.LinkMode == LinkExternal {
+       if !(ctxt.IsELF || ctxt.HeadType == objabi.Hwindows) || ctxt.LinkMode == LinkExternal {
                return
        }
 
@@ -1998,6 +1998,10 @@ func dwarfcompress(ctxt *Link) {
                        log.Fatalf("%s: unexpected sub-symbols", s)
                }
                pos += uint64(s.Size)
+               if ctxt.HeadType == objabi.Hwindows {
+                       pos = uint64(Rnd(int64(pos), PEFILEALIGN))
+               }
+
        }
        Segdwarf.Length = pos - Segdwarf.Vaddr
 }