Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-7105

Error while building the Drill native client

    XMLWordPrintableJSON

Details

    Description

      Steps:

      1. cd contrib/native/client
      2. mkdir build
      3. cd build && cmake -std=c++11 -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ..
      4. make

      Expected result:
      The native client is built successfully.

      Actual result:
      Error happens:

      [  4%] Built target y2038
      [  7%] Building CXX object src/protobuf/CMakeFiles/protomsgs.dir/BitControl.pb.cc.o
      In file included from /usr/include/c++/5/mutex:35:0,
                       from /usr/local/include/google/protobuf/stubs/mutex.h:33,
                       from /usr/local/include/google/protobuf/stubs/common.h:52,
                       from /home/agozhiy/git_repo/drill/contrib/native/client/src/protobuf/BitControl.pb.h:9,
                       from /home/agozhiy/git_repo/drill/contrib/native/client/src/protobuf/BitControl.pb.cc:4:
      /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
       #error This file requires compiler and library support \
        ^
      In file included from /usr/local/include/google/protobuf/stubs/common.h:52:0,
                       from /home/agozhiy/git_repo/drill/contrib/native/client/src/protobuf/BitControl.pb.h:9,
                       from /home/agozhiy/git_repo/drill/contrib/native/client/src/protobuf/BitControl.pb.cc:4:
      /usr/local/include/google/protobuf/stubs/mutex.h:58:8: error: 'mutex' in namespace 'std' does not name a type
         std::mutex mu_;
              ^
      /usr/local/include/google/protobuf/stubs/mutex.h: In member function 'void google::protobuf::internal::WrappedMutex::Lock()':
      /usr/local/include/google/protobuf/stubs/mutex.h:51:17: error: 'mu_' was not declared in this scope
         void Lock() { mu_.lock(); }
                       ^
      /usr/local/include/google/protobuf/stubs/mutex.h: In member function 'void google::protobuf::internal::WrappedMutex::Unlock()':
      /usr/local/include/google/protobuf/stubs/mutex.h:52:19: error: 'mu_' was not declared in this scope
         void Unlock() { mu_.unlock(); }
                         ^
      /usr/local/include/google/protobuf/stubs/mutex.h: At global scope:
      /usr/local/include/google/protobuf/stubs/mutex.h:61:7: error: expected nested-name-specifier before 'Mutex'
       using Mutex = WrappedMutex;
             ^
      /usr/local/include/google/protobuf/stubs/mutex.h:66:28: error: expected ')' before '*' token
         explicit MutexLock(Mutex *mu) : mu_(mu) { this->mu_->Lock(); }
                                  ^
      /usr/local/include/google/protobuf/stubs/mutex.h:69:3: error: 'Mutex' does not name a type
         Mutex *const mu_;
         ^
      /usr/local/include/google/protobuf/stubs/mutex.h: In destructor 'google::protobuf::internal::MutexLock::~MutexLock()':
      /usr/local/include/google/protobuf/stubs/mutex.h:67:24: error: 'class google::protobuf::internal::MutexLock' has no member named 'mu_'
         ~MutexLock() { this->mu_->Unlock(); }
                              ^
      /usr/local/include/google/protobuf/stubs/mutex.h: At global scope:
      /usr/local/include/google/protobuf/stubs/mutex.h:80:33: error: expected ')' before '*' token
         explicit MutexLockMaybe(Mutex *mu) :
                                       ^
      In file included from /usr/local/include/google/protobuf/arena.h:48:0,
                       from /home/agozhiy/git_repo/drill/contrib/native/client/src/protobuf/BitControl.pb.h:23,
                       from /home/agozhiy/git_repo/drill/contrib/native/client/src/protobuf/BitControl.pb.cc:4:
      /usr/include/c++/5/typeinfo:39:37: error: expected '}' before end of line
      /usr/include/c++/5/typeinfo:39:37: error: expected unqualified-id before end of line
      /usr/include/c++/5/typeinfo:39:37: error: expected '}' before end of line
      /usr/include/c++/5/typeinfo:39:37: error: expected '}' before end of line
      /usr/include/c++/5/typeinfo:39:37: error: expected '}' before end of line
      /usr/include/c++/5/typeinfo:39:37: error: expected declaration before end of line
      src/protobuf/CMakeFiles/protomsgs.dir/build.make:62: recipe for target 'src/protobuf/CMakeFiles/protomsgs.dir/BitControl.pb.cc.o' failed
      make[2]: *** [src/protobuf/CMakeFiles/protomsgs.dir/BitControl.pb.cc.o] Error 1
      CMakeFiles/Makefile2:223: recipe for target 'src/protobuf/CMakeFiles/protomsgs.dir/all' failed
      make[1]: *** [src/protobuf/CMakeFiles/protomsgs.dir/all] Error 2
      Makefile:94: recipe for target 'all' failed
      make: *** [all] Error 2
      

      Note: This is a regression caused by updating protobuf to version 3.6.1

      Attachments

        Issue Links

          Activity

            People

              angozhiy Anton Gozhiy
              angozhiy Anton Gozhiy
              Vova Vysotskyi Vova Vysotskyi
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: