diff options
author | Michael Anthony Knyszek <mknyszek@google.com> | 2018-12-19 17:32:22 +0000 |
---|---|---|
committer | Michael Knyszek <mknyszek@google.com> | 2018-12-19 19:34:50 +0000 |
commit | 6fcab648af59faab639f3453354a7a14c888e75c (patch) | |
tree | b2e58d1e312e5fdb54e2c40a1b4de7b5180521cc /src/runtime/mem_bsd.go | |
parent | f880efcc1666e2b99fbda644eeff258e4a15dd38 (diff) | |
download | go-6fcab648af59faab639f3453354a7a14c888e75c.tar.gz go-6fcab648af59faab639f3453354a7a14c888e75c.zip |
runtime: disable TestArenaCollision on Darwin in race mode
This change disables the test TestArenaCollision on Darwin in race mode
to deal with the fact that Darwin 10.10 must use MAP_FIXED in race mode
to ensure we retain our heap in a particular portion of the address
space which the race detector needs. The test specifically checks to
make sure a manually mapped region's space isn't re-used, which is
definitely possible with MAP_FIXED because it replaces whatever mapping
already exists at a given address.
This change then also makes it so that MAP_FIXED is only used in race
mode and on Darwin, not all BSDs, because using MAP_FIXED breaks this
test for FreeBSD in addition to Darwin.
Updates #26475.
Fixes #29340.
Change-Id: I1c59349408ccd7eeb30c4bf2593f48316b23ab2f
Reviewed-on: https://go-review.googlesource.com/c/155097
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/runtime/mem_bsd.go')
-rw-r--r-- | src/runtime/mem_bsd.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/runtime/mem_bsd.go b/src/runtime/mem_bsd.go index bf2d99678b..84238d7279 100644 --- a/src/runtime/mem_bsd.go +++ b/src/runtime/mem_bsd.go @@ -43,7 +43,7 @@ func sysFault(v unsafe.Pointer, n uintptr) { func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { flags := int32(_MAP_ANON | _MAP_PRIVATE) - if raceenabled { + if raceenabled && GOOS == "darwin" { // Currently the race detector expects memory to live within a certain // range, and on Darwin 10.10 mmap is prone to ignoring hints, moreso // than later versions and other BSDs (#26475). So, even though it's |