Switches the library to use the zlib-ng implementation since the
original implementation is warning-incompatible with recent versions of clang.
Removes the wrapper logic for zlib in the bazel build and introduces new
logic to handle LLVM_ENABLE_ZLIB.
Removes the BAZEL_LLVM_ZLIB_STRATEGY environment variable and instead
introduces a boolean --@llvm_zlib//:llvm_enable_zlib flag which defaults
to true.
To migrate:
- The previous "external" strategy is the default. May be explicitly enabled with --@llvm_zlib//:llvm_enable_zlib=true. For custom zlib variants you can use the BUILD file at third_party_build/zlib.BUILD as reference and adjust the @llvm_zlib archive in the WORKSPACE directly.
- The previous "disable" strategy may be enabled with --@llvm_zlib//:llvm_enable_zlib=false.
- The previous "system" strategy has been removed since it breaks hermeticity.
Addresses breakages of downstream projects using upstream clang and the
previously "external" zlib strategy (D141553).
Somewhat orthogonal to your change, but last week's GitHub sha256 blowup reminded me that http_archive is horrible and we should probably switch to using git_repository