]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge trunk into the wasm-build-rework branch.
authorstephan <stephan@noemail.net>
Sun, 25 Aug 2024 12:04:05 +0000 (12:04 +0000)
committerstephan <stephan@noemail.net>
Sun, 25 Aug 2024 12:04:05 +0000 (12:04 +0000)
FossilOrigin-Name: a1cf3095a87e101ff83ad64f20ae2e61858c7049181abfb18aece6f0a8451c15

1  2 
ext/wasm/GNUmakefile
manifest
manifest.uuid

index 18f8ffc22de2589073e4ed51b7bc14f43860d9ce,51531627b985c22d0c57b4fc897c6f945af704bd..50fedfef71614e22989e79c8fa757c29338a1a50
@@@ -142,52 -197,30 +142,52 @@@ CLEAN_FILES += *~ $(dir.jacc)/*~ $(dir.
  sqlite3.canonical.c := $(dir.top)/sqlite3.c
  sqlite3.c ?= $(firstword $(wildcard $(dir.top)/sqlite3-see.c) $(sqlite3.canonical.c))
  sqlite3.h := $(dir.top)/sqlite3.h
 -ifeq (,$(shell grep sqlite3_activate_see $(sqlite3.c) 2>/dev/null))
 -  SQLITE_C_IS_SEE := 0
 +
 +########################################################################@
 +# It's important that sqlite3.h be built to completion before any
 +# other parts of the build run, thus we use .NOTPARALLEL to disable
 +# parallel build of that file and its dependants.
 +.NOTPARALLEL: $(sqlite3.h)
 +$(sqlite3.h):
 +      $(MAKE) -C $(dir.top) sqlite3.c
 +$(sqlite3.c): $(sqlite3.h)
 +
 +########################################################################
 +# .gen.make is generated by a shell script and holds certain parts
 +# of the makefile, some of which are relatively expensive to calculate
 +# on each run (that is, they can take a human-visible amount of time).
 +#
 +# Sidebar: three attempts have been made to move much of the
 +# $(eval)-generated makefile code into make-make.sh but the result is
 +# even less legible/maintainable than make-side $(eval).
 +ifeq (0,$(MAKING_CLEAN))
 +.gen.make: $(MAKEFILE) $(sqlite3.c)
 +      rm -f $@
 +      $(SHELL) make-make.sh $(sqlite3.c) > $@
 +      chmod -w $@
 +-include .gen.make
 +endif
 +
 +ifeq (,$(filter release snapshot,$(MAKECMDGOALS)))
 +  $(info Development build. Use 'release' or 'snapshot' target for a smaller release build.)
 +endif
 +
 +########################################################################
- # minimal=1 disables all "extraneous" stuff from sqlite3-wasm.c, the
++# barebones=1 disables all "extraneous" stuff from sqlite3-wasm.c, the
 +# goal being to create a WASM file with only the core APIs.
- ifeq (1,$(minimal))
++ifeq (1,$(barebones))
 +  wasm-bare-bones := 1
  else
 -  SQLITE_C_IS_SEE := 1
 -  $(info This is an SEE build.)
 +  wasm-bare-bones := 0
  endif
- undefine minimal
 -# Most SQLITE_OPT flags are set in sqlite3-wasm.c but we need them
 -# made explicit here for building speedtest1.c.
 -SQLITE_OPT = \
 -  -DSQLITE_ENABLE_FTS5 \
 -  -DSQLITE_ENABLE_RTREE \
 -  -DSQLITE_ENABLE_EXPLAIN_COMMENTS \
 -  -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION \
 -  -DSQLITE_ENABLE_STMTVTAB \
 -  -DSQLITE_ENABLE_DBPAGE_VTAB \
 -  -DSQLITE_ENABLE_DBSTAT_VTAB \
 -  -DSQLITE_ENABLE_BYTECODE_VTAB \
 -  -DSQLITE_ENABLE_OFFSET_SQL_FUNC \
 -  -DSQLITE_OMIT_LOAD_EXTENSION \
 -  -DSQLITE_OMIT_DEPRECATED \
 -  -DSQLITE_OMIT_UTF16 \
 -  -DSQLITE_OMIT_SHARED_CACHE \
++undefine barebones
 +
 +# Common options for building sqlite3-wasm.c and speedtest1.c.
 +# Explicit ENABLEs...
 +SQLITE_OPT.common := \
    -DSQLITE_THREADSAFE=0 \
    -DSQLITE_TEMP_STORE=2 \
 +  -DSQLITE_ENABLE_MATH_FUNCTIONS \
    -DSQLITE_OS_KV_OPTIONAL=1 \
    '-DSQLITE_DEFAULT_UNIX_VFS="unix-none"' \
    -DSQLITE_USE_URI=1 \
@@@ -432,17 -421,21 +432,17 @@@ emcc_opt_full := $(emcc_opt) -g
  ########################################################################
  # EXPORTED_FUNCTIONS.* = files for use with Emscripten's
  # -sEXPORTED_FUNCTION flag.
 -EXPORTED_FUNCTIONS.api.core := $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-core)
 +EXPORTED_FUNCTIONS.api.core := $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-core
  EXPORTED_FUNCTIONS.api.in := $(EXPORTED_FUNCTIONS.api.core)
  ifeq (1,$(SQLITE_C_IS_SEE))
 -  EXPORTED_FUNCTIONS.api.in += $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-see)
 +  EXPORTED_FUNCTIONS.api.in += $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-see
  endif
 -ifeq (0,$(minimal))
 -  EXPORTED_FUNCTIONS.api.in += \
 -    $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-auth) \
 -    $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-preupdate) \
 -    $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-session) \
 -    $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-vtab)
 +ifeq (0,$(wasm-bare-bones))
 +  EXPORTED_FUNCTIONS.api.in += $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-extras
  else
--  $(info ========================================)
-   $(info This is a minimal-mode build. It is missing many features.)
 -  $(info This is a minimal-mode build)
--  $(info ========================================)
++  $(info ============================================================)
++  $(info This is a bare-bones build. It is missing many features.)
++  $(info ============================================================)
  endif
  EXPORTED_FUNCTIONS.api := $(dir.tmp)/EXPORTED_FUNCTIONS.api
  $(EXPORTED_FUNCTIONS.api): $(EXPORTED_FUNCTIONS.api.in) $(sqlite3.c) $(MAKEFILE)
@@@ -1152,24 -1143,24 +1152,29 @@@ quick: $(sqlite3.js
  # painful.
  
  .PHONY: o0 o1 o2 o3 os oz
--o-xtra :=
--#o-xtra ?= -flto
++emcc-opt-extra :=
++#ifeq (1,$(wasm-bare-bones))
++#emcc-opt-extra += -flto
  # ^^^^ -flto can have a considerably performance boost at -O0 but
  # doubles the build time and seems to have negligible, if any, effect
  # on higher optimization levels.
++#
++# -flto does ont shrink the size of bare-bones builds by any measurable
++# amount.
++#endif
  o0: clean
        $(MAKE) -e "emcc_opt=-O0"
  o1: clean
--      $(MAKE) -e "emcc_opt=-O1 $(o-xtra)"
++      $(MAKE) -e "emcc_opt=-O1 $(emcc-opt-extra)"
  o2: clean
--      $(MAKE) -j2 -e "emcc_opt=-O2 $(o-xtra)"
++      $(MAKE) -j2 -e "emcc_opt=-O2 $(emcc-opt-extra)"
  o3: clean
--      $(MAKE) -e "emcc_opt=-O3 $(o-xtra)"
++      $(MAKE) -e "emcc_opt=-O3 $(emcc-opt-extra)"
  os: clean
        @echo "WARNING: -Os can result in a build with mysteriously missing pieces!"
--      $(MAKE) -e "emcc_opt=-Os $(o-xtra)"
++      $(MAKE) -e "emcc_opt=-Os $(emcc-opt-extra)"
  oz: clean
--      $(MAKE) -j2 -e "emcc_opt=-Oz $(o-xtra)"
++      $(MAKE) -j2 -e "emcc_opt=-Oz $(emcc-opt-extra)"
  
  ########################################################################
  # Sub-makes...
diff --cc manifest
index bb188142de1ff829a8e328a43d31f648f95688ac,1153795db6e28f13eb55ded34e16b1440e63fb20..aabb52df0148867c6f61f47581f124dbb639a3ed
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Merge\scurrent\strunk\sinto\sthis\sbranch.
- D 2024-08-12T13:31:43.385
 -C shell.c.in:\suse\seputz/oputz()\sinstead\sof\seputf/oputf()\swhere\sappropriate\sto\savoid\scompilation\serrors\sin\s-std=c99\smode\s(namely\swasm\sbuilds).
 -D 2024-08-25T11:59:29.477
++C Merge\strunk\sinto\sthe\swasm-build-rework\sbranch.
++D 2024-08-25T12:04:05.623
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@@ -594,7 -598,7 +598,7 @@@ F ext/userauth/sqlite3userauth.h 7f3ea8
  F ext/userauth/user-auth.txt ca7e9ee82ca4e1c1744295f8184dd70edfae1992865d26c64303f539eb6c084c
  F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
  F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
- F ext/wasm/GNUmakefile 1857ad71bfdc780019639f49dc054fee491b4ddba2669898b8acfd4ffba50030
 -F ext/wasm/GNUmakefile d4f6586d9a36ee2869a8c7f77227a8b7f42b6c4623f3be594beafb1554ab20d9
++F ext/wasm/GNUmakefile 1bce318cef54073492b461bbad7d3d0ac5e535f48c514725222672925d9e79ff
  F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576
  F ext/wasm/README.md a8a2962c3aebdf8d2104a9102e336c5554e78fc6072746e5daf9c61514e7d193
  F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
@@@ -2202,8 -2210,8 +2208,8 @@@ F vsixtest/vsixtest.tcl 6195aba1f12a5e1
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P 3be729493b76a8b51c19d81543dea2dcb1fc718f81d4f2d9c6e1381789217687 9c10664416274df6f8da53ddd86f6356c9704ad798fd4034d2784ae433c1c056
- R fa116f7277db9cf2640434f35cc3643d
 -P df65d00f104f31741056686f2ba41ecb192c552012bffb17c2a8b5d4db058328
 -R 8d4b348b6bf673b94cab6e107b5bbb73
++P 900a593ddf51eebddb70e2e9ab16abe4911f58f23e574e88ed340a919b8f16b6 9ef8317faebc29d016bdf2e8c678fb21ca2cfa95272f1f18b461fcaf0e220ac5
++R 18dc15cd32835420757efc0bd71059bc
  U stephan
- Z b30383c3277b6bf2d3ab4856db5f4a76
 -Z 5120e8419efd39e01384da30ed409ec4
++Z 7297c582dbef4ab4eafb733b4bb63970
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index 529a8f25af257dfd4e676599b4773298570f5bd8,4e98a047908934470e9a01673204fb8c5e20340e..f4799b7609cc296c0b82d3a2cb65c2c31970dbda
@@@ -1,1 -1,1 +1,1 @@@
- 900a593ddf51eebddb70e2e9ab16abe4911f58f23e574e88ed340a919b8f16b6
 -9ef8317faebc29d016bdf2e8c678fb21ca2cfa95272f1f18b461fcaf0e220ac5
++a1cf3095a87e101ff83ad64f20ae2e61858c7049181abfb18aece6f0a8451c15