]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Cosmetic wasm build tweaks. Fixed wasm-opt use, broken by this branch's refactoring.
authorstephan <stephan@noemail.net>
Tue, 23 Sep 2025 10:46:17 +0000 (10:46 +0000)
committerstephan <stephan@noemail.net>
Tue, 23 Sep 2025 10:46:17 +0000 (10:46 +0000)
FossilOrigin-Name: 4d7eff2afbcf023291bc1133c4413d1ea44f4096bb515e4bcd40bc8fc8d2a591

ext/wasm/GNUmakefile
ext/wasm/mkwasmbuilds.c
ext/wasm/wasmfs.make
manifest
manifest.uuid

index 0fff6b37c088c3b2e0962ed5e706c643a6aa077b..dc7e3547e6b1786377b12c8bb44190de828fbf5a 100644 (file)
@@ -443,7 +443,7 @@ ifeq (1,$(SQLITE_C_IS_SEE))
 endif
 define SQLITE.CALL.C-PP.FILTER
 # Create $2 from $1 using $(bin.c-pp)
-# $1 = Input file: c-pp -f $(1).js
+# $1 = Input file(s): cat $(1) | c-pp ...
 # $2 = Output file: c-pp -o $(2).js
 # $3 = optional c-pp -D... flags
 $(2): $(1) $$(MAKEFILE_LIST) $$(bin.c-pp)
@@ -510,7 +510,7 @@ endif
 SQLITE.strip-emcc-js-cruft = \
   sed -i -e '/^.*= \(_sqlite3\|_fiddle\)[^=]*=.*createExportWrapper/d' \
   -e '/^var \(_sqlite3\|_fiddle\)[^=]*=.*makeInvalidEarlyAccess/d' $@ || exit; \
-  echo '$(1) (Probably) stripped out createExportWrapper() and makeInvalidEarlyAccess() parts.'
+  echo '$(1) $(emo.disk) (Probably) /createExportWrapper()/d and /makeInvalidEarlyAccess()/d.'
 
 # When passing emcc_opt from the CLI, += and re-assignment have no
 # effect, so emcc_opt+=-g3 doesn't work. So...
@@ -630,6 +630,8 @@ emcc.cflags += -I. -I$(dir.top)
 ########################################################################
 # emcc flags specific to building .js/.wasm files...
 emcc.jsflags = -fPIC
+#emcc.jsflags += -Wno-gcc-install-dir-libstdcxx
+#emcc is not passing ^^^ this on to clang
 emcc.jsflags += --no-entry
 emcc.jsflags += -sWASM_BIGINT=$(emcc.WASM_BIGINT)
 emcc.jsflags += -sMODULARIZE
@@ -660,18 +662,6 @@ emcc.jsflags += -sSTRICT_JS=0
 # -sSTRICT=1 Causes failures about unknown symbols which the build
 # tools should be installing, e.g. __syscall_geteuid32
 
-# emcc -sENVIRONMENT values for the various build modes:
-emcc.environment.vanilla = web,worker
-emcc.environment.vanilla64 = $(emcc.environment.vanilla)
-emcc.environment.bundler-friendly = $(emcc.environment.vanilla)
-emcc.environment.esm = $(emcc.environment.vanilla)
-emcc.environment.esm64 = $(emcc.environment.vanilla)
-emcc.environment.node = node
-# Adding ",node" to the list for the other builds causes Emscripten to
-# generate code which confuses node: it cannot reliably determine
-# whether the build is for a browser or for node. We neither build nor
-# test node builds on a regular basis. They are fully unsupported.
-
 ########################################################################
 # -sINITIAL_MEMORY: How much memory we need to start with is governed
 # at least in part by whether -sALLOW_MEMORY_GROWTH is enabled. If so,
