From 8d266165b9c1b303efab1881120b9d5a6feb437a Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 26 Apr 2019 17:20:55 +0000 Subject: [PATCH] runtime: fix TestPhysPageSize on AIX AIX doesn't allow to mmap an address range which is already mmap. Therefore, once the region has been allocated, it must munmap before being able to play with it. The corresponding Go Toolchain patch is CL 174059. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/174138 From-SVN: r270615 --- gcc/go/gofrontend/MERGE | 2 +- libgo/go/runtime/runtime_mmap_test.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index fd53ada097c..8af11d906a4 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -cb6fb7285bac72389bdce7ecfe87f9366022571a +b117b468264665cfe6ec2cf3affb48330a704fa7 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/runtime/runtime_mmap_test.go b/libgo/go/runtime/runtime_mmap_test.go index c0040414d46..188fd5d0f0c 100644 --- a/libgo/go/runtime/runtime_mmap_test.go +++ b/libgo/go/runtime/runtime_mmap_test.go @@ -32,6 +32,11 @@ func TestPhysPageSize(t *testing.T) { t.Fatalf("Mmap: %v", err) } + if runtime.GOOS == "aix" { + // AIX does not allow mapping a range that is already mapped. + runtime.Munmap(unsafe.Pointer(uintptr(b)), 2*ps) + } + // Mmap should fail at a half page into the buffer. _, err = runtime.Mmap(unsafe.Pointer(uintptr(b)+ps/2), ps, 0, runtime.MAP_ANON|runtime.MAP_PRIVATE|runtime.MAP_FIXED, -1, 0) if err == 0 { -- 2.30.2