This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-java.git
The following commit(s) were added to refs/heads/main by this push:
new e5482cd63 MINOR: Fix Gandiva JNI build against Arrow C++ 24.0.0 (#1140)
e5482cd63 is described below
commit e5482cd63d2043c0e418f1adc7bcd1e5192c5078
Author: JB Onofré <[email protected]>
AuthorDate: Sun May 10 08:15:56 2026 +0200
MINOR: Fix Gandiva JNI build against Arrow C++ 24.0.0 (#1140)
Arrow C++ 24.0.0 introduced two breaking changes for the JNI build:
1. `arrow::decimal()` was removed; replaced with `arrow::decimal128()`
in the Gandiva JNI source.
2. xsimd >= 14.0.0 is now a required dependency. The Docker image's
vcpkg registry only ships xsimd 13.2.0, so the Linux JNI CMake
configuration was failing. Fixed by passing `xsimd_SOURCE=BUNDLED` to
the Arrow C++ CMake configure step so Arrow downloads and uses xsimd
14.0.0 directly, and by passing the vcpkg toolchain file to the Arrow
C++ configure step so other vcpkg-managed dependencies are still
resolved correctly.
---
.env | 2 +-
compose.yaml | 3 ++-
gandiva/src/main/cpp/jni_common.cc | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/.env b/.env
index 2bd725547..51daa0406 100644
--- a/.env
+++ b/.env
@@ -53,4 +53,4 @@ MAVEN=3.9.9
# Versions for various dependencies used to build artifacts
# Keep in sync with apache/arrow
ARROW_REPO_ROOT=./arrow
-VCPKG="4334d8b4c8916018600212ab4dd4bbdc343065d1" # 2025.09.17 Release
+VCPKG="66c0373dc7fca549e5803087b9487edfe3aca0a1" # 2026.01.16 Release
diff --git a/compose.yaml b/compose.yaml
index fb290b22f..4fd825e5a 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -109,5 +109,6 @@ services:
ARROW_JAVA_CDATA: "ON"
CCACHE_DIR: "/ccache"
command:
- ["git config --global --add safe.directory /arrow-java && \
+ ["/bin/bash", "-c",
+ "git config --global --add safe.directory /arrow-java &&
/arrow-java/ci/scripts/jni_manylinux_build.sh /arrow-java /arrow
/build/java /arrow-java/jni"]
diff --git a/gandiva/src/main/cpp/jni_common.cc
b/gandiva/src/main/cpp/jni_common.cc
index 285125007..ec4888a51 100644
--- a/gandiva/src/main/cpp/jni_common.cc
+++ b/gandiva/src/main/cpp/jni_common.cc
@@ -221,7 +221,7 @@ DataTypePtr ProtoTypeToDataType(const
gandiva::types::ExtGandivaType& ext_type)
return arrow::date64();
case gandiva::types::DECIMAL:
// TODO: error handling
- return arrow::decimal(ext_type.precision(), ext_type.scale());
+ return arrow::decimal128(ext_type.precision(), ext_type.scale());
case gandiva::types::TIME32:
return ProtoTypeToTime32(ext_type);
case gandiva::types::TIME64: