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

Reconsider .Net 7 build environment to support mainstream Arm64 distros #76195

Closed
AdamTylerLynch opened this issue Sep 26, 2022 · 5 comments
Closed

Comments

@AdamTylerLynch
Copy link

Advocating for the .NET Foundation to support mainstream Arm64 distributions and compiling with glibc 2.26 instead of glibc 2.27 for .Net 7.

.Net, an open source and cross-platform developer platform, should properly support the major cloud providers, including AWS. .Net developers have been able to run .Net applications on AWS since the origins of EC2. To not support .Net 7 on AWS is removing the ability of the development community to have choice. AWS first launched Arm64 cloud instances in November of 2018.

The .NET Foundation is an independent organization to foster open development and collaboration around the .NET ecosystem.

In the thread #75622 it was stated that Ubuntu 18 was chosen as "Ubuntu 18 is the oldest mainstream supported distribution that works on Arm64".

Amazon Linux 2 is an LTS distribution leveraged heavily across AWS and in managed services such as AWS Lambda. Amazon Linux 2 LTS will be maintained until June 30, 2023. Amazon Linux 2 ships with kernel 4.1.4 and glibc 2.26.

Asking for community discussion to support Amazon Linux 2, as it does meet the minimum kernel requirements and has broad adoption in the development community.

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Sep 26, 2022
@ghost
Copy link

ghost commented Sep 26, 2022

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

Issue Details

Advocating for the .NET Foundation to support mainstream Arm64 distributions and compiling with glibc 2.26 instead of glibc 2.27 for .Net 7.

.Net, an open source and cross-platform developer platform, should properly support the major cloud providers, including AWS. .Net developers have been able to run .Net applications on AWS since the origins of EC2. To not support .Net 7 on AWS is removing the ability of the development community to have choice. AWS first launched Arm64 cloud instances in November of 2018.

The .NET Foundation is an independent organization to foster open development and collaboration around the .NET ecosystem.

In the thread #75622 it was stated that Ubuntu 18 was chosen as "Ubuntu 18 is the oldest mainstream supported distribution that works on Arm64".

Amazon Linux 2 is an LTS distribution leveraged heavily across AWS and in managed services such as AWS Lambda. Amazon Linux 2 LTS will be maintained until June 30, 2023. Amazon Linux 2 ships with kernel 4.1.4 and glibc 2.26.

Asking for community discussion to support Amazon Linux 2, as it does meet the minimum kernel requirements and has broad adoption in the development community.

Author: AdamTylerLynch
Assignees: -
Labels:

area-Meta

Milestone: -

@isaacrlevin
Copy link

@richlander can you get this routed?

@slang25
Copy link
Contributor

slang25 commented Sep 27, 2022

I've been doing some research into this, and I'm not sure there is a suitable mainstream linux distro for the .NET team to compile against that would solve this immediate issue, unless you have something in mind @AdamTylerLynch

Using the distrowatch distro info tables, all mainstream linux distros that are based on linux kernel 4.14 or higher all have 2.27 of glibc or higher. This includes Fedora which Amazon Linux 2 is based on.

I would suggest AWS re-evaluate the option of providing an update of AL2 with a newer version of glibc as requested here, or pressing on with the AL2022 rollout.

Another option (for the Lambda dotnet runtime) is to offer STS versions of .NET Lambdas, and to compile the runtime on AL2.

(Disclaimer: I'm an AWS customer that wants this, but also a Microsoft MVP, so have allegences on both sides, if that matters to anyone 😄 )

@richlander
Copy link
Member

We already have a conversation going on #75622, as you note. That’s where we should continue the technical conversation. I’ve also posted there.

We’re very late in the .NET 7 release and don’t want to take what is a significant build system change. In fact, we don’t have a straightforward plan to achieving that, for the reasons that @slang25 states. There is more in the other issue on that. We recommend that Amazon guide .NET users to target .NET 6 if they want to run on Arm64 machines within the AWS environment. For folks that want to use .NET 7, the x64 build should work fine on Amazon Linux.

The .NET Foundation doesn’t define project plans or technical details for member projects. Also, the choices we are making are pretty reasonable. Ubuntu 18.04 is already 4+ years old. I also want to note that we documented our minimum glibc versions some months ago, for both x64 and Arm64. We’ve very much tried to be a good steward for the community by offering accurate and timely release notes that are published in a central location.

It is indeed unfortunate that there is this low-level incompatibility and that it was discovered late in our release. Let’s work together on a better solution for .NET 8 so that we won’t run into this challenge again. I’ve got a basic proposal for that at #75622.

@richlander
Copy link
Member

We will use #69361 for further discussion on this topic.

@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Oct 3, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Nov 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants