Disabled LTO for x86 clang-cl CI builds #70
Merged
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 solution is not ideal, but I keep seeing x86 clang-cl builds failing from what looks like it being out of memory.
This stems from Visual Studio only shipping two editions of LLVM, one for x86 and for x64, instead of the four editions it ships of Visual C++, where you have one pair for each host architecture. This means that x86 clang-cl builds are currently being compiled with a 32-bit compiler/linker, which seem to hit their memory ceiling at random times.
LTO has historically been a real memory hog, so I'm hoping this will give me some breathing room until I can fix this in some other way.
The proper solution will most likely be to make a CMake toolchain file for clang-cl on Windows, which should let me bypass CMake's scanning of output binaries and effectively cross-compile x86-on-x64. This would also let us use the official release of LLVM, instead of having to rely on the (seemingly custom) Microsoft-provided one, which should help shorten
scripts/ci_setup_windows.ps1
a fair bit.