This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new cf61fa1 ARROW-10385: [C++][Gandiva] Add support for LLVM 11
cf61fa1 is described below
commit cf61fa1b8c1463f8f7c16e55c7275cac3111a0c2
Author: Sutou Kouhei <[email protected]>
AuthorDate: Tue Oct 27 16:02:42 2020 +0900
ARROW-10385: [C++][Gandiva] Add support for LLVM 11
LLVM link failures in MinGW build are caused by
https://github.com/msys2/MINGW-packages/issues/7170 .
They aren't fixed by this pull request. The problem will be fixed in
upstream.
Closes #8521 from kou/cpp-llvm-11
Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
.env | 4 ++--
.github/workflows/cpp.yml | 1 -
.github/workflows/cpp_cron.yml | 10 +++++-----
.github/workflows/python_cron.yml | 12 ++++++------
.github/workflows/ruby.yml | 1 -
.travis.yml | 6 ++++++
ci/conda_env_gandiva.yml | 4 ++--
...edora-32-cpp.dockerfile => fedora-33-cpp.dockerfile} | 16 ++++++++--------
ci/docker/linux-apt-c-glib.dockerfile | 1 +
ci/docker/ubuntu-20.04-cpp.dockerfile | 17 ++++++++++++++++-
ci/scripts/msys2_setup.sh | 6 +++---
cpp/CMakeLists.txt | 7 ++++++-
cpp/cmake_modules/ThirdpartyToolchain.cmake | 1 +
cpp/src/gandiva/engine.cc | 1 +
dev/tasks/conda-recipes/arrow-cpp/meta.yaml | 4 ++--
dev/tasks/gandiva-jars/build-cpp-linux.sh | 2 +-
dev/tasks/homebrew-formulae/apache-arrow.rb | 4 ++--
.../apache-arrow/apt/ubuntu-focal/Dockerfile | 9 +++++++++
dev/tasks/linux-packages/package-task.rb | 2 +-
dev/tasks/nuget-packages/github.linux.yml | 4 +++-
dev/tasks/tasks.yml | 8 ++++----
docker-compose.yml | 4 ++--
22 files changed, 81 insertions(+), 43 deletions(-)
diff --git a/.env b/.env
index c266213..5c6aaa5 100644
--- a/.env
+++ b/.env
@@ -24,9 +24,9 @@ ARCH=amd64
CUDA=9.1
DEBIAN=10
UBUNTU=18.04
-FEDORA=32
+FEDORA=33
PYTHON=3.6
-LLVM=10
+LLVM=11
CLANG_TOOLS=8
RUST=nightly-2020-04-22
GO=1.12
diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml
index 5ed1605..4e3e270 100644
--- a/.github/workflows/cpp.yml
+++ b/.github/workflows/cpp.yml
@@ -338,7 +338,6 @@ jobs:
CMAKE_ARGS: >-
-DARROW_PACKAGE_PREFIX=/mingw${{ matrix.mingw-n-bits }}
-DBoost_NO_BOOST_CMAKE=ON
- CMAKE_GENERATOR: MSYS Makefiles
CMAKE_UNITY_BUILD: ON
steps:
- name: Disable Crash Dialogs
diff --git a/.github/workflows/cpp_cron.yml b/.github/workflows/cpp_cron.yml
index 95c5f4b..5f404b2 100644
--- a/.github/workflows/cpp_cron.yml
+++ b/.github/workflows/cpp_cron.yml
@@ -46,7 +46,7 @@ jobs:
matrix:
name:
- amd64-debian-10-cpp
- - amd64-fedora-32-cpp
+ - amd64-fedora-33-cpp
- amd64-ubuntu-16.04-cpp
- amd64-ubuntu-18.04-cpp
- amd64-ubuntu-18.04-cpp-cmake32
@@ -55,10 +55,10 @@ jobs:
image: debian-cpp
title: AMD64 Debian 10 C++
debian: 10
- - name: amd64-fedora-32-cpp
+ - name: amd64-fedora-33-cpp
image: fedora-cpp
- title: AMD64 Fedora 32 C++
- fedora: 32
+ title: AMD64 Fedora 33 C++
+ fedora: 33
- name: amd64-ubuntu-16.04-cpp
image: ubuntu-cpp
title: AMD64 Ubuntu 16.04 C++
@@ -75,7 +75,7 @@ jobs:
# the defaults here should correspond to the values in .env
ARCH: 'amd64'
DEBIAN: ${{ matrix.debian || 10 }}
- FEDORA: ${{ matrix.fedora || 32 }}
+ FEDORA: ${{ matrix.fedora || 33 }}
UBUNTU: ${{ matrix.ubuntu || 18.04 }}
steps:
- name: Checkout Arrow
diff --git a/.github/workflows/python_cron.yml
b/.github/workflows/python_cron.yml
index 133a73b..256856b 100644
--- a/.github/workflows/python_cron.yml
+++ b/.github/workflows/python_cron.yml
@@ -45,7 +45,7 @@ jobs:
matrix:
name:
- debian-10-python-3
- - fedora-32-python-3
+ - fedora-33-python-3
- ubuntu-18.04-python-3
- conda-python-3.7-dask-latest
- conda-python-3.7-turbodbc-latest
@@ -59,11 +59,11 @@ jobs:
image: debian-python
title: AMD64 Debian 10 Python 3
debian: 10
- - name: fedora-32-python-3
- cache: fedora-32-python-3
+ - name: fedora-33-python-3
+ cache: fedora-33-python-3
image: fedora-python
- title: AMD64 Fedora 32 Python 3
- fedora: 32
+ title: AMD64 Fedora 33 Python 3
+ fedora: 33
- name: ubuntu-18.04-python-3
cache: ubuntu-18.04-python-3
image: ubuntu-python
@@ -102,7 +102,7 @@ jobs:
env:
# the defaults here should correspond to the values in .env
DEBIAN: ${{ matrix.debian || 10 }}
- FEDORA: ${{ matrix.fedora || 32 }}
+ FEDORA: ${{ matrix.fedora || 33 }}
UBUNTU: ${{ matrix.ubuntu || 18.04 }}
PYTHON: ${{ matrix.python || 3.7 }}
HDFS: ${{ matrix.hdfs || '2.9.2' }}
diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml
index d7c81bc..0558ac8 100644
--- a/.github/workflows/ruby.yml
+++ b/.github/workflows/ruby.yml
@@ -188,7 +188,6 @@ jobs:
CMAKE_ARGS: >-
-DARROW_PACKAGE_PREFIX=/mingw${{ matrix.mingw-n-bits }}
-DBoost_NO_BOOST_CMAKE=ON
- CMAKE_GENERATOR: MSYS Makefiles
CMAKE_UNITY_BUILD: ON
steps:
- name: Disable Crash Dialogs
diff --git a/.travis.yml b/.travis.yml
index 72eed9b..84bbbce 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -65,6 +65,9 @@ jobs:
-e ARROW_GANDIVA=OFF
-e ARROW_PARQUET=OFF
"
+ # The LLVM's APT repository provides only arm64 binaries.
+ # We should use LLVM provided by Ubuntu.
+ LLVM: "10"
UBUNTU: "20.04"
- name: "C++ on s390x"
@@ -90,6 +93,9 @@ jobs:
-e cares_SOURCE=BUNDLED
-e gRPC_SOURCE=BUNDLED
"
+ # The LLVM's APT repository provides only arm64 binaries.
+ # We should use LLVM provided by Ubuntu.
+ LLVM: "10"
UBUNTU: "20.04"
- name: "Go on s390x"
diff --git a/ci/conda_env_gandiva.yml b/ci/conda_env_gandiva.yml
index fa15d77..5056456 100644
--- a/ci/conda_env_gandiva.yml
+++ b/ci/conda_env_gandiva.yml
@@ -15,6 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-clangdev=10
-llvmdev=10
+clangdev=11
+llvmdev=11
re2
diff --git a/ci/docker/fedora-32-cpp.dockerfile
b/ci/docker/fedora-33-cpp.dockerfile
similarity index 92%
rename from ci/docker/fedora-32-cpp.dockerfile
rename to ci/docker/fedora-33-cpp.dockerfile
index 40fe461..9dde699 100644
--- a/ci/docker/fedora-32-cpp.dockerfile
+++ b/ci/docker/fedora-33-cpp.dockerfile
@@ -16,7 +16,7 @@
# under the License.
ARG arch
-FROM ${arch}/fedora:32
+FROM ${arch}/fedora:33
ARG arch
# install dependencies
@@ -32,17 +32,18 @@ RUN dnf update -y && \
cmake \
curl-devel \
flatbuffers-devel \
- java-1.8.0-openjdk-devel \
- java-1.8.0-openjdk-headless \
gcc \
gcc-c++ \
- glog-devel \
gflags-devel \
+ git \
+ glog-devel \
gmock-devel \
google-benchmark-devel \
- protobuf-devel \
+ grpc-devel \
+ grpc-plugins \
gtest-devel \
- git \
+ java-latest-openjdk-devel \
+ java-latest-openjdk-headless \
libzstd-devel \
llvm-devel \
llvm-static \
@@ -50,6 +51,7 @@ RUN dnf update -y && \
make \
ninja-build \
openssl-devel \
+ protobuf-devel \
python \
rapidjson-devel \
re2-devel \
@@ -64,7 +66,6 @@ COPY ci/scripts/install_minio.sh \
/arrow/ci/scripts/
RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest /usr/local
-# * gRPC 1.26 in Fedora 32 may have a problem. arrow-flight-test is stuck.
ENV ARROW_BUILD_TESTS=ON \
ARROW_DEPENDENCY_SOURCE=SYSTEM \
ARROW_DATASET=ON \
@@ -85,7 +86,6 @@ ENV ARROW_BUILD_TESTS=ON \
AWSSDK_SOURCE=BUNDLED \
CC=gcc \
CXX=g++ \
- gRPC_SOURCE=BUNDLED \
ORC_SOURCE=BUNDLED \
PARQUET_BUILD_EXECUTABLES=ON \
PARQUET_BUILD_EXAMPLES=ON \
diff --git a/ci/docker/linux-apt-c-glib.dockerfile
b/ci/docker/linux-apt-c-glib.dockerfile
index dbd1304..12c6e23 100644
--- a/ci/docker/linux-apt-c-glib.dockerfile
+++ b/ci/docker/linux-apt-c-glib.dockerfile
@@ -25,6 +25,7 @@ RUN apt-get update -y -q && \
gtk-doc-tools \
libgirepository1.0-dev \
libglib2.0-doc \
+ lsb-release \
luarocks \
pkg-config \
ruby-dev && \
diff --git a/ci/docker/ubuntu-20.04-cpp.dockerfile
b/ci/docker/ubuntu-20.04-cpp.dockerfile
index d2a3fab..fbcda44 100644
--- a/ci/docker/ubuntu-20.04-cpp.dockerfile
+++ b/ci/docker/ubuntu-20.04-cpp.dockerfile
@@ -30,7 +30,22 @@ RUN echo "debconf debconf/frontend select Noninteractive" | \
# while debugging package list with docker build.
ARG clang_tools
ARG llvm
-RUN apt-get update -y -q && \
+RUN if [ "${llvm}" -gt "10" ]; then \
+ apt-get update -y -q && \
+ apt-get install -y -q --no-install-recommends \
+ apt-transport-https \
+ ca-certificates \
+ gnupg \
+ wget && \
+ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
+ echo "deb https://apt.llvm.org/focal/ llvm-toolchain-focal-${llvm} main"
> \
+ /etc/apt/sources.list.d/llvm.list && \
+ if [ "${clang_tools}" != "${llvm}" -a "${clang_tools}" -gt 10 ]; then \
+ echo "deb https://apt.llvm.org/focal/
llvm-toolchain-focal-${clang_tools} main" > \
+ /etc/apt/sources.list.d/clang-tools.list; \
+ fi \
+ fi && \
+ apt-get update -y -q && \
apt-get install -y -q --no-install-recommends \
clang-${clang_tools} \
clang-${llvm} \
diff --git a/ci/scripts/msys2_setup.sh b/ci/scripts/msys2_setup.sh
index 110b03b..51dc45f 100755
--- a/ci/scripts/msys2_setup.sh
+++ b/ci/scripts/msys2_setup.sh
@@ -24,26 +24,26 @@ target=$1
packages=()
case "${target}" in
cpp|c_glib|ruby)
- packages+=(make)
packages+=(${MINGW_PACKAGE_PREFIX}-aws-sdk-cpp)
- packages+=(${MINGW_PACKAGE_PREFIX}-ccache)
packages+=(${MINGW_PACKAGE_PREFIX}-boost)
packages+=(${MINGW_PACKAGE_PREFIX}-brotli)
+ packages+=(${MINGW_PACKAGE_PREFIX}-ccache)
packages+=(${MINGW_PACKAGE_PREFIX}-clang)
packages+=(${MINGW_PACKAGE_PREFIX}-cmake)
packages+=(${MINGW_PACKAGE_PREFIX}-gcc)
packages+=(${MINGW_PACKAGE_PREFIX}-gflags)
packages+=(${MINGW_PACKAGE_PREFIX}-grpc)
packages+=(${MINGW_PACKAGE_PREFIX}-gtest)
+ packages+=(${MINGW_PACKAGE_PREFIX}-libutf8proc)
packages+=(${MINGW_PACKAGE_PREFIX}-llvm)
packages+=(${MINGW_PACKAGE_PREFIX}-lz4)
+ packages+=(${MINGW_PACKAGE_PREFIX}-ninja)
packages+=(${MINGW_PACKAGE_PREFIX}-polly)
packages+=(${MINGW_PACKAGE_PREFIX}-protobuf)
packages+=(${MINGW_PACKAGE_PREFIX}-python3-numpy)
packages+=(${MINGW_PACKAGE_PREFIX}-rapidjson)
packages+=(${MINGW_PACKAGE_PREFIX}-snappy)
packages+=(${MINGW_PACKAGE_PREFIX}-thrift)
- packages+=(${MINGW_PACKAGE_PREFIX}-libutf8proc)
packages+=(${MINGW_PACKAGE_PREFIX}-zlib)
packages+=(${MINGW_PACKAGE_PREFIX}-zstd)
;;
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index d3c5b22..f9ab154 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -109,7 +109,12 @@ set(BUILD_SUPPORT_DIR "${CMAKE_SOURCE_DIR}/build-support")
set(ARROW_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
set(ARROW_DOC_DIR "share/doc/${PROJECT_NAME}")
-set(ARROW_LLVM_VERSIONS "10" "9" "8" "7")
+set(ARROW_LLVM_VERSIONS
+ "11"
+ "10"
+ "9"
+ "8"
+ "7")
list(GET ARROW_LLVM_VERSIONS 0 ARROW_LLVM_VERSION_PRIMARY)
string(REGEX
REPLACE "^([0-9]+)(\\..+)?" "\\1" ARROW_LLVM_VERSION_PRIMARY_MAJOR
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index cc37a3c..d084f34 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -1824,6 +1824,7 @@ macro(build_rapidjson)
set(RAPIDJSON_INCLUDE_DIR "${RAPIDJSON_PREFIX}/include")
add_dependencies(toolchain rapidjson_ep)
+ add_dependencies(toolchain-tests rapidjson_ep)
add_dependencies(rapidjson rapidjson_ep)
set(RAPIDJSON_VENDORED TRUE)
diff --git a/cpp/src/gandiva/engine.cc b/cpp/src/gandiva/engine.cc
index 735fd5f..a29a7e0 100644
--- a/cpp/src/gandiva/engine.cc
+++ b/cpp/src/gandiva/engine.cc
@@ -53,6 +53,7 @@
#include <llvm/Linker/Linker.h>
#include <llvm/MC/SubtargetFeature.h>
#include <llvm/Support/DynamicLibrary.h>
+#include <llvm/Support/Host.h>
#include <llvm/Support/TargetRegistry.h>
#include <llvm/Support/TargetSelect.h>
#include <llvm/Support/raw_ostream.h>
diff --git a/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
b/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
index b5a2bec..272ed8c 100644
--- a/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
+++ b/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
@@ -68,8 +68,8 @@ outputs:
- glog
- grpc-cpp
- libprotobuf
- - clangdev 10
- - llvmdev 10
+ - clangdev 11
+ - llvmdev 11
- libutf8proc
- lz4-c
- numpy
diff --git a/dev/tasks/gandiva-jars/build-cpp-linux.sh
b/dev/tasks/gandiva-jars/build-cpp-linux.sh
index 24402fc..20f9d32 100755
--- a/dev/tasks/gandiva-jars/build-cpp-linux.sh
+++ b/dev/tasks/gandiva-jars/build-cpp-linux.sh
@@ -64,7 +64,7 @@ cmake -DCMAKE_BUILD_TYPE=Release \
-DBOOST_ROOT=/arrow_boost_dist \
-GNinja /arrow/cpp
ninja install
-ninja test
+CTEST_OUTPUT_ON_FAILURE=1 ninja test
popd
diff --git a/dev/tasks/homebrew-formulae/apache-arrow.rb
b/dev/tasks/homebrew-formulae/apache-arrow.rb
index 72d4cfa..888e2a3 100644
--- a/dev/tasks/homebrew-formulae/apache-arrow.rb
+++ b/dev/tasks/homebrew-formulae/apache-arrow.rb
@@ -16,7 +16,7 @@ class ApacheArrow < Formula
depends_on "numpy"
depends_on "[email protected]"
depends_on "protobuf"
- depends_on "[email protected]"
+ depends_on "[email protected]"
depends_on "rapidjson"
depends_on "snappy"
depends_on "thrift"
@@ -42,7 +42,7 @@ class ApacheArrow < Formula
-DARROW_WITH_SNAPPY=ON
-DARROW_WITH_BROTLI=ON
-DARROW_INSTALL_NAME_RPATH=OFF
- -DPYTHON_EXECUTABLE=#{Formula["[email protected]"].bin/"python3"}
+ -DPython3_EXECUTABLE=#{Formula["[email protected]"].bin/"python3"}
]
# Re-enable -DARROW_S3=ON and add back aws-sdk-cpp to depends_on in
ARROW-6437
diff --git a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
index 8715dd8..97f4412 100644
--- a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
+++ b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
@@ -34,6 +34,15 @@ RUN \
quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
apt update ${quiet} && \
apt install -y -V ${quiet} \
+ apt-transport-https \
+ ca-certificates \
+ gnupg \
+ wget && \
+ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
+ echo "deb https://apt.llvm.org/focal/ llvm-toolchain-focal-${LLVM} main" > \
+ /etc/apt/sources.list.d/llvm.list && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
build-essential \
cmake \
debhelper \
diff --git a/dev/tasks/linux-packages/package-task.rb
b/dev/tasks/linux-packages/package-task.rb
index 1762e9f..7fa7af1 100644
--- a/dev/tasks/linux-packages/package-task.rb
+++ b/dev/tasks/linux-packages/package-task.rb
@@ -54,7 +54,7 @@ class PackageTask
@rpm_version = @version
@rpm_release = "1"
end
- @deb_release = "1"
+ @deb_release = ENV["DEB_RELEASE"] || "1"
end
def define
diff --git a/dev/tasks/nuget-packages/github.linux.yml
b/dev/tasks/nuget-packages/github.linux.yml
index c8143e4..95c4464 100644
--- a/dev/tasks/nuget-packages/github.linux.yml
+++ b/dev/tasks/nuget-packages/github.linux.yml
@@ -40,7 +40,9 @@ jobs:
git -C arrow checkout FETCH_HEAD
git -C arrow submodule update --init --recursive
- name: Setup Python
- uses: actions/setup-python@v1
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
- name: Setup Archery
run: pip install -e arrow/dev/archery[docker]
- name: Prepare version
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index 581e174..9cda368 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -1599,12 +1599,12 @@ tasks:
UBUNTU: 18.04
run: ubuntu-cpp
- test-fedora-32-cpp:
+ test-fedora-33-cpp:
ci: circle
template: docker-tests/circle.linux.yml
params:
env:
- FEDORA: 32
+ FEDORA: 33
run: fedora-cpp
test-ubuntu-18.04-cpp-release:
@@ -1719,12 +1719,12 @@ tasks:
UBUNTU: 18.04
run: ubuntu-python
- test-fedora-32-python-3:
+ test-fedora-33-python-3:
ci: azure
template: docker-tests/azure.linux.yml
params:
env:
- FEDORA: 32
+ FEDORA: 33
run: fedora-python
test-r-linux-as-cran:
diff --git a/docker-compose.yml b/docker-compose.yml
index 90fdb97..d130ebc 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -332,7 +332,7 @@ services:
# docker-compose run --rm fedora-cpp
# Parameters:
# ARCH: amd64, arm64v8, ...
- # FEDORA: 32
+ # FEDORA: 33
image: ${REPO}:${ARCH}-fedora-${FEDORA}-cpp
build:
context: .
@@ -572,7 +572,7 @@ services:
# docker-compose run --rm fedora-python
# Parameters:
# ARCH: amd64, arm64v8, ...
- # FEDORA: 32
+ # FEDORA: 33
image: ${REPO}:${ARCH}-fedora-${FEDORA}-python-3
build:
context: .