-
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
PowerPC and AIX support #10055
Comments
The largest amount of work is always in adding support for a new architecture to the JIT. We have JIT for arm, arm64, x86 and x64 architectures. There are currently no plans on adding new architectures support, but nothing prevents the community from starting such an effort. |
@janvorli, based on your experience, when aarch and aarch64 support were added, is there any rough checklist to support more architectures like ppc64le, mips64 etc. and generally RISC? There is also https://github.com/NETMF/netmf-interpreter by Microsoft, which has similar spectrum of support, perhaps convergence with that project will yield broader reach for CoreCLR. Not sure how feasible is the convergence with netmf, though. |
@kasper3 coreclr contains an interpreter too (disabled by default), but it hasn't been turned on or tested for a very long time. I just remember someone made coreclr compile without errors when the FEATURE_INTERPRETER is enabled and there were some attempts to use it by someone from the community. As for new architectures, a coarse checklist (in an arbitrary order) would be :
As for AIX, it is hard to tell how much surprises it would bring. I have no idea how much it differs from Linux. |
@kasper3 I wrote a post about the interpreter that you might find useful, see The .NET IL Interpreter. But as @janvorli mentioned, work was done to make it easier to enable (so you can ignore that part of the post) see dotnet/coreclr#11188 and dotnet/coreclr#11252 |
@janvorli, @mattwar, thanks, didn't knew about interpreter feature. For the basic interpreter to work in an antoconfig manner, we could probably integrate coreclr interpreter with the qemu assembly transpilation component https://github.com/qemu/qemu/tree/47d3b60858d90ac8a0cc3a72af7f95c96781125a/target, in order to run some code on non-supported architectures (slow version). Gradually, the full support can be added starting from |
I would love see a power on Linux bringup. AIX isn't worth the engineering cycles tho - see my thread on twitter. https://twitter.com/GeoffreyHuntley/status/979453657472053248?s=19 |
for the audience at home, if you want .NET on AIX or i, I maintain the Mono port for that - somewhat of a WIP, but it compiles all the way through and passes more tests than I expected |
a Powerpc port would be really great 👍 |
We also want to run our Core Banking Application on Power PC Processors PPC64LE. May I know from .net core team is this on your roadmap? When this will be possible? |
It's not on their roadmap @turabek
|
Is it not possible to use the JIT used in the .net of xbox? |
Hi @mattwarren
Thanks for your great blog The .NET IL Interpreter.
But when I migrated to the master dotnet/coreclr#24513 Interpreter seems not work:
No printf in the
As comment mentioned:
AltJIT just fall back to primary JIT, but not Interpreter?
And I found that AArch64 Remove unnecessary interpreter fallback dotnet/coreclr#20470 So is it able to enable Interpreter at master now? Thanks, |
I've not used the Interpreter since I wrote that post, so my memory is a bit hazy! But which (if any) environment variables have you set? See https://mattwarren.org/2017/03/30/The-.NET-IL-Interpreter/#Enabling%20the%20Interpreter and scroll down to the table of 'Host Configuration Knobs' for a bit more info. Or see https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/clr-configuration-knobs.md#interpreter-configuration-knobs. From what I remember, you need to at least set the |
Set:
HHH, perhaps because this dotnet/coreclr#11252 |
Another Upvote, but I want to speak very specifically; POWER Architecture would be huge for .NET for a number of reasons, including the existence of open, auditable platforms and the open-sourcing of the ISA and reference designs. But really, the security angle is where I see a big win. |
Do you also plan to support PPC 32 bits ? |
Upvote; applications that uses .NET is restricted to our x86 only and for their high demands on Performance and RAS we need the .NET core parts on ppc64le. |
One more Upvote! there is a lot of PPC64LE and PPC64 server around the world using just Java or PHP for the main systems.. the world need .net for PowerPC!!! @NattyNarwhal do a really good job on Mono Project... but, there is some diffs. from .net core |
upvote |
Any plans for AIX support? Lots of us are using AIX servers. |
Is there any plan to start implementing the JIT for ppc, ppc64 or ppc64el ? |
I also would like to run .NET Core on ppc64le. My workstation system runs Fedora with Linux. |
There remains no plan for Microsoft support of AIX, but community work is welcome - FreeBSD has made contributions in this way. |
Okay, Microsoft may not have plans to support AIX, but what about PowerPC ( ppc, ppc64 and ppc64le ) ? |
I know that the Mono project has a system to host sites made in ASP.Net and ASP.Net MVC, if I'm not mistaken this project is called XSP ... the last time I tested it on ppc64, an error occurred when I tried to open the site... |
Sorry. I thought you are asking about ppc64le tests. |
To avoid confusion ppc64 = big endian Please avoid using non-standard nomenclature |
Yeah, it was a bit irony "Please avoid using non-standard nomenclature" and then using the wrong nomenclature :-D |
You guys are terrible at this. It's ppc64el, mips64el, armel... |
Anyone want to edit Wikipedia? Update: our hero must update not Wikipedia only but IBM pages similar to this: https://www.ibm.com/docs/en/cloud-private/3.1.1?topic=requirements-supported-operating-systems-platforms |
Not terrible, but I'll give you that both are accepted. In the IBM Power world LE is the most common expression though (as in Little Endian and not Endian Little (?) But let's focus on the cool thing, .NET IS COMING TO POWER!! |
Ok.. but why is it impossible to port .NET to PPC32BE? It is so hard? |
I believe it is a problem of interests, IBM has already "killed" the Power64 B.E, the 32-bit version, IBM has buried it a long time ago and has even "decomposed".... |
But there are some different alive PPC BE platforms in the world. Not only IBM. I don't know the effort to implement the changes to see the big endian version alive but if someone points the main files to change we can give it a try. And even Mono is working on PPC32 |
@tappehl Could you expound on the last part of this post? Is there any efforts on the part of IBM to get .NET working on ppc64le? |
Yes @bkeys as you can see above, Sapana is involved in the project... It was ported to IBM Mainframe last year, and I did some magic behind the scenes when I heard Power was not involve in that project. Now there is another project going on :) |
@tappehl is there a loose timeline/broad estimate you think it will take until we have initial .NET support for POWER? I looked at the pull requests and it's really good news. |
I cannot tell, but for s390 it was released with the last version of .NET.. |
Some years ago NXP was still creating powerpc, but I don't know if they still make them and the 68k based coldfire, they indirectly bought a piece Motorola from the AIM: Apple IBM Motorola alliance, if u didn't know. |
I learned more, NXP stopped support (I like this Philips related company, but disappointing), meaning our hope lays with libre-soc and IBM. I do have to say, I like AIX support, but since macOS is already supported, only the arch has to be ported first. |
Please reach out to me at torbjorn.appehl@ibm.com or torbjorn@builtonpower.com |
Enablement for ppc64le is in the upstream .NET7 and .NET8 ( main ) branches -- this is for the mono runtime engine and not CoreCLR. Testing continues. CI/CD pipelines are being run on ppc64le machines too. |
That is great news! But mono has been available in the Fedora repositories for some time now with ppc64le architecture: |
The current work is to get the mono engine in .NET7 working on ppc64le. CoreCLR will be targeted after the current .NET7 enablement for ppc64le is complete. |
Now that IBM has released .net core 7, with support for ppc64le, how to install it on an Ubuntu or Debian server? |
We have to cross build tarball on Ubuntu 18.04/20.04 x86. I am working on blog for the same. I will link once it is published. |
What about AIX ? |
Where does it say that .NET has ppc64le support? |
https://www.itjungle.com/2022/11/09/ibm-and-microsoft-bring-net-to-power-after-all/ |
Differences between the previous available mono and the .NET7 based mono on ppc64le are explained by this post: https://www.linkedin.com/pulse/whats-difference-net-7-mono-paul-chapman/ |
Blog on how to cross compile .NET7 for ppc64le https://community.ibm.com/community/user/powerdeveloper/blogs/sapana-khemkar/2023/01/13/cross-build-dotnet7-on-x86-ibm-power |
Well, looks nice!! How complex would it be to make it compatible with ppc64? |
After some research, I checked that the .net core has no supported for PowerPC or AIX ... Are there plans to implement support for the Power architecture and the AIX operating system?
The text was updated successfully, but these errors were encountered: