Open ComFreek opened 6 years ago
Follow-up: I got a cross-compilation from Ubuntu to Windows working by manually defining all missing functions (i.e. copy-pasting from the SQLite source until all references were saturated):
src/runtime/c/sg/sg.c
: https://github.com/ComFreek/reproducible-gf-runtime/blob/7f615048e86d12488a4bcdb12c8b123fd017c638/build-win.sh#L34Still, I hope this issue gets fixed since my hacky approach probably introduced a handful of bugs and logical inconsistencies in addition to those already present in the outdated SQLite source contained in this repo.
Right now, the module src/runtime/c/sg includes a custom version (namely sqlite3Btree.{c,h}) of an outdated snapshot of SQLite's source. These files mention functions such as
sqlite3StrICmp
which are nowhere defined and are thus leading toundefined reference
errors; at least when building for Windows which does not allow unknown references in shared libraries afaik. See also https://groups.google.com/forum/#!topic/gf-dev/BkYwEl0SE00 where the exact issued build instructions can be found.I tried replacing sqlite3Btree.{c,h} by the most recent SQLite3 amalgamation files, however, the internal API of sqlite3Btree changed. For example, the old
sqlite3BtreeInsert
's function signature contained in this repository looks likehttps://github.com/GrammaticalFramework/GF/blob/6cf80c07691354a2e716914839c1eb8cdeb3c3a7/src/runtime/c/sg/sqlite3Btree.h#L601-L603
but the current one (as found in the amalgamation
sqlite3.c
) looks likeAs SQLITE_PRIVATE also indicates, the Btree API was never meant to be stable and publicly accessible.