mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-01 06:27:03 +03:00
Add JS infrastructure to ostensibly allow us to customize the wasm imports, which will hypothetically allow us to eliminate the dependency on EM_JS(), but the corresponding Emscripten glue-level feature currently breaks fatally with WASMFS builds so it's disabled.
FossilOrigin-Name: 88d9253b0db5494bf1c9b6d24f22524eeec856b89e64a66ffb30d945f0df21d3
This commit is contained in:
@ -22,7 +22,7 @@ sqlite3-wasmfs.flags =
|
||||
########################################################################
|
||||
# emcc flags for .c/.o.
|
||||
sqlite3-wasmfs.cflags :=
|
||||
sqlite3-wasmfs.cflags += -std=c99 -fPIC -g
|
||||
sqlite3-wasmfs.cflags += -std=c99 -fPIC
|
||||
sqlite3-wasmfs.cflags += -pthread
|
||||
sqlite3-wasmfs.cflags += -I. -I.. -I$(dir.top)
|
||||
sqlite3-wasmfs.cflags += $(SQLITE_OPT) -DSQLITE_WASM_WASMFS
|
||||
@ -57,7 +57,6 @@ sqlite3-wasmfs.jsflags += -sIMPORTED_MEMORY
|
||||
#sqlite3-wasmfs.jsflags += -sTOTAL_STACK=4194304
|
||||
sqlite3-wasmfs.jsflags += -sEXPORT_NAME=$(sqlite3.js.init-func)
|
||||
sqlite3-wasmfs.jsflags += -sGLOBAL_BASE=4096 # HYPOTHETICALLY keep func table indexes from overlapping w/ heap addr.
|
||||
sqlite3-wasmfs.jsflags += $(sqlite3.js.flags.--post-js)
|
||||
#sqlite3-wasmfs.jsflags += -sFILESYSTEM=0 # only for experimentation. sqlite3 needs the FS API
|
||||
# Perhaps the wasmfs build doesn't?
|
||||
#sqlite3-wasmfs.jsflags += -sABORTING_MALLOC
|
||||
@ -70,20 +69,22 @@ sqlite3-wasmfs.jsflags += -sLLD_REPORT_UNDEFINED
|
||||
sqlite3-wasmfs.jsflags += -sMEMORY64=0
|
||||
sqlite3-wasmfs.jsflags += -sINITIAL_MEMORY=128450560
|
||||
sqlite3-wasmfs.fsflags := -pthread -sWASMFS -sPTHREAD_POOL_SIZE=2 -sENVIRONMENT=web,worker
|
||||
# -sPTHREAD_POOL_SIZE values of 2 or higher trigger that bug.
|
||||
sqlite3-wasmfs.jsflags += $(sqlite3-wasmfs.fsflags)
|
||||
speedtest1-common.eflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.speedtest1
|
||||
#sqlite3-wasmfs.jsflags += -sALLOW_MEMORY_GROWTH
|
||||
#^^^ using ALLOW_MEMORY_GROWTH produces a warning from emcc:
|
||||
# USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly,
|
||||
# see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]
|
||||
sqlite3-wasmfs.jsflags += -sWASM_BIGINT=$(emcc_enable_bigint)
|
||||
|
||||
$(eval $(call call-make-pre-js,sqlite3-wasmfs))
|
||||
sqlite3-wasmfs.jsflags += $(pre-post-common.flags) $(pre-post-sqlite3-wasmfs.flags)
|
||||
$(sqlite3-wasmfs.js): $(sqlite3-wasmfs.wasm.c) $(sqlite3-wasm.c) $(sqlite3-wasmfs.extra.c) \
|
||||
EXPORTED_FUNCTIONS.api $(sqlite3-wasm.js) $(MAKEFILE) $(MAKEFILE.wasmfs) \
|
||||
$(post-jses.deps)
|
||||
EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.wasmfs) \
|
||||
$(pre-post-sqlite3-wasmfs.deps)
|
||||
@echo "Building $@ ..."
|
||||
$(emcc.bin) -o $@ $(emcc_opt_full) $(emcc.flags) \
|
||||
$(sqlite3-wasmfs.cflags) $(sqlite3-wasmfs.jsflags) $(sqlite3-wasmfs.wasm.c) $(sqlite3-wasmfs.extra.c)
|
||||
$(sqlite3-wasmfs.cflags) $(sqlite3-wasmfs.jsflags) \
|
||||
$(sqlite3-wasmfs.wasm.c) $(sqlite3-wasmfs.extra.c)
|
||||
chmod -x $(sqlite3-wasmfs.wasm)
|
||||
$(maybe-wasm-strip) $(sqlite3-wasmfs.wasm)
|
||||
@ls -la $@ $(sqlite3-wasmfs.wasm)
|
||||
@ -99,13 +100,15 @@ speedtest1-wasmfs.js := speedtest1-wasmfs.js
|
||||
speedtest1-wasmfs.wasm := $(subst .js,.wasm,$(speedtest1-wasmfs.js))
|
||||
speedtest1-wasmfs.eflags := $(sqlite3-wasmfs.fsflags)
|
||||
speedtest1-wasmfs.eflags += $(SQLITE_OPT) -DSQLITE_WASM_WASMFS
|
||||
$(speedtest1-wasmfs.js): $(MAKEFILE) $(MAKEFILE.wasmfs)
|
||||
#$(speedtest1-wasmfs.js): $(sqlite3-wasmfs.js)
|
||||
$(eval $(call call-make-pre-js,speedtest1-wasmfs))
|
||||
$(speedtest1-wasmfs.js): $(speedtest1.cs) $(sqlite3-wasmfs.js) \
|
||||
$(MAKEFILE) $(MAKEFILE.wasmfs) \
|
||||
$(pre-post-speedtest1-wasmfs.deps) \
|
||||
EXPORTED_FUNCTIONS.speedtest1
|
||||
@echo "Building $@ ..."
|
||||
$(emcc.bin) \
|
||||
$(speedtest1-wasmfs.eflags) $(speedtest1-common.eflags) \
|
||||
$(pre-post-speedtest1-wasmfs.flags) \
|
||||
$(speedtest1.cflags) \
|
||||
$(sqlite3-wasmfs.cflags) \
|
||||
-o $@ $(speedtest1.cs) -lm
|
||||
|
Reference in New Issue
Block a user