-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1.82.0: WinXP: Filesystem links to AcquireSRWLockExclusive #113
Comments
I also tried something like that but it didn`t help
|
This helped but is it the right solution? |
I'm not sure what the right fix is or where it should go, but IMO it shouldn't be here, BOOST_MSSTL_VERSION should completely unrelated to the WinAPI version in effect. @pdimov ? |
BOOST_MSSTL_VERSION is the version of the standard library, it's not related to the Windows SDK in use. |
The problem here is probably #111. |
Basically, the issue is that while the v140_xp toolset defines the macro |
With the v140_xp toolset SRWLOCK will never be available as its target is WinXP. So: Should |
It shouldn't be defined by us if that's what you're asking: it should really be defined by your toolset when you target XP, or failing that by yourself on the command line. Which is to say defines which control the behaviour of the Windows SDK are none of our business, and Boost should expect them to be set in a sane way, which apparently is not the case here? |
I build boost filesystem 1.82.0 with this commandline but it was not fixed. Still there.
Any suggestion how to fix compilation for Windows XP without reverting that patch? |
The problem here is that msvc-14.2 (VS2019) no longer supports XP (there's no vc142_xp toolset and the MS STL no longer has the XP workarounds), so the But I'll look into fixing this on the System side. |
This commit will fix the compilation with msvc-14.2 under Windows XP using the command line above (except I'm still not quite sure whether msvc-14.2 can reliably be used to target XP, because that's (officially) unsupported; but if this works for you, I'll incorporate it after your confirmation. |
@pdimov That fixed my issue! About the toolset issue: What confused me: In visual studio there is a special toolset v141_xp. It is distinct from v141. |
But you are compiling with |
Yes, i know. Its config and not filesystem.
I compiled boost 1.82.0 for Windows XP with MSVC 2019. It could not get it running on Win XP SP3 as the symbol AcquireSRWLockExclusive was missing. Then i checked boost-1.81.0 and it worked as expected. I bisected boost filesystem between 1.82.0 and 1.81.0 and found no good candidate as all other was still on 1.82.0. Then i bisected atomic and config between these two boost versions. I found 56e7a0e49ddb070f63e0943660f7dc6d00f2508c as the first bad commit.
But it does not fiddle with AcquireSRWLockExclusive, it fiddles with MSSTL.
When i do
git revert 56e7a0e49ddb070f63e0943660f7dc6d00f2508c
and recompile boost::filesystem it works again as expected.
I compiled it this way
The text was updated successfully, but these errors were encountered: