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

Add ppc64le support #159

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

drchristensen
Copy link

Unable to use GitVersion application on Linux systems with ppc64le architecture. For example:

$ dotnet-gitversion /home/user/src/GitVersion
The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception.

Add support to build native ppc64le binaries along with other supported CPU architectures.

Signed-off-by: David Christensen <[email protected]>
@bording
Copy link
Member

bording commented Nov 4, 2024

I have questions about this change.

First, what sort of machine are you using that even has this sort of processor in it?

Second, where did you get a .NET distribution that works on it? Microsoft doesn't support or ship .NET for anything other than x64, arm32, and arm64.

@drchristensen
Copy link
Author

IBM, Microsoft and RedHat have announced support for .NET 7/8 on POWER, you can find out more about it on the IBM .NET blog. Microsoft supports installing .NET on Linux as described here. In my use case, I'm building a project on Fedora 40 in a VM hosted on a P9 PowerNV system. Installing the GitVersion tool is as simple as running dotnet tool install --global GitVersion.Tool.

@drchristensen
Copy link
Author

The blog post also mentions support for IBM s390x mainframes, though I don't think the build containers used actually had the appropriate s390 cross compilers.

@bording
Copy link
Member

bording commented Nov 21, 2024

Ok, so it's specifically Red Hat that is building a shipping .NET for that architecture.

Can you run dotnet --info and provide the output here? I want to confirm a few things (like what the RID actually shows up as) before merging this.

@bording
Copy link
Member

bording commented Nov 21, 2024

Also, it doesn't seem like we'd need the musl variation since RHEL uses glibc and not musl.

@@ -1,9 +1,10 @@
FROM bording/crossbuild
ARG ARCH='amd64'
ENV CROSS_TRIPLE=${ARCH}
ARG CC_ARCH='amd64'
Copy link
Member

Choose a reason for hiding this comment

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

It's not clear to me why you've introduced this second ARCH variable.

I'm using QEMU already for the ARM builds, so I would think we'd be able to do the same thing for this new architecture in the same way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants