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