-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 W Allan Edwards wrote: > I find it odd you have different expected behavior for the same code on each > different platform.
What specifically are you referring to there? > The windows version works great... when I move the "same" code over to the mono runtime (of the same version) on linux... it has this exception. The point you are missing is that the the provider speaks to a native code shared library. The provider code will behave identically but the shared library is native code and could have been compiled many different ways. Your underlying issue is solely because the Windows SQLite dll has compilation flags set such that the symbol is present and Linux such that it is not. > Between sqlite, mono, and the mono ado.net sqlite adapter group, you would > think that behavior for the same versioned libs would be the same across > Windows, Linux, and MacOS. This has nothing to do with behaviour. Your error message is due to a runtime linking error. The mono code is using GetProcAddress/dlsym trying to find a symbol in the native code DLL and failing on Linux. > Does the windows compilation of sqlite 3 (latest source include this entry > point?) > Does the linux compliation of sqlite 3 (latest source include this entry > point?) The SQLite *source code* includes the functionality. For the shared library to include the functionality (and symbol) compile time flags have to be set. http://www.sqlite.org/compile.html The page I originally pointed you at makes it quite clear - http://www.sqlite.org/c3ref/column_database_name.html > why does the same .NET code not work on Linux with no modification or > recompile? I am literally using the SAME managed library from the ADO.nET > group. The SQLite shared library is unmanaged code. It will have whatever functionality it was compiled with. The shared library is not cross platform because it talks to native operating system functionality. You cannot use the Windows shared library on MacOS or the MacOS one on Linux, or the Linux one on Windows etc. > So does the sqlite team have different entry point offerings for each > platform of the same sqlite database version? SQLite doesn't have "entry point offerings" whatever you think that means. The SQLite library has numerous functions, structures and defined constants in the C programming language as defined in the documentation at http://sqlite.org/c3ref/intro.html When producing the compiled library you can include and exclude parts of the API as defined in http://www.sqlite.org/compile.html Your mono adapter is assuming that sqlite3_column_database_name and friends are present in the shared library and gets the error you saw if not. The Windows DLL downloaded from sqlite.org does include it by default while other compilations don't by default. But whoever compiles SQLite can set it to whatever they want. Roger -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkmPXeYACgkQmOOfHg372QTt3gCfehn6afkcW1+lUbfSXi+wS39T ft8AoJIof7r8nTAoAU9SIDxAEVkhxDgP =xoEq -----END PGP SIGNATURE----- _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

