That makes sense. I'll give it a try - thanks! On Mon, Oct 10, 2022 at 2:34 PM Antoine Pitrou <anto...@python.org> wrote:
> > > Le 10/10/2022 à 21:31, Joseph Porter a écrit : > > No go. I still get the B5cxx11 extension on the symbols in the compiled > > libarrow library. > > "-D_GLIBCXX_USE_CXX11_ABI=0" is a C++ compiler flag, not a CMake flag. > > One possibility is to pass instead > "-DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0" to CMake. > > > > > > Tried: > > /workspace/arrow/pyarrow-dev/bin/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 -D_GLIBCXX_USE_CXX11_ABI=0 .. > > > > For my next attempt, I modified CMakeLists.txt (in arrow/cpp) to > explicitly > > remove any mention of -std=c++11 in the CXXFLAGS. I'll let you know if > > that works. Any pointers on better ways to troubleshoot this would also > be > > helpful. I'm not super-conversant with CMake. > > > > # Remove --std=c++11 to avoid errors from C compilers > > string(REPLACE "-std=c++11" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) > > > > # Add C++-only flags, like -std=c++11 > > set(CMAKE_CXX_FLAGS "${CXX_ONLY_FLAGS} ${CMAKE_CXX_FLAGS}") > > string(REPLACE "-std=c++11" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) > > > > On Mon, Oct 10, 2022 at 1:29 PM Antoine Pitrou <anto...@python.org> > wrote: > > > >> > >> Then instead pass "-D_GLIBCXX_USE_CXX11_ABI=0" when building the C++ > >> libraries? > >> > >> > >> Le 10/10/2022 à 20:20, Joseph Porter a écrit : > >>> Hi Antoine, > >>> > >>> Here's what I did: > >>> export PYARROW_CXXFLAGS="-std=c++11 -D_GLIBCXX_USE_CXX11_ABI=1" > >>> > >>> Here's what I got: > >>> ImportError: > >>> /workspace/arrow/pyarrow-test/lib/python3.8/site-packages/pyarrow/ > >>> lib.cpython-38-x86_64-linux-gnu.so: undefined symbol: > >>> _ZNK5arrow8DataType18ComputeFingerprintEv > >>> > >>> It looks like the symbol mismatch exists already in the libraries that > >> were > >>> created by the C++ build step, which is why I tried to add the c++11 > >>> directives to the CMakeLists.txt in the python module. > >>> > >>> -Joe > >>> > >>> On Mon, Oct 10, 2022 at 12:37 PM Antoine Pitrou <anto...@python.org> > >> wrote: > >>> > >>>> > >>>> Le 10/10/2022 à 19:27, Joseph Porter a écrit : > >>>>> > >>>>> 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). > >>>> > >>>> Can you try adding "-D_GLIBCXX_USE_CXX11_ABI=1" to those flags? > >>>> > >>> > >> > > >