ci: build with clang instead of gcc#320
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. |
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