mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/link: enable DEP for Windows executables
There's no reason not to enable DEP in 2019, especially given Go's minimum operating system level. RELNOTE=yes Change-Id: I9c3bbc5b05a1654876a218123dd57b9c9077b780 Reviewed-on: https://go-review.googlesource.com/c/go/+/203601 Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
This commit is contained in:
parent
0d3092ffa7
commit
31bfab4ac6
2 changed files with 9 additions and 2 deletions
|
|
@ -1188,6 +1188,9 @@ func (ctxt *Link) hostlink() {
|
|||
// ancient compatibility hacks.
|
||||
argv = append(argv, "-Wl,--tsaware")
|
||||
|
||||
// Enable DEP
|
||||
argv = append(argv, "-Wl,--nxcompat")
|
||||
|
||||
argv = append(argv, fmt.Sprintf("-Wl,--major-os-version=%d", PeMinimumTargetMajorVersion))
|
||||
argv = append(argv, fmt.Sprintf("-Wl,--minor-os-version=%d", PeMinimumTargetMinorVersion))
|
||||
argv = append(argv, fmt.Sprintf("-Wl,--major-subsystem-version=%d", PeMinimumTargetMajorVersion))
|
||||
|
|
|
|||
|
|
@ -861,14 +861,18 @@ func (f *peFile) writeOptionalHeader(ctxt *Link) {
|
|||
|
||||
switch ctxt.Arch.Family {
|
||||
case sys.ARM:
|
||||
oh64.DllCharacteristics = IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE | IMAGE_DLLCHARACTERISTICS_NX_COMPAT
|
||||
oh.DllCharacteristics = IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE | IMAGE_DLLCHARACTERISTICS_NX_COMPAT
|
||||
oh64.DllCharacteristics = IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
|
||||
oh.DllCharacteristics = IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
|
||||
}
|
||||
|
||||
// Mark as having awareness of terminal services, to avoid ancient compatibility hacks.
|
||||
oh64.DllCharacteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
|
||||
oh.DllCharacteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
|
||||
|
||||
// Enable DEP
|
||||
oh64.DllCharacteristics |= IMAGE_DLLCHARACTERISTICS_NX_COMPAT
|
||||
oh.DllCharacteristics |= IMAGE_DLLCHARACTERISTICS_NX_COMPAT
|
||||
|
||||
// Disable stack growth as we don't want Windows to
|
||||
// fiddle with the thread stack limits, which we set
|
||||
// ourselves to circumvent the stack checks in the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue