Skip to content

Comments

msvc: fix detect_showincludes_prefix when VS_UNICODE_OUTPUT is set#1835

Closed
AudranDoublet wants to merge 1 commit intomozilla:mainfrom
AudranDoublet:bug/msvc/detect-showIncludes-fail_VS_UNICODE_OUTPUT
Closed

msvc: fix detect_showincludes_prefix when VS_UNICODE_OUTPUT is set#1835
AudranDoublet wants to merge 1 commit intomozilla:mainfrom
AudranDoublet:bug/msvc/detect-showIncludes-fail_VS_UNICODE_OUTPUT

Conversation

@AudranDoublet
Copy link
Contributor

@AudranDoublet AudranDoublet commented Jul 21, 2023

VS_UNICODE_OUTPUT is set by Visual Studio to a value that tells MS tools running from within the IDE where to send their output. Thus, cl.exe invocation used to retrieve the /showIncludes prefix returns an empty output when this variable is set to a valid value.

The proposed fix is to use /E option that tells cl.exe to output file content in stdout and retrieved headers in stderr. When set, cl.exe ignores the value of VS_UNICODE_OUTPUT.

Another fix could be to explicitly unset VS_UNICODE_OUTPUT in the command invocation.

#1830 #909 mentioning these issues as it may fix them.

// The MSDN docs say the -showIncludes output goes to stderr,
// but that's not true unless running with -E.
.stdout(Stdio::piped())
.stderr(Stdio::null());
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed as run_input_output override these values

@sylvestre sylvestre force-pushed the bug/msvc/detect-showIncludes-fail_VS_UNICODE_OUTPUT branch from 0c7f247 to c9cf42a Compare September 7, 2023 06:47
@sylvestre sylvestre force-pushed the bug/msvc/detect-showIncludes-fail_VS_UNICODE_OUTPUT branch from c9cf42a to 5560f1d Compare February 22, 2024 07:52
@sylvestre
Copy link
Collaborator

many jobs are failing to build
please reopen when they are fixed! :)

@sylvestre sylvestre closed this Feb 22, 2024
@njames93
Copy link

Is there any update on this, I tried to run this locally(based of 0.8.0 release) and the error went away, but it seems that sccache didn't attempt to do any caching

@exoosh
Copy link
Contributor

exoosh commented Nov 7, 2025

Such a shame this got closed. @AudranDoublet would you mind if I attempt to shape up your changes and adjust them to the latest version of sccache? This is literally the blocker for anyone using MSVC via the VS IDE ... as pointed out in #1830 ...

PS: not much adjustment was required. Rebase worked, now checking regarding tests and so on.

AJIOB pushed a commit to AJIOB/sccache that referenced this pull request Jan 8, 2026
The problem usually occurs when VS_UNICODE_OUTPUT is set.
This is a @AudranDoublet mozilla#1835 and @exoosh mozilla#2483 fixes with working tests: thank you!

Should fix issues mozilla#1830 and mozilla#909
AJIOB pushed a commit to AJIOB/sccache that referenced this pull request Jan 8, 2026
The problem usually occurs when VS_UNICODE_OUTPUT is set.
This is a @AudranDoublet mozilla#1835 and @exoosh mozilla#2483 fixes with working tests: thank you!

Should fix issues mozilla#1830 and mozilla#909
AJIOB pushed a commit to AJIOB/sccache that referenced this pull request Jan 12, 2026
The problem usually occurs when VS_UNICODE_OUTPUT is set.
This is a @AudranDoublet mozilla#1835 and @exoosh mozilla#2483 fixes with working tests: thank you!

Should fix issues mozilla#1830 and mozilla#909
AJIOB pushed a commit to AJIOB/sccache that referenced this pull request Jan 13, 2026
The problem usually occurs when VS_UNICODE_OUTPUT is set.
This is a @AudranDoublet mozilla#1835 and @exoosh mozilla#2483 fixes with working tests: thank you!

Should fix issues mozilla#1830 and mozilla#909
AJIOB pushed a commit to AJIOB/sccache that referenced this pull request Jan 13, 2026
The problem usually occurs when VS_UNICODE_OUTPUT is set.
This is a @AudranDoublet mozilla#1835 and @exoosh mozilla#2483 fixes with working tests: thank you!

Should fix issues mozilla#1830 and mozilla#909
sylvestre pushed a commit that referenced this pull request Jan 13, 2026
The problem usually occurs when VS_UNICODE_OUTPUT is set.
This is a @AudranDoublet #1835 and @exoosh #2483 fixes with working tests: thank you!

Should fix issues #1830 and #909
tottoto pushed a commit to tottoto/sccache that referenced this pull request Feb 6, 2026
There is a bug such that if the client sends a response with a header
value that exceeds the max_header_list_size, then RPCs just hang
(mozilla#1834). When tonic upgraded to hyper 1, it picked up [hyper#3622] which
changed the default from 16MiB to 16KiB for this configuration value.
Error messages in gRPC use headers. That means that services which ever
sent error messages in excess of 16KiB (including in their error
details!) will just hang.

This commit adds the ability for the client to configure this value to
something larger (perhaps the old default of 16MiB) to mitigate the
above-referenced bug.

[hyper#3622]: hyperium/hyper#3622
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants