-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Build support for s390x: installers and packages #53950
Conversation
@akoeplinger @directhex @steveisok @leecow FYI - can you help get this reviewed? Thanks! (The one failing tests appears to be a timeout unrelated to this patch.) |
Tagging subscribers to this area: @hoyosjs Issue Details
With this patch, most components of "runtime" are now built and packaged on s390x just like on other platforms, even though we only support the Mono runtime. There are a few components missing that are really CoreCLR specific, e.g. the Composite bundle. Also the singlefilehost binary is currently only built with CoreCLR and is therefore omitted from the packages.
|
@hoyosjs @jkoritzinsky @agocke can one of you have a look as it looks like this is impacting how runtimes interact with coreclr & installer subsets? Do we need a new concept for this? |
@@ -2,7 +2,7 @@ | |||
<Sdk Name="Microsoft.DotNet.SharedFramework.Sdk" /> | |||
|
|||
<PropertyGroup> | |||
<SkipBuild Condition="'$(RuntimeFlavor)' == 'Mono'">true</SkipBuild> | |||
<SkipBuild Condition="'$(RuntimeFlavor)' != '$(PrimaryRuntimeFlavor)'">true</SkipBuild> |
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.
Mono uses the apphost?
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.
On s390x we currently do not support CoreCLR, so we only have the Mono runtime. We still would like to enable all .NET features (as far as technically possible), to make the resulting environment on s390x look as similar to the one on Linux on x64 as possible.
We currently cannot build the static "singlefilehost" image since its build process is closely tied to CoreCLR, but the dynamically linked "apphost" builds fine, even if it links to the Mono runtime. This is why this patch enables the apphost, but skips the singlefilehost.
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 see -- I didn't realize that the apphost could be used to launch the Mono runtime
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, although I'm not certain which components are needed/used by mono.
* Introduce "PrimaryRuntimeFlavor" concept, set to Mono for s390x * Enable installers, packages, and archives when building the PrimaryRuntimeFlavor, even when this is Mono instead of CoreCLR * Update default subsets in eng/Subsets.props to take PrimaryRuntimeFlavor into account * Skip packaging singlefilehost when not available (due to building with the Mono runtime flavor) * Only build the IL tools packages in coreclr-packages.proj when building with the Mono runtime flavor
@agocke thanks for the review! I hadn't noticed that another merge conflict had crept in in the meantime; I've now pushed a rebased patch. Can this now be merged? (I don't have write access myself.) |
Hello @agocke! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
Introduce "PrimaryRuntimeFlavor" concept, set to Mono for s390x
Enable installers, packages, and archives when building the
PrimaryRuntimeFlavor, even when this is Mono instead of CoreCLR
Update default subsets in eng/Subsets.props to take
PrimaryRuntimeFlavor into account
Skip packaging singlefilehost when not available (due to building
with the Mono runtime flavor)
Only build the IL tools packages in coreclr-packages.proj
when building with the Mono runtime flavor
With this patch, most components of "runtime" are now built and packaged on s390x just like on other platforms, even though we only support the Mono runtime. There are a few components missing that are really CoreCLR specific, e.g. the Composite bundle. Also the singlefilehost binary is currently only built with CoreCLR and is therefore omitted from the packages.