This relands #165277 by reverting #169397. This also relands the corresponding Bazel port by reverting #169410. The original revert was due to a report of a broken build, which was later resolved by fully clearing the build directory.
This relands #165277 by reverting #169397. This also relands the corresponding Bazel port by reverting #169410. The original revert was due to a report of a broken build, which was later resolved by fully clearing the build directory.