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.