Skip to content

Conversation

@OlekRaymond
Copy link

@OlekRaymond OlekRaymond commented Feb 14, 2025

Fixes #496

@neusdan
Copy link

neusdan commented Sep 29, 2025

I think that is not the correct fix because MSVC 19.40 is still vc143. I think #497 is more appropriate.

@OlekRaymond
Copy link
Author

OlekRaymond commented Sep 29, 2025

I think that is not the correct fix because MSVC 19.40 is still vc143. I think #497 is more appropriate.

I don't think so,

We had a bug where this fixed it, but it is now moot to me, so happy for this not to go in.

I am on windows so happy to download the latest pre-release and find out if you'd like 😄

@jzmaddock
Copy link
Collaborator

I'm looking into this now, we need to do exactly the same thing as Boost.Build.

@jzmaddock
Copy link
Collaborator

So far as I can tell from current develop, I still get "143" in library names, I haven't been able to spot where Boost.Build sets this though. Attempting to build with toolset=msvc-14.4 produces:

error: "14.4" is not a known subfeature value of <toolset>msvc

Can you confirm?

@neusdan
Copy link

neusdan commented Sep 29, 2025

, I still get "143" in library names

That's weird because if i set toolset=msvc-14.4 then it will produce library names with vc144 in it.

Not sure if it is related but i am also calling vsdevcmd.bat -vcvars_ver=14.4 before calling b2.exe.

@OlekRaymond
Copy link
Author

OlekRaymond commented Sep 29, 2025

I still get "143" in library names

This is what happened to us.

I have experienced oddities with setting vcvars, we just used the default for the latest version then downgraded to get around this issue

@jzmaddock
Copy link
Collaborator

That's weird because if i set toolset=msvc-14.4 then it will produce library names with vc144 in it.

I don't see how you can do that, I checked the source (https://github.com/boostorg/build/blob/develop/src/tools/msvc.jam) and there is no such thing as a "14.4" version, and for me attempting to use it, generates a hard error from b2 (which it should). This looks like user error to me since we only support 14.3 as a valid version not 14.4.

I don't know how you managed to slip by the error checks though.

@grafikrobot would you have any idea what's happening at the b2 end of things?

@jdoubleu
Copy link

I don't see how you can do that, I checked the source (https://github.com/boostorg/build/blob/develop/src/tools/msvc.jam) and there is no such thing as a "14.4" version

Looks like https://github.com/boostorg/build/blob/develop/src/tools/msvc.jam#L1157 does in fact allow a value of 14.4?

and for me attempting to use it, generates a hard error from b2 (which it should).

Which toolsets do you have installed on your system (I've got 14.44.35207)? They're usually installed in C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\.


I think the main issue is, that Microsoft broke the assumption that you can derive the 'Platform Toolset' version (e.g. v142, v143, etc.) from the actual toolset, e.g. 14.29.30133 for v142 and 19.31.31103 for v143 (i.e. the number after the dot 19.x determined the least-significant digit in v14x).

See https://devblogs.microsoft.com/cppblog/msvc-toolset-minor-version-number-14-40-in-vs-2022-v17-10/ for more information.

This even caused some issues in their build systems as well.


In our case, we'd like to build with the 14.44.35207 toolset, but still have vc143 in their names, because the toolset produces binaries that are ABI compatible across all v143 'Platform Toolset' versions.

B2 is probably deriving the name just from the toolset version, which is now broken.

@jzmaddock
Copy link
Collaborator

So I just updated to the latest and greatest VS-17.14, which has msvc version 194435217. For me Boost.Build is still identifying that as msvc-14.3 and naming binaries appropriately. However.... the update has mangled something badly, as the IDE will no longer build C++ programs (that's the second update in a row that's done that, I'll have to completely remove and reinstall to fix - when I have the time).

Meanwhile I'd still like to hear from @grafikrobot what's intended in Boost.Build, as ultimately the only thing that matters is that we do the same thing.

@jzmaddock
Copy link
Collaborator

@pdimov might have a view also.

@pdimov
Copy link
Member

pdimov commented Oct 1, 2025

Even though the toolset version is 19.4x, it's still toolset v143, which corresponds to msvc-14.3. There's no such thing as msvc-14.4. The new Visual Studio will be v145, msvc-14.5.

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.

VS 2022 v17.10

5 participants