-
Notifications
You must be signed in to change notification settings - Fork 19
ci: build with clang instead of gcc #320
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: master
Are you sure you want to change the base?
Conversation
This is an outstanding improvement 🎉 |
e3872aa to
be5e03c
Compare
|
What's the status of this, is it safe to merge? I see "PoC" in the description, but it seems to be working? (Same with cmake) |
|
That's very interesting indeed! |
be5e03c to
4d8e1cf
Compare
yes I think it is since we run the ninja test suite and, since the PR was first introduced, the manylinux images have moved to using the same trick using clang meaning I'm committed to keep clang up-to-date.
It's a working proof-of-concept from the Python ecosystem point of view.
There are definitely some differences, I mostly encountered some issues with the linker either here, in scikit-build/cmake-python-distributions#632 or manylinux. Those were easy enough to fix in any case. |
|
Do the static clang builds include the libclang_rt builtins for the target architecture, or if not, could they be added? |
This allows a speed-up of all QEMU targets by using a statically built clang that runs with the native architecture of the runner rather than calling gcc through QEMU.
CI should finish in roughly 6 minutes compared to 24 minutes in master.
This PR is mostly used as a PoC for this trick and see wether it would see adoption, what are the limitations and how it could be improved.
Clang used in this PR is built & published in the following repo: https://github.com/mayeut/static-clang-images