mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/link: fix PE section attributes for windows/arm64
The clang-mingw toolchain on windows/arm64 expects .text to NOT be listed as containing initialized data and .dwarf* to be listed as containing initialized data. Neither is true today, resulting in the go .text and .dwarf* not being merged with the system .text and .dwarf*. Having multiple .text and .dwarf* sections confuses all kinds of tools. Change-Id: I1b9832804c5f5d594bf19e8ee0a5ed31bc1d381d Reviewed-on: https://go-review.googlesource.com/c/go/+/312032 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
073f913949
commit
c0e1301b8c
1 changed files with 2 additions and 2 deletions
|
|
@ -452,7 +452,7 @@ func (f *peFile) addDWARFSection(name string, size int) *peSection {
|
||||||
off := f.stringTable.add(name)
|
off := f.stringTable.add(name)
|
||||||
h := f.addSection(name, size, size)
|
h := f.addSection(name, size, size)
|
||||||
h.shortName = fmt.Sprintf("/%d", off)
|
h.shortName = fmt.Sprintf("/%d", off)
|
||||||
h.characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_DISCARDABLE
|
h.characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_DISCARDABLE | IMAGE_SCN_CNT_INITIALIZED_DATA
|
||||||
return h
|
return h
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1593,7 +1593,7 @@ func addpersrc(ctxt *Link) {
|
||||||
|
|
||||||
func asmbPe(ctxt *Link) {
|
func asmbPe(ctxt *Link) {
|
||||||
t := pefile.addSection(".text", int(Segtext.Length), int(Segtext.Length))
|
t := pefile.addSection(".text", int(Segtext.Length), int(Segtext.Length))
|
||||||
t.characteristics = IMAGE_SCN_CNT_CODE | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ
|
t.characteristics = IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ
|
||||||
if ctxt.LinkMode == LinkExternal {
|
if ctxt.LinkMode == LinkExternal {
|
||||||
// some data symbols (e.g. masks) end up in the .text section, and they normally
|
// some data symbols (e.g. masks) end up in the .text section, and they normally
|
||||||
// expect larger alignment requirement than the default text section alignment.
|
// expect larger alignment requirement than the default text section alignment.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue