Creating an F# gtksharp "hello world" project. dotnet run fails with ``` Unhandled exception. System.TypeInitializationException: The type initializer for 'Gtk.Application' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'libdl.so.2' 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: Cannot open "/usr/local/dotnet/shared/Microsoft.NETCore.App/8.0.0/libdl.so.2" Cannot open "/mnt/xxx_source/Languages_ok/fsharptut/65_gtk/c_treestore/bin/Debug/net8.0/libdl.so.2" Shared object "libdl.so.2" not found, required by "fsharp_gtk" Cannot open "/usr/local/dotnet/shared/Microsoft.NETCore.App/8.0.0/liblibdl.so.2" Cannot open "/mnt/xxx_source/Languages_ok/fsharptut/65_gtk/c_treestore/bin/Debug/net8.0/liblibdl.so.2" Shared object "liblibdl.so.2" not found, required by "fsharp_gtk" Cannot open "/usr/local/dotnet/shared/Microsoft.NETCore.App/8.0.0/libdl.so.2.so" Cannot open "/mnt/xxx_source/Languages_ok/fsharptut/65_gtk/c_treestore/bin/Debug/net8.0/libdl.so.2.so" Shared object "libdl.so.2.so" not found, required by "fsharp_gtk" Cannot open "/usr/local/dotnet/shared/Microsoft.NETCore.App/8.0.0/liblibdl.so.2.so" Cannot open "/mnt/xxx_source/Languages_ok/fsharptut/65_gtk/c_treestore/bin/Debug/net8.0/liblibdl.so.2.so" Shared object "liblibdl.so.2.so" not found, required by "fsharp_gtk" at FuncLoader.Linux.dlopen(String path, Int32 flags) at FuncLoader.LoadLibrary(String libname) at GLibrary.TryGet(Library library, IntPtr& ret) at GLibrary.Load(Library library) at Gtk.Application..cctor() --- End of inner exception stack trace --- at Gtk.Application.Init() at Program.main(String[] a) in /mnt/xxx_source/Languages_ok/fsharptut/65_gtk/c_treestore/Program.fs:line 31 ```
Be aware that GtkSharp got "support for unknown Unix" in June last year: https://github.com/GtkSharp/GtkSharp/commit/0aebcd24d31e35117f1eaed30be76bb671946900 Without this it will try to open libdl.so.2 for Linux instead of libc for FreeBSD. Now I'm a noob in C# and I don't know anything about F#, but can it be that the F# gtksharp "hello world" project is using an old local copy of GtkSharp without the above commit? As a side note: building GtkSharp itself on FreeBSD didn't work for me: https://forums.freebsd.org/threads/c-building-gtksharp-with-lang-dotnet-and-cake.92266 I don't know if this is intrinsically relevant for this bug report, just for your information.
Does update to .NET 9 improve things regarding this bug?