This is an automated email from the ASF dual-hosted git repository.

yma pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new c4d9db271 [VL] Fix for centos9 build of Gluten (#6183)
c4d9db271 is described below

commit c4d9db2714442a905efe6e15f57c10ef4ca6e0f5
Author: deepa <[email protected]>
AuthorDate: Tue Jul 23 19:45:13 2024 +0530

    [VL] Fix for centos9 build of Gluten (#6183)
    
    * Merge conflicts resolution
    
    * New build script updated
    
    * Handled review comments
    
    * removed BUILD_PROTOBUF from centos9
    
    * Updated based on review comment
    
    * Handling review comments
    
    * Typo during merge added back
    
    ---------
    
    Co-authored-by: Deepashree Gandhi <[email protected]>
---
 .../backendsapi/velox/VeloxListenerApi.scala       |  4 +-
 .../gluten/utils/SharedLibraryLoaderCentos9.scala  | 49 ++++++++++++++++++++++
 dev/build_helper_functions.sh                      |  1 +
 dev/package.sh                                     | 10 ++++-
 ep/build-velox/src/get_velox.sh                    | 40 ++++++++++++++++++
 5 files changed, 102 insertions(+), 2 deletions(-)

diff --git 
a/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxListenerApi.scala
 
b/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxListenerApi.scala
index e5c3cb084..86925fd1d 100644
--- 
a/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxListenerApi.scala
+++ 
b/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxListenerApi.scala
@@ -66,6 +66,8 @@ class VeloxListenerApi extends ListenerApi {
       new SharedLibraryLoaderUbuntu2004
     } else if (systemName.contains("Ubuntu") && 
systemVersion.startsWith("22.04")) {
       new SharedLibraryLoaderUbuntu2204
+    } else if (systemName.contains("CentOS") && systemVersion.startsWith("9")) 
{
+      new SharedLibraryLoaderCentos9
     } else if (systemName.contains("CentOS") && systemVersion.startsWith("8")) 
{
       new SharedLibraryLoaderCentos8
     } else if (systemName.contains("CentOS") && systemVersion.startsWith("7")) 
{
@@ -83,7 +85,7 @@ class VeloxListenerApi extends ListenerApi {
     } else if (system.contains("tencentos") && system.contains("3.2")) {
       new SharedLibraryLoaderCentos8
     } else if (systemName.contains("Red Hat") && 
systemVersion.startsWith("9")) {
-      new SharedLibraryLoaderCentos8
+      new SharedLibraryLoaderCentos9
     } else if (systemName.contains("Red Hat") && 
systemVersion.startsWith("8")) {
       new SharedLibraryLoaderCentos8
     } else if (systemName.contains("Red Hat") && 
systemVersion.startsWith("7")) {
diff --git 
a/backends-velox/src/main/scala/org/apache/gluten/utils/SharedLibraryLoaderCentos9.scala
 
b/backends-velox/src/main/scala/org/apache/gluten/utils/SharedLibraryLoaderCentos9.scala
new file mode 100755
index 000000000..2d9ececb3
--- /dev/null
+++ 
b/backends-velox/src/main/scala/org/apache/gluten/utils/SharedLibraryLoaderCentos9.scala
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.gluten.utils
+
+import org.apache.gluten.vectorized.JniLibLoader
+
+class SharedLibraryLoaderCentos9 extends SharedLibraryLoader {
+  override def loadLib(loader: JniLibLoader): Unit = {
+    loader
+      .newTransaction()
+      .loadAndCreateLink("libboost_atomic.so.1.84.0", "libboost_atomic.so", 
false)
+      .loadAndCreateLink("libboost_thread.so.1.84.0", "libboost_thread.so", 
false)
+      .loadAndCreateLink("libboost_system.so.1.84.0", "libboost_system.so", 
false)
+      .loadAndCreateLink("libicudata.so.67", "libicudata.so", false)
+      .loadAndCreateLink("libicuuc.so.67", "libicuuc.so", false)
+      .loadAndCreateLink("libicui18n.so.67", "libicui18n.so", false)
+      .loadAndCreateLink("libboost_regex.so.1.84.0", "libboost_regex.so", 
false)
+      .loadAndCreateLink("libboost_program_options.so.1.84.0", 
"libboost_program_options.so", false)
+      .loadAndCreateLink("libboost_filesystem.so.1.84.0", 
"libboost_filesystem.so", false)
+      .loadAndCreateLink("libboost_context.so.1.84.0", "libboost_context.so", 
false)
+      .loadAndCreateLink("libdouble-conversion.so.3", 
"libdouble-conversion.so", false)
+      .loadAndCreateLink("libevent-2.1.so.7", "libevent-2.1.so", false)
+      .loadAndCreateLink("libgflags.so.2.2", "libgflags.so", false)
+      .loadAndCreateLink("libglog.so.1", "libglog.so", false)
+      .loadAndCreateLink("libdwarf.so.0", "libdwarf.so", false)
+      .loadAndCreateLink("libidn.so.12", "libidn.so", false)
+      .loadAndCreateLink("libntlm.so.0", "libntlm.so", false)
+      .loadAndCreateLink("libgsasl.so.7", "libgsasl.so", false)
+      .loadAndCreateLink("libprotobuf.so.32", "libprotobuf.so", false)
+      .loadAndCreateLink("libhdfs3.so.1", "libhdfs3.so", false)
+      .loadAndCreateLink("libre2.so.9", "libre2.so", false)
+      .loadAndCreateLink("libsodium.so.23", "libsodium.so", false)
+      .commit()
+  }
+}
diff --git a/dev/build_helper_functions.sh b/dev/build_helper_functions.sh
index 8559911c1..92ae5c29a 100644
--- a/dev/build_helper_functions.sh
+++ b/dev/build_helper_functions.sh
@@ -135,6 +135,7 @@ function setup_linux {
     scripts/setup-ubuntu.sh
   elif [[ "$LINUX_DISTRIBUTION" == "centos" ]]; then
     case "$LINUX_VERSION_ID" in
+    9) scripts/setup-centos9.sh ;;
     8) scripts/setup-centos8.sh ;;
     7)
       scripts/setup-centos7.sh
diff --git a/dev/package.sh b/dev/package.sh
index 7e7e793bd..db9125c2f 100755
--- a/dev/package.sh
+++ b/dev/package.sh
@@ -27,6 +27,12 @@ function process_setup_ubuntu_2204 {
   cp 
/usr/local/lib/{libhdfs3.so.1,libprotobuf.so.32,libboost_context.so.1.84.0,libboost_regex.so.1.84.0}
 $THIRDPARTY_LIB/
 }
 
+function process_setup_centos_9 {
+  cp 
/lib64/{libre2.so.9,libdouble-conversion.so.3,libevent-2.1.so.7,libdwarf.so.0,libgsasl.so.7,libicudata.so.67,libicui18n.so.67,libicuuc.so.67,libidn.so.12,libntlm.so.0,libsodium.so.23}
 $THIRDPARTY_LIB/
+  cp 
/usr/local/lib/{libhdfs3.so.1,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,libprotobuf.so.32}
 $THIRDPARTY_LIB/
+  cp /usr/local/lib64/{libgflags.so.2.2,libglog.so.1} $THIRDPARTY_LIB/
+}
+
 function process_setup_centos_8 {
   cp 
/usr/lib64/{libre2.so.0,libdouble-conversion.so.3,libevent-2.1.so.6,libdwarf.so.1,libgsasl.so.7,libicudata.so.60,libicui18n.so.60,libicuuc.so.60,libidn.so.11,libntlm.so.0,libsodium.so.23}
 $THIRDPARTY_LIB/
   cp 
/usr/local/lib/{libhdfs3.so.1,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,libprotobuf.so.32}
 $THIRDPARTY_LIB/
@@ -56,7 +62,9 @@ if [[ "$LINUX_OS" == "ubuntu" || "$LINUX_OS" == "pop" ]]; then
     process_setup_ubuntu_2204
   fi
 elif [ "$LINUX_OS" == "centos" ]; then
-  if [ "$VERSION" == "8" ]; then
+  if [ "$VERSION" == "9" ]; then
+    process_setup_centos_9
+  elif [ "$VERSION" == "8" ]; then
     process_setup_centos_8
   elif [ "$VERSION" == "7" ]; then
     process_setup_centos_7
diff --git a/ep/build-velox/src/get_velox.sh b/ep/build-velox/src/get_velox.sh
index d01d7eb12..818bdb99d 100755
--- a/ep/build-velox/src/get_velox.sh
+++ b/ep/build-velox/src/get_velox.sh
@@ -137,6 +137,45 @@ function process_setup_ubuntu {
   sed -i '/run_and_time install_arrow/d' scripts/setup-ubuntu.sh
 }
 
+function process_setup_centos9 {
+  # Allows other version of git already installed.
+  if [ -z "$(which git)" ]; then
+    dnf install -y -q --setopt=install_weak_deps=False git
+  fi
+  # make this function Reentrant
+  git checkout scripts/setup-centos9.sh
+  # No need to re-install git.
+
+  ensure_pattern_matched 'dnf_install' scripts/setup-centos9.sh
+  sed -i 's/dnf_install ninja-build cmake curl ccache gcc-toolset-12 
git/dnf_install ninja-build cmake curl ccache gcc-toolset-12/' 
scripts/setup-centos9.sh
+  sed -i '/^function dnf_install/i\DEPENDENCY_DIR=${DEPENDENCY_DIR:-$(pwd)}' 
scripts/setup-centos9.sh
+  sed -i '/^dnf_install autoconf/a\dnf_install libxml2-devel libgsasl-devel 
libuuid-devel' scripts/setup-centos9.sh
+  
+  ensure_pattern_matched 'install_gflags' scripts/setup-centos9.sh
+  sed -i '/^function install_gflags.*/i function install_openssl {\n  
wget_and_untar 
https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1s.tar.gz 
openssl \n cd openssl \n ./config no-shared && make depend && make && sudo make 
install \n cd ..\n}\n'     scripts/setup-centos9.sh
+
+  ensure_pattern_matched 'install_fbthrift' scripts/setup-centos9.sh
+  sed -i '/^  run_and_time install_fbthrift/a \  run_and_time install_openssl' 
scripts/setup-centos9.sh
+  sed -i '/cd protobuf/{n;s/\.\/configure --prefix=\/usr/\.\/configure 
CXXFLAGS="-fPIC" --prefix=\/usr\/local/;}' scripts/setup-centos9.sh
+
+  if [ $ENABLE_HDFS == "ON" ]; then
+    sed -i '/^function install_gflags.*/i function install_libhdfs3 {\n cd 
"\${DEPENDENCY_DIR}"\n github_checkout oap-project/libhdfs3 master\n 
cmake_install\n}\n' scripts/setup-centos9.sh
+    sed -i '/^  run_and_time install_fbthrift/a \  run_and_time 
install_libhdfs3' scripts/setup-centos9.sh
+    sed -i '/^  dnf_install ninja-build/a\  dnf_install yasm\' 
scripts/setup-centos9.sh
+  fi
+  sed -i "s/yum -y install/sudo yum -y install/" 
${VELOX_HOME}/scripts/setup-adapters.sh
+  if [ $ENABLE_S3 == "ON" ]; then
+    sed -i '/^  run_and_time install_fbthrift/a \ \ 
'${VELOX_HOME}/scripts'/setup-adapters.sh aws' scripts/setup-centos9.sh
+  fi
+  if [ $ENABLE_GCS == "ON" ]; then
+    sed -i '/^  run_and_time install_fbthrift/a \ \ 
'${VELOX_HOME}/scripts'/setup-adapters.sh gcs' scripts/setup-centos9.sh
+  fi
+  if [ $ENABLE_ABFS == "ON" ]; then
+    sed -i '/^  run_and_time install_fbthrift/a \ \ export 
AZURE_SDK_DISABLE_AUTO_VCPKG=ON \n '${VELOX_HOME}/scripts'/setup-adapters.sh 
abfs' scripts/setup-centos9.sh
+  fi
+}
+
+
 function process_setup_centos8 {
   # Allows other version of git already installed.
   if [ -z "$(which git)" ]; then
@@ -287,6 +326,7 @@ function setup_linux {
     process_setup_ubuntu
   elif [[ "$LINUX_DISTRIBUTION" == "centos" ]]; then
     case "$LINUX_VERSION_ID" in
+      9) process_setup_centos9 ;;
       8) process_setup_centos8 ;;
       7) process_setup_centos7 ;;
       *)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to