Repository navigation
feat(windows): support MSYS2 GCC runtime builds - #8087
harry-z-kang wants to merge 1 commit into
Conversation
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
2f155a0 to
5f4b49c
Compare
5f4b49c to
8909edf
Compare
|
Thanks, this is careful work. Two questions while this waits for a maintainer decision on the extra Windows CI lane:
|
|
Thanks for this. We'd like to take MSYS2 GCC support, with one change to how its CI runs and two small things to sort out first.
#8067 is merged now, so a rebase onto main should leave just your own commit. |
8909edf to
23e4047
Compare
|
Addressed in commit 23e4047:
Rebased onto main |
What
MSYS2 GCC could not build the full Windows runtime with its native SEH exception model. Support System V ABI SEH frames alongside the existing WinLibs DWARF path, identify project GCC personalities, and preserve guest/host cleanup, typed catches, rethrow and register restoration. Includes the required pthread startup, makecontext frame, thread-description lookup and ATRAC9 fixture fixes.
MSYS2 qualification runs in the separate Windows MSYS2 workflow nightly at 08:23 UTC and through
workflow_dispatch. The regular WinLibs Build workflow is unchanged. Full builds with testing enabled retain the configure-time error for missing runtime DLLs; MSYS2 supplies all three beside the compiler. Relinker-only static-runtime support from merged #8067 is preserved, and this branch now contains one commit on current main.Standalone Scoop GCC 15.2 remains unsupported for full runtime builds: disabling SEH selects SjLj, and its SEH backend cannot compile System V catch handlers. MSYS2 UCRT64 GCC 16.2.0-6 carries the compiler fix. Unmarked native handlers and SjLj remain in libc debt.
Tested
e41fb9db5, Windows NT 26300: rebuilt the focused MSYS2 targets; all 29 unwind, exception, module-info, timer, context and ATRAC9 tests passed (10.43 s).BUILD_TESTING=ONconfiguration with standalone Scoop GCC fails immediately withCannot locate MinGW runtime: libgcc_s_seh-1.dll; relinker-only configuration with that same compiler succeeds. MSYS2 configuration succeeds with its adjacent runtime DLLs.libsbuild passed on base252cbc29b; CTest reported 1,670 passed, 19 skipped, 1 failed out of 1,690. The failure wasagc_driver_pass_input_hazard: a pass writing indices read by an open pass took no barrier. The same assertion reproduces with WinLibs GCC 15.2 r7 on the same PR code and machine; this comparison uses the DWARF and SEH paths of the branch.agc_driver_storage_file_writeandagc_driver_pm4passed under both toolchains with validation enabled.ANYPS5_REQUIRE_VULKAN=1,ANYPS5_NO_SHADER_CACHE=1andVK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation; verbose logs confirmed the layer loaded.agc_sparse_run_import_copiedpasses but logsVUID-vkCmdCopyBuffer-srcBuffer-00118under both toolchains. No GPU implementation files change.shader_cache_runtime_sourcesfixture taking 43.17 s in the full run / 36.10 s alone. No existing timeout was increased. WinLibs 15.2 r7 previously passed 32 focused runtime tests and eight final compatibility checks. Full Linux runtime qualification has not run locally.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)