Build fails with SQLITE_OMIT_WAL and SQLITE_MAX_MMAP_SIZE=0
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.
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?
I'd rather not remove SQLITE_OMIT_WAL from the configuration.
Why not? What harm is WAL mode causing you?
(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.