1
0
mirror of https://github.com/ceph/ceph synced 2025-03-25 11:48:05 +00:00

build: Bump Boost to 1.85

Signed-off-by: Adam Emerson <aemerson@redhat.com>
This commit is contained in:
Adam Emerson 2024-05-20 19:14:59 -04:00
parent dd54e6bf57
commit 3d36ac2d0b
6 changed files with 34 additions and 40 deletions

View File

@ -282,7 +282,10 @@ if(WITH_LIBURING)
build_uring()
endif()
# enable uring in boost::asio
add_compile_definitions("BOOST_ASIO_HAS_IO_URING")
if(CMAKE_SYSTEM_VERSION VERSION_GREATER_EQUAL "5.10")
add_compile_definitions("BOOST_ASIO_HAS_IO_URING")
endif()
endif()
CMAKE_DEPENDENT_OPTION(WITH_BLUESTORE_PMEM "Enable PMDK libraries" OFF
@ -729,7 +732,7 @@ if(WITH_SYSTEM_BOOST)
if(BOOST_ROOT AND CMAKE_LIBRARY_ARCHITECTURE)
set(BOOST_LIBRARYDIR "${BOOST_ROOT}/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
endif()
find_package(Boost 1.82 COMPONENTS ${BOOST_COMPONENTS} REQUIRED)
find_package(Boost 1.85 COMPONENTS ${BOOST_COMPONENTS} REQUIRED)
if(NOT ENABLE_SHARED)
set_property(TARGET Boost::iostreams APPEND PROPERTY
INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
@ -743,16 +746,11 @@ else()
set(BOOST_J ${DEFAULT_BOOST_J} CACHE STRING "max jobs for Boost build") # override w/-DBOOST_J=<n>
set(Boost_USE_STATIC_LIBS ON)
include(BuildBoost)
build_boost(1.82
build_boost(1.85
COMPONENTS ${BOOST_COMPONENTS} ${BOOST_HEADER_COMPONENTS})
endif()
include_directories(BEFORE SYSTEM ${Boost_INCLUDE_DIRS})
if(Boost_VERSION VERSION_LESS 1.84)
# This is a workaround for https://github.com/boostorg/phoenix/issues/111
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-DBOOST_PHOENIX_STL_TUPLE_H_>)
endif()
# dashboard angular2 frontend
option(WITH_MGR_DASHBOARD_FRONTEND "Build the mgr/dashboard frontend using `npm`" ON)
option(WITH_SYSTEM_NPM "Assume that dashboard build tools already installed through packages" OFF)

View File

@ -155,14 +155,14 @@ function(do_build_boost root_dir version)
check_boost_version("${PROJECT_SOURCE_DIR}/src/boost" ${version})
set(source_dir
SOURCE_DIR "${PROJECT_SOURCE_DIR}/src/boost")
elseif(version VERSION_GREATER 1.82)
elseif(version VERSION_GREATER 1.85)
message(FATAL_ERROR "Unknown BOOST_REQUESTED_VERSION: ${version}")
else()
message(STATUS "boost will be downloaded...")
# NOTE: If you change this version number make sure the package is available
# at the three URLs below (may involve uploading to download.ceph.com)
set(boost_version 1.82.0)
set(boost_sha256 a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6)
set(boost_version 1.85.0)
set(boost_sha256 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617)
string(REPLACE "." "_" boost_version_underscore ${boost_version} )
list(APPEND boost_url
https://download.ceph.com/qa/boost_${boost_version_underscore}.tar.bz2

View File

@ -1380,6 +1380,21 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_TIMER_DEPENDENCIES chrono)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
elseif(Boost_VERSION_STRING VERSION_LESS 1.84.0)
set(_Boost_CONTRACT_DEPENDENCIES thread chrono)
set(_Boost_COROUTINE_DEPENDENCIES context)
set(_Boost_FIBER_DEPENDENCIES context)
set(_Boost_IOSTREAMS_DEPENDENCIES regex)
set(_Boost_JSON_DEPENDENCIES container)
set(_Boost_LOG_DEPENDENCIES log_setup filesystem thread regex chrono atomic)
set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
set(_Boost_MPI_DEPENDENCIES serialization)
set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
set(_Boost_THREAD_DEPENDENCIES chrono atomic)
set(_Boost_TIMER_DEPENDENCIES chrono)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
else()
set(_Boost_CONTRACT_DEPENDENCIES thread chrono)
set(_Boost_COROUTINE_DEPENDENCIES context)
@ -1394,7 +1409,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_THREAD_DEPENDENCIES chrono atomic)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.84.0 AND NOT Boost_NO_WARN_NEW_VERSIONS)
if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.86.0 AND NOT Boost_NO_WARN_NEW_VERSIONS)
message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
endif()
endif()
@ -1669,6 +1684,7 @@ else()
# _Boost_COMPONENT_HEADERS. See the instructions at the top of
# _Boost_COMPONENT_DEPENDENCIES.
set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
"1.85.0" "1.85" "1.84.0" "1.84"
"1.83.0" "1.83" "1.82.0" "1.82" "1.81.0" "1.81" "1.80.0" "1.80" "1.79.0" "1.79"
"1.78.0" "1.78" "1.77.0" "1.77" "1.76.0" "1.76" "1.75.0" "1.75" "1.74.0" "1.74"
"1.73.0" "1.73" "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69"

