emscripten-core / emsdk

Emscripten SDK
http://emscripten.org
Other
2.98k stars 678 forks source link

/emsdk/fastcomp/fastcomp/bin/clang++: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory #252

Closed soniakash1998 closed 5 years ago

soniakash1998 commented 5 years ago

Installed the latest version 1.38.33 of Emscripten. When I tried to compile a simple C++ file to javascript than it is showing this

emcc a.cpp -o a.html cache:INFO: generating system asset: is_vanilla.txt... (this will be cached in "/home/ubuntu/.emscripten_cache/is_vanilla.txt" for subsequent builds) /home/ubuntu/emsdk/fastcomp/fastcomp/bin/llc: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory cache:INFO: - ok /home/ubuntu/emsdk/fastcomp/fastcomp/bin/clang++: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory shared:ERROR: '/home/ubuntu/emsdk/fastcomp/fastcomp/bin/clang++ --version' failed (127)

tried the emcc -v to know the other errors

emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.38.33 /home/ubuntu/emsdk/fastcomp/fastcomp/bin/clang: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory /home/ubuntu/emsdk/fastcomp/fastcomp/bin/clang++: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory shared:ERROR: '/home/ubuntu/emsdk/fastcomp/fastcomp/bin/clang++ --version' failed (127)

kripken commented 5 years ago

Thanks for the bug report! This looks related to https://github.com/emscripten-core/emscripten/issues/8697 , but with a much worse symptom. I'll try to raise the priority there.

kripken commented 5 years ago

Btw, what OS are you on?

soniakash1998 commented 5 years ago

I am currently using ubuntu 19.04

soniakash1998 commented 5 years ago

Ubuntu 19.04

On May 31, 2019 3:44 AM, "Alon Zakai" notifications@github.com wrote:

Btw, what OS are you on?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/emscripten-core/emsdk/issues/252?email_source=notifications&email_token=AI2RFVEBHXKVT3XGWQDVQ5LPYBGUDA5CNFSM4HRBLS72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWTVFKI#issuecomment-497504937, or mute the thread https://github.com/notifications/unsubscribe-auth/AI2RFVB3BYGOOGBRCUYZ5JDPYBGUDANCNFSM4HRBLS7Q .

dschuff commented 5 years ago

Can you try sudo apt-get install libtinfo5?

soniakash1998 commented 5 years ago

I tried sudo apt-get install libtinfo5 and it worked for me. But it raised some shared error shared:ERROR: Emscripten, llvm and clang build versions do not match, this is dangerous (1.38.33, 1.38.31, 1.38.31)

but then I executed ./emsdk install latest and this shared error removed. Thanks @dschuff.

Calinou commented 5 years ago

I just stumbled upon this issue as well, so here's a note for Fedora users: this can be solved by installing the ncurses-compat-libs package (sudo dnf install ncurses-compat-libs) :slightly_smiling_face:

However, this causes the terminal to print this every time clang++ is called:

/lib64/libtinfo.so.5: no version information available (required by /home/hugo/.local/opt/emsdk/fastcomp/fastcomp/bin/../lib/libLLVM-6.0.so)

Should I open a separate issue for this?

kripken commented 5 years ago

Thanks @Calinou, I'll add that Fedora note to our docs, I have a wip PR for this, https://github.com/emscripten-core/emscripten/pull/8734

For that warning, we have https://github.com/emscripten-core/emscripten/issues/8697 which tracks that I believe.

Martmists-GH commented 5 years ago

Same issue appears on Arch Linux, with libtinfo no longer being on the AUR

trzecieu commented 5 years ago

Bump on Fedora case - this is some regression as one of the last precompiled version of SDK (1.38.25) has no issue like that.

kripken commented 5 years ago

@trzecieu thanks, yeah, let me reopen this, as it seems serious. For now, can use 1.38.31 or earlier which are from the old builders. When @dschuff has time he mentioned he might know how to fix this properly in the new ones with a build sysroot.

trzecieu commented 5 years ago

Where do you scripts responsible for building precompiled version of SDK? I might take a look also.

kripken commented 5 years ago

@trzecieu that would be great, thanks!

I believe the code that compiles things is here: https://github.com/WebAssembly/waterfall/blob/master/src/build.py#L790

And that is invoked from here: https://chromium.googlesource.com/emscripten-releases/+/refs/heads/master/DEPS#65 and/or https://chromium.googlesource.com/chromium/tools/build/+/refs/heads/master/scripts/slave/recipes/emscripten_releases.py (I don't understand that level very well)

dschuff commented 5 years ago

@kripken you're right, that build.py code is how LLVM is built (there shouldn't be any need to change the recipe). I found that LLVM's CMake has an option LLVM_ENABLE_TERMINFO that can be used to disable use of terminfo if it's problematic. So we could add -DLLVM_ENABLE_TERMINFO=OFF to our build for now. I think that might mean we don't get the nice color diagnostics anymore (not sure), but maybe going forward we might want to try to modify LLVM's CMake files to link those extra libraries statically (this maybe also could be used for e.g. libxml, libiconv, zlib, xar, etc).

trzecieu commented 5 years ago

Looks like worth to try with -DLLVM_ENABLE_TERMINFO=OFF

kripken commented 5 years ago

Agreed, I opened https://github.com/WebAssembly/waterfall/pull/539 to try that now.