diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index aab47dc3080..f1998ac4add 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -337,6 +337,7 @@ if(ARROW_ORC) set(ARROW_WITH_LZ4 ON) set(ARROW_WITH_SNAPPY ON) set(ARROW_WITH_ZLIB ON) + set(ARROW_WITH_ZSTD ON) endif() if(NOT ARROW_BUILD_TESTS) diff --git a/cpp/cmake_modules/DefineOptions.cmake b/cpp/cmake_modules/DefineOptions.cmake index b9d2e5b9ff8..533e2e45af4 100644 --- a/cpp/cmake_modules/DefineOptions.cmake +++ b/cpp/cmake_modules/DefineOptions.cmake @@ -108,7 +108,11 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") # Arm64 architectures and extensions can lead to exploding combinations. # So set it directly through cmake command line. - define_option_string(ARROW_ARMV8_ARCH "Arm64 arch and extensions" "armv8-a+crc+crypto") + define_option_string(ARROW_ARMV8_ARCH + "Arm64 arch and extensions" + "armv8-a" # Default + "armv8-a" + "armv8-a+crc+crypto") define_option(ARROW_ALTIVEC "Build with Altivec if compiler has support" ON) diff --git a/cpp/cmake_modules/SetupCxxFlags.cmake b/cpp/cmake_modules/SetupCxxFlags.cmake index 743740ae38b..8e9efef8d14 100644 --- a/cpp/cmake_modules/SetupCxxFlags.cmake +++ b/cpp/cmake_modules/SetupCxxFlags.cmake @@ -243,7 +243,8 @@ if(MSVC) # (required for protobuf, see https://github.com/protocolbuffers/protobuf/issues/6885) set(CXX_COMMON_FLAGS "${CXX_COMMON_FLAGS} /wd4065") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "6.0") + if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL "7.0" + OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.0") # Without this, gcc >= 7 warns related to changes in C++17 set(CXX_ONLY_FLAGS "${CXX_ONLY_FLAGS} -Wno-noexcept-type") endif() diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 5bbb2915372..9d63e329990 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -2214,41 +2214,6 @@ macro(build_orc) set(ORC_STATIC_LIB "${ORC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}orc${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(ORC_CMAKE_CXX_FLAGS) - if((CMAKE_CXX_COMPILER_ID - STREQUAL - "AppleClang" - AND CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL "9") - OR (CMAKE_CXX_COMPILER_ID - STREQUAL - "Clang" - AND CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL "4.0")) - # conda OSX builds uses clang 4.0.1 and orc_ep fails to build unless - # disabling the following errors - set(ORC_CMAKE_CXX_FLAGS "${ORC_CMAKE_CXX_FLAGS} -Wno-error=weak-vtables") - set(ORC_CMAKE_CXX_FLAGS "${ORC_CMAKE_CXX_FLAGS} -Wno-error=undef") - elseif((CMAKE_CXX_COMPILER_ID - STREQUAL - "AppleClang" - AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "9") - OR (CMAKE_CXX_COMPILER_ID - STREQUAL - "Clang" - AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.0")) - set(ORC_CMAKE_CXX_FLAGS "${ORC_CMAKE_CXX_FLAGS} -Wno-zero-as-null-pointer-constant") - set(ORC_CMAKE_CXX_FLAGS - "${ORC_CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-destructor-override") - set(ORC_CMAKE_CXX_FLAGS "${ORC_CMAKE_CXX_FLAGS} -Wno-error=undef") - endif() - if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" - OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - if(Protobuf_VERSION VERSION_GREATER_EQUAL "3.9.0") - set(ORC_CMAKE_CXX_FLAGS "${ORC_CMAKE_CXX_FLAGS} -Wno-comma") - endif() - endif() - - set(ORC_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS} ${ORC_CMAKE_CXX_FLAGS}") - get_target_property(ORC_PROTOBUF_INCLUDE_DIR ${ARROW_PROTOBUF_LIBPROTOBUF} INTERFACE_INCLUDE_DIRECTORIES) get_filename_component(ORC_PB_ROOT "${ORC_PROTOBUF_INCLUDE_DIR}" DIRECTORY) @@ -2266,7 +2231,8 @@ macro(build_orc) set(ORC_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX=${ORC_PREFIX}" - -DCMAKE_CXX_FLAGS=${ORC_CMAKE_CXX_FLAGS} + -DCMAKE_CXX_FLAGS=${EP_CXX_FLAGS} + -DSTOP_BUILD_ON_WARNING=OFF -DBUILD_LIBHDFSPP=OFF -DBUILD_JAVA=OFF -DBUILD_TOOLS=OFF @@ -2278,7 +2244,8 @@ macro(build_orc) "-DPROTOBUF_INCLUDE_DIR=${ORC_PROTOBUF_INCLUDE_DIR}" "-DPROTOBUF_LIBRARY=${ORC_PROTOBUF_LIBRARY}" "-DPROTOC_LIBRARY=${ORC_PROTOBUF_LIBRARY}" - "-DLZ4_HOME=${LZ4_HOME}") + "-DLZ4_HOME=${LZ4_HOME}" + "-DZSTD_HOME=${ZSTD_HOME}") if(ZLIB_ROOT) set(ORC_CMAKE_ARGS ${ORC_CMAKE_ARGS} "-DZLIB_HOME=${ZLIB_ROOT}") endif() diff --git a/cpp/src/arrow/python/arrow_to_pandas.cc b/cpp/src/arrow/python/arrow_to_pandas.cc index 34640fd415a..ba83e5c81ce 100644 --- a/cpp/src/arrow/python/arrow_to_pandas.cc +++ b/cpp/src/arrow/python/arrow_to_pandas.cc @@ -412,7 +412,7 @@ class PandasWriter { DCHECK_EQ(1, num_columns_); - npy_intp new_dims[1] = {num_rows_}; + npy_intp new_dims[1] = {static_cast(num_rows_)}; PyArray_Dims dims; dims.ptr = new_dims; dims.len = 1; @@ -815,7 +815,8 @@ class TypedPandasWriter : public PandasWriter { Status TransferSingle(std::shared_ptr data, PyObject* py_ref) override { if (CanZeroCopy(*data)) { PyObject* wrapped; - npy_intp dims[2] = {num_columns_, num_rows_}; + npy_intp dims[2] = {static_cast(num_columns_), + static_cast(num_rows_)}; RETURN_NOT_OK( MakeNumPyView(data->chunk(0), py_ref, NPY_TYPE, /*ndim=*/2, dims, &wrapped)); SetBlockData(wrapped); @@ -1515,7 +1516,7 @@ class CategoricalWriter arr_first.dictionary()->length())); PyObject* wrapped; - npy_intp dims[1] = {this->num_rows_}; + npy_intp dims[1] = {static_cast(this->num_rows_)}; RETURN_NOT_OK(MakeNumPyView(indices_first, /*py_ref=*/nullptr, TRAITS::npy_type, /*ndim=*/1, dims, &wrapped)); this->SetBlockData(wrapped); diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index 24da92a34b2..a284b717113 100644 --- a/cpp/thirdparty/versions.txt +++ b/cpp/thirdparty/versions.txt @@ -39,7 +39,7 @@ ARROW_LZ4_BUILD_VERSION=v1.9.2 # https://github.com/microsoft/mimalloc/pull/145 and # https://github.com/microsoft/mimalloc/pull/148 ARROW_MIMALLOC_BUILD_VERSION=270e765454f98e8bab9d42609b153425f749fff6 -ARROW_ORC_BUILD_VERSION=1.5.7 +ARROW_ORC_BUILD_VERSION=1.6.2 ARROW_PROTOBUF_BUILD_VERSION=v3.7.1 # Because of https://github.com/Tencent/rapidjson/pull/1323, we require # a pre-release version of RapidJSON to build with GCC 8 without