-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Fix non-portable coreclr arm64 build #63121
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
Fix non-portable coreclr arm64 build #63121
Conversation
Tagging subscribers to this area: @hoyosjs Issue DetailsWithout this change arm64 coreclr build for tizen breaks with:
Build command: ROOTFS_DIR=`pwd`/.tools/rootfs/arm64 ./build.sh --portablebuild false --cross --clang10 --arch arm64 --runtimeConfiguration Release --librariesConfiguration Release --subset clr+libs.native /p:EnableSourceLink=false This is related to #62563 and #63035. cc @alpencolt
|
@MichalStrehovsky could you, please, take a look? |
@gbalykov, if this project has same packaging plan as crossgen2 (i.e. only portable platform packages are produced), then I think a better / scalable solution is to replace these lines: runtime/src/coreclr/tools/aot/ILCompiler/ILCompiler.csproj Lines 24 to 30 in 32700f0
with a single: <RuntimeIdentifier>$(Crossgen2PackageRID)</RuntimeIdentifier> and keep it enabled on all 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.
This looks good. If @am11's suggestion works for you, that one also looks good.
0a3ba44
to
656540a
Compare
I've updated this PR to @am11 solution, I think it's a better one, but I've also renamed |
SourceBuild's failure is related, others are networking issues. This means it's not on the same packaging plan as crossgen2. We can try using |
656540a
to
adc0270
Compare
@am11 approach with |
Assuming it works with both armel and arm64 Tizen builds, looks good, thanks! --- Directory.Build.props
+++ Directory.Build.props
- <!-- There are no non-portable builds for Ilasm/Ildasm -->
- <MicrosoftNetCoreIlasmPackageRuntimeId Condition="'$(PortableBuild)' != 'true' and '$(_portableOS)' == 'linux'">linux-$(_hostArch)</MicrosoftNetCoreIlasmPackageRuntimeId>
- <MicrosoftNetCoreIlasmPackageRuntimeId Condition="'$(MicrosoftNetCoreIlasmPackageRuntimeId)' == ''">$(_toolRuntimeRID)</MicrosoftNetCoreIlasmPackageRuntimeId>
+ <!-- There are no non-portable builds for Ilasm, Ildasm, ILC etc. -->
+ <ToolsRID Condition="'$(PortableBuild)' != 'true' and '$(_portableOS)' == 'linux'">linux-$(_hostArch)</ToolsRID>
+ <ToolsRID Condition="'$(ToolsRID)' == ''">$(_toolRuntimeRID)</ToolsRID>
+ <MicrosoftNetCoreIlasmPackageRuntimeId Condition="'$(MicrosoftNetCoreIlasmPackageRuntimeId)' == ''">$(ToolsRID)</MicrosoftNetCoreIlasmPackageRuntimeId> @gbalykov, (not related to this PR but) one interesting thing I noticed from 63122 in your build steps is that in case of libs/libs.tests, you don't pass Line 151 in ae2e360
|
@am11 thanks for Regarding portable build of libs. There were build problems with non-portable build of libs for tizen, which I first met with .net 5 (if I remember correctly). This is related to the fact that we do not ship tizen nuget packages. So, dotnet restore failed. Now I do not see any problems when libs are also built with |
adc0270
to
1662704
Compare
Directory.Build.props
Outdated
<MicrosoftNetCoreIlasmPackageRuntimeId Condition="'$(MicrosoftNetCoreIlasmPackageRuntimeId)' == ''">$(_toolRuntimeRID)</MicrosoftNetCoreIlasmPackageRuntimeId> | ||
<!-- There are no non-portable builds for Ilasm, Ildasm, ILC etc. --> | ||
<ToolsRID Condition="'$(PortableBuild)' != 'true' and '$(_portableOS)' == 'linux'">linux-$(_hostArch)</ToolsRID> | ||
<ToolsRID Condition="'$(ToolsPackageRID)' == ''">$(_toolRuntimeRID)</ToolsRID> |
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.
While you are at it, could you please rename the (private) property _toolRuntimeRID
-> _toolsRID
as well? It is only defined and used in this file. (word "runtime" is redundant)
1662704
to
c31c20b
Compare
@am11 I've updated PR, could you, please, take a look? |
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, Thank you!
Linux failure is #61359 and OSX timeout is unrelated as well.
Directory.Build.props
Outdated
<!-- There are no non-portable builds for Ilasm, Ildasm, ILC etc. --> | ||
<ToolsRID Condition="'$(PortableBuild)' != 'true' and '$(_portableOS)' == 'linux'">linux-$(_hostArch)</ToolsRID> | ||
<ToolsRID Condition="'$(ToolsRID)' == ''">$(_toolsRID)</ToolsRID> | ||
<MicrosoftNetCoreIlasmPackageRuntimeId Condition="'$(MicrosoftNetCoreIlasmPackageRuntimeId)' == ''">$(ToolsRID)</MicrosoftNetCoreIlasmPackageRuntimeId> |
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.
<MicrosoftNetCoreIlasmPackageRuntimeId Condition="'$(MicrosoftNetCoreIlasmPackageRuntimeId)' == ''">$(ToolsRID)</MicrosoftNetCoreIlasmPackageRuntimeId> | |
<MicrosoftNetCoreIlasmPackageRuntimeId>$(ToolsRID)</MicrosoftNetCoreIlasmPackageRuntimeId> |
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.
Done, thanks
c31c20b
to
620fe36
Compare
Thanks! |
Without this change arm64 coreclr build for tizen breaks with:
Build command:
This is related to #62563 and #63035.
cc @alpencolt