diff --git a/p/pyarrow/build_info.json b/p/pyarrow/build_info.json index 4bcab9d757..4ff9e096a7 100644 --- a/p/pyarrow/build_info.json +++ b/p/pyarrow/build_info.json @@ -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": { diff --git a/p/pyarrow/pyarrow_ubi_9.3.sh b/p/pyarrow/pyarrow_ubi_9.3.sh index 24c80ff9f0..8c3c37e572 100644 --- a/p/pyarrow/pyarrow_ubi_9.3.sh +++ b/p/pyarrow/pyarrow_ubi_9.3.sh @@ -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 < 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 @@ -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 @@ -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 @@ -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 \