add readme.md

Change-Id: Ie82d4e210ba8595412c05689e9fb34df88f7a5ac
1 file changed
tree: e67d91811c377ab11beae9ff6afcc24c8d838497
  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.