Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 4.3.0
-
None
-
ghx-label-3
Description
When building the native-toolchain, the Kudu build failed with odd messages about gflags:
[ 8%] Linking CXX executable ../../../bin/protoc-gen-insertions /home/ubuntu/workspace/ubuntu-16.04-native-toolchain/native-toolchain/source/kudu/kudu-345fd44ca3/thirdparty/src/glog-0.6.0/src/logging.cc:116: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*, bool)'
It seems that glog was built with Impala's gflags rather than Kudu's thirdparty gflags. Impala has some patches that modify FlagRegisterer.
Why would it find Impala's gflags? Well, gflags has a CMake option REGISTER_INSTALL_PREFIX, which defaults to true. When true, it installs something in the .cmake directory in the user's home directory. From the gflags build log:
-- Installing: /home/ubuntu/.cmake/packages/gflags/2407f150c75a144f5e6c9e90127cb6c1
This seems to be picked up by Kudu's thirdparty build, leading to the error. We should set REGISTER_INSTALL_PREFIX=OFF for gflags.