trzecieu / emscripten-docker

Docker image with Emscripten to compile ASM.js and WebAssembly
MIT License
97 stars 29 forks source link

1.39.4 is failing to build #61

Closed VirtualTim closed 4 years ago

VirtualTim commented 4 years ago

No idea what's gone wrong, but the build status is failing and the image hasn't been updated to 1.39.4.

trzecieu commented 4 years ago

Hi @VirtualTim Looks like upstream implementation error:

emsdk_portable/binaryen/tag-1.39.4/src/wasm-type.h:133:23: error: specialization of 'template<class _Tp> struct std::hash' in different namespace [-fpermissive]
 template<> class std::hash<wasm::Signature> {
                       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/bits/basic_string.h:5643:0,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/stdexcept:39,
                 from /usr/include/c++/6/array:39,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/literal.h:20,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/wasm/literal.cpp:17:
/usr/include/c++/6/bits/functional_hash.h:58:12: error:   from definition of 'template<class _Tp> struct std::hash' [-fpermissive]
     struct hash;
            ^~~~
In file included from /emsdk_portable/binaryen/tag-1.39.4/src/literal.h:26:0,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/wasm.h:34,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/wasm-traversal.h:32,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/ir/iteration.h:20,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/ir/ExpressionAnalyzer.cpp:17:
/emsdk_portable/binaryen/tag-1.39.4/src/wasm-type.h:133:23: error: specialization of 'template<class _Tp> struct std::hash' in different namespace [-fpermissive]
 template<> class std::hash<wasm::Signature> {
                       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/bits/basic_string.h:5643:0,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/stdexcept:39,
                 from /usr/include/c++/6/array:39,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/support/small_vector.h:25,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/wasm-traversal.h:30,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/ir/iteration.h:20,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/ir/ExpressionAnalyzer.cpp:17:
/usr/include/c++/6/bits/functional_hash.h:58:12: error:   from definition of 'template<class _Tp> struct std::hash' [-fpermissive]
     struct hash;
            ^~~~
In file included from /emsdk_portable/binaryen/tag-1.39.4/src/literal.h:26:0,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/wasm.h:34,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/asm_v_wasm.h:22,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/asmjs/asm_v_wasm.cpp:17:
/emsdk_portable/binaryen/tag-1.39.4/src/wasm-type.h:133:23: error: specialization of 'template<class _Tp> struct std::hash' in different namespace [-fpermissive]
 template<> class std::hash<wasm::Signature> {
                       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/bits/basic_string.h:5643:0,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/stdexcept:39,
                 from /usr/include/c++/6/array:39,
                 from /usr/include/c++/6/tuple:39,
                 from /usr/include/c++/6/functional:55,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/emscripten-optimizer/simple_ast.h:26,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/emscripten-optimizer/optimizer.h:20,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/asm_v_wasm.h:20,
                 from /emsdk_portable/binaryen/tag-1.39.4/src/asmjs/asm_v_wasm.cpp:17:
/usr/include/c++/6/bits/functional_hash.h:58:12: error:   from definition of 'template<class _Tp> struct std::hash' [-fpermissive]
     struct hash;

I use

-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0

For compilation, and GCC looks unhappy about introduced change https://github.com/WebAssembly/binaryen/pull/2478 Poke @kripken

trzecieu commented 4 years ago

Fixed by bumping GCC to 8. Status should be green soon! Thank you @VirtualTim

// I've added email notification to jenkins jobs to react faster on failures :) // It's green again!