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

raulcd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new c9dfb3ee87 GH-49366: [CI][C++] Use system LLVM to use libstdc++ in 
gcc-toolset (#49367)
c9dfb3ee87 is described below

commit c9dfb3ee8701f0c8049c950558c87037e252f9a5
Author: Sutou Kouhei <[email protected]>
AuthorDate: Thu Feb 26 17:46:05 2026 +0900

    GH-49366: [CI][C++] Use system LLVM to use libstdc++ in gcc-toolset (#49367)
    
    ### Rationale for this change
    
    LLVM (clang) installed by vcpkg doesn't use libstdc++ installed by 
gcc-toolset. We need to use libstdc++ installed by gcc-toolset not system 
libstdc++ for C++20 support.
    
    ### What changes are included in this PR?
    
    * Use LLVM installed by llvm-toolset module that can use use libstdc++ 
installed by gcc-toolset
    * Move `boost-multiprecision` to `dev` feature because it's also used in 
`cpp/src/arrow/util/decimal_test.cc`
    
    ### Are these changes tested?
    
    Yes.
    
    ### Are there any user-facing changes?
    
    No.
    * GitHub Issue: #49366
    
    Authored-by: Sutou Kouhei <[email protected]>
    Signed-off-by: Raúl Cumplido <[email protected]>
---
 ci/docker/cpp-jni.dockerfile | 27 ++++++++++++++++-----------
 ci/vcpkg/vcpkg.json          |  2 +-
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/ci/docker/cpp-jni.dockerfile b/ci/docker/cpp-jni.dockerfile
index 91508089c4..5792dfb19b 100644
--- a/ci/docker/cpp-jni.dockerfile
+++ b/ci/docker/cpp-jni.dockerfile
@@ -22,16 +22,19 @@ ARG arch
 ARG arch_short
 
 # Install basic dependencies
-RUN dnf install -y \
-    autoconf \
-    curl \
-    flex \
-    gdb \
-    git \
-    perl-IPC-Cmd \
-    perl-Time-Piece \
-    wget \
-    zip
+RUN dnf module enable -y llvm-toolset && \
+    dnf install -y \
+      autoconf \
+      curl \
+      flex \
+      gdb \
+      git \
+      llvm-devel \
+      llvm-toolset \
+      perl-IPC-Cmd \
+      perl-Time-Piece \
+      wget \
+      zip
 
 # A system Python is required for Ninja and vcpkg in this Dockerfile.
 # On manylinux_2_28 base images, no system Python is installed.
@@ -96,7 +99,9 @@ RUN --mount=type=secret,id=github_repository_owner \
         --x-feature=azure \
         --x-feature=dev \
         --x-feature=flight \
-        --x-feature=gandiva \
+        # We can't use LLVM installed by vcpkg with gcc-toolset because
+        # LLVM installed by vcpkg doesn't use libc++ installed by gcc-toolset.
+        # --x-feature=gandiva \
         --x-feature=gcs \
         --x-feature=json \
         --x-feature=orc \
diff --git a/ci/vcpkg/vcpkg.json b/ci/vcpkg/vcpkg.json
index 5dfe61a0c6..560dca9178 100644
--- a/ci/vcpkg/vcpkg.json
+++ b/ci/vcpkg/vcpkg.json
@@ -39,6 +39,7 @@
         "benchmark",
         "boost-crc",
         "boost-filesystem",
+        "boost-multiprecision",
         "boost-process",
         "gtest"
       ]
@@ -67,7 +68,6 @@
         "boost-date-time",
         "boost-format",
         "boost-locale",
-        "boost-multiprecision",
         "boost-predef",
         "boost-regex",
         "boost-system",

Reply via email to