Re: [boost] Embedding manifest into the regression tests (was: [testers] [log] Problems with tests)
VC++ 10 and 11 dont use sxs isolation for runtime libs any more. IOW, you dont need a manifest for the CRT in VS2010&2012.
Regards
-hg
Sent from Samsung MobileAndrey Semashev
Am 13.05.2013 19:50, schrieb Andrey Semashev:
On Monday 13 May 2013 16:06:01 Sergey Cheban wrote:
[snip] The bjam scripts embed the manifest into the executable if it was generated by the linker. And the linker generates the manifest by default if the /manifestdependency option was specified.
May be, it is reasonable to add the "/MANIFEST" to the linker options explicitly.
I know little about Windows manifests, but if I'm not mistaken, /manifestdependency describes the dependency to be put in the manifest and /MANIFEST only tells the linker to generate the .manifest file. If MSVC 10 and 11 removed their /manifestdependency then what should be put into the manifest?
Is this really about dependency? In Visual Studio, MSBuild is configured to insert this into .exe link options by default:
/MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed
From MSDN ([1], [2]) this seems to be the default, if manifest is generated. I'm not sure what is the problem with manifests as it seems it should be generated by default. So either it is not generated when there are no /manifestdependency entries or I'm missing something. I hope someone with more experience can comment on this. [1] http://msdn.microsoft.com/en-us/library/f2c0w594.aspx [2] http://msdn.microsoft.com/en-us/library/bb384691.aspx _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
13.05.2013 23:36, Holger Grund пишет:
VC++ 10 and 11 dont use sxs isolation for runtime libs any more. IOW, you dont need a manifest for the CRT in VS2010&2012. SxS isolation is not the only reason to have manifest.
At least two unit tests in the boost log library fail to run just because: 1. They do not contain the manifest 2. Their names match the *patch*.exe pattern. We can rename these tests but it is just a workaround, not a fix. To fix the problem, we need a manifest. -- Best regards, Sergey Cheban
VC++ 10 and 11 dont use sxs isolation for runtime libs any more. IOW, you dont need a manifest for the CRT in VS2010&2012. SxS isolation is not the only reason to have manifest.
Fair enough. That has nothing to do with the compiler version, though.
At least two unit tests in the boost log library fail to run just because: 1. They do not contain the manifest 2. Their names match the *patch*.exe pattern.
We can rename these tests but it is just a workaround, not a fix. To fix the problem, we need a manifest.
It's probably a good idea to generate an embed a manifest. Last I heard, there was lots of talk in Windows about putting more things into it. -hg
14.05.2013 9:56, Holger Grund пишет:
VC++ 10 and 11 dont use sxs isolation for runtime libs any more. IOW, you dont need a manifest for the CRT in VS2010&2012. SxS isolation is not the only reason to have manifest. Fair enough. That has nothing to do with the compiler version, though. Toolset is not just a compiler. It is (in Windows) compiler+CRT+STL+WindowsSDK+ATL+MFC. In our case, the manifest is generated for the msvc-9.0 toolset because of the CRT headers that are shipped with the msvc-9.0 compiler.
-- Best regards, Sergey Cheban
participants (2)
-
Holger Grund
-
Sergey Cheban