Zulip Chat Archive
Stream: general
Topic: emscripten build
Sebastian Ullrich (Apr 30 2018 at 10:15):
I see the emscripten situation is as stellar as ever :| .
Using the official Arch Linux build:
$ pacaur -Qo $(which emconfigure) /usr/lib/emscripten/emconfigure is owned by emscripten 1.37.36-1 $ emconfigure cmake ../../src -DCMAKE_BUILD_TYPE=Emscripten -- Lean library will be installed at /usr/local/lib/lean -- Disabled multi-thread support, it will not be safe to run multiple threads in parallel -- Using standard malloc. -- Found PythonInterp: /usr/bin/python (found version "3.6.4") -- git commit sha1: 17fe3decaf8ae236f0d0ff51ac8fd7f6940acdee -- Configuring done -- Generating done -- Build files have been written to: /home/sebastian/projects/lean/build/emscripten $ make ... checking how to switch to text section... configure: error: Cannot determine text section directive ERROR:root:Configure step failed with non-zero return code 1! Command line: ['./configure', 'CC_FOR_BUILD=gcc', 'CFLAGS=-m32 -DPIC -Oz -O3', '--host=x86_64-pc-linux-gnu', '--build=i686-pc-linux-gnu', '--disable-assembly', '--prefix=/home/sebastian/projects/lean/build/emscripten/gmp-root'] at /home/sebastian/projects/lean/build/emscripten/gmp-prefix/src/gmp make[2]: *** [CMakeFiles/gmp.dir/build.make:109: gmp-prefix/src/gmp-stamp/gmp-configure] Error 1 make[1]: *** [CMakeFiles/Makefile2:1180: CMakeFiles/gmp.dir/all] Error 2 make: *** [Makefile:163: all] Error 2
Sebastian Ullrich (Apr 30 2018 at 10:16):
/cc @Gabriel Ebner @Scott Morrison @loki der quaeler
Kevin Buzzard (Apr 30 2018 at 10:17):
https://gitter.im/leanprover_public/lean_js
Kevin Buzzard (Apr 30 2018 at 10:17):
(for reference)
Johan Commelin (Apr 30 2018 at 10:18):
Once we have multiplayer lean on cocalc we can forget about these headaches :video_game:
Kevin Buzzard (Apr 30 2018 at 10:24):
no because I want people who are idly reading my blog with no cocalc account to be able to see modern lean and mathlib doing stuff at the click of a button.
Kevin Buzzard (Apr 30 2018 at 10:24):
so we have one 3.4.1 headache
Kevin Buzzard (Apr 30 2018 at 10:24):
but then that's it
Kevin Buzzard (Apr 30 2018 at 10:24):
[assuming Mario can get mathlib working with 3.4.1]
Kevin Buzzard (Apr 30 2018 at 10:24):
[or else the number of headaches goes up again]
Johan Commelin (Apr 30 2018 at 10:24):
Ok, fair enough
Gabriel Ebner (Apr 30 2018 at 12:01):
try this:
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 863f6a66d..6163d9b32 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -287,7 +287,7 @@ if (EMSCRIPTEN) URL https://gmplib.org/download/gmp/gmp-6.1.1.tar.bz2 URL_HASH SHA256=a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95bbeffd6 BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND emconfigure ./configure "CC_FOR_BUILD=gcc" "CFLAGS=-m32 -DPIC ${CFLAGS_EMSCRIPTEN}" --host=x86_64-pc-linux-gnu --build=i686-pc-linux-gnu --disable-assembly --prefix=${gmp_install_prefix} + CONFIGURE_COMMAND emconfigure ./configure "CC_FOR_BUILD=gcc" "CCAS=gcc -c" "CFLAGS=-m32 -DPIC ${CFLAGS_EMSCRIPTEN}" --host=x86_64-pc-linux-gnu --build=i686-pc-linux-gnu --disable-assembly --prefix=${gmp_install_prefix} BUILD_COMMAND emmake make -j4 INSTALL_COMMAND make install )
Sebastian Ullrich (Apr 30 2018 at 12:31):
@Gabriel Ebner Seems to work, thanks!
Bryan Gin-ge Chen (Apr 22 2019 at 16:37):
@Sebastian Ullrich @Gabriel Ebner I've been digging into the emscripten build for lean and am trying to figure out how to get a reasonable test setup working in the community fork (see this PR). I'd appreciate any advice or suggestions if you've got time.
Here's where I'm at: I've managed to build the js and wasm files that are used by lean-web-editor
, but I am having trouble with the other build outputs. ctest
seems to rely on a shell script lean
which runs lean.js
and lean.wasm
using node
. This fails for me with the following error (and I get similar errors for leanchecker
):
{ Error at new ErrnoError (.../lean/build/emscripten/shell/lean.js:1:72345) at Object.getMode (.../lean/build/emscripten/shell/lean.js:1:40486) at Object.mount (.../lean/build/emscripten/shell/lean.js:1:40042) at Object.mount (.../lean/build/emscripten/shell/lean.js:1:56062) at Array.ASM_CONSTS (.../lean/build/emscripten/shell/lean.js:1:15742) at _emscripten_asm_const_i (.../lean/build/emscripten/shell/lean.js:1:15892) at wasm-function[11542]:20 at Object.Module._main (.../lean/build/emscripten/shell/lean.js:1:123255) at Object.callMain (.../lean/build/emscripten/shell/lean.js:1:128352) at doRun (.../lean/build/emscripten/shell/lean.js:1:129028) node: undefined, setErrno: [Function], errno: 2, message: 'FS error' }
Any ideas on how to get it running again?
I tried adding:
set_target_properties(lean PROPERTIES LINK_FLAGS "-s WASM=0 ${LEAN_JS_OPTS}")
in (Actually, that option doesn't matter.)src/shell/CMakeLists.txt
since LEAN_JS_OPTS
contains "-s 'EXTRA_EXPORTED_RUNTIME_METHODS=[\"FS\"]'"
but it didn't seem to do anything. (-s WASM=1
didn't work either)
Bryan Gin-ge Chen (Apr 22 2019 at 18:51):
OK, I've gotten past this error now. There were some hardcoded paths in src/shell/lean.cpp
that I had to change.
Last updated: Dec 20 2023 at 11:08 UTC