pkg/ast, pkg/compiler: support per-file metadata

We have a bunch of hacks in syz-extract, syz-sysgen and syz-check
with respect to description files unsupported on some arches,
or that must not be part of make extract.

Add 2 meta attribtues to files:

meta noextract
Tells `make extract` to not extract constants for this file.
Though, `syz-extract` can still be invoked manually on this file.

meta arches["arch1", "arch2"]
Restricts this file only to the given set of architectures.
`make extract` and ``make generate` will not use it on other architectures.

Later we can potentially use meta attributes to specify git tree/commit
that must be used for extraction. Maybe something else.

Fixes #2754
27 files changed
tree: 326b10c295737e0af8ce69ef8cbf2dbf4ecaccba
  1. .github/
  2. dashboard/
  3. docs/
  4. executor/
  5. pkg/
  6. prog/
  7. sys/
  8. syz-ci/
  9. syz-fuzzer/
  10. syz-hub/
  11. syz-manager/
  12. syz-runner/
  13. syz-verifier/
  14. tools/
  15. vendor/
  16. vm/
  17. .clang-format
  18. .gitattributes
  19. .gitignore
  20. .golangci.yml
  21. AUTHORS
  22. CODE_OF_CONDUCT.md
  23. codecov.yml
  24. CONTRIBUTORS
  25. fuzzbuzz.yaml
  26. go.mod
  27. go.sum
  28. LICENSE
  29. Makefile
  30. README.md
README.md

syzkaller - kernel fuzzer

CI Status OSS-Fuzz Go Report Card Coverage Status GoDoc License

syzkaller ([siːzˈkɔːlə]) is an unsupervised coverage-guided kernel fuzzer.
Supported OSes: Akaros, FreeBSD, Fuchsia, gVisor, Linux, NetBSD, OpenBSD, Windows.

Mailing list: syzkaller@googlegroups.com (join on web or by email).

Found bugs: Akaros, Darwin/XNU, FreeBSD, Linux, NetBSD, OpenBSD, Windows.

Documentation

Initially, syzkaller was developed with Linux kernel fuzzing in mind, but now it's being extended to support other OS kernels as well. Most of the documentation at this moment is related to the Linux kernel. For other OS kernels check: Akaros, Darwin/XNU, FreeBSD, Fuchsia, NetBSD, OpenBSD, Windows, gVisor.

Disclaimer

This is not an official Google product.