-
Notifications
You must be signed in to change notification settings - Fork 382
Consume cDac package and other cleanup #5482
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
base: main
Are you sure you want to change the base?
Conversation
d383025
to
a14c784
Compare
@hoyosjs I'll still except and apply any feedback you have for this PR. |
I can't see the failure details anymore. How do other outside dev's figure out the failure details? |
Create a InstallNativePackages.proj that downloads the native diasymreader and cdac packages Add InstallNativePackages to native-prereqs.proj Move the native binary copies out of the build.sh/build-native.cmd scripts to the appropriate managed project Move the rest of the binary copying from the cmake files to the managed projects Switch the Windows native builds to use ninja. Add the -msbuild/-ninja build-native.cmd options.
a14c784
to
95e84fc
Compare
@@ -5,6 +5,9 @@ | |||
cmake_minimum_required(VERSION 3.15) | |||
|
|||
cmake_policy(SET CMP0042 NEW) # MACOSX_RPATH is enabled by default. | |||
if(CLR_CMAKE_HOST_WIN32) | |||
cmake_policy(SET CMP0177 NEW) # install() paths are normalized |
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.
nit: Any reason no to normalize everywhere
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 just to stop the warning on Windows. It is fine on other build platforms
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.
I've seen it in newer linux versions of the containers.
fdee73e
to
42d80d8
Compare
<PropertyGroup Condition="'$(TargetRid)' == ''"> | ||
<TargetRidOS>$(TargetOS)</TargetRidOS> | ||
<TargetRidOS Condition="'$(TargetOS)' == 'Windows_NT'">win</TargetRidOS> | ||
<TargetRid>$(TargetRidOS)-$(TargetArch)</TargetRid> |
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.
Won't this give us linux-x64 on musl? I remember mike having to use this for a case, but not sure if it's doing what's expected.
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 won't apparently break obviously since it gets funneled down from buildnative. This does mean something like dotnet build <project>
won't work in linux-musl
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.
TargetRid is set by the build native script so yes dotnet build <project>
doesn't work. This does assume everything is built with our build.sh/build.ps1 scripts.
eng/pipelines/build.yml
Outdated
@@ -133,6 +133,9 @@ jobs: | |||
- _TestArgs: '-test' | |||
- _Cross: '' | |||
|
|||
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}: | |||
- _buildLog: '-binaryLog' |
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.
Let's just inline this to the call after CI unconditionally. It's arguably a bug in arcade (win always produces unless we exclude, and linux only if you include)
Looking at the official build - we are not carrying the cDAC for musl. Also, this increases install size from ~21mb to ~84mb. Each linux cDAC is 12mb. Is this expected? |
There's also none for win-x86, linux-arm
So we are still missing about 50mb of payload, effectively 6x of what was there. |
Also - we probably also want these in the SOS transport packages. Like sos.installhelpers |
It wasn't ready back when this PR was created. They are now and dotnet/runtime#117321 will fix that. |
…l with a PackageWithCDac property
Correct me if I'm wrong, but as long as it's bundled with SOS, it should be ok. |
you'll need it for some payloads (like windbg) and I didn't see it there. |
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.
Looks good at code level. Haven't checked the packages produced.
@@ -2,21 +2,20 @@ | |||
<!-- | |||
*MicrosoftDotNetCdacTransportVersion is from Versions.props. This is how we integrate the cDAC transport packs into our builds | |||
--> | |||
<PropertyGroup> | |||
<_cdacPackageVersion Condition="'$(TargetRid)' == 'win-x64'">$(runtimewinx64MicrosoftDotNetCdacTransportVersion)</_cdacPackageVersion> |
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.
silly nit - do we ever foresee them being versioned separately? If not - pick one. It'd be best if we had the IL only one, but we don't yet so let's leave this for cleanup.
Create a InstallNativePackages.proj that downloads the native diasymreader and cdac packages
Add InstallNativePackages to native-prereqs.proj
Move the native binary copies out of the build.sh/build-native.cmd scripts to the appropriate managed project
Move the rest of the binary copying from the cmake files to the managed projects
Switch the Windows native builds to use ninja. Add the -msbuild/-ninja build-native.cmd options.