1
0
mirror of https://github.com/golang/go synced 2024-11-23 10:20:03 -07:00

cmd/go: adjust comments on why fuzzing instrumentation is disabled

For #48504
Related #14565

Change-Id: Ibe43c75224525c4b80dbb66a1b6e0d688e47e2e4
Reviewed-on: https://go-review.googlesource.com/c/go/+/351314
Trust: Jay Conrod <jayconrod@google.com>
Trust: Katie Hockman <katie@golang.org>
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
This commit is contained in:
Jay Conrod 2021-09-21 13:54:58 -07:00
parent 217507eb03
commit d5d3f80013
4 changed files with 25 additions and 7 deletions

View File

@ -60,9 +60,23 @@ func BuildInit() {
}
}
// FuzzInstrumentFlags returns compiler flags that enable fuzzing instrumation
// on supported platforms. On unsupported platforms, FuzzInstrumentFlags returns
// nil.
func FuzzInstrumentFlags() []string {
if cfg.Goarch != "amd64" && cfg.Goarch != "arm64" {
// Instrumentation is only supported on 64-bit architectures.
// TODO: expand the set of supported platforms, with testing.
// Nothing about the instrumentation is OS specific, but only amd64 and arm64
// are supported in the runtime. See src/runtime/libfuzzer*.
//
// Keep in sync with build constraints in internal/fuzz/counters_{un,}supported.go
switch cfg.Goos {
case "darwin", "freebsd", "linux", "windows":
default:
return nil
}
switch cfg.Goarch {
case "amd64", "arm64":
default:
return nil
}
return []string{"-d=libfuzzer"}

View File

@ -1,8 +1,9 @@
# TODO(jayconrod): support shared memory on more platforms.
[!darwin] [!linux] [!windows] skip
# TODO(#48504): fix and re-enable.
[linux] [386] skip
# Instrumentation not supported on other archs.
# See #14565.
[!amd64] [!arm64] skip
[short] skip
env GOCACHE=$WORK/cache

View File

@ -1,8 +1,9 @@
# TODO(jayconrod): support shared memory on more platforms.
[!darwin] [!linux] [!windows] skip
# TODO(#48504): fix and re-enable.
[linux] [386] skip
# Instrumentation not supported on other archs.
# See #14565.
[!amd64] [!arm64] skip
[short] skip
env GOCACHE=$WORK/cache

View File

@ -7,7 +7,9 @@
package fuzz
// TODO(#48504): re-enable on platforms where instrumentation works.
// This was disabled due to an init failure on aix_ppc64.
// In theory, we shouldn't need this file at all: if the binary was built
// without coverage, then _counters and _ecounters should have the same address.
// However, this caused an init failure on aix/ppc64, so it's disabled here.
// coverage returns a []byte containing unique 8-bit counters for each edge of
// the instrumented source code. This coverage data will only be generated if