Runtime: Add support for the s390x architecture

Created on 27 Mar 2020  路  13Comments  路  Source: dotnet/runtime

As a team responsible for a self-developed integration platform implemented in asp.net core (currently 3.1) with the task of exposing IBM mainframe services, we have an interest to be able to run this platform as a linux container in the IBM zCX (zOS container extension) docker environment. But its a showstopper that there aren't any released linux images with .net (sdk and runtime) built for the s390x architecture used in IBM zCX. There are several other programming languages represented as linux docker containers for the s390x architecture, like python, java, ruby, golang, groovy, perl, just to mention some (see https://hub.docker.com/u/s390x/?page=1)). Is it possible to build .net core (sdk and runtime (asp.net core)) for the s390x architecture in a linux container? There exists a debian s390x docker image (https://hub.docker.com/r/s390x/debian).

arch-s390x area-VM-meta-mono port up-for-grabs

Most helpful comment

We're making progress...

$ ~/dotNET/dotnet HelloWorld.dll
Hello World!
$ ~/dotNET/dotnet --info
.NET SDK (reflecting any global.json):
 Version:   5.0.100-rc.2.20479.15
 Commit:    da7dfa8840

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         linux-s390x
 Base Path:   /home/neale/dotNET/sdk/6.0.0/

Host (useful for support):
  Version: 6.0.0-dev
  Commit:  8a061afef9

.NET SDKs installed:
  6.0.0 [/home/neale/dotNET/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 5.0.0-rc.2.20475.17 [/home/neale/dotNET/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.0-rc.2.20475.5 [/home/neale/dotNET/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.0-dev [/home/neale/dotNET/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

All 13 comments

@fradaham - Thanks for letting us know your interest in having support added for he s390x architecture. .NET Core does not currently support s390x therefore support would need to be added. Because of this, I am going to move this issue to the dotnet/core repo.

cc @tmds

I couldn't figure out the best area label to add to this issue. Please help me learn by adding exactly one area label.

https://github.com/mono/mono supports s390x . Now that Mono is being unified with .NET Core, the easiest way to make progress on s390x would be to enable s390x Mono in https://github.com/dotnet/runtime .

This could have general interest. I have described a scenario that were interesting to us at "Running a hybrid application in Docker and zCX on ZD&T" Part 1 and Part 2.

Adding a quick comment from https://github.com/dotnet/core/issues/4917 for visibility and clarification.

Not really need to run as a container as long as we have .NET 5 for s390x for a Linux distribution we can deploy in different ways.
Support for s390x (IBM Z / LinuxONE platform) is a great opportunity to take over mostly Java and Python development in s390x right now. Note that this platform is used for enterprise applications for the largest Financial Services organizations and a lot of FinTech, Blockchain, Data Science, and AI development.

I can make some introductions with the IBM open source community who can collaborate in this effort.

https://github.com/mono/mono supports s390x . Now that Mono is being unified with .NET Core, the easiest way to make progress on s390x would be to enable s390x Mono in https://github.com/dotnet/runtime .

Looks like this was done here https://github.com/mono/mono/pull/19611 by @nealef

Looks like it was not done since build is failing

image

Thanks @neman. Hi @nealef is this something you can fix?

Are you asking can dotnet/runtime be built for s390x? If so, I am working on it. If you are asking can mono be built from github.com/mono for s390x then yes.

So can we expect that .net 5 will have support for s390x anytime soon?

Depends on a number of factors:

  1. Getting time to do the work
  2. Learning what needs to be done other than the fixes to build scripts and CMakeLists.txt
  3. Having that work reviewed and accepted

We're making progress...

$ ~/dotNET/dotnet HelloWorld.dll
Hello World!
$ ~/dotNET/dotnet --info
.NET SDK (reflecting any global.json):
 Version:   5.0.100-rc.2.20479.15
 Commit:    da7dfa8840

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         linux-s390x
 Base Path:   /home/neale/dotNET/sdk/6.0.0/

Host (useful for support):
  Version: 6.0.0-dev
  Commit:  8a061afef9

.NET SDKs installed:
  6.0.0 [/home/neale/dotNET/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 5.0.0-rc.2.20475.17 [/home/neale/dotNET/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.0-rc.2.20475.5 [/home/neale/dotNET/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.0-dev [/home/neale/dotNET/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download
Was this page helpful?
0 / 5 - 0 ratings

Related issues

bencz picture bencz  路  3Comments

sahithreddyk picture sahithreddyk  路  3Comments

chunseoklee picture chunseoklee  路  3Comments

EgorBo picture EgorBo  路  3Comments

iCodeWebApps picture iCodeWebApps  路  3Comments