Repository navigation
build(windows): quote the forced standard-stream include path - #11949
oneandonlydean merged 2 commits into
Conversation
check_stub runs check_conventions.py in a temporary repository with a 10 s limit. The slowest tests of this file take 8 to 11 s each on a Windows 10 machine here, and in a full ctest run the call exceeded the limit (subprocess.TimeoutExpired after 10 seconds), so conventions_function_bodies_shard_5 failed although it passes on its own. The limit is now 120 s, the same as the ctest timeout of the shard. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
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.
|
e63c1ba to
0a20a1a
Compare
0a20a1a to
a07835c
Compare
|
Windows check with a space in the source path, which Tested couldn't run. Windows 11 Home 10.0.26200, WinLibs GCC 15.2.0 r7 (MinGW-w64 UCRT), CMake 4.3.1, Ninja, Release. The source tree was reached through a directory junction
So on Windows the unquoted path splits at the space and GCC sees a second input file, and the quoted form compiles. That's #8607's failure. Not covered: the AI-assisted: yes (Claude Code) |
|
Windows result for head This PR's own tests: the Host: Windows 11 26300, Intel i7-12700K, NVIDIA GeForce RTX 2070 SUPER (vendor 0x10de, device 0x1e84; Vulkan loader 1.4.357 from the NVIDIA driver), Khronos Validation Layers nightly 1.4.366 (b2b44c0d37) through Same focused run on
The tree also carried the open PRs #11951, #11711, #11704, #11692, #11691, #11690, #11794, all merged cleanly, so the run is a joint one; of those, #11692's new AI-assisted: yes (Claude Code), the runs and the numbers above are from this machine. |
THEMANnt
left a comment
There was a problem hiding this comment.
Reviewed a07835c9f982921977726abddf9ad8288fe20d90 — approve. All three forced-include options preserve a source path containing spaces as one compiler argument.
Windows/GCC 15.2/CMake/Ninja: three isolated targets use the exact submitted option strings under a path with spaces; all build, link and run. The three old option forms fail their build. The fixture header checks that the include actually arrived; this does not build libc or the shader recompiler. The inherited conventions-test timeout-only change was inspected separately. Hosted Build reports success; no GPU execution is claimed.
|
@THEMANnt thanks for the approval. @ycbuzi and @maskym thanks for the two independent Windows checks: the spaced-path compile and the full conventions-shard build. The branch is still stacked on #11723 for the conventions timeout; I will rebase it onto |
What
Quote the paths inside the three Windows-only
SHELL:-includeoptions that force-includeHostStandardStreams.hpp.SHELL:splits its argument with shell-like quoting, so an unquoted source path containing a space became two words and the compiler saw a second input file. The option now reaches the compiler as one argument; a path without a space produces the same command as before.The branch is stacked on #11723 because the Windows relinker's conventions shard hit a separate 10 second subprocess timeout in the same job. #11723 raises that timeout; this change is otherwise independent.
Fixes: #8607
Tested
Linux x86_64, GCC, CMake 4.4.4, Ninja.
libctarget configures and builds with the changed CMake files.SHELL:-include \"...\"form and a source directory namedspace srcbuilds;build.ninjacontainsFLAGS = -include \"/tmp/.../space src/HostStandardStreams.hpp\"as one argument. The unquoted form fails on the same project.git diff --check; the Windows job exercises the longer timeout.No game was run.
Checklist
main; no other open PR implements the same fixNotImplemented_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)