If this isn't the right place to ask, please let me know where to direct this question:
I'm trying to build a slightly modified version of the 9.0.0 tag for arrow (particularly Pyarrow). Walking through the build steps (below), I have run into a problem where the arrow c++ library has symbols that include the tag Bcxx11, but the cython libraries aren't generating that flag. The symbol resolution fails at runtime once the library loads. Particularly these two symbols in python/build/lib.linux-x86_64-3.8/pyarrow/ lib.cpython-38-x86_64-linux-gnu.so U _ZNK5arrow8DataType18ComputeFingerprintEv U _ZNK5arrow8DataType26ComputeMetadataFingerprintEv Don't resolve. All of the corresponding symbols in libarrow_so.900 look like this (not the addition of the B5cxx11Ev): 00000000006addc0 T _ZNK5arrow8DataType18ComputeFingerprintB5cxx11Ev 00000000006ae050 T _ZNK5arrow8DataType26ComputeMetadataFingerprintB5cxx11Ev I've tried building with explicit flags to encourage the libraries to include the cxx11 symbol (in python/CMakeLists.txt). That doesn't seem to impact this issue: set (CMAKE_CXX_STANDARD 11) set (CMAKE_CXX_STANDARD_REQUIRED ON) set (CMAKE_CXX_EXTENSIONS OFF) I also added export PYARROW_CXXFLAGS="-std=c++11" for the wheel build of pyarrow (no effect). I would appreciate any guidance on how to build a clean wheel file of pyarrow that includes my small code changes. Best, -Joe ------------------------------------------------------------------------------------------ Here's what I'm using: gcc version 9.4.0 g++ version 9.4.0 cmake version 3.16.3 CMake command for cpp/build: cmake -DCMAKE_INSTALL_PREFIX=$ARROW_HOME -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release -DARROW_DATASET=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_ZLIB=ON -DARROW_WITH_ZSTD=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON -DARROW_WITH_BROTLI=ON -DARROW_PARQUET=ON -DPARQUET_REQUIRE_ENCRYPTION=ON -DARROW_PYTHON=ON -DARROW_BUILD_TESTS=ON -DARROW_CUDA=ON -DARROW_FLIGHT=ON -DARROW_GANDIVA=ON -DARROW_PLASMA=ON -DARROW_S3=ON -DARROW_TENSORFLOW=ON -DARROW_CSV=ON -DARROW_JSON=ON -DARROW_WITH_RE2=ON -DARROW_IPC=ON -DARROW_DEPENDENCY_SOURCE=BUNDLED .. Setup and build for python: export PYARROW_WITH_DATASET=1 export PYARROW_WITH_BZ2=1 export PYARROW_WITH_ZLIB=1 export PYARROW_WITH_ZSTD=1 export PYARROW_WITH_LZ4=1 export PYARROW_WITH_SNAPPY=1 export PYARROW_WITH_BROTLI=1 export PYARROW_WITH_PARQUET=1 export PYARROW_WITH_PARQUET_ENCRYPTION-1 export PYARROW_WITH_PARQUET_ENCRYPTION=1 export PYARROW_WITH_CUDA=1 export PYARROW_WITH_FLIGHT=1 export PYARROW_WITH_GANDIVA=1 export PYARROW_WITH_PLASMA=1 export PYARROW_WITH_S3=1 export PYARROW_WITH_TENSORFLOW=1 export PYARROW_WITH_CSV=1 export PYARROW_WITH_JSON=1 export_PYARROW_WITH_RE2=1 export PYARROW_WITH_IPC=1 export PYARROW_PARALLEL=4 export PYARROW_CXXFLAGS="-std=c++11" python setup.py build_ext --build-type=release --bundle-arrow-cpp bdist_wheel