-
Notifications
You must be signed in to change notification settings - Fork 212
Update the Static SDK for Linux #488
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
base: main
Are you sure you want to change the base?
Conversation
|
This will require updates to the Static SDK build job, because it changes the versions of dependencies and adds some dependencies. Also, we will need to check the licensing situation before merging this. |
Updated the versions of: - libxml2 (2.14.5) - curl (8.15.0) - BoringSSL (newer SHA) and added: - bzip2 (1.0.8) - xz-utils (5.8.1) - libarchive (3.8.1) - mimalloc (2.2.4) Plus two security patches for musl to fix CVE-2025-26519. Also link mimalloc by default, so programs using the Static SDK for Linux get a better memory allocator out of the box. rdar://156423711
04df20d to
50b6c1f
Compare
We need to run the build and install of bzip2 together, otherwise bzip2 tries to run tests, which won't necessarily work when cross compiling for a different architecture. We also want to remove various directories from the final result. Oh, and we don't want to build libxml2 with lzma support either, otherwise we'll have to link with liblxma whenever we use libxml2.
8e98d7f to
00c0d27
Compare
To do this properly, we remove all of the allocator implementation from `libc.a` and `libc++abi.a`, and add `mimalloc.o`, mimalloc's static implementation, directly to `libc.a`.
|
Ideally we should land swiftlang/swift#84705 and swiftlang/swift#84706 first, as that will mean that all builds of the 0.1.0 version of the Static SDK for Linux will have library evolution disabled. That seems cleaner than landing this one first. |
|
Tangential to this PR, but I'd like to align Android's dependencies with these. A few questions:
|
Yes. I chose the hash Swift NIO is currently using. The problem with BoringSSL is that it doesn't actually have proper releases; the BoringSSL maintainers actively talk to the NIO maintainers and that's how they get the hash to use. We should ideally pick up the same hash whenever they change it (it might be better to just check out the NIO repository to get the version we need, but that's not a change I've made here).
No. Those were requests that I had from various parties: |
Updated the versions of:
and added:
Plus two security patches for musl to fix CVE-2025-26519.
Also link mimalloc by default, so programs using the Static SDK for Linux get a better memory allocator out of the box.
rdar://156423711