Build fails with SQLITE_OMIT_WAL and SQLITE_MAX_MMAP_SIZE=0
(1) By anonymous on 2021-10-02 12:27:13 [link]
When building SQLite 3.36.0 with SQLITE_OMIT_WAL and SQLITE_MAX_MMAP_SIZE=0 on OS X (and probably other unix systems) the build fails with: Undefined symbols for architecture x86_64: "_unixFcntlExternalReader", referenced from: _unixFileControl in sqlite3-ede8e2.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [sqlite3] Error 1 The problem seems that unixFcntlExternalReader is omitted when SQLITE_OMIT_WAL. Though this method references to unixShmNode which is omitted with SQLITE_MAX_MMAP_SIZE=0.
(2) By anonymous on 2021-10-13 09:18:24 in reply to 1
I'm trying to compile Subversion with the latest Amalgamation and this problem is causing it to fail. I'd rather not remove SQLITE_OMIT_WAL from the configuration. How can I get an older SQLite that doesn't have the issue?
(3) By Richard Hipp (drh) on 2021-10-13 11:59:05 in reply to 2 [link]
> I'd rather not remove SQLITE_OMIT_WAL from the configuration. Why not? What harm is WAL mode causing you?
(4) By anonymous on 2021-10-15 15:44:21 in reply to 3 [link]
(The previous response wasn't from me. I'm the original author of this thread, probably trying to solve a different use case). I'm removing as much as possible functionality from SQLite and actually tried to define SQLITE_OMIT_DISKIO as well (there are several things which look like they would need major changes, though). I'm using SQLite as an in-memory data processor without any disk IO.