Skip to content
Merged
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
2 changes: 1 addition & 1 deletion p/pyarrow/build_info.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"docker_build": false,
"validate_build_script": true,
"use_non_root_user": false,
"11.0.0": {
"apache-arrow-11.0.0": {
"build_script": "pyarrow_ubi_9.3.sh"
},
"14.0.1": {
Expand Down
72 changes: 71 additions & 1 deletion p/pyarrow/pyarrow_ubi_9.3.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,70 @@ export PYARROW_BUNDLE_ARROW_CPP=1
export LD_LIBRARY_PATH=$ARROW_HOME/lib:$LD_LIBRARY_PATH
export CMAKE_PREFIX_PATH=$ARROW_HOME:$CMAKE_PREFIX_PATH

echo "-----------------boost_cpp installing-----------------------"

git clone https://github.com/boostorg/boost
cd boost
git checkout boost-1.81.0
git submodule update --init

mkdir Boost_prefix
export BOOST_PREFIX=$(pwd)/Boost_prefix

INCLUDE_PATH="${BOOST_PREFIX}/include"
LIBRARY_PATH="${BOOST_PREFIX}/lib"

export CC=$(which gcc)
export CXX=$(which g++)
export target_platform=$(uname)-$(uname -m)
CXXFLAGS="${CXXFLAGS} -fPIC"
TOOLSET=gcc

# http://www.boost.org/build/doc/html/bbv2/tasks/crosscompile.html
cat <<EOF > tools/build/example/site-config.jam
using ${TOOLSET} : : ${CXX} ;
EOF

LINKFLAGS="${LINKFLAGS} -L${LIBRARY_PATH}"

CXXFLAGS="$(echo ${CXXFLAGS} | sed 's/ -march=[^ ]*//g' | sed 's/ -mcpu=[^ ]*//g' |sed 's/ -mtune=[^ ]*//g')" \
CFLAGS="$(echo ${CFLAGS} | sed 's/ -march=[^ ]*//g' | sed 's/ -mcpu=[^ ]*//g' |sed 's/ -mtune=[^ ]*//g')" \
CXX=${CXX_FOR_BUILD:-${CXX}} CC=${CC_FOR_BUILD:-${CC}} ./bootstrap.sh \
--prefix="${BOOST_PREFIX}" \
--without-libraries=python \
--with-toolset=${TOOLSET} \
--with-icu="${BOOST_PREFIX}" || (cat bootstrap.log; exit 1)
ADDRESS_MODEL=64
ARCHITECTURE=power
ABI="sysv"
BINARY_FORMAT="elf"

export CPU_COUNT=$(nproc)

echo " Building and installing Boost...."
./b2 -q \
variant=release \
address-model="${ADDRESS_MODEL}" \
architecture="${ARCHITECTURE}" \
binary-format="${BINARY_FORMAT}" \
abi="${ABI}" \
debug-symbols=off \
threading=multi \
runtime-link=shared \
link=shared \
toolset=${TOOLSET} \
include="${INCLUDE_PATH}" \
cxxflags="${CXXFLAGS} -Wno-deprecated-declarations" \
linkflags="${LINKFLAGS}" \
--layout=system \
-j"${CPU_COUNT}" \
install

# Remove Python headers as we don't build Boost.Python.
rm "${BOOST_PREFIX}/include/boost/python.hpp"
rm -r "${BOOST_PREFIX}/include/boost/python"
cd $CURRENT_DIR

echo "Cloning the repository..."
git clone $PACKAGE_URL
cd arrow
Expand All @@ -48,6 +112,8 @@ echo "Setting test data paths..."
export PARQUET_TEST_DATA="${PWD}/cpp/submodules/parquet-testing/data"
export ARROW_TEST_DATA="${PWD}/testing/data"



echo "Applying fixes for nogil placement and rvalue issues..."
sed -i -E 's/(nogil)(.*)(except[^:]*)/\2\3 \1/' python/pyarrow/error.pxi
sed -i -E 's/(nogil)(.*)(except[^:]*)/\2\3 \1/' python/pyarrow/includes/libarrow.pxd
Expand All @@ -60,9 +126,11 @@ sed -i -E 's/\&\&/\&/g' python/pyarrow/includes/libarrow_fs.pxd
echo "Fixes applied."

pip install -r python/requirements-build.txt
pip install "cython<3.0" wheel
pip install "cython<3.0" wheel

echo "Preparing for build..."
export BOOST_ROOT=${BOOST_PREFIX}
export CMAKE_PREFIX_PATH=$ARROW_HOME:$BOOST_PREFIX:$CMAKE_PREFIX_PATH

mkdir cpp/build
cd cpp/build
Expand All @@ -82,6 +150,8 @@ cmake -DCMAKE_INSTALL_PREFIX=$ARROW_HOME \
-DARROW_WITH_BZ2=ON \
-DARROW_WITH_LZ4=ON \
-DARROW_WITH_SNAPPY=ON \
-DBoost_DIR=${BOOST_PREFIX} \
-DBoost_INCLUDE_DIR=${BOOST_PREFIX}/include/ \
-DARROW_WITH_ZLIB=ON \
-DARROW_WITH_ZSTD=ON \
-DPARQUET_REQUIRE_ENCRYPTION=ON \
Expand Down