mirror of
https://github.com/golang/go
synced 2024-11-11 21:10:21 -07: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
@ -452,7 +452,7 @@ func (f *peFile) addDWARFSection(name string, size int) *peSection {
|
||||
off := f.stringTable.add(name)
|
||||
h := f.addSection(name, size, size)
|
||||
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
|
||||
}
|
||||
|
||||
@ -1593,7 +1593,7 @@ func addpersrc(ctxt *Link) {
|
||||
|
||||
func asmbPe(ctxt *Link) {
|
||||
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 {
|
||||
// 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.
|
||||
|
Loading…
Reference in New Issue
Block a user