Skip to content
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

Merged
merged 1 commit into from
Jul 24, 2021
Merged

Build support for s390x: installers and packages #53950

merged 1 commit into from
Jul 24, 2021

Conversation

uweigand
Copy link
Contributor

@uweigand uweigand commented Jun 9, 2021

  • 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.

@uweigand
Copy link
Contributor Author

@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.)

@ghost
Copy link

ghost commented Jul 14, 2021

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details
  • 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.

Author: uweigand
Assignees: -
Labels:

area-Infrastructure-coreclr

Milestone: -

@ericstj ericstj requested a review from hoyosjs July 14, 2021 16:38
@ericstj
Copy link
Member

ericstj commented Jul 14, 2021

@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>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mono uses the apphost?

Copy link
Contributor Author

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.

Copy link
Member

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

Copy link
Member

@agocke agocke left a 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.

@terrajobst terrajobst added the community-contribution Indicates that the PR has been added by a community member label Jul 19, 2021
* 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
@uweigand
Copy link
Contributor Author

@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.)

@ghost
Copy link

ghost commented Jul 22, 2021

Hello @agocke!

Because this pull request has the auto-merge label, I will be glad to assist with helping to merge this pull request once all check-in policies pass.

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 (@msftbot) and give me an instruction to get started! Learn more here.

@agocke agocke removed the auto-merge label Jul 22, 2021
@agocke agocke closed this Jul 22, 2021
@agocke agocke reopened this Jul 22, 2021
@agocke agocke closed this Jul 23, 2021
@agocke agocke reopened this Jul 23, 2021
@agocke agocke merged commit c2bd3ca into dotnet:main Jul 24, 2021
@uweigand uweigand deleted the s390x-build-installers branch July 24, 2021 16:06
@ghost ghost locked as resolved and limited conversation to collaborators Aug 23, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Infrastructure-coreclr community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants