Yesterday, I tried installing Visual Studio 2019 (16.1.0) on a new computer and cloning and building the terminal repo. When installing VS, I made sure to select the "desktop dev with C++" and "universal Windows dev" profiles, and the v141 compiler and universal Windows tools.
However, building from the command line with bz reliably failed. While I don't have the exact text on hand, I remember MSBuild showed the following:
C:\Program Files or similar, not in the terminal repo) that Spectre-mitigated libraries were chosen but not installed.msvcrt.lib , msvcprt.lib , ...). After observing with Process Monitor, I saw that link.exe did seem to be looking only in "Spectre" folders for these files.Is it expected that Spectre-mitigated C runtimes are required? Could it be documented if so? And if not, could it be corrected?
Spectre mitigation is enabled by default if you鈥檝e installed the WDK. I believe there鈥檚 an ongoing UserVoice or DevCommunity discussion about it. Apologies, I can鈥檛 dig up the link at the moment.
Here you go.
Do you have the WDK installed?
Yes, I did have the Windows Driver Kit installed on the box. Good guess!
I do think this problem - that if you have the WDK installed, you must also install the Spectre-mitigated libs or modify the MSBuild defaults, per the discussion thread you linked - does need to be documented, either in the doc markdown files or in the "Guide for build" issue thread (#489). What do you think? If it should go in the .md files I would be happy to submit a PR for that.
Given that this is a widespread issue, I don't see the value in documenting it. Here's my thoughts:
Documenting this for our project specifically is like documenting "if you install the wrong tools, it will behave poorly" -- it's not specific to us, and we might run the risk of accumulating a bunch of documentation callouts that aren't specific to us. They'll age, go stale, and become annoying vestigial limbs.
I don't agree with this resolution (and I notice I can't reopen the issue either, but I'm not really interested in fighting hard on this issue so I'll leave that be). Yes, the problem is not specific to this project and is fairly general, but I say making people figure it out themselves places unnecessary roadblocks in the new contributor process. Ultimately there is a balance that has to be struck between excessive and/or misleading hand-holding and leaving people out in the cold and we'll have to agree to disagree on where that balance point is placed.
You've made a good point.
i have same problem. tryng to fix it for weeks. sadly there is not any solution online
Most helpful comment
Given that this is a widespread issue, I don't see the value in documenting it. Here's my thoughts:
Documenting this for our project specifically is like documenting "if you install the wrong tools, it will behave poorly" -- it's not specific to us, and we might run the risk of accumulating a bunch of documentation callouts that aren't specific to us. They'll age, go stale, and become annoying vestigial limbs.