Skip to content

NativeMethods. Version GLIBC_2.25' not found #2123

Open
@mgkcorty

Description

@mgkcorty

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

Activity

bording

bording commented on Aug 28, 2024

@bording
Member

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

mgkcorty commented on Aug 29, 2024

@mgkcorty
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

mgkcorty commented on Sep 8, 2024

@mgkcorty
Author

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @bording@mgkcorty

        Issue actions

          NativeMethods. Version GLIBC_2.25' not found · Issue #2123 · libgit2/libgit2sharp