View File

@ -141,7 +141,7 @@ function install_pkg_on_ubuntu {
fi
}
boost_ver=1.82
boost_ver=1.85
function clean_boost_on_ubuntu {
ci_debug "Running clean_boost_on_ubuntu() in install-deps.sh"
@ -198,7 +198,7 @@ function install_boost_on_ubuntu {
fi
local codename=$1
local project=libboost
local sha1=2804368f5b807ba8334b0ccfeb8af191edeb996f
local sha1=55f34507d322314fb0294629b7c0bb406de07aec
install_pkg_on_ubuntu \
$project \
$sha1 \
@ -220,6 +220,7 @@ function install_boost_on_ubuntu {
ceph-libboost-test${boost_ver}-dev \
ceph-libboost-thread${boost_ver}-dev \
ceph-libboost-timer${boost_ver}-dev \
ceph-libboost-url${boost_ver}-dev \
|| ci_debug "ceph-libboost package unavailable, you can build the submodule"
}

View File

@ -191,8 +191,8 @@ ln -s . $outfile
tar cvf $outfile.version.tar $outfile/src/.git_version $outfile/ceph.spec
# NOTE: If you change this version number make sure the package is available
# at the three URLs referenced below (may involve uploading to download.ceph.com)
boost_version=1.82.0
download_boost $boost_version a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6 \
boost_version=1.85.0
download_boost $boost_version 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617 \
https://download.ceph.com/qa \
https://archives.boost.io/release/$boost_version/source
download_liburing 2.5 456f5f882165630f0dc7b75e8fd53bd01a955d5d4720729b4323097e6e9f2a98 \

View File

@ -16,9 +16,9 @@ sslDir="${depsToolsetDir}/openssl"
sslSrcDir="${depsSrcDir}/openssl"
# For now, we'll keep the version number within the file path when not using git.
boostUrl="https://download.ceph.com/qa/boost_1_82_0.tar.bz2"
boostSha256Sum="a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6"
boostSrcDir="${depsSrcDir}/boost_1_82_0"
boostUrl="https://download.ceph.com/qa/boost_1_85_0.tar.bz2"
boostSha256Sum="7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617"
boostSrcDir="${depsSrcDir}/boost_1_85_0"
boostDir="${depsToolsetDir}/boost"
zlibDir="${depsToolsetDir}/zlib"
zlibSrcDir="${depsSrcDir}/zlib"
@ -225,27 +225,6 @@ patch -N boost/thread/pthread/thread_data.hpp <<EOL
#endif
EOL
# https://github.com/boostorg/stacktrace/pull/140
# https://github.com/boostorg/stacktrace/issues/133
patch -N boost/stacktrace/detail/frame_msvc.ipp <<'EOL'
--- boost/stacktrace/detail/frame_msvc.ipp 2023-08-18 12:29:37.127229733 +0000
+++ boost/stacktrace/detail/frame_msvc.ipp.new 2023-08-18 12:28:23.713294554 +0000
@@ -28,9 +28,13 @@
#ifdef __CRT_UUID_DECL // for __MINGW32__
+#if !defined(__MINGW32__) || \
+ (!defined(__clang__) && __GNUC__ < 12) || \
+ (defined(__clang__) && __clang_major__ < 16)
__CRT_UUID_DECL(IDebugClient,0x27fe5639,0x8407,0x4f47,0x83,0x64,0xee,0x11,0x8f,0xb0,0x8a,0xc8)
__CRT_UUID_DECL(IDebugControl,0x5182e668,0x105e,0x416e,0xad,0x92,0x24,0xef,0x80,0x04,0x24,0xba)
__CRT_UUID_DECL(IDebugSymbols,0x8c31e98c,0x983a,0x48a5,0x90,0x16,0x6f,0xe5,0xd6,0x67,0xa9,0x50)
+#endif
#elif defined(DEFINE_GUID) && !defined(BOOST_MSVC)
DEFINE_GUID(IID_IDebugClient,0x27fe5639,0x8407,0x4f47,0x83,0x64,0xee,0x11,0x8f,0xb0,0x8a,0xc8);
DEFINE_GUID(IID_IDebugControl,0x5182e668,0x105e,0x416e,0xad,0x92,0x24,0xef,0x80,0x04,0x24,0xba);
EOL
./bootstrap.sh
if [[ $ENABLE_SHARED == "ON" ]]; then