Reid Kleckner <rnk@google.com> writes:
>
>> IIUC zlib availability is tested and the library used if present. Do you
>> mean that LLVM does not use zlib on Windows when the library is present?
>
>
> Sure, but if there aren't instructions for how to do it easily, then it's
> effectively unsupported. There isn't really a canonical way to "install"
> headers and libraries on Windows like you would on Linux.
That's a non-issue. Downloading, compiling and installing zlib on
Windows takes about 10 minutes, for both MinGW and MSVC. There are
pre-compiled packages around too.
It is a good thing that LLVM works when zlib is not present, but
assuming that LLVM will not support certain zlib-related features
"because it is Windows" just shows how much misinformation some people
have about that OS.
I haven't heard of anyone doing this successfully, and there isn't any
documentation, which is just a hair shy of being unsupported. I agree,
though, we can fix this. If GnuWin32 provides a usable zlib, that's great,
we should document how to use it.
It probably works on MinGW, but then you're a MinGW binary in a MinGW
> world.
I think you are confusing MinGW with Cygwin. There is nothing special
about MinGW binaries. Moreover, for C code the libraries are compatible.
I've been using the same zlib binary on both MinGW(-w64) and MSVC for a
decade, across multiple toolset releases.
I did mean MinGW, I was really just referring to the C++ ABI, alternative
SDK headers, and CRT adapters.
The "MinGW world" vs the "VS world" is restricted to C++, where
different ABIs are used by their respective compilers. That's nothing
new on Windows, which doesn't has a "platform C++ ABI" (nor Linux has,
because C++ has no special role on neither OS.) C++ compilers with
incompatible C++ ABIs are common on Windows. Actually, a MSVC++ version
is often incompatible with other versions.
There are proposals to define such a platform C++ ABI for Windows, N4028:
https://isocpp.org/blog/2014/05/n4028
It's not clear to me that the ISO C++ standard is the right place to
declare that, but it suggests that Microsoft (or at least Herb) intend to
document the Visual C++ ABI.