-
Notifications
You must be signed in to change notification settings - Fork 344
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
Include STL/CRT libs and headers with LKG to eliminate yvals_core.h static_assert build errors on mismatch #4933
Conversation
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
<!-- The LKG toolset only supports Platform=win32. To work around, we TreatAsLocalProperty=Platform above to | ||
enable overriding the global (command-line) Platform, explicitly import LKG's custom.props, and restore Platform. --> | ||
<PropertyGroup Condition="'$(Platform)'=='x86'"> | ||
<WorkaroundLkgWin32>true</WorkaroundLkgWin32> | ||
<Platform>Win32</Platform> | ||
</PropertyGroup> | ||
<Import Project="custom.props" Condition="Exists('custom.props') and '$(WorkaroundLkgWin32)'=='true'" /> | ||
<PropertyGroup Condition="'$(WorkaroundLkgWin32)'=='true'"> | ||
<Platform>x86</Platform> | ||
</PropertyGroup> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
{ | ||
if ($AzureBuildStep -ne "all") | ||
{ | ||
$env:NUGET_RESTORE_MSBUILD_ARGS = "/binaryLogger:BuildOutput\binlogs\$Label.restore.$Platform.$Configuration.binlog /p:Platform=$Platform /p:Configuration=$Configuration" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<UseInternalMSUniCrtPackage>true</UseInternalMSUniCrtPackage> | ||
<UndockedSettingsLoaded>true</UndockedSettingsLoaded> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the MsUCRT package requires explicit acknowledgement (opt in, on top of the yml task properties)
includeUCRT: true | ||
ucrtFeedPat: $(System.AccessToken) | ||
platform: $(buildPlatform) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is the essential change - include the UCRT (STL/CRT libs/headers) along with the tools
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…tatic_assert build errors on mismatch (#4933) * include STL/CRT libs/headers with LKG * add platform * opt into internal UCRT * opt into undocked settings loaded * publish binlogs on failure * use lower case platform for LKG toolset * treat Platform as local to allow override of x86 to win32 for LKG * define GUID_NULL, publish binlog on binary build failure * define GUID_NULL another way * collect binlogs for nuget restores * fix restore binlog name * nuget restore with platform for LKG compat, renamed BuildBinaries to BuildFoundation for clarity * setting platform to win32 has downstream effects - surgically wrapping LKG imports instead * import MsUCRT x86 targets explicitly * removed unnecessary LKG targets overrides
…tatic_assert build errors on mismatch (#4933) * include STL/CRT libs/headers with LKG * add platform * opt into internal UCRT * opt into undocked settings loaded * publish binlogs on failure * use lower case platform for LKG toolset * treat Platform as local to allow override of x86 to win32 for LKG * define GUID_NULL, publish binlog on binary build failure * define GUID_NULL another way * collect binlogs for nuget restores * fix restore binlog name * nuget restore with platform for LKG compat, renamed BuildBinaries to BuildFoundation for clarity * setting platform to win32 has downstream effects - surgically wrapping LKG imports instead * import MsUCRT x86 targets explicitly * removed unnecessary LKG targets overrides
* Include STL/CRT libs and headers with LKG to eliminate yvals_core.h static_assert build errors on mismatch (#4933) * include STL/CRT libs/headers with LKG * add platform * opt into internal UCRT * opt into undocked settings loaded * publish binlogs on failure * use lower case platform for LKG toolset * treat Platform as local to allow override of x86 to win32 for LKG * define GUID_NULL, publish binlog on binary build failure * define GUID_NULL another way * collect binlogs for nuget restores * fix restore binlog name * nuget restore with platform for LKG compat, renamed BuildBinaries to BuildFoundation for clarity * setting platform to win32 has downstream effects - surgically wrapping LKG imports instead * import MsUCRT x86 targets explicitly * removed unnecessary LKG targets overrides * Find custom.props in parent dir (#4946) * Update LkgToolset.props Fix build break - custom.props in parent directory * Update LkgToolset.props
…tatic_assert build errors on mismatch (#4933) * include STL/CRT libs/headers with LKG * add platform * opt into internal UCRT * opt into undocked settings loaded * publish binlogs on failure * use lower case platform for LKG toolset * treat Platform as local to allow override of x86 to win32 for LKG * define GUID_NULL, publish binlog on binary build failure * define GUID_NULL another way * collect binlogs for nuget restores * fix restore binlog name * nuget restore with platform for LKG compat, renamed BuildBinaries to BuildFoundation for clarity * setting platform to win32 has downstream effects - surgically wrapping LKG imports instead * import MsUCRT x86 targets explicitly * removed unnecessary LKG targets overrides
When PR pipeline build agents take a Visual Studio update, the STL/CRT headers can become out of sync with the LKG toolset, causing this build error:
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.42.34433\include\yvals_core.h(902,1): Error C2338: static_assert failed: 'error STL1001: Unexpected compiler version, expected MSVC 19.41 or newer.'
This PR:
Verified that all DLLs in transport package are still Hybrid CRT linked