stephan [Mon, 24 Feb 2025 18:45:30 +0000 (18:45 +0000)]
autoconf/auto.def: remove a define which made superfluous by [b8bf966628c0]. Add a check/status message for whether to statically link the library into the CLI shell.
stephan [Mon, 24 Feb 2025 18:14:27 +0000 (18:14 +0000)]
configure: in autoconf build if both --disable-shared and --disable-static-shell are used together, ignore the former and emit a notice to that effect.
stephan [Mon, 24 Feb 2025 12:19:06 +0000 (12:19 +0000)]
Configure doc tweaks. Move the package version/build dir output so that it does not appear at the start of --help text, but otherwise still appears before the first output from low-level config initialization.
stephan [Mon, 24 Feb 2025 11:21:32 +0000 (11:21 +0000)]
Further consolidation of auto.def and autoconf/auto.def. Note in configure --help that --disable-largefile is a legacy option which has no effect on the library but may influence the generated sqlite_cfg.h.
stephan [Mon, 24 Feb 2025 07:06:36 +0000 (07:06 +0000)]
Configure-internal doc tweaks. Fix the distclean rules for libsqlite3.dll.a on msys/cygwin/mingw, broken when the DLL basename was changed for those platforms.
stephan [Mon, 24 Feb 2025 04:47:34 +0000 (04:47 +0000)]
Update jimsh0.c from upstream autosetup to address [https://github.com/msteveb/autosetup/issues/75|autosetup ticket #75], triggered by this build in the Gentoo project.
stephan [Sun, 23 Feb 2025 17:55:41 +0000 (17:55 +0000)]
Add (disabled) infrastructure for disabling use of the rpath linker flag. This is a proactive precautionary measure because how the rpath is used does not match up with what the unix-on-windows environments do with their DLLs.
stephan [Sat, 22 Feb 2025 16:31:16 +0000 (16:31 +0000)]
On unix-on-windows platforms, if either of --out-implib or --dll-basename are not provided, auto-enable them. Add the 'none' special value to those flags to specifically disable the environment-specific handling of those flags.
stephan [Fri, 21 Feb 2025 23:43:10 +0000 (23:43 +0000)]
Rename configure-defined ENABLE_SHARED/STATIC makefile vars to ENABLE_LIB_... so that they're consistent between the canonical and autoconf builds (baby steps towards further configure code consolidation).
stephan [Fri, 21 Feb 2025 21:58:32 +0000 (21:58 +0000)]
Add --dll-basename flag to give clients control over the DLL's base name. Split the DLL installation makefile rules into digestible, platform-specific chunks. On Windows-side Unix-like environments, install the DLL into the bin dir. Requires testing and feedback from those platforms' package maintainers to confirm it follows the expectated conventions.
stephan [Fri, 21 Feb 2025 20:28:44 +0000 (20:28 +0000)]
Extend --out-implib to optionally specify the import lib's name. Add as-yet-unused internals for specifying the DLL's base name (which differs across the Windows-side Unix-esque environments).
drh [Fri, 21 Feb 2025 17:03:22 +0000 (17:03 +0000)]
Detect when a UNIQUE or PRIMARY KEY on a WITHOUT ROWID table would need
to use more than SQLITE_LIMIT_COLUMN columns and raise an error.
Also include some unrelated compiler warning fixes.
stephan [Fri, 21 Feb 2025 03:19:21 +0000 (03:19 +0000)]
configure: in several places where support for -Wl,... linker flags are checked, ensure that the check invokes the linker (not just the compiler) to avoid false positives. This allows us to remove the AIX-specific handling and --disable-rpath bits added in [a15e0f680], as well as make several similar checks more robust.
stephan [Thu, 20 Feb 2025 17:14:40 +0000 (17:14 +0000)]
configure: automatically fail the check for rpath on AIX systems and provide a --disable-rpath flag as a fallback for use on platforms which pass the configure-time rpath check but then fail at link-time. Based on discussion in [forum:ae5bd8a84b|forum thread ae5bd8a84b].
stephan [Thu, 20 Feb 2025 16:45:45 +0000 (16:45 +0000)]
Fix autoconf bundle to honor the --disable-static and --disable-shared flags, as reported in [forum:ae5bd8a84b|forum post ae5bd8a84b]. Problem introduced in 3.49.0.
stephan [Thu, 20 Feb 2025 04:45:02 +0000 (04:45 +0000)]
wasm makefile docs: make explicit that the node.js-for-node.js builds (as opposed to the node.js-for-browser builds) are both untested and unsupported.
stephan [Thu, 20 Feb 2025 04:14:26 +0000 (04:14 +0000)]
Add the pause/unpause capability to the opfs-sahpool VFS, as discussed in [forum:fe8cdb8431c|forum thread fe8cdb8431c]. Summary: this gives clients a way to eke some degree of multi-page/tab/Worker concurrency out of this VFS but requires that coordination to be implemented client-side, e.g. via a SharedWorker or WebLocks.
stephan [Thu, 20 Feb 2025 03:27:47 +0000 (03:27 +0000)]
configure: when running proj-check-function-in-lib, strip -Werror from CFLAGS for the duration of the test. This enables CFLAGS='-Wall -Werror' and the like to be passed to configure without breaking these configure-time checks.
stephan [Wed, 19 Feb 2025 13:02:23 +0000 (13:02 +0000)]
Slight tweak to the CLI shell help output to help convey that it can accept multiple SQL arguments, as suggested in [forum:20e617feee|forum post 20e617feee].
drh [Mon, 17 Feb 2025 17:33:14 +0000 (17:33 +0000)]
Code changes that make it easier to prove that no 32-bit integer overflows
happen during memory allocation. No problems fixed; this change is just
to make future maintenance easier.
stephan [Mon, 17 Feb 2025 16:04:21 +0000 (16:04 +0000)]
Replace TEXE (legacy name) with T.exe (3.48+ name) in two places in makefiles. This fixes distclean of jimsh.exe in the canonical build in non-native Windows environments.
drh [Mon, 17 Feb 2025 14:16:49 +0000 (14:16 +0000)]
Harden the SQLITE_DBCONFIG_LOOKASIDE interface against misuse, such as
described in [forum:/forumpost/48f365daec|forum post 48f365daec]. Enhancements
to the SQLITE_DBCONFIG_LOOKASIDE documentation. Test cases in TH3.
stephan [Sun, 16 Feb 2025 18:14:05 +0000 (18:14 +0000)]
Re-add the --disable-static-shell configure feature to the autoconf bundle. It got lost in the autoconf-to-autosetup port, as reported in [forum:cc219ee7044|forum post cc219ee7044].
stephan [Sat, 15 Feb 2025 16:12:28 +0000 (16:12 +0000)]
DLL installation rules no longer create versioned symlinks on platforms where the DLL extension is '.dll' (cygwin, msys2, etc.), as suggested in [forum:28bb79638844c328|forum post 28bb79638844c328].
stephan [Fri, 14 Feb 2025 17:21:05 +0000 (17:21 +0000)]
Work around a autosetup --help bug which only(?) triggers on tcl 8.6, introduced by [9978c87139b7b042] and reported upstream as [https://github.com/msteveb/autosetup/issues/73|ticket #73]. Summary: calling 'options' from a proc, instead of the global scope, triggers an error about an invalid use of 'break'.
stephan [Fri, 14 Feb 2025 16:42:37 +0000 (16:42 +0000)]
ICU config support: add more details to error messages and correct a typo which would cause a configure crash if --with-icu-config=X refered to a non-executable X.
drh [Fri, 14 Feb 2025 10:28:28 +0000 (10:28 +0000)]
Fix test cases added for [d7b90d92ffbfc61f] so that they also work when
compiling with ICU support.
[forum:/forumpost/2ca8a09a7e|Forum post 2ca8a09a7e]
drh [Tue, 11 Feb 2025 19:40:19 +0000 (19:40 +0000)]
Omit the src/ctime.c source file, since it is automatically generated by a TCL
script. Instead, add rules to the various makefiles to generate ctime.c on
demand.
stephan [Tue, 11 Feb 2025 17:10:10 +0000 (17:10 +0000)]
Move the configure flags definition and handling into autosetup/sqlite-config.tcl to avoid duplication between auto.def and autoconf/auto.def while still giving us a way to filter the canonical-tree-only flags out of the autoconf build.
stephan [Tue, 11 Feb 2025 13:13:46 +0000 (13:13 +0000)]
Make the --out-implib support ([6092b0b86bf93a3d]) specifically opt-in because the feature check for it passes on some platforms where it is not recognized at link-time.
stephan [Tue, 11 Feb 2025 13:00:40 +0000 (13:00 +0000)]
Adapt [https://fossil-scm.org/home/info/3bff7b92d6d|Fossil SCM patch 3bff7b92d6d], applying -lrt for platforms which need it for one of {fdatasync, nanosleep}.
stephan [Mon, 10 Feb 2025 15:58:22 +0000 (15:58 +0000)]
Add jimsh.exe and jimsh0.exe to the clean rules in Makefile.msc so that stale builds of those files from msys2 and friends do not cause mysterious build errors.
stephan [Mon, 10 Feb 2025 15:01:14 +0000 (15:01 +0000)]
configure: when dlopen() is not found, only fail fatally if --enable-loadable-module is explicitly provided, else warn instead. Based on discussion around [forum:2efe9c33bd9021ca|forum post 2efe9c33bd9021ca]. Update proj-indented-notice to behave like its docs say it should when the -error flag is used.
stephan [Sun, 9 Feb 2025 04:38:56 +0000 (04:38 +0000)]
configure: if the linker supports --out-implib, generate libsqlite3.X.a, where X is the platform's DLL file extension. Discussion in/around [forum:0c7fc097b2|forum post 0c7fc097b2].
stephan [Sun, 9 Feb 2025 04:16:01 +0000 (04:16 +0000)]
wasm: add some build-time validation to ensure that the problem fixed in [65798c09a00662a3] does not recur. Ensure that files generated via mkwasmbuilds.c have the generated makefile as a dependency.
stephan [Sun, 9 Feb 2025 03:24:00 +0000 (03:24 +0000)]
wasm: when building in -O0 mode (typical dev mode), use -sASSERTIONS=2, else -sASSERTIONS=0, in response [https://github.com/emscripten-core/emscripten/pull/23629/commits/7e3e35cbff9c5688eacb3cddc5045f872d744efd|Emscripten checkin 7e3e35cbff9], which adds assertions to check for the condition reported in [https://github.com/emscripten-core/emscripten/issues/23420|Emscripten ticket 23420]. Update some unrelated JS-side internal docs.
stephan [Sun, 9 Feb 2025 01:25:00 +0000 (01:25 +0000)]
configure: when transfering ENABLE/OMIT flags from CFLAGS to OPT_FEATURE_FLAGS, also do the same for CPPFLAGS and remove those ENABLE/OMIT flags from CFLAGS/CPPFLAGS to mimic legacy build behavior. Strip ENABLE/OMIT flags from BUILD_CFLAGS but do not transfer those to OPT_FEATURE_FLAGS, also to mimic legacy behavior. This is the second part of a fix discussed at [forum:9801e54665afd728|forum post 9801e54665afd728].
drh [Sat, 8 Feb 2025 14:15:42 +0000 (14:15 +0000)]
Use the sqlite3ColumnIndex() routine to look up a column in a table, rather
than using a custom loop. Performance improvement, size reduction, and
complexity decrease.
drh [Sat, 8 Feb 2025 11:15:41 +0000 (11:15 +0000)]
Improvements to the hash table used to store symbols in the schema, so that
it works better (requires fewer calls to sqlite3StrICmp()) for large schemas,
and uses less code space.