@@ -836,7 +826,7 @@ sqlite3-wasmfs.cfiles = $(sqlite3-wasm.cfiles)
 # use awk instead of sed for this.
 define SQLITE.CALL.xJS.ESM-EXPORT-DEFAULT
 if [ x1 = x$(1) ]; then \
-               echo "[$@]: Fragile workaround for emscripten/issues/18237." \
+               echo "$(3) $(emo.bug) Fragile workaround for emscripten/issues/18237." \
                "See SQLITE.CALL.xJS.ESM-EXPORT-DEFAULT."; \
                {\
                        awk '/^export default/ && !f{f=1; next} 1' $@ > $@.tmp && mv $@.tmp $@; \
@@ -1078,7 +1068,7 @@ $(speedtest1.js): $(MAKEFILE) $(speedtest1.cfiles) \
         -o $@ $(speedtest1.cfiles) -lm
        @chmod -x $(basename $@).wasm
        @$(maybe-wasm-strip) $(basename $@).wasm
-       @$(SQLITE.strip-emcc-js-cruft)
+       @$(call SQLITE.strip-emcc-js-cruft)
        @ls -la $@ $(speedtest1.wasm)
 
 speedtest1: $(speedtest1.js)
@@ -1102,13 +1092,13 @@ speedtest1: $(speedtest1.js)
 #  tester1.mjs: cases 3 and 4
 #
 # To create those, we filter tester1.c-pp.js with $(bin.c-pp)...
-$(eval $(call SQLITE.CALL.C-PP.FILTER,tester1.c-pp.js,tester1.js,$(c-pp.D.canonical)))
+$(eval $(call SQLITE.CALL.C-PP.FILTER,tester1.c-pp.js,tester1.js,$(c-pp.D.vanilla)))
 $(eval $(call SQLITE.CALL.C-PP.FILTER,tester1.c-pp.js,tester1.mjs,$(c-pp.D.esm)))
-$(eval $(call SQLITE.CALL.C-PP.FILTER,tester1.c-pp.html,tester1.html,$(c-pp.D.canonical)))
+$(eval $(call SQLITE.CALL.C-PP.FILTER,tester1.c-pp.html,tester1.html,$(c-pp.D.vanilla)))
 $(eval $(call SQLITE.CALL.C-PP.FILTER,tester1.c-pp.html,tester1-esm.html,$(c-pp.D.esm)))
 tester1: tester1.js tester1.mjs tester1.html tester1-esm.html
 # We do not include $(dir.dout)/sqlite3-bundler-friendly.mjs in this
-# because bundlers are client-specific.
+# because bundlers are client-specific. We don't use any of them.
 all quick: tester1
 quick: $(sqlite3.js)
 
index a1034840cd224c714ffef8e7c252efddf5987b74..5072899ee6e3f2b118cb8371753344449569e8a7 100644 (file)
@@ -117,11 +117,10 @@ typedef struct BuildDef BuildDef;
 #define BuildDefs_map(E)  \
   E(vanilla) E(vanilla64) \
   E(esm) E(esm64)         \
-  E(bundler) E(bundler64)
-/*
-  E(node) \
+  E(bundler) E(bundler64) \
+  E(node) E(node64) \
   E(wasmfs)
-*/
+
 /*
 ** The set of WASM builds for the library (as opposed to the apps
 ** (fiddle, speedtest1)). Their order in BuildDefs_map is mostly
@@ -196,38 +195,53 @@ const BuildDefs oBuildDefs = {
   },
 
   .bundler64 = {
-    .zEmo        = "ð\9f\91\9c",
+    .zEmo        = "ð\9f\93¦",
     .zBaseName   = "sqlite3",
     .zDotWasm    = 0,
     .zCmppD      = "$(c-pp.D.bundler)",
     .zEmcc       = "-sMEMORY64=1",
     .zEnv        = 0,
-    .flags       = CP_JS | F_ESM | F_BUNDLER_FRIENDLY
+    .flags       = CP_JS | F_ESM | F_BUNDLER_FRIENDLY | F_64BIT
   },
 
-#if 0
-  /* Entirely unsupported. */
+  /* We neither build nor test node builds on a regular basis. They
+     are fully unsupported. */
   .node = {
-    .zEmo        = "",
+    .zEmo        = "🍟",
     .zBaseName   = "sqlite3-node",
     .zDotWasm    = 0,
-    .zCmppD      = "$(c-pp.D.bundler)",
+    .zCmppD      = "-Dtarget=node $(c-pp.D.bundler)",
+    .zEmcc       = 0,
+    .zEnv        = "node",
+    /*
+      Adding ",node" to the list for the other builds causes
+      Emscripten to generate code which confuses node: it cannot
+      reliably determine whether the build is for a browser or for
+      node.  */
+    .flags       = CP_ALL | F_UNSUPPORTED | F_NODEJS
+  },
+
+  /* Entirely unsupported. */
+  .node64 = {
+    .zEmo        = "🍔",
+    .zBaseName   = "sqlite3-node-64bit",
+    .zDotWasm    = 0,
+    .zCmppD      = "-Dtarget=node $(c-pp.D.bundler)",
     .zEmcc       = 0,
     .zEnv        = "node",
-    .flags       = CP_BOTH | F_UNSUPPORTED | F_NODEJS
+    .flags       = CP_ALL | F_UNSUPPORTED | F_NODEJS | F_64BIT
   },
 
   /* Entirely unsupported. */
   .wasmfs = {
-    .zEmo        = "",
+    .zEmo        = "💿",
     .zBaseName   = "sqlite3-wasmfs",
     .zDotWasm    = 0,
     .zCmppD      = "$(c-pp.D.bundler)",
-    .zEmcc       = 0,
-    .zEnv        = "-sEXPORT_ES6 -sUSE_ES6_IMPORT_META",
-    .flags       = CP_BOTH | F_UNSUPPORTED | F_WASMFS
+    .zEmcc       = "-sEXPORT_ES6 -sUSE_ES6_IMPORT_META",
+    .zEnv        = 0,
+    .flags       = CP_ALL | F_UNSUPPORTED | F_WASMFS
   }
-#endif
 };
 
 /*
@@ -349,6 +363,41 @@ static void mk_prologue(void){
      "$(extern-pre-js.js) $(sqlite3-license-version.js)"
   );
 
+  pf(zBanner
+     "define emcc.do.build\n"
+     /* $1 = build name */
+     "$(bin.emcc) -o $@ $(emcc_opt_full) $(emcc.flags) "
+     "$(emcc.jsflags) -sENVIRONMENT=$(emcc.environment.$(1)) "
+     "\t\t$(pre-post.$(1).flags) "
+     "\t\t$(emcc.flags.$(1)) "
+     "\t\t$(cflags.common) $(cflags.$(1)) "
+     "\t\t$(SQLITE_OPT) "
+     "\t\t$(cflags.wasm_extra_init) $(sqlite3-wasm.cfiles)\n"
+     "endef\n"
+  );
+
+  ps(zBanner
+     "emo.disk = 💾\n"
+     "emo.fire = 🔥\n"
+     "emo.done = 🏆\n" /*🏁*/
+     "emo.bug = 🐞\n"
+     "emo.megaphone = 📣\n"
+     "emo.mute = 🔇\n"
+     "emo.tool = 🔨\n"
+  );
+  ps(
+    "emcc.loud ?= 1\n"
+    "ifeq (1,$(emcc.loud))\n"
+    "$(info $(emo.megaphone) Emitting loud build info."
+    " Pass emcc.loud=0 to disable it.)\n"
+    "emcc.squelch =\n"
+    "else\n"
+    "$(info $(emo.mute) Eliding loud build info."
+    " Pass emcc.loud=1 to enable it.)\n"
+    "emcc.squelch = @\n"
+    "endif\n"
+  );
+
   {
     /* SQLITE.CALL.WASM-OPT = shell code to run $(1) (source wasm file
     ** name) through $(bin.wasm-opt) */
@@ -405,22 +454,22 @@ static void mk_prologue(void){
     ps("else");
     {
       ps("define SQLITE.CALL.WASM-OPT"
-         /* $1 = build name, $2 = emoji*/
+         /* $1 = build name, $2 = log message prefix*/
       );
       pf(
-        "echo '[$(2)$@]: Applying $(bin.wasm-opt)';\\\n"
+        "echo '$(2) $(emo.tool) Applying $(bin.wasm-opt)';\\\n"
         "\trm -f wasm-opt-tmp.$(1).wasm;\\\n"
         /* It's very likely that the set of wasm-opt flags varies from
         ** version to version, so we'll ignore any errors here. */
-        "\tif $(bin.wasm-opt) $@ -o wasm-opt-tmp.$(1).wasm \\\n"
+        "\tif $(bin.wasm-opt) $(out.$(1).wasm) -o wasm-opt-tmp.$(1).wasm \\\n"
         "\t\t%s; then \\\n"
-        "\t\tmv wasm-opt-tmp.$(1).wasm $@; \\\n"
+        "\t\tmv wasm-opt-tmp.$(1).wasm $(out.$(1).wasm); \\\n"
 #if 0
         "\t\techo -n 'After wasm-opt: '; \\\n"
         "\t\tls -l $(1); \\\n"
 #endif
         "\telse \\\n"
-        "\t\techo '[$(2)$@]: WARNING: ignoring wasm-opt failure'; \\\n"
+        "\t\techo '$(2) 🔥 ignoring wasm-opt failure'; \\\n"
         "\tfi\n",
         zOptFlags
       );
@@ -443,15 +492,17 @@ static void mk_pre_post(char const *zBuildName,
   pf("c-pp.D.%s = %s\n", zBuildName, pB->zCmppD ? pB->zCmppD : "");
 
   ps("\n# --pre-js=...");
-  pf("pre-js.%s.js = $(dir.tmp)/pre-js.%s.js\n",
-     zBuildName, zBuildName);
-  pf("$(pre-js.%s.js): $(MAKEFILE_LIST) "
-     "$(sqlite3-license-version.js)\n", zBuildName);
+  pf("pre-js.%s.js = $(dir.tmp)/pre-js.%s.js\n"
+     "CLEAN_FILES += $(pre-js.%s.js)\n"
+     "$(pre-js.%s.js): "
+     "$(MAKEFILE_LIST) $(sqlite3-license-version.js)\n",
+     zBuildName, zBuildName,
+     zBuildName,
+     zBuildName);
+
   if( 0==WASM_CUSTOM_INSTANTIATE ){
-    pf("$(eval $(call SQLITE.CALL.C-PP.FILTER,$(pre-js.js.in),"
-       "$(pre-js.%s.js),"
-       "$(c-pp.D.%s)))\n",
-       zBuildName, zBuildName);
+    pf("\tcat $(pre-js.js.in) | $(bin.c-pp) -o $@ $(c-pp.D.%s)\n",
+       zBuildName);
   }else{
 #if 0
     fixme;
@@ -589,7 +640,7 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
   pf("# zCmppD=%s\n# zBaseName=%s\n",
      pB->zCmppD ? pB->zCmppD : "", zBaseName);
 
-  pf("logtag.%s = [%s$@]:\n", zBuildName, pB->zEmo);
+  pf("logtag.%s = [%s %s $@]:\n", zBuildName, pB->zEmo, zBuildName);
   pf("dir.dout.%s ?= $(dir.dout)/%s\n", zBuildName, zBuildName);
   pf("out.%s.base = $(dir.dout.%s)/%s\n",
      zBuildName, zBuildName, zBaseName);
@@ -597,7 +648,9 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
      zBuildName, zBuildName, zBaseName, zJsExt);
   pf("out.%s.wasm = $(dir.dout.%s)/%s.wasm\n",
      zBuildName, zBuildName, zBaseName);
-  pf("$(info Setting up build [%s]: $(out.%s.js))\n", zBuildName, zBuildName );
+  pf("$(info $(logtag.%s) Setting up build. "
+     "Use the 'b-%s' target to build just this.)\n",
+     zBuildName, zBuildName );
   pf("emcc.environment.%s = %s\n", zBuildName,
      pB->zEnv ? pB->zEnv : oBuildDefs.vanilla.zEnv);
   pf("emcc.flags.%s = %s\n", zBuildName, pB->zEmcc ? pB->zEmcc : "");
@@ -611,14 +664,14 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
     pf("c-pp.D.%s = %s\n", zBuildName, pB->zCmppD ? pB->zCmppD: "" );
 
     pf("$(sqlite3-api.%s.c-pp.js): $(sqlite3-api.jses)\n"
-       "\t@echo 'Making $@ ...'; \\\n"
+       "\t@echo '$(logtag.%s) Making $@ ...'; \\\n"
        "\tmkdir -p $(dir.dout.%s); \\\n"
        "\tfor i in $(sqlite3-api.jses); do \\\n"
        "\t\techo \"/* BEGIN FILE: $$i */\"; \\\n"
        "\t\tcat $$i; \\\n"
        "\t\techo \"/* END FILE: $$i */\"; \\\n"
        "\tdone > $@\n",
-       zBuildName, zBuildName);
+       zBuildName, zBuildName, zBuildName);
 
     pf("$(sqlite3-api.%s.js): $(sqlite3-api.%s.c-pp.js)\n",
        zBuildName, zBuildName);
@@ -644,68 +697,73 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
        ** running builds with long build times (like -Oz). */
        "\n",
        zBuildName, zBuildName, zBuildName);
-    pf("\t@echo '$(logtag.%s) building ...'\n", zBuildName);
-    if( F_UNSUPPORTED & pB->flags ){
-      pf("\t@echo '$(logtag.%s) ACHTUNG: unsupported build type. "
-         "Use at your own risk.'\n", zBuildName);
-    }
-    pf("\t$(bin.emcc) -o $@ $(emcc_opt_full) $(emcc.flags) \\\n");
-    pf("\t\t$(emcc.jsflags) -sENVIRONMENT=$(emcc.environment.%s) \\\n",
-       zBuildName);
-    pf("\t\t$(pre-post.%s.flags) \\\n", zBuildName);
-    if( pB->zEmcc ){
-      pf("\t\t$(emcc.flags.%s) \\\n", zBuildName);
-    }
-    pf("\t\t$(cflags.common) $(cflags.%s) \\\n"
-       "\t\t$(SQLITE_OPT) \\\n"
-       "\t\t$(cflags.wasm_extra_init) $(sqlite3-wasm.cfiles)\n",
+
+    pf("\t@echo '$(logtag.%s) building ...'\n"
+       "\t@mkdir -p $(dir $@);\n",
        zBuildName);
-    if( (F_ESM & pB->flags) || (F_NODEJS & pB->flags) ){
-      /* TODO? Replace this $(call) with the corresponding makefile
-      ** code.  OTOH, we also use this $(call) in the speedtest1-wasmfs
-      ** build, which is not part of the rules emitted by this
-      ** program. */
-      pf("\t@$(call SQLITE.CALL.xJS.ESM-EXPORT-DEFAULT,1,%d)\n",
-         (F_WASMFS & pB->flags) ? 1 : 0);
-    }
-    pf("\t@chmod -x %s\n", zWasmOut);
-    pf("\t@$(maybe-wasm-strip) %s\n", zWasmOut);
-    pf("\t@$(call SQLITE.CALL.WASM-OPT,%s,%s)\n",
-       zBuildName, pB->zEmo);
-    pf("\t@$(call SQLITE.strip-emcc-js-cruft,$(logtag.%s))\n", zBuildName);
-    if( CP_JS & pB->flags && !(pB->zDotWasm/*handled below*/) ){
-      pf("\t@cp -f $@ $(dir.dout)/. || exit; \\\n"
-         "echo '$(logtag.%s) ==> $(dir.dout)/$(notdir $@).'\n",
-         zBuildName
-      );
-    }
-    if( CP_WASM & pB->flags ){
-      pf("\t@cp -f %s $(dir.dout)/. || exit; \\\n"
-         "echo '$(logtag.%s) ==> $(dir.dout)/$(notdir %s)'\n",
-         zWasmOut, zBuildName, zWasmOut);
+
+    if( F_UNSUPPORTED & pB->flags ){
+      pf("\t@echo '$(logtag.%s) $(emo.fire)$(emo.fire)$(emo.fire): "
+         "unsupported build. Use at your own risk.'\n", zBuildName);
     }
-    /*
-    ** The above $(bin.emcc) call will write out $@, and will create a
-    ** like-named .wasm file. The resulting .wasm and .js/.mjs files
-    ** are identical across all builds which have the same pB->zEmcc.
-    **
-    ** We copy one or both of those files to $(dir.dout) (the top-most
-    ** build target dir), but: that .wasm file name gets hard-coded
-    ** into $@ so we need, for some cases, to patch the name to
-    ** pB->zDotWasm when copying to $(dir.dout).
-    */
-    if( pB->zDotWasm && (CP_JS & pB->flags) ){
-      pf("\t@echo '$(logtag.%s) Replacing \"%s.wasm\" in "
-         "$(dir.dout)/$(notdir $@) with \"%s.wasm\"'; \\\n"
-         "sed "
-         "-e 's/\"%s.wasm\"/\"%s.wasm\"/g' "
-         "-e \"s/'%s.wasm'/'%s.wasm'/g\" "
-         "$@ > $(dir.dout)/$(notdir $@)\n"
-         "\t@ls -la $(dir.dout)/$(notdir $@)\n",
-         zBuildName,
-         zBaseName, pB->zDotWasm,
-         zBaseName, pB->zDotWasm,
-         zBaseName, pB->zDotWasm);
+    pf("\t$(emcc.squelch)$(call emcc.do.build,%s)\n", zBuildName);
+
+    { /* Post-compilation transformations and copying to
+         $(dir.dout)... */
+      if( (F_ESM & pB->flags) || (F_NODEJS & pB->flags) ){
+        /* TODO? Replace this $(call) with the corresponding makefile
+        ** code.  OTOH, we also use this $(call) in the speedtest1-wasmfs
+        ** build, which is not part of the rules emitted by this
+        ** program. */
+        pf("\t@$(call SQLITE.CALL.xJS.ESM-EXPORT-DEFAULT,1,%d,$(logtag.%s))\n",
+           (F_WASMFS & pB->flags) ? 1 : 0,
+           zBuildName
+        );
+      }
+
+      pf("\t@chmod -x %s\n", zWasmOut
+         /* althttpd will automatically try to execute wasm files
+            if they have the +x bit set. Why that bit is set
+            at all is a mystery. */);
+      pf("\t@$(maybe-wasm-strip) %s\n", zWasmOut);
+      pf("\t@$(call SQLITE.CALL.WASM-OPT,%s,$(logtag.%s))\n",
+         zBuildName, zBuildName);
+      pf("\t@$(call SQLITE.strip-emcc-js-cruft,$(logtag.%s))\n", zBuildName);
+
+      if( CP_JS & pB->flags && !(pB->zDotWasm/*handled below*/) ){
+        pf("\t@cp -f $@ $(dir.dout)/. || exit; \\\n"
+           "\techo '$(logtag.%s) $(emo.disk) $(dir.dout)/$(notdir $@)'\n",
+           zBuildName
+        );
+      }
+      if( CP_WASM & pB->flags ){
+        pf("\t@cp -f %s $(dir.dout)/. || exit; \\\n"
+           "\techo '$(logtag.%s) $(emo.disk) $(dir.dout)/$(notdir %s)'\n",
+           zWasmOut, zBuildName, zWasmOut);
+      }
+      /*
+      ** $(bin.emcc) will write out $@ and will create a like-named
+      ** .wasm file. The resulting .wasm and .js/.mjs files are
+      ** identical across all builds which have the same pB->zEmcc.
+      **
+      ** We copy one or both of those files to $(dir.dout) (the top-most
+      ** build target dir), but: that .wasm file name gets hard-coded
+      ** into $@ so we need, for some cases, to patch the name to
+      ** pB->zDotWasm when copying to $(dir.dout).
+      */
+      if( pB->zDotWasm && (CP_JS & pB->flags) ){
+        pf("\t@echo '$(logtag.%s) $(emo.disk) "
+           "s/\"%s.wasm\"/\"%s.wasm\"/g "
+           "$(dir.dout)/$(notdir $@)'; \\\n"
+           "sed "
+           "-e 's/\"%s.wasm\"/\"%s.wasm\"/g' "
+           "-e \"s/'%s.wasm'/'%s.wasm'/g\" "
+           "$@ > $(dir.dout)/$(notdir $@)\n",
+           zBuildName,
+           zBaseName, pB->zDotWasm,
+           zBaseName, pB->zDotWasm,
+           zBaseName, pB->zDotWasm);
+      }
 
       /* Avoid a 3rd occurrence of the bug fixed by 65798c09a00662a3,
       ** which was (in two cases) caused by makefile refactoring and
@@ -713,12 +771,12 @@ void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
       ** sqlite3-bundler-friendly.mjs (which is used by the npm
       ** subproject but is otherwise untested/unsupported): */
       pf("\t@if grep -e '^ *importScripts(' $@; "
-         "then echo 'ERROR: bug fixed in 65798c09a00662a3 has re-appeared'; "
-         "exit 1; fi;\n");
-    }else{
-      pf("\t@ls -la %s $@\n", zWasmOut);
+         "then echo '$(logtag.%s) $(emo.bug)$(emo.fire): "
+         "bug fixed in 65798c09a00662a3 has re-appeared'; "
+         "exit 1; fi;\n", zBuildName);
     }
   }
+  pf("\t@echo '$(logtag.%s) $(emo.done)'\n", zBuildName);
 
   pf("\n%dbit: $(out.%s.js)\n"
      "b-%s: $(out.%s.js)\n",
index 0d1fb4043a7a299f459060e2b13b1db49361d01e..b694b8eb920fad37c72af2f7380b50e4df03c4b9 100644 (file)
@@ -97,7 +97,7 @@ $(speedtest1-wasmfs.mjs): $(speedtest1.cfiles) $(sqlite3-wasmfs.js) \
         $(emcc.flags.sqlite3-wasmfs) \
         $(emcc.flags.speedtest1-wasmfs) \
         -o $@ $(speedtest1.cfiles) -lm
-       @$(call SQLITE.CALL.xJS.ESM-EXPORT-DEFAULT,1,1)
+       @$(call SQLITE.CALL.xJS.ESM-EXPORT-DEFAULT,1,1,$(logtag.wasmfs))
        $(maybe-wasm-strip) $(speedtest1-wasmfs.wasm)
        chmod -x $(speedtest1-wasmfs.wasm)
        ls -la $@ $(speedtest1-wasmfs.wasm)
index 8862ac8781b4c78723be7ec5645d84046f837bda..32452d4742fe63a1e1bb2891bac798fdbbf7b92d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\sit\seasier\sto\spick\sout\swhich\sparallel\sbuild\smessages\sbelong\sto\swhich\swasm\sbuild.
-D 2025-09-23T08:44:07.905
+C Cosmetic\swasm\sbuild\stweaks.\sFixed\swasm-opt\suse,\sbroken\sby\sthis\sbranch's\srefactoring.
+D 2025-09-23T10:46:17.318
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -578,7 +578,7 @@ F ext/session/sqlite3session.c 9cd47bfefb23c114b7a5d9ee5822d941398902f30516bf0dd
 F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
 F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
-F ext/wasm/GNUmakefile 4ed23b1978bff9853b5de97986a4ab0fb683931a2b6114bfe7f1bef478667483
+F ext/wasm/GNUmakefile 1732bc9928eecf48047d8cbc9361145de993aa70b3770a387a55271c67001edb
 F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
 F ext/wasm/README.md 66ace67ae98a45e4116f2ca5425b716887bcee4d64febee804ff6398e1ae9ec7
 F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
@@ -639,7 +639,7 @@ F ext/wasm/index-dist.html 56132399702b15d70c474c3f1952541e25cb0922942868f70daf1
 F ext/wasm/index.html bcaa00eca521b372a6a62c7e7b17a870b0fcdf3e418a5921df1fd61e5344080d
 F ext/wasm/jaccwabyt/jaccwabyt.js bbac67bc7a79dca34afe6215fd16b27768d84e22273507206f888c117e2ede7d
 F ext/wasm/jaccwabyt/jaccwabyt.md 167fc0b624c9bc2c477846e336de9403842d81b1a24fc4d3b24317cb9eba734f
-F ext/wasm/mkwasmbuilds.c ad6c8f9ac10dbbcf787208437c925ef529cc326a717fc6572b141e5045c70966
+F ext/wasm/mkwasmbuilds.c 1eb6ab3370a388b17ee4d88bee61d2a25fea400cd2b3638fff75a02fed6208a1
 F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337
 F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
 F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
@@ -664,7 +664,7 @@ F ext/wasm/tests/opfs/sahpool/digest.html 206d08a34dc8bd570b2581d3d9ab3ecad3201b
 F ext/wasm/tests/opfs/sahpool/index.html be736567fd92d3ecb9754c145755037cbbd2bca01385e2732294b53f4c842328
 F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36e0f6991460fff0cb7c15079454679a4e2
 F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61
-F ext/wasm/wasmfs.make 411dd94b40406572caddf88392a1ccc4deed0f88d260516e59ca6e0c887ee861
+F ext/wasm/wasmfs.make 5de02751b3e9e79b81a52ab4fe0ed6aa6a23311a90db58fea98c1c4e2845e562
 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
 F main.mk 20fe7a151708fc6b1f8cd0fdcc73622701cff5959131cfb73e1f75d33e687bf8
 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
@@ -2175,8 +2175,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 7bee8ee76380b2c1beb320b55042f149c22f872c70b58461652fa5bcbf6ad3c7
-R 4b260be035b101a5e5da7fd57f6f98ed
+P 913af3dd6a8da577ef19b0d82c8afec0c626d7fa5fddbdf418d2eb16c3050ab1
+R 485ed5081b5443d0e12ca88c1d18d423
 U stephan
-Z 28ef71ba6bfcc17d9cb47dcbe5b80cc7
+Z 1d0c8daab3af2d36aff745c502e348b6
 # Remove this line to create a well-formed Fossil manifest.
index e7acc9f3155d22ea4da2f23dffdeec981c395527..1e8268275ecb2cf0b7eac387e19154808316366a 100644 (file)
@@ -1 +1 @@
-913af3dd6a8da577ef19b0d82c8afec0c626d7fa5fddbdf418d2eb16c3050ab1
+4d7eff2afbcf023291bc1133c4413d1ea44f4096bb515e4bcd40bc8fc8d2a591