libgit2 / libgit2sharp

Git + .NET = ❤
http://libgit2.github.com
MIT License
3.15k stars 887 forks source link

Fixed calling into native libgit2 on osx-arm64 #1955

Closed frindler closed 2 years ago

frindler commented 2 years ago

This fixes https://github.com/libgit2/libgit2sharp/issues/1951

The problem are the variadic arguments passed to git_libgit2_opts. On arm64 they need to be padded to start from the 9th argument. The solution is not particularly pretty, but this seems to be the best option at the moment).

See also for more on this issue: https://github.com/dotnet/runtime/issues/48752 https://github.com/dotnet/runtime/issues/48796

bording commented 2 years ago

@frindler Thanks for doing the research on this!

Unfortunately, GitHub does not yet offer any arm64 machines for CI, so there was no way to catch this problem with any of our tests.

I've read through the links you've provided, and the change you've made here does indeed look to be the best way to handle this since Microsoft hasn't actually fixed it yet. Seem like a major oversight on their part.

Can I get you to rebase your branch to the latest master? I just fixed up some unrelated test failures, so once you rebase, everything should be passing.

frindler commented 2 years ago

Done. All tests (except for some remote/SSL related issues) pass on my machine using the OSX arm64 .NET 6.0.201 SDK.

bording commented 2 years ago

LibGit2Sharp 0.27.0-preview-0182 includes this change.