]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: reorder pe sections
authorAlex Brainman <alex.brainman@gmail.com>
Wed, 8 Feb 2017 00:44:09 +0000 (11:44 +1100)
committerAlex Brainman <alex.brainman@gmail.com>
Tue, 21 Feb 2017 06:11:17 +0000 (06:11 +0000)
dwarf writing code assumes that dwarf sections follow
.data and .bss, not .ctors. Make pe section writing code
match that assumption.

For #10776.

Change-Id: I128c3ad125f7d0db19e922f165704a054b2af7ba
Reviewed-on: https://go-review.googlesource.com/36980
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/link/internal/ld/pe.go

index 3a99388381b20999f74cde00058522bce386afe2..6c8d39a43e1dbc315d371a1a40aa7210515d76e1 100644 (file)
@@ -1196,14 +1196,16 @@ func Asmbpe(ctxt *Link) {
                b.Characteristics = IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_ALIGN_32BYTES
                b.PointerToRawData = 0
                bsssect = pensect
-
-               c = addinitarray(ctxt)
        }
 
        if !*FlagS {
                dwarfaddpeheaders(ctxt)
        }
 
+       if Linkmode == LinkExternal {
+               c = addinitarray(ctxt)
+       }
+
        Cseek(int64(nextfileoff))
        if Linkmode != LinkExternal {
                addimports(ctxt, d)