interceptor: Skip --param.

E.g. for the following command:

  clang [...] --param asan-instrument-allocas=1 [...]

Test: TH
Bug: 221278445
Change-Id: I6117d7d8d08b7fe9b5139c0ec0740a8155b93ffd
1 file changed
tree: 01f0e712a5f0f266584e4d87037fcfd12c7ac8c4
  1. analysis.cc
  2. Android.bp
  3. CMakeLists.txt
  4. interceptor.cc
  5. interceptor.h
  6. interceptor_utils.cc
  7. interceptor_utils.h
  8. LICENSE
  9. log.proto
  10. main.cc
  11. METADATA
  12. MODULE_LICENSE_APACHE2
  13. OWNERS
  14. README.md
README.md

Interceptor

WARNING: The interceptor is still a work in progress. Contents of this section are subject to change.

The interceptor is a tool to intercept all execve and other system calls during the build (specifically, make) in order to construct the dependency tree and understand a list of commands executed by the build system. With the interceptor, the Bazel build system may first "dry-run", analyze all inputs and outputs of each command, generate BUILD.bazel files for each command, then execute on these generated build files.

This allows us to enable the following:

  • Trim the dependency tree for each command.
    • Reduce the possibility of invalidating an output when an unrelated input file is touched
    • More parallelism within Bazel, not make
    • Even faster incremental builds
  • Generate compile_commands.json, which can then be plugged into IDEs and code search tools (e.g. https://cs.android.com/android/kernel/superproject)
  • More cache hits for Remote Build Execution (RBE)
  • Give a more trimmed and precise list of resources for DDK
  • etc.