This is an alternative and/or complementary to Thomas' proposal to use CLang with msys:
https://lists.gnu.org/archive/html/qemu-devel/2023-07/msg05402.html First of all, the current msys installer we're using is over 12 months out of date. Thus after running the install, pacman then replaces most of what we've just installed with new downloaded content. Using the most update installer cuts 3+1/2 minutes off the msys install time - 7 minutes becomes 3+1/2. Secondly, QEMU defaults to compiling with -O2 and this is more computationally expensive for GCC. Switching to -O0 drops the build time from 60 minutes down to 45 minutes. Thirdly, including debug symbols also has an overhead, and turning that off reduces time still further down to 38 minutes. IOW, between all three changes, we can cut approx 25-26 minutes off the job execution time, bringing it nicely within the job timeout. The actually phase of installing the mingw deps still accounts for about 10 minutes and has not been optimized. Possibly the same trick of -O0 and skipping -g would also help the clang alternative Thomas' proposed. If so, that could be enough to let us enable more features / targets during the msys build. Daniel P. Berrangé (8): gitlab: remove duplication between msys jobs gitlab: print timestamps during windows msys jobs gitlab: always use updated msys installer gitlab: drop $CI_PROJECT_DIR from cache path gitlab: always populate cache for windows msys jobs configure: support passthrough of -Dxxx args to meson gitlab: disable optimization and debug symbols in msys build gitlab: disable FF_SCRIPT_SECTIONS on msys jobs .gitlab-ci.d/windows.yml | 174 +++++++++++++++++++-------------------- configure | 5 ++ 2 files changed, 92 insertions(+), 87 deletions(-) -- 2.41.0