Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions cpp/src/arrow/symbols.map
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,24 @@
# a system with an older libstdc++ which doesn't include the necessary
# c++11 symbols.
std::*;
__cxxabiv1::*;
__gnu_cxx::*;

# Statically linked C++ dependencies
boost::*;
snappy::*;
};

# Things that are C++ but are not matched by above filters
__dynamic_cast;
execute_native_thread_routine;
__gcclibcxx_demangle_callback;
__gxx_personality_v0;
# operator new/delete
_ZdaPv;
_ZdlPv;
_Znam;
_Znwm;
_ZSt14__convert*;
_ZSt21__copy*;
};
5 changes: 5 additions & 0 deletions python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -401,5 +401,10 @@ foreach(module ${CYTHON_EXTENSIONS})
INSTALL_RPATH ${module_install_rpath})
endif()

if (NOT APPLE AND NOT MSVC)
set_target_properties(${module_name} PROPERTIES
LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/pyarrow/symbols.map")
endif()

target_link_libraries(${module_name} ${LINK_LIBS})
endforeach(module)
6 changes: 4 additions & 2 deletions python/manylinux1/Dockerfile-x86_64
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,13 @@
# under the License.
FROM quay.io/xhochy/arrow_manylinux1_x86_64_base:latest

RUN yum install -y gdb

ADD arrow /arrow
WORKDIR /arrow/cpp
RUN mkdir build-plain
WORKDIR /arrow/cpp/build-plain
RUN cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/arrow-dist -DARROW_BUILD_TESTS=OFF -DARROW_BUILD_SHARED=ON -DARROW_BOOST_USE_SHARED=OFF -DARROW_JEMALLOC=ON -DARROW_RPATH_ORIGIN=ON -DARROW_JEMALLOC_USE_SHARED=OFF ..
RUN cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/arrow-dist -DARROW_BUILD_TESTS=OFF -DARROW_BUILD_SHARED=ON -DARROW_BOOST_USE_SHARED=OFF -DARROW_JEMALLOC=ON -DARROW_RPATH_ORIGIN=ON -DARROW_JEMALLOC_USE_SHARED=OFF -DCMAKE_CXX_FLAGS='-Wl,-Bsymbolic -static-libstdc++ -fno-omit-frame-pointer' ..
RUN ninja install

ADD scripts/check_arrow_visibility.sh /
Expand All @@ -29,5 +31,5 @@ RUN /check_arrow_visibility.sh
WORKDIR /
RUN git clone https://github.com/apache/parquet-cpp.git
WORKDIR /parquet-cpp
RUN ARROW_HOME=/arrow-dist cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/arrow-dist -DPARQUET_BUILD_TESTS=OFF -DPARQUET_BUILD_SHARED=OFF -DPARQUET_BUILD_STATIC=ON -DPARQUET_BOOST_USE_SHARED=OFF -GNinja .
RUN ARROW_HOME=/arrow-dist cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/arrow-dist -DPARQUET_BUILD_TESTS=OFF -DPARQUET_BUILD_SHARED=OFF -DPARQUET_BUILD_STATIC=ON -DPARQUET_BOOST_USE_SHARED=OFF -GNinja -DCMAKE_CXX_FLAGS='-Wl,-Bsymbolic -static-libstdc++' .
RUN ninja install
5 changes: 4 additions & 1 deletion python/manylinux1/build_arrow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ export PYARROW_WITH_PLASMA=1
export PYARROW_BUNDLE_ARROW_CPP=1
export PKG_CONFIG_PATH=/arrow-dist/lib64/pkgconfig
export PYARROW_CMAKE_OPTIONS='-DTHRIFT_HOME=/usr'
export PYARROW_CXXFLAGS='-Wl,-Bsymbolic -static-libstdc++'
# Ensure the target directory exists
mkdir -p /io/dist

Expand Down Expand Up @@ -81,7 +82,9 @@ for PYTHON in ${PYTHON_VERSIONS}; do
source /venv-test-${PYTHON}/bin/activate
pip install repaired_wheels/*.whl

py.test --parquet /venv-test-${PYTHON}/lib/*/site-packages/pyarrow -v
ulimit -c unlimited
py.test --parquet /venv-test-${PYTHON}/lib/*/site-packages/pyarrow -v || true
/bin/bash
deactivate

mv repaired_wheels/*.whl /io/dist
Expand Down
3 changes: 3 additions & 0 deletions python/manylinux1/scripts/check_arrow_visibility.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,7 @@ then
exit 0
fi

grep ' T ' nm_arrow.log | grep -v arrow
nm -D /arrow-dist/lib64/libarrow.so | grep ' T ' | grep -v arrow

exit 1
2 changes: 1 addition & 1 deletion python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ def _run_cmake(self):
cmake_options.append('-DPYARROW_BUILD_PLASMA=on')

if len(self.cmake_cxxflags) > 0:
cmake_options.append('-DPYARROW_CXXFLAGS="{0}"'
cmake_options.append('-DPYARROW_CXXFLAGS={0}'
.format(self.cmake_cxxflags))

if self.bundle_arrow_cpp:
Expand Down