You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by GitBox <gi...@apache.org> on 2018/06/18 04:39:00 UTC

[GitHub] I3orn2FLY opened a new issue #11323: Build Amalgamation for Android arm64/v8

I3orn2FLY opened a new issue #11323: Build Amalgamation for Android arm64/v8
URL: https://github.com/apache/incubator-mxnet/issues/11323
 
 
   I have problem building amalgamation for android Android arm64/v8.
   What I did:
   1. make standalone toolchain:
   `./make-standalone-toolchain.sh --arch=arm64 --platform=android-24 --install-dir=my-toolchain --toolchain=aarch64-linux-android-4.9`
   
   OUTPUT.
   ```
   HOST_OS=linux
   HOST_EXE=
   HOST_ARCH=x86_64
   HOST_TAG=linux-x86_64
   HOST_NUM_CPUS=8
   BUILD_NUM_CPUS=16
   Toolchain installed to my-toolchain.
   ```
   
   2. Build OpenBLAS:
   'make TARGET=ARMV8 BINARY=64 HOSTCC=gcc CC=aarch64-linux-android-gcc NOFORTRAN=1'
   
   OUTPUT.
   ```
   OpenBLAS build complete. (BLAS CBLAS)
   
     OS               ... Android             
     Architecture     ... arm64               
     BINARY           ... 64bit                 
     C compiler       ... GCC  (command line : aarch64-linux-android-gcc)
     Library Name     ... libopenblas_armv8p-r0.3.1.dev.a (Multi threaded; Max num-threads is 8)
   ```
   
   3. Build Amalgamation. (Error Part)
   `cd amalgamation`
   ```
   export OPENBLAS_ROOT=path/to/android/OpenBLAS
   export CC=aarch64-linux-android-gcc 
   export CXX=aarch64-linux-android-g++ 
   ```
   `make mxnet_predict-all.cc`
   There was error with x86intrin like in https://github.com/apache/incubator-mxnet/issues/10778
   So i changed the line in mxnet_predict-all.cc
   `#include <x86intrin.h`
   
   with following:
   ```
   #if defined(__GNUC__) && defined(__ARM_NEON__)
        /* GCC-compatible compiler, targeting ARM with NEON */
        #include <arm_neon.h>
   #elif defined(__GNUC__) && defined(__IWMMXT__)
        /* GCC-compatible compiler, targeting ARM with WMMX */
        #include <mmintrin.h>
   #endif
   ```
   by https://stackoverflow.com/questions/11228855/header-files-for-x86-simd-intrinsics
   
   Finally:
   `make ANDROID=1`
   
   FINAL ERROR:
   ```
   aarch64-linux-android-g++ -std=c++11 -Wno-unknown-pragmas -Wall -DMSHADOW_USE_CBLAS=1 -DMSHADOW_USE_SSE=0 -DDISABLE_OPENMP=1 -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_MKL=0 -DMSHADOW_RABIT_PS=0 -DMSHADOW_DIST_PS=0 -DDMLC_LOG_STACK_TRACE=0 -DMSHADOW_FORCE_STREAM -DMXNET_USE_OPENCV=0 -DMXNET_PREDICT_ONLY=1 -DMSHADOW_USE_F16C=0 -I/media/cvt/EXTRA/Libraries/AndroidOpenBLAS -I/media/cvt/EXTRA/Libraries/AndroidOpenBLAS/include -D_NDK_MATH_NO_SOFTFP=1 -O3 -fPIC -o jni_libmxnet_predict.o -c jni/predictor.cc
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:9702:0: warning: "MSHADOW_FORCE_STREAM" redefined
    #define MSHADOW_FORCE_STREAM
    ^
   <command-line>:0:0: note: this is the location of the previous definition
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:49160:0: warning: "API_BEGIN" redefined
    #define API_BEGIN() try { on_enter_api(__FUNCTION__);
    ^
   jni/../mxnet_predict-all.cc:28251:0: note: this is the location of the previous definition
    #define API_BEGIN() try {
    ^
   jni/../mxnet_predict-all.cc:49163:0: warning: "API_END" redefined
    #define API_END() } catch(dmlc::Error &_except_) { on_exit_api(); return MXAPIHandleException(_except_); } on_exit_api(); return 0;  // NOLINT(*)
    ^
   jni/../mxnet_predict-all.cc:28254:0: note: this is the location of the previous definition
    #define API_END() } catch(dmlc::Error &_except_) { return NNAPIHandleException(_except_); } return 0;  // NOLINT(*)
    ^
   jni/../mxnet_predict-all.cc:49169:0: warning: "API_END_HANDLE_ERROR" redefined
    #define API_END_HANDLE_ERROR(Finalize) } catch(dmlc::Error &_except_) { Finalize; on_exit_api(); return MXAPIHandleException(_except_); } on_exit_api(); return 0; // NOLINT(*)
    ^
   jni/../mxnet_predict-all.cc:28260:0: note: this is the location of the previous definition
    #define API_END_HANDLE_ERROR(Finalize) } catch(dmlc::Error &_except_) { Finalize; return NNAPIHandleException(_except_); } return 0; // NOLINT(*)
    ^
   jni/../mxnet_predict-all.cc: In member function 'virtual void dmlc::parameter::FieldEntry<float>::Set(void*, const string&) const':
   jni/../mxnet_predict-all.cc:6070:25: error: 'stof' is not a member of 'std'
          this->Get(head) = std::stof(value);
                            ^
   jni/../mxnet_predict-all.cc: In member function 'virtual void dmlc::parameter::FieldEntry<double>::Set(void*, const string&) const':
   jni/../mxnet_predict-all.cc:6095:25: error: 'stod' is not a member of 'std'
          this->Get(head) = std::stod(value);
                            ^
   jni/../mxnet_predict-all.cc: In static member function 'static mxnet::Context mxnet::Context::FromString(const string&)':
   jni/../mxnet_predict-all.cc:23979:14: error: 'stoi' is not a member of 'std'
        int id = std::stoi(str.substr(l+1, r-l-1));
                 ^
   jni/../mxnet_predict-all.cc: In member function 'bool nnvm::Symbol::GetAttr(const string&, std::string*) const':
   jni/../mxnet_predict-all.cc:25949:15: error: 'to_string' is not a member of 'std'
          *out += std::to_string(outputs[i].index);
                  ^
   jni/../mxnet_predict-all.cc: In function 'nnvm::NodeEntry nnvm::pass::{anonymous}::DefaultAggregateGradient(std::vector<nnvm::NodeEntry>&&)':
   jni/../mxnet_predict-all.cc:27282:40: error: 'to_string' is not a member of 'std'
        sum_node->attrs.dict["num_args"] = std::to_string(sum_node->inputs.size());
                                           ^
   jni/../mxnet_predict-all.cc: In member function 'mxnet::NDArray mxnet::NDArray::SliceWithRecord(mxnet::index_t, mxnet::index_t)':
   jni/../mxnet_predict-all.cc:46576:31: error: 'to_string' is not a member of 'std'
      attrs.dict.insert({"begin", std::to_string(begin)});
                                  ^
   jni/../mxnet_predict-all.cc:46576:53: error: no matching function for call to 'std::unordered_map<std::basic_string<char>, std::basic_string<char> >::insert(<brace-enclosed initializer list>)'
      attrs.dict.insert({"begin", std::to_string(begin)});
                                                        ^
   jni/../mxnet_predict-all.cc:46576:53: note: candidates are:
   In file included from /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/unordered_map:48:0,
                    from jni/../mxnet_predict-all.cc:79,
                    from jni/predictor.cc:23:
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:392:7: note: std::pair<typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::iterator, bool> std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(const value_type&) [with _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >; typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::iterator = std::__detail::_Node_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> >, false, true>; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::basic_string<char> >]
          insert(const value_type& __x)
          ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:392:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::pair<const std::basic_string<char>, std::basic_string<char> >&}'
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:399:2: note: template<class _Pair, class> std::pair<typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::iterator, bool> std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >]
     insert(_Pair&& __x)
     ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:399:2: note:   template argument deduction/substitution failed:
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:46576:53: note:   couldn't deduce template parameter '_Pair'
      attrs.dict.insert({"begin", std::to_string(begin)});
                                                        ^
   In file included from /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/unordered_map:48:0,
                    from jni/../mxnet_predict-all.cc:79,
                    from jni/predictor.cc:23:
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:426:7: note: std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::iterator std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator, const value_type&) [with _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::iterator = std::__detail::_Node_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> >, false, true>; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator = std::__detail::_Node_const_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> >, false, true>; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::basic_string<char> >]
          insert(const_iterator __hint, const value_type& __x)
          ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:426:7: note:   candidate expects 2 arguments, 1 provided
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:433:2: note: template<class _Pair, class> std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::iterator std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator, _Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >]
     insert(const_iterator __hint, _Pair&& __x)
     ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:433:2: note:   template argument deduction/substitution failed:
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:46576:53: note:   cannot convert '{"begin", <expression error>}' (type '<brace-enclosed initializer list>') to type 'std::unordered_map<std::basic_string<char>, std::basic_string<char> >::const_iterator {aka std::__detail::_Node_const_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> >, false, true>}'
      attrs.dict.insert({"begin", std::to_string(begin)});
                                                        ^
   In file included from /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/unordered_map:48:0,
                    from jni/../mxnet_predict-all.cc:79,
                    from jni/predictor.cc:23:
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:448:2: note: template<class _InputIterator> void std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >]
     insert(_InputIterator __first, _InputIterator __last)
     ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:448:2: note:   template argument deduction/substitution failed:
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:46576:53: note:   candidate expects 2 arguments, 1 provided
      attrs.dict.insert({"begin", std::to_string(begin)});
                                                        ^
   In file included from /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/unordered_map:48:0,
                    from jni/../mxnet_predict-all.cc:79,
                    from jni/predictor.cc:23:
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:459:7: note: void std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(std::initializer_list<typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::value_type>) [with _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >; typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::value_type = std::pair<const std::basic_string<char>, std::basic_string<char> >]
          insert(initializer_list<value_type> __l)
          ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:459:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::initializer_list<std::pair<const std::basic_string<char>, std::basic_string<char> > >'
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:46577:29: error: 'to_string' is not a member of 'std'
      attrs.dict.insert({"end", std::to_string(end)});
                                ^
   jni/../mxnet_predict-all.cc:46577:49: error: no matching function for call to 'std::unordered_map<std::basic_string<char>, std::basic_string<char> >::insert(<brace-enclosed initializer list>)'
      attrs.dict.insert({"end", std::to_string(end)});
                                                    ^
   jni/../mxnet_predict-all.cc:46577:49: note: candidates are:
   In file included from /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/unordered_map:48:0,
                    from jni/../mxnet_predict-all.cc:79,
                    from jni/predictor.cc:23:
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:392:7: note: std::pair<typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::iterator, bool> std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(const value_type&) [with _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >; typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::iterator = std::__detail::_Node_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> >, false, true>; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::basic_string<char> >]
          insert(const value_type& __x)
          ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:392:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::pair<const std::basic_string<char>, std::basic_string<char> >&}'
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:399:2: note: template<class _Pair, class> std::pair<typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::iterator, bool> std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >]
     insert(_Pair&& __x)
     ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:399:2: note:   template argument deduction/substitution failed:
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:46577:49: note:   couldn't deduce template parameter '_Pair'
      attrs.dict.insert({"end", std::to_string(end)});
                                                    ^
   In file included from /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/unordered_map:48:0,
                    from jni/../mxnet_predict-all.cc:79,
                    from jni/predictor.cc:23:
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:426:7: note: std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::iterator std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator, const value_type&) [with _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::iterator = std::__detail::_Node_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> >, false, true>; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator = std::__detail::_Node_const_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> >, false, true>; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::basic_string<char> >]
          insert(const_iterator __hint, const value_type& __x)
          ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:426:7: note:   candidate expects 2 arguments, 1 provided
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:433:2: note: template<class _Pair, class> std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::iterator std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator, _Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >]
     insert(const_iterator __hint, _Pair&& __x)
     ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:433:2: note:   template argument deduction/substitution failed:
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:46577:49: note:   cannot convert '{"end", <expression error>}' (type '<brace-enclosed initializer list>') to type 'std::unordered_map<std::basic_string<char>, std::basic_string<char> >::const_iterator {aka std::__detail::_Node_const_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> >, false, true>}'
      attrs.dict.insert({"end", std::to_string(end)});
                                                    ^
   In file included from /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/unordered_map:48:0,
                    from jni/../mxnet_predict-all.cc:79,
                    from jni/predictor.cc:23:
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:448:2: note: template<class _InputIterator> void std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >]
     insert(_InputIterator __first, _InputIterator __last)
     ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:448:2: note:   template argument deduction/substitution failed:
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc:46577:49: note:   candidate expects 2 arguments, 1 provided
      attrs.dict.insert({"end", std::to_string(end)});
                                                    ^
   In file included from /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/unordered_map:48:0,
                    from jni/../mxnet_predict-all.cc:79,
                    from jni/predictor.cc:23:
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:459:7: note: void std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(std::initializer_list<typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::value_type>) [with _Key = std::basic_string<char>; _Tp = std::basic_string<char>; _Hash = std::hash<std::basic_string<char> >; _Pred = std::equal_to<std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > >; typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__detail::__is_noexcept_hash<_Key, _Hash> > >::value, false, true> >::value_type = std::pair<const std::basic_string<char>, std::basic_string<char> >]
          insert(initializer_list<value_type> __l)
          ^
   /media/cvt/EXTRA/Libraries/AndroidSDK/ndk-bundle/build/tools/my-toolchain/include/c++/4.9.x/bits/unordered_map.h:459:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::initializer_list<std::pair<const std::basic_string<char>, std::basic_string<char> > >'
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc: In function 'nnvm::NodeAttrs mxnet::imperative::ParseAttrs(const nnvm::Op*, int, int, const char**, const char**)':
   jni/../mxnet_predict-all.cc:49767:38: error: 'to_string' is not a member of 'std'
        attrs.dict.emplace(num_args[op], std::to_string(num_inputs));
                                         ^
   jni/../mxnet_predict-all.cc: In member function 'void mxnet::Imperative::MarkVariables(const std::vector<mxnet::NDArray*>&, const std::vector<unsigned int>&, const std::vector<mxnet::NDArray*>&)':
   jni/../mxnet_predict-all.cc:50372:23: error: 'to_string' is not a member of 'std'
        std::string str_c(std::to_string(variable_count_++));
                          ^
   jni/../mxnet_predict-all.cc: In member function 'void mxnet::Imperative::RecordOp(nnvm::NodeAttrs&&, const std::vector<mxnet::NDArray*>&, const std::vector<mxnet::NDArray*>&, const mxnet::OpStatePtr&, std::vector<bool>*, std::vector<bool>*)':
   jni/../mxnet_predict-all.cc:50465:32: error: 'to_string' is not a member of 'std'
      node->attrs.name = "node_" + std::to_string(node_count_++);
                                   ^
   jni/../mxnet_predict-all.cc:50485:20: error: 'to_string' is not a member of 'std'
              "null" + std::to_string(variable_count_++)).outputs[0].node, 0, 0};
                       ^
   jni/../mxnet_predict-all.cc: In constructor 'mxnet::Imperative::CachedOp::CachedOp(const nnvm::Symbol&, const std::vector<std::pair<std::basic_string<char>, std::basic_string<char> > >&)':
   jni/../mxnet_predict-all.cc:50907:44: error: 'to_string' is not a member of 'std'
                i.node->attrs.name + "_copy" + std::to_string(dedup_out[i]++);
                                               ^
   In file included from jni/predictor.cc:23:0:
   jni/../mxnet_predict-all.cc: In constructor 'mxnet::profiler::Profiler::Profiler()':
   jni/../mxnet_predict-all.cc:58966:48: error: 'to_string' is not a member of 'std'
        this->profile_stat[i].dev_name_ = "cpu/" + std::to_string(i);
                                                   ^
   jni/../mxnet_predict-all.cc:58969:59: error: 'to_string' is not a member of 'std'
        this->profile_stat[cpu_num_ + i].dev_name_ = "gpu/" + std::to_string(i);
                                                              ^
   jni/../mxnet_predict-all.cc: In function 'nnvm::NodeEntry mxnet::exec::AggregateGradient(std::vector<nnvm::NodeEntry>&&)':
   jni/../mxnet_predict-all.cc:59371:42: error: 'to_string' is not a member of 'std'
          sum_node->attrs.dict["num_args"] = std::to_string(v.size());
                                             ^
   jni/../mxnet_predict-all.cc: In member function 'void mxnet::exec::GraphExecutor::ExecuteMonCallback(size_t)':
   jni/../mxnet_predict-all.cc:60645:33: error: 'to_string' is not a member of 'std'
          output_names.emplace_back(std::to_string(i));
                                    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:62060:29: error: 'stof' is not a member of 'std'
              scalars.push_back(std::stof(s->second));
                                ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:65366:40: error: 'to_string' is not a member of 'std'
        ret.push_back(std::string("arg") + std::to_string(i));
                                           ^
   jni/../mxnet_predict-all.cc: At global scope:
   jni/../mxnet_predict-all.cc:65832:25: note: #pragma message: Warning: lapack usage not enabled, linalg-operators will not be available. Ensure that lapack library is installed and build with USE_LAPACK=1 to get lapack functionalities.
         " functionalities.")
                            ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75164:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75253:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_WITH_SCALAR_SUPPORT_WITH_DENSE_RESULT'
    MXNET_OPERATOR_REGISTER_BINARY_WITH_SCALAR_SUPPORT_WITH_DENSE_RESULT(_plus_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75164:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75259:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_WITH_SCALAR_SUPPORT_WITH_DENSE_RESULT'
    MXNET_OPERATOR_REGISTER_BINARY_WITH_SCALAR_SUPPORT_WITH_DENSE_RESULT(_minus_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75142:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75265:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_SCALAR'
    MXNET_OPERATOR_REGISTER_BINARY_SCALAR(_rminus_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75142:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75270:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_SCALAR'
    MXNET_OPERATOR_REGISTER_BINARY_SCALAR(_mul_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75142:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75286:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_SCALAR'
    MXNET_OPERATOR_REGISTER_BINARY_SCALAR(_backward_mul_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75142:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75292:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_SCALAR'
    MXNET_OPERATOR_REGISTER_BINARY_SCALAR(_div_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75142:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75308:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_SCALAR'
    MXNET_OPERATOR_REGISTER_BINARY_SCALAR(_backward_div_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75142:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75315:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_SCALAR'
    MXNET_OPERATOR_REGISTER_BINARY_SCALAR(_rdiv_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75322:57: error: 'stod' is not a member of 'std'
    .set_attr_parser([](NodeAttrs *attrs) { attrs->parsed = std::stod(attrs->dict["scalar"]); })
                                                            ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75142:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75326:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_SCALAR'
    MXNET_OPERATOR_REGISTER_BINARY_SCALAR(_mod_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75333:57: error: 'stod' is not a member of 'std'
    .set_attr_parser([](NodeAttrs *attrs) { attrs->parsed = std::stod(attrs->dict["scalar"]); })
                                                            ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75142:23: error: 'stod' is not a member of 'std'
          attrs->parsed = std::stod(attrs->dict["scalar"]);             \
                          ^
   jni/../mxnet_predict-all.cc:75337:1: note: in expansion of macro 'MXNET_OPERATOR_REGISTER_BINARY_SCALAR'
    MXNET_OPERATOR_REGISTER_BINARY_SCALAR(_rmod_scalar)
    ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:75344:57: error: 'stod' is not a member of 'std'
    .set_attr_parser([](NodeAttrs *attrs) { attrs->parsed = std::stod(attrs->dict["scalar"]); })
                                                            ^
   jni/../mxnet_predict-all.cc: In lambda function:
   jni/../mxnet_predict-all.cc:77320:42: error: 'to_string' is not a member of 'std'
          ret.push_back(std::string("arg") + std::to_string(i));
                                             ^
   jni/predictor.cc: In function '_jfloatArray* Java_org_dmlc_mxnet_Predictor_nativeGetOutput(JNIEnv*, jclass, jlong, jint)':
   jni/predictor.cc:102:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
        for (int i=0; i<size; i++) out[i] = data[i];
                       ^
   make: *** [jni_libmxnet_predict.o] Error 1
   
        for (int i=0; i<size; i++) out[i] = data[i];
                       ^
   make: *** [jni_libmxnet_predict.o] Error 1
   ```
   As you can see there is no specific error to refer, only warnings, however this ends up with error. Dunno what is the problem.
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services