libgit2 / libgit2/libgit2sharp
TypeInitializationException on M1 chip
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 3.5k
- Forks
- 925
- PR merge metrics
- No merged PRs in 30d
Description
Reproduction steps
I had a bug report on my project about this.
this is the code that's failing on an M1 chip.
public static void GitSetup(string solutionDirectory)
{
GitBuilder.CreateGitIgnore(solutionDirectory);
Repository.Init(solutionDirectory);
var repo = new Repository(solutionDirectory);
string[] allFiles = Directory.GetFiles(solutionDirectory, "*.*", SearchOption.AllDirectories);
Commands.Stage(repo, allFiles);
var author = new Signature("Craftsman", "craftsman", DateTimeOffset.Now);
repo.Commit("Initial Commit", author, author);
}
Expected behavior
I should have a new repo created and an initial commit made. This works fine on my intel chip.
Actual behavior
This is the exception that gets thrown
TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an
exception.
In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment
variable: dlopen(libgit2-106a5f2, 0x0001): tried: 'libgit2-106a5f2' (no such file),
'/usr/local/lib/libgit2-106a5f2' (no such file), '/usr/lib/libgit2-106a5f2' (no such file),
'/Users/me/Desktop/code/csharp/libgit2-106a5f2' (no such file),
'/usr/local/lib/libgit2-106a5f2' (no such file), '/usr/lib/libgit2-106a5f2' (no such file)
at git_libgit2_init()
at InitializeNativeLibrary()
at cctor()
at git_repository_init_ext(git_repository*& repository, FilePath path, GitRepositoryInitOptions options)
at git_repository_init_ext(FilePath workdirPath, FilePath gitdirPath, Boolean isBare)
at Init(String path, Boolean isBare)
at Init(String path)
at GitSetup(String solutionDirectory) in Utilities.cs:393
at CreateNewDomainProject(String domainDirectory, IFileSystem fileSystem, DomainProject domainProject)
in NewDomainProjectCommand.cs:115
at Run(String buildSolutionDirectory, IFileSystem fileSystem) in NewExampleCommand.cs:41
Version of LibGit2Sharp (release number or SHA1)
Release: 0.26.2
Operating system(s) tested; .NET runtime tested
OS + .NET version
.NET SDK (reflecting any global.json):
Version: 6.0.101
Commit: ef49f6213a
Runtime Environment:
OS Name: Mac OS X
OS Version: 12.1
OS Platform: Darwin
RID: osx.12-arm64
Base Path: /usr/local/share/dotnet/sdk/6.0.101/
Host (useful for support):
Version: 6.0.1
Commit: 3a25a7f1cc
.NET SDKs installed:
6.0.101 [/usr/local/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download
git version
❯ git --version
git version 2.34.1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure on the reported macOS 12.1 arm64 environment using GitSetup in Utilities.cs, then inspect LibGit2Sharp.Core.NativeMethods and the call path through NewDomainProjectCommand.cs and NewExampleCommand.cs. Done means Repository.Init and the initial commit complete successfully on an M1 chip without the TypeInitializationException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100