From d0a978f5b503028bb9c34944edb59e52c4070f6f Mon Sep 17 00:00:00 2001 From: Alex Brainman Date: Wed, 8 Feb 2017 11:44:09 +1100 Subject: [PATCH] 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 --- src/cmd/link/internal/ld/pe.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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) -- 2.50.0