-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Ensure that platform is considered for LongPlatformName instead of PackagePlatform #11900
Conversation
Thank you for doing this, Karthik! |
Thank you for fixing this - we should get this in for 2.0.0 as well. @mikem8361 Does the resulting name for the DAC look sane to you? |
If you make this change you should do a full build with and without and diff the output. PackagePlatform/Platform have a complicated mix of interactions. In particular, make sure you didn't cause package Ids or folders to use amd64 instead of x64. To fix a similar issue I just switched to using Platform instead. 7c53fc2 That might be the right thing to do here. /cc @chcosta |
+1 to what Eric said. The change is small, but testing this and validating all package names are unchanged / binary output locations are identical will be the majority of work. It's really easy to break this and not discover it until a week or two later. I'm not opposed to this change, I'm just stating that spending an extra day testing will save lots of headaches down the road. |
Ok from diffing it looks like the only changes happen in the transport.Microsoft.NETCore.Runtime.CoreCLR packages, which is expected. In the unchanged version I see in the nuspec
And in the changed version I see
I've only looked at the Windows_NT output |
Updated this to be localized to just the area |
@@ -3,7 +3,7 @@ | |||
<PropertyGroup> | |||
<PackageTargetRuntime>$(MinOSForArch)-$(PackagePlatform)</PackageTargetRuntime> | |||
<LongNamePlatform>$(PackagePlatform)</LongNamePlatform> | |||
<LongNamePlatform Condition="'$(LongNamePlatform)'=='x64'">amd64</LongNamePlatform> | |||
<LongNamePlatform Condition="'$(Platform)'=='x64'">amd64</LongNamePlatform> |
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.
Just so I understand, when we build for x86 (Windows), $(Platform)
is x86
right?
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.
Seems like you should change both of these lines rather than just the amd64 one. Test on other archs to be sure.
LGTM (except for the CI failure) |
@mikem8361 @noahfalk PTAL. |
@karajas Does this change need to go into Preview2? |
LGTM. And yes this should go into Preview 2. Our windows debuggers look for the long names on the symbol servers. This is also a regression from 1.1. |
@dotnet-bot test OSX10.12 x64 Checked Build and Test please |
@ericstj Just to confirm this does not need to be applied to arm and arm64? |
I think it needs to be applied to those as well. Is there a reason you think it should not be? |
@gkhanna79 I was wondering if it was the earlier issue of having arm be labelled x86_arm and arm64 as amd64_arm |
For Windows arm, it should be x86_arm. For Windows arm64, it should be amd64_arm64. For Linux and OSX, we have no such cross targeting components yet. |
Thanks I will update it be as such. |
ea747a8
to
44c6219
Compare
PTAL. |
I think you need to be looking at the diff in package content not the diff in these targets files. That will also help you understand if you're changing things you're not intending. Please share the diff of nuspecs on all platforms. |
Note that there are two renamed DACs and two SOSs for both ARM and ARM64. The ones that are native for that arch, and the ones in the cross-targeting folder. |
Then everything is fine and we can go ahead and commit this PR. |
@mikem8361 @ericstj Can you please check that this is the intended diff? |
I don't think so. @mikem8361 please look at the explicit diffs for all the files. I'm pretty certain stuff is busted there. |
I’m not sure what is busted now. There are two sets of dlls:
sos_arm64_arm64_4.6.25331.00.dll mscordaccore_arm64_arm64_4.6.25331.00.dll
mscordaccore_amd64_arm64_4.6.25331.00.dll and sos_amd64_arm64_4.6.25331.00.dll
The first ones should run on a arm64 device and the second one should be cross plat and run on amd64.
|
@leculver can you check my understanding of the long naming (the previous post)? |
Sorry for the delay. @mikem8361 Your explanation of the naming is correct. We expect the arm64_arm64 to be built for the arm64 platform and run natively on those machines. We expect the AMD64_arm64 to be compiled for x64 machines (not arm machines) to debug arm64 issues. @ericstj Can you be more specific as to what looks busted to you? |
I was referring to the previous diffs that @karajas shared in #11900 (comment), which @mikem8361 was addressing when he said #11900 (comment). I agree that the most recent diff @karajas shared for ARM64 here looks better. These previous diffs: https://gist.github.com/karajas/a75968be6fe0fd271c0e7b0bc9c0dd69/revisions#diff-544ad00592cc55861e12be35f3b7552cR49 and https://gist.github.com/karajas/a75968be6fe0fd271c0e7b0bc9c0dd69/revisions#diff-544ad00592cc55861e12be35f3b7552cR61 for ARM are what appear busted as they don't match the pattern you've described. I suspect those are just out of date since @karajas now has a new commit since I made the comment. |
I will put up the full diff with the new changes for x86, x64, ARM and ARM64 shortly |
@dotnet-bot test Windows_NT x64 Debug Build and Test please |
Here are the diffs with the latest changes. x86 - https://gist.github.com/karajas/db5d316838089a8ed9aaf8b3e127f300/revisions PTAL. @ericstj @gkhanna79 @mikem8361 |
ANYCPU on x64 diff as well. |
Seems like ANYCPU is everywhere. |
The red on the left is before the change and the green is what changed after the change. |
You have ANYCPU in green at the very end of the change. PTAL. |
Ah I see what's happening the line you clicked on was in the initial revision when I added the file. When you click on a line in the older revision, it looks like it picks up the same line in the current revision so that's why I was confused. That green AnyCPU on the right is from creating the initial gist with the package output prior to the change. |
The important diffs are all on the runtime.win*.microsoft.runtime.coreclr.nuspec file, which is here x86 - https://gist.github.com/karajas/db5d316838089a8ed9aaf8b3e127f300/revisions#diff-e4c58bc4c3b8f2bb3c0dde2133eea29c |
Can I get sign off on this change? |
@mikem8361 Can you signoff on this if this looks good to you? |
Got an offline LGTM. |
LGTM |
… overriden
Microsoft.NETCore.Runtime.CoreCLR now has mscordaccore_amd64_amd64_4.6.25324.00.dll instead of mscordaccore_AnyCPU_AnyCPU_4.6.25324.00.dll.
@ellismg