Use /EMITVOLATILEMETADATA:NO with Microsoft Linker #96
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Recent Visual Studio 2019 and 2022 are enabling volatile metadata on x64 by default. There don't appear to be many technical details available, but the purpose is to improve emulation of AMD64 on ARM64.
Sometimes the .voltbl sections are copying correctly and then seemingly minor code changes can break it, causing an obscure and undocumented error from the Microsoft Linker.
In parallel, OCaml will start to adding
/d2VolatileMetadata-
to its internal CFLAGS which should suppress the problem from both sides.