intel / webml-polyfill

Deprecated, the Web Neural Network Polyfill project has been moved to https://github.com/webmachinelearning/webnn-polyfill
Apache License 2.0
161 stars 42 forks source link

[WASM] npm run build-wasm fail #1161

Closed huningxin closed 4 years ago

huningxin commented 4 years ago

Fail to execute npm run build-wasm in latest code 8b54dd5ef3b4b6da7cca023b9dd67bd4593b0e41, the error log is

> webml-polyfill@0.0.2 build-wasm /home/nhu/code/webml-polyfill
> node build.js --build-wasm

info Build Initializing...
info Build Initialization completed. Start to build...
info Build Updating submodules...
info Build.SubModules (1/3) Cleaning dependencies folder...
info Build.SubModules (1/3) Cleaning dependencies folder... SKIPPED
info Build.SubModules (2/3) Fetching submodules...
info Build.SubModules (2/3) Fetching submodules... DONE
info Download tensorflow dependencies (3/3) Downloading... 
info Download tensorflow dependencies (3/3) Downloading... DONE
info Build Updating submodules... DONE
info Build Building WebAssembly sources...
info Build.Wasm (1/4) Setting up emsdk...
info Build.Wasm (1/4) Setting up emsdk... DONE
info Build.Wasm (2/4) Find path to camke toolchain...
./emscripten/1.38.21/cmake/Modules/Platform/Emscripten.cmake
info Build.Wasm (2/4) Find path to TOOL_CHAIN... DONE, TOOL_CHAIN: /home/nhu/code/webml-polyfill/deps/emsdk/emscripten/1.38.21/cmake/Modules/Platform/Emscripten.cmake
info Build.Wasm (3/4) Set cmake tool-chain...
info Build.Wasm (3/4) Preparing build config... DONE
info Build.Wasm (4/4) Building...
[ 16%] Building CXX object CMakeFiles/nn_ops.dir/bind/src/binding.cpp.o
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:28:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_gemmlowp.h:44:26: error: no type named 'OutputStageSaturatingCastToInt8' in namespace 'gemmlowp'
  using Type = gemmlowp::OutputStageSaturatingCastToInt8;
               ~~~~~~~~~~^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_gemmlowp.h:62:26: error: no type named 'SignedL8R8WithLhsNonzeroBitDepthParams' in namespace
      'gemmlowp'; did you mean 'L8R8WithLhsNonzeroBitDepthParams'?
  using Type = gemmlowp::SignedL8R8WithLhsNonzeroBitDepthParams;
               ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         L8R8WithLhsNonzeroBitDepthParams
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/bit_depth.h:47:7: note: 'L8R8WithLhsNonzeroBitDepthParams' declared here
using L8R8WithLhsNonzeroBitDepthParams =
      ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:10:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:487:39: error: no member named 'LegacyExecuteAndDestroyTasks' in
      'gemmlowp::WorkersPool'
    gemmlowp_context->workers_pool()->LegacyExecuteAndDestroyTasks(tasks);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:589:39: error: no member named 'LegacyExecuteAndDestroyTasks' in
      'gemmlowp::WorkersPool'
    gemmlowp_context->workers_pool()->LegacyExecuteAndDestroyTasks(tasks);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:748:32: error: no member named 'OutputStageSaturatingCastToInt8' in
      namespace 'gemmlowp'
                     gemmlowp::OutputStageSaturatingCastToInt8>
                     ~~~~~~~~~~^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:764:15: error: no type named 'OutputStageSaturatingCastToInt8' in namespace
      'gemmlowp'
    gemmlowp::OutputStageSaturatingCastToInt8 saturating_cast_stage;
    ~~~~~~~~~~^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:2335:37: error: no member named 'LegacyExecuteAndDestroyTasks' in
      'gemmlowp::WorkersPool'
  gemmlowp_context->workers_pool()->LegacyExecuteAndDestroyTasks(tasks);
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2
      arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:178:29: note: in instantiation of function template specialization
      'tflite::cpu_backend_threadpool::Execute<tflite::cpu_backend_gemm::detail::CustomGemvTask<float, float, float, float, tflite::cpu_backend_gemm::QuantizationFlavor::kFloatingPoint> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(), context);
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:99:17: note: in instantiation of function template specialization
      'tflite::cpu_backend_gemm::detail::CustomGemv<float, float, float, float, tflite::cpu_backend_gemm::QuantizationFlavor::kFloatingPoint>' requested here
    if (detail::CustomGemv(lhs_params, lhs_data, rhs_params, rhs_data,
                ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:235:21: note: in instantiation of function template specialization
      'tflite::cpu_backend_gemm::Gemm<float, float, float, float, tflite::cpu_backend_gemm::QuantizationFlavor::kFloatingPoint>' requested here
  cpu_backend_gemm::Gemm(lhs_params, weights_data, rhs_params, input_data,
                    ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:3: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
  ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2
      arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:178:29: note: in instantiation of function template specialization
      'tflite::cpu_backend_threadpool::Execute<tflite::cpu_backend_gemm::detail::CustomGemvTask<unsigned char, unsigned char, int, unsigned char,
      tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(), context);
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:99:17: note: in instantiation of function template specialization
      'tflite::cpu_backend_gemm::detail::CustomGemv<unsigned char, unsigned char, int, unsigned char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
    if (detail::CustomGemv(lhs_params, lhs_data, rhs_params, rhs_data,
                ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:294:21: note: in instantiation of function template specialization
      'tflite::cpu_backend_gemm::Gemm<unsigned char, unsigned char, int, unsigned char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
  cpu_backend_gemm::Gemm(lhs_params, filter_data, rhs_params, input_data,
                    ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:3: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
  ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2
      arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:178:29: note: in instantiation of function template specialization
      'tflite::cpu_backend_threadpool::Execute<tflite::cpu_backend_gemm::detail::CustomGemvTask<unsigned char, unsigned char, int, short,
      tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(), context);
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:99:17: note: in instantiation of function template specialization
      'tflite::cpu_backend_gemm::detail::CustomGemv<unsigned char, unsigned char, int, short, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
    if (detail::CustomGemv(lhs_params, lhs_data, rhs_params, rhs_data,
                ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:351:21: note: in instantiation of function template specialization
      'tflite::cpu_backend_gemm::Gemm<unsigned char, unsigned char, int, short, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
  cpu_backend_gemm::Gemm(lhs_params, filter_data, rhs_params, input_data,
                    ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:3: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
  ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2
      arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:800:27: note: in instantiation of function template specialization
      'tflite::cpu_backend_threadpool::Execute<tflite::optimized_ops::ShuffledFullyConnectedWorkerTask>' requested here
  cpu_backend_threadpool::Execute(tasks.size(), tasks.data(),
                          ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:3: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
  ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2
      arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:1045:29: note: in instantiation of function template specialization
      'tflite::cpu_backend_threadpool::Execute<tflite::optimized_ops::MeanWorkerTask>' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(),
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:3: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
  ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2
      arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/integer_ops/depthwise_conv.h:2055:29: note: in instantiation of function template specialization
      'tflite::cpu_backend_threadpool::Execute<tflite::optimized_integer_ops::DepthwiseConvWorkerTask<signed char, int> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(),
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:3: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
  ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2
      arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:178:29: note: in instantiation of function template specialization
      'tflite::cpu_backend_threadpool::Execute<tflite::cpu_backend_gemm::detail::CustomGemvTask<signed char, signed char, int, signed char,
      tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(), context);
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:99:17: note: in instantiation of function template specialization
      'tflite::cpu_backend_gemm::detail::CustomGemv<signed char, signed char, int, signed char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
    if (detail::CustomGemv(lhs_params, lhs_data, rhs_params, rhs_data,
                ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/integer_ops/fully_connected.h:83:21: note: in instantiation of function template specialization
      'tflite::cpu_backend_gemm::Gemm<signed char, signed char, int, signed char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
  cpu_backend_gemm::Gemm(lhs_params, filter_data, rhs_params, input_data,
                    ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:3: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
  ^
14 errors generated.
shared:ERROR: compiler frontend failed to generate LLVM bitcode, halting
CMakeFiles/nn_ops.dir/build.make:63: recipe for target 'CMakeFiles/nn_ops.dir/bind/src/binding.cpp.o' failed
make[2]: *** [CMakeFiles/nn_ops.dir/bind/src/binding.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/nn_ops.dir/all' failed
make[1]: *** [CMakeFiles/nn_ops.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
info Build.Wasm (4/4) Building... DONE
mv: cannot stat '/home/nhu/code/webml-polyfill/src/nn/wasm/src/build/nn_ops.js': No such file or directory
info Build Building WebAssembly sources... DONE

@akineeic , could you please take a look?

ibelem commented 4 years ago

@BruceDai @Christywl Shall we add in CI?

WASM backend build: $ npm run build-wasm

BruceDai commented 4 years ago

@ibelem No. The reason is that this command will take a long time to download tensorflow submodules source code. So we require to verify changes in src folder before being submitted.

akineeic commented 4 years ago

I have just tested and build successfully, this issue may caused by the version of tf or emscripten.

akineeic commented 4 years ago

And during testing I found that the path of file 'Emscripten.cmake' has changed since version 1.39, so we may need to update the environment variable to adapt that change.

huningxin commented 4 years ago

And during testing I found that the path of file 'Emscripten.cmake' has changed since version 1.39, so we may need to update the environment variable to adapt that change.

Good catch. We need to change it.

Another thing we need to update is the emsdk version in the git sub module. Current one is 7a0e27441eda6cb0e3f1210e6837cae4b080ab4c.

However, after I changed above two items, build still fails to me.

My tensorflow version is r1.15 (590d6eef7e91a6a7392c8ffffb7b58f2e0c8bc6b). My emscripten version is now 1.39.10.

error log

> webml-polyfill@0.0.2 build-wasm /home/nhu/code/webml-polyfill
> node build.js --build-wasm

info Build Initializing...
info Build Initialization completed. Start to build...
info Build Updating submodules...
info Build.SubModules (1/3) Cleaning dependencies folder...
info Build.SubModules (1/3) Cleaning dependencies folder... SKIPPED
info Build.SubModules (2/3) Fetching submodules...
info Build.SubModules (2/3) Fetching submodules... DONE
info Download tensorflow dependencies (3/3) Downloading... 
info Download tensorflow dependencies (3/3) Downloading... DONE
info Build Updating submodules... DONE
info Build Building WebAssembly sources...
info Build.Wasm (1/4) Setting up emsdk...
info Build.Wasm (1/4) Setting up emsdk... DONE
info Build.Wasm (2/4) Find path to camke toolchain...
./upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
info Build.Wasm (2/4) Find path to TOOL_CHAIN... DONE, TOOL_CHAIN: /home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
info Build.Wasm (3/4) Set cmake tool-chain...
info Build.Wasm (3/4) Preparing build config... DONE
info Build.Wasm (4/4) Building...
Scanning dependencies of target nn_ops
[ 16%] Building CXX object CMakeFiles/nn_ops.dir/bind/src/binding.cpp.o
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:28:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_gemmlowp.h:44:26: error: no type named 'OutputStageSaturatingCastToInt8' in namespace 'gemmlowp'
  using Type = gemmlowp::OutputStageSaturatingCastToInt8;
               ~~~~~~~~~~^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_gemmlowp.h:62:26: error: no type named 'SignedL8R8WithLhsNonzeroBitDepthParams' in namespace 'gemmlowp'; did you mean 'L8R8WithLhsNonzeroBitDepthParams'?
  using Type = gemmlowp::SignedL8R8WithLhsNonzeroBitDepthParams;
               ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         L8R8WithLhsNonzeroBitDepthParams
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/bit_depth.h:47:7: note: 'L8R8WithLhsNonzeroBitDepthParams' declared here
using L8R8WithLhsNonzeroBitDepthParams =
      ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:10:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:487:39: error: no member named 'LegacyExecuteAndDestroyTasks' in 'gemmlowp::WorkersPool'
    gemmlowp_context->workers_pool()->LegacyExecuteAndDestroyTasks(tasks);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:589:39: error: no member named 'LegacyExecuteAndDestroyTasks' in 'gemmlowp::WorkersPool'
    gemmlowp_context->workers_pool()->LegacyExecuteAndDestroyTasks(tasks);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:748:32: error: no member named 'OutputStageSaturatingCastToInt8' in namespace 'gemmlowp'
                     gemmlowp::OutputStageSaturatingCastToInt8>
                     ~~~~~~~~~~^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:764:15: error: no type named 'OutputStageSaturatingCastToInt8' in namespace 'gemmlowp'
    gemmlowp::OutputStageSaturatingCastToInt8 saturating_cast_stage;
    ~~~~~~~~~~^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/./external/tensorflow/tensorflow/lite/kernels/internal/optimized/legacy_optimized_ops.h:2335:37: error: no member named 'LegacyExecuteAndDestroyTasks' in 'gemmlowp::WorkersPool'
  gemmlowp_context->workers_pool()->LegacyExecuteAndDestroyTasks(tasks);
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2 arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:178:29: note: in instantiation of function template specialization 'tflite::cpu_backend_threadpool::Execute<tflite::cpu_backend_gemm::detail::CustomGemvTask<float, float, float, float, tflite::cpu_backend_gemm::QuantizationFlavor::kFloatingPoint> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(), context);
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:99:17: note: in instantiation of function template specialization 'tflite::cpu_backend_gemm::detail::CustomGemv<float, float, float, float, tflite::cpu_backend_gemm::QuantizationFlavor::kFloatingPoint>' requested here
    if (detail::CustomGemv(lhs_params, lhs_data, rhs_params, rhs_data,
                ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:235:21: note: in instantiation of function template specialization 'tflite::cpu_backend_gemm::Gemm<float, float, float, float, tflite::cpu_backend_gemm::QuantizationFlavor::kFloatingPoint>' requested here
  cpu_backend_gemm::Gemm(lhs_params, weights_data, rhs_params, input_data,
                    ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:8: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
       ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2 arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:178:29: note: in instantiation of function template specialization 'tflite::cpu_backend_threadpool::Execute<tflite::cpu_backend_gemm::detail::CustomGemvTask<unsigned char, unsigned char, int, unsigned char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(), context);
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:99:17: note: in instantiation of function template specialization 'tflite::cpu_backend_gemm::detail::CustomGemv<unsigned char, unsigned char, int, unsigned char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
    if (detail::CustomGemv(lhs_params, lhs_data, rhs_params, rhs_data,
                ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:294:21: note: in instantiation of function template specialization 'tflite::cpu_backend_gemm::Gemm<unsigned char, unsigned char, int, unsigned char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
  cpu_backend_gemm::Gemm(lhs_params, filter_data, rhs_params, input_data,
                    ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:8: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
       ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2 arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:178:29: note: in instantiation of function template specialization 'tflite::cpu_backend_threadpool::Execute<tflite::cpu_backend_gemm::detail::CustomGemvTask<unsigned char, unsigned char, int, short, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(), context);
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:99:17: note: in instantiation of function template specialization 'tflite::cpu_backend_gemm::detail::CustomGemv<unsigned char, unsigned char, int, short, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
    if (detail::CustomGemv(lhs_params, lhs_data, rhs_params, rhs_data,
                ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:351:21: note: in instantiation of function template specialization 'tflite::cpu_backend_gemm::Gemm<unsigned char, unsigned char, int, short, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
  cpu_backend_gemm::Gemm(lhs_params, filter_data, rhs_params, input_data,
                    ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:8: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
       ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2 arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:800:27: note: in instantiation of function template specialization 'tflite::cpu_backend_threadpool::Execute<tflite::optimized_ops::ShuffledFullyConnectedWorkerTask>' requested here
  cpu_backend_threadpool::Execute(tasks.size(), tasks.data(),
                          ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:8: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
       ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2 arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:1045:29: note: in instantiation of function template specialization 'tflite::cpu_backend_threadpool::Execute<tflite::optimized_ops::MeanWorkerTask>' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(),
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:8: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
       ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2 arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/integer_ops/depthwise_conv.h:2055:29: note: in instantiation of function template specialization 'tflite::cpu_backend_threadpool::Execute<tflite::optimized_integer_ops::DepthwiseConvWorkerTask<signed char, int> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(),
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:8: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
       ^
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp:7:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/optimized_ops.h:42:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:22:
In file included from /home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:40:
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_threadpool.h:52:68: error: too many arguments to function call, expected single argument 'tasks', have 2 arguments
                                                                   tasks);
                                                                   ^~~~~
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h:178:29: note: in instantiation of function template specialization 'tflite::cpu_backend_threadpool::Execute<tflite::cpu_backend_gemm::detail::CustomGemvTask<signed char, signed char, int, signed char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier> >' requested here
    cpu_backend_threadpool::Execute(tasks.size(), tasks.data(), context);
                            ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/cpu_backend_gemm.h:99:17: note: in instantiation of function template specialization 'tflite::cpu_backend_gemm::detail::CustomGemv<signed char, signed char, int, signed char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
    if (detail::CustomGemv(lhs_params, lhs_data, rhs_params, rhs_data,
                ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels/internal/optimized/integer_ops/fully_connected.h:83:21: note: in instantiation of function template specialization 'tflite::cpu_backend_gemm::Gemm<signed char, signed char, int, signed char, tflite::cpu_backend_gemm::QuantizationFlavor::kIntegerWithUniformMultiplier>' requested here
  cpu_backend_gemm::Gemm(lhs_params, filter_data, rhs_params, input_data,
                    ^
/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp/public/../internal/multi_thread_gemm.h:374:8: note: 'Execute' declared here
  void Execute(const std::vector<Task*>& tasks) {
       ^
14 errors generated.
shared:ERROR: '/home/nhu/code/webml-polyfill/deps/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -D__EMSCRIPTEN_major__=1 -D__EMSCRIPTEN_minor__=39 -D__EMSCRIPTEN_tiny__=10 -D_LIBCPP_ABI_VERSION=2 -Dunix -D__unix -D__unix__ -Werror=implicit-function-declaration -Xclang -nostdsysteminc -Xclang -isystem/home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/system/include/libcxx -Xclang -isystem/home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/system/lib/libcxxabi/include -Xclang -isystem/home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/system/include/compat -Xclang -isystem/home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/system/include -Xclang -isystem/home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/system/include/libc -Xclang -isystem/home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten -Xclang -isystem/home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/system/local/include -Xclang -isystem/home/nhu/.emscripten_cache/wasm/include -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/. -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/external -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/absl -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/eigen -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/experimental -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/tensorflow/lite/kernels -I/home/nhu/code/webml-polyfill/src/nn/wasm/src/external/tensorflow/third_party -DNDEBUG -O2 -std=gnu++11 -c -DEMSCRIPTEN -fignore-exceptions /home/nhu/code/webml-polyfill/src/nn/wasm/src/bind/src/binding.cpp -Xclang -isystem/home/nhu/code/webml-polyfill/deps/emsdk/upstream/emscripten/system/include/SDL -c -o CMakeFiles/nn_ops.dir/bind/src/binding.cpp.o -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr' failed (1)
CMakeFiles/nn_ops.dir/build.make:63: recipe for target 'CMakeFiles/nn_ops.dir/bind/src/binding.cpp.o' failed
make[2]: *** [CMakeFiles/nn_ops.dir/bind/src/binding.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/nn_ops.dir/all' failed
make[1]: *** [CMakeFiles/nn_ops.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
info Build.Wasm (4/4) Building... DONE
mv: cannot stat '/home/nhu/code/webml-polyfill/src/nn/wasm/src/build/nn_ops.js': No such file or directory
info Build Building WebAssembly sources... DONE
akineeic commented 4 years ago

I checked this issue with @huningxin and found that this issue is caused by tensorflow's dependence. The dependence won't update with tensorflow because this line. So you need to update dependence manually if you update tensorflow from old version.

huningxin commented 4 years ago

Thanks @akineeic . I will open a PR to fix the emsdk dependency issue.