Commit Graph
5 Commits
Author SHA1 Message Date
Stephan Bergmann 811769f009 Consistently use __EMSCRIPTEN__ instead of EMSCRIPTEN macro
...as emsdk 5.0.3 deprecated the predefined EMSCRIPTEN macro (see
<https://github.com/emscripten-core/emscripten/commit/506052bd8b4e23ded7f2351c62ca3b24d40c8cf3>
"Warn about usage of deprecated EMSCRIPTEN macro. NFC (#26381)"), causing
failures like

> In file included from static/source/unoembindhelpers/PrimaryBindings.cxx:29:
> In file included from include/sfx2/viewsh.hxx:35:
> In file included from include/editeng/outliner.hxx:32:
> In file included from include/tools/color.hxx:26:
> include/osl/endian.h:66:15: error: macro 'EMSCRIPTEN' has been marked as deprecated: use __EMSCRIPTEN__ instead [-Werror,-Wdeprecated-pragma]
>    66 | #elif defined EMSCRIPTEN
>       |               ^
> /home/sberg/emsdk/5.0.4/emsdk/emscripten/main/cache/sysroot/include/emscripten/emscripten.h:35:66: note: macro marked 'deprecated' here
>    35 | #pragma clang deprecated(EMSCRIPTEN, "use __EMSCRIPTEN__ instead")
>       |                                                                  ^

To avoid confusion, also suppress the -D$(OS) in
solenv/gbuild/platform/unxgcc.mk that would unnecessarily keep defining
EMSCRIPTEN.

Change-Id: Ic1f187cf1c6417cd95d4092e9cea01a665bd1b2f
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/34
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 50291c2ed83bdb49bb827a4a12905d94b8c42035)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205167
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-14 10:11:38 +02:00
Stephan Bergmann ef39fb949e Avoid JS ||= in Emscripten
...as at least the baseline (see static/README.wasm.md) emsdk 3.1.46 apparently
uses some acorn-optimizer.js that cannot parse that and causes builds to fail
with

> /home/tdf/lode/emsdk/upstream/emscripten/tools/acorn-optimizer.js:1992
>   throw err;
>   ^
>
> SyntaxError: Unexpected token (1492:56)
> function runUnoScriptUrls(handle) { globalThis.Module ||= Module; importScripts.apply(self, Emval.toValue(handle)); }
>                                                         ^
>
>     at pp$4.raise (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:3553:15)
>     at pp$9.unexpected (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:764:10)
>     at pp$5.parseExprAtomDefault (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2924:10)
>     at pp$5.parseExprAtom (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2919:19)
>     at pp$5.parseExprSubscripts (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2703:21)
>     at pp$5.parseMaybeUnary (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2669:19)
>     at pp$5.parseExprOp (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2621:43)
>     at pp$5.parseExprOps (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2598:93)
>     at pp$5.parseMaybeConditional (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2579:21)
>     at pp$5.parseMaybeAssign (/home/tdf/lode/emsdk/upstream/emscripten/node_modules/acorn/dist/acorn.js:2546:21) {
>   pos: 63545,
>   loc: Position { line: 1492, column: 56 },
>   raisedAt: 63546
> }
>
> Node.js v18.20.3
> em++: error: '/home/tdf/lode/emsdk/node/18.20.3_64bit/bin/node /home/tdf/lode/emsdk/upstream/emscripten/tools/acorn-optimizer.js /tmp/emscripten_temp_duktdfj5/soffice.js JSDCE minifyWhitespace -o /tmp/emscripten_temp_duktdfj5/soffice.jso1.js' failed (returned 1)
> make[1]: *** [/home/tdf/lode/jenkins/workspace/lo_gerrit/tb/src_wasm/desktop/Executable_soffice_bin.mk:10: /home/tdf/lode/jenkins/workspace/lo_gerrit/tb/build_master/instdir/program/soffice.js] Error 1

(<https://ci.libreoffice.org/job/lo_daily_tb_linux_wasm/1145/>)

Change-Id: Ib6155b6f518af056b3d23ec648d0558a5f3ab6c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190044
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-08-22 15:06:32 +02:00
Stephan Bergmann 24910d5127 Emscripten: Better use location.href instead of document.baseURI
...as the former would also be available in a [Shared]WorkerGlobalScope

Change-Id: I9b2faccb0d7d6c98381c0e1498b06813d31d987f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188868
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-08-03 16:49:01 +02:00
Stephan Bergmann 6c5b42f72e Emscripten: Make sure global Module is available in worker threads
...also in -sMODULARIZE builds (and as expected to be available by the code in
static/emscripten/uno.js).  (Using a suggestion from the discussion at
<https://groups.google.com/g/emscripten-discuss/c/cMTCPit5xig/m/B-rvUHPCAQAJ?utm_medium=email&utm_source=footer&pli=1>
"Accessing a thread's module instance in an -sMODULARIZE -pthread setting?")

Change-Id: Ice5ed4ed109b4d541e254b49eee9972a212d8b11
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188561
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-07-30 07:50:18 +02:00
Stephan Bergmann 0b10ff07c1 Emscripten: Call initJsUnoScripting also from LOKit
...so that functionality is available there, too.  (And by breaking the code out
into its own file, give the function a more self-explanatory name than the
original "initUno".)

Change-Id: Ic65fbd98447574d881c4e7827a2cfeb67d3ff1fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188040
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
2025-07-18 17:12:24 +02:00