You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gluten.apache.org by yu...@apache.org on 2026/04/16 08:12:46 UTC
(gluten) branch main updated: [GLUTEN-11906][VL] Support dynamic build for ppc64le (#11907)
This is an automated email from the ASF dual-hosted git repository.
yuanzhou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git
The following commit(s) were added to refs/heads/main by this push:
new 6c305d5ff7 [GLUTEN-11906][VL] Support dynamic build for ppc64le (#11907)
6c305d5ff7 is described below
commit 6c305d5ff7da1a36bd5ee40a456ae94825781d92
Author: James Jenkins <10...@users.noreply.github.com>
AuthorDate: Thu Apr 16 04:12:39 2026 -0400
[GLUTEN-11906][VL] Support dynamic build for ppc64le (#11907)
Add support for building gluten on the ppc64le architecture
Related: #11906
Signed-off-by: Chongshi Zhang <zh...@us.ibm.com>
Co-authored-by: Chongshi Zhang <zh...@us.ibm.com>
---
cpp/velox/CMakeLists.txt | 4 ++++
dev/build-helper-functions.sh | 6 ++++++
dev/build-thirdparty.sh | 2 +-
dev/docker/Dockerfile.centos8-dynamic-build | 5 +++--
dev/docker/Dockerfile.centos9-dynamic-build | 5 +++--
dev/package.sh | 2 ++
ep/build-velox/src/build-velox.sh | 2 +-
ep/build-velox/src/get-velox.sh | 3 ++-
pom.xml | 23 +++++++++++++++++++++++
9 files changed, 45 insertions(+), 7 deletions(-)
diff --git a/cpp/velox/CMakeLists.txt b/cpp/velox/CMakeLists.txt
index fc6391b7f3..b9d3e65afe 100644
--- a/cpp/velox/CMakeLists.txt
+++ b/cpp/velox/CMakeLists.txt
@@ -47,6 +47,10 @@ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)
set(SYSTEM_LIB_MULTIARCH_PATH
"/usr/lib"
CACHE PATH "System Lib MultiArch dir")
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL ppc64le)
+ set(SYSTEM_LIB_MULTIARCH_PATH
+ "/usr/lib"
+ CACHE PATH "System Lib MultiArch dir")
else()
message(FATAL_ERROR "Unsupported processor type: ${CMAKE_SYSTEM_PROCESSOR}")
endif()
diff --git a/dev/build-helper-functions.sh b/dev/build-helper-functions.sh
index c6aa525cc4..4be8ad170b 100644
--- a/dev/build-helper-functions.sh
+++ b/dev/build-helper-functions.sh
@@ -55,6 +55,8 @@ function get_cxx_flags {
CPU_ARCH="sse"
elif [ "$MACHINE" = "aarch64" ]; then
CPU_ARCH="aarch64"
+ elif [ "$MACHINE" = "ppc64le" ]; then
+ CPU_ARCH="ppc64le"
fi
fi
fi
@@ -121,6 +123,10 @@ function get_cxx_flags {
echo -n "-march=armv8-a+crc+crypto -std=c++20 $ADDITIONAL_FLAGS"
fi
;;
+
+ "ppc64le")
+ echo -n "-mcpu=power10 -std=c++20 $ADDITIONAL_FLAGS"
+ ;;
*)
echo -n "Architecture not supported!"
esac
diff --git a/dev/build-thirdparty.sh b/dev/build-thirdparty.sh
index 0ef37111fa..5676154b12 100755
--- a/dev/build-thirdparty.sh
+++ b/dev/build-thirdparty.sh
@@ -38,7 +38,7 @@ function process_setup_ubuntu_2204 {
function process_setup_centos_9 {
cp /lib64/{libre2.so.9,libdouble-conversion.so.3,libevent-2.1.so.7,libdwarf.so.0,libicudata.so.67,libicui18n.so.67,libicuuc.so.67,libsodium.so.23} $THIRDPARTY_LIB/
cp /usr/local/lib/{libboost_context.so.1.84.0,libboost_filesystem.so.1.84.0,libboost_program_options.so.1.84.0,libboost_regex.so.1.84.0,libboost_system.so.1.84.0,libboost_thread.so.1.84.0,libboost_atomic.so.1.84.0} $THIRDPARTY_LIB/
- cp /usr/local/lib64/{libgflags.so.2.2,libglog.so.1} $THIRDPARTY_LIB/
+ cp /usr/local/lib64/{libgflags.so.2.2,libglog.so.1,libgeos.so.3.10.7} $THIRDPARTY_LIB/
}
function process_setup_centos_8 {
diff --git a/dev/docker/Dockerfile.centos8-dynamic-build b/dev/docker/Dockerfile.centos8-dynamic-build
index 785c6c545b..c449921634 100644
--- a/dev/docker/Dockerfile.centos8-dynamic-build
+++ b/dev/docker/Dockerfile.centos8-dynamic-build
@@ -43,8 +43,9 @@ RUN set -ex; \
./install-resources.sh 3.5; \
./install-resources.sh 3.5-scala2.13; \
./install-resources.sh 4.0; \
- if [ "$(uname -m)" = "aarch64" ]; then \
- export CPU_TARGET="aarch64"; \
+ ARCH=$(uname -m); \
+ if [[ "$ARCH" == "aarch64" || "$ARCH" == "ppc64le" ]]; then \
+ export CPU_TARGET="$ARCH"; \
fi; \
cd /opt/gluten; \
source /opt/rh/gcc-toolset-11/enable; \
diff --git a/dev/docker/Dockerfile.centos9-dynamic-build b/dev/docker/Dockerfile.centos9-dynamic-build
index 25866155cc..55cc4dcc06 100644
--- a/dev/docker/Dockerfile.centos9-dynamic-build
+++ b/dev/docker/Dockerfile.centos9-dynamic-build
@@ -41,8 +41,9 @@ RUN set -ex; \
./install-resources.sh 3.5; \
./install-resources.sh 3.5-scala2.13; \
./install-resources.sh 4.0; \
- if [ "$(uname -m)" = "aarch64" ]; then \
- export CPU_TARGET="aarch64"; \
+ ARCH=$(uname -m); \
+ if [[ "$ARCH" == "aarch64" || "$ARCH" == "ppc64le" ]]; then \
+ export CPU_TARGET="$ARCH"; \
fi; \
cd /opt/gluten; \
source /opt/rh/gcc-toolset-12/enable; \
diff --git a/dev/package.sh b/dev/package.sh
index 34a24b9b52..0dc316c87c 100755
--- a/dev/package.sh
+++ b/dev/package.sh
@@ -27,6 +27,8 @@ cd "$GLUTEN_DIR"
if [ "$ARCH" = "aarch64" ]; then
export CPU_TARGET="aarch64"
+elif [ "$ARCH" = "ppc64le" ]; then
+ export CPU_TARGET="ppc64le"
fi
# build gluten with velox backend, prompt always respond y
diff --git a/ep/build-velox/src/build-velox.sh b/ep/build-velox/src/build-velox.sh
index 2299792671..8d2d3317c0 100755
--- a/ep/build-velox/src/build-velox.sh
+++ b/ep/build-velox/src/build-velox.sh
@@ -155,7 +155,7 @@ function compile {
export Arrow_SOURCE=AUTO
if [ $ARCH == 'x86_64' ]; then
make $COMPILE_TYPE $NUM_THREADS_OPTS EXTRA_CMAKE_FLAGS="${COMPILE_OPTION}"
- elif [[ "$ARCH" == 'arm64' || "$ARCH" == 'aarch64' ]]; then
+ elif [[ "$ARCH" == 'arm64' || "$ARCH" == 'aarch64' || "$ARCH" == "ppc64le" ]]; then
CPU_TARGET=$ARCH make $COMPILE_TYPE $NUM_THREADS_OPTS EXTRA_CMAKE_FLAGS="${COMPILE_OPTION}"
else
echo "Unsupported arch: $ARCH"
diff --git a/ep/build-velox/src/get-velox.sh b/ep/build-velox/src/get-velox.sh
index 1fd0d8073c..7a93663118 100755
--- a/ep/build-velox/src/get-velox.sh
+++ b/ep/build-velox/src/get-velox.sh
@@ -197,8 +197,9 @@ function setup_linux {
elif [[ "$LINUX_DISTRIBUTION" == "rhel" ]]; then
case "$LINUX_VERSION_ID" in
9.6) ;;
+ 9.7) ;;
*)
- echo "Unsupported openEuler version: $LINUX_VERSION_ID"
+ echo "Unsupported rhel version: $LINUX_VERSION_ID"
exit 1
;;
esac
diff --git a/pom.xml b/pom.xml
index 2227f9d353..f2381563a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2234,5 +2234,28 @@
<os.full.name>${platform}_${arch}</os.full.name>
</properties>
</profile>
+ <profile>
+ <id>linux-ppc64le</id>
+ <activation>
+ <os>
+ <family>Linux</family>
+ <arch>ppc64le</arch>
+ </os>
+ </activation>
+ <properties>
+ <platform>linux</platform>
+ <arch>ppc64le</arch>
+ <os.full.name>${platform}_${arch}</os.full.name>
+ </properties>
+ </profile>
+ <profile>
+ <id>disaggregated-shuffle</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <modules>
+ <module>gluten-disaggregated-shuffle</module>
+ </modules>
+ </profile>
</profiles>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org