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

NativeMethods. Version GLIBC_2.25' not found #2123

Open
mgkcorty opened this issue Aug 28, 2024 · 3 comments
Open

NativeMethods. Version GLIBC_2.25' not found #2123

mgkcorty opened this issue Aug 28, 2024 · 3 comments

Comments

@mgkcorty
Copy link

mgkcorty commented Aug 28, 2024

Hi!

I test my LibGit2Sharp application on old Linux platform and stuck with error, after some research i execute ldd command inside terminal:

ldd libgit2-a418d9d.so

Output:
version GLIBC_2.25' not found (required by /usr/lib/versioncontrol/libgit2-a418d9d.so)

It seems that this is the real cause of the load DLL error.

How can I embed this dependency directly into the application so that it doesn't try to look for it in the system?
Currently, GLIBC_2.24 is installed on the machine. Updating GLIBC to a newer version, like 2.25, is not possible due to company policies.

Reproduction steps

Start application and execute "pull" command through LibGit2Sharp.

Expected behavior

Execute of "pull" command successfully finished.

Actual behavior

Error on application "Pull" command:
The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception.
InnerException = {"Unable to load DLL 'git2-a418d9d' or one of its dependencies: }

Version of LibGit2Sharp (release number or SHA1)

0.30.0

Operating system(s) tested; .NET runtime tested

Astra Linux 1.6

Screenshot 2024-08-28 at 2 39 41 PM
@bording
Copy link
Member

bording commented Aug 28, 2024

Unfortunately, I'm not aware of any way to internalize the glibc dependency. It's pretty much the foundational dependency.

When building the native binaries for LibGit2Sharp, I'm limited by what Linux distros I have available via containers to pick which one I use to build them. That is what is determining what version of glibc is required.

When looking for a which Linux distros and versions that LibGitS2Sharp will work with, you'll want to stick with the official Microsoft Supported OS versions.

I've tried to ensure that the native binaries will work with all of the currently supported versions, and have a pretty comprehensive test matrix that verifies that.

@mgkcorty
Copy link
Author

@bording Thank you for your response; I understand what our problem is.

Still, if we try to tackle this issue, what would you recommend in our case? Our machine is running Astra Linux 1.6 with "GLIBC_2.24" installed.

It seems that older versions of LibGit2Sharp might work, but we would prefer not to downgrade.

Should we consider creating our own custom build of LibGit2Sharp (possibly needing to rebuild LibGit2Sharp.NativeBinaries and libGit2 using GLIBC_2.24)? What are the chances of success?

Also, what would happen if, instead of creating custom builds of libGit2, we try to point it to a GLIBC_2.25 version that we place alongside it?

@mgkcorty
Copy link
Author

mgkcorty commented Sep 8, 2024

The issue is relevant; if anyone has encountered something similar, please share some ideas.

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

No branches or pull requests

3 participants
@bording @mgkcorty and others