-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove indirect dependency on system ZLIB #26888
Conversation
- build LLVM without ZLIB support - use the bundled ZLIB for libgit
Note: this should be a squash merge. |
In some cases, we may try to use zlib to read debug info (dwarf dwz files). LLVM should fail gracefully here (e.g. just return "debug info not present") if it is turned off, so we'll just lose line number information for those libraries, but it's not entirely NFC. |
Hopefully this will resolve JuliaPy/PyPlot.jl#151, which is a longstanding issue arising from Julia linking an older system version of ZLIB than the one required by Anaconda's libraries? Is the bundled zlib in libgit linked in such a way that it won't conflict with dlopening libraries that depend on a different zlib? |
Good to go? |
Let's give this guy another run through CI just in case. I believe Elliot has since fixed the issue on macOS. |
Oh, I think the tests failed because of that httpbin thing. Let's try this again. Sorry for the close/reopen spam, Valentin. |
All green except 64-bit Windows, which timed out. |
IIUC we have been trying to minimise our dependency tree and one of those dependencies we previously excised was ZLIB.
I reviewed a build of mine that I had laying around and besides system libraries the only indirect dependency (e.g. that we don't provide by default and that is pulled in by one of our main dependency)
was ZLIB, which was pulled in by LLVM and libgit. This builds LLVM without ZLIB support (should be a NFC since we don't use compression) and uses the bundled ZLIB for libgit.
Indirect dependencies can cause issues for downstream users like Conda.jl so IMHO it is best to minimise them as much as possible.