Installing all upstream tools through EMSDK?

33 views
Skip to first unread message

Osman Zakir

unread,
May 11, 2019, 2:28:46 PM5/11/19
to emscripten-discuss
I want to install the upstream stuff mentioned in the lkgr.json file in the `upstream` folder.  How do I do that through the EMSDK?  Running the "emsdk list" command gives me this output:

"
The following precompiled tool packages are available for download:
           clang-e1.30.0-64bit
           clang-e1.34.1-64bit
           clang-e1.35.0-64bit
           clang-e1.37.1-64bit
           clang-e1.38.30-64bit
           clang-e1.38.31-64bit
           node-4.1.1-32bit
           node-4.1.1-64bit
           node-8.9.1-32bit
           node-8.9.1-64bit
           python-2.7.13.1-32bit
           python-2.7.13.1-64bit
           python-3.5.4-32bit
           python-3.5.4-64bit
           java-7.45-32bit
           java-7.45-64bit
           java-8.152-32bit
           java-8.152-64bit
           spidermonkey-37.0.1-64bit
           spidermonkey-nightly-2015-04-12-64bit
           git-1.9.4
           emscripten-1.30.0
           emscripten-1.34.1
           emscripten-1.35.0
           emscripten-1.37.1
           emscripten-1.38.30
           emscripten-1.38.31
           vs-tool-0.9.4
           crunch-1.03
           gnu-2.5.4
           mingw-7.1.0-64bit
The following tools can be compiled from source:
           clang-tag-e1.38.30-32bit
           clang-tag-e1.38.31-32bit
           clang-tag-e1.38.30-64bit
           clang-tag-e1.38.31-64bit
           clang-incoming-32bit
           clang-incoming-64bit
           clang-master-32bit
           clang-master-64bit
           upstream-clang-master-32bit
           upstream-clang-master-64bit
           emscripten-tag-1.38.30-32bit
           emscripten-tag-1.38.31-32bit
           emscripten-tag-1.38.30-64bit
           emscripten-tag-1.38.31-64bit
           binaryen-tag-1.38.30-32bit
           binaryen-tag-1.38.31-32bit
           binaryen-tag-1.38.30-64bit
           binaryen-tag-1.38.31-64bit
           emscripten-incoming-32bit
           emscripten-master-32bit
           emscripten-incoming-64bit
           emscripten-master-64bit
           binaryen-master-32bit
           binaryen-master-64bit
The following precompiled SDKs are available for download: (Run "git pull" followed by "./emsdk update-tags" to pull in the latest list)
         sdk-1.30.0-64bit
         sdk-1.34.1-64bit
         sdk-1.35.0-64bit
         sdk-1.37.1-64bit
         sdk-1.38.30-64bit
         sdk-1.38.31-64bit
The following SDKs can be compiled from source:
         sdk-incoming-32bit
         sdk-wasm-master-32bit
         sdk-incoming-64bit
         sdk-wasm-master-64bit
         sdk-master-32bit
         sdk-master-64bit
         sdk-tag-1.38.30-32bit
         sdk-tag-1.38.31-32bit
         sdk-tag-1.38.30-64bit
         sdk-tag-1.38.31-64bit
Items marked with * are activated for the current user.
To access the historical archived versions, type 'emsdk list --old'
"

I don't understand which one to get if I want upstream LLVM from the LLVM GitHub repo.  Also, I was thinking it might be `sdk-wasm-master-64bit` and therefore tried to install that, but I got stuck on building Clang.  

Please note that I what I mean by it being stuck on building Clang is that it failed with an error:

Build failed due to exception!
Working directory: C:/emsdk/clang/upstream\build_master_vs2017_64
Command '['C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\MSBuild/15.0/Bin/amd64\\MSBuild.exe', '/t:Build', '/p:Configuration=Release', '/p:Platform=x64', '/nologo', '/verbosity:minimal', 'LLVM.sln']' returned non-zero exit status 1
Installation failed!
 
Another question I want to ask is this: is it possible to just have the EMSDK download the necessary files for the SDKs or tools I want and then use CMake to build them myself?

Speaking of LLVM/Clang, if that SDK has the upstream version, it should have WebAssembly as a target to build rather than an experimental target because in LLVM 9 it's not an experimental target anymore and is included by default (`-DLLVM_TARGETS_TO_BUILD=all` is the default setting, and WebAssembly is included under "all").  But I noticed that the EMSDK uses the setting `-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly`.  Doesn't that mean it's an older version of LLVM?  Also, is it vanilla LLVM built to target WebAssembly, or is it Fastcomp?

I want to get the lkgr stuff.  And preferably I want EMSDK to use my own global installations of Java, Python and Node.  If possible.  Please help.  Thanks in advance.

Thomas Lively

unread,
May 12, 2019, 12:30:59 AM5/12/19
to emscripte...@googlegroups.com
Try ‘emsdk install latest-upstream’, but what are you doing that requires all the unstable tip of tree tools? That should only be useful if you are developing the tools themselves. 
--
You received this message because you are subscribed to the Google Groups "emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-disc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/e93e0194-d253-4e09-a1de-90480bb43c08%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Osman Zakir

unread,
May 18, 2019, 7:32:46 PM5/18/19
to emscripten-discuss
Actually, `emsdk install latest-upstream` command doesn't work on Windows.  It works on WSL, but on Windows itself.  And currently the Wasm backend is broken on Windows anyway.

Osman Zakir

unread,
May 18, 2019, 7:33:53 PM5/18/19
to emscripten-discuss
Doesn't work on Windows itself, I mean.
Reply all
Reply to author
Forward
0 new messages