Skip to content

Updating SQLitePCLRaw.bundle_e_sqlite3 from 2.1.11 to 2.1.12 breaks glibc version on Linux-x64 #674

Description

@vittoft

Hi,
I've just upgraded SQLitePCLRaw.bundle_e_sqlite3 from 2.1.11 to 2.1.12 and when launching my .net10 linux-x64application I have the following exception:

System.TypeInitializationException: The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.DllNotFoundException: Unable to load shared library 'e_sqlite3' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: /home/app/myapp/e_sqlite3.so: cannot open shared object file: No such file or directory /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.33' not found (required by /home/app/myapp/libe_sqlite3.so) libe_sqlite3.so: cannot open shared object file: No such file or directory /home/app/myapp/e_sqlite3: cannot open shared object file: No such file or directory /home/app/myapp/libe_sqlite3: cannot open shared object file: No such file or directory at SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number() at SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number() at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number() at SQLitePCL.raw.SetProvider(ISQLite3Provider imp) at SQLitePCL.Batteries_V2.Init() at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args) at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr) --- End of inner exception stack trace ---

I am using a Debian machine:
# ldd --version ldd (Debian GLIBC 2.31-13+deb11u12) 2.31

It works fine with 2.1.11, I suppose that it is due to glibc version that was used to compile newer SQLite.
I have the same problem of glibc compatibility with v3, too.

Is there a way to have a glibc <= 2.31 version (at least for v2)? Or is this a requirement for newer SQLite?
My application is deployed on a offline machine, so it's somewhat harder to just update glibc.

Thank you for your time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions