From 62261c06c7d71b4e3d210fa9f04e42058044c963 Mon Sep 17 00:00:00 2001 From: Christian Zentgraf Date: Thu, 19 Sep 2024 15:26:22 -0400 Subject: [PATCH] Upgrade FBOS dependencies to 2024.09.16.00 --- CMake/resolve_dependency_modules/README.md | 11 +++--- .../fast_float.cmake | 34 +++++++++++++++++++ .../folly/CMakeLists.txt | 6 ++-- .../folly/folly-gflags-glog.patch | 25 ++++++++------ scripts/setup-centos9.sh | 12 +++++-- scripts/setup-macos.sh | 9 ++++- scripts/setup-ubuntu.sh | 10 +++++- 7 files changed, 85 insertions(+), 22 deletions(-) create mode 100644 CMake/resolve_dependency_modules/fast_float.cmake diff --git a/CMake/resolve_dependency_modules/README.md b/CMake/resolve_dependency_modules/README.md index ce766cb17bcd..a164e50ad332 100644 --- a/CMake/resolve_dependency_modules/README.md +++ b/CMake/resolve_dependency_modules/README.md @@ -32,11 +32,12 @@ by Velox. See details on bundling below. | re2 | 2021-04-01 | Yes | | fmt | 10.1.1 | Yes | | simdjson | 3.9.3 | Yes | -| folly | v2024.05.20.00 | Yes | -| fizz | v2024.05.20.00 | No | -| wangle | v2024.05.20.00 | No | -| mvfst | v2024.05.20.00 | No | -| fbthrift | v2024.05.20.00 | No | +| fast_float | v6.1.6 | Yes | +| folly | v2024.09.16.00 | Yes | +| fizz | v2024.09.16.00 | No | +| wangle | v2024.09.16.00 | No | +| mvfst | v2024.09.16.00 | No | +| fbthrift | v2024.09.16.00 | No | | libstemmer | 2.2.0 | Yes | | DuckDB (testing) | 0.8.1 | Yes | | cpr (testing) | 1.10.15 | Yes | diff --git a/CMake/resolve_dependency_modules/fast_float.cmake b/CMake/resolve_dependency_modules/fast_float.cmake new file mode 100644 index 000000000000..a9f75c774d03 --- /dev/null +++ b/CMake/resolve_dependency_modules/fast_float.cmake @@ -0,0 +1,34 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# Licensed 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. +include_guard(GLOBAL) + +set(VELOX_FAST_FLOAT_VERSION 6.1.6) +set(VELOX_FAST_FLOAT_BUILD_SHA256_CHECKSUM + 4458aae4b0eb55717968edda42987cabf5f7fc737aee8fede87a70035dba9ab0) +set(VELOX_FAST_FLOAT_SOURCE_URL + "https://github.com/fastfloat/fast_float/archive/v${VELOX_FAST_FLOAT_VERSION}.tar.gz" +) + +resolve_dependency_url(FAST_FLOAT) + +message(STATUS "Building fast_float from source") +FetchContent_Declare( + fast_float + URL ${VELOX_FAST_FLOAT_SOURCE_URL} + URL_HASH ${VELOX_FAST_FLOAT_BUILD_SHA256_CHECKSUM}) + +FetchContent_MakeAvailable(fast_float) +# Folly searches for the header path directly so need to make sure to search in +# the dependency path. +list(APPEND CMAKE_PREFIX_PATH "${fast_float_SOURCE_DIR}") diff --git a/CMake/resolve_dependency_modules/folly/CMakeLists.txt b/CMake/resolve_dependency_modules/folly/CMakeLists.txt index df7a489384ee..6479e3613bea 100644 --- a/CMake/resolve_dependency_modules/folly/CMakeLists.txt +++ b/CMake/resolve_dependency_modules/folly/CMakeLists.txt @@ -14,13 +14,15 @@ project(Folly) cmake_minimum_required(VERSION 3.14) -set(VELOX_FOLLY_BUILD_VERSION v2024.05.20.00) +set(VELOX_FOLLY_BUILD_VERSION v2024.09.16.00) set(VELOX_FOLLY_BUILD_SHA256_CHECKSUM - f4a450e59f0b74d1b0b4e5c55ae38e820166c95d02f8a8a298e54a49a90aa057) + 0a375f2f3e15a2679b4d21fa1064986830a52f59c74d82b3bda1aeeea4e77da0) set(VELOX_FOLLY_SOURCE_URL "https://github.com/facebook/folly/releases/download/${VELOX_FOLLY_BUILD_VERSION}/folly-${VELOX_FOLLY_BUILD_VERSION}.tar.gz" ) +set(fast_float_SOURCE BUNDLED) +resolve_dependency(fast_float) resolve_dependency_url(FOLLY) message(STATUS "Building Folly from source") diff --git a/CMake/resolve_dependency_modules/folly/folly-gflags-glog.patch b/CMake/resolve_dependency_modules/folly/folly-gflags-glog.patch index 6ef25f5ac231..a33098900042 100644 --- a/CMake/resolve_dependency_modules/folly/folly-gflags-glog.patch +++ b/CMake/resolve_dependency_modules/folly/folly-gflags-glog.patch @@ -13,10 +13,10 @@ # limitations under the License. --- a/CMake/folly-deps.cmake +++ b/CMake/folly-deps.cmake -@@ -52,19 +52,20 @@ find_package(DoubleConversion MODULE REQUIRED) - list(APPEND FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY}) - list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR}) - +@@ -55,19 +55,23 @@ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR}) + find_package(FastFloat MODULE REQUIRED) + list(APPEND FOLLY_INCLUDE_DIRECTORIES ${FASTFLOAT_INCLUDE_DIR}) + -find_package(Gflags MODULE) -set(FOLLY_HAVE_LIBGFLAGS ${LIBGFLAGS_FOUND}) -if(LIBGFLAGS_FOUND) @@ -27,12 +27,14 @@ +find_package(gflags) +set(FOLLY_HAVE_LIBGFLAGS ${gflags_FOUND}) +if(gflags_FOUND) -+ list(APPEND FOLLY_LINK_LIBRARIES ${gflags_LIBRARY}) -+ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${gflags_INCLUDE_DIR}) -+ set(FOLLY_LIBGFLAGS_LIBRARY ${gflags_LIBRARY}) -+ set(FOLLY_LIBGFLAGS_INCLUDE ${gflags_INCLUDE_DIR}) ++ list(APPEND FOLLY_LINK_LIBRARIES ${gflags_LIBRARY}) ++ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${gflags_INCLUDE_DIR}) ++ set(FOLLY_LIBGFLAGS_LIBRARY ${gflags_LIBRARY}) ++ set(FOLLY_LIBGFLAGS_INCLUDE ${gflags_INCLUDE_DIR}) ++ message(STATUS "gflags_INCLUDE_DIR: ${gflags_INCLUDE_DIR}") ++ message(STATUS "gflags_LIBRARY: ${gflags_LIBRARY}") endif() - + -find_package(Glog MODULE) -set(FOLLY_HAVE_LIBGLOG ${GLOG_FOUND}) -list(APPEND FOLLY_LINK_LIBRARIES ${GLOG_LIBRARY}) @@ -41,7 +43,8 @@ +set(FOLLY_HAVE_LIBGLOG ${glog_FOUND}) +list(APPEND FOLLY_LINK_LIBRARIES ${glog_LIBRARY}) +list(APPEND FOLLY_INCLUDE_DIRECTORIES ${glog_INCLUDE_DIR}) -+message(STATUS "glog_INCLUDE_DIR: ${gflags_LINRARY}") - ++message(STATUS "glog_INCLUDE_DIR: ${glog_INCLUDE_DIR}") ++message(STATUS "glog_LIBRARY: ${glog_LIBRARY}") + find_package(LibEvent MODULE REQUIRED) list(APPEND FOLLY_LINK_LIBRARIES ${LIBEVENT_LIB}) diff --git a/scripts/setup-centos9.sh b/scripts/setup-centos9.sh index 2b38fd1d4c73..1efb8e53ec34 100755 --- a/scripts/setup-centos9.sh +++ b/scripts/setup-centos9.sh @@ -31,7 +31,7 @@ set -efx -o pipefail SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}") source $SCRIPTDIR/setup-helper-functions.sh NPROC=$(getconf _NPROCESSORS_ONLN) -export CXXFLAGS=$(get_cxx_flags) # Used by boost. +export CXXFLAGS=$(get_cxx_flags) # Used by boost. export CFLAGS=${CXXFLAGS//"-std=c++17"/} # Used by LZO. CMAKE_BUILD_TYPE="${BUILD_TYPE:-Release}" BUILD_DUCKDB="${BUILD_DUCKDB:-true}" @@ -39,10 +39,11 @@ USE_CLANG="${USE_CLANG:-false}" export INSTALL_PREFIX=${INSTALL_PREFIX:-"/usr/local"} DEPENDENCY_DIR=${DEPENDENCY_DIR:-$(pwd)/deps-download} -FB_OS_VERSION="v2024.05.20.00" +FB_OS_VERSION="v2024.09.16.00" FMT_VERSION="10.1.1" BOOST_VERSION="boost-1.84.0" ARROW_VERSION="15.0.0" +FAST_FLOAT_VERSION="v6.1.6" function dnf_install { dnf install -y -q --setopt=install_weak_deps=False "$@" @@ -209,6 +210,12 @@ function install_cuda { dnf install -y cuda-nvcc-$(echo $1 | tr '.' '-') cuda-cudart-devel-$(echo $1 | tr '.' '-') } +function install_fast_float { + # Dependency of folly. + wget_and_untar https://github.com/fastfloat/fast_float/archive/refs/tags/${FAST_FLOAT_VERSION}.tar.gz fast_float + cmake_install_dir fast_float +} + function install_velox_deps { run_and_time install_velox_deps_from_dnf run_and_time install_conda @@ -219,6 +226,7 @@ function install_velox_deps { run_and_time install_boost run_and_time install_protobuf run_and_time install_fmt + run_and_time install_fast_float run_and_time install_folly run_and_time install_fizz run_and_time install_wangle diff --git a/scripts/setup-macos.sh b/scripts/setup-macos.sh index 8d8863586df7..6eb600c34aa0 100755 --- a/scripts/setup-macos.sh +++ b/scripts/setup-macos.sh @@ -41,7 +41,7 @@ NPROC=$(getconf _NPROCESSORS_ONLN) DEPENDENCY_DIR=${DEPENDENCY_DIR:-$(pwd)} MACOS_VELOX_DEPS="bison flex gflags glog googletest icu4c libevent libsodium lz4 lzo openssl protobuf@21 snappy xz zstd" MACOS_BUILD_DEPS="ninja cmake" -FB_OS_VERSION="v2024.05.20.00" +FB_OS_VERSION="v2024.09.16.00" FMT_VERSION="10.1.1" function update_brew { @@ -141,12 +141,19 @@ function install_re2 { cmake_install_dir re2 -DRE2_BUILD_TESTING=OFF } +function install_fast_float { + # Dependency of folly. + wget_and_untar https://github.com/fastfloat/fast_float/archive/refs/tags/${FAST_FLOAT_VERSION}.tar.gz fast_float + cmake_install_dir fast_float +} + function install_velox_deps { run_and_time install_velox_deps_from_brew run_and_time install_ranges_v3 run_and_time install_double_conversion run_and_time install_re2 run_and_time install_fmt + run_and_time install_fast_float run_and_time install_folly run_and_time install_fizz run_and_time install_wangle diff --git a/scripts/setup-ubuntu.sh b/scripts/setup-ubuntu.sh index b95aabd37b69..c4785af00fe5 100755 --- a/scripts/setup-ubuntu.sh +++ b/scripts/setup-ubuntu.sh @@ -54,10 +54,11 @@ function install_clang15 { ${SUDO} apt install ${CLANG_PACKAGE_LIST} -y } -FB_OS_VERSION="v2024.05.20.00" +FB_OS_VERSION="v2024.09.16.00" FMT_VERSION="10.1.1" BOOST_VERSION="boost-1.84.0" ARROW_VERSION="15.0.0" +FAST_FLOAT_VERSION="v6.1.6" # Install packages required for build. function install_build_prerequisites { @@ -222,10 +223,17 @@ function install_cuda { $SUDO apt install -y cuda-nvcc-$(echo $1 | tr '.' '-') cuda-cudart-dev-$(echo $1 | tr '.' '-') } +function install_fast_float { + # Dependency of folly. + wget_and_untar https://github.com/fastfloat/fast_float/archive/refs/tags/${FAST_FLOAT_VERSION}.tar.gz fast_float + cmake_install_dir fast_float +} + function install_velox_deps { run_and_time install_velox_deps_from_apt run_and_time install_fmt run_and_time install_boost + run_and_time install_fast_float run_and_time install_folly run_and_time install_fizz run_and_time install_wangle