diff options
| author | Alex Brainman <alex.brainman@gmail.com> | 2017-02-08 11:44:09 +1100 |
|---|---|---|
| committer | Alex Brainman <alex.brainman@gmail.com> | 2017-02-21 06:11:17 +0000 |
| commit | d0a978f5b503028bb9c34944edb59e52c4070f6f (patch) | |
| tree | bfdf386aae7bb0bf8355d0c37c4c72e9320b725f /src | |
| parent | 6db4d92e4c01c854e15391d18100c8d99cbbd7bc (diff) | |
| download | go-d0a978f5b503028bb9c34944edb59e52c4070f6f.tar.xz | |
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 <iant@golang.org>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/link/internal/ld/pe.go | 6 |
1 files 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) |
