Subject: [Boost-build] MSVC toolset: manifest and pdb issues.
From: Alexey Pakhunov (alexeypa_at_[hidden])
Date: 2009-01-25 22:55:57
Recently I dialed with a few issues with MSVC toolset.
First, the MANIFEST target added by
"msvc-linking-generator::generated-targets" rule when
"<embed-manifest>off" is specified uses wrong manifest file name:
"foobar.manifest instead" of "foobar.exe.manifest". This causes
continuous rebuilding of .exe when some other target depends on .exe
target. This can be fixed by patching the name before creating
Second, the manifest file itself is not always generated by the
linker. It will not be generated if the linker didn't found any WinSxS
dependencies. But when "<embed-manifest>off" BBv2 assumes that the
manifest will be always generated. This can cause the same "always
rebuilding .exe" problem as above. It is also a bit tricky (but
possible) to work around this issue by changing target requirements
because, for example, "<runtime-link>shared" also adds WinSxS
dependency on RTL.
Third, it makes sense to generate PDB target in the same way as
MANIFEST target is generated. I.e. when "<debug-settings>on" is in
effect. It will allow using "install" rule to move PDBs to a symbol
store for instance.
I attached a combined patch for all three issues. I can split it in
two or three pieces if needed.
-- Best regards, Alexey Pakhunov.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk