internal: fix build breakage on windows Also, disable tests on windows because functionality of viewcore remains broken on windows. Change-Id: Ifd0108865379e00c4e23b6eba7b1cc1fd8e6f738 Reviewed-on: https://go-review.googlesource.com/121295 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/internal/core/core_test.go b/internal/core/core_test.go index 341babf..3b56997 100644 --- a/internal/core/core_test.go +++ b/internal/core/core_test.go
@@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build darwin dragonfly freebsd linux netbsd openbsd solaris + package core import (
diff --git a/internal/core/process.go b/internal/core/process.go index 65c2fd4..f6c4a3e 100644 --- a/internal/core/process.go +++ b/internal/core/process.go
@@ -121,6 +121,10 @@ return p.syms, p.symErr } +var mapFile = func(fd int, offset int64, length int) (data []byte, err error) { + return nil, fmt.Errorf("file mapping is not implemented yet") +} + // Core takes the name of a core file and returns a Process that // represents the state of the inferior that generated the core file. func Core(coreFile, base, exePath string) (*Process, error) { @@ -190,7 +194,7 @@ } // Read data from file. - data, err := syscall.Mmap(int(m.f.Fd()), minOff, int(maxOff-minOff), syscall.PROT_READ, syscall.MAP_SHARED) + data, err := mapFile(int(m.f.Fd()), minOff, int(maxOff-minOff)) if err != nil { return nil, fmt.Errorf("can't memory map %s at %x: %s\n", m.f.Name(), minOff, err) }
diff --git a/internal/core/process_unix.go b/internal/core/process_unix.go new file mode 100644 index 0000000..3817678 --- /dev/null +++ b/internal/core/process_unix.go
@@ -0,0 +1,15 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd solaris + +package core + +import "syscall" + +func init() { + mapFile = func(fd int, offset int64, length int) (data []byte, err error) { + return syscall.Mmap(fd, offset, length, syscall.PROT_READ, syscall.MAP_SHARED) + } +}
diff --git a/internal/gocore/dominator_test.go b/internal/gocore/dominator_test.go index f3360b0..5607a9a 100644 --- a/internal/gocore/dominator_test.go +++ b/internal/gocore/dominator_test.go
@@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build darwin dragonfly freebsd linux netbsd openbsd solaris + package gocore import (
diff --git a/internal/gocore/gocore_test.go b/internal/gocore/gocore_test.go index cc90c65..8d4b96f 100644 --- a/internal/gocore/gocore_test.go +++ b/internal/gocore/gocore_test.go
@@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build darwin dragonfly freebsd linux netbsd openbsd solaris + package gocore import (