From: Alex Brainman Date: Wed, 8 Feb 2017 00:44:09 +0000 (+1100) Subject: cmd/link: reorder pe sections X-Git-Tag: go1.9beta1~1492 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d0a978f5b503028bb9c34944edb59e52c4070f6f;p=gostls13.git cmd/link: reorder pe sections 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 --- diff --git a/src/cmd/link/internal/ld/pe.go b/src/cmd/link/internal/ld/pe.go index 3a99388381..6c8d39a43e 100644 --- a/src/cmd/link/internal/ld/pe.go +++ b/src/cmd/link/internal/ld/pe.go @@ -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)