mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/link: explicitly disable PIE for windows/amd64 -race mode
Turn off PIE explicitly for windows/amd64 when -race is in effect, since at the moment the race detector runtime doesn't seem to handle PIE binaries correctly. Note that newer C compilers on windows produce PIE binaries by default, so the Go linker needs to explicitly turn off PIE when invoking the external linker in this case. Updates #53539. Change-Id: Ib990621f22cf61a5fa383584bab81d3dfd7552e8 Reviewed-on: https://go-review.googlesource.com/c/go/+/415676 Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Than McIntosh <thanm@google.com> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
This commit is contained in:
parent
eaf2125654
commit
0c7fcf6bd1
1 changed files with 13 additions and 0 deletions
|
|
@ -1426,10 +1426,23 @@ func (ctxt *Link) hostlink() {
|
|||
argv = append(argv, "-Wl,-pagezero_size,4000000")
|
||||
}
|
||||
}
|
||||
if *flagRace && ctxt.HeadType == objabi.Hwindows {
|
||||
// Current windows/amd64 race detector tsan support
|
||||
// library can't handle PIE mode (see #53539 for more details).
|
||||
// For now, explicitly disable PIE (since some compilers
|
||||
// default to it) if -race is in effect.
|
||||
argv = addASLRargs(argv, false)
|
||||
}
|
||||
case BuildModePIE:
|
||||
switch ctxt.HeadType {
|
||||
case objabi.Hdarwin, objabi.Haix:
|
||||
case objabi.Hwindows:
|
||||
if *flagAslr && *flagRace {
|
||||
// Current windows/amd64 race detector tsan support
|
||||
// library can't handle PIE mode (see #53539 for more details).
|
||||
// Disable alsr if -race in effect.
|
||||
*flagAslr = false
|
||||
}
|
||||
argv = addASLRargs(argv, *flagAslr)
|
||||
default:
|
||||
// ELF.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue