feat: use cross-compilation to build images #1833
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR uses a statically built Clang in order to enable "cross-compilation" although seen from all scripts, this behaves as a native compilation.
A full build that was taking more than 5 hours with QEMU takes less than 2 hours with this cross-compilation method.
Given CPython has different support level for gcc than clang, we do respect this when building CPython, the default is as follows:
Everything can be overridden.
This only configurations that are still too slow and are left on Travis CI are manylinux s390x images for which CPython only has some level of support when using GCC.
Clang used in this PR is built & published in the following: repo https://github.com/mayeut/static-clang-images