Skip to content

[C++] Compatibility with glog 0.7 #40181

@h-vetinari

Description

@h-vetinari

Describe the bug, including details regarding any error messages, version, and platform.

Trying to build arrow 15 (and before) with the new glog 0.7 runs into a lot of errors, starting with:

[138/498] Building CXX object src/arrow/CMakeFiles/arrow_objlib.dir/util/logging.cc.o
FAILED: src/arrow/CMakeFiles/arrow_objlib.dir/util/logging.cc.o 
$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c++ -DARROW_EXPORTING -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_HDFS -DARROW_MIMALLOC -DARROW_USE_GLOG -DARROW_WITH_BACKTRACE -DARROW_WITH_BROTLI -DARROW_WITH_BZ2 -DARROW_WITH_LZ4 -DARROW_WITH_RE2 -DARROW_WITH_SNAPPY -DARROW_WITH_TIMING_TESTS -DARROW_WITH_UTF8PROC -DARROW_WITH_ZLIB -DARROW_WITH_ZSTD -DAWS_AUTH_USE_IMPORT_EXPORT -DAWS_CAL_USE_IMPORT_EXPORT -DAWS_CHECKSUMS_USE_IMPORT_EXPORT -DAWS_COMMON_USE_IMPORT_EXPORT -DAWS_COMPRESSION_USE_IMPORT_EXPORT -DAWS_CRT_CPP_USE_IMPORT_EXPORT -DAWS_EVENT_STREAM_USE_IMPORT_EXPORT -DAWS_HTTP_USE_IMPORT_EXPORT -DAWS_IO_USE_IMPORT_EXPORT -DAWS_MQTT_USE_IMPORT_EXPORT -DAWS_S3_USE_IMPORT_EXPORT -DAWS_SDKUTILS_USE_IMPORT_EXPORT -DAWS_SDK_VERSION_MAJOR=1 -DAWS_SDK_VERSION_MINOR=11 -DAWS_SDK_VERSION_PATCH=242 -DAWS_USE_EPOLL -DBOOST_ALL_DYN_LINK -DURI_STATIC_BUILD -DUSE_IMPORT_EXPORT=1 -I$SRC_DIR/cpp/build/src -I$SRC_DIR/cpp/src -I$SRC_DIR/cpp/src/generated -isystem $SRC_DIR/cpp/thirdparty/flatbuffers/include -isystem $SRC_DIR/cpp/thirdparty/hadoop/include -isystem $SRC_DIR/cpp/build/jemalloc_ep-prefix/src -isystem $SRC_DIR/cpp/build/mimalloc_ep/src/mimalloc_ep/include/mimalloc-2.0 -Wno-noexcept-type -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/apache-arrow-15.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fdiagnostics-color=always -fuse-ld=gold  -Wall -fno-semantic-interposition -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/apache-arrow-15.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -DNDEBUG -O2 -ftree-vectorize  -std=c++17 -fPIC -pthread -fPIC -MD -MT src/arrow/CMakeFiles/arrow_objlib.dir/util/logging.cc.o -MF src/arrow/CMakeFiles/arrow_objlib.dir/util/logging.cc.o.d -o src/arrow/CMakeFiles/arrow_objlib.dir/util/logging.cc.o -c $SRC_DIR/cpp/src/arrow/util/logging.cc
In file included from $SRC_DIR/cpp/src/arrow/util/logging.cc:31:
$PREFIX/include/glog/logging.h:60:4: error: #error <glog/logging.h> was not included correctly. See the documention for how to consume the library.
   60 | #  error <glog/logging.h> was not included correctly. See the documention for how to consume the library.
      |    ^~~~~

At first I thought this might be a glog issue (because the release notes don't point to any such breaking changes), but it turns out that this is specific to arrow and can be fixed with a relatively small patch.

Just opening the issue as a reference, and for potential discussion, if compatibility with new glog is somehow at odds with other priorities.

Component(s)

C++, Packaging

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions