Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-4868

[C++][Gandiva] Build fails with system Boost on Ubuntu Trusty 14.04

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: C++ - Gandiva
    • Labels:
      None

      Description

      It would be nice for things to work out of the box, but maybe not worth it. I can use vendored Boost for now

      /usr/include/boost/functional/hash/extensions.hpp:269:20: error: no matching function for call to 'hash_value'
                  return hash_value(val);
                         ^~~~~~~~~~
      /usr/include/boost/functional/hash/hash.hpp:249:17: note: in instantiation of member function 'boost::hash<std::shared_ptr<gandiva::Configuration> >::operator()' requested here
              seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2);
                      ^
      /home/wesm/code/arrow/cpp/src/gandiva/filter_cache_key.h:40:12: note: in instantiation of function template specialization 'boost::hash_combine<std::shared_ptr<gandiva::Configuration> >' requested here
          boost::hash_combine(result, configuration);
                 ^
      /usr/include/boost/functional/hash/extensions.hpp:70:17: note: candidate template ignored: could not match 'pair' against 'shared_ptr'
          std::size_t hash_value(std::pair<A, B> const& v)
                      ^
      /usr/include/boost/functional/hash/extensions.hpp:79:17: note: candidate template ignored: could not match 'vector' against 'shared_ptr'
          std::size_t hash_value(std::vector<T, A> const& v)
                      ^
      /usr/include/boost/functional/hash/extensions.hpp:85:17: note: candidate template ignored: could not match 'list' against 'shared_ptr'
          std::size_t hash_value(std::list<T, A> const& v)
                      ^
      /usr/include/boost/functional/hash/extensions.hpp:91:17: note: candidate template ignored: could not match 'deque' against 'shared_ptr'
          std::size_t hash_value(std::deque<T, A> const& v)
                      ^
      /usr/include/boost/functional/hash/extensions.hpp:97:17: note: candidate template ignored: could not match 'set' against 'shared_ptr'
          std::size_t hash_value(std::set<K, C, A> const& v)
                      ^
      /usr/include/boost/functional/hash/extensions.hpp:103:17: note: candidate template ignored: could not match 'multiset' against 'shared_ptr'
          std::size_t hash_value(std::multiset<K, C, A> const& v)
                      ^
      /usr/include/boost/functional/hash/extensions.hpp:109:17: note: candidate template ignored: could not match 'map' against 'shared_ptr'
          std::size_t hash_value(std::map<K, T, C, A> const& v)
                      ^
      /usr/include/boost/functional/hash/extensions.hpp:115:17: note: candidate template ignored: could not match 'multimap' against 'shared_ptr'
          std::size_t hash_value(std::multimap<K, T, C, A> const& v)
                      ^
      /usr/include/boost/functional/hash/extensions.hpp:121:17: note: candidate template ignored: could not match 'complex' against 'shared_ptr'
          std::size_t hash_value(std::complex<T> const& v)
                      ^
      /usr/include/boost/functional/hash/hash.hpp:187:57: note: candidate template ignored: substitution failure [with T = std::shared_ptr<gandiva::Configuration>]: no type named 'type' in 'boost::hash_detail::basic_numbers<std::shared_ptr<gandiva::Configuration> >'
          typename boost::hash_detail::basic_numbers<T>::type hash_value(T v)
                                                         ~~~~ ^
      /usr/include/boost/functional/hash/hash.hpp:193:56: note: candidate template ignored: substitution failure [with T = std::shared_ptr<gandiva::Configuration>]: no type named 'type' in 'boost::hash_detail::long_numbers<std::shared_ptr<gandiva::Configuration> >'
          typename boost::hash_detail::long_numbers<T>::type hash_value(T v)
                                                        ~~~~ ^
      /usr/include/boost/functional/hash/hash.hpp:199:57: note: candidate template ignored: substitution failure [with T = std::shared_ptr<gandiva::Configuration>]: no type named 'type' in 'boost::hash_detail::ulong_numbers<std::shared_ptr<gandiva::Configuration> >'
          typename boost::hash_detail::ulong_numbers<T>::type hash_value(T v)
                                                         ~~~~ ^
      /usr/include/boost/functional/hash/hash.hpp:205:31: note: candidate template ignored: disabled by 'enable_if' [with T = std::shared_ptr<gandiva::Configuration>]
          typename boost::enable_if<boost::is_enum<T>, std::size_t>::type
                                    ^
      /usr/include/boost/functional/hash/hash.hpp:213:36: note: candidate template ignored: could not match 'T *const' against 'const std::shared_ptr<gandiva::Configuration>'
          template <class T> std::size_t hash_value(T* const& v)
                                         ^
      /usr/include/boost/functional/hash/hash.hpp:306:24: note: candidate template ignored: could not match 'const T [N]' against 'const std::shared_ptr<gandiva::Configuration>'
          inline std::size_t hash_value(const T (&x)[N])
                             ^
      /usr/include/boost/functional/hash/hash.hpp:312:24: note: candidate template ignored: could not match 'T [N]' against 'const std::shared_ptr<gandiva::Configuration>'
          inline std::size_t hash_value(T (&x)[N])
                             ^
      /usr/include/boost/functional/hash/hash.hpp:319:24: note: candidate template ignored: could not match 'basic_string' against 'shared_ptr'
          inline std::size_t hash_value(
                             ^
      /usr/include/boost/functional/hash/hash.hpp:326:57: note: candidate template ignored: substitution failure [with T = std::shared_ptr<gandiva::Configuration>]: no type named 'type' in 'boost::hash_detail::float_numbers<std::shared_ptr<gandiva::Configuration> >'
          typename boost::hash_detail::float_numbers<T>::type hash_value(T v)
                                                         ~~~~ ^
      1 error generated.
      make[2]: *** [src/gandiva/CMakeFiles/gandiva_objlib.dir/filter.cc.o] Error 1
      make[2]: *** Waiting for unfinished jobs....
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              wesmckinn Wes McKinney
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: