mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-04-28 07:31:14 -03:00
This fixes, or should make it less likely, spurious CI failures because of: `child_info_fork::abort: address space needed by <DLL> is already occupied` The issue is that Unix `fork()`, given how it works, preserves libraries' addresses. Windows does not have such a function, so Cygwin needs emulate it by moving the libraries in a child process to match the addresses in its parent. This leads to conflicts if Windows already loaded something there. As a workaround, Cygwin has a `rebase` application to assign specific addresses to each DLL and forcing Windows to use those. This generally fixes the issue (until a DLL is updated that is, but that's not a concern for CI since everything is rebuilt from scratch every time). In the case of #12515 though, the failing DLL is a temporary one built during the compilation. So a rebase of MSYS2 packages will not quite fix the problem. However, by moving other DLLs at specific locations, it reduce the risk of collision to only be between the temporary ones. Fixes #12515 Closes #